PREME/G/MU458191
021251084967426239282971596359390710276906371617810984997298908872251335116624911079305957584263406275887295487004781792623267033484886885769065307982257048399915091354856215025903269084512390294612534383276971924133247250688916061800793765858905424160816273902631817494376145569368431381844150697291495669032770450716974075245814100067732971084016742500020506411861973545711857272119596548811775754021219464860330602317866611851325219169601711201339705175421541729042541954078396117867894095578005908731607181262056553028895044097071644038905229261577268997524868238991859590102724723126310736780330673642163644036474290959872682475912580229306153299285126532139310402784382826538279970997023338202320628681124005564118230245640316630150028221043951135609413008640600757424901170772389486594627745394847069875083816373971726110557485925992800391206288586544787900070821555897250626279137409817187961400935505864231638250754625990028558563586557447470223312477104412780404029281897085166304608051840140143110030006888268147751473744924042334935604246022555876896172883143689404819939089222797316202864832914257034144423945672910120265152993457309740015863607328090867969524012239311911195741567423467090529367097398386973992453421787706249669992874843389360743699306331778623186941651163287545358669949554115821814204782102048668501156894596200184819437335045007569665691395515528786379424954690102141154700870032873746915163141332219161179121117652736856324025772098896915115457410163905720540661442474266786868906932509329227987834760208984568457929752663595287458156511342565957244707502517670028263428658217377459472895017269919173060026201206496727899057232392991308243281307202145192556313717008528215768764886876769535547511044342485645126016598714010156684228910978259199528075927765776670558547381511376097515342707973594393890284352342124318075930683465192909701795608592394294288677490409831445664318795007932700565107885142052875385285033276963352973595983814134436066052036561399493537688090683487679853444181677390678750373081662608107661333831778883890344153061364802131351211952765896054946751465296038980396332882556341060956311897558089094973571033363103306884860736866976880987421582131056932519066911420177029232527590764559021215954472638179856604912728669183634146740389822502652827975709503270950086643051574101424419373343361659896150109700554073349268209023806639951370472891673855232127417506596160410980262593861838236212211718121121026072023366923787415953990852896972457326290908108120182579679936823108118295908826448130796556351553284300345190670128852472501787706938272196166313382021356919894104695318578742068072003615434928886590347416774389741079858312563415572998895637609460191806446246246646163127390364733838124953751590320023969770632197211047278743196479534995197360986382147790349023124087286573979581838529089413589592756778917337299511281140880633940039905616558411390091997296146505126120293075213669544635220248475412662587532990013063465680860803836248217544461310162949423257834661052425622307623096896858756003319932597323847975337643755216709368836780303181035380427865238994851699267997056273184056192891599759301265321598539386209865374125668199414908944588064921784389851025495002822614216066746665835560516587578173705954896183356967837910681472771290796000238662697070442826761133186472887957053357420581158137608529625083067971388625493430594851698432721885328748808616225253441955457122010543390589444693455630420345829640423349888008745144188895150148100676277932414140087550538119385290305437479547246869804633269036252220290636492781563155065509845345567697728985443100331910453999818706847996758282738472200154103156775189827972166131837019629806445968103154338527747522827231107843895363219595851820342214733083766978628714708955126216837084387447827305083706080558578015725476634301065807167157421221959554613271359226610410006963918258732207204700312364879811774947439016188932278677063564690301217764847469359242999460803578738020154358344436443726518968841341656533417300801161745906011404160038112256587627821505402158694733017008775700935358769634012650144855635226940162525480853003839119779692662720543217498364909131896318669252610164782534904144285305960976459668971372260097133468985150241939145757676037329314425522769289286981507784785423229606207264600636370035743610654407095167326381331432525035865724889509330299815881759942778337510603753818490901252037290901552162664705013278129014054200811514415785168470752076782947066190478823101211937103485347285460112823705299492309615161565967695008629863596886032609293035942951637053678928839155708138521701669165930551459776324541127010020224534494007618585798829220863114818118782835901676931046042409329260908515639640722410747227538203198701639881059806036476977261658484907703255354061596248166747790608415321473325311484769778303688551846931411693767765172259825493100329751134009237700696308096919730993869275997734655918787227341192778343612227318662446737098119560584764897201933019927532539428550211416462836769250426979635245892654373867417286200591457517673460020391119702462064303521136707945536495926102463812367274547903313717403384089076863611217670785340809094519978758707258757067012493494069723417768016908680408282940969570836505803481470456095502759027365372296019195093471203061159210886742345827383894209000282637139020044558448271519104096664443184983759904714810412910447375454362641831445002144167425376575077714389344674448814698859677941440881072533502252299793511675091823331742158241425806582495182493865261488055927615809618259903972823720797693256782619072223652837287695536792115516426677961457478615180719189352699846318039088592247721343145497936709839059479321715653041430684032937644267755106943580949221008743965976924510173866728354025538213614986657115364898496709785173792132803442398043245974590633116978067704239851229301322526270814823837707840871385172839449519488878130235868691708139873742807212213118495703761735703804036765066321686050269340681087662508064359232839376510202410958045470208880460566885357015001725768109034702700771759925149052310605823823401607046422984648838891084130554896321089924448970194479835692416367950183317626264094115852686106058299181421400270130745410788898211206320862467992330747056666282586468614154453787301792199526633475453709248359965355475724353884973472691772385972365935922777103816190961862761148953856072189774411783332315923027997090430443301124961823852943363310125069083181648163408317572704874440584199768550587156338844127187688603369023152214620240556791737197910148001332720663269425676999454018370506822027803724766703693680555269528239026940961507930032834411802561705575504069067080901540544080609992600014874372544570102081223000995875019544361400971855140908826350185524982664959168176378293855829098038097888538300420142488491533195053662881390584781083956979163671495123283309074282520583539192754649217906392817164234432106908596170304854085702624762990030171423209255478849573883733449381910867396436835600876932282822386097551276664659552571336409317093448763469113329243087429778953460961220815465974589261921824454083968460308962233425412190379527513623104575896834045150520000388725180605910079199751604455089343943906305252142579358272265460176270391020487864958805266629178875089037403965487616465409438378979596752315379030620386387822851578241666812143245172679177561518419815400551307246745655316506883452421139822444368791758822030836430928663684245531216069700725213258350637405479621025541675576146249013795855126596138019965632130927136052924850992975249275510658514618516614492187838590093961518828748145747112787000106716780181091737488615694083969130767556783196582538034185425993438425837539737017630709103654857162870819487622710116661981411812698796688394575287852079691872897808454617379401844584099962878810473634665879946101452743788520439994018224487445472110449966164324880814381328098335995464961995536357354981215901328243592816283809604697123054293803897369475770024506297226882478653493403738230292341588395641887713033236760075537991261840976555057375179781503417893408973765905268838614849300431398083072549667768942784663814084653111574796758942701148494076353746790359322600175779906053428182082051173043106796091527931523177642270874040586034174728360655946314291999190309956886704066090391009717452538357345521549383214106710956000231183317050825902910197147389957152933200504719243096771784224953498806609562444509089297041083505948784190998745214837775929390030497084675532140080164957661364738106904391444574131397477952163121041313127722950440954479027506968967282918532412488620207527022772678275195225119441367847577482663734254114493182661183838089626898379519965231052239021602205544909396274069019401498044510126303085305133879916184240409133118360425084190829225974221578829856750838267730074233622745836027381328100338837701533069299570145955201798523379864687454194351374840211186947777499200163003753578460912391607708835396500988691300597244263964423408302088618233436108393733848222318690467014481014467538975167773509954102565247954309315665865896187872262255966667925345754423981364838028798430393093061880181273010135289837177552594330085382655336162447769736824914252882826598738258347348820051455814143553200443509186531728393057555957354413312760868521252610914136981594260478268449691959086412183159581901529159427653358907020976482852696511983227897825862453841480182804243128830507881450278597133132604340828302470810308133971856875256271431293392755686425089371336813645260747248193586485025688136699682151567785084748016440634888729128480410558997118168557435098284450446120842389509739792508296846076211573732534649872084960463969854791351476190865507246452722524649124066218564827889978772028628907472013520448220076746545963833996183152576884490507923096648735241040942012775073175560284491271000723280178208550694396235928207281367286145327953344929720892327116880623061953298613274975180279436602617158440185632840597515280001207029086807115060839980832623992582250871989338312378793428678606269595737920894731976347512147688703432339583046903786641262421776653648124873659536121723857518873163449441176612946504732201187668645999928445554928127401049939213512512093466597683354943307644065385398651844573574892873833253171990646416286343552138793618170672106061307834182146964872523907101287256240355827763301914289217756641990046677265603542950668012107852263241675612464878574432644601663969221462862215316207859236777448230627021096915063824442572505131273891580087305364058702771424787947889400723452368987268312857287129801887931418598938432168689992760660416847155139535518232788240979372894524753074725288210267348968327072092629434306409143436367975145303009757969853538789313755498847889462533722961345519622863415406193215232442326004647135831966953980177191969446976215296710572355971525982641014608741874816363374126703990783660702468714555216751104420848517694881534127647979807091494236371395597011846305754253541027627089685021246371913748281961832825281548407406344261633800729416996516339118861414267470039926373226778437114870132017725387957220299159488498826724734198053191417781372134469905757498829650760187624792789569049501431383616528306203446932233948955640280079202746358663522390522379090614788952191136702470927703002777358471157525592883103972818470569421015937935438891536705415497429958658703499246498155034644945645988787806213688221585031168307937317321436215478671051308059714852197263683263112627521776621199109030485909350546978450160262023516987258721458575983150434604641955222779860169009478511853371477941074937383640271950001095532720652450400090177175935740137609627409964383609324136257474653768952626097207720037107452789854390327745450715768132038789177613248759012978273375737371136166022201779231236578469842109424781839987632943640294008375647072028420012388192709361471696500310989272953715709484388635469471814830169026406637738624870714363348252963909282278186377541496245975816925352380816223710568063839159122785658044567363052022833561278751600589997622025018258876627664624825105862304581000164583711752903141769850466741090660546076265749901061927009726003310882976083382229038560121304818807097253799419435255403407434033290307308806565536567050678527411300512734222089527839354848337080342064831142315303100824917744947781334042757748295328471548489024519072130827580322892040041915629491700285288195418264723356019240697696537084090719352787549140865735125217272161710152510544745001737186675078507079270302102706268199100231608150134833800727067172676533703988996858238874374810317415109671032516014404842609115485645646130600114136957885804918630081553303161125500386604912069484383803244981795154965371808632363295388369212563603789540928520333318093822594974851598840252106500721901065253203135688875867831774925842690274198503442130789872894252674285620206261389435005181093386752594094782363689846287561076897262681300762495574816054119753190264224591321132501238175739283847980307968754142203780337801307314617568105360731917195662648725239585823568393914634556159856536485923389293207346447762952422316470975865787396696202784658648497322513012791514615397167884287013917121780906042136001729421224330094192343527961982183259189392892022951451041060659487358250379188767360941045484419584803395382166931811359406071000966549011850384154457002320024662343205724487021139858918469900238899002482420677351998352119681448879015787525546225109273492647745506290095493225009885691512190861070602037436402841680233574589112914692746024932316352610276431494449030006413209127964873839585416936430413520001974392416965826884058999506865065792022549494596287284597511040763556894513565437691638973838943614259306145336593526472201085882098298559590674145465441395733218467133249000881375295657633963873498886712941410938557849174703119166394017887538108888808504065045235869496135664998483423388916184717999669469871576321212518528975453574514040658012385672004653432479906124372685973369952487629853317242740013467369081553880541336513282218537562593930216073151660742727719933761264358004024579956914900860147254219225635044374539062684591812305961648419069773207805733213966656107488900489202820427942849609677163881176145926675595283611824747462853821520597417830437852373005781785284051322259561173516651773826065986604979545714323954511652867602972625302025447414906387897371843173994434555218922259543592104388579106413693684214460067479838967376669208838009357031642954507743004105629436302701130568564481670265797173459895192382810139396706259057423662269015625910353454355943548632692399489919080321094182039760269493288414622802436497555150642847822879719324188440585454210856012476087345261124451964260051866813161809740173181904357594070005911504566333189139090210508941492631276534975892984360278029551918169043043064295580078078530874054464882065693681315504469245170560461038720652634511229796760293871601655778533929562693800428314793163912474338990136490916865424544408170402978432806861846103431862687053553221118269641511624980767346868301369083872946484390050866389092380127545720052650604304813025578004584710176338279639517362254092492815731384223996876288281826806070918597682960809446620517730680247351496259726745525237490803044512154549646094008511832243247169963491428471572825090873073211621062210974847466112259002577904890474940578886258356421025986433606249931600296617464548658401755632094805942039159594468634439974897745711877650239683966750089162338771498287812570061535228010747454420743948191217955155682077602864338914185725478770077996901061822577058281481338075082209372385815818915302165952050561790612878098623578009238456297711857634456198554618950230412403986918050056555174566468713094657398705778808192978995975980924131645593753592319194114223031014344600839980079415137705095949238308075143925134786178980471912723757936101038323466992602570857379307322772036803080146478583996352902027794713308863313849855064063042987975707651326019203174044483036565921685940311919783416316699111278385598484622710655018483891047635313797508459084781855702250338404500516300771764558775183790117951713487283076084705796250660632417155582316934286544396601434942001829504187704401909700073269766663778439015550677224431887887596205415949440020881683650038474957721259772561669919411124395891629242991706028782881012867876882470744460547820983036855359794270934132439021645027222513446453259393644730813650985543685392240037223877174349732466482571598127809503777610698392018300268376938894784298266801029365328822392164475679291500986485092412354586699608537972200158940548356686104048182891912870440081278230325436950316509877700657133065258285670612838534078970321781903367509321766526263621388260717870293417669737238639867600246502013896272769124993954340638155607699114487451519721326245447491560046333013707742936333989017577150180533059916986883730594988961215686733353303109054076052814403793743813961604905437354401731372963035817002279618820530040809588657338388428414371154797164329540583155569429696125549080452231332651496543132902298587394160467597855221070686769417174069031896825101276176221693883053240338602276298173624604335375682344423302301719467084838808553539403274294597068453511514474558373391889719489121975688698968390926650985611101532727807440227184352487306780981558655335349184298451274174021200514298714391422358198029118736752348575110693202437407965542884134398131767068944833845998301971466723035432988968315337745222458778068027688455502265137001293357150790361819492441907446836759587751219266244807814551217645097626108232044058293588451958268880320803003392992789360814364258974772279592889106954976404465133109316450658506435693385389949083231816026078094195208788076291244018658047207113471706783596955416768372256811583864955309374772693830078178605056422435339511541260347168814869213811935227483974764430159128824881892672800598135864401392877712648951733005008232435429408948673800723233056536749531679060199242560943376823586984114627361540158996638290236608234199107491920404568070734413714373866322331258413607581274485954127438349494547961735240565736912812018644598237223545315456187412955158836629616098946546208758660056072379010598156678907307314570276702052719105481358813657851227935461119379332503433165254610628300081178725183354987451995753915811945872105268110349407028397860444582005492397254899409272894431082957237824530925321494260884519240139433111234994452978512094450057001639557595159791949382011292424791960130954135723751512302524324616871736378966806119255646044759588314512714689152765140938956041138152576121814300102604185738248803260970171491416466144456276716514026497948578871265962309253045626174645134752434041829929811880851363780838240742154386723692232856833035856516042917840946078907588919376745313796552856514039287520844042823332460099244756308427672018838497953022918821835833401066180812957393536463099512792360275272064598727513283791819512344423467274489539467501432220731269134527415461979519365286260780820336645116357712647177094037374582958935516314619652286384678694337189271029632651457348216588050909149978883800419174180900386392071183142341434156887073096193307697928479352023675473490242793625959979599941316349587224702968613883504662809129019909667719228174885927885374144960931169817232759589434504802158083120291937395182867676071603924193387377266119081152897422407653556740493285557059675645343810595127807565253371910767984339393953449450626735538934827234301767519479798485134789674869368617934753623217373462028014471984715612045859660392112386153215757294444322544157625449826534151665368445516849580602413911833658779698598595490930714291136417437784790980985705911947597564079959563497378978367690095572753832936806730389475051673982882590281470503768437866828061264045934403645825230312214959910176149589706909014251937718159189550073741837289895113877874814559449151861343714521916808505950818181072137348443290397391001074528546148211410567937196017670522508856084499551849009696969283930799820548082145411459677107489000711260781919686709105122111133423997598096536594702245823907336498045272637340209987406655855386384550052182532035478431955102334183857350478778815748367714425212910441542896644273908309984640151457146639532295840196187422899876917559316479884002679777745910402399669963574087309156471125745465159752826403197567994824641216076381857319119989840695658467180842588591270345777571926847884607116331200750534532503753525493247652324792916851872580529088339442012573887592066437924035637558635460927245221036589191680024105350678037298305253997051482844304084900496104965396387146784901719120191520834717392212595285793001751094006654040230203446548373878637714289281583269142791878914973174780025867966665082390958344278540306511522406005174842859566807756982931410881156302314760699268976479457689827480689367879599749228473714026072137979643222776829391443555450016154969082011963856393729362099019955196995117679969117111714613186806319678641579037245548675585378048236156816591913478488862458863826293353662509044641212260513861274426690959203698442441189343858522023361414383718771087303585965157409385844213243918317315848177867438914039279836509043066278342161909762536827751937699243497448196974538975493677836221954229700992257190895320758594221922941346208494192389978943086600288768156322833461367570401514949570886951840454318060527439389863525284574758753687806476573862063289244669097086776368407709229884431334242795794317307578214969337518579434251887302513432610081497417941622719217368982555058488864793389438816112495760307360939764888262656633790859614684057367551097262364185520194286989963699722684577978127632804372674272590207290363699279134051211054670927055176209465936040973540593737517811284812580585292804763994202031103402538121589811716755822050969425519646797651823565992235771623530799657769861728012903282605239673996620120909259847525205034103419382295711692642184896066773776524111119739334075042939596834401789115675940662093667851695235304042713202960039885486047001963181557119987991240955569350193339487682264601318413806357323802266918540174058480328091002919982491688015348651195909631233825446164308563478061673854112007499069575817836188323641573196074443820841715338832070614663325408732191806137960797167564598081082658985352715303839109669945401050532201555852188111456814461883433487080227042220251884054147949734912337515179781830506079530643249961428072231019818300703704990745031649709985295308509802747687543978459881001240832623625022383124525485615105196952487940750594938894828171709323078108746672941823218346566969859300514398298290679450136373492109798443153902991347792038050883672015972544767983094489613654558926312363219590135898594632775457093170474302750865654530782701624944387695657347745701627555031552355858174117150392601198398340383400649786991949309557530841270094377144481515385816017700331238680637752754001442038404694696158578077890989423970102372108436522185748780099978532956747689630458854930512457882453591450837021815235125964221996256649108750994552425096093462575898304865413707848879925089213540708583533614232237543830406216056560527689597613397140437447513934930166254197466918995651088173932338559762362240629624008019817435976155397267217697411811390625808329574693104932057695055853950911389173263519061169223082266836145760644165366665865451162692756133238126591879298744132722994136063814237477515762316632892552015382098841138156570305502525237779228322557303862418348856478078503384532001589242909452939945708820422298120717733217987864433676735949122176468291697089987292384850767414680101457425407581216409780474047762697636792539611245456151484668071306356598111470847634219385792078924124865612520830672990329970119814737966424007377728269593416726506620318025799263761468590783015899458655772028809224931977082720748347430752404636279032644104143924650317001536378362576187396889008894237703539727232386037672056853281720360048062405731442548679239346153749957375167272402331652263392244913539329141541230394518844827962375505934029658491987904534187845111493886335363836536561667636616115316866384182993246870475516316451035897565700450281028876244380516361292060870741738545132297743668727846430425437912207704942420173805046812384576462414128986987442652500480324806311671787792276442081774519815257985935358430509786913462110447517282711598992657654463208515704429049111811781023335159984876647802350097827329848228945937393882002432014367749032637125536842058229851492569633699542191674036252560164990959248613315493755349860518266347740604623973957974086428353551107562619961306404391088171925385919705936980582067138675484594165330734919279209108240039357011942314313832540471477008635808716659590874140496376983044547438186327287603861080851572081556725432513148329107774714814908664564374720209509336244940508446719212340755255275111045071047783137099622980683561903157769969184555154906601121241777058544750272501728054186281417121664977563516394586344263019125923853203512964714672736262126156295892542282101818672009314008042071781694251798374923523532836163421358902627234109779574681361103311912586433628788803239273967940293600165542489473713899675083753336519680782993038077367415593426345344994419263485161297341499155530192887103015952394094274724263119446449660141050901786243136404606895932079182913657260033813734518230505735146585477007019665456391517220248483180424515656780681573267271986918858554358940325293532134545636007362950145936025018938211859351465776535202990007877925696018076771855282487808138836536970679391447512092337454595936315793703724199853715643774367547910456190559954381159953102995994186439901947723660646480018745053371868961953051200534259948821766034608538705422517277611499955370670623455152454505494706233995722588482467700184705123366531982660604622104990723734861561563228342083919581391845747479071149347810496607743309808790774700312221372118471470643793373844640491264869459644600260655781477451145127925060267204374868335302625731493047893301436159858530057924130298655866715304083374127000008126273562612293381488509722756032276930122569625674889506171856821197711730812267893536463284749529191716931932729919803157073098587420309487829283525809087620103788297468040860633714728018328572303857918075399293569922975977758277374190554261264868726991489967700961873322233596812596550723071744752649479639178576685852896870741122768969615674416368054379386368043874347022134448233697396468388645476860314373442924820484315767868331045461923746226178068924466529331192613767680653554693539134018183828309131261430885762406099751176605619567558231113961797980471561747791449632350026623470559737738672995756027930971158788274463527674255335067438218903469704076751303354416937712850124766166789145483648546581426660243467145495856058126574641372294967193591847995699279356315950936011879708587218114214477937917029628779994458716310946813005484002110403912660687761726667333330257844151816472851252448118949289697115983555594091975420217003672032545737400128369363610746584269420335089627995822803387096057959934195857922083430812716406205412573082222538462757168609131959336403580333810746951800476271664100499093454474305652805718861574769171221739210436681385072957266582579428410160099854331037876575581589645045893767998052265039731226390045904445524327096249217328035453818169350395654633919854255515781244055433313971616889323844599686169768539364151460823251456258230549512938243808182132074424137109566953309386886709090108636751836737615939438662284665300808445213500602113085209387970266043620515963332476142397560826829788654555346310076633797928878256734634540764074188348450706314793625149809210310127251616920498847747313854017888423500399810558771500009066276887087319880481806737422502129665739443906253308735004181317342517301707977296951941096247585019394540799949029876744314232158862106961412999104177328253038640414188145748647970438783590711603109422459845857128492986067926900628795723774275477533207422963003828587250012458153500306864995418229494906851553642640566149065762588277903683664925635833194664319134998375282991437348887710220831425140110417502956462470783274104086809418886792648931795254552592765954287928317321497370522921825740218817023817338538901372460567312854266256926493935623974603729140345963381390975752332787152533898075340392874326720989521843366209491497607272972660828911057477873039473246478684920441138923209794366286094670435143606222309247628413119145162112973612760982586474446479382630841115849822952993497652645004993047767118225196909174678955513445738695338559806287083293370619662689449710260011560885343118019726900172683983902140630652253594369269701179884936024045339802310713805893321560439798442590079026774657568784082389918002198976874560060746392648560871613363718259699772785976335904838797765035907061585255802689969493804949457299899461149674509843598718114776253609323446528245334805980924855662285936582345292230372205957099925175599028829829721291017627438187675417017262171410587544551807286042059603974049923311939885828082657848778794928957552331809084648161797242670519611887016921320012166940981700405524419358586641746188721183641313598854136461111191232736944418409501826573498869680302144068709294989946870953786332630047824231560956428077598797963684606069456230345127722205789998434673221439406005093629088654068497334969536679585547049152948675639744130473025618268404909012352360188059441257828354788825811446258082956740846370933419757368857789522382947281222530875598485765488941266476211252641513420060164549259083478509901586610436079816782003677344629354850787344959734900087404104734238807171966174770704129739216762791689788728637612952489100739431906345173624793344986889704389254311714341063836924820827215622098162430173506052505764380583592975931908136893824280154432963035081676822380784196175449443998643376132316497425459488984512950841112891251307690251323804386490709158107367607760311639169020674362453099893753494922061522669736805124724586521657663249933960059121679378349809284256851334991963360475777965866114993871707583923898970985601634159613966268665076661577945643040631885855587134840544043762089646608715505192347506010364152605747687219178053496850526721052967751087762160682646336789926088224673516020172356215994297636154072797146878960940091156596503035794190979605614435761004203436461858823876054260988012037411802478331873066612112343860843128556681249683989336149288464405719069058517944874869466041929526706429265603728038390928150032241210108682275736567066949891410211627407240114592227590538867986436991469126694649087564192670246691292429732065663756026532941806070294413808486435156036045583524116676461411129857795263467830572543777844574066040829466226212325166712364680840127083748267135575047969529599391056608056645272883694734790533419378714519628458109804511041378120198299203098066902948441536669233326932113924299043527841775976575516415231720976425630333262235854922112577556743157722998337437371685265086068855792999251916909984351696116791479639700729001020316982416493734807243286743801712672934512559235529354344404675527678162774765649448593604093339751955119988511968535628587993851806527468527627101024034907400785219276337480967099828913734208797136419081575576127299628432371658281379549369900966922544356367745744431706892321744273664820093256519199518643029874675199422225615085352616272566439198969779192061126621758807940613785531803015693815249817431632558983645197630278748626339102468075191703617102869740086101223744044340451604615973170571115453458205008709918839626548456175316140083520784391289701317672358913311841407665066257672620166299901719489566148840503591106042103040354862373238161240215813600649350451092327043889230676617704810210069604194175545836446191929065640931085126366995844343878674280916217890173291306689449696411213651599214900896550695161553609780916347449237332587005404482356264737254382703141135734378849296544505804004423526701078655303366141430415521883861093671021991567869703344333400436825028245526292791035749835511479409608493456691158372432431633050157488668834984847018778851401947547159742491785321732048707813095497038957045335550338479001583407689883506503908214553667891127745242925337080529147096529007681549809554596177112641927170723414955655247067608789079639473787032616988386018441915402769704701004676283951526796641532083087136424434139806937380851492990182283103722631822476955524840132930327611000740787755593817172368861328998297239591348662685781523450893675258789543431992942871486406052399269559684033333632501010768022141692999160098313991373697960494764816075488815445883809300934735542713504750127162088315619704569529325374695307372776811222948337458134014964663390537073371312859478226727020346978676957751336624344492805012518229207774740776736198906756269357505064934389873401205713590962006224309532991283048356916146148430501345174371215893902331736860784259721521370210917697905646860109159050507035692514275469326900345595219844488630957649614937075550687463614295185467475029724365242866041496179605141422299261306670774170693608085050550488731503694322099136043894372231871307222215403060030559939735366961886607928789579986800674930755340262009884099268672682919474800362442765513241130438350345735994272306272755232802053335300578246180572203694839319680199559139756823253054277240685141949937487519022999872983704117250571139096731255439403929538273613090093798770467142348754070520862384428304581883090655081557291348693679381417767793835085872805456007278355853617183008476783366312396375940448411823540083189872100690168667216174879736553250971006101485744459567209095419068191499436265759906667850073810753566447097398072854303018111457521082914192260163864513834977750448008192597929712655937846551809809761235254584389332252165167127701833619191934809237810317485825736854846514731451258245600349533186314660155578278737253959931395674763583523612671347954416114345936847919503458024493878079944261975429216714043332219804116558716440411995077489471141807324741028758866035027137512247144343172598746815436369500340685180163678951905207872908403748406372337462539933517203820461340460918904336039942685763568678074393267675201054680464939006208599221635927461862898658515087810673649245608945686952405855527577457198929202507878008329985138699843046013809686298932535170981433354735048101658881274203372480236180139024722256428743727548721032710883554436597201914652380908544377522355206546069826702697979370169743096256037319701927738897797527322898850099929942909721400681605876565286376902165994393857709059952922187016109444827373390124723265760078639874588588970615362690868104990028745328572566524960366595725971873288751860558297058747255882598499363326534181861169691859445410956296060274694278327214711111829070520556339519289393146673354742686785275456820606442237116625875283042485523705225576348565847382245715297894021620440200228148384431836758777206313613851749567744866298660649209486304319154213634916979980451637981846270637661483494138437665964593598739663940790327386707655192870100943585846656131568495276544517394476794302767210547876963301537801776478571575871622279563812150500662073742337753449253346730689564185664122797189436601780185023048098629667235506693222725061030902952151166689041559865568728173787161923313467028407505854137954645497841009706735375714057940073903419454812209359379395661975627923471269195600393527671254825954135754028668813439654182604541370486991283927899333888041660477755455117502303556449686833517208013837911705467172487961423755489863601907520978233251992587008599162896603390682304025469489235845630310558397097980556933465338473187264302027858867646430702177863347589252454175128075355972179545729909704029542937733654018725803000806442380676787237150381024043390619717864287042763869910652782355062785923904237924588632105817883826105133970636354394746657680469797336500484299550908789958355266919661683130379609298940833501735845954127669372586973823192682537423863006851497220546268285910592548491085876245043736744258189419678634665010646454664992607186195661462912935097239020847331206933918292830129330701564120550122095481827463762861351207751259522232621977736336149280433959772193965374272904902277775207940743287103860714141341453735929185159042570325143818830128251427171691411144888732763147446719952602598983728359663665173812703726448274668562297878322820277901744148441299776861179008300491817406961553521068362186259874767295341895546198920838044903812534833571016379242665378533366508567634888353310387646815859460716206382038168858311697024345692199184779759911249989033357406733927536067832962625154814082314149845835283405559972622666060922217769889343127680961777463561257167604716671383645403475855624359312923268112002016155643295336005889572108853299351431980455560475932125023256741548999054436259335727343811049203727533934047320734544346216946310939559105711784063711591522447328295198930306019521585564041617018594148368640942300459550727262629705868024679776002663274681405654969566554610415769913410293378049031652750978804649935042473154529925608475339807075722092749922813614489984027229019157981466404051273399238611322225289061026267958652418384798919719163056333346089298331470127728130059580090553315521462104519201756676219025371367268128240842576427524577758762451285876653490244363683848768801495580949396733921794570665920110229628315032613610023978737331180238811199882728872508553699365796697996209906364638135004033175957493868280762851542637898463098373858231296971769822407928131244657913599058903783864663828699789472166840961146634344696323659783822176764935465189568307309364294693598455880834730949607357083357823686247222978631512659232706402719462513725648391585779477748717623460422999154843029459420504983524719588210220798722307020115059078968477910114701012029548767160210486058366695382935670527719206569086732733487261362707770233146843141961719917296609126003758095715550712017004241179516883239445662814764209709759039316675588210173492738577389638826327165930749928729742239217198620684241150474178416450757291732168697929073990112726197885735462723558150876338416332108396224783589819634763954787315920103288806317448258568956079483383480347272335422949473105101615925163370605261087574223773996864324632369108266478936845480074389612165195439314123276291530270019546390131948304156241284688830301167657852110687449743346181688688375683959658930936826453577025215347306183808422264487516496438321315228883321501141924971773743304134115818786247650405632791656500279523180557180626267810088827073461508227360727534211831684863531378724104105550773470848232869372647570353578457081848824801188612125752929298981444309768378561278549405293449521119794891255101046480092922511040804761578086686655246585895117855057720137739330099008445633474373434713329104197552791167680333699755302298527889332153116970792431871428576552185394142563074210745323499851523767839062629793411184890998365167805162718603409883244940757378335841678921017256147311201236774799586682189198617879943762172251453311119988263061927997301916658231585130509597307630353545295923479882417589848256176590885966107490999400421688790964144270751775835273437445004297439209835067924572873161732851563871370437502783883127286371041395939578801389515031963981325100313012864270765441730082098058167885739592898452602783417371398258593182820226054008661254557663509961861257522820645465364786068462655853731129561552387657178772997193954428883921285437841549529075747234653870475094835473448253569865721229787926234090034452529557900999230606519658540044335187487176012679092769505871233587714151502655907186344321887903731670121019499328946764015513276168846933785032621525175622399010470834493531886232520818524186316783715976443348872025561325023549749651496972195942127093356067524416836596926116998312842233372207010455114442098197699284817133097451654215450938959217883244396397236521815323620201591166145548290235008168648505799006983337234760958343058006596524178940726079334396416619288428705874586321652934121796869934214317017426528513964885567787731082892317993317305951089375349397068550513923478554904951733390532997988693028482287101049511694735995685475703815070020308755047799283961475722507948744983465770824610874271880550664570488055618058146018212851918081577024354666201071848757251709530098214490688264827071967288784696727684673505947928355345558307446176190364784389705795318089058785984495485894334071827407677818619001877483139095233867455194578077056997883380438984246532753201070944574096570629897828337550199967548993990986012581012498293854095528881122780725363422279997569607302349324270648230315509158832942718499787387831756712392890198482058907681518720949620686422292959325338429131697323502303666343993565145331091829164088662650546101809073908636655861094845921977566337499304244886380610009769382292580016635643629818407603210161342718666689865358325616083654163567432092404827177661876858913310575266514271867546129261021649549492708169732896832515787495472428663836899277942609968463122658151825610544734279659748333382499174461579998757193311834464428248757157627325148251030705359935807312581350809849386909592771379959524969075908856600086346726057468707710474823365572138085539090763275706255820168998193743998448102273375226523846051741408641223408596227267392319991371662167957888155013667470309395641564560832545100142925323828434791550029527134333723971419041116005926765563979888270717664590852113770905676462436448156830078394899518927357995599315464031617143456948129882215740716869662338971103496870791867884825795344724091629978503210965229449109896274977958110982062060139794992718224031124379498262594016090911777167719371784603473544894638890540670221696763868148598638062774154071759117866085242824469474573043034560116201088302854612718866115354928541799578893912794414012213574444061311095424664052991868598574728092640409409926012763060921982513182366588954550278910441884531573100647286355012957034403702399316774689628655288353404768541317328165155862967252708618230994035305759116162274734389077634481428702626565019068077762089700068040159537909926373219461896810857963562092854759520308802805149451102290878375086265309537421847179949864251982044675672109483717905756080371558873292419323277130366391646759639581487746093509669568177645382903283046397589505711199020426920743081830351491049102910360820191126307401554231623650822154549166094036922351145352153565036962724899316658528751995560266545704950069233576580845048668028060631247313037500622921792963957844177463708419864269957866366199436234430111029670308664187748054851405791726995512282056264001691688575671111180481233111898106178854539578844400277569655619082872389033963490173252753490075622993642540612334923639309550090165602034645967952421892205794146457506215595282925622232600194277552200663006141581548508486913813677035382334215982726343714501357271878284257954637317860852943673205829898799744366717275701588535012667393178045413137149102906691468301427424381697219076745831108421488815984996376669790487295569395647251466035727191266869905283144248489813555290843218474190021922638296917193098611899091578295055897260559511764006712065169518326730728013488846961119450985163589800167461686953716192403843827776292828070569880139564957146779099862955751192974399179861063014645431392855790464879745899322929605714175308705249416659722873514383034416589434267737902104049096562717347150271203578530210604039383216499169556534174761020999440004396309231375273021225152689902380825823790793762532173088277146773242148501473493851469005339258153614814426970437109228844520444800930083930888729447776720451383827100546454750104562495791849881226310621754015919674270342416814424742997644499082606935478054973855661995639742680960155050533501711481961146396528417631199506283674914759651586579504973477707871131504958039838694161760976952656145887442709780009653576996989014661420098035367849763306031904934809359631291247508261039664208425701577123108007686563965774787903447766173321654976775853816788114484135143766402311689110834089006420211036663737141104010060949350858772605924576743646718805859013825145173504870032277104128203960736764444314193612878395170354744787953750411029771632219655986409121694393143436423433847332381505587471288631907930584823238483265542934342190873002648347832856806125560508833697321892717876850780068592849008474194898973627388794483536068284441816881877907639175226295004752044128635264403185253126192248161407137761856123273967927618204937685276094766457078674470885746156640663838182600823740760724991881726161676689443482875503207715283144937694165456520896572428112217352262188602891289195106522818644250647722639594965735753570142383671335824742667061605681616907998453352262653920788502767959580728813695419017831536391757006644041632044618101392382887898244774439532148647892831984686568847511897680807745318432019516179685664105080030601264533831130791659066842873527158734543463387729205566604986592422022475222675735739360713634598556096437417678625836283298149184985612155258736112730469412002851922104781511622654090730358305473360631066426036933031852446526768826329109775055995343866245965529956204679979504296531139872182559179611990939563421479383920893501091167446737462127428601270462971766609307746174329670646326536823350390798105452044414112751361423024683917958785154173749791711254500246110110368202674176162814498991523185666901939490520802736070115331370453796742096694455386119127059253709365986213456654166355895659543549034569795393789655964074205826950251905134911734710876263204981625828077101640803259798309655762071512618865372434684037982945291314334963658744280088212758347758492527902264585460529592536530481438139574036183960957212824237879030807735930712653584972008589968787642749480001607804537579400774193248187658596884624679168422806139046425440724221962593379052019697685384602152565910621160779212538864021977793901320899816298894867504691172536862467150984050746205314607447112465263716606135811622525608399823624469245934383781806813402870296549050708740280835912059961154830054267195696295761807533293539367216255365923513131147089959699861494218942384286420331248480440669524899091547532818254986191961070916399357338965815456609199459754283180357297244092820830021537646827514429792100471892004207543753876667605749017545944574457475763054998130253531865129011171339284895441977406391544663672329563571168277808213136181008515771608068971985172488473521036135141307659781501305744146275654791279319339124641291372657898415392876689098018339766106297106951190745810779397435980912176705660914509854023524865358958181373732729274310668821279976929404630656356549537400093876919837398674563706169708898283329692991441621025072829409047151890570822415631916455575429190864029758799819079354119601036876514008390047562578113719823683825574688144687928196448807191718845146511297708741796191511570289925366477088966233926411701663371409160952987057640867798977873148611339380379500905219173233977712399134324451149281754563417096407049226228483872330001192502645734536337063669072875219205890701462334014920173029978620868997133835625585254365300552955015261098129097423816157467018528037513324696232340597972135342567477862663497695578632889578274011706237152398421917721141476162649495788104733552681360380998053734569952268885975169544356346323952757018818702740676051804021014143927870262783511191421112808686900874031597592122332892103578988792636865469511242885096298379403726664486780607331640075551109384474285779669479344719089953865420042550012073198663073311448724372866908464597976034508374515059683465397014668189208662026893564149289042497066399666101808105465579835650871477875808928507225331175874686977514399795317246043361654858647049717881802478203067428045305323931406944461564578835845761644574219927343791977377536235480339504550555694501732913077480816273092489633140435138516155711459431659675517018535301602397765715879256120267144068457770015412721486619100982503610106135782925621261491353747921904313744519568083117605251814037337519868660792814358985162706816284780593086719818443818773819486767930060162859735125698419557497366559879012932107700636216513739834288910302315922325639749448341489784264161861899814341649243848965679167170114063905933779083082812608548420125897181709727051150924779066763963511068840784976977669680442269449301420658089601585930385817442030114984922294538946276719705836392626560279826733643848910558016965768906087405655006700336785027153593937219685907249313877654706411686352480935685926902097321767643031484077928691783479686073258739947165141635833154887701576008023339100356401322515169063194539925429564291197369897622078521839380359466238425957577756872862740359382497240917652926508861791371068488758933228708637623175552230180583159845988326707819150338752639800931678037148693206449221543791490149461008340266535621247568378618393294246683979145448878380006939646623567673179227671510673141038055254561972950496410040786222965621973879628138487768131455119444399090677239507280083584344188393408522859834230460535885073882171107007187476488401451606585035809910606842384252132523429894188759032178670011264518583520045282380012033427337187186546278390701160267451864076997049078319315255350512722977123354144389802461081429375845476533250274199589542288282125570145893094782459396726975002208691259665627392890046377428640971049578241845792756326669367058762408241645661639901341990005370139936020473739045150684248206199472406115211696104635090787881596571164713339664572877827504226043298563328898682535075094686103471368284210066628924263688038345982460081774117735043446358607853490967704846535779904093134755546652118486070197117867322425217220587786253306069037579830845472349747007403911424577608312139060180913741609545549180805119893542194628084167899555796882770790705224275249333115053256050628447033703913554284509834257440988553598386037023740120468174004368306872742969169737247541730615725107863498220079950367200963924665014826970628296760553091274736590195007263633629041203909458740668802390626828985999639967071769505407586736816000141080937476552823420690076363269855686905220540383644895413833980701610013510433657963786270275283902364574168916512510765000937521900520041185842015122824595462541118542513483205734113707087500253272737794113463602490699529761307706780733204917430921672694780308562839610457354095345622770154468044717044980966917480825238132743750332280863514753506000721902668799427468414450358595384287018497920238518006848106243210901058110265794954755958423869817841054904937525614436946133335843293451590850753512161830060743443488958094627704655020933845362241608203926081669599384288195007113678739055994993113660990678688990266541635989548477717233474623618569477332959642065948343564506577921945271775203647421826293479577941831582039718800523841495260559643954713707813090084608896920222217538259034234960286471317916793691908835060579657765599097132748028630786855260673730586282829591172032251807961210723054919532734056867345864899215675765775776769082201333418746789863655587360313381333014350372492440852187565024434380261811482495026607161240145680460638710234941620181995607749604911214789818100311263352053239233315983969633124801149308724664972995267463000222533150971409733037857690162329566466597696987703481342941233041786092282306422366931012846096279779896182983980002863600218265927639671808361202479603084653442386351959774433166007037909887670935780242130209393465137769794432620505162571721926510303133620659541611342514109485204666829154078765152465208846408815514694848752581373164387925330994256386567841954648570053277266443484564968803143943958502456559417964706998370588208919512978815776533151823862810442534174631471622501404637932890033191320665382864798959823465275136535996777232617643301406878530510080433306569960469640257033669467984438178135207621819601743477549838775730080602482962840147874485414269311907999054340632442926910120831735513546476785606220822342179756637740451973963336859655468252349858253552936185112837878650763189583468224818830318543476231462529591488602205538850852294572561319683036476335460394015238690721582345819674743825123430976239076906748345560057690307202071134815162296637245386670330020807564432689362801514093911048519603104692843435617522758464499549169180397672958705382338254023216112217058850410279427279384691641201584440755748845317532009579688981769742671618581038838023897230288453932831765844277851513297148304027635380600059004906635645211618557702913674849002810707675577159214262790290105313496283630075448537416236997219235431369960786530579385638491764499458245075804952488604003740373794660994653282595864251282249214165260301291512581799681679226657657745808171117642256723376517817449922739088394674694925494279160712347162351446848838093776283105194583115369316168954937456553033118364370806600029681052216300657239848746528517038001817975316757630444450103086276811212664356946457007886277252884508165217539834648067394537414990174587443668602648551945389757076066675085875625561602725040175353466810793020754956182281379068472802924666174725202026728100043829661679700700399644684764040540774859605078983339368511633083094240902260990090658852755533710064882292028753843510261864669539810376811734452321397997790799290628897307380016381192955295938295370167680707099170465467112497800320961942514615508578513318102428523734343336885197897081611746559996923617465615402754085525122817769100320333582907802818232638132152707575428684733183721355432273022223665665203553115391693934024300777054744317560996447647829829820895646245269208072706091603257415791300578068007966857624821285000751927205344794628382796298221438530722097405832195509977132773565957033590648276300174440666680776139027898684664723122359825675315782613084423906246465919934783126727771948681599136854378522106247296910521731903493671926619873355246149657925711989915897521779558335358725452924667240102662137786047980985924452766305977487213987721410344299602557055531414489849916133171769889253844790783614973433214285012342921594288237112699665110672797686113192770555677097221957357887245061653488574130600564808837224901466849131449923527180865372547725067639494133374127427217632712759215777579149259405096027398355953834132754301583488701906882827833466205377927297862169672234944650867660111212730095496900100172867615509428115625152387075865378056371207034605426745485022590210253322670596430393740887373263731117666143159055120194210785296742686182886308926004086497907728053429043004804827269762773382491709283264869914369888463178110175957457346164631120150128211898147829425181899280062868715459553129727493907843244289868842375855689119051569709546259229342201598331501972734394127669612389739196427991587462799193466702899296347330372421339743413220640027024692399040285862588748511020102694939724340606886417585437107032082639897419387526958367015833141930913713524718401346687330404200496560180461880780704768009748077903087223704994104483306289952479830159158775586262801273701568516928420159919260759566096172062055301331231836378683933298049594521367971018696964661899011370254473632937840772865128248224597484901582524631707516311805515728135649333933453177085935619218798849420385750096183294741214245135295353972863315134114314651366097380989328613514171416470381432179530653101329047716746168120355352083513279506761732272522477923136277028428427299672109180144231550735966873344251372187876225106873908720227692983626624751888064793705635597451100028011988162224869023650345061257771857548757441354652014596306564516682982942953683099329703942408035347024296364256885721466754332624614197030461067402037244784796869715936567684031125526687594748062119450178183065724314024411498012330045918671231830129462334493066312785420052086705761538666324384480934546651643677986629743676504804720560682642448122648565050187923751827193898814564217719405483728424405825671221463163388441017933516652568068014405936624853090879683420126509358792905600509023622046337691700253642406176400401670808271705051283471513817640524389533303975730555218190428929270893033690016147317840957152128958949781952324268503634484445309971299227391514790203292295025964702177977464417123323057568620358139070616030374857552521957399382420091318152280265130741071716732104259751144496626306184291674937541772465809909331037459323045267831894975603587056889986889858945466957781880724097730484053389481731835763585627253155484148098270579092497334411954891973554176449488427699276555489810159088268630431660259797756436166725819270265892116313780435798663400373700777936484953647538206479680868170900669741155264060162689846737395518363548495089901665145733363202927688205280299660587192261491532106491394736560236506795157599662644298270697507524261616383759003054042377081730280402227843916176232366515721625556583629603852508889414922113757064738288058863938785575405243545671601984779678196400845342905216779692446506476773543212758541769693743096977120500971357090487683657968468905537099603727619239791746043535828367213729188403847902121467490034825305822828833179089569998567615064864814819603069222845271645370603884066920919643756315884627706461398239596292386922869287930177624054327366180445288086447713233997326127339170699483463420061949938933557497398738557313028197378569345989089384747652215363127895163867354147523451741196170624673767052328784884246031782290202549010664329191952987200426666298642032992746687098727819294349173882081016696994636445419125836258092113539647573265451157067023891109360435988171155975569126141272667335813495417074828331985869523416677259316073115296619868110111929648077077228385306234095119126910253587012618347687378868641022975527138423563371004215138016277257711011450469436586038616016259396433690129353646893969591005394454191992822212016235922659145214121838415585255896702447584025416492032567627389899703611301001504828370728765278982155584213216217725693292216987299359387916519269243040814938489597609490260570639517907178747486798328890227574610162515306989329029780270305853930622276899542308310669010972395077001575847766919829995218278235111298828471540956390688783900763287361342164005329761942732180386730567756968791864215012861180433475647060258140672942934406416512910109897086667069489530840906710744289040573953176422758483485886090552845613089149983575733437253899009927054345555627903857533711231884320212649328253385818162905536009241260030832292307861361778551252184209602355823049812213162273234348218809861200240277688964984759053852442560181128741628970005230884903933397866583421887677230675171364695754700934143213309012605297839964897673395754530235961326812777062440023976647986220190550423085564787962871219832785890886474943334392923659899413713421041897160275225941973868744786434010399070440488950551944209259479812482928941779276479614557340855053737356195433671551467764726695462201378837816153959830339624354330120595850873955932296669484607021477543591953922046181807631625165373815068379402082357585528856429254591563465522157663787376377955445894087039182870651373690318376530627249680209669604169231754099149424680793025021565331773558753193921105780689166037827039821267087948060128649324481606505119307649447458892587166374343391308247884003051527737553249392921254419893339333053443550194492761634144005113379542423700237603253263581136803178855227513306484069923860425829324678558034624112438811487086343561727119955563622966203054719699296611967257572414085240993305233389482572349360419052801528939472396074190904074322131470038784738914350958106280684355309842126616728832401293333880608641769348656378207370491132152246987293673064202447492632418096408500404934157217773963378882346919316068267490205459847287136518369952421075720268943567807966963506204454414224343182858646203606605662005583991889920494844300444742468808387317969297927081544362907164340884647173164505154223798428827130284745078166563725072285516232573146062199811270104743070495723247770068106712658193288233971960501252923298332083720520826462416904182079835325510011697868636712478066784941856567934890194128703393147466889090870974561516907442837623478708922983748182124892976420264761407866643735515805608783212370236687888829626333760839315765561566013756941059856394839237082155903283981498357813832643462565384967520621173384504965192493212917159050110981987218671743070641195219994484276195324936134956260605348655271368047065094515827515724109683447633845452210742341241924135245420580551669978134478391239836046144521573572730661995653879748183304311037785740345657585283394034454028542355080445651949832535532896279250319885941546785597780465305624624187018924317698662245788601222519512206377162473814323110285845857166061737733367272046846540188768770979057955556359035165544782453438468909923089436973057047201355456933547018011762600689275709844743405793939968698857690961911691656341982216813305665367916337024385081000907635938439836493174247173301268685825217022658631654021042804895249965161276607171063080253476617525193433414556230475249038212597637528183647247268571500196750341448428944164859431861111839523675585477646386834291868436690182342332454475927528583770303538118429911780882403442500763425276372388091726951488725187055291538041736727061464762097873357956362042206573222000754161509758427188927522284397673167568365820526027425106058325838739496076517072071696707673551954922662258720375355457865378119756138839890287993749773833992068247319678224243947212730993579375533095957818763008693008498195775241382581548792403898101400754821163011531557147085022338297821894070258355321357578004306290876787808089719551793742224848325237674005238199988276924217085048721519090555968111689553094748600342090267200122819657385252076240761327340565934713417759762469337782301792383141111385384481740777116848793356287231464157342698442848344652308265344400717704399531973305340544042547495165666951655217408491061168488278866812815300661920420434143722732481479191266836751703996646011189980573420794254110636643364592523659432753140511651266295126794955016357660718677618358250452158778262823611338224615198386525365619551520292250665198907052557363594171749667465295450005353000266960256325262560982894867872673362812219723179870912745990822591147694931401054441704608824017448837284904336771019850142442397496556214721117342547451593315707574507350411355920148720101286929638022341212732304999876746125900773997965761070777785568400030066276174670331454148458830840204727735017618747842417881094841769646494606860255859706449553943738873859420726432194021453586295410147519266836110463428353473830538061750677098723845798906691262635424961191856951183612085207607430250932809374046352936533232492807630853918404681685812474632864644210177464198866317473016123362915648982754641489807994484597652737635369303456324997235594278409333310497174477212795687476031172113391300826699779648638841091394619730903494654670333264664012370871183123321290213946091315002669099811448208769564284187433250699897056277953956076371699268180794286360975071017848327217771397952301352851861643840380183465191270558610528360146549775069649303219227710175684443315939100920612361586331010009509713556981220466929256027716195217275210103673762355134268129555778182096707469840925518599434851924618128280346680419188977435424742463477850498080020432061376783697842826307284973025097603509308694730246074371620332130829236306879332243752718739728268230705860030664783651874139322783418397237689981807053355483398402680020795527521664371291633629724852223132126193572051479397199079570312533982287828081509768418664274907582654694343947879786666739529200526469609175320734628611347913328260351026540959440767660458595158773805253229721597094944978867121677967083491134122574839402132674044154383044977190348416509573328040040280688186992529806535707812711757030347113115775242549797570091344137793028330737740640648530944747822465755258338981151352351053943239075714284244912706088823539959827006564932864335990396693250602613678269623325449607610153144874663327693105411683161111606050476491687856584560914237050440927130661629879103336482561947483017544466877127002937030267602809404562021817442787464153771031187325817759974639898951619488184597306627279242944950749907902662900698827360204077864956449295019498695263095306108048885807013776262202610461471913481647703364985033296687573875087276147456841021760345188131258628631247499296905373554323698161204354425873069925863723602006401331274095619524936166757329448992347701466671675117783206193506493612814130001142522367569230998352629769811770377140334207435563472748828514217995450928169015746278114179950888255888608693711714772079196083798564975176293518307954951230002334203093761951586751294474991700839024118616135629435534939230709347086701938355965774496911019270823993825176927084749306238661649063552538358166419981048525264121137585651371382777401837856115376676590433799034713875787560002608174532271875276893766844030477773199741158599868348537366855195539809082270759959965581716762486906307452047933878577529253119417468599895285764500523898608270394308998347319186636829130217061678664888979786533686287528461579751871715735586458908149882239981658987994560365318523350302978268940671471078586409916902478011854507043835079926405252118506938127349247080278771881543880949052762968402908238438780563925522174179956846502972669614258655219787162197107488070907612272975404139222930665566546556700075606799882579587384313092747185930334253727150274343508030348712813696265511416541448668364710715541344586379436302954800256375782889296341031070039311140158055979988132195420740942322555792828252622145428046317086121952771959212776703262610537137683695653187587145952915497373835096507537637681567915759345566003213334782571795325005217723870673766900577786907262892408250461985883937221419356931732487056296060807178648526493266269902036000683066442118709965606315361412304118875299136167074637937848054311670773128705057645900019560707138731598972709572076659118800246322445984239768315796237491108627539506708959877299941881141143616103081384697876358736665804613844246532796576582883765993561547944279722065859937810034510417140719689058221874685208611732136775365700296251702507103408832598739075989757873224848729221557924188698181873143397783715088195410115838808186840759083265952402407488574317192613618105296158490844683559952713289379867506641920063857656672205033946137179478714160445821001313416130940430415358013786939034354841924399902675482234995219645182251781863061727557715252761118354448666242798202742518765151633531301968065113637235822799820401373107172150029750669382335023333129120146075469675386276088629099261495185519454558879876906178823451047470250848842965772485462206271479878398972125766863220170722330167054479915180915163045991426560094056181816928873569506429914670401385396587851474375455005225640645232934655159175033785259178741948827034111735068147862540374625307899022184628164198469202493598732059068754979011802375029143613802684654577060475378789029602759543432535994498196793853722544892690518811540496430975114743717852363001044310215987414606915314942906744467158928719965665848824274648656861661395651142047348642367552537824011039284324138032478619196135968015549181647645054242184924515250944899483587139472854448158327360340986115982173026049376828348477537262020689400499042121585671111653322779178344200995096372159888920878239904801214308975223474643319780396546312804746060585616116740173684164161895832688762539583779520814442075202689845396826225638546839005033766812155377262637644976755747101795424963078821821789440565621250594198595657670857309125987185137702105439383200306572230400019410938372500156016054653676319170335415656564994570895392544309688066346891405034459601460808586198746241767785039806616661608886137619002625125243141729075330796134709022904267042900775005224689831106853398920340796265002762845716405175444306356024362066966587174595350834042120210105959782947367363879871340913409053308473160341702341471180118888208654765080337438891033551124189243864150119744781919749109349771588799132137325808496499088969002787862813349437365741920318510691825308308248843116446748287035003937766209730783347901800058950358852575223047526277886202651948106632502213309977647502011023890219564718099660247721679954887877733414712788831236224043120348843317696830214127730577513475961843220106002997111870244461191001087543779097205393181788890994606909009104043084852356042823547839855508279872646930926203583025775015031411726129309692051014901674869575876024364693646729461627202272097108549272004424086267891633749484288356876659299713276190914010102335479438194312412471520555675692014118870065098247850220785027303530436780045902531246194351737585362661542357676014019108037623227266835517713263107282485237242664801137466599569654587361380870024472557721208236162577955608796575400385256990623943161601875858517099454749421402770240992605793268964909292553752870664180882503098675650487610941676553201439723176238168653010560162149789556450866766692291672792551200143795583626105008528600123057317715177544588828351493031423620042987160205768752687475925966455673522227329820778943745142754331435623753830310672663814244509895872868909243905731021200014429763307049461678849615673374082798476576324429059009533612516558702430553848731753026216868540550878928395272228114823125295987045439068496902038704135536704435692957391087261944378569269089427339239046721406263205277478856092584052116744860393438595924478305842129527325484666375591872975620571820263151696333180499416259425426224150979256443713337238868902300027173906479232880689843537507648735579466021321713606313776027480166492404716882548053410568395076936108068341629145512711259324194943650116418374055893239386579203748461059511885628068424210309626023292492439577143923781936914315961352041695748126679699034819046116944204562949009912517728427492408457063448079545811985505941415113530977510599698203783452407435658016485340018226903358268357035111768498108729022517163308992714956245037381902427267968746343407894555510136326933739531295454529186776527226301729214008506311478660496071947470388039254286163679862023395709053143500507035756416627245392133801598075894487793470044680497467805563658068199168724213698387561874729753920906127869061921444485091190919864888366421651931669590963931112657568558538069948358366767470821347154319245090237091696536792879017276384628318778498596194515239906825657639794371247461871525200825285744609472162779276673115514603965330593036393284343095549240123355728471185607310476369708503673686691897205312998816918313355372263906416168669149610082825092209775142416169068516736983992026448155744267380701883958976124939345298778180031645783053058029300065660949091570689582486383859703281421430295817265526446271977480580853767340403637325427992403107339185098442808058248710691725204790752520827615916035685841414455862436727109617255606592409969169621540261776990401891658563536996758270645634575262897913092064899489495913027373178210618517276942303812259627590260082068843952760445792347052261971939343332580750670960150978684038829280599781011972877200706208293564188240360650661097378765317884223211886081301245033448337831650562167856853729197223281858520628796552655714280535794669846475966122693615060701693882666761629162592729910594093311427935153212713582154148740890466281748250101242818067276289106191349621587594046260805643678802271414005783445692865508854889596654115273140327206301223519465112878326265077403956609801877970368779941994219820509216477477312409941347476115145442541461546648569058260167725543094101122296234250585993149377212612016452114476843787421702811019749254884766182160761575010030329718299477358273942023575985708840976243885635544896868774262240704139142319256051744719508948532306928927854467901969842140334000334785071683360359033216074781192520810667653775144846717163064995084053353308628887503923307646109303285943770734437014338617984028026681870006666803985413866619067046463982217494629148211019880813625244277152999198501275093387076870125373804075631325680250035851860293865641149873496522081740218363888651484196917768436603808105128814096058307277040117528865579725570132429266220914440436301974762873197591586116744750714446024723675250177475275194790496334192825272421772015831886671830793679855740802296670896961029526538398926608091531835289356914001687740500317812734408333343583145652170699432237622619175773134262917131726660309922046568488181643475017464358418530814874839928573231611725073443141183691979995236069152409162380618722383369842420832164194447278160002102800109174933867687012441060314575849185915361160125212147509883636851591338490673742087430613815723313295977030691840600450257975468604916595158376895037741204759661380245625279788031491569837546079406043247052335511487453397546165844044427429288063196396649046435600111465126660044414036428465647095423380345885992371413069667976630918361153966784393550712230893033615575430461771653883905301706981130587581446419934026582012864713418961221298889713977675831562642864911222279242778718352319168036977677528809003443618327147518830299611922347618666779587852144271553513740220238210772850993063950732866391121496576581267131589709840298485666361902146974288249813762626547584230222484899027084335085842890588102752224732109153220730362254049670517718279412901239473237910705086938638408765566877192309111613414826210283850299461807490518456319250351980068684279239349530681407069006302676310945898950187405249736741386586368666805105192542890679398317495077095559747716937482929267749585397025453965484894434394884117172981227170736950640396844688117162865625071064563860616289663904285475024194724686663185163347272173514552985143853204087436717848411830611985713055902942209006921080727746709636286563592603878187314819738403192489065795380954851679907876335223342596854591027194115126700707629572695800540824419520564055189513685423566604779324236692834925218678214707134173307190563124893384004881757014844221176997873665256748891685831516368876961417377092313914655470239765824419275770767615837699950264525199580311988761425403945216001921937892609482682378252738977252367905776318641594175834684478270819893946143849302110540825079727264710007924373617510880491307231725170124838186571337600101638437758314213858115190263347719669917911083806623946524035132277761814610379197842536943634698485657687364178744166567738140856832676184231994612780664367923552271469428984841792992920645113467853592674777639746652886897550843895644397605258674079080669573729452046082981369557708999632991258895363585141989138765737018698513792876676410051933610737868075013958114036893280907910190378885305540984058846119177901848133590025172866967178313086854107052287854926931980677610155152832086943677191788985739160932153532860509964169647181207105142691958605818300800042925078824981557471387948759194175930289302409772555278851099753811782778331314597485699549784584546083239722213712840268662447628768702796032800139354367688608101881169131232570104744435352494423157500137133110116685306786911714649518878257610878744276465518206350681697993457567911493739427217069568342655281549074177884720643933762437725857744694264131063681059958838713203038161308236143822312437341658184027349047262121025588033355288153256940452187269795873261690467699367182337327645740689112554260696044139236634089850994102433342774141262835530035946296001770746042488890554541128030687375204271492168073088941235036121505224029611095744410884962633079731025278120732825407826132759167613822434952156524953407494989586206900657396536641142588571107963884314656128860410350590706376951323772078897126141856005236258047307763948131841073826031262942851501950846732152023895890118595563652253948326643848653579001641280569029424029274478835975936002806469031011851015778954285920890572321703143711477926910133185558656713956104498934176935242866506026738354791325340554037419753647360963304718495898347585186322198215592779697870441070390443921041755294692264821624255785888790680087079407342223801437689101428551380930352831439173571717221900637174003620926352187118070902143110058181272140299392328987420902483588149167791031834083091435229301129806541482058789280664490678592393790992329068723596232410504695293001887526075810367648019914633331383153591838547926384228196431996044142523182626120437921060406549243669335041038126322243137627337679682407941537762556259367951134928280486848444741266551972529891271600836034030963941322714912732785358450526431109635184630055483717976682408716017802861798613714316728466204036366320767002286696247490516290353425014224519822520062860909467799007225690367910868528796783362245634591852693874150606048570928290081160495769229207175968430263799766791680724580183947565450397888193735643044404171266816703067607835970666244105452920611258625415538721849911641835334570213939105049235544266404359230971832030120653459067723192717841362097730469901433066595881913893614584082855034137240400249826109142392292109364110486458745003363219745049993795434121303096856098466204912586351943911592554637677644286364986343814261019355676656372401355902065132427522531097184546982855889000833924063034013895317383436194948426823867147193252365363225573516446850188954819335199503944012313005852484850958402511701069800190658545510130356863545442713212819406132761725822797323466172502900794244663955541131015417403005341730466524694984565080514454461030646000431766831016910442890302852635825130944878267365446325316391195068267407309247161341255794008442060215190055468102695270225699978705453857202303786437513958768945291999481979114279440645705821051198566394931782548010557618876253735074613036080221750685249841368960484717746718781806498629111434364530862856245334574740212127573668517856679048493375441375925644836841193220752546599606596066856004303394011313596761666032886580725734183830218959857526228278993989544316302375397479516623254520658718268874670309331814569402142784139933505546822921974306778764505160506049126929131607565983853509732138278559926827138664144683671823979536143314905789435395788765142586189758024953564660492781193018560043908401999321150071875480747663490901786543896753384619707885418754016768083011754865494809932264133440501562074166351737428833644633384023883038375668753745784150796301477523963936639889183081596680407632127540333948722802546833051339236247978244432779932494522345218683240959552967257414756131411781292799936119520379712886971817055693269426151187776833828576012609729923552025589786840634216355909223591534013012358371097278091519625896891631685750406318348975422432164169248513063480569434051326098209478741777402705341326847993394762541687050923983007107076459735057025144575273899458130012468866436224086689399916202883062504900619446591136830257563819432187928846121914075173164399924225931613169918040985444246784262073940327096024057557634520471709324688324647247170786499868995952799025226454763583780611526278471254166198318835943977117490530165700360286628309664566111258102825478990381288221891251209071040172748759083142227477488882566766455303265313540846276499167247996682727860719639873002005572446472023111111419750887833595496724339699042564778748404580856652918007078681318331052452664118456591213258465002761428135756759454181812644398222742895785505045866772730062238939509099652989808841152980142199722686589295661671547244846023173491210395371539604868375788484321879429516769482560753260058328459381405284010577298977034500615393102767755696204361789647950457196875637647901823451021902480408583261387162642139638440393320158401148016466748493283766333964826005495615750031656494980265099275161530769543873031847569306678844537749662995522961662021488333163415942079026358687148887219707381072927194152821794224438090681806851616218283994650974681448951539783080606805111448149463114449754585297363322954760036151868489237743096236967573303727021696105435112659079473433209284284526037120912110083180780033516556455341424570441200334335507754595815764714759410914406569832961792269221957600657822054079977804322049531801832973973951860246183527725856682077705318089233353805701067772881304538632735472241725233583196089989784972502099246802816064684680913080494056905971151957989830248935683967930451718801922209913001451572720936688403146245826871096222510617980470021052799917073384579187845541235333249875204087929689025553069262363944159148538975051521281381127592793869688376478644954874315384408731296999727547453076663620646152296877352579285793432009197490040293258891606658929847604719148235004250118244565690251516428121785204911259208296113114663238839298404041993838359168810309877894035176140491985614064560516705621038482564501827396678412823546070185101673947730349349933122282737995772581617799784228642930075431395693830118620434774123436648036184356936875966744894600860648187366755455637211407548676585509004311968430286710791969062299610042829568710354408258885069220372652140657981168856558024164601430281848730256472562230264935878407610325814764472798696502072119421694192599334934748171961842804195132271185613033929240758833633177903766476399999812478498562924255767019680198220282565979088578042032839364470361164971249307928365271892430538304155408504775343245727391488648209839076586366188070849245579477101703110435640474164553742261439895024627649611807164892586022522453731375339495477711081218337685629579350600529084748736052592979691091352905956036938139127849873742951054849002267658508277915195338405775680752738660575899688746141457782478754265751929394755037155401181375287789907755909203705408270994323615803534691418122919822617051242704046485597949942608360113295357284522953405897187661940498584342701057481710932751469830306156849096413585986054244825456061142997147125914001846599908600114217483385763377056873378256914986088880208870899496204176641312699965433446036639462470303258486771972525670578979774484894905161228343483605345637907069321831032580949660183246897664726191058862867103919458663110300986951045027607248496258030086299413390660951487976141394148308198413238994474941964695248760459379166107085969282506254120718803559767321944194386706186709522603696558623948975130466877461308294072181614207607568455535894579804763311287980677680510372112300233796257322200775231976809202498258868358774550827033286034228741536709910514480732938276160516744637226950086216782139041080354864262213946467503366869232542474269213370909037136135931116417521730889741534088667334973787018301237169215275320819537363899561335681961707347113065941362516472949277991667608885557453242291670164815741096534277070847241642644213199854508842540044961486844049161017480471554893143237183930829822068021223007130550061204638701786463775562257795627226720765204245406707826904328086599778284834174362218089573062410256558625536352235879314283607574745091052961386627242524978126635572001047837619004733318714016064933430457443720288353841945704902401121566061166016597525091248858872841847554429250553925276357710602515594360452161629654623167031553204247704800510171713151698721359332185031741110083640713957295268048962549187523787719070319585913327868242645626970927999700366945133057408601517108411567460240591381080161715964199766497467926906645644358421995547596821620791301648283468234683014593575008490953718934613576541810797359452201428604039401612939373417909582751031092270062552646969048004213388145961936468718203565802224295832922663657013628111014621318934365828653699283346369680421597464426924432794371973643510423680741376229924861080757045343976028052983532446752587626585948754832335087612411330153061733809666350438220644094298452829061907506052418774227481271339114842716518264710753467144895937940910359354693964829496363864378427498778912086480472174297771882819944385207975360826526114215481570301055021080367224080713544841368490854026350988764358937921401376674559837677900635233071590516372669283639946983269091374771901001774352334674904061050365665111489774108272411888134725747773830178743786137743750490866270481814926392281826056431677167962517892270155313076088794731969711297148695137323624504459183385637791259580057166043597440305228121865372634237087009601973121867058998628091778556183953798295799159172569881327780808578903625288554881638541860696905999550486150679979644001684101155538242981023330442675111100870559029077613585141218077261839992169149940629939403172326170761500838912360323030337856569943845502409638624759490327091503764217947410675161421441515324467040009060931980526321090288149380607958327976069805101562298777809355785951816725943043472530904442658257336822706370564744548436687086820079060641537550939813478018519929616952799307011974739586844617385916126976603266930564694942897974893056294810537747261105574550432807725378009310952593056261316394139070634656797697035947065641021254985191276630792154164125791632829713789713829658988133957514608795749793630257510953115994047686530263948809746069056229617256817270993090854785805894810778164336252518226695740486263817054354798210266337034787916501987359256730576835792853945013658670890555726703112149012307790750188051929783381879246629121993203863205183808908679916789863550966947612071773423946111542026651973575655091465467302011351830126324826933319197618193278735704706981658949078280601050206471240626892098029611694421156442461214401047674289910548838604493779637150260345094414215159901638206397232284999573855628487702202126167072409570261535569147095779385534034689715346485096992192364840256384468717376533742279692902365253054154239787817240271967594458972978958853565127025062138765263221634578878080889337666926315227418141310580242965528412578366813453750909903474518827085089305864371929180356053089704418412312855911318584154084587061343955212679322255156800352000219652571500737053376499876726647833715588088711658675678167343973150231696962691427472237336251318675486846686831960334818266522905894052079671704801245643488673988543371583967482938723678335691391357575745345523490015713205723961517069998418522595890239155546487828319866259470064333348346027591702809573402670140351128258509350743373294078890067284100957760247530788561056374568275895924801233725208100865040662381907014302328195774334135624177851369610593682114497391727205641293731248431966103340874857218722732905668123928791553739432031701867627591184546104672751174382160213817020650647034568849270284459978557341256671340202153271103983555661138968304293894265465650600235015809322369363775925940057063357011304887029022397685104507935381072229570717585831567938452602183010220184484923967563572234185336660551387708157076015666157083352426413453633271716963638818449317017227009439944016624694526059038608428818442246295581806382511677558142064491409343933955528784573775345788507705385035660376267598467042387496338767911669303039219952399448419225713223796987991202160661145144714440792724231551948223241715843268019274992863689715012710339798763655633878527092693105274601823539854178688312757963364637755988668085922791650537383861683451858908612522602312196026760452858256278910141477062293897953323146485746638974392796038954532335891235977831456108811245478869934148464723530032809724298645871309146830483612038356039062457158275129178236525294993907257891222799951891256992669056157178042937015014285390071703446032270975496626949178359263737402539827544600960041467095581921044892181866181044022814579182344627932029663122416744114638703152339663177111253856576541491370270399790856118059155196603628248863421894881865633668024756987763146409215157605467954110701142305123314556715464614613420922191753994261471137700273415343888560280022832474882022001577273299748880605918259014952883107433058949102776869645061213388170972989215786845491768353500743845099380571671644495116455689064659312954140487444733545648023692872748267265733014387934436565596538839851263080749764199176784679829012564777143633378134033776816865991584129492162476897815345808656759167932261517691063111250178721233781939165168983860391913843165864208390940275231728568380932513386192088646293783190588166732616786807064857546993474113072297276944146076585260693027455233441020909436834163412210666569117141978206835624511684827578754128293218913614889230918656224818393556297822609218524721338733877260425505795295787996459203556428451590128365372925092693151053045766114934673555380780051847186449541556496345066899662590427351666052168395883385050934878202970577417225301061344952498249362321147079415454817072119522048042936304235335025894400796640209058660276575043615507985931633878392484433755251148831787952674659653439249112864669573886179070438812080359021655825236574081735528680532830505779936987188916466267153572785056173838870650236472888459863845232284865849446871860891324916392471731054861667961368637126155726254084427609512543427975019409331436633328989167136384349679420199602569097534489515357197147454841032081007735232262517364961387724804324849563153850534175097404006579395153092104437165269001427749735270777339039664464075756614628545605929822656886660068794869556305257858162398977445919165611864689489889189869214659394113336318827514692057211171921012597618057313690502864289310143979962845580498340816036853916898563290747382669537332588396396792279912455553213888045948561188901783852872258483125134793336263344691057471825495666730872554367889700600570143299628834004872306864963150578392261461282642348822812854638748586035091656594170962175720826454763219661716921784501385930173127768727865426672551639269260726889595818167120157645572239999213387244010316536119763226582789661987969349692284651459698502525984823935082394040113570614154748624020292872497299517675146568518741969898902555641297399427746970529664917663391174617095892048427973486673461158950723379890646486924448787315900636768708120063998040917314044432561252279812067165872270913789635962387353772529044521419927163123257096447627640887866269298083312676709492181737221648170996407962530174987837346874315176673793489283371604525678083445924455404154934547757773452332023984139931132297289813848439950351813830009443336462565090665344102439241165325337145914613965470588256467601533514557848253950103044126626382965029624570069676039347143889228798980604959078591534972264673814990075265252831178949459125260578117667683868363211985795721011303288889109371142789460148355568111643456909844649065684150518690432338306583835229457561880646180242146196113715878190465992247092131553949434366176515723638433012441628102742985853560731998066956565147802080425830566784151069622889131806073597323538723937279987842106863041700287799031097394463797343110248017871006362501478220234237400456141974753693208243870489559548627726011307442783142005629599884785373818056806358194572234395515031622076560000536483485537873831499519097877904591323531442064607548715357936524469849265460458116287091665865036983450699647679992129155809640837640635706065301499118080518537461672471695653044531895823498897954870226650893365721714804731577828446094755245585104571558186040474217303053848827596980875850566178050740918770610883742197726461975608400645400796831830174044605706485335981943093020955539611633974935593785581464523266735333590043443549072044975927957176964594688073626054692406355278545822129202531231014680960550773318782453028508007355272168110850787282810112065302030074611466174570342999175623995928847770565962640196909002067215517257711438479356560132243951419267741304109771082036379645003386530052049536801144418548941301904466028163964136691331794812849692978147297667483840736341482454081366857060934575487144708962009026024455789436645027525525936981174786814434373890801116890861830841417270451816099512682090867908743545567414800208143328097524362000933603229960423711723959814592351064427731879519218328578558056682316967382610117771440355582386195533288463562372333952236274330196990706601966405414683178647100148027927482771582202581751111119355095076148279333376338032365382493468418538716906000339431847067436195869588137520650756485593568719491759162514725627521343045662931589634509056811229420405068871768147087330593604651743046246079787629708305756410421039689211973883997842569089259010364731494650228237954009756361555220599821504681895395816503179729037754765751241598686971069393932708884969959447274574020392733905452189995966966336354958529120354798684764635861250241428584759532791147054256557849660009542967708419371353519082128779411131054708387800176606432890283024815094664835611954559094997143627584253538956001767901500464250968817788350229113642811161959697360125892505855726840322469698704019585041670137238752289869206132336577694003675605890612121065072403565982289150744942502899984392380014929263136360591900093188081636629178677739301740263870208005831769216962253238962463018654999642144386429190615487021535261714714779493606729923712301479368287942199812149925769505585576089492952163404017358441696144895994819536890105601506085864155090572014151712722304032842593256251360777870073061264715363342299378281082574982542624196330048374702742603804510281780811170366249646095960231758483671588122524394159988856537661699462065901712165999761135648910262228838461132882498472120562490232766768171489192012099516999168134612895043300521449816850756062091785384017255400131459846916875868981235364555511371310150107039837887105665315923288968184647994498608246962903407137699407365888057538761290643280910104030695477827056520915351306501553457398418108630111452934405016534456223074482817447502039904373198021989665049350465597995260910272329379124871025748334188062694157495231399728742390073005103771833949289078802193755954084432858993140272759129593089154292030573400812637776536208458290843191673983539243120592184319901372666706918277846882935808636777929775602240338304786800741038250786338070435952772282824876211249382835292854974246642579385451747329756761103120068453388024949461699053228224555751283329769448498772013160766146869265062405771673667490025113744964860180018425215504783413233509195741492205695504680079164371401236186332582258865393122838223872226107431463131494349867514410564767081267088471887774442281591578961224786286963706243395238361499323142260143683343994274921599963415291148440326772244394455287962392670688332329157385891539102351501480081284953584309095264310517187065671551974541402212443455567934318912616106515493460834449792097832100088749768831765783199595729292287454797665640835732477364048557532988508779464787545801628385373317959071699016425519008702928769559873702904348447945917340710769407143997574419524061033886306705251254654373621568294039587893954861182482543343616594008140195079886474626669999393507392224093657003118984721483452242807183632358734477845551868345196372747182946463010220757084150823620451804537766134885473548626088528963329695975328153651729304484340061633352708899124781117061935241308081150032395942392719668220275177135557604708360164318623811806098893678369552579353239697161722773853508569340769472487494850521217825821564883592684588773143612068665751773917445782736417095952710006677854116787105017712105718891155783804000705432700639958851444395303443125445015954270651117369920932188997666335131343886149465080520025931380950648665751284935684137931229013788718131219513150544465307049467499132918538709194063056194340678463691270931706410536552322651926575579890886875613039161927711542415971142572900318775398985268086990226162235166020955983628161349500400171839211884571631991461700437558710170603551234915998574375599831988271419887100816616379027689936251047949692029378902288373113207971114424004304781230103863257882063080852454465261382129961486444783943742506873744709105447485101074464763495116266813462145057818559887285211584843797597708842846776114333588268420983121524135060919046808092022088393775509916133492033313758590741426699265799952694035840968051595415789422629555552162928862097635422242637613864844694932150374458553170911719542669722438540962578667577727276338530423131967509376350757316287660389537153785294268641881818681399477449150455821781953866517185652863431303548975758220855970819458535123598908330294574474303057051227522759256330856733186593343708959593536756725856524321560558708584827093925839027141875737246626750055190051902678703898254388947632327839386336772808305860088057459189219629833797582481290167490297989749925755661422317563722414390228075245115936409594889870467992214869012594987722919714224333916012493732262273487770905858463005688471944752757974361898305768541673298013880335504183154639133383573668797497475108203686736842553708156760771921378087031712159596903818502414698403644133491256548920124025239577925805112829280981847766772081901472919314314689265840198555376485659015264766229046935062204442453147975097651110236289246054504547078219579255383443657895369562536377071648571230595624444521768016033170657820334457602370907603884725877658837139640939712079996368404903238763858495982801058068018198080965192694613251756703039941065052471501384209829959388765439845382227071809618207765553258394544302958056782990720549861868385540918903767490337147470475983129261353634526923848038669952245162425545498406646615621696979468652184786785799112800604363061701906693900578615406447079417464211703209045120163380770199868638344959018657317327767775443963488467620473951912875003228297735236585882929218561793090387478119346563283915208279101104375516102066177240989177313334311251382113776930212936641285192973265956206308821514432961881948864201596157753920420578216879185615491613119656710490822711512436097833804705603819026156380369527116068445457086777147740779898632411870296988113684672981723694448649582172517240138502373353184501108351226303698842361434904698022969382949394674827314209519507925023532847143278470367543420329801289905460615500811902182182542392689501917167269775289118537457144847685961902514574091220617572413627970501710179441071882604932097603313932421821508035974198367002279668382504616602857009675133448410583332148220985032928871181413486985579389328817229368309466977147957274466697630501198193148539645154387038644959711509911015208745212309091147909652695192835079666353333909092077446844275410960678089705658496537345689049948463438650229776164308651932029056589396305133424250830297101733482349563775502852997550893060408524840012958508457971168663848784339158741881668109755509905999557223949396078350431896349565467740848615449429070846230581737694515928152379837545167731093397238536578045542149665168209192436304634842012087802871301103080365766277105233898034877019491741589687720452227588169268535812411813063770441525169429337462887768363441158307493162925456240667612536690962046275929642860873525471618533760023715443657488650439770844569816417074465157228396719632969721758465176310600791155963315706535642845824918559212134626041615230733592869930837186929811890160122966993892661935609836872603330538383733125947326174010040568556951693131913398552789495120654234468226849276306695329556386921540374514241875465514514859879868030224236626474354779903696701980705786497983945242686582197025599866463833530875308609069485315063140074708028785806825117048100535591870660969840162252778015881113996064725372434427726989716782478020066506690196482706024412722789818104484334504000108772068292948920975107524301891427553802305607074523713873038827698682099228511117498145851782886305467985716941568033534284356306925239775882830531529833189534534616476186956574970184094259428081545768756392166073297202177865223928544119575755935667604899532804004694864219634156453714524080756320591371468232914143767163943115776428500785840721931733909915284738204688842764560270337757037152568241940773101794881236122575362140405703500226005901090525725148339001998628723271186736577246052076041316680963715244262059884051595178735033287905340241895504433542356137935100896852382142832585020843589629382392024729999313152224169702225811676207744887751542688718467416822377212486236593867937706242812288646535318450867018402378697154356455858165133772095248932156500696331483173077135865307666977401837970700261953914121846934721157950721609617931617168252066066880493594748625625049854248890911542422710797644986157456835107685143309383344048874689343276404501923136823592259070199483362257270567439797998581256603307394496467494927388656608544347412242073759132327565313516983143259323957590527071361412418761632323481370179401452379409130656396273354393765424689590701107325425793361759434614138179351551097521848172821752413678640017428196683522959946852047586383751697821802024437524763859400718678536007025247511093288607712881915907122985989349507439539983905551834097586742315577110356402567300950616677293313148848350515831257072318048567296960176267275184090659994177727456247659702147668468725890839151989809362282576325549415338284752519166622535115005708148812113932359839711024096233527178380208572274239873025272183740138101439549542316180649895009621122802740763176505477494924006166113248994654752349186773364685331340141322726748082016411223293549223736449722030496318545278818159505135725476344452093179498152882271311204238010641141045611628919447305882139924127406106059362794635168593481226210156963640923672448909345769635806504223773070977486215222772036653238603566023742852451912555665394949364792701984095187978647624849703592521319771458949083249823498743164148802388229922824965825777259144503586740818892238352932722752111190826201666290736501581804955495006006552454750277658355990680902739027645001576715378705614147322646991261477294826494664722052148238487330808452025520300496044950395597049202295849168579461499615311838522096626955186149364125872328657183104793813232387975241873883210895775159596929131783902147111482557139941133753022294593410909533082900561591099348401778046578817369718151127221280438915909170283096030661557017739216683161971213058604903304896549858308555160005531564881187081703596089245807581367083448130821789090767867643831952221764886371951183647646867140954091698746965391147073838226699376364062205905082875026577496645509686060436584356953228457933446728980293049091136388459289930096337831557312012407889600373414674868525430346199816125795770391602025336915264228852678211171058915366337566835154242401747185287562912928763440474230745349126537582679502657884227926912252444581689470408821219849543696289443477914470360902223036119576686214744238052456521339805700346922946925165395895222915223975257736265702402511555418941108294148354233729346923729443523126935100040266346609643226932633244038224410215424555660687779689726526637750392467515210696727541256661523741126114981613028850528702644663857621427005318346631484940150328528582461047024129389896168084512530148863942512571721401401267252090005651742467645467995794615048287489390674336849028038980230277903989833793420956738490316026789856622542790827049925798592518492620155490406670679045698180391582492662673733900041101339588058833984002078432920179355363310628717394209364192258583936765754676562970301748998626781670077332635254184238196574768444607986203316337114142499351723044026920546918023388831950445483683807645936652212883918130215349246165811918735624078632473469373174277244914005300797663524860988127444893884624421026946256615139891152672830883290334083304490921213194454501906677374788799415570417064545634761003038275503612656386488149693698092567372786313702485440538212844814432225274357903103281623852568360011638273236897999771056440230203890678636807286569418568392825576916581677466920004865760506251773241400575750563793908886996668757161105125667360910213362473523749244527543496890071979182403989541814796015377514467197428015393001363784317231396878869561880074676753476034759685778014440571301670051815327365694956468014365389753200955767162716978282991302776752996886053012571931649682115736529132476632193126910658454015445749664272413604683316175478436202803616892349693188471952729144482046866170487795916722717354033412260107356898309187890611288667187608388146861228670959745267760141595957371847914945897191292748803673574770909504205243546246223023062197938991692845923554295921417307495618141305718071707652192262500398060046056588443516892283486052274996334709692573237899651317457236035398303856185276884182066900635114643540495239634867814652957128829982217679191769744926971188163715910703230370024398932389001441716011870500248634509777145289763371245818826999112442016272763054506171340617143355009760567000476619073189374823290347032654880275331326146215636597345057293206911352748545500306902953725129446284761723904654895639802231619564391895023152457819172690859276658508970311109254567930285235876862071160414697682317897749573232373749909581442785049114827288994042615756331216487725689959212617691659036579994060234475802495705680359918550847624108973939380580416088293907005504565194867758328438339701609262152422883369911526927561879338207504392371049449756038223416546981372656966926188391995372278018049871672870699415415453832975530023873631284546562443068414745167922370908786607482719431293401801968324313425565535446289971589081923058200933760907013999948160356025487580200023519208457908752988071561874396838395091229475758064470515395744546433397738147486772544811265359134277819280157002026559606727416133402921416433100764190322878586131865113468460294926796754469475837086243356015276102727838972219312916472642682490146618515061338619822678536677407318649303376814341031505850410519572231143991171980891038029287603151578456455886540221050168012684792058905096824480730854813450752768895657245689623445633896823604866817317166771683074949924709103720137126030531465285784587435051947804346162047953263585746388496719841763968998574721658521593026778831038883493086600199660552142607893689924345580453809370166245505266679633835390182161095951386454001131300878777287034892154343305849701265547353360688539230579710964200793752031606666356632844315266674239905041224133514852326365536316787165025779671796226677046804826736457396352911815404429726027058806942755427917854961634057635097853787091111838758697396068450502891605414795143740255863689018232232958569961904504753377811951617959740905241114892982721950377730236055165204358687069635910385775389215262687615207498751866764231054744357104573973133000504806463786077536598259277956615383194056408700336296709741788496593349626320356270877171087319421050927221903409781826266788313128352348983604450401201112117439967049566072929246205726292741643513067235596165609585998360236177127989008170849803044813159331863768169865234688686632244439499122109410186342634025822120280532113254968116879604716089839217257964411622265815482721854114483656569496313534321182131328083680752263589110386616657124032852353630772001730271142333553619476486894801515636127654445789296629234448520504597070181417245821884679121950434326844256923574464275049510515691649785100576531205816804337529612822585058174338266658360189680133392134065762164627716217785881120368919808423915976644028712998626089814374957993960199572440749962630367088343143111049752658970163020534783486791197812344585784516671204303605100954410503558172082627045019057517081398984948880630506483441785062363720365971379488467639088521021251457689994877287424910336946236457838667369647875340996610167935078229297581991162771324249798316288815065328086986790283458088683898696814182373648314797102062109466853658553242712518039953658023191999806112317600836591658954496692337617139667334465137667876162503128438575395831664737563640752576066272550332354619212005997542858299617014060198630127639568327236271831220537584533880782648477687486058845174554559998685325558955724317398798832940940395398018125277783772470162113995369667675537142225525763245210260804105926854221708050557307738890534012681654611209578176533562857357008497072609302877396945930894441718495343952631159050032217921888237780172304291509479523187901181984928511237930524583340534149681819886816549733767857900663456623531711570307667147260620694738215257536187838574654336573644657910948315354436123983210357695748093781264443789507103081059004414925444435904986281051261861071024839206267462758938530382207088883279399938547723831037549108542326079123776313053055584040637719435364168403258736032755926451703799906015179575080612628976383594417535611166930996055144733196382388057342381131242231245256024192134449431383026038969619299650753352884563561062573179977544477929743833435307981462244152126690842752579539487000399011663528282265637986972126872456991568189528541505251175288448420343853856557301567155155348320666252725860925160173740380944938114907349837303248269905245571122641263737426819432635709061888395258452046579414457451051415165238881721724449266198528911275579983294740310013133213440811891177121384996150022998272097862499769042394231956042894232255458223170652780458971985543275025980896864093335268240125727971976047659677527353345478714020899824096991555782067142342272887978936674536575783947647382795004796928492890829208378868001541339270678582702449338023010362297887557296276036544619268574807105937349085849258705205034439329274098873815335605611754873351738790523719839911043315928670061113791545735174179771170467446124489152246491628916010907746209012712473020455353279372546164445744436570903887376423954081770385803503745186485696871654521395435963516539514481480262202600384068970994351520076126782680255560847111823411560833051506967674200789410981903125450520458817495358695916150332349698844028036157647444035559774187471594242062861502818675940014495176594126173083069619698394800393883611926780266447324246009022541330523742023396476906677817523591903440803563369186302037309578527567067804255859950614503177573769491447339960558756560849646723192572541623064687798705364482831044466867830313650453296963323918154231998988665159349774404483896251278928872272728078722986531779576496192057249980950586557627006153439520545018490909860908256430303698927738041065510127201006002336888220546136077723095659047592137498823739807312768468864296053632965221580195016270439351755867572599017685763780711356618747978580992496260956768532325358598772318934411389788964947634706909046397307791811944281396344950044168661630530991864349908997133082031529645733968520993986172384866039176972650893290615738582269467031506352187875087983367906959733947948463358956236592355798154610477312694522375128659641885271879278646433960749588339805913342302211925008987059418288928929808140644970884291816663368271843354601475882354152285616201799521384342812512261375853970222705751333890904902505891863735247144152108535288178795036729991940899505836777272566477123189366392034911179095391501956070111791264154581929634972986603246269632350987702362265656826576521346920877343543878430339335180193550955799737965204698553394139906126614631458254498313744300839455285798604294281075980544303452298853658146482439102841735721379328563417434325348098195755582084333281297554971969716695412408664651609292975122379716824240422519932067957052919252080244471160066843165155234539731701230107173778821371154846280227526402275701835730428512201770797753852789591942786215902967880414853189088556580242123151406485802661693889901879866992595517988819816802494962857905622923435133616799303036123748842870050258269853060078035184073412024747217879456702317083572865555143821121313766692276499779696440849671760132107529599065834590073050699535367783094958823049415431837911791155235843337868142453602965385546475571587898893823924298418394015389343627222870975586924278257958951740016353576418881912740595701504086704094548185566315409567090423823001747261997083675853711018288743651552220305333571407799576819648773687799361513130872838306906706710582044377221697808001833556633267775739846657934174733334623156029537861486050788730845561345989072469123276819895462408942661078884784782420843581496399016035558153679298216353899933449044711912457724999073050391538868356975891190310106244521656441429345481674140971850567351669707673794761119539958183688872280754912026931277616350243808311264783799875832068514216942209961745309312640116561626422720265606153703346536301563032413690326219020563931829093122425729729480699131468144613328274305276887218331477677329511294139813423210386730956479808994232691748847689174874785619779215333080482016401716048748737802043030015723547498229659277761551749178225366302451939968109408594548005896153576693887029709416326841474509523248729438967569336232567564655931946532629091320336754365859066333343460491917226608006006030109822551162233386664301753849113910584456586828458955341823763209195240450784402613023109415428727724484757906839590532256251077486178112704800765804773262741794941143643349811626234512323915506144276131441690019707748357625427225913523483644451859689512200087259617212777172283032994159828033582101986031714425769066073261105995463550643016101363639132297599885961044228886037341102567412553289144453690377852449526902755768536002389446601633524285970385221261235018230139470907200908912998695861041442065092369650121620177350129791325269878123558038371015371635644410027731675989500983134842671028742606724311302171354809663042987085970627352706433207484676050997429882556452106117900639644602212934115215713938833459799947171753022087828433664623715419926359245149504425729138846669598906722350396407304456285647524046283556958800041379828715762584309391495316391381288926743073540448747496935056353879641471264705060546462298859372586804518626691339577958872714655812985537116740233541097584806986763791755049778885868757894649672748100986688065342195874375154931728685716513051840663238109792300198253543424268741790792449241583100352646770982425588283701442842458673187886613134244125067836818543571470294883249369832223871432615448662861695746301577788921238155607392571845165634889459521187402493488873201107219826335730679731565587859937934960521052545943759284579916430163208114646433028331109720583388455456367923486838854712426807458143152657494452648902253022270287418124300895572633008745662791666778998847533133428721255703091932405503352118579697229374860212731462136910474812464320621746421316430779239656737959438020051718803030435743493230021211231384117293232481493890385366310365204051298250119464218843812893608186537748633189030285573639569252518139469732114666376251014890479687726150075721812202138708846171165814593734310720474562871438660626965128130613880912202957548320225080964727338901826146114793641730884753733933688462273681211793114984838269101861488896114492186679148672424533475241627262084611993666137092168073401412148365908131392142884978313461656524481015491641542734982316187648273009268554475081103509481981108247606669713146396997465115920161350898001767185292194509151341205023496426929663570983002144486538294858884344627703550742981749583107165411984729206305610597283613197669114237846385304632008685629145147515552930453463863476206284464156821626840151893070747907210411637213351862297561271890849714309405830515197092473467122935660015388020070211960194545470192702290914362737214187959444514242457400325160488377154538853719189756498586640838085939008389867342553434543336055130754295347688764663595851042504397550027619261284798285204776504740821084263544652224530553380531279770224641000697347254769217266056963994867671265246859944399860268622675162590888521288601342216547745666499276387278167520442481385572843769239319097186331139725362117932816949847494640567608256192594517335096829688187235577813400919676104034799944079578857647437527760565675551465146850707699428215148654782506543738619708485269821842983988209846226495255215405992674526859254068903368378083015789496642953691904236125063845235626769931113828533222260204997598330338043539519787812219893626663318381721269381388352021393227391945828718320855712940216861319216752557412325791278910211028236579638466411773972164678491751200337718307376426136112662488893842001847381894178289005805309011702728074939908340138247658857596577395692926151770379462632714082990772288767655304008094077797713973645185287987996640868188202541006035040901471833378032700279207046404556452178228997308245754082522758087143551589314763405995519366033872891338815974620163471701172675677515501799835842720743522860521790091632812462065516905287737508486373454886260968014252285475868608349782304825283285795876721981883734102524967859758745956068515029293466960426605622123615060260287390534830171441360129001809214515651208533175645353798723088243207937023805244367688000863274570185065116671056271581617402883182291169402633452184587330529767941683112067138082291739424218291965411616822523337323707163204464986687304111163561377528601267603939924741567460083498648467852089696574279921761711812276395501501717676272578123556460393961247813564524564616269758487285975394282523740341305526253431671688356361243654141180582965105488525619246619522694715408368836926683836274547172353679993410851822975493480356444172753720352005900878918584892185506871400948365617526304825723043280263407122857215566612026134052237232777167683308557612403475999252596733999146398734540354180391471745689376301619327478552743500568735521992280720074808143474112263274694441533853800192978392290805578078190141374647008516696230892162715556398494609597254024204383021777466622466332404285895047806294501008515126394393967255137235529115911039862771059521489705144776137537541268367119805997353081793555306082246076568150832503083967619954080413657138338230520536359355927492220956190231142000589584074481072553745233011905944443244084014178971772254359095079698314611777195124034755036986192258404025296993479902242264875393496465014178108535151911154848442703076200263127234460192643460912440513489284554990157320073553468675403141087829000085726058407256282082505472240104443995808967839537762336989337822176934423929849211930074487697075940334718603170255407830136523660342321508226983731784430902246077020211240429276446293632020408265618255398900087277098737833160522619182762285338232579949154191554039451203520125031385315164652195603670504561808285900121743392590254912830926728146576802254840251558654105212601470388362839750742288906759647526565112503814525344011410448373592103892663885536928888302281887821462856859611592853828096901120667826525110078173911039520947171856181830859358901040223763027332646280859125953099868798853464872303673091889073403612120040462995037273439443074302060265479578635179466796664851810093129164585295238835799589987743603250406771153739079297281954870557052105681304613963661725918523265685506654191728849783450425965898341693674919068062561835675241181331965349658853916696980186861279962965607325317880360387014083662614410418744476871933155113397926063747994919959490906300220598124484377092514847298109632090795653475640071309999618160882987731720889899454660665129698687589231201520615571485870120573816005851973165841358972583692755646271532356058062678336702774844728402045278251637710446938666135248408658029212755633939309431964615145210269596090376521993522400009819335791585421086448781934315375093196668070619674708514299855230010160230169106839914854348688124539508079303330558425246459857488718570424133990160409441007089341711562258106593972766423335423683842384143622674564268679443982918748517140573203885290935947615572140057336655864442556831813177949970994143107921789329462776761365962784319042975864603778244015278244137411345240472155713674143253673244319900138277997213146044256504385304915904566879390572036488925609505333823091031219433167101535155222789804301364483824201533561215915645659505820231698249805039639832900816080091353819702838310363845203801648102958232923783280117538296757056539037271215725050180520897925936444876379608508399267284596825977735557594365328163174488598775516350652553494237857526009136529325193267421547125797374909307165132497425188922578801755008697626096126967253454025433199675876305826918167136674889308184324506079420711529129855574237713965648705674992107595835190203999114273155606205258471526073873257671753371678559416356198854087835480900026516999227911201755735368893054638560834989677780507786398315875691399786727557680912945297263839029267307600505068316952154634252128437657274093458526093822898159855862481409399430770023625133320363055110421298152933017678686899069782024073074639070871627757567893466651821613271902850761132893280847578331099601509800536612501618828589794743119537077536094842896312909895438103361806367589747501268772018580727907250535717265633628797984888914891428307757841010322335230750753051758335554893999205076429290586936077127061998117057621952722638921245361702827671392048817952918906859558799589202021020665832491453061131920961603141627843387833794783786229007309605176503753236460193747479655260312180877344958793729316592621273557714595215414715690654574445257760596581361438497793406047019168337847727502888191646937073076299698394179664356006565513978445365903765455987651442474180821739657842995077895536844147145130858702525928408367289728459165325514495158223574359515013491515291135227368163769703144397204443815887963074128203191365351103111823508733927818035973552807169969306660063714650149931415981644709331888528339448497383009144529027804418848962761184455942992454516870052591207134226800900888029041375348452704416023321223851716750683522786846242125398810327417427811995164350467061506210277837826519258083285810113568499624749497129343911958649035616414680276876506935914762220339944766769665618287131661552425134301338681834552258833273738389397323605471935762496985882469027696213754825158241153439578760879020997763326514690417851125828186128532112020994066476124369456011525015142163295216347754335939839819978883714023950520992565144015903540767036177024634969066757639060539275712191533700161605007207593623725411682875692347065299854410318339246789550147927930833569026501774217530546751815869004103562511040106407527081810345464274342698130273320970488581084562912222200982988547600560924994644277569418303246252147104180145221566612985620277163898557450828527445565785632286457446708879921453191465264920725138606692894359253861594634441147880607921483736592236536738053894526225328047970261639081554344833922929498669274281008221115622538248588925410991852981709077861396371012362264506760463236453832181395960213774825269155942272659409940312667572692391410879903607675077642109157807005355078541943032478602456994842584813959589233244985638364070927026034318145027160130338788806476743108186540544621694235668354001463315915681793293067726068343799417860934229043352404754825724465473149475198837852944013634117394235672296855882252371768452326117003692742949047009298287999733122482744120876475431795988625698762392545904226532050893476200827992493170836840030752186047181557615523601377745550573542255907912042034436917647771281756761421873251422658311875321694830201189103511228637811944155686256462866447630940377787661396752727242636763742535165455516848988887183196555609471617073178818704796381152625076078786902632504762224677758821324403720446995007693369281348095407485694796712151272929881748619177230298058716095493463530239817644345409323933012910174434501466403420150121580985724572612808376284151769637137858300746721092228411189150260597600381344031749034477973901269803913632431605056295038095362629658771541740489074928235929366393423345136019937518351465199986597380658534580693376813098912023746839271044389299226078200333018127708221511150146331687030705076575072005941424955727169315795887158536687871926180982643843050254330281210228580584607899886276750335541455504997752984333945587903439704983375316021350803874805784382721076621381859209987235998460918327046344335635392950820736803376689495394601930193197651784404121871115596459247948634882909891185388492054118062332229800908460613156965885592396170359260183825221955564356576670539835967492234666547325646599126452323845593457200693329044023015991784894667117448727235135823570535488835559008668500537878233873758375314505969639377485828746452662392193696362156994638007313884018712331240263641950980573601719252911792642011523711416003150954098342975301907581133790063082797119771079628254852808930604444474463301366734961888629815582017545994829241553042094730835824118487085705592355033151544305104485099523501773361064165965902361884541074826418374873266256327126592844652371296677283170284555858324467501639779008403810938812957222656992054448254555112947215306100032017934433697873909872291063344143873338224759521735023112208666168520664387968792606941659248558046282979835639955538005552585030019493428884383670714896293754895535603036931981946245561038983642386521820630722992120705945112024954118380960134934440842837476150295324543782994185418571579754553157031555092187613435916739527630406440339958732904261220048986974582581968947159052194032440460712269813753068237110136698306436589194691664211661217432109801499158258692603590605617440278609725354001048619257137583603487932100483480929963989863516288457003534747846091381620574430420891120900734460254971548720893955024026756558148169700387708969752237245307203646153701449226344042718495744784757291253541278522684011846184714031352685783262914859714520520417408715618757089678519484704499967159584505445082928852596763225594474567108447390703761502865184048635572556814949091324362303574749004890730006139718390849128104828854122132592510894634388774420087194063999611481307493709493251496382726722896554747796140880704796206946660508295946118878795853309015200387197616123371246033815784128924616392647156341844081187290363265868860804195416923773527174409108506995603381508469053363369034184841807105992127893398316606483677984418251143238364802963987353068530288339151724908499398796222605790130259841796391912298265553886967126893347562905751704285761216758938941980066354964499987024391634067923342537181346762395747880626274279048772052831082108381862264050261168816015331010368925286252740035108365849870278973934280681262564047204646106029934103705014696782286989377808159269112608208152483475445831059314285721591200636503693276801302188915315844359935426265127691470871874939520139938147899735808078391286515990976018258462978355279694167076172400432061591306573629256963659799578172173496735878242129103102994058932609538382571406326100704834932853378113696464860350549804381547495016731767108466118520600686957775474559897887141585650922328575804465134035753535744174085482648609632778437068662153237003895193376642442005466035103773477470953314545725933404802411623757486357007300996354780368481675807481757456100370967760086301637241149324908696778016626013854451932045103757231286992322937691708026049676056191640697317113948271658335809284851530518104949182576391146419363613170750735702504757751664324037897346053285696077992158503885475766745878134437407315611178460851689995939081456611564457965796013327944425105854618190214845757702554333284982173434811489442164112609383763081942615330305394327748412913584336435933316409293350093940077214443407696176911083395654433017721316131057336475285741719945781554851654397701468936538071727877851335028803593600205100689019272876596523528173572882683934965145684040782601661102862449997639789457495586461274158829793800009056481019480886166698354931524362061796819830844985663935661172224046404069375677069160162035646820442063872361951270920758255367241019726512348327456778981816651036715359959288694344088189775352695643222443642872619027670497613424446149530840010939497619520156376510772800987865653508516467020103384200737627150700402677142188508920180563284175503985682132650226676057030941952105734137202179986045227567952532893615600609028236793323225579771987557941813313897298692765787651675101962245690708854336478645069021089879392848704749375601472284425145831033719638655932451060760537613170896783675943542902547246613920709145129282132302757770346811858427204709643319730737730996271598975962624320352653584549947459393089484185178511279578918014135490580472717298552318209308792702446611275312633882172354856064417628613500852791900489517981837796764934232308514814292526725965444767323121165384206490450910669774428790151811317741304658268716728850082105096888218787357862226517635000990997142696266027643307015140608261677305960549523646749132846993768253011323776508768644423447660621673960416423330681209681365953291595723932048755429259545272559435916750159960382335296519515614991252976792116611482079697633824701500355218050874279223248009512832479996428689761820580492474690765150122621480551888568980712741173510915555885729360026093766478996412596748481009334333987438774069480138129523601390966058721407991583115161920615739619650891487793300099512490596108085052386863260040292522218257648487972081813561152806083580868430899997482401522229618705939841724619728055417096335256171133529380246945203435180378019209174335861388280570954709660837329621633927517897331970156165430440673369931631158006759217851822198794283888999171448187878552087019035211988237376200030542066411045390652545412687999959359358195078385605897564801525092559582805405748976831758369174881446138218913434958781175003618272231154480990065987860354348012114099486783665259564212551400703523386444304401169183428048900570740014481930188297633346616810936276812097680173177890504102229248680852641096870252282009891563589456166900142253898605840849818092721715294114793425464473528713017895839757806366126565501117399730841475866504278071346759068236160834794279105475718009855373749271543952358367078446698897210686041729889949269474185096140324285610767493822238914385180321075177235310348132021553859523887866160804805747393712728373031053399852813053019480429628414451104835858901413660932095651526092163113656233847656058265660292532841554236981079720905810190221291023008943535934585424900633983350422784296267089202383779864384428930862109750498180846430762174347691752852609007100993766894177763226254569317743510411720682860528689821584251998450256047989771059437394919122702380724318625048420347023782401303642403168553623570384702039500318760116439604498128370402536402544406939656694490414103772789806860504780534103401702152385403357121369231750624637074928623072922880978437736227859673166929583328764709814299826530985958582062958255312211309743891454828038337926824720694168777167468798082369924137810264564512051104456343209167093893758907198649886956026276802598023511168090600993928486415730932177423709858373801095364677593880144705046696134312877904165827080260004279440475006634686483826124408019919379751245949247911906248847065726799447259748954116606833361221278563771257922889027686272509450309730166122721985671070984701038717753185621177015014481662546306260879067650455835074514432026397960769923272539593187149820539857218545093672651715845991136267294687265313952783802607534398262263985848350373844672782812863803293349375426468364156866355157844305032681748368926614949331502434295076300387190064653194636594802942219898719556682636912026468291890724091281750564375906922574126890775745933093667750079631403617732146508934364054221344575530044083767178055172667895198307266422541026626169369163243581207108768993763171401275800385087294830634034018493192684092067517388534991220357877909929190447669024693170542353263286937672985209781224525919398492927224363369839123905211799470151665654226335908408658008719480930519559496827962418348585059579001834073778108371627249083629313814629229713216558309294384996903651376485606722664870075166056850598749554973191766105527760574438647374141821715206237877506364627801183685529529100452215864608782746183198323910664374356895951069607586301642932127188007646885008935788963270532604295151871207193743184114855632357468474142106278168402051321039034946974941948486461518538219815298259635904531500269591772638037710964268415896729853736065039371988744751799399890102300582971543207214552775348379396014155604275599210221850864270575335496044554106034601492657903757515393543142668147392495979005876215667178319698749697886841556682294328512174434086638960575845119499007423677618782171280232718275658019271244729031769404460828747694787728480798328088287609400266991770971760078307166348150549919274835038599337238450154922070381430488184293343813711192132075736264893308969448090936232600899103704060085661160521989970085469918635853633682531455887421105394622768120307146565583804749668230585826402282096979130753828668484776827271693074877096249180017065143700889071577030620820563893637651348621973177862757659903834471974790950307592095584652500799007439697319440429385557183349993557084948902313895186570056682698107438123241580442158953660464191196283849271916287159604881672105146722593078401031746173594425680134633050923994378282253983166143448432416117384164465575892136279436853171716805134600210542857213585305334645987706022935825709941558733921501740335026097461269484861077336444831755708666940051768722308112159773707105544597381633906881928850689962449432327800258215127911718207068940992722877421218974884876604086989477249971006988647033170064577148833222252933100332206064760464602874815720999991468506919049272952360009589839449055037581356493020906770202646349030177668483489603248074256938700068985450228527924053278681527173629797129347212995334024882541011964273898486610099403372916351812366907128013755136348143431603076594926135743121859166605266854281511619895711808053645494349034747888500490797738626314488662185944667248707287258793100011936054566099222804982246813824579380879855620216882080139041583277395368293262312546576360116736466174605176440840514468211902543747034142429811090213351328436201996733533710250021091639697265709652177423868541935998952797796329690977304853581020022998423398991261245752385757311439674315743269754149276534278014042777463732863818676252338042895049136714812958968040144666745030038716482170938132499049068271749265448318456755243585990977499759619616184582968310279481175681679813314858394447069040834078653781451017948217119713132208880463130290719368061114153609883389674599103200544684079617289481970043519690853578034488377955405960659045110214587155377892348983389866723848658602426800613128706610620900346608430401351295913908232410750873886842131715868068321249165247014291728242154975985129892526517165740056190666737722833495334087278274686636939588127510074557826413912692185572061417245769644780147798851946326101682103117752290566524114424125023583304312364088028802466769167938692915684565278569822545232594655671140941549884264865104445517425543417351943013596189701151823008213305818134427914875166875543865193966147647948160187062064438594366618593144783395542146572560523841249305184558876656895275962655861066089588771569518186045667500259978070940505403847777035403117564234692684499876387940585056629689628967376287302187620520078135196778972983633118118941730172057630022484360446572547707318980264769281880832009290326787871516538514447699923234264149735166616556648905084984769604043345551622175368400000306667282168462258910735798593838932108184432691137085596785399918233840413756552189487292017069748273166700970264231271094780267273047124380117038416787258311349920003990129209229611252961026949494224228729112650890217750862352078059281143944811709234808511445866048068188433616334239268065153995518002174280730508774490860098534377237512011319485370798028036476901560286229858714616679420000390137912894239855756508300021931533479562632045651060223897521480812188953219785454758882330077856938742481055947237366905077367808692975705150742407756087883494441428413866676850944355733312917829945128004136727041607181160514309399996763660179300434069806878426829644712354324395431852708542374469175249472073073685972471272320309627592076625618780079284291851464436386319589118566871296444123083411723212278270929313012061003712465586761524502503011162192186033127642135609378060398785368949249120957614339391672883247206500089292444567011743689246024665985322676757639126464199244711127598846250127820639217995693753618242953221204715802314262217274109488410525349444213509357209897471772831873601844618715861463871991473732740673304960568949959472361489501303792924588424224154773589920896472631448604942229247834653277900939072209692712506856966471247253840325673315991816643472358818365131038294882864890881138781525269649502044535206802596236904735020322378398970846515152966591004162768047518304946959327703645118910461241329899988594136519414590116254089644689174806639916536857785862168423334758238018000489364751490858068360923384485296726872726007860188137905766012268260305028948852454107476831458851771272537755213119468537353316709501981351527796111362169040501112675037878706867568728945508449835161188461103615153278343773178800789392311267594008149842069619940387761923127274736862361512835049062726453322605424176088726366878893660672028128277095767820698529039996898440619766765551307702133951806038341478936472053290947943182356194280653107953225801112378536448850296249964865129640615122505655684270401923692629454130328348898594818840505001034964097830128887170830816104235171206376071020345327800140105866215126261651874505582531324781936120384777342405829553061426503299984204932870362580299260992843055201124299976558895058612960418470666262594650816926129626008194718345822420048448900615215812535974457700466490871631216756670207051956374268287375822155384065016224215203343799731894331889228815578572197418305402449697289946230614605907540544443072613380825413329364873211457664129629366833936608951666942116452871652799126015851953471473750495509620252545867681800186497366031807828285270181162405200919862389355393887776506048675900859541882074213339800184044498301444831217401045764173830480222858412516738003001199815810118442604961938849950915951091234170618247629400405159791165360338016154302967943179908191138434707168130231467768972755173564010513249733268183006052394946653776770512841829717310980529899679339044832820026041468485681830818320289548142756035848021619725771517822743979852445375827872143610646867697197281054376073669034442394686306661842961194487907477948118937636015878915875554935104642869794770062878403655871209346806038916642706503931112245936517100601811273799457450045251314999324305973822666323726669959189193753360220760264938271057226261255914466505301666100722026430627959962750341827713853201047237074517501655798946438429871076918154174609483608492046580287545884230389243559636675286059366201463224333742788408772329207741485004032659348709199382155095377462024708891705433087888739144163192750591042121079641427952386133479667153519708600444888990607248347349302365059881352948033415048579660027433314888870310011408884953577132741331136214172137196958157321064519537823909857583496115044417826258872905500772719368295147698847828784477463522630740745802406487533663894096617279358712948926952570192702233711275475288022408921011507501179247886698150941834328340299879167966975544099133066623660065378504765195035558877918895786157408831138720798292725762013463729001135592155442862471153625636018704441400828842637666578723121676103520915080865780662766362585501572554331356173777798028673099217879589916786118617650363379763034839212333044561724427150885106716008512748685952759903695461132136969588427937818844880132581430242177243205930168963085556290861371665124147093759038958511913700045613811645055979453442570490539771199192932450612249740364844411672652320283442066382645106187956928577906119298246835153593427924835140845712195303934056904173618207686638457827243276581330375638161679002937959472809783622976368545182909983164718815169679213861274398267435158575806972640975216392642644882547446864612578088699155278398340161360457857703201799197853780955914119261258083559086685899152455477759489486079338167783166085324834039441259438524962379724809305751912617645454785275386934885714164261289534780498513065939505504974159266086166705171779605255333657096649747627254146598366554062396521014829288443919666066891867697519650096233901324151823919954455161206677881564082052214270639674591182387511994173399552254486469673482788539423040008255969608285283270288766026799452805812873746134471925557223595562624482849962604198846627479444875510584558351530513996865842438379969613536866731870848875194770746044063143493620962953392857303481013731026909684040041852152019699751290356441406104960364347588802305789164305348901886584097399950481838065985299284500962665052489946084351373504636261091257492643246647464056663323553042671396409537132783896556141971142250133578662661194173841829391263462279774673126024445347841620045961619861603384958568392894594680687032629697047474384919903491559459072972406103349241285322505010722582869755397699106524486244363521261653069339769910081046894364736061373261785389924135192802165332529144148225709145319714298209902424276690243246562609677114087596141163937378638457744049037909682552585369455421143375612128048602890050271825711113691676652243237462435159281618585403168451362943886978728849961136947693739701194347327073437326315103461105461197267629964981946817978475598525365172938149036652973368526345442559942441159870897944361356339176087710625898307399864626315528579677331380167245643495312173458191062770328589780390496822203475420322255185644192428839506651501760376219775432154335269356656237194445062925029873813071874770909204218293500155193523478290392421596116493488253067609213344024928326630813744195402117733970275067369526212316122240460876244464547863568709295508684599165321029359371800757933542349587489753019617902734456468701465337386205894442136793749516502239258410454830504348638561905603150268891929164130644023644383453281658123934216271475599237884900006227088264891560663313455292495349547690217227337327548262164839279320955299641901812613831187866282849884375146091064732233162542509875876323624900336565883194189180194168343624781095764323391841496885910274351911304387778693601855692457477015373197927725668680449324051268128704791738669237412703483343474190889017428778483411439785739318783359754093671985639209340852105398207690466805811158045998559734510180717956707158388837855029579204951979955007086091097731523607654538700725884351824583427595358099937230573042986175684661964850459306071757318789846916246751516724710721092450530536338317488253849972229018845868958564031064597297207050010633243231189110831630508088294103736560462952082919247062222336000271827884841981177314749413961124552765216470637744914175981746098216648489471668627930706128369384913493513670111044269427957400584748536073071608550997145305984448780532949734789769118774017210456687899516145552702114440895703443831921164985216894702678141866442566252990700517995818633976954279075066832840201036399175577993503226611382744797178417849160027181257237175555448220321486014030044492252306522448164707610374560964489252354043603504440859401512051048944317004872397760997779947181560782044983720659561023997885154920960248053936371878215530357603159158624301610726445998483026190802036081532631219716744550194605018387920255450015211072923752817451920968376285383357494781779803285253457948047749362436475324076528812228139011641821133707412985232278855116501888306509763044968241564185483368924306566410522333038475668102089557635719966616151608356901259789787167276630840546161939085528984414032474617728198621191952542714202518509778767435622039098080226755696059759040438282956157032258346665844821141661723616426941865260262966943602687691543351543283849222105148199229469425784523292502137777389422123984475861917765117924702142983471821357166578376299620608749881615916398570521625758291080466941443896589975223897348088005193840433774357818630691872037275018059411335513492381352795206448022406323336032638079492646918551752458515498790426221360418359699073074996961647300965098676450409057420999824932708291842854715342215121263774193390779647255208444940245264165332997301351316650230749266568310396125716320383563415076850241561197062780015535330826694916473033088677615975222131527937638778153165208721928439594781987957039193692735311912427776412992421663186459327773677656619599867863649222710872667770598092967448073333614126549218608646382659161217681736659876292118972594422984893948172023650145676332084937141643757449440932366860143266592130364318924706248461026530396447588365225368783846271855205846395972649343984180302192581423693745069970551476166101997802216810341376354235923055609916500956384302860778301838368064991439283958310323965175087920569993443208090615336112061286510877167161456038104759784365707209277810819520127688259525874825260321849060946706456773853694358655282921412051515057493113754854981986908644636021883149858758416874042444258076484531034921650508565875509597712340234882354339612612652056602135760416665672282209672963269798498782211323106411783554614677760253729154941430967736345395798071576886861045416674663473535319088106046342081424860048078094522017375957904906590546400640661567996339229130633938598924543290798489150264987247451848567345158680703836396350785844070097282304894495861225018120255607514654212245222299124888559678561842469916795999341240363584119742234000025112195815435270233318184051364032719300250138560505393198301547346648546629235635852761149904905865755623755773623665215091897076097733670760551245813267319553667640467743665997932282173714317642808407973703529877809502151769687556158226482623599979069592447539617089205949218361759645924484730871190963460455629255847721533157308072307671996121613121032008528755596951495664136324049318907510305230829848417808309174078290509817869167209949733959148652172411656152249394869387091314716113802816068821417573322183753084842926270289262194898981215507286418671788499383359661342035175262970175748428350574493617653483525714146348521845746323566380903852370158057881791330295016353576060727553409217968302428729865620222688525183998221377019651883212035517271769194338998236502028841078204640836045232001749074164476372560528489633107542320623999340809892651083742474984153334929528230966303078103887019319989226012578599806167473370937991735430385854511283601233232409350479133019700134743630829627289099887494801820304734937929989177961351895569499971562845386390469479234037375279699470896258983347810748277443235308921557625231877462028947893186876031626182491071006693902895458190823264703899579727902950164674891362388778352265392457427592671157150655966883415115129679818018851394272020750896057549818136435758544214605068622148672661664406278902365760567907051315184059953795517159812789103371413394309297477855891490741525400141343888981227551578132423385113013282298771567778399084357646900727877904385821443741169516821844206164800452697467539999728501838802678244051768277530424026689541233113692486132935539848708345521749100077923034822317228089596167265265272192459716906133390510387655364221981491424657666971810664181024902348671828657935852908073641058359128367678634136678013200430760782770871806665244301390285816637054327165014459625425159394608511942353145338592976205827127651000894705691283621699317929940823450378746024349343796822581567596180390437847773327217331257906959068432792582216617902287384635546106951233798121659181847665495176026013379413138365409344725612770296089974945984398109894103185392978352198462370494799786699494856939278642535606625423844832461864285332394129453682394094490495669978053960838136271824011900332971320448274957632856543239791735494182712569855341713248699825398852218437854375016369739996975329261898442752028128713900849415619860486796104444438056784622676057179693864077713374887611791947116552866928939975802443216026858170275539676536698484050906097192878443497798019812508468117411833833118443352085300937297794334815598874915368611745744898578705638182591835230314263702488145870838568570991084789604506355950816928898480409430041160427878876787409701605865057155625987864072471569779067776596868436350447794813715224515028836262284098916768594398674169581162586242789108041421940708355818930858351081271345620561540440313879988436630979654859148910344465409810901027010179400380559564696991069649953976991462585221100932920912018706396569520099866084875258458238052092550875347438967970072063746577551791904743742982468078272929871243816353493235831676673390612756546636118949703090921305484600452805579820275542879525851912370162400067567945893146366838040032035212077218511397363826209503485497826530645275325735256840344118188138819098349545977717068136689610954571319671912099238419516746884928573793850302992308084875677594430407984388984077452063382055879108055825442749899415348367625384833401883661001450636633410341892159583001897606468453572012656879882693989711969740810339289470165385430149011803685897176011000109361494677782708329658600700131924388091763230316172567999204333486269281145586492571018520501911913589114769626462549510575791107900164816984997434326293185641881085929388610723245426022905374188529594906503562083505875817135069425975347368678524135269279083318097246631316932209062872607886302078509428349956010897933885612670743729685453070922963660988416523080976634637448133701277083644838449025921644582481165187782811917795215408269326008395199322983047629133828328185244615384304628987590159594850528698000767225062426197528758627969372683355045454590943248775061761783264162333064584749956850403535908362996277722927798785916189971536796841779112869461572751753011629388865501056200350721379460097163630630150610676014600176161778167052513907541214621526939188134770299884167575122915844704640628166384442273404535112014231837437862856742682739540627435434001701930002553677613641719146829170264363796196848608123565668000247293338217078961900762793769182059602971425825312053795381031135298339891393003897206011269753669516353134835162063283657648327247775301433312073266365538253764809900487848930156308825426736509003767561462332995020118628771452685287584062416570828417950685233146977899935194812857926008659837303701211107999750276966018116677308501077301506442850252527664616872441412197310259000557430872079540933254938041149315103865269504756665025601402765207603669685991391402011443627304523022523482083817724508405396141821903029499438305298574820191609748921557678304301791318321658645435007739222668083858711234296337917626215378867640040632118895098127208484927399417800922764429088072430491921762126233787572456224824414188847773658390033711199457640530823205907242858535212087127899895304841238684123847311146398331500563100124935279461605385400200777728979013318433947076353878497866744035920534262120799555476716144804435502065145414243008458198838337250842940346272304161152263216791120505157075322633607953932606240558850812220767101013685180412054876579330988865604099764459610439397288133228602097501391854396723750346903292148306516837067814112525376723637792312797789181132923072700616557804374995379912886028926991689294041578443164242765828026462104242570973320716104114382628497453027602211231921102144543678885399975173651537496264478416720989554747011056190658914755815339822558424864830299538629699389589921176296377279515802554629788070229909182432102446016097237034034482743517011239860433088882113795053866598477072188903007211940835802126444872681779278764393956256123238264541987515053739295921459181131486337569560001929340306323896398629973538857083343145249202164720243703720371612780272552284753311387285698302846048941237474328862655868435904463965198764065303855365952092556912052748810418430710776745101527664926870752697286907734234650568362833960543266208529149156076367563608427617199081869793119850929780669885206529651279068692895072985647364140359294386421775024946283598600665136201495387459135104346554516888546066125528065983845916644332312367007827034518086730927061295529126083279846928741184228395696872295973372417811484949269485435727333639022637949590416084768045029922475308031242087317456465425827269160991379727435783827782719277316004080604300268931214146503370403851388381772783504308039664771010511822332095501311925849057743631132250854601689300907329395021753763391738475766660630811417839265895591676881381350089612502605659694377734373689686920634922832499924360083737652304400630202796586725859651778027401613471451915838181513057884141690494882658173213042638661166533922103379066587397276897515671384927773563179860853352139439978668469700033287868599284160777682036240431936330852122918539026847753074509482491393486413146333746754115818283488704303732937854174318495098882415970222393742562821417403913601209468430408999566462284798672267831548207886861040072368638513467860326371179538237270611389745410058349914894220242150359008747589070648068108008269214437074197700291066363124099573992831268987977677927011259902981164659415024063881198460963842946618616017850997248719145841048420826324373279375327008784617383429788354703319171518009419118479116383678557356779902864440047158195155222795772412828569412726651195008951896950714894169237529920310906824016754387542141377821939273559071632056770708298826614437449283903287553953056505287780655429008005527197780469780029609491120904440385803150234824033420067033047471983449998446611141731119482552311009803679819314865589982838398205146470401296819330012530866456179764726618024034567068391712682799727003363908839413517372727562542171801997939996973009218623385130212606790702850784000609678528126512449056716308288440554155703953815169183584000171887580530283996067140042844541287805460576008071591184989127406615764802262508642624544866560297930551124014451233144513392038533377757448025092457490767312939839449027078502021381206743489606716432325730720897069519301511960065422624923763390263015863260855933909005658497426603209937419993672235284806333653815084436798876046689305334909402775485075166528330653410602064810879308387213158313605600969184502863857318905439771769339474166297860339683178548020020581581571151629197395504520473834612140241580817912559934201916937353526234743328774361784814830773207857052390264098407076050128650499509583578974773210568643280004920121741248036595934106432427215290985038200096236592340399695913335427720441674852781805493340637149689783802084714271882349715655354432272072326925239978006934547974673216836531281862177502625501845950457344227044616138884444317071668693861102965556853379755130268217698339449694100193284237248256157032838712069228884734072754623997639829757312696081802771924598933505618511279565824915691839976035395635891284426695433872823694331704169409010794958142580651145192311716104297721100436698769016968555136013853971923285017986401235549849645210916789471557981059793730244149423128811869277856843251326633078291333364288481810222455706932091884251197992194947266040313091642918503197462531283738787088108208992819657668251715026674112601982370256320238354857685671901320026769833513782185750793833513364358136647582611351013873192404398464323313457173095900377351528065979697007303095989387430060178925335730224665887800383751440192009308616913932841060402378400594745342587192678480579768117330907626592190332140945424129759628087483291786812925048164783035151224778845005806497045405214474748007694224022064613755187153696325416009611317407465009945573449834656621582540757107629170260592024042943940430350449667535171850311499895456238634577923895392747939561982052467060330856615730312473575352216944384472534951238284488164971114191379467210604100981719891907431352604550673172913607796699177099533282091196215339450918344250720170981087188012196955239803759365749826455428075795587108366000213623921656769132897727129979764135246212767034605055802918271425966282707548025273198264812920210192710980536929268174351495431230481661136737500549721580215503892002561924746775498737754554332782449042496911527464620945311934793269166219896837789288187776902135162056922971767200374020678804804958774549928722537210057816236520784571387424384330722260863293480213180089917818205775065724151598388647513883176942403738628764154111206478303879021379476861984392656612621612054611158277575544481429337016009277214855004621339368156412075376750604623177912527707785557310210279261675706034552376070235557797283756581797176385370108565229340947836046094742480435563449646200898602573750427422866187580030352045078307879923573982721441789583726175957449215982598920700444018091223623809312075464893382796886591068473092618666852711736772762268586721456227045336024277759458045032744019258204908922803176282773618459897570993373016683245775535126904331574658993358748181575769516999140432923384651293294973072531843558716873445242587396888097112449713343865646921478749896920860396470575021992151067765797036780927907479834365476093654974090324497347866036928040058740093023945254029931684716285061861248159327151235099741713804258439484883164289810998931449482265216655796428509610722629481745762698174166564535310142114352684412193900268617911859268628454395079599440895984297237629585513083455199649978914433290550311235732007658379661442772074520905365645272642586901679625789406744052719971164820212294777045645965604559845149265389579798141540464313550373994482766701393189433539696031734425149751155091125327998339624656740170897637450700287420790075422150298270506675659073851020683040820582137294214018669489964721751993311507638750937680416935194814196913365118829195776792238208412952593851816690156725609752429789850421261126358801325830971547403813352332409097438932497648676456608892033377261649836239751920935292020143594876805318194517218490810394605506131882614694858582912692710562805408822265319018176659395563106369895190136171655465226340766199776872424154737664774035657607775576521047611440613185706077984234728124300324460161072226509165634643300823805773122068934800418624570981010755002288125659586218149413882050282473956385337397798792110758994521868136796851305460632376070002023856870665613796423540006626469253744273345997688074161627887255392578907311204915802529000101927409997813699440126885416243804190365832558011633823380293284624236569352206187400727605293472568192745017695056636713012246654062977800273814104830030383586814412173899399419435156310006132819294776149690560180592526942073124171157221491681242217013063164294448408459070372380771092038133023274406716146976571000359978758052185667403786543763039918246367868802766238977581058578801116871581025024280175664713258743414580885628637469374248274673772383719349265890706456381130201994417100433831687200792802889079969796903741252846776489527617304330235081840361794325230927913559929908128512560085900729182139565533460256522263712124563445770250261857390328199348532527188404444876419689568368758392608090509546306428513531499541559859440273854219870995269630505613385267863654291108600685558059686257942129985350797025116144175904561424544919789945890469429785358505772255657298859746384479004981883533861471887413123225272128052399075459244433580480435070490565082707825275666093267761802108284784430716620176063197024730928179574337935481527100549278394993651971935344628056030469276089187863918573716472521903760053828835032073780242499890693083511773367784155213331980508920197022778768685510134160053490670951160068213572955388567802722429260007422609846620419824301105003671738355001320831586893859013776427283755058123636618345234950079418830133232203431952274728351613393288689182249054422398370305383312135346247370794835047719692000299112782892077801509404987630650545700577847825390843846572351218375941279950369103759455273856787653388047947607043991261384702923805113136269561409166471380034950869903967765990555072293085771470334768856897040620650196568664111266248433656882218745805282112244035717657021762635114144643641433514464749013794436837187858587789479561096427105343429424908159720645964279233594159544662749703895385517817717601661056686964360832168553865475095311141339962749339295130193948861942219495999007279761277861310266068160071773023085363933166006620464106388707517301950036221250679908430438325950203382902574189414357683914217299657864148425591256548049512529385186738949367108683069296297211806291833342878268165805686024246265901684697521942757104621668328595443651114835229652114045407865609071113010655930928265649627705049453968849761470239910401600055991551724554037399178706673954461021599904028867696507703587882129945082595367645035928563668615756503252444532895146251706110157497741445346439356485571368322377665512246873109394610386307649430676996291715070379103644122151256267702931237148866318832681374630335213199779123362043988575030520729132856611508222071364545888827799763245928460677706285134811703068545936145781428687163682093295785518190975106522368862181172664891507465343959713734863281242932106546089737626124503549945255976721861077269268924140603924592633850394096911877383581590228737342591688671739093353597087704520902630384506596593426121784265135328872728448348565947806000768814361698385831478448385273456157547498788463410400578547802407291039285984123711108219224490430751106802450748530627381127485542759380540936548953452800820838144825968996489126835674066619441884370220882610777717548788265915298477451491999398144758370806076896960430518675399577990273011752066994421070265345701707098039435590326114611418169320248200490807149317729443642036285628886836128374469851496362384046330073725719098253007874856318334513241275456383097680923309894859386607739918102345162449657367958529887578063011274702113920962304063668416994446243919966004117567808402178943303797732554883225093396425682293059257843944628433154611576661233202692263540765056641019223775685095356740637650571565931568698329780064935353908671880250159718648917606244931323230359777488555438561194521922809482052213744360699901632722941376183319239091953924976770999525067869574436704688841518588702911035948947630115681820724597970682581304207070468704439912021040907773396521831006343547379911538106663440243675792928201498694736200328318985120152078383425507592564337466542300730351203197066265222104074155890225683171694330297008591808602559165991855350142590695886322327478023739539037023080197924195415955274179968520970785292465722795529859437285580204976080186393967369699397809052197234167492216034491146480459871784150878279553465641423510871790334620965444025219420619118721843368374703495927885056438277639805458270195168582564530207838440002365480087130388041580937228328644054204935165322686826603948587846436940733939440051113552737751815312145867654992452990038512887481022297112187634884304456436588564027542014121218268352857864289550359312461960270910115437789990589071253276194885368470397240068037986935087275848190358540853146810294303252274617929837868563631981825467122275572590652082344052290900231123356892977705218664516716801935796505119974181128118511969733039204255238532590807900726499843993617685576196447364973655751989787613586418413815738153631913810227123122673177579535965864921726241939840723018052222495315286586731355357136296925418019695571150704492691863832488176230532976686582096750196018366139150941225712467947777581198981525848860505360965837008928510879371320567266432956482411191614495798167457044180985342404342602725808321089951511242044906004722145120569372916158642205732602406636526629722395812483090011264303638136509506195734512953493620095848188181655787296032335393720505008154555092403738648873629610451465147750668998898326874178030113662342083862927423209658810858618873710897689900079914156626680278109834666837549419052281950645559344944169851134681678227444065621978441496914852292226631756373656962781342993177292769806769076503313919184994356680861552805545484948179894463055014433384725002081107319967073250301110032654170220547829178577536871386066033213675748398442855742526775897912767878298039314151868664517760982066489959820301788797715502033069636576062107996589713502210368413632385714302782846144848202891373371628316068018232044002607287508951030603142098572324568725241682889924438367637682351464230414107994565861583110081647232292409165179769583893644382104058650262173906296754475510144542306243762053338424742772092783079245297119540204038992597279928810580936946192415512996698329018228321047490775159827465377941291198974143792987425664082075463660401094616127433613266302498970099559716006431410623149753486066835621851529408620253774906397481567212082464179104736015782187514829372999163709037176676439807166716736619993236823460243187303261518845452959348395217800607922274394476812875392310076580662227169662673046311664569061336635177551112542702347184513288688942299701629250960172565415490239578433858954047425604900951732339638232775259177277904728366871470784137480599268681746800523734921515611035571671807878298118882167959590566737597080902627369906019641180781256076410747568659461781619564434498393547188191132758182334480737242265800984639849375050577268899950023383844946829043765905322704298087182489486159333820908985451576730651176507187969002727520085431059277947321199000628292532992650725633235341683627663131239067188793178522861375945393215022914000197088237695253170963009901018114945190356807534136039821676655900416071741655025152538925158795044982294807820039598221449402411856704834823072348753589738419103493607792875811076990635066921608399000648731331232571491019114097990727957774171600504494726740595474067507097445736114860251527489162969668291635439954021160441342385137805013819151781180713474175603548640343080497327816459255711060599741637400830034519634136490323126800066658604064338547513392739764824426045501811998118511593535995163366473572136385253256480361851745388833134874376248518725324327169193804657669216639441541568920823453096700283354924584922848714854971550886442432840192480927150224596847809635442325017948305995649440583140636879814148539244959950346786634408979024395892419290418331163870897737329255216103797854509924692816879195023694893123202824329019101530244866161810896309221845969861993845361017648439654120266471776675587667785711770770762274996606424796336100519298224094798750488922828375939027050827229961188651124369291952242514451029169394978471236783906794874076977682605366321598508132164500663866678004290155237628393328981770503287963372216971718208060662780734046960999291546417674938171584872184932346908753534099672965661320399988321818273152546714469178368181814512584506874032738137997017615636375112835614960438702220935640729123354223545780168614850823658782653467042974674107440621424439422263037729663133633013748014271485274382745191362208421158122525105229547586328216205691638464249899606573612865771050835779999445187318989059155492532503767097172866422235738814916537502228984190936847352051054413653024099159114984707549344111935064622277535883666349477766413417134662739247262337785858370846661348170439895866803214001065896599219599883167554692443978060479332875273107214634805491336051107800197447092270623277056683584452452595637191460973710864013811431698052771150798909407561506477907856285978623678218678687722496509294092051361573906522181339395673949141230797285934358154220890797308373277366047074409970184682461970186326838250629850715205477845827899765179186369692896407595048984502946861320843201380920377500894230118414212159310420389202569179487375154245990924141382255393200550916512948433847236541198043773959241020224953797947539503860227837391856497790063217658445192293616571657554955416510659575600105150934888325033830436803946877924285209598231514927225064836602022205501091383042844618525621328238286043979605824747290423427433632324287432030623064034463391204629429409760032922199482092463725729067578297925777386074118503594574955925677584334500677467836002405081085874931002157205947321179024535545551166018816591921747501673577047319539692369082785381945842395676978368178272934115082110517211988991115516505213069755206148042045690003300000163716165460058696102526179892835168861582066860526401273534226416151466368190049182878590833433093776482044849656416874436159597887704926545501973499203047340233679466051276666771022803116924123228264724918804453602705264587311254434037911572970221685930859734505055651568031902886119142323327375842548979614302631328176372135513996725909136680120728023536434333788024670676394389172535551620137488963734145270413063283996649467990309061196149762569491433516808926474064334121747402507179496326242630451700690206879399679650781778176206764656078541244802610611218058702376419487475723231440697057003064431548809932030981558400470426140490112975560899839079646500768273760844237929190466930765591713918614492302461351307275890368941048268599314391889868588103163603972490706336213513151578011204113117340052877372017819358912244192505184173465948292960389706764610851356815333601312034128868567624001338278646760348284658268324929703440399500871896315319144119933310442908096994453591354206030062169505905454215497464810172422124766200414541823463828839727184446583276591065535873390291752670061855615786557287776964468785421200698852714475456185887613954091154571655991978712424913411466126566782479658318466442578213549596055396184132041814986338740345362284581269745951670011289712003150478073016068414223164557194100272804639864851150168599513994608617519033220276680178066235758482487945394563442911763613201187419170491705033370302358202986537417990771507666472657739189268792579355543048232242348014961160181315235297647277780961076897550171019619208824811844954245330277138720045617235429267155367732766001468272649970812255171755652279552696578635939240386756433036917809504530909781631731666272472130696308276083159945863794990085856133928400224091547690457454473734999002711459080129780342046110346117995880819763007986075344780195475908551699474980650029138674353040031716534300490303941163972973247216053071319930156941413503265738183664825605343874695970970351400632646364819975033084761828025408762227364244525204341596634967248513673664103344252408788309240583615769695225990884616977390943538662754332456389231508700360882961282928394323014723081905307755841468409512631379647377614686772260493673946385477627333907764033117342295261077867852725776996004796815734070329843691925562249134104288015498673453014376516864900748234005455265061969495963347939744213782096533410967440599449805485288817671647738122771701267393217309442948070930094700137081045427093669469292023115932606269696000488550530010761850494944978910258017000740627854776265200542699951502138383199556753744931118467119515367534655198648518679498532960690256391676127943501966080229198047318392627724209816459017138952596072681563035162597026303539881016559611526533245761978810609293168690435755021356547964354273542274261785541281813470900673123990986477241514298192998988438315388944642225471710944089581701251248963377044121630195295419102823314078261984721053249684641274001133417468648954508614583388478657233021558762592293499932312462629940602133008923558046720028374244952429517681420739508004005726676022443118088027648912550790823194770561563000582735516690115258542274454162905105857989021510211210605537054196175694005336887861016881900928239388810745400837867538228397548152126525816041740106140654852912750685991363547719592234703111337400658597086173528077650224022674041364685310171847624036797955940116781249404344212014951796501648806824192939235291410304175918693455636987175137144296956239623946822252294645609069376514203378412361756627246130220674504157997161524181248013505704186099813722947493348758998374593149129020488763060222600723355696422015965855553640148865712501826303526725980627085120018237471950404655301591324833206829205566894042915027352889602715801904365485280990050313177498060628490281702273005466283998826490885595121280963834434091525566120964711631844374328037447429495067735920142241450779831907144104124089402398996575412242277051115603838973811043541101413749401146062723957853052202788194656363619777115564054452808920060191851758760393334377948359572590959421005564940347347278477302983142719873120459367964509863874472746399473302193779835723462824613761656175130286301389477032703839267458463822781283258073068194125668699661500583508663014452633002297988920941901991376114738684194402974599729514058346421345745042010298670951057759270223566394572981556840423675435524000138494186319045321516729847214842776650637724233566025454812899802502652813642294563254308564018314750583884095917568914262520219655688046113867956857972347805286021383354572645754139673600689922231872018242237250689020932777262318275051682115645562729281603209015107422494514307407080424199712685314587989129311867339066723562449492647629960788521375405768975416638222055726654573057777580768573360941545441886487859790235828742688628504965789730004675491666727872719881823000863370427050739460305298721293211051769798230976284457871855348113589189915398901915905515409490001765951193554465572591773007467103342420407398251607142537524777086758998840726463233388560217619472238896180937467679548543195138673335412918401710288164691600846632035299386346109108836046745660030480721856325853739606307164125321347284429864010491634905494365193491770756559977359906675704457189118067291441399420495827966822388070642433695358760626953381047081193307215419558062150021872882162440747405335807815109636830047973155805461912221326574046402878857925571230273290494329967972122435391728811604335790435024897997769876917246856699655047573323350671145931695693867645244444253062034378597545304767723530262955430542529977133095725762086896212470738169499618504930605851193392134194435297697522210398158225434041380510564427473256767015959618932280985425964377894144388989638879076468470808455575988442312371635159827496914463234176781191893945493603658476424412641528130043408930166429427597973961396448864181016054880072977754991310081680398508602700338474213818147158722409872948238378276346339738763259074584662850773690145657126703495250070133983341714146024310893389844844070937449884407448133382296504595958360488461653945546965842165169077059470456262331448194989097219379753045633174612507251589843399001311456898704297667913556991575888652822567334127069283268275085892173385840454561316817841072471947386628016848532994734601272025806471726914253710781931598306418298319993195075756603089323163778572511775371585895738774535292092049753567866175510620584926130536590778893416861682440955135220239588491775675762469245472842125550830540951686935760119037860501111567273277438711100807149733756546737853611088108891494541706603054929839880929773890794735474430959255831234969370420532375075100898236552209511664587280921567986453770742844273316204660506074711544974864112228847596959707009090429788171309954663823642252961697423198510688000370238651813901210712615462912863857433459678773923161240927392986346488571979289841143743471756752302602231208590311323024388856468937483992814823147634314773294836376502902483913395443153756415462647281915249785169279141670646979583585639377443228743140020900775517739283865335470243143026485998246766751884366120309965537734870775134004646933743600600188524845722794640252785224394729202428293425081715191222191055846733271594386394766499768145533172394195965148893085537761363942982326374505505473288448346420687780390871556908194325016484161641250841566104463906972627934149518695865176206021213874475362421539344348439056207194236379540062553123193358870548094789388327193633713637963935832890156745705566942661612184976860915649362548411641177976941057062112538306431866678164984645289518002202309038732932753446244756156707632081336351095778678189194806042978115317385348444861858215177850534527789516526168863799267968730094772669419322050695840992619057287814041902201532095403735616315076938511635683216074186974698925479845806033986960130262392933228531952891464516459312510956803240008981791670470416997551859672971876985457071129821193430428847183434697426555854198698973929831280347802389667485061258719685667472735705619756983341758313616763419438975941479998081142956801797087911681417757852056674072809363912707016313768052359298823704482554181430401769393750684423836975587091278412593433912081882628173223803260649454953759476935187423736706839871598211368593138790290837201931140804576487557681609318146563435623023363217527389780084041133469376231489792885825660084312254747695345239907078141831092675079765611683067619205548995021932463434858233718464868977347553550752473730104353581081882377625647606761784670525222789939730147037412493493848399735293284041888989569409409287432821655812008180824898866819066652453356372098193896041763649550070656142179156085159912729205952421479977534745619617081445024352982457880739160145921802113377431197205624019432243341746667026501178584033061123761747975388111188954402642215777583533688024902127042946169596052060065117127386266705900521296974090194012862546412770928658064252569435632072253713167836909930151271465930749703750093480781629186623323106048663328224860863849576815365990170322467171665703909177925521167187602485555751687698194132390123453989046569577229530168012437596224441199124161079859863818486608829237786045688759942865500353318725011842763108535298594621444576185476855037288208226932005873224513651078036502398394661675131911349952704043686882943748969486996466746554737311173322747958235977968787338381393137704451323097662471829891989636084830415728000892148984182335893508394476760357687984109570393720863720769515316631566451127116094087475087411836607359880452512143481263826795055987445249708992238567254026101849787566158222243269279448446722200981062650183727585145621891799905433070187390615860742118143335141424086143554110280044196340375560629500301950583245636825890037765295993525061294709408690135064396795270373195805472414709279873955231950861171603728495669799086452937117787838092555848093751158360019249758873000822523847285188421781565550780194484047201761681163158716046681322945218275623651173024648024367598965929372081942079946667951029027167372117079696884718491803924297902359532991409141149314547292160617417953197317478057673209763155168960718048013442692814349275700827230521622021519488085228699210803025040078290162856981905650920670039789542561806558442131515834743391867600006738497303237415461725282569160437345806837664895386865511489825700516310794232230290653671167905208299873428041015537677286886780176925028184428361615039746012348186028127257231375803163555259166808612159846608365274984498285288203533848034895378182898035014736729223258077424910500667881667090079237058475307540940528389948637795398988644658807312850631960254632286036351411325256685522591148195597854004086425040475631654942485494203550053405462944884240138416459880225369234642265153832991377487013729678295792113192538462332323184109822989749023315907226422109510087166823160082357740035536802608552140080884771265106068823263298888284493396182091302041666781437025356840444213268972384278318346374170002948821449058798217152236689191846872775332298066922151795136096345230301125349274315814037805062417116852250174130247807851079420356507876604583252255834526713158458976565317221159421010207681673480938213338853810244468139689186321592950638832157213795778835049484543750431587472661130768174105539071856845083405881463746049786353983805961412756419655401454821033299043206964702829153120133406085546250913204888333210854940737023337196310349091247005774586010746210837848040767772420955397003553780222175010717143783269975737768502817985109236489820236207472287749762391817691962790525408216764625643672132580764137093472447912301633962647764789015972531741832314768143661743562741990510979512909969120895377619797595934740229451605152358801799051863150653840986337353137067995369542422687069323771815063765612408903815262236582016779488504338744319418637527879519914243807477843827511568586974431970344137999902666790043093821909734912733257995533778068830701057001149020506473419182162153336512347581032314116549129114028691200040753907064437343261678180359228369140072437682535012950572725780438720271989068222905360836542450781099153110249363206379476788436091737079437164460910789407861789181489077141727920257986769383891127368170282257624118728377824028622001602062118588705278195693293037065830930780806607282690027628970549637345504676003671371032676894426431782075089310194451603930232413462899185230206248282688352818144833711849187702276019800731932448468471119980934877204284466703388327351213747632701956362215439151185177017264473419523225921442605787938459994155328474280125252849592717893585719202585563260899934588992086981573822358020306380725746261932972458964636938304313848723836333503464846036588925571049533370742544212674423700976275644921842999606968716051579547476332031624221575756064256084293804612660063376768126597189631213976574746950958752019411444268711382917896377431662022639616867609185869842018589690569104201492459297495208449222660594575055573043533609845689427798746913835668908597483328282903600223125963767355152372241996342672490154294772288466211396537070043838309173771788789271772040921039231249251478688771076497007892887021179753976307863319511133382823103438028075376592947333557779629675364577569811273042600227677610990295330875432259258957688391916607362733235036971304108807990679782080519080405181251678190667525143309358373458003553039297381426380756211403883801874415136307425208597209031354834090425368185568717542309872574115985100544886088567403309952230084095164650107431983043247699294680047787834642745493525533945876726600297890137518921888399198986719149769004348682358052828670166035642430458525476266104856267176977448483112873792433676407467746483765086421600168549187660218621211561348452686740526666980245101893520836825920714176061105412270260844122826744753757283414200570649963022073569817816021960399288957614483509569637337205234983578401851122148213562750714291024141922194212306144698006084850094667491348054263209579116326546042014726918885357923340644906791314430568589986290943810752936464359999884756676931056439260521515275211360509332578407899036983970997927876135598466227190434664186337784135439556495259586437668087703156278365246635948135032838114616225079974547605982334142872322413171719532511477894800031487006142781401826923443297425885765286230182127614792262190531140922398167139167259245381132253379541172521374486713860611248659391256418979732224653021530874790994997030420281671800578754062134742508133215946918962866132176310469659236101839702468002827641461926594680814661541218156380071214684449997259422289466615865213976093708767453648648189849629924796401299537163394299478735150752899973331887262838947521783940784296362491521099476118155697594697527259038900285759172987704851801608154263485717382788792480419942307952998857641339055417915755818131207072549282399800651011061028843691029022099580676587000634787144302492841574105464861623954828466241938914759627846414607915292704023061160935346649454235128616875144549428587721087606641815731214952656425381440520414815116014779504320635613172011451585423851429812347430341653333198991502190164470464617877938616362289244226397096409337264790529673073876696175189151074124572911890422463770612158765474117159520376343085982020998116722000076817841210691750212305059655154133635169904363957399155538518074279067093853270713740504595429098928481993811636948391067639031738427816724178912538143469204206066721657797688973145700103867705511754151216406287776266889257417948475540536315285119975215509352385856058498447575268525461840494228269287386546134048973672893470039368492772844133055598913660482550689725337887968723914500020400791102559128428072212387020413689520752742770360551336101412736109725707500588578631971721757245844890449338380112398932785646247582319663000939946918625343912545305733146818686596867941695809608581058119397599119372411580833212111243136458670663370173786231169299295834004564362807810331724069405432349841707612612316039518571369088600328646360721930799290644557065032417661590450436925953043713169383392674894620753506941324874174320358774158921558903475813978884284113862622898734011248522802500503519628435626201823887773873348620108933970124410284529260608254465556611525704451399534400297764167541454246039249025377863292886930800324358375861376565278885876270812651564242787401595054223251119579127340410159450100898661242611188547698582284086823092851040540763667921857248851484703721912522369850497288898527641997293819807131276670049400226996962623276427750932274438059292167235297550946319537717220762561704743598988453834848209086191910364031538362436523381797597704251760886213750588795621628712918692052832648307737489245143171294476373116856240312649493454858458573275285353275270507728408369164355562005934621452129058681727453258732792730841072543272051510921364843302798969607460817690661490429413389280318180163638708499276323867304070379655793844064281190578717168521182112758961524339261799698431001115652676189902727383486085025669442845058016013409875518963621275689697305698308034773534430873470214604673650550799576741237186402851223657888882490559614248916931180955908303468402357971326479524791823600457698784738704562039155521144315053070874002213268142287627987397675805076068118584894592360937854165452915939485412391504699623482244622273943978396405150143533981513293874681795347087986602095541446195635777361198291590045817000010909507214243261795393345603321653024293680779959616199401727816264750103054899721543756178393453468385055544423487331644859072429104056029198674580257897613008976448021830354113720519534906189195088852072159593570821637440064820118848458786467035742478673637691441348651146787647889208013848215145201103055789157702546704489215610520121141449889319071235130578113588651089548799995876179077576983260930223349340175093953069822224780224490055916795615973842562354127202554444716029265825963283758969974989109401934022458047909674247245673909959793113824142197979066381371301816731188651070976498763260776793765695261687922305781726987740366444953594339678052992546554977285780228759318005827154579106140793165514073456053630837453413070792613146209977624800995391181588481451937250467352206178642100899613979313426847624996534584243265034011803352294325897330001392141723222832874152578281931545182725111701367412061741362280947385581156755158275480900143156838257998536423566909924895721448059931205206982355605347581726068107094494844964182041384274886742530074008468745225236298205277512889419963402001709170155006132001841611886822930448799574487570924898043877338187900422183248131056257764674351089674870126448509250813695836081946519211599144716474581401538272281140239674711750981759012908736397327564627730307994010869083060970965919441366131533570097933354031894126653051796749702284760726442149046195405603216146307204011974698222225542753535665626824285825362863598166701894083224582270565264771945448094249996915450867784752011193035886528100867665265902038262120232256835028571666519627527330459891172311674903931626728441800324076746086204951456428075182555494210284772315234162037039281675939174886761015887180988188530776135681109958272058652310217395503826288934463223896387762923236683561954504731969108955396405498044286787093954322312660160651946165430778229663294582619523993722581700070708232216328676259386657142353334132862688156033535051882020007629660391850677199947268696290956299638906163202045766237742881879056943632220241993160689835310790830792249203699554257345617620962226211898352403514933414783010034036445403547154052222609978208978754246283543464131403309623452729397807592438972177893515049245839753935917734078132841540578048598576424810509135072993897073273998089359059107372175240745086473919702839661085231100435041794220201008545004140833346982010038209153950659402838959282333612565266042696309603255916515124072308075476329284454684679615621655894526842160266423907797566051619918272726397965485429557734722330395346063025750453782981104270103745751736445225340747073167174389418448091552825614993129808852543638994200355417631632369383026459765636269466817543352861704235789510594060735678111205449491384917220261783422210717263583575614732833435455884732074312893973799647272877434315835844727247746021804321491017419297124196650571162266554758981126835907088859497652549841999196657355639559709322669962042656892713279345746852750706012447091433847756886113988008653805766599156772811814508120974728080941157857177327772977006128915227363418324961027284212333146286593597050225420614070103977643835537127018021528596917909007918686088495369358878925829058355534334204606848623872829120683907576001841270244180976959307054444044543628809590523960139912639425981673611027906177058826503192089917746833344026384243633594365897442473658473705361732814812735671344296792149570450806720406279231516999658848911052443111921622159782504252458591154194922217229865719717015864822634532592992071090137915876459743322868529823644521706086626405590687754154331120678602087091718058354929433963249848646361198600522441344859451792511732374388831006074622136304854116931357342685749860877244394874271729500200142730353835789676698666996154967553400529831307720089739904449520119170640736392123026441289763572368274463664068727443985101489685263570033418217768277781871975417979713200028505896045178474712485221735238506688364324433954918281559505651760383483435032460938740762871554393510848045149592095178345634387622673420849104395418262243982129167176697501130957131682983551125889245181962620173594166755337414197278155758984811574301363058929442652852227905718422219552126311378046983733006365395704111603361962368938497552336279891925284891990857213180813701429072874989377014102221075300891627827067667962475815197126703046847336839454615424516323652017707521431953762397284272198314162020289653739163095313055987795367341941970723782337115791788013115348408561950960572742243514295657784888322838988043894223878347813995211705294565459515310967599849967361815390294150926538335590134021114800497025034676644828936991290111774959486419199024254155200735227956736219559782501745877586130786405911199547489833533934751414130090363498469489511337360884483374761141057157001480643284099025712093459889328230586390342093654516399591915056339052107057199593377821336118425136202079877255356217782844894884415573409471067538759602434364330495314671673993696452637804469855368230584271010106900249792841479516238604583061707825929115231763839485699977950246789877294988592431689804788684401836276498452524787452910888274141557274809696226162553696246743147851465898707533636773882446454833627409153988595865484793777534675016991163196226073731354026098176571283107435298695564253548495819792965265421901086117008775202433089911945517347882908816371687480830113990840496413767291207149530145710650314271871673949610562292601508039811405917447785783803482944355014690618706565376318651031322492442984454623850824107813279600087181494553777660962131351491279290057214899513489592592078070511509676443482272772646498808095568591928526627209716195461415387381345861030787003900821377354540776988839209806735709692544941762465988874133258135289795784226534551872394958959713033483678149905113901654197371481957226350042335555653842561973590852740063594672023394948078591095712530380598675010747066862952664372889413075863245384967343927596959778042156142604327186066895918840326989323085778664161365960904596201040407538623433910451838410142524804381208271269152522124416510834141738483292386653687422082317415189823940163276331684779284939563611866875257631216823678210569261434451143704312245412729299163163854248585363227846120783566294787830077179355057414064634625477489955667209438043814863316414741974101866786849465312889412804994524128261374438801312988051351047747978520134119333394505212162962419246340085209913934273529841619681259246631805628828895870304312894648691109582597980856509895805065350810619403424773208132564666692218586279922243302039352707874536983023942395262053166388895763753307380053304714552584049087873981342003298901544450724763580827220548916581515995179956914266749734223438487525057240397526504183882856010758621924108964651687115292206710718090946528917697452840953153740826200351123409921770719271419785030529526813667961357685423498107562959157422491969408987002249146264548676045822814408379914483457102044542996088388770987302834221945795472212907857948978684440979998130367358318410713501709423211276071943467528789756459604413001515888422962900133195826632717779685591222349456045520030954856625342983538541369787260269474233050432135613464459532276431535336036085475177336027414712315038846505347422276036792649594787946882815155184539980340494441769674557687814608214123570971319972539473518234669764877748834302938283945973871540664600991133257116524212443303564603033103593641116913981550099077121092886762101119747351400200374872067817370628023810741710188152134987509125623171733438274661213568803126640087935193645079342470574487111068388683580494301991772505998574498642159876989985441569621411931241430538201897551369966958519075571109437250437338827301578905347050154312720842736122629433348724752552396496202582834584076776320627244243860780246059651457795976479158244957776007402493335184251619325289538002687512077560083073355546434428374368864171499668663018461521463154841634449468602124154927360738320187463757961647225024144044451109600900333701064163172418323772943279790403260778388270223293736738274600889152607603194914295611233045530115251856305869541621482114721170445144897776537039976412952650096567684571578929675050480865824805397102515814657288141085371171994995791463802593542848006538529407993306330072019231966737578600709207089018076991923685384804037609998516783298746737022318301219534248709571600623209506321047025196167930834076297366644411753376417972546839414423769694407762436560858666588241782995773315829154287147495430705664848142370296374123498455097638445222847301313597545889752603560114018973453482160849090496460336406320197099753280192700372000217879318732413711704855179051333226678161315048932981931326384110592139175480542989956173831924969440952147776078208044899558924802592127550457105544505416110256083881249960397979987824931466732095716225305219313603869009715767712687530344401812682747251309186121679623519996549752893407442869279778874491177766703717787820715362116041130744128403591725207626387518919881939373198466523047423182886044320539817031723556976345904976047343338521757368457699066063071535914497424973171989891604184019538852728633582887952160437549542618245270502349277346955633883640975951736914539599436372214679586874765216488322455080976017384795750677053030030902471676824064831044905297995864965290433755357443462227252907366794507302244634449701536859238677447326968459671071641457245076470624160027870325014616552175899463233642111152435102414103973789642392996562467091690892735186822905701332351817107357641000030261834892485814925325318332814618129607840307765116735825473830548739530859409513040628835506167756181505269475095739587465125840206458610353611707108661798060231762531703052219048844393475221776087165073673484642317674886101680451860157672861506491498302552351693934167792026596562439958636160345710335704892721853549514423143444520972405005378285949723420277394598364342297730903117432462884560784810298417741449304113434021401043234231348859273052616905871076899450361212310722335846366332646689192918672485765780955529789387417267304459710212020599032461487002682242121238156843437204699125686278219555295067091363549281691383727871116459344260227933737279539730792356292332966766322671569904845843078912291788715012368065449859761302860457725660704295816386188463353327232658005133140206790548290543080118559011888007292638957268896172111868693178264509414388012910049353243145417352096317978358381980670372375576773590257863461487959541529028533270704515957358349647328734979074286289042816441383059054465663015381614232945179997215463877254324900403598533554457694296140815283954574757937485023631714298777018424189740702208507827840273697313791104273161174224791771883757623697556484589922875113448276296540305887170143477485938516469355424776065585756840109124996155207961045168720688843689497548462815058010207602424474621799134517672472887800600069232316488439175259233224802238640103112894367036963177727077953685307476002758921447252205951487702853059038575496722674882820258355432747720883954994583590309460802039350587555202813414608771677730158596762231637233871738293902155039469009344890839816194341860829494929109079166517516042635856795714619949767625526118358233869895828142476078102603584043335009693606839329220635841479415156406919589758643682051830873946375683536772807984085534949620659428359986682721455986648853416844089222379702843029541877881356682282700060188567184650895160290285079931047447213931079747516293195893495036664385164597761885419422551626606569356911491088273413886605055439505549785860188732180857511142372864458293651221613116487547351801925243864822329477783691880785779147338088104204470033992960594445821672817960609634161863574708315419040399249700734219110771437894211926929059295814949087855075721621554911563124069502807120816485255608739083380138082814686117680115905892275782300349358823709105571212222877467734367935859587547499642716515483595319823532098132503444344391237553203249595303639944066837163101874229979961173943214770188019888943802475634100777336686362188117780658826878028749085159228895089946931908863942459640268127410306818355423150437187958872477462470310398782195879884348310750104983954296354370645214800132535568436013649064232449756230240694894423277626104731003303107092288245450284578825710878853375087457803617405802921230974370817017102522374802452234156269104498131145126769725574789649669112389414169870207643248385042202335739218979032006558182462813295882508739067234210396014379099823823896890415464070770710353018305933734304504689719072374409385463063318315169836828368289511292604036300255196981784502163147364309809412088611623473394927797752871458062305987406556230557841361971123318464385120303852249458519245020565593707347455646359766005797125632993189782398291118305117251072334721773385400175371302464545520668634700751825337974098741664234169849338245665931080541668106442136526184422040918005287243525447194631931772421196457133100838268737142952320862223595896279177493278095716872238970573879888021116537446392278278012746414640698187257741166698923623527125402169289910912576985777143921800512741589044958100684769330292659357602609601149650575712835795789800590235064229282759597057854347886106645202930012730844692527152367413157474377792066916912244661036844157311237543915644510782686805492436463732609152131944832021545432701910907565223309992767801056183962382163193486586173147272303334703788879358509516215971545128479988575123443989507545825806876153492746933722936012885241760301836720825357467593457191518665211414009115202604898878218305006893013158704208296878181191651065675930533279101997530439102190154856520352686552677195533035848209199707697608545748327455705361342707124186691554817825857262632036730316059666236906008357249240592571736427043757328338656721125806208411402749695651491197105723235302524384386195055082375222226382720109401650382900626241881235570112787521196244579304416374233837369056990259370199893232190622862511577715454844292688519088312233363223432036422263286978267170256378203421145642515188434065501856679902971141199525543702487475807110460311671585881814501165413431166990098055495377686969534373857031642041947788423589690483349388557305381107274497105103627059800133882072158745898582480677810556066761622023313475554362933166605918520615780941135995646292467561435558959457334587246627345674203293779940651407301282767917874852351892413306242172861484987555140564935168622735023927030872646718836195126626129080897134946297575390823103561219049520994186182714345922571759769636664339273735505955391478441731283037435992278569542625832286346216957896679716581307486352062235716013321563678325215933458232708810467881908683924407660269884126755495909397895146058592196768257695227823494788746944970088372125927375078487607579768111920318920221623372903194297351791150394026125613875355654953655162942021892646627566022179478523065226535175946006110588445238559251761610319074994045376753504397720981394410313504445610769397468916482733034722040569051047411975574438021820333392015405345799674031247675992011197514185458689701547297894420888131974281738651158776877049880973972250207217637136642467045398432804240593486921500109460083953404644957074990860340472246818241807778647157778937072293809761585074631382384676729846851100035824216768975092319024439384333625899886534811754483623992013418756484376343124275739470495069521978183264776987207473340400012044084994895826693574538958934897227742652362367600473843254356084609313816403151051055790026165382970875267107102167120557596085644795823261394629222344846976727879648544390790226980861155312537849844717233139831821957697959884460170018566937308845337445185670454574710194072475792680566135992943476541299519243713417293586710934329645383985317643863946491997722016549430197181091580707167254256847361545853865675263600703682682601163195652795927552815720906413494801517576391817005668078235038001763953594579679306372059129444152697591642996715360011730327217037384564629143097071748557226932880873989367310121346837044356685964594501140698048193404221956578188269919026481863931339928184327388642567461611620253193404593166654412574597872028080054744940811425510320298521879011620347890889973929654631370954908607747009895059430828432926392910999628779514477423998362028708565734275605865369232362284221671554122171483559289171453083881378395868581509511036219475544759923176065678879976430052643208578417834779154971257517868575531067757110252600185581518651986692141658905636502946516865741902625484201525337693715210333596494092710848095438553508673782859563879636339514782153281601008104588218673134362260484496511641805569364375605271992665383834721638760183376917427355289560932837301071224158365077692728614269044337226357981199710111617257969281599576416805960697726970138457991240927956778489257526723238617822628521590708567707762500304255111774706065712019320809284763724909500362779268184273710049671722608808670499065603584762395002845616796625835479006587585967578286982488921280904764246364177144839182214039065712216033752501945218277586012300576626907824210631068037547771417179790405101220340321607149913318855192037048202608472947221941785379804257597099102201449786091493150914598146757761647774710085763177071152787871734536667861472557349592351049534549690005325318955776602179127153038123131404744841759645952057088832971571591005829025381235675402155622387333729226074108747660457957781311873945961176474624668607639410288191975146500882505875713304329144886771898828436246136803600487131896155450595090564873304351419652868577945295123531143091737475531320540704704267167564600040984293473051917752507133956741099249831065314164597009597119662373671729963387271229431085612150525875967437288459985570072760414648634046405156364966801958925380366572652603743904015572903419799051541082575265261075850446935421145748023936966624326080662560135309096938272574964971692083403118996702824028003504783572678186691062361046101355785397296042726298263592691581876891611511920442801292995470412955133968319825113213308666986307730731084739137143703280528637012549283191716272540979187913558615802000123837204261248181544510915861371717083537510449252245653648139703179865842612817425464631955270045369025707331190363759623150764155254142453289304460529204457650216999082836729192240538580973454811362076040584756206997078506983387853251235646743914086910559935377144694397288397497602725369225916881469268784398196492166102077576950151418897438776495267946162989498573357617714151745467749467061730279856746497601545575102399008024041039423042467877503399450264593098852880787655277281440888934671739064750501612661312173821092511154113418923126554815114891756731376656852056827110536604208719544214280666237482038981774229182692675146828164767211008179771380483517987384178840477757498917192241831637579176974361665950869502077773453091498786125338779104527317118557720774875619097693143335628784512518566103900785374920188214401099779420703345505685255320846336677563305660406202324936415848415728041026163321143368139905987590466965939101250709455935619477191104945822023237472666753953553398408971304132263878132177273604950357790844883189516815316840740403956726187654896892170529858909954038566952223726948985699335618110239875896584919818938263899836465979956202698054172072131241803146524818260026811701078684198198444653258555160873288331886632162605923931872657158265929319729089883975596168484294187575340266665455864841638528517276157603020601753934122392483695314189633496367737202013986499123576619929748738941708173103941271181684384234977543765810950880670702494422547861562688858509557155131229615629819128609582382966859107921479505682771951430317267666144200454852655997909583348624051595324403904399916509807263961479332164685774250140757107479749551727075837002904920636922527854192858453399794174039092886057712906075397911683557695907269398127491263850207236736942191400216721620661139317878712677646111934239513711301048796324460068512861429771784967079597852300552098726288709917280327732018933701550450538904611574262289137516242345674833324774284302735344769161339752961753465393429083640664262880803515006049070445016860198443356826135136134064541345720705826510409826391994501873824957538623006995292453515959165550604425519410327375343695280309185945235383397675832466794758065828797452179943451485731154398872637629013224230395570010759099933313485532914123891759339429759401148996536372043932685465491191816250756867394123171778939443240678604322387453559858887228741193791130688942515298799348984889459825343798166100519748524490613440029779819151508433069781512310769502991991915889045457031119402273060291162435200979493719838382772296785692759667358542756916313351542895660205093383327594005933011470117497007296766128221127331938080123005076620851748280254949845945427897540168799047649180528322197746705590111138892314907476941434151338457199790139474186504161533225544313916185845053195672695451431565495854836168331181435401401987344500246197553228258405758882927330089389779214980143974403097522598508456709159981823146620567310212167905833426955333856908069806161624098651371431147149791219773076777456907298473588592551016312783182916949451551867938443469745683672216603007025496654369023743854546461380492415689021868615380089250531680350902665947065409000370310781196132897938737239277488625589324629361043856081151189636147793449806484976755554266089857359671756598289467512092381572581154502348202538402614908147857903922269497555416671861888721039636497919819410161273007414693077459584022417870306376711565167017212520246016591026237192973209126404107689360808047136832026557939646365684406097914592278617580014076624790465635338220742713323637686800912016892663366562821095571739314576768151440924305138047199632104206841231684433157936623510274020072755982538862211273085789811130534871734210676330318814520011743662958168407940649754494930114952115370904644556392952061435621433912975012974066985028285537928003459501019690230540315233165007938776749443942805863832120226532859474119348987986277632964840943232684419330249968594122237231961906676900863151871333006199155766170071247785034500185375189990988131776860383292644434509895154378241040951323468328330867447192737404983571105780774473310950309179276234700935710526259912623548846710018299891749273512618893797504455314036230008099083381851056899739708865644001062751311311519584417153174622484826717999276320381242446374569965779831001547689985914312465039137103792790537099852369260016524259164006535027579649774245638749651872412215378899662562670904901652209620449341081338356221285971913388600927729576907246190425279072436363044537890271063978149510801741660838777259396144900021846472043372218350066004698760245714930148763738794945161791097695269512309900220207811009586400500056757353521016090826177648218379491248656037059211265273144917895128397144255924922409129349729061573019237497005239942964482775069033493746851079150052284470722089711099272708042267032486451527788703713657585993854236283111352719255414529206940592565191024984955537462811482263277822567984789620287514528659234890770230690982971907857845458610835604727258656952585104136057259696429529319914788632087441197267528231609011558457038904179975741526257186809181179176652550247722180413707789946908626265741307446650945914318392619328669660310864867879929935354159649961884395886025040632458030347062011218827362524167027722164230549304439097307247558922585195554582567264407523615350022457650364738194415718269936001207919275169477192118313132606441983254667559924923343163635518688616370529642228501031153616342272575609306180818957596583956943976074147425777461769717115274447902056993209217042111030991479200990226856461926605847969588103386312623857000735472175346308976994208596774692106248265166484455830121977329300514835771130452929953493462436047445071948376495121294684035135295100798765707158055948948585183658896444978283001296972464226347020791441856143060639835588326548474309509564059534391861734521280599304092048983513664249792642914639598754071970620509801025078055765660964160747585985648333576368010845423240604629266785589466187005689448382928368458715752293312612253717261464755280958083100851132546237199921455717268953775103852380902217528996035255181580793935683585257924292400011520259055672555577276529694296496588722627807192877712733483139011277953743113917505674384020689788487465591631996379156633562428768761846749896593968412461373623305483445811646217820942207775600243713992337454021059457427217627149738047968141695726587259634580419239529890723215687635841598922383040125448670864063020569025056497547416324912337655126248575198371130949436260678033871462866052068857160197593952511310510405999481239579058732472219890301657046770385922960847535599542411516109174232062523064413637450298515923087666368695306542393452323619411084899921527977396608663812918157307752552522608371371942175683302769718259611072233306643995291278540730762328803078478301315402910058810619336358130013601223612149603067493106737242162060283111373192674436505482519087003834714978231410369011195416177415173831996438559686551023068723447960213436695672090587456580004553983407581303864964029899349717338814268343472559170678987700767645638943890538534804072806701208823252119315642519456273280874782120429860138857427076955700086630508419501010344303464010984231785100976654608119636632570420516675302215742476514658261432208900650683093354601503807346288872798287642475658515184749816101571505269876458724103854079035968304143518758530653432792673604388532411071188908382240627035687196188459972850293532537766477601988629211172889138147035688624874665028231209757242012001837248474791275200785634057801479009238333243069867167458879091532504840701041894135807334616459684401388470354072121198624210589993609305694624185873697478925021209773445828159055911799765609030174117159143836126037700835800048302928724079227537240272938580193849463608076999643680215978539587790354946508745652021923310211383349040102279596881820848040268094885225615741412247753717395383472201403298221535570569996102510594231203230097045260385591509738362881415920952900118839925407103248052258675403957507095295200524360726423929563488582594489615541723997371968428319970640753901418420625860187818866913144307727355443595706877929301456266440362744516794496204929875334086470704167180750412384397156995222215882910691169742115897170464441904343226362232008937146702308726482838414824942927967903687855193772016294475773747939327983483083489083973307293590406291599986116455746499448144598741049656849189758634751210316328936426341023003865763246247245603255300470097738697154161922195531388601980278069413670578584794499019183799625492319858176417869179204873820273053777366791797727433020186606197570554320410987614248283865911913064900411018044286310491407839925992116067630993731875703497105702306716672065708765229683647636053726101048678110451328246787882967028503814969324477155414912946780699695431807211822862989581709237845846313890559675310096680698505894056003079361896134182681363384250620676584989962684542803609221731861794615189723405717125440785075696581446005081957176768145376914428306101869120301503780930440030770111070242818850925781745926653128997043497157024332039165326682732183923040648976906302034043872420222329855839811355949189980375658838669623311072253290458355517883703898808990226580957873274671766853205274653763983467950988566619558337562459812115888393179305029978386415635450902148488548192671810753871890616227041761843702114227408583838828756045892049472375256165116019990357805083423089748916429364744382346988017175927567661874117530117502936262943425584798936116192462315936168394979404230349504938437245538864966908768988110530025058936784592981267975887291756916561427012229195111510070573312734105006778196841885108331345652685130359744108089254099858044943241762961654215871241069137433429427293297171223909421261009746885732921638105003680244270278042821102106874636207364476009241935860573829841064171124633609863461477137540054039376872382430564714964781840817833144027702691709664900357326600424553136165535328207161433117972507165824904419563548899491556059871914370664085119640545809754939939440781973718606992688345815244495618893550501745837223618622898185288379246706672960962158897939434550074473901084510977210739852843699193576468396892827718237936350049093331923246562178279775737609420512005215803707873738348540529241109252982361083916866320271710239872828421466167819970045178303696032782304747727047527873817984775320677792132031798858899096220503473712392702635045509268220848178546300373154619944425421509378298484256098060567609556078354873659660090342095640453162446191421034718000659849374289367748815081057286210051467738630187604167532232893463055321263266965307415802682448253401933152095012960634320300916966041279781719809197959649663175851872591059411009822906403023907980659313426801121520000670359219256358905630368102880226880912626336884789710461262156135685264192566632877538041911388771911339473139312897047420774899799062751011799680265003002310314889830022294068363199694959560948795528382603272739647174174628629488934378127383280732155427040191376163013813261754620777211674204047410418130911566929481297614433178118167022295018112673424385342255187309815748965994784260086947399849949769990168947688149072223015932558872288000253263237317538692007500324225785170765192359709779690366234274032385837937113369949480398359167952766252579327778231132492353500288133774752878718506820275986381742507071745837852373221105373700580140485521003031212043367259413698606411269625637241893710055992216343151808837860504992426234964461382177913652439805794899577797770624361475565256199522595753625863607735064884185318554384174978044420870906191592992873846332240055467311292351717529943959378092529970807048686063989959200775613216909386462826214280507722508134353915404254862712191303811172248773174594736630894075570528495674127420888127453129158834057523054688722693725384321580355510681700434629429762755173574817544341909624087997481254412953787614809456309973558244112431206865283069627252309394231034543115486378988628935468152985919092267581175768863727111194543741135649774310271413172319455731975016140490457694505585594171434853391297319911610074017948170994159800215827781831794814369873692545835704216637508000869999982142649425927457194464207397114496066692590130101858045234843740464776505945498111514088377997979074636657141095384057396733873299294006215364987229240563924438087769599101891983611087638487105848505350177592289939994712103829393595492513164263997223887747551577785584054745995522706039897355181226212120752242453982690450939196136196283928077126451474861423985455209634296475581694211280094774567750414090003754079845153907921478584172747852516986326067775809274732521678907903053151147686199580611585820699353266585729801320257846649081417296126379021701050381040017886004340242488883278238783985012830955056319467762589030002739862617240623389890687947287426880283343926440296165180137201156463784203300834573774014614375396609998939916999908266562762188437344351568237070833561049898119921242167311389219775684595426573992484081220311999210346244959641257132461410860582109368227234535748088814458748784361111474436878591426354316516468191583392546318553658628823469099567775211931476184284485246955517306751198944647528402296567571658175316289029473239279685217212620434133691742991023240053556873305771222595754281414096805255254574320939051226615080072049535017802774657889963647712412943576153194844754711775902135734658994335930640686113156505517268893302000424256886217724301943791848558334547246592176557473049937867705156775654470548488720558545065629609650656247897226645709654341946210852825068016116672712798123104475833518262329444900508076347516999938169925783898525247533800425478496441692730446183590806072974882161572720456722680753900369573481182572332421932021791517858105629921749496426565959852461575226510562302082223230995120052613405540263279559908762092566188255984545693846561163067348104594150475148374010223005542135310894720858898783339136762341632179131891355524407473349999756310068577090975309650404458735265591795801662629841243289848739200794983045870947506835988569498768453442948535483343735803613627603066601654577795279087230031453421662505856289184829433022409604460198472983901083794021123971427290647652820482423559516530594598046095551426546893234307801024115911072497485375076672403181059653927692831886693805277854277101308175686977425277826915426984163339098479261692962977128823984279932791980887730746761948639636339986369177237074212682652710714824279576607790809809096062499041782675489584152161680825056095931477688448356601507976061516596935498944772973354739374996898412199467363035061688927284669806579310303529506895545491427381746892271655142780522564815064007351826511978510210972402495841061274756268148469637859319690580747926483609042011205069427710595661885274866711102108563239421239378872572571557094179140611364774894221882618985285545903336210845597386607556487611998788327749622454905669449334923245669241894916265327517718142220303733372769215648229927693085472332765034529139300200195903370798021226330329454642605716734013192327847359826727562831408213015597929279411863680645553204343409681529056938647071620507393056281868024268038506997747481141381717689705798631469483391249525273212251461941583812674442007469083441945040525769075536578337485272788293025513971247434410463445944207585005164541895306580002689850996132311799171854855841675159181505627693721088479264278006557696017106514688757495848727223294931142246129473377968135553465775848861790569390437879090267545905161615575234498349633604249116849203556699369383439493668632654713567545279143325606189034132228346819928075503038403337562381155493191407675153213164804124229578239653992303903985204142895176493221507734046058717995415867033047602637436825495036878460064762110030741728257950829524464353225324387340730838027892225729351986285949968589275205693734182573758289344151107248404899295736408512505384378607038339036829965835986315526356199700897690630960858348835053795241232386123996827424528099010920622945033127152138384977837964799434834753450998451159334179476839989764671696089977813529825673258045718088801436331658936478456877103924207833778390707923395965513707854299998275425114819420335420797058264072286949092535861455576450093064488719607776186484763337180756720883148480087822505532940527866108472606243371180961876194585331952214150287892051947219881887338094504543244555343124244103679985396351582134099862797034700781705203203348805582125479454450952912137633520624063073236811188723327635783783990214890382673612897289922972380411469460040337547694313798553165205623067447909151059178441035493739435544503415081041673555844781137644614597729369859087540165490303018715325237663651516220218526771385128685395523703508274013195843167183406354812753562509509539770268157879912249086148475407938797215917181087662419417199419748600328449125758201045867287555363430528516248898806108790853558951907569019008501107186422677695469646553818124486696631039051641137963077471184161783977001839070927098691833459272105134578271833785004963517749293771440183522601646550906322619097744070803029630405561840741482102030299592670984009616382825114964691204182056423285286140148589444168033949410621720559244071211823524621599318346755166749586213961093896537331495072290983516124060432993611721256791351391892224186891854811761709118132989080556930569152184534394790104639777899518205485801863505060915708884012601524627814841037738026699777551433577315593711816206633524305378271649585676145293051697913688032441997943621631662953052645908686051772483396454505058219547338499539649821035243766480498283199811047814883030264356683097039836628744915899515274915692434109950301371640089810611495475347424521995486261778430917606791730640128224058969119427445397374614973817643548442201495649143696021408525552640444496834391061197399095900587929382370974338658097333084358083481935672592158356099376290777731899519125939914580608095195935702798998771460278791840328707911632995709391554533416314456782727364999758332295202980501851589743918642532657922871756128787177841016203032874459811404896514498976751308826297801128374070834677373142529967702985498299150054877687774210781588742892033095393361025902970581400205109794174735438994367473147716367061636168317870456219408485228149217232235198090378301845040935441784623424660139309550772320810007242915614080535919124238510780593560325493408851157497386560716290980666756679534236888224572840299513733852230326668823214308004375500367431785404789806411596876991327266445631505112307886040184009264016167331015296690941754789415914826976732875376039975374635107851849638061243914901232096117839890178964670758387501232270278035706791878870729485416703174306727221574114276652883102819310258091786255353366116759739819518296211830938488604775850279368920974774531593045206944904321428576052787930674055050273577236462691790552337417285223211551081422483246744690545774852580167842147237694416636068334654710771508191745257601845708926134627266130887166716311923211310068695012538561458727897852898142163762096523257150683903175100790713087829800892508637263270850847861344649051022433750518342971636839165640672889631386867044188832151837617893604877231742464253362198787161339059502810144431068499881882929254448083589148429454288136566336101450701373846186437665887200281137764948824945052339475016685209323652216664158451524191637788842214376095120396644456085492049023173502003035532393598009547997015593736243371632342954134185397971712577045597329287805209935123087596568154247781909292338788925990733799415788778805945893867277537247117027341992267760591567342543856527750656139479419731020444253064524819802466834677562222521028619528640432157954819241983327696703408535102391936832906794030428638910531988347027890485480274949161665583583854764752060961016694954988855316673003818218091380656459229105724867497425542292328974869050082643373266815636873325244257080298718404951073308969693578887679621549111386099406672990172181006941739502994461044510607764984412587011075100070643391221967406127178857618061171764305112396195784561763363771513923870403437023370653029374133669502182910882718244283699727165785571879579160022768364459553791988115507243432702199445573372351435330250934389322750295599418434646887076348948605999407250709066796360353467752314553951692667832421101076383691874857767739834729620496033146106445904817324745333478903682563933086675565651043349746207282155276877350003854939240085020259421912926509665645987804382149339049298869459434623547879794379651902249051989106128519952228327282077796472879737391032142539406173604083408972123768167273049913528312968065060843705095044669381599659145444580999099192735271048036956180492113922556732697679149884370627385442565916716391497873730849973634714632175793981967777764169417555571106590056889688156026369859760737199478588139408130857390845963168926995851540928876750973678176826947481451499411503112038547257654762907541478848096152392203798755354625319295068323764219136836109327130878316762984105089058025610303445199521119556359995206707079523354751621217742189317484910252475979364268066927242391251065015781563008417147330078942905416794191170795239978975949113967509685961346216742144381108218682106738873548153705058517002862756398571612703005222439799510809749736846214043666910889800007867856864781831950218369540448480663426888116436800518073083646158739767632076604005038343246828033311577818373220764885906161790804350096786305195158803154871789080433480365075051341469747595603244923941234345326920094931608995354909666383604773181903901999603085630715855374403721811607396054454331920885213095252700766439916466865907790145887090550925405010906130535405111042971568739041869813651329148895896836748364696678487334872061948954038285832971105912346721982893631772727496092377125293411821232066259845466543540558039733149003305116774744810981743498001558215280430149526555609374141440218572702693590863409090025095447986868577713055106829280224230899210701520643352508633164469283614698065016929573558001840836731593072235605703633300412034942212849234001215061125239359504274645352833639446258114893498179230731642317712372359855989322668965352678779851166427749163571075424960704348992378786953494403895848612752141613254864235195853284030370861900739317992894005671876985940000018705336352495390251050281299677815839582027495924258246704478876999435808718554328797274295882027082633982281634937738675466471973359199057562962339199105873345966945435320914906931235522839049574502754106549779359181212373273690375009215049244914648192108090853749205871532894959883689060170783755372411034663885344950938615591550391949109451764169206782395043637410805124150459935864003400173438342184761791742499001043176630809690073591076063694253034007995935079577676790124366667274793012604612368970021936517679097128372732785676169766949985044751261489262328205844953894347143177519251947407925826968700568660126647982575415156536200257291704620922574628471353692519154121113359635775129815356194927625579867604142239284978728970124496505286273991860294754982515525265573887573988132376296014038237908801289391248208237627124215152540677859956315983120156558040853221860296157768597096390511855213493146380407797904003020528704228627453350821531058890505897196871942327241944759691878727305624712152452998778356280288871374025050122927685121674988083553952900992353723907350212189929664123292284096789998094866168992362078937057523207698935831561538497652933696685331101766787862773821858302950501317317371670355600588915463896882340226868791396551906385714070982602313687382216654585456666295545103715318043616631200296726992193109759438240384648942493528002677644285304788715450004543440556248211031834272991853176021589544934683572885859722906164366488630222088600122411663937195375418139737609188954930872914336932260223107617430162016827401676020013079309200209387187706907577847745904955228292682055132047507451363278535829934995351441329184270612429021947066642249995747211001107954250528814346351343015549923108335902872409539398101850728816064251098581423235505337082223988964610227908466621111533373953189103038821924674874818599645914072978324914406688123316505960874731190586343791772336445552538894670196532091527260916578542916203674592250922287205003282194975378635667981884422715373262119262223355061558451849339498690074050490754782950185823242144570119633562662851749169129010984574693938308379026542312385644737027861562821375587857119744929778338608235666428584772565844937708047463803052389626769138892766446002094675141025048168583723254558652538449635215363088697984042276679129403949417753330137631547898999950311150116327577498119119400542006205317638020671860836021441902586165718410108224175062522392671706873305574201344675249474853702354827032172144859406940197614999169657271097280245557858965109918727358569582546373348013082563583229558094663784983669877508191277494342343088947588332429551041573996521201010866671203918307147506597810111011484378152015199134496119804284546665246649594475321184032830776777611706441411903655589453479948656208930773563197778355024584011201732527652312299679601696904125269472828806851545318479556714068918800967485588513523370867141320195863035660899497181204482545958115109259944369464820123844439295042534932875264510706132968083794619764726111781308139625131124048453939070985655608659694745314621233136288719680279623192314101642541521844685610846721632722156603265624666672880888732128695101725876534254270022185200701272487174195371672481902800879116698004528378949874992571328303631388241128969336587000517147698945117779342602922167763018163540879433075008989768702382562934625441697580260736587998314935620852244342739350415013812504033223167453548918703325388461423576656982261475009811975054424451882969899203951039622078749708163177546037984177818842665278153262378749412086675365638178140367550580110616344924850423542520918135448025918230675058562926932679084997687208589560742593170589036565134595147353620082459020419958051439059097357106041098665857335393053999402904374384787494713252599370187524212771555128048117169788444034176714769820135436286573860976774349348975847710197743084506174312157717733914847858884241908831285482523452913134655855520559058982668965230090391450343190222547836768496399783343997081550254539980558277279110702322075788406455489611789472826783658823753687192367044254846125944837061019147497977423938662161667058193830557429569100032720506306477656370894245685635464317814436867900114088641093772784371374345569578408882825153982832843014695756134714205189280506067910376320081743163052837913750719928058667868034036764693633184180219266394370085804896961606685215608783897504051395794477046317690756283911825902980537996230716031571889344186719484199062293941684222052498465875836733118306538345735118697091955929928873161930767413616909231669546121860230235867836286462412821653223321112125904540301627655717981421093434025944637608394865895128797049036521634170064032103145800372506929804871727428105614224457336944156822234512300528411641267966208209981058252972391323611691949363775490680840325454923280667343786723612381580023140402654600733208448007314628356482243171757357337577643504427099388629955062636132851293545361375357766508579087052447419379777957436155833700605149167688881396611537702478620127652133533315595746477311837984871527475459142005250820501367960623638635940770761724292018595033704060847833959068655850913446496761877584004535448582252416162777314466580337362692607902948199696268994423374812519811727615485993645299888379243434306364424637698914629344302625114337979863118529115080850120514499539136021176479628885499209654064876179540862891006557561024187161506208867563235595267688284910509364148772563758568106418294862045223210145287055772851678908932311095745619229730504970867185017252847117138123710901022202598643630105237717505612597569922444933130410403066499224076457097805490178549183947862976956895101614255754157878254356498248451663165118047223555823683722306961935003218894406273859089984609396355060499075835277552745884189008126926948510120211457981099719986066855028841397866741191439339380979293418730455413940658716657469054005237059166945914316780810725189787179588633348596570323680962142094824231786596955742720362665065454130534523666165181007510353158630835412221714919900876996979884223585280695174635467886199006878546818721509574434285338906719808779487205078498893075134294097739847614616067142006398770549958350002183850457215992282647662541462028920316352489716671370172123742403521875993878865259085205241985506793268422609880331783217254909534671796634381621986208246667292544960950664801885508425028706484918685885894816115531154547020880924550971870373293987511771396407304563728367297698016276852699552968511378349497002864723475814511069185379254329753313228233964315167461120583457367229553433335298433969512379326070608187337549927719466110850377534716980925420715444771406928899328954484450352258535810439699080565845116214370620979383928205459647688130244402189423831297156001248172287675222292821958972077972798662139856287990536200819931682002205078585611152765026575133913926040060549423214023390717816031610712908810800391449457937036609709402148065010781256038780828445143743543037093270345720569661810345911662178327563873611219835896129656277187766800593106300202864427011609607569164243127614261898119161116245701221536198441110121508750154237852502110914408050263337289088514077196924749620692378535527389685265205291469146223123594927199507191187977720276802611952127830870508872799750092251764870343426878228118932889982811379601094422162760324278717975469173841643445548031217163856228486440948171041602273804810448475306742763504543192473660004646857994918299162194158825647912786337063244478039216636045150356731452601249042318794519804677578567437343069611814666069995783105096046083477222063349959690160574448855579322347677199642267865927754857521673642462118061275213910802077066703806225238335928875918207102537100591877743838828033259763317792112788055888811563037697080148466720227174421640145949907869480924044854727256490117549091487435173303742595191228936629971872468824822083278636263276922882665532884650990135987233125669216229085007427157704225599435287431790181035476489729410216333800819025055205917329275856796264111087095248784300196833458430486439556614709899517958382117793782191401821325150102181972827539155832829407005949513916874885709047960895111539185254923979410044221833005562603782783817707774402778404871943157802702400078233517884486383086251117758122419310503250225773325887560301855145654129366914466182500988380599852670423791069572756535710099657138445329396537731140427100061470622437919850157428790935612553745332200066085101135633665866916022698435049894283801199818834972094394785344004121710939506202724110902658965603794550470944078859313866957841793289558623551831733579108001174260198110172890531585629838060463474121158286757309199520319456206582692646438139505562656725376689678033276213394673101445918998890488959282193284424641488868779016852052780393647777179153772594344876764451076900735751255353871083447790333852514672383324127111342378776894693987920222178849229069199673444211669165443923851191167910403583567675898673699940897076019998738816155891028108500927410188427736373451595898448239639491868194919737454404711890062445560287151371463798912333718348542861837466221139465468515652829608710176138851308651302936407231577216316799282212952823224083861608859367088440337791104988401306017435521646682831914103692878654258602852123175325861908641616460260229115711000535531132284601218241867444054523502574886183039535804954012508368582228453250665479649921416363443094132608764024761035570925617706482107524075073702241608649249253626193544416857747325047512002855537380802026421428772340596069626557541786000333427954727349979715637055981142077705748899491651002747945970290789381536667885364363701891626796685259467056308291831716475279078935829609761753902812313238004444710278672731744554979914138962918072890839677810192567476411130226926131886187250447643620863046532733181667355304768211796809830592748917186334397514381622700821361666784352451442522449019377652048795014575290835563150739462368833176395993529835921805522255353481219969931631484675810060539741534195611670387348256048756772120206900343634890498323509804812308482565511817055509439108593639272981763069430844345220992353489851871917100301831452815164765197350238517182177190458781769061592095566665931114827203429876291173927527322006793862777801685628073937862069883895272862887373680553850170309199002997964601947948154630459881019979819967574996123530604302113392752563091261188766997926939622357827085805255987460246865573617634123104172278847010883315824692306749481657253080226250185361145140130624900479320565485162862617717995616412798861064146973858830607510803245425485017059645145606665392088582869987817802557157573775872406264517941648962838884761709988207714913823298558945898485906872512497656846048650541914840594382626828942083047023521850713167164104949833607698521290494135123749388554210700920077502211692562685452699549809472507619373758054663084309263383383739902799381286562234809068142458187270907445741720359795865184038813370383524923978276241591988994928289686297087845555263944214386456853700036777285713125813198990112652664388625927915751864508512887976657019023432961314652024386925762711185722086928140162705796454123962905803430479505565383475124883710794338414934962081134713715038807577351763977807541730781021644792880136908793136611909041386226682452354370938996249389638102714022603693327489541831042869118078853994888497265294731443936988126093642055448938617315291430141406953233322935439106424493529764250642354101254239379300428294116410083072034099326366648589680338659719031584414627943858025676156015242466577977654227895208638492043659037038789874242074844890453137070786400253026289234503799525037301048863621855044626462946588387599433529805568409652805523414963744774081324549646652559451688825858905748973484329037435945284016834848766486984494451369640506471742163319873469666630292173229594362213054933385648854068304787085353953284612149294464219051010097905356290990946127901291745618797589676249799855083972023839999715676477571689271200275161647253408712595436960705312791872000774321565264151390906156981904978425018157878132011351617640054029943809945705426853200396814123419447869738636862802054665627634834425163139402612282503423557442753128091277737053311496186904874599121165860713943134750728795206906935657904998930805875912312121822333293157698539175796786577949034071606629473904452642377880566748298795151342591999534513515688233267029546451861261005324395425022613643370481242059300502832718629978615818229578163981385441587545745916384867354634888178311461782369248669167795355803999152634147744978432526845131304483822196580591071697686694354997127059407686155385678635837717409163577733427830044833037422570377332225230773569964323895713670130315946749899080817217022267079268544229841337238855086423773210974203265453454343692980931640639517420118403789365850999083145958712185588863512758709219572801184210279446516204519695829195763207412546527246074095451539907479203355817240030396304479009134902629100145894965589981060947383215170839683195798067191365365639205316184139153096154324400333666950299854809437654164416292502726321043726049518806498682731687832853131203868690552260534724803727040699364999121850243209726019203720991488359439066456734736728796535199690466195272903581455780235566178083882068699249677697734258030620816810522772674367164096226916047949894214988871241353690200001311327140687728508816765982015934661820190582094859909167233151038706103003094189836995442626616640223833853852838156182290360746629479202521333849387538248079368021554245543177869927841911628956000904509880783426435621942660996018294434195627423274027420425415835899764974320285412279189908233767027685570003063210994701547560874551152859473798375621494705753082800947157000239771483402370120038987438376212622822235721956574663512693696551920357915424190483747578685904687257833936422211058057901964109808140723014904182860569653868269438441542344571781885150932521346110104745841173336694722550274760057723368620349415571754372438787001282260801350505100797771314077713559686529372668782627341624606545558385192526002980682418419734571542310532008170610432074330454544762579598584236073788522868112603246389893373147373044344153951155229781122231137527115825829832699356819552870581175624191480395565294824290367187506716579279093529257856331940577326900804430289642508650131336420770455418829703408609426652304941386104844821318637273027027143931254985499964899590145245040031623440733095932209729593487671572442550568379532606600757578554367540823697332613095992219476045191571689996889154573379796659091269025682613270296121650818865987514578877320929766213358160489675841671008794752291392931270711816128839464333690521334364221506330925270204452088567103752264080988537099138830403269025050755209690976379493206166653484740372718407795567766737918065912602437042115176436906014806468193611874019061881211188315191143903296503942327600766351217832943593274860563346311706076511437097689256154073961324150276354858902245070800257573235059198645208395697281735186568260090406186192060397385334961284294785533617585301505835205552508995825541269292347008677532383738524318355811789276051501081820996324772558348030293438440649588729065965965818733352831483073531550077060093421771443893382427707675720333502438437285693599319719452604614001932799011325022987098967499990239141404583108154505364201939714458503951027830463604831985947923626060592470876594609306062076854051393873604434738277896061575243462340956622629974870217925083304628651956643131280761172198126629849576108085055544199687433448802631702110168935932352073843148033074453577569050462309467114192457220487828313476377182836627142424395045393419962657895935394065327167870609651312124259175969217438025636514487862614665885906821874359025230511679884200398173530535429733414227385005791876358918374075029633665144775757497012006308650157026653495672950952896749622860235073831059064616691681444420488151095055069817948486831889815090305911131281306528203061119843714032260594149124892887362497322370356704965117401205314831525279354649152327450228596901189378953853364066516915763106223408305760001081915124768189451026506299226685873232706328489577302232969322559637029855525066114122084486613677606644069825347533935699890494451904245267727368580449913048754176946109724213637019177987590281408122845657384964599706454342335994827949712202144428627950320181127397633159481444747175726783069343804973165556166446852440760298939720930945939069842464844929932183359292992277968411768359041706212104562075993481770158746062291369228213419131401638032100355566190217302978150209097106163260202349348490159897391943473445480227356152008499417716454071782694713196793421594284728225484944280637564606646400611121547096669770263916514820205030557008151466603029278941494654715610364616634853531766659712451219309744676781402953459585558681266138293090383375073628798294435786639671353775333724779478042923634711235833392035224598545091003514639840304283112639516715422933716326136183533592340551141703680765671980448349602958548304522226056201642542607461812804910344310709868650230305484024316626054976555666577024220281430587600843173493063455585670475725762702257960565730988571453592197479218168767818922607448027589763851803552110719747010274454581052549790123495140687764456339180799833453252364314003731536672537711772576086369784875123576478292289311842317674572989972763925901178309935427747262347481326695385349178753170658944527305081525995366750481582244660683364986601427569310519617485514705451122744082030273827282390762987092638198447158580692847538925285899140643581586308989180698532276629693617188568121960949002643338793543205058163472662873777790961856067374364866799626980341990620146223873236698196995802551667566323068980515298954261230347644615734485854927489141740019741500950837336370523240347455723105021411770816867834234867118135912483160136548601648207421956528756066149788264012525234261720895277335433320753931623494535688075483330220327488353169553431139333328529368195601448062941090064716418945515017362249014842163231368215284603870199108268558912725680329555495630958557425317740268958125447485741621347208710245337068740547648185264492500823739839949814333882033264265945942870901652999413678518917885817971594670438630473332881009610137258616400231227155825387406920838629939911588920225070879054170452898660004711201635703004903645625301037575110926531279884437248541151788115077103169856102066510658585223295840072112846442944239199417215914172264448367524335881746661693820547785591582354220783648983651559377978577471453345613595258115716119889383526508979238794080475496169906830201825989270729850496123966280479776157531844683707030822155610332400511330212023024222978606309425797563653688075598597822602107814002603657240498801636446133637954704529183354180764266800171025470675765005494323891292436028171551777433845871166514535996076696198831105943774008147814213362622634253899746232093151122321379948648608653737659674195770621989494094871693656049104550540598711781334621346196044586285354155972121472771694566123656329660054870005714272143884616115728378074474844069126286897538771014582651677176492184821771714069637034334431359293147243651272339796072423713226113933460190826409368157220614059773721822469139726779622573881818076741738863369810386767569069557101317511185239444867474422908616152918712783432668389463407685502561347818482879961768791734971604149530887596524698542055182446954804072277405801713565095153171410347835631608476933493642256351602097859917272454557647596092407357744545959573039052210836481048850663085069931964685606506868887303814689956697018672537447945956089333112755885428503316932785025317570639120185437145652227556866574456628374815963503760234193375919556240056657293414426231515690099023259427226938414333826863476750805692938016127397130670021868394928979421540817231479444573902145712420906021357827435236066319866859862523144461550961010636333945806821381656296848184835855113111662951960031379845319687386150364979023730414789394075591880320035299800669613114539141520111250431182011427318916040109454800203410197475364817689806071921527769836281222379393018105048236517816021671818495740945409764025606832368089036105732848413865121957099809283741819350285311179960852525653844692520669491826053490359733660113079730123489094442462283295369458715002471932479071423170292071091814317572757162234279895062057235901676512409338618102543219592185017411392249234079923144922276190287272285723368656627765545644878490626691255404709289994824406956458964318408875909414858250692017436831624713755581954454094691702133374265080747316279248198113743747750218947014508368530081264101660804633505738720400897445130742413756133966724733450012543952906565092520289271992678798412863042640872194841578468526919733549772397677093315808827918809145378224387923153692949906494370114745776459772796065750601755613001761580575700482408104166221517703192196260070395646198518856431797569794261601133820781584470619246352289109913613944327328413976118104761584912049227850377229979266905349590697381140389153958170476802218333362463418808449668260504731338552845890770268105198864411233677169796488458005841798756935479565991899333982314030445697986224278602690498240810074558513280024964287078249807599496967932624196418696878900954466303729612995185800783914039874745443813399911509909437244326060588462520586584761657608651716935057711363596678176485443385129311031835171370643791745282712170804755634662915622943352868143836370391092649931421873711732891192268749329582140211478734655368842803740536728750160953404047806630157846322695321363731173713718218162563596446920704710222178687922349102615487135316150794617452478488869245611214671466494869816300715745202876594759599039601363005562984508447675365128177366488063281325688600901488213091677280322609346005637779042176590413941884285485662351749119071138064489286583620245650089478955185510168291650919594723560200833164461978757918816257079174654341200801242151801053438984979178154953319538873328800082770330059225469299886376980357473233493331457921075032902326545668411439688003777552688437933914871631369892910108626463632387313674793956379387465531296932710247697870936798053471045663279872158749899922945337494590875323366925885003683178318426609785981058163704861380095314011933335099108950300289865934105555487119814586638341876632537959932163732471824166591063150466535950625323039241007826680278377337068373371669712245213316435729463562805123888399316447784194852746628613490877952821228226916763630125334843927801235312095449005254178713561029926706301841414780671765866739172690212262011601679486371196880863378899009549846344378638035908646661296044945111724825818058507835548120352864355862804874118458571553955443307500810283583228847516579906913837861631116731840770320834717538005836194074819825405762523368396963954070481102104354966956046350857848481783880781691297027727694126606877122976185946655562037812327766687928183792557294279555434090155677605632579360855040079571386544307948747611453914342086875279937588743017806699755023744623085616312288721405262479863654020280909481387201945854641649293826420183980772179733600345380880243021438292565315565047078332597036361460870502168102984070588384932108043827773373054329400643715651429527524941801545873052164200497917695482062520355270081905948959844825334202376927525723481634370393355673771332478151644517116379398677225675912094674745476312582435934836543409867728360659158753053313540704182633822713262754198777032302589599058916457182910239142811536014610796254558347197434640658240021169370022546215254706390096724239568616643450369690333413150618512617002957239191921660668759281328371155295762675401787091558552061353600710085013104729650705469715903045850092915386347917160121675647341879744869233144831176749120361302654552520756306599166363712071188078119714938164089242015351543236615612740077225744453173221647359638120009586272348977292528854141327628295613057291888450839365726015594437278242890674072517347933013954825727975033741218278159259120492605026390557033559020461806388034416540747237813077290359420709493463446720403559648654779080503143472093739329636495102734721549931195845512160331686319793553399278370667151240813407562826430515277390060843947965844158162740568499460685175664164006808681649643502760989983495105710802888657219069371271690421247834054171423700619270645457977344421258491298633523016414851160457101171546945951268850397622809583575819158941970179555500690754512225043468781913917120591694853692050593565955714721512077330762490811241409444578312303313873964060721605026544470438719427323870716307543784295273792875660900376974694394696634863224526213435045888679229129269461745549674103604117561704173479349403844853810690450693830648100428239010026867572685369990427062046709826701179094207190980364370936623260227841798497288327952570679957307058392597449721413090089502939986136581561739699123843531086849988419397333523172794895589915752938649896541752939970246423112915418978680418989254230870232282862820656162652400044922396716251688636028726821742390551503699257554089801368318276049504657281088655683151252140342649950015921622755752970871744975488235466162707832793025917024681552158870350575586590167234285806670349089659254272511430918107715548423115642076050537958876569557774760533917872931531882320480022027788870173466279818598042473214055981609140294794189351209268407153329750297794813095197733802539380968028647534763037413763595178562461723614544081471719545848461486373423802093753715025797672872395363253479986385195116637622685772451836361958195730899907030632808137885236597511931544328945032952721107018811969944886966858961611332869516668893965587495611366915307209578995734778027091404711723499467629394663122132243784594317574473305360842610553612358723648538201569382635523161449089548314352810243771963856295989881952049863785578508434140501010540957678277323005134170646062675783786590671383080504288223780322370473675468496581622813786685363768233478643640190110851580635800521379219378914094286260184276190249353489326083111498000000225437913002224467338716559283952973090169201205978794363606923960498147559240608038193475073139194463603944345985735651974085268029968730642851920172665242248652122424932678229574802897973024864740775973258275121218482246908137956261421989334858193481952289885241525718923691172461065073272075182735511047728266990148701004954967167045656680017390599133373479142815254429713888538362720817768303055098198247506963573742007400554620972451469268651384094596099089968421555711137082934772655474977132375853426874405993483767747079892652128239590046975090977516702357422628493452729487371101647909675891940686409128800157806469954276626859250661768252702077848722730491984488755390800871721933510377943922109293128221236114694493901390369500620642368720554787136057193400918776028730422479002707370010376105275443621566510576704543601742766797805243264223145573106313595530379268018240853017087759616663268968172841889071779556898032871922557733300206994075993764744668972197440685449812151461888034426769074577333456623134057530409527874551180604499168511323511814299150882841078412037805903624479502434570681090101344560373683097596521129503484619466806838422946790933680805353766028694264407612728639030729737718941519690471411418736444985897803005672658272878130689491839456253206752032083713005672905815913922281230951118757084648307838865612981549580369952396374960494976280882083820639816628900994456789482168863536204509068111775120660325355440473646413484560741630057913330194557029024339229860040464487207480997456383132475620851119641998401272143935884153674804297802598145480085233513690490073678704907788587714446861500597724707548495161281016645294681511515219920295982839981722052207132508846202813056813178383441089812678921440653681208055857381798968222455635730953490713871969949293533755976770077716861662348637904338943198112522463054085613919104185153422348313861216186115236820864057538124533229729252552817654006293560075701053759637401284423939642236911447404877995298577613681752154355728084274568232619438444035577966580268571766188833548272717912661520800737393355917815211658727500147631850285058816688115028429952204396398788239985449815767356949200490759435866358419347080547695895781136597098293455253516022345389209797972907755494826827607788138363013458936606615099588638082369206073020492690529372255721294144640130995159571994888912416947082149177132901465126543163378123062914979463838302655290752835915094519004870197316181583021821898475508394900302924510177832457232296061983678194677229629799312023238031168888947022120716785124116871059611073218739428257216410329593457521168060575903593138076425973668372848740862283559319899542021742545351963274761479836808806253912943177604617891060550127763298346620066915213865704774420484019310700869687698866007861850557488606868068651626398560684458041606304482110513673071776338410586751006888719480677700637328265658999343183061354207867574627266710912073665850527756008793623109171221415423996912576540366363607910811579205761735685803393482539911036708498359395373629788041521020971075417679610503759057715843850506499615434782090398685039136648559706345755115483831224051559393080167374263938024727242229109432392191788215353392374525484576934828623076665853359866832594685411976212113571154179674232550855779090030936149057094257378588003641700574916329763225153930349257587276139909482524860701909010922024738805699614851157180346582579458148187387765084885878803682986551549657000501525408282622272078557513716509993968553415777827439566952302646834559252643901629469387079036427860086677280427740082388152294605049302362611754415215670492675928773094262226002584507054999586395256256957662557785444388131172606169114739762669755314728325344289674421668236401139175627724161163467186868999300275777586040769082151121666815207558657154226482269106178416963419194091272280168350398513094940072130295239722895996054355183541357292820257639675302180301081076963332762695745773102100744250601028982280949330910416451790779803093534551933500655183245725435117961253540221141292011357076067185086383151091252420391679333972129745617306423351550907444355282856518986400350667606795514509021254447085833484346592036017640943162860986992103717518219623568905640969820996710412121276175766943710406101742848098319493274153673387094681505391908533403853336920474023172277667802676985523008252374532528276754761260763130584137073601852795289425950903523763992207266518131314501462887794847567842844654035945530044570991236953075009147872977760606465764656496641616206751788890232456904850131129965183710651078335551311327961039947544756882224474220096613780742349693944470928901517360895689036141387279730345801499087886084227610782577083421771644493948855633912150585916294439758793191863286758148901529947805903716706331760698019529943150329599424095045762370903612673948009887258709214675963044751672729061376901414466266071132548578576217742498447993092775244663363188396298889170505619968043072345360439656711032107861351963714586506246920396691472829401141496340171850352708695415274949770241989875967267318634874625608262841806718688350880976957874593922850197090626451167088669572417082474473754168399137407022857800642695030868694900063225089629702099969346884734102603237583310657553708128612651154318832903941091895633439646999036876911588627137469530023738654024336451372499041027633790278849063916201125642674856182682072185270733723715143762300851734068112915513697662102320716698120359951478633436422721303055057739591607028949251692579406563300631719880764904552254118404984364458434491024591920622506040844444790393983502932339541902929318476250526646707895208286930671404338990104254088404857885353104742605100217339961107882247925194794121939269795019256674057616475155634661022357229487830214657043083027254158109673432074727958783565128583027011251373433769348758736935155779967559420028738274938742731082047655515417696745245328339320480125301321173360317079605214023849135232432999867962741912249428352797844878608977777357819145714927605404630061323428430301498065307489262437157079764646829066344510599463763952128871274212939972046017312593639322827787547406926654292847683597898213229554165314817108619434407300199694447405978354985314741544345917362730432403919744777726694993461405206239269086350542436627137251958924630718851728637091171685418179703924141156803978838577401328641200615929419022016859883973679995143729550195246468978923187027798561252828077969064989694483203786420997450594506675153266183695189486023408590116633877049342143066418459814572536749091504761391981357103802700784496906110542571571594085197606528438406734151138711519885250619784459680409766115553531470188979351773076343366095240781289752889747178772341288473119270319142458323724166258558756321751747406310864323774168538776051490478864643532851146535799294227662566917715000076256009720940386368275555419908675380504951984437639950368771340051136464228278516273771345772051387609564501128096029645352228935936425976129014273110774934989122839722320396499418769916150012264552989817058949914129777881763118184688703978425360695330741363813867977164934460086300519486124215012178023208727656772766426636483384412423630087723011594356997928440733711940324369588665745676576047390663062459028372899449609433518550132599859468825925425403553730672182527331582529150770581670449426305192736869522025185034928410374277525731312559198782116028069516405786537194538698857471803799504637878528805508952831557790956275089016759106939082990993894523838529956120331491127528669868619775896285921436773455516545628149917172336617886184292982668197019182236120284201785484121590601018809489383165177382037779436478391785215060162530400529097283152222709687446185651768602131542833027592663304280445847404333068887113234125211775160233736112301497758071692128667949809927890875880581613103920664816445107977603431090537636442794023471266353183379126389249376100791023890728265798359602613746099418857628296534213974547965388796426467355318633076295332573349920749956647716866631680900813768148355911984839167399821611269632281943690772659456732243855818326209892131003688015838267461886677746504908403472251929843154936289499396602353864074216074325214276232728522339051075569211132726751880306700791557379331186925953158310313834049343706761566061512257156861848639161460057653994137440854613812732362269824063391081956036305586538978904937551877193088301707576892402244092328961136727804141720813777389756205466413082306463675738900168341486656318920475414737329847317171610534591079787811445527304147024295395740548230674023659569290230296920993627929209938089419939877966185040524291713037289605167901961768446967768557429047745697721095023637290166652454204572834889040740705220473498889509785507916157888735554553224326440624091721737196799259179699135937698163843356021445558076851490276663278625355392183275807324302374071289320121828859254561276259144197073017686583736219847794918551844711522990569043741838978088783409966409291942509529877011357963535726534582407336198504859038734975777285001587642932953643277522501999370513264185573796371591841307999170002864431144912375440398482203265935607601990321274923311517395350955486085203429109680890036070738088905524999425948867125107528350093013475023036841378017062437671369197974819827391354342353987536984108966455440168136499823223981324179172680756001696810643836453182495199369315341066858672318057937438843255756361513123358482133553035593676570419508201157960020266441130849507835959261414453180951539456404016873524453136311652893127758991379114960695364754510213453018516668821836760537713338083088839898728547223825424800492568344181220438591039848390531496107981463822778563854186423758784376077720787942948993907275243216340378014496734655578302590115732328832915706331162115932306306460471228905466765276222835848162233360581355566334446988213603128737725984425870769762933805076612845388541474850668584454298987436231647659415019662792990292123023216452999990818686552007764173753991181727698633522314549013424972016436719051893762538928456748906499959595681569787814808004313079419417452969818431758119124291774695851453742681419054811933143196740567101455481686216288766575968430234372711934232136038447176393096431384812980590652853318109096566004035001956993132949781189796923084535739443975955007213823685613994784303046897365825876084673929827802713286927033236229417329281298157000515566519026073498167540880322063260229378878286547378099558853814768979873818354473527318032920915853444397384589119972727674464569097050007757957946497634842967430897274764218965515217473239803807683196568675472304199773445703230638082350858990729376472103205857436833901676322021680496761429942295851074989548784928606282043460030237767248690401970736668804594119154024031028781091263930866384220695777669843279051928795769252234424233913283715357703416859918649991776762309437063013545876312022183786806200744859407396087833318773214595900332090503435294445565869799302871220887201398303025548862884776144086203889563259019151351140594280591762216248763146834738525767271287269826142166735899367816686461419633373440050076749240306889702868699693747774780646122175858937314832596513027692766980073303143270993173753135052041673474234186760744091923633808965463749100670035751688180047256877324386714963550599100515992991642043205791738838558993858864527257689792225300652915404806797511952559911845601593673519725855151840431636807108965162883046045972026465834666332697125816101773093834647813451065965905180229954069073147806561651418907379062590667903709487276350033168264723543529648323605856701205767333689682311959451818150993628360947143742142188732020083208457750006398063207047035696269203385551697376748259016393533649587559054136540649389166865646778308093273500480965260694227905375235823155709609490671417022630669040855523383364549638047422979137873992475188592729887042306611677253770924104537389474234917487584757760003881086340663680310770554271188765519863892041683940245277461811314046070784562312314813002285057272498943533895534489900335612041147995273928003044300445047819395818612311180792748615624115721253790754073677393915556935120182740530951768148525892719033552814541184017150343565579183875982175258628142702709447316615094748780908378049630982098222829006326624397992072948447900623963398977767324974715078644760797837944763274356778782862610390112496276890603039043760268578902328763340355915777199802468480758278693776375151528123166890653855892397548141179133659546334091314614251150370436812662577342137894337187584296180999617479882982248782300738172680669314449697490691839234371185711528882675611511247506321989869662895262631065109720311284573174803721140209178267447202015664543311175029269934109879074597074610164899703956763762980320070578090958734046934103960416712065214130997630158091404620533490051584006599112098002300768189412684525468824327800521729844249544082210590518157969546095927852086069959485283803521076679143651445628748043274731147812627022418373607045111419124738343612289714151462415189051421701912813811414346451763349655953770727217086834852591772371702658769978195737409130697453622166646151072871055852048608276656572672653204708560930754542448975628241380049063074776800278508824259734495511047883634662267534996430669675667114508154029467324510654870394319361435360449080913917348747470623990359161665567997653975078596851988704634582878076228774268876340176607714280384734986998723015388332308368189483753718286047253772511337715235646661444291890226017648282760095147898309666849492083309838043152722125451409524462046193227136778951008228471562108374200640016159488200495642632467568879831814501245764948350077197716167862411645332204940420420027812951190936667221720352701567362319606230615571534749070710338023160162567956349418173597888185014428452015120101025736841140235675657720941017145940035795997096036441383208340323351592520917011839357111846795550757324328284800755155531382316679483087628721970862290604984026405449875782575438425920800658653712225717769039344685607702078785452513896712416533558281020489785867750078228049010605002535762584166524796025950863204960036579538541692734854786596683532300614713727132064269091556399941150787102239078383783466412092104942882294212997295351379645783093777646726675948404622966599842805903198797556481764997659310511112772349599345755054057854428421639117996235238242910715076030282531851871064413678050665196075926043810962200696938992019609703742498972794699599812981210483826579343022597003917104812916223358313387057531465494168817375908788688100048612460949833967742450054011657919903869010919757235340617899900774055257992482536930754868460576962438577688918213717039283937234785699538105237760599533493302611742438406374928306916121150830307500588429598094442549363859111797092138619079152959895645918893775748563962502444433345477436139059256660087328773667912041424554960184808124549479382716379676475729054834646566246931115095094898774277070072583004196739801419627402264049076203689118772412639458846642833432645360234472121877024198471669411810265889023647791193016198237734671101603898473139860343614524022361776985315930493549123674296772570472558403132811024826578645044144934010607729699416409064266090802609965906870125250668634588893315195911923007749520672270208382425634076446988774714237803636012193013878010109379462541548798062737808278546704376421975239405574715000849944190985149594233294023199056886231436405545435083008299452610097617460701382106819218149027588927660195034580377742498616951891820188591765890969584415325713290196963725525076980610571839001892440726692627442812765560534211566279445793808615471962794228286659252531293645129827306189761113639197804951943308001488095672183905338936251893220083395283647239923236005196260501391159671676170639748415479656258216320402195769267006934126741829523809826323204406519082414729616358133217153263242902157947775801244016658219411879266791974846841431488164531069412001845445537116256302154132895571984438607204197789814064235098181243339986896658444808318068608349117827074272323517360722384550475776549501474051093673372940412258726225737355273280282664435137063768675079145163787036750287503310107951625179821857537492448339236498806424427987379631563137890334789610478495975838846547022645808287002426821472416455974561378146927168738261562614570013156912716326810264434785122137993277223453300863048634311880045538396060490809279363032290996184923538848582162557379330046914711401159317558424187852362567921076794530803885358098209932924170654629012441344420224908416641546848672363205694728740697882392835685475498722054497578188429538951053563800315848528138754674893773092264858836188406924857220070401555664381318012757082717993992958839107355229516041636761895512619920678476650960441971862948350011396053507270961145029392950726580125090650767324909971036755248419573328925898673908658648741964852602809422019431335114404001233960085451545345668364083730586842642522056536330985392510530228010166285417761379628847159585393539424041301821674386191354157132044775879163426040274972923430960652117885885070801764658662965698291116465960939251762904509855657156221699946288757690319889491464108402823142018850471745559285739475994961980124908477663326942885049481495215079061842817708262934504726463471742882537236869977422818182465136818186235843126402716196080705479433115050908905441904583206832834094183664384123697035132230980971010983261778613491457930293575401576841283924114524504576008622399475243513144925852300827827525695867567544416650335310680115502423999981723130840099900881887278030338478487145107092690778221017557428621473515183576429154339702844079292047693130025621942268997075781143456637387756889669689416219220567764492885084611079735369796275640214985249260825961045491735616550215685914574977607330446990935471643003279889602859072083139732724244105882929288191467266112496601289458839856562080755604742793109005422834158330160601624420023193094335224272925965312543492989569553243997708117601506645365892548429780560195251703027776889846380297300302688643017641743339491031633796907594781746574183028132122974114984095385348649277123619061967958791104422410261191498447839836645831185786640932129351618538368705482474966121858961429136143051463316253642887669355124498490199925509519498215460467765739590970921232789066824759993139888139295794033402757095778514467273832188172356432633547736875234815000399951531861561572362722290198350890302649740253693228470176884620716338831483014880708392211913038059187140666576478099354552958776044115838963775683093731313024437414079689189363016977667336877497529030291277454693799364569511396271830383258448817511776919534608616386874246357072398006802711690218528790554766299266150580489153059652648390590142173859146532910516755726344444279729920978269582809264279436748120467986889138223285739775708148237928968212373411886135795594598057048087664164762817455598443012069064889792335813620972347877176263592140490485445881637239864566318697560008516511212227972259511407028817232468352980791304317210486390778518891619983651311191554096777665597804320497161617253498574936530501024788269058721091770680085143583361623793886451870924011891300385445920844077527099235322413470339632442776990104172949023088478945496903698896526627436800994738265810605200201878592609619785931948784602761024849296839931839714595848901513481657461572931125051656586805734606061847970323925608207935874466383515973106185192439587357887023951767747336490738007594115718716360040714273262016479423936950784524308592295288030952721143341653702314384955799699512338890499149922823029903465312347458861117072654764858465277190006630985338431497026447685032344003571982373905636086463390258914737635024647183998761537027710386884429176147606826078449090040954304322346631729609784301759883708513955983019467677386767711481235145614672696493573032906825525099023821302248899617305207984297786814145055028610922381684032409750572822723584888076948489549077271880068395806146449065370282641996174167390116456451774780736983566736553381812654577614995947705983395890233184575544348911759939361661706458347029184417161578082812910218616227147902467987461911313723584988776506855200114056280737054327948507723486051747199021892523256329233779118145264743602700173986714391775249486834077438564637367059333631870737397668713956203451619114690604396052246881405964328432468420602241702932802972115160350177277502238900699099432347043543590893774418460745395864507292921206010088100322082424692658149170568760444561396230430283397546592895120061780361933867567738636075175231462611355713557975482173133926124034239164529478944130302559372962229517508676883149573749616341374463481096867534312138485676246946741094384875546789003729670517414626794050291297391252103631263456712533395972032457549269223892641653379095504409508631206200065309265974946426607741901551753440867880573674350509503122109337800756250374178605238849690278054271427645296352881911236738900382273433526460290197148900137898217469528690565388377070740226155152130267016965087312615563051404570391229443043610092022167973407819811073070793351285431796780106901928099128054454242025984260389235769375807772712783264435328035580528066762988426760294995031947953160298126556426984850285337983878176318823832314787768601721673597035362014991025549609237925234026674096799900770506033889147009283171370419180780880309508015740214538995828358352265501146365993426640679780361989558132076603014891733919573883233340597302824821368381372753687563035461340267912913274149277128945130298048918306163861160316843922369599920422138369373308871345522654147091905314568376722626186961569145456095066779775129607129143715633427608213707161150847844325530049784420764212827470703263763284194725461725799717287069195106334172268279538085578269519041879247565083865834533497870637548503418816240242032663117194700904715016162568560263891611646677849606611013073340809625526054357879006030139176386955959273490666028707105626175877247469200595407657495307881049939169722365229263051226801597839818812502001089840098430404253925668308650471052420156942510990935645230089436818647496475660394156162864532221827393405420768411050557057541899268383025032287046103457413790370816360819191026424330023310080122603916656188581208774000856466566565057746294483321904159463394672116631874577305783458144467407217962089386975928893313232156790311240703059322695245723581904265005895120994509921549493355231047549023317697088376855595752962930573063578894353093031717745183606302346749084982616778172572348151870504416521209545619058409768521365522171090990279404338050271171232930428923105183870070651131306711516370461050205959910522134844401908145225149375034668820489571795141785424584962525424584319106324973271590863968044999148195509193893302609462383359175379761034207240302254109548389933137872997354216945731527921429231679062450800208664902606572103113034820784896641123102159589492895795158306482909601734243462673296485326333109836387351518041226223383568726295649124853034393952405700726970358473776620943347133210821190938071896983362259658972584570945875973608811459835325636984147500816675779582044010658845530205738073842782684361520014971630261042168831777911717503226038813159479187497592185802140739642378325048482872503274407143837071593650339619416878896739452953395076736367353075527096835869721694653294583181296702951192933452575098585944588110134414154696072872189953384206702550417394485974224993718329567452661772432587864802451713779962592617330674835069932567585798416414959786098079510647009611204102542268075830441163633857461661048230258360937936041700529272983193981666358968318423187473252494644614131363964657710185149819220036970138351613737225238550265151158159133387628207839989761619013806175780466096096463631027065867988984693256702539673008456335448920914065221489858260109278602140044690768254762378367325804575386938038703120178435112946172806664501422329872130909443446817434564669481121271082659786252079401335545648352394031123889943613099598566690799210233760636439052072714103163944190299645695313861192787597949541795135020477050639312935708772511954181513596521659123265185020389007951652887034876401005756902834032477251209346383896950282202415117172192680712741185723805595633692013483615677149696370491917477055892532492198837929787055493945592063880595084599446878145724968164780877889902096511669815493839050187104762498717938432211078666678270476918657059129315006277008262113202222254188066752430230682705619624327697080386955900540494505809582072626505692188256660696914993342447420287001205411458724925729992097063564497222755550582832643090323493955937116336692110756779381043722746988404022209531600324896366982269840731846761484161370480634791113166795759994426644677857878254308779106052929549978975827334988944958125855297334464255448119741738799005136302272378263652491544988358225558460404500193415808067784039793127511663283206789981964122585387908621013548989469586948914726192750882590129007389891013308261781002343403552791237164317516002104145560573329824683780043835168177926690619392282008463368746900400867045089065646927326681741798877381450123678503798617321157503354103983386001448232418169407145288844134469981648860760458096431877328840721882209761137951200705516452430145413581831075019385364343350747148392250613853292867164038601021150527222921688033281558617898709865420821257671162773473994766268836983544969375421334285332157527836649279841499719049588758510686324910684234107543303763718498939081714869744480685118021551199607835624896560204208985622946873504605158055277027444726262753727477385211804462412299232323777245584867577509379756990794459919603457422032767772547978102120861216691292582234133066877890046490171584457755784009984455204405202402556741917712048775581406774534933250584724220113718963095652380916934246815124107222741901766364593167218466343987533356691757383907466362586982166861245323312310100014303019937718504299089135109168742409920928095423135165640421555858681589063507237041970706399475881850483335668618106250862355497583046605488426008146675070906986396514368057652073120991744514138853945518149920846185269631060074364260551455854943963785631586954538287747605209121725196711965180663751874005036604381552850089483288496620331118846199346535192501937000849544949185494850789299971745498973973736288297511395784193127798763781278353864667914863273048029234713377025614208167158252263031674642439966468937690109770538927224805033115838401542064514939529909610214851803802287384787570568187114424247073272666339201445806760022963890058915812634548970753821774913615969910445096184189756402568952399841913109030544674052618019930200907285724936536441993563161101519868997153063245498829605391753356718277348762340951355791158305256410281345440113945986498336942369088299348578936075438477249867746640628965373876357480301309513258702357006844813017509186332271305558068784672253405655347088317979722353958656713468417783160764551929799775303151122662092387720192359414725660436634222740119777701559466431426262729183261992632526456724708202925386126383871077665327132275139198851412130634565754239038744801581649597940770831533925685684223932285714772155553681025671785408708923047697554738258782020634430724587426729692021147212851730031193561518761546994681834872533561221214002225373230232124251728558889220231741864414273111000589451546899184858313658202486868528685368970062283893597052347110853153130161083077973818338133085993153915161251217575991090574633877838957893796601643154180709037406765619857899145701668483833265087917236654988038649376507916399667759497006756197776235631585978809605405017733223168765544299233293392267243238589355320008460651330214979321993548781582679850316942264381015448055069002785697946864106361870531949626900339242162078661830862746160324892013286229314652292174292256761008600147654130579358910861272170806467651500261464319528589428769291858346508274962392642359668215043424404312214284373721579965165257682711321399152238307293871373122625104560559464869620014377153667817187474676623942234721995060270097101969059294337333803339008324324259052549429092359395034088998166714811807738092226295426521317499850540983427302841674862047086756316809738204937744719456900900123172071050210488279713468284795092319374810607167676194644882620165376660843196967924162012357090646789950923717527744708943282659451017325761717898288894161864689989227837087572868075513208496857745478320641675409562164340027712873589158993768245751800828526390815798372992010717927926995114168597272172569067085792938243938878080605480762789240316484231326351280293458280841077919774205514714758093943365393258016669067053331855617035887384544983619684810115282708206019934118354602441794573756006087395157233957112719432942741588145423730058970661128876770719786186698943170073363574296665993400902272761821138054539927722287147163317166318245107597611178776845348878772368733431265259874171848752300730048407016562215760607239714709519660872709418582064363991310109855465094730610564982273607979038668131144229019606752309501073734212823883540167419767077636408989048833176206055367631681779968368721367309437124193527785404888079413496947181121289735638460100899086338258340404192236632755055194142780921328255974695605430832360469647872673547934107401134326966387881615658220220832538388569721378034648615710534260180459837223945119607898584195655632944433633040848977636931024545985098165200883779151531923380819975465176514053303608486162662426868996114162690025691675691942587385584372830680423381313655348092892402360302157206649002861698276784483536108618562299434814841118420246388933301690425085903017081105659687409905062936731699885934714445099803121388963090939044112723579557872085757570949423745163251136310752859949715556670440484488663346958955757415449036051269850858929128771192105202340766909800996979883355070126735238968992230179127229511392279470393079860018440358309848898889255062960674511445330201699599119028102275759646279851002351147348964382793181904897193063969468695989014266245411212144592897018289190308888152973403379647264692745648625874344976581387110960271492416634278418623439868532947564591647627935622401075286273621324608066244236894946038263549577621969638340828477065353848799187730832221372456384030484355000497999035856552842434049571583615062281653337973281734696508594333075470166529075036603859278086711922066761661504053660619580033766811302195802214326177533807081743324856780828273901695660729477397370718653717055864012179957675900215031661985438254699211517300025198419629054682437195008486227376877708210378515738680586066647794675145533712475386258592970130972144638642311482095227978404976780992024040729963181263486678325945918856351065710368113168411747611179145984890775687015263377831132627246411609368185756944442480699826963740062493233073173332292449271156457194652917771853241872757403647869658833494452159745259760486297867222191546194044418603494079560225522986269636454632262700527554418708654740028146358660425669333643740200054096163233614671080641052192207050566844202145846778411053535749240277068902472972184346712015881042676594431298054790419414822133410555695095887591748161646911916993012684084705057311587351180327188242390147804211164524187796006492149230906804296241077201304461021367142743954997276303787419075215646604789602282065969510003263848505533082034646063142275669744718647823208093561837153221539697109000370067317068502337058780286572125387770180683421013154881991982267725549763519410149976907107898166684931149692003906177031521036883275819126864376206587481081355796567958119826788715055805057166102693326566716551463557006670822357162269323918328094863593722564483661156575839029586358204927357159052636452874157380788342715321770488166358055386357959114202955134734531153349886128439462187652084433705482071904658464220241436155346731739763490357201184049403464558771648093495344573067560450155098960331899721882149231376873071427143951340942991628337218903227217288531964657758810433626460616341355311730046813181271978553744355598430588835860185088820450362559142666384586483131973910691385068008353213501344522546618541045470858474331430900135872133292450605171296335329658252463211493869385492578176121109009871845635011241088364251389820848362302893428529219120860056448295277218183430922326507531986515511562795553481575474027550499519279046359756567740762699272111964257643090456925597223195019518274118664683074088137721113768436356594785593429482089987282989518571702440199046003190854180390272997265733927678069243783414705903942821019601966577565484196374092219963594458766922799734265544978238298545426171327164169325206357379356851121247298214202740304719413528976651820753344228996206341963731071083142259507710943758269075316180714330909407032575112232108359753087075634056594164279548184229444939461487711333210675698812638719505341662552770173763614180637090433592739646957112415287250069040194783123019984944574823917964163127038928023715301091510622759114213180467022144819657331474215806601007560346679091244463357599891372552217209411256219878428650887601735900364053433763783909284777882096392221467432049920356884843498729686577753531504460180433906637200267521708461083914606806617853282207206148912458744926968854472087406534741304553331410095218047895863171649099027048298681815306684458606231621338831709116071236157560019907206728065734923226864925180388363697035912125042474453835435047136492205776055825950139040918328899050184527910364502332492491866109095844369102891075968457766682059215759499548213316463067655157463265988956520584702235517054954122485851293076781711938758300563353451075756676585447446218280724310684991577699231437687041515376977184250530059175316543315693383168289179412017604912962790452535680213480105323233086116681913423955282909850561470981477508692727703004600156765240000569117790100983423561839911343144594589586680896990444416343232451699193153596624282602639963918590146516398016076715106613821186411788741836727251505473422495050242191703441421835743221742052417845204489492508940444199225587712977112863209969501559512796375217713562335780072906570228921925752868901854831554498987483155161867961694034098245293820715121575713206577099273262494901828155711003211958917881942023315457975778838489552212101082651764897241759852608179215138249145134687463429115379784838028867938505084411106452519522201092919928033560577386174697461335523438556440892334513088962817811574851997779397248250099525119618038942357746503930168077220250939282676038488941891325143931818979168517076823497905674454023186978319086855171364233180568233200152171815552836363870125199776363490793174074804251795979054151262582761291288653717087848603488692354742204561517762921800609495579122265989972391070998752721926976397268090976660893039699123132977713157373284478435335252620271684723848306687158099621016403947705128980220479525294386617424691920136350639461769454627374691938905372820643409097627486063208729393322469750145207745755273046528725203429406282332805466135254885561882252859634893286258728037433804232748541348459198712028497970067581701103282391009831210742731927058543707718641309300346673477963614587185942279359413074442683696601056038699893487278027690207290902863561437880167807845492168628290003225660625826022860328132438335588194651375886263778936565656728531447499193487885667373178028268144361779409014791059322809867903518473319194052127546623354615774561318294022887413164445154292801095325407904173711995853307097812085711924622103848728654257962411088941240785690745735092147930388862450863602318563041662056574442674164885222953845602550312495431840154849706595911717625990275678344101541357624359400013225235166367376380030230070645952331989287627872825429042372547251804100288213978227055347282783073503787312298193874761022952068227630406960405241537894519853736969154504039472147682723250474928009020158519224175371271567603163907094139864059091046354689101196991186766750308391283495213164682020487540552617054152368081700726206609467750117285313728895100035968650867039366723855098236838901494359698592114561987646042661164975133049245065980995048253427953672252031591475369437420812868069327758107008934721257250842684178677992479306209356125687711302707353139959291465295059264032835433375950234915453598433204015644119654064036268380092682901248746948054099308864654960916713561126067971845769639519415885458893968324666825920439654985250399088672445390710141114036530330403081578822470513205672309884441798971623513173989213431378785205057442851682152437811344985425692105448837429267326610378811589790991476781390370048711418595738149591783230052967307090440465988590286590916679051282044242456500016893964802046398297081069611187827315105292375850076764166589287535370584251316055998368862673209170117559277540466904522434280277484354215575436618563298925167599789358619784819922497219124699105889677360375550537676941069194093141320418805762268865778290451801773805143816224206949041076533777856684471100375078508206584287340577881385965074197807565152082884266136894687186704694853975670227664283348608913042000559397276318994539358601675701968364744397419149671314860215083814740645811080656244703810205472530272791180274873514837783175560945987113378804063831027358730901651830653631719481265895707146555093380203490438258748574278233534745018832718617800078370994522055989381819633200687622150318479801554414501817730149073223110719253748622341863034571164644752129924620623953145376192238651323884092712715976790343723954321525108268248297489007565696460828125979492513329795895384725671324845592368077211540327136155824227489057316897225791496031363125417994393152950997561690165597307654963391509292306224824392865772725943303555655736096442702492225648684264860690294042211935949423008255688158064548681059186410362335600267907066655959442359358026890653022193376462854907995391607145162785018129355836603818827669906433564758877484098059410007352573232315416261087510193689331345536076290702316636797414826708501463270248419087079865911348388574841726354925401345476253354524949109295316849602639589774032235459514403913801958188503066026210694023667446867080583321337884455056472552682309684382060674521524794135877491106441086855321849432694364527635116818066563455261718483588637761597880405801154336242925777738941437233954081479499429228271128168652308247669253218045593808698230890083904034169637278555911690598388397585932176663516848175830179510629434025209462571033223550748489947066070293307043076277309604790112383166605211006448454805048689957740742885444058954123072825192541247430234635342911787898422830701617857726392411356674620143414946541991715821610825871443264453439918469478790866631128985617674286395568078101850100520488483621173999957188517510419852463730799617778305431463745632076675333754677824922281129524182089982931433127709326992751429137646147586767557406644001509012792544359277138778620827742590103664820933554860457811335126398439940321227194627813882193987906769765081390579499650631806539256887369761536307902150979983768530128512687762140993511405881176161676359509765254242060813725139959447035995833852892442761129717036836316548136656749970798020983649536447993484512426624968027494926062961654177551693080496387094694629538127520242396309852445512607487618816509406773624105012580978924227615620953492786370702281362102790659056197031849437636643938728419712195831574720225536623274208869954880044734256686634846412779844228283207018984455652066867204464277310296592510963322823362374484571126098594009945040686854712368337051963230080978182967472223873735326688142581600826645092712374042935231777315188101914494201835176618332832908080362153932245420602886875293872064716521988121428880529697542758812404258274512706706974402524231011531056477603584849967087899767813144218741799920565044320628691409125256028182042871604793600263959963751583783342702047514267491381277007041593707056849946793200767624162239036373897403864665217147197914735411825737958508977266391894365287206318558282053959254244913123013905324479900787632070074201105995994249751774949046239447224859141466961032810805881578900244590248139705259863247552993791622827780304434265086913738967535483264823068656622540589336734274137112619599039814020762657205608092555579894575794225901831148799002153356305366271442025436945928253067603557206573931422875600333641268313101683516666772606898423616190530004340552723061608601521041280147333097201956375085078089162433074228931917508948166128896014555180844849637520817651436345198954330536427085627905211281063988436420662970682450114079062689338420721140693228324168945278644016898332303982010391820943286945684949611013950531104015692018401547869937570280739096012904243214294726068757296247280608989693479382373417062541569399880296258204176037790195800477547894306523832055576721824925534906773787227260228196771406628600016149414082313093350860579335618592576023269677419430646995170987844070660195374778522173760520894904170151293861619147012460543597950527010782587103194472443429356303883362859866021649751541930407767327162091840882573954574428696800606976922396363461828953765925621193143307717609175391999298408419790824086612328725081365358963934608679482482490176477457081379684366545542540298153521361268525362638017575178529407891775200613676982825213335682682070798265847181003085011368325316000101347283545670142195856486284755106921839733629674978788088148458711888084443947731954776759903652238158432172932827389497244784295215473668543535690396171957000342092196015137706224035225082496912947071713977525313367269716725486775221294308461372435231405540344228645584114223202438762599443772112729286986404064587161880028609635291580480716434314978165634981298553972804342999091585363797963999016842705589876219300240201963897736016401234721689994973555123227487345393154735350775805768803891015069123949768140020625215728215991827366811582909931564037707255139851575125844581971256975965899527373919662313944069051636087843458794815006618193769908929692777368823888175651209868482847188893253051662591126435193864691464060410092120544602297075979927893941280673863128556993642226175032167649777996256487152858239720596600438087532882655982164599697045481844276302437619209268135002563138228735839889156078837795128315717554653105650919085557068697171451207909213507695482777122115848613958632210347067383279561758251940370547441757482581615796038141795441298242999060174168982372289137887193596965181204277599847147699999322616326344588742369660736480390754477440865214056521042880369800208617035025375708730526017329199728094645052628982208176900535246765414463711960710113351962294558298764072773530846978031104581831490542537586517917329300351633518930304914969409417509820185423122043553864255618133123793960418418919789987350822229750648790838407190295932620804788598126155553676131410752917891167855089759057168640729320327762861783841204908373733515175191486741588944340173078958287824715577956665589753374669311136727901914494905275311612222079392530543840741415325475152013872609980613950765952793864725016363768717834854136971616788808181614120579634546834026375687418314122462816680923868363731462938574417861711747969182437174095366973959015871858487186951755326602090170874915947377565530858376933344189563775831691153869340063834776533291806009265865724574142716885836703051701184995460727001009717823123105351908722959175199164273179719900882664304067524290498390177429363601852224846984117862817937901755855525573251272025354562901533641412913042048182054026360460559306102838561934790249516919730415730357279891498960196680924174311473421727572857219954348209748716422839954754031478271668684956398813389506313215255639140775349290393303808589813541677226036769852821720930753018203041772432837737123686664762871234775094080998715008448241447687145288183593335480408396589820950589102924633603753420754003533749730931973056222231398925435224549252889606627814581184233328787288922724075564292232106251211344218807989493616818240828263420679712542557036415591062493418115949333563852616081828264388556521143455087327137881873988329161091371252184506783739559543373832777785339250865214725187545932379329010184821471601603014126738495975000752453022038256326805451681754040583433965639943017151622649065413086313952934646524167090073279802905315113654047956612613555836746830075611788516550678389647935341752460405391195306358612273422444322928817770926067151537505744560520887742819999095205794290715918599491375255002169210154209847796356093617880031670810323151300168673261513019986941897101311809196187520701912242437734467713760709172388342721031504571642074687984053868326078362531449440021800952191141724352822937760858222995430394911723118986490977327519821409896226937443605995263733938938149243710404669236042077512138032419992260386664774735405624779772195019954407517962570104019598364090057278147619924863070333181181167541520412576074280342975820812211431111217600452627280006648378499686098349129263368841902680581624888442292511940858378918750174714928848661672736370803841437985275968644279530937693518927812815357879985785135257643544262892936660950684781033512310778091029235849144345369602512987809098708079728833641117980315068717938602116480461743526845971607132392475254090930533270544222958005341174104131323487842108079640294237877002601505581497258746361981999354463903140047431208871030031469287310552463022762873011001348452492119335448603176322319421493690688962110632686937011263075000722527484669333812111834469947375626949783045365617776903604121988621276508638245898917915876758275840010975221108626093196645549321981998363362782430741843573319650541071323571515967675187724450501488244128706801505260974209633952538388337932524167679552868670253414124946290917943947635503323306603736991052595123473066517199783416924347583989796147193823257659129236680258793454353331119342673356195988658292394262966637253612440387631339375843720972715620328744697712717007500073166385608278768751868815356797139798671567945361399787014818173831351619188486788621475723854744078931489043673732665241295314092301667480094684623775373879244763248394383725050005035540219892134249101259959398003915270409671350354447502670337421394967303881764573143883419373895652187098926170673382542782389488458391256074414577511464818765681333824998613475308888293481456463371929004517894879962796386590142394386660024938563356552112987698725481421321400102353295014210067605847154923822261087399291527096522433280459597330980737584747598038171043043200069973660857106093911681053882274302486481407962832716411320605426094633392146264651848105443056223968232810994258491476348293789435842079405518814629030920287087991822835868611369368734597162610077122758628405656231289319148897838259059005044874021803994661369659592816494377260546479736533356428392141691473377060369915106426190161917886429210698215535977362135699686511939165999073265740959080952414577342635991922806630560994521702800804596049245504951909886063424276725741325818035460124681033417727973137059933189081910208731358074558579530941528247752463651651832963967450188547907609853232499906617087398119333202537836253081601476002258290121498948286566253583845284450729205783880807528105308560272258050470502397722043380669249756249940035465968548013785944708262782578346784790403410770917015742349151132567076825176334414269571018503415444128172517126366779913544131163206522532551179999411290917335763007992036485531935408190555404899730605164320966592872287856959512944330881300036153116030746228824514253681410174229309720626525837216099965444494697335563558977968924158169414376457808562042189004431303633916549430326707047245237729323717457248252057521651888549934633752829796172123212408793231778541053922207402904718399837160096948865201390697969276101374645898186345333359920235796652016461194675511239879810607739047255433451932985857798106573626224804101018710660840687507127097890334730292510593545140315383323685015422230882225938523636514939948343764227618440773381096201554619258918244674779294659455760829308947268406204012020816327160111452383982597698958660918554399706654535506786631976675608329580178233300457793636041850320422749600011514834212131422136565006478941056192023509660882730036959825764737775157008098271326394986607561912086975525149654386546527116414432348013879865507684517331628842248462903430507123197161483142499086868881266408600208327586911649090681731101863465424072946908982700001875868202721616077766121676023826024157149793917011389896486621108563761204215043489635888985894912468495016827394735139494588980225914769913844552897130230489896114258632828767806372802109354910719401716377792932892146217311021173853938887906845449738828292185022708596098867653823810790896363552048575058952583535289291746082327301738121018048139836142551010297039144704414647810284898324965239778899763690279834421966554721183334522779453649331437536386480625393357634064460960768955631935997119468846974245985559831757556501115937185855984891086272121352877414286082208518720613776587899599857122830306310714111284508767115252212225486606123050375139112660387112136755171642047846294289195280508409483935894068393637003950213224979611597140961274426556767289333045027046769265632461282812492121364544761457664668326649647843319957068113738768992391003432304911832341076265752931329068939477311333560907864265927162209017979186485725364887480016095449933681677792381413844343074549095877053995865559878819409560133335784710711370676181710462286492576618183722431142313401162348047675787296768514991293715776248264142527591684484425143270183996200257554167695606629416640403080596405282802981114971095053091875344383480427722009522865880974018429630540877000525312292656083120056626733760351158750543215996169577658532021099523160019849566055525748519104056063882013788134644039711545638417760214969420047692188502980238231428107578857940803776731417204979179710891361775562297960999492535156076018489962426705324392178341691972862497044178078768808958240971016205006755592347639046217806063269288930791744886369109573688676387871024447640688704711416490559630581313007691671735397495703389437820399755248754326424385857235453499069516028197408050032525685980060186140318258804520947153853154192003354301085052993933652142867192913632723871818180781775349583666656377027138347908584725155808896367833240544200799283258943474051044940273292834137199160188517804585408698893008947725982844958938316550407539368324649040016595636244902508283379544970452657352719147773528449855401810324049498639270827306327876329751052844281127408352091318666291102935628474798078852046611025980122308513671998581958090009338877002329438903574552856279973285234477702916714755978293423544850180404437508064983067181936162250070429915098529789494619956968403007397121748662224019618219171330786629043522890794462985922743288572111007052846664559024415724202291855719511350839216338850821092336837872710932799826652651796276171170272132947467625496679443426909987152550505587256916377208206185939168370588223572489943950921241545534693611233968810204956284838810145696719663547149757627663247109061993454848954825755977184491663833659153411591174670572348829937165175619056435597993356758617980509401472908571374926875325918181685939588954572730835594613922463957627289492243378798346011163493657544975950763708369813601244258273328856734330716488081140182523492963358672327400903354609927715349176669951242150240978975040740882140251397321750201980328144684849420010014099449601313248639106323070304589904065449096799759670906107045678528568876120667086648944179923720447662663099865793203341051250304703674504511151337877382753820932872452231101081477574274020622227762935232472610993355621313221768436001367751128589955909270342673146815412456741820771973857095745236183478203834071629500621373587955903061203778327594072055249974118325615117540923035109543776824231123324057295932553236532448216269364963479919620282363235967319846080862456501742527758136009798275622404491909198329312331450266652856334228951016466998543726504056265386609795751547162257244723753924922574035273285329331558929468816465536441990942658053662279163119634014785929313322546063505365196504430041043911253377478550362593741084582605778825256875364160523624541534063247546291744452009657504354811421184434343641582545541137149455764549554436615638173510738679677254705392715126113562670714188263399500770761647355355072155295287578801719126844539093925469364881951156274086468019098932026040284594162018568181352652522592793331457123661873616228361222547766103971062851974117168024254082009925603823481766204482954942257030252097845646956035924246352826270196288515364986085162418092558377019697176674668671390462754477053773551592312284451430323605040227632805096912261974837916442008512484770975090830658596484469361443764334572652170393107642319963698182541032447733924957013351152211758434019068343697350074078526298341997528155356635448830918560380972665498712557805076811732344351599242647575590044124495683545227005116464383116433690378793878133133607285911822343019511277559143313750972784876158727506173948713817680841820694605337364625331823569580806759438008440925551461940786886635954602564744172367980102937122720264074734595534210454953394583641805378355263611240050609743069783901126443553380597101779634470958989990464376349122408865466091381121817234840614018362704346550693755466801297326053843861702198168117269895801640602945606708087907164568116004186026053990866892978895532324551320925849059249455852163609709504025795334138950388728155516884184894279822408792069466829540471848213938830296642522034200344710424923632457118243759232783516704544806073019361208417392175279101098313261200902710314774241576148493839851756705310627979181711667589861278866721590384802595654516109127628621477086995993805716911837923635431221176761507203640960070112629947076234212129758566875090882619908153838524001632357438617837259310910921937605077794664646367377656040825993897162928841049898670852635763254088402529375985049337951903625400668236812765695747466057449772919078165698662942594864393234488801105049993983249109913506648732825197527818957334163071544767704616433866615148764268800285196553708133412489643234731542216002109613314234230931926748613337061428784152696639004488336573353067549587053198790862752894201931478432294687105147992479768368723343759090349459696629509064801186390698020025462758662543118007073038041439995182928469600085821577054905075427337224457929097378423023306684301250011070969388651937634676971411590465920368962297487895095129841863036809916377778173943724131981710097485708293026247008190270336175652060815893104255346383981636877434566986261151640922449076516843904122876142795141754378673927466753610228908742062040536140906907164585886355447218868599855371978132925073162669307162420821607455188146168750976769190467095011849828993757060409721192564405911761142995047840943902768719656133528406209767390653673928235208159487948699982884731526713930876336267063448293890161349430646120956536998448721040857079383760069527971368805802060412467140485883544511573685984828057717674138342481933282053037766424229324397166865044305612898676541162045608961713291207715582795481468930887697057812800898648735869218039247740540206613674090106815905272844161162481055405646193483971031648075666330587798405685714839273362040845672858495933945508042982985064350206943489988479133596681353130434164882108669617575380461195133529903219509543131241634601148696576564463166003498958763583202763752173331727302312432663997692593649366594528021738386024200766539494799853289316102132655237091943490161635677760132930800701017285760835593566338428356606689542757367098510245608562549999073037505485644323031962034329829607450577148315719550930433926154193974444535209361321340923908855276448871126830228726596990038328318227769493244916804196476842078830052967472138902393557563610815175381733328425620155081178751423144861563315872876015894426329685181758304519793257914670220784980934779291858610289876565694332922048344755769196891263162602989543996977056285966284832335382613238309791452410841851856265140184891966543234203446825536118172730466124759559242879138810925409343134650311840162941873183446886700573188685808086901784625432889258733555562352377423989875847783210275339424383165445714427844528057846615190197231786011922039905550479740110404782290790713335870795027500785498653755151163345295463796902462309786253567759665615100741473345050321750371988327666237139149449037767457204421932376080558954517339953777236579905753227124592973736108496756960424646087073058362070824284108960899297348745595552057930412429400660820508037443678970132221226840083609739314031924240939736587134786766339364255043003500633596798402915124215247434201987116267933746343161722392035151713567665667050912706011937408325806109471336290934715377506120429180801276361405622471027122384829593376728306866321550081936516635978757224872287536924282814768182403259313666009239124419233280277994525629432562313261503607078166634743035872104706779331416667760873672871815920725237902814160136846404815003270721275765446771368495117590497329415563610331096006623943973261101942416615081984007330805502548599109079489267135102651412885899169911621873457846995554570111513078595133376972337597044936801960381138043774487466468873699322478792098471097356414896403588750564434406234650785970238097394315379602232018824059595967274859649027423674038371332652092984541950262097409897104749982735855407360387197895096694601966330630120556331953385171225015213821162208425097886053586630748085773417634296624463029134050229038286383282455899823204953490507012383826429753541084814044406181035810084596972202854590062676084335477710014459663045536104097090201996709770714202987246824387832317414947631792071175993260530540690027581825826648522008959834977149657587584191829759726218997932666039195036088429089752403375255983464198069428916362575258897173438529495424257170725546472772769319155856845895545710269424214623589924972628572531566163262716075346320874764438114118714118661679378840508443952737096822407599333573332346504226586718995931904865528084526278476033901406454649048751163002300399641000328917602978878667537400231761713867491615802265272733443732929137210640904278576667969961549661446567109633516419352038768058911725131244307679785851390115674612213321139507833353371254722522464686495403536980558921631090123127460090510715024577829041399913939588139187970977142738483340232595605226057118649762513752030537419551571001609860083092602547454894645483239963479081000249808279185097351909487567500518159318815655400641878132556661450749077881947069175811222326628282959448953460878679189542199025508061626528509284164018323909068887534703562553286466783943793300684020640489483534241491608107325381065936212672245979564733485067732281996263756092909511648558067162411042554648813656195710013798875209316977426888032895158980766018453286590444039093380779314534356069987145171235526603981752083824937922136325154549488536718260176088877049655691222830688532548735548511323026640736271906137972299267104022611599312497561670539625577042204202321511691791974677187641739881182934668912346548098693504624027080486539138837093926661602421790323853364164264807461856623409189351454471111144821117211357846041205201991753121494039341527513035021646047101358516749027077170286689572456774679371143167359688693454863335621333464428301011345242863627388807358620388183369151931386491029840421936294555887831755265801121496020925952134648667679841945627539141571712644801901181340882016850163565542594411731220417812657115718390777915937124786970300231778251382532477117964513618973609306775070326289888108238998887148631862490447814328614618062855000137520403644246697307516698791084324641650670710092903235166184487298952762829789606565806865412474184505796959601290055747861252661516932657388262342174819396778444211250427451351910108662639402612297698416542504399314893300297766920186690002779219625335200521848390810508657855684943706208369597340395957408858287591495476756039263905727863636329466850614271905057016801450958820449112359068650062617971326855585182354649015892024347418243969259064838307590694423323879517869898088777909397069783708175379174040726501227349828897156277479067105514311212581356229602650699600454205164755941837069106374018897039904963406296507610430465885059545084187368852282519201496550500608250549354873558766834996724864151091189770305575859893464845566791984888969528752268883817289469348070972476753209360912988928823513424099313241237677027202475982742752995996792883071508845555988802788862402912620570851308247080064971524025872462707729358648843755903671468297090264050395585235544552960947597439726539916577360241265073941331896729582948697069151020580331912498855424500487145629392652916904573683707438034291544188059344924760123824820192828637516304245870007790143223199634357965339282783277494544561801522039204140954876101308912607622232754362152871102171182800163350915714737206808014662110100623175348416129709409560181492388574292166164119669251249573076455385640109882314202408126991682427399562184121688025792017217775976705660660052302959936263048943553285328011439797059618000732215872099018497665247402195750790545376210831328941449686431482531153947836336913732629801611113226063423835161554722468245736349628055545295380859871939253702013108179892744669623754216844616567117157227807731856725634355655310579885162912554926029206055048591933199281069005177105588670987658416282419420568205584661289850916367038185351225910878209726783104503528666973735215207889590563396112694130274400764336997693210663580950291851708755034220488054567192081271220598153365120135912135609258825460972417577537514297623396852371109993848790327208191340954644095151334293360677505032764903637884563044327344175281705653415599794191184230699745105099866010174097858675546629554929412210606793918596508399773479183737346357429231761314589325832618251745843757794887473600243913752667504877895548992448506017864854266567422678872249930039083396613288201342302401437624087263472898452969525346011280076789185078170372863326090531180537643158377153838110405263837062341974723111259599522284134234201666572804846820804905114817046225490537766234641401814391466589426689627803827740924855789984474095166340731731285285275083744354735338935154292608492656660448275385784540118238884840615540284889034140786362805004363385036590782713378838203749331034519458480374810801416219665161707486473432884361284493024090973682654149356302282771400865540001975294147993416726244437351981071827060878767775212005511707101204364259855740316826176392108348621737073641783506919085007967300605150625971826363982893185040873202777346167934109299152198838063065782245523076376460036371200821716378828411395757289393799263179620961669695431597257024047211555269711757799847226120866835677190428740503620785914554092016886384829147488199647781261808221545392007389205471989027217117164530393383201397288627040246675179427531172362587944340724391140219333230797812187523462443313908557777930804719546464368176084369530143520620416350038945721038511931205214578430462990588651719007862524446328524994548362263127278518204026037760517074957985870461974902842625709028287220585015682888092371430655552469689667879914689598189411265973934070427217710187496506969927029714538548962828047236187849451152178485832812867251716423282538025317241927534712524354906006646469389697796769831943358458029302871115268052297516254929925964636158993938009294434988833411317713957609514052644390234698200445542631168800317927241772812541878059697546477866860083059435902856548777727526777573183311976082155734818025155620668340353129517139763607301518796932187205861502924050257783389133520514932533564188729153823068197272587249256651528256469388781319888046659088601272042117012607217232292332306884996813281595087720361002773528261625129824039074606850016272794537219878423982890195996250402146801985891854295050111410021622940329073554616834167158498692520869889151498469693548843738076137109993912363932047738447010377898264907761708367416510983885357882839167802514450241549433756164142168141572430442315859031448280377777844362253679006979100074136994562008478960623982864910215727741873954792432673223068403041566552780995807164489769323063149864974241775242386401280067719254382212754802218820825409068191849357728857355865195861728909917598259142611519487894640747228291277444677193458108813759849763242590566670392845185642424736068436600567439371634741685727205957506258105342599961553976359060151993964309094456706379609267478228039606443507113359008978597468220859843152568027980551784268981929333116625901702900404119651626620518748603204855531078665744020004905253887370646672323367728656248755039600242727876312302005306111162925620146154209463126690408161877343563450081170935051086858467351009014280933780988510110517457228339581536626623762839984063217737715012031720956891414920014366639853686685349523308846168757676773094507477737991468122557242751645240471391677008904260680091788389107653446383669701533260008743536252088462745481001181448598535823658692869802524908499926071886634147992241001486007962561250663908059832358726367811125027144163526361773268953465644570413372865320413349377054149176648621318494740387740523423842814482221125866490371287603360586022796365018382905631553540516203110634397210740247557426907391884956067153326064188508756346968716292208588748583080094965632489819895415838296083604216631035217415127845955919907666855442328431507983387793776108677239928708617012417109933387537317750184867397863190401878338763668769704347259414563974827982399100642995332201410508512200934465898206809655842808196150458684597679585352760863226971295492493941594916315489708095350640622292270161874397794026105556671925506352217274442758385461234383630961883959660966942373617800839244528210003546862802842333400198892129935570569229821347667551546627639967835708045398689402364438570704628792300841160632499899429432922553601629906960307734937193216525441655830048939039887653987777508089362747588366160492669379034749621763758960535735405074836975046077405542548712686379732696797319406778581614888039928092600163721951603080109896081449334390910562391425308290186804044763941346026305162734619895612365233107940942490033616239264022954013377350845002997106714324481741863345524746273494474648638549104470585213174168898201629741571091842659398822391359424704004602863514357656864007822632590512452945962767473220705028155897477103545792192139907678704783269860334904223906906288628784299623392372918703777295821290161944944401844674010353614770882191941101950966656771433506018196384563641968625457421681309981566035755635707568624959381655895105883539291242809576185779700950387982958773091734280788870589569210697521061699314088899692514845539220194151988597385178727714902657813330501456131561013584357613975008832825780176408074413797530751151460963889467510747217735260173234323812553276497537556394747391273797490100894479283099350049981410569965592153412932167469620072836606632364198185348886996321477896403953443646354533521174586979678790686104523243129704631898353177055691040197646319663246048528839729058086660481091242987027311707669355444036323011859423537703408226865894585909415330994068689009491258637821375985984375642328726100983140429940249070648643978938190928842185709861858822923504327500791140058152796761080201960978059405344360251545461739991953432150977099615425113462846211343446926979195456228275271333312780694148835474988976543159892858394063738639201172658544496111718467120659460903660771090796986964089825316158155959643249016093301942738493387956219948644602426226876732562504305719691352589279499294610697167327828690654136657033343465420038437720322328807997464366553191644509984310411976759037187096587939362462213214342687878573737596051088023310330172831710386024394617535457240826824485838563522641268196320310711508309641558110346597465257650011159415706281979732146038194295763008312046833827984643887352021705292145799158219403815262064864536908270232890458983656089768086233542113957323540506055734176065799708881056239372395365494451814478686554515518725934107925052153607134846673393623226504049878512509321765677237382959349365354082292481277941252873453728547893375203867254937432987781587323864911486686698667202450914014371932057195131185324021477946613078726302727713905607403227856574500966915695669160624487084208835829204762039065982032383777074263904757525975906358892343565883738069460183660707510309965145554168489611062722172122767834479139882725761943601105070160220020272699527497916963233342383153779937038587153103241818470934690346783928252603895348829996980919508525437553830086263216390205080536149175598995079198962461291155018061308415994760250354497434585851205862457834684523241319243284422131550235248647762444439491656662969658269712301300367176185688442552516041322065974131700027346474501680009154197424193314987614538484469621586370148655688252507831264039851956205820616952569496593789033343020925762056939768065286443301683564386761802251795645066414958043964144970803915110105178536238643755471864984729889438246571323934660733062114689550951351528591026641792408410785228981214969764125487589395741052183378809236346625002018433915594148399367110696893945001588665319258511524080227105935394904012166190270756955593435700259843038787240799433592556424528529797380529043784069378393239052961859684451470672880387984616874183113456563151823052957284691599382972778527447585910032140942169781403719259474892555549305056457523234687739802136032620638135685463643276850866410849155030638230674473096241635484388953770437998494917913444234128230025235734302835061460678175276159141523062734700092725477502751543582907866055049766131908037812567951875913399707316018449570051062188941679428466981135996044053161670355153385496488258261560946285570063561589969331451534865688412042464098779744973009450946351556690449049263978967431680836148533102556057788775289741772904983020507588222480222993092229697108940549260052017036258318051226273650728664965795057053190583058992219452106347737254231001057620736933216438111969057460348222442419924516052666796362091745847806541271444183641189364731731917026018425598619120135394779633195813525489188540836679445858875442186205341906598531275089863818101961440530721346602418718341536954333019504045505472292897670734752329758123728223270422616602126863910318798672716378529772643202236238375002198390987111946654951635478882998361130793305174578606883286680835075506820771455861000726775042077044313262113241296112066891249979270188202670688563305975128788431824809792114131222073988484437103471355934920420833366204088472482347475415619504330026709163210538745295817794927292941275108202053654713997827891545221948615467584049344027411544679671168409120860566224379634982120633065295111804359353698245090442394354594253093653848549186106084966527542429083211523046637584956687063076229085519470426958353873828389305415488150731578539133051720947498401664716762886311283320830819348052080875768128654312492367467120096820015759789454899994695232534008594397602703318924731025387382081019076119001756074717468093033462191589122811845578406832514856662585702536670671841336493688284382388865603774819613951290178867707932369199555130424781960024429066178565398908732332227004227313710386639942632088776827306960374588011737053633514353555917528139073055058132426276584172514041062050315756364154955619446415411698032606184683218617042542833135072487380150186831801386718164130287897071770415039202736426839929452545573654994657743984847375577474496432053437526216474476972801451864297059819479506567377487098253552110310942648000023982484801900889605985014131754278022387099234273504597710351832520417988651109787249761237682188257207203803155361696781283688004211481855190147639861778247992920312301876120219086223207820672004072213660409158204984050403070581391894638190841344587432067150827955366981572769422245214501742691544949501661700111751690480073060860749757528395995896871340295394613003805590249597234988869915667391078470928051421382158272657117636547412654218718272074504653332848378883522145938283826773317962222112472731526688484493482375209593240726591912611806522976232243070092361542122977777548364178099965034072992031113290869159688350465490175437166650062565358412774713906740479636175533151872478850695811723725223429236831901121788617934729735400570721947945789251191528121841272549561032439499242964211640025989165388074936604421521722339670105935300648574008968787262541731398567179184245452679234995299456654708448057660384867860699328521777390836327760338116949163203511722213606955536556342270614672971688657683896869401311985125376749330676946099939156537222128610571485975051062233730152885015116744720851998498016583829907652107195549806069957467240379552976423478577042393686612103537201686764612201872102457571473329035554180419568498733535070950854109646430872727043471249030403789319909635564860678033455690671067056838588270422658592618996094031549786042082385599359094298851625639404731084411471211104171989778072518720703422304760575173349183943051050907869075772739444795793420360019374898346265120788788620382199926006643817411100109592277253349157977663198565740822384556220307141144924758460681201275853151064438044358022142813969964193073891156708329438034130876615408088464091878556843006261748239209939999347788942192375160010770369018517530026823074989538019290156623055222573120940230447397047249315253490732672319688324383725716832730987383652062793889485682038464675264107090238195041202840296046292438317454597606488517877252772592927638276665584451205138575191319427708470238614651261346134407337433143288056054158814450965769698853957345064170646236591710855883817153187498726941299091394247485484748445729810661362453783983070998905304786959989661370276242070117204755460863964570641553161189262645979300361896056710634980930604097274400076429342140159797285334846481637891617788173806011998405101529821626984691721658317288952017637605283427114670609175391016313863900721610123702504271161092320977891845855791000401675463153976733263923102840969183847609144601057050776542065961645292842457805175925446526681232969258376828587519724414225999643524699478578875481688865274325858993563982197470280683633063475155487002312711228228826928394143029816910735438607724643900608814441397508225708903066187887011023619078555218710476011038729533271845823399109281597280016390008423948116994480990811558605925853590328002279799065054350922091677659473243589903783447217920185240615052499883774666228524844464487386824983584788510036823116404405629134145656339711812006225355549135410484908382244872005002175980749256980851571947555802968219094195303594360754864039316190847726248753613055104600507901080431109968916035178089353521688686259965233449663011912114930073390486516024226412451249094385906918142775287378903780066812115157406107389580830357256410409037183013188979087997232369141816045628448263938358883584079456063094050638011746511023023197521875041776444400591467932006156551146447195197764176649280171371379168334168557263459331042882920439909670179435770535463008119106470149915444742953828925718544290703209093371709392827835809207386631977500307347885317160669129235474001892926098197647147345227773248243285195018223946053316961656066383109071784519538870941871556884806535150584045678883133985538886679574585325840573885140846836950468011972503313577448025373734003785595072303009152700650671965761280374511305278555494400139011967826128905398564529652198524388963800258084603460291009695545360672627759314958420630711240953256454909669249030164621532221351828515330446665370895036306578597904963135485064425190137120678364493614825492611329204793374024534755427288509924436935813889121095173351881164920672428439299385943061130803956172217490964018211001468123165229821563393290077137165076058011132779166225397661473958046617806244571031634178798317871197979127969716782119901451222866296739607438307470661834208877258717429766669429623044041270086866428253270244626917649629725207227680835106732761763725199154884014205571055698488551197568039803687464454088532434821865687910310400093764175846037342374316762867707112888622894243858758303111471566318855697512862533312827938305758486817145652654726926146571886715185618449833062613707318280536858150164931359405514159957334844180679791626255427026647470577209717174114855135173552942589213189263238437166631163898913796852609489424723770775206614899607739325859687710128087630541117192547754658820598011281241052136226427281654496215693725558706115547868781111940163042322655104529329238779857891683744204815715898233354804536525954950955301782910470961283111875817046399533159295739856468816687075094887869357021518980931668821885125597479220269753615272341802348347949393391730837033930705888824902920249185161450453504707795463536657004758312149598736116884335781336473503888000705817585721196593442357699186086845283063298560720171878482680508474587656138984243577924579347300285854407476146120012600636588059764775179696547733319466917581198428862189778187412752354059264355585036670020075473834308696899127934812555003810905387278091377357227901902000164158331689571585468875826733444394062319205566025075535013948036505947596723333093048788652109216852882595386033405693615012601209533188894178410815365856894812419682437011705424202513118667312045839302776609549261955642450453411833389633511990187398582104909770931743770053927201131443025741735637083751018273674888990299600580979765628839837181395894390465125424253183801827394950721357119509085359037848664335466339166438579653018508912197869596384927274790437435758695053931674174667508949203881316580209786512481356552684331851684306153019654019196695773931848314021939522670399601140219212080112523251629344604756377700060828089414441438960143719312698583096627870360669942982005415033677963967862186402288661965604009746826725484360597934432118952782577697629503872742739181292645669672991296399055206263725851493253581013685552102942209110623936331097151114534328108278313731459542293495438253968498643026045639228525944234868847534126690380369355504890839875973831563855940320995320824322156394628469454907622306613810167108439000317362062959359753223826297041577428667270063658967928000025871798983414553019824837748685055745041512786810149133182116091349092309727460015195310637661398909059796776517695899586422512192105935440847011530777353104343071259582899425407339889212654116139746859803789418574633600754294420575688057938312587296350697878871585814926643723034989937042161459443786289478524142640071997850402300372833135457708426863135699648814276000920784187021185242815753248571130860066928536645523910587330397901367030683235544968895592120396567383475090609678224223946845114838664481347897686603419052732802421984585356735398537532474703275205100305485712282679596802734921840014636926440688420352502823098790135929825959346785611715213177110529520762509436701606248880760981480693167256849217026104615176755176180399291240889524220769721722024398997276135345569689732566832016526860819699893022944890156181225792899464401974794741535212286152567355001696907498947581241684678243523092206414175556101460454685655207336589061798586115693263205634686422038652799341118724876837410393905215593831664222539589862717292019065453881417326468366553295152077418422754873589468447725700016960225685831285685708203397634733545264002310857284703369186883744200013403551495895652158829505298815968411051536985332890911544635986361041247007440734527085892565591160886678228074929314051764229120244091085337241254835736846600463615566757677515932856246115607159229002804279860177212577686917451224433122625016211670710345332406520943443277402700825345653296102310200889644165092269911823378692716148245140003449397536832158949704540243029133844434410144896715200925191626483579251160618849665186010428178320725227742640833878337983954750897127529929888210965514957354447146607908206604491578686165762473660659437524891066488532235846904342087080720650126150206417321244041121955866470040415074434635294316651485918115708324271375438558603192000028989243599668847679600160345374584701014050147518406906424071308139307518128004288699740880126564768214458790000471680334695971189748385857284688205285696793010136283079150774103654418807134756923993851001974115031944949538273886112160983088516126599658538573474219568871092604392166312865966756386391833580256145869634784506655322143460497908477076404185679037229708602722065985884816903668497157208788242044032873390357599643072534984133060063650998166453984379369957175431593743093489745498635216149473461614563887965183131912161390303848006329038206352789348382983800457584434593740488096672735106710121269039920538124517243153915727728210498088018795065018907130235680989906077042934825793425205735258320447410936267332481448552479475337690835423331168905594901040483210779476282702792535677513416583447018574832684560593068055446701111993319954013585168795458049152526160443437388602960708620367825220897698555808227829458486509335300203935541065336490543510029216208352827544393547821863571225328866240310549931931388742641691494156656740471558919383749466756774782991874213087778434351522930908404036854255409579263465255347513050540864275976226654440091163162632427843635570484930861057523506089722935773393495133597057283459562913102482719401694948240484437068687110442105011907591732940695770000605159839910614013659562583031287919102398387980494005215112217313924721569900172722262405563051880230539623073960055613750955645951860547956666240606172653654984630878096163540250211803177636677859016399733383392517751530040389261372125517155983522090240615410796537439367615321279733813102357017536144650252686503940654835565704440867405696906199699998531321836887482402818435172625896847581823710377850621116867815080619013694252573921661386478787007093554852452293007202373247242375773880591842185154271402330422766194419973804604387299099476036746426487564053095483579275660983035119549675249023397147590886740087942043536757931770103541919978929594014935317655416455194822849438192978683266702417336411076161453736433124005886597427681567381244919683126835856196863811567787261340427261179204218873004308689478390518291903126156986435977227757486339820988858891789113223469327296299511193433789077410533572285996341979415200070939352574345283336470143726262464208533397769502202006241647866913320098090933878635126613517694486638101614898373999874442196302765518170052396885000617309649330949487723596403217549949855423679582497843852754277798258043298398160566507086899487831432848729929864613800420126730693341922614692375238430416147479570722636392311056906003411854050925935056991092923925160247957523224420257538940556098120002504812034216914901048306229353823190818970127694551047156597850219679222187258666476145726154699726921331377584144984723375385783465768788688477346547006213638283582975923066918907231716907278008188324125340680727605099050339923255457227310950338178006982898050081787209199841762717837138819615870058795793651144268155566408745867593034462027218836474381601849035378281186945402281208778432706341435631443705187729393893835596347153776777887943613191433349793240352698989442799606614537821955947837639041477049974669461669412864986130450562633523073317802588274546900492682076901870398276070217954522847384629986293019097296763862186821392737463611229092336861111282418077025029847627017865655894636648157754070698698468535900249502489835913117858773226305394990402760276136727253071577610514428532412280557716161237536716370531692856177171793405086565187986113770989692515547462994976075263076914812433976167144301028581713167284880879879349889982745518709415384497780929932133616552789154296030953688100233646661918528244620950046386991112831208077243621612854905765638459830288104736771740203004478833078612472848476793949143505388686167484668329564453184378376596399471379327097361574468687347967561425906727211561735420686109697321742733678167894918987929420375955288474299109074419403659949427144790847343339232924590397227039172931125567552001147777505154697026526375155115134557962882294603649603623670528838756818498776750489316944773936179493088500584205829979851977677724064211864680740961940766652130323395833044923888202247900025792406979730483673698205554515204976113682755138469030989700290275531467637662945891604304600385362900450493598484286267407505874022233872303072587156953953989955891047578058853220636445129292696459085850287402842229163489761654163241220177303981194374987174694031918276263665591244203517503145077298756567608281497670444067143083751126861134192478442272079059278363638848051557870197409862821485368235197505413478931405162202790812596519780856848546323986536930458608447868981821757557511496625936414894077272632979312752487134836521501011141267141564226331280850268243399059857429470409391250937757708114619816003930502437147566031976721385908702295967001687053436148081741333680562126571846847400327498446070699535742661891290249056283993267123315866013578952304373921330680196568957373340361125927879063452662903865573007073521087096714230387552468196430325772794373167861514060724780831341188289525490529086798125195232527675837079370175261023265437341949549136673923422052867174786733526276478964494665567896971209532896600087917244703659212132088572862831256016164374504793749412034652205845445561547063715337241146583825622359755206968256825356513008053783958648843103384075114027930576622919777060118449452145238924633712157400881027504375738383760851430882042022051507987502800415212043500839842092555004734239104062279668213789888388369328773436968205219573998184008446417832489671979049280176756883224858864991260459271279288170575053498328326414792622798719533332067973447300646075713634379444073102191058625878280882059295971154399293408897335272513590482564751751513236211190085033624295769763379972156134530732211336150751195787915251847286932611585598141394493358929360445406231229548810360300896378034865251964632635291382381022548555840076584639198743403123994055047130771470947995879021890557452611415255441778741142800605603000514107523499992496274173476315465515534615446726748400897254622832122232249190638392170045126967055682506922117049677427182680851313140704842696020053449815856049523043453027250068665794684742550804182565562940860350552504668315186347952088858433955924067024611380959767227715773627126785271651713187710060823865921991882376955607850893050897518980148341538707811000101460492720400275234494180053469184272039569693918092048382787888552182851136252890829860915363557346634590724060881569784160547322003540180738392599868392735383742360091952789843795615766821244613934654516896315389896340568203610369656560318505758594839983408590830612187461011965290409602647616394975109889673416834092366254345540016568031769629698958080717892976373638913165274627776336421830499788184536259490157139446884965452549721101193242792263478319440470489000211344700615956499311625964477583899134023759094786489697302435022634064836156604175405649822500375247707316265883966185710407844120849130904715385292768427798106302699112365961111853441443874273115296985931618486759999316805543304402694136645381513050972738662853000638107798281005803896074474499185048567724977364310628562701520874646129053217855272323541882207621273860962981383138542493969251108922514810227192358461695148489320043024932077020820936684037538822062186890450911922951208704584572862043453264257243007806947333347233634076825122550008741081716603971927093386100667599716794847798145976262165265092530465765455263050270332310025302848846207953221865353130838507626056668583193568070531507907146427659281146666364635115929907174107531699168228738727770147793784412294335190200739043429261824127827201683560541278809405189155262502262463819820662599266862650415920054140383284779704227551928399833234998088160223791274237366300925193519893436547644628780347421004710678707687907991120163813449783275155695328605610989685845236779461175359933812323764677172338520288104547965294424810140666831955303759732965580590798477161591097007888921502532959535121254736494535913147093188676813710586640669247239040881974144119364924187003220248202387683257694246105592739681340278845526674947832545364137083890793643510254765964489135952173264488461703841486212267465314909341782770238309528127460293316497705692645200904869451255674055350439249661019796538114364085544784971505510595042916799530868079766939436296601900738150245968853034695355494220603985874412942891625962126459711507257614768828400783277112163126680949656180063095411817836101709160101881391557501011193315905050355940435471103732216389400044132805946642399481276868085557809243965365190666903170965564438043009941097867716086991507610329575745640491964872133208189001025805301641657011627052844413945941232164558194604096648508637346375390108686386454836929902380095759894401931315698893758403810709948611080365605730509119181122420445696997793013828935337245372882151477869843294431095737952721023844367874836070559179837801880115242226894467376151663443474179902993807654932424855639437231285810254516574209130198052837311639471118233741738124631809856787903759698127184273109274319697083630587280624482017991070825230454746063309346525984469549034973465219605003782458539724276264230970152550717299474941068359416589989392465599468740214812403138334407138881359677806793939928129519931172498377932626874287301464219272667041738982071947520948699044816304107735772236814134439835887408769932404609579031472164581499514738890838644023562108584429329642420820066211503774620863711646941685975829494877494908270857164090777188534849544778739553348469143846799852817217271045885371634317110021151280113103992518587578197301001737469699947024711101249869080115123741160001265207896756580751027019801733085818060780506141812850589179897424350032012057059320325041771381500924221220293167056999474853081017258825104121801958503877973216017463945441613828999479360143007041157723182720751989450738777099984256013521222779921475030316456610887486795033576158808750816163311221495435902313484690011432397834159819859023438721368424551392062818751717344000207047611865140993044305253182960888929569686128811172442376448904697328518653152113691093570832157519650387788825250357004441469965249767626751138849071313952791000468095652926522826754979328809843436952874976400307789621601022091048973422137384216949196763274369404939011767869969069442282826925763088068991335133941284426081872481326611290572833246351871437308362865691283152092420056993703980802063355370117802011696571999993230839930399627570196780497431766791158550971822096118580685676696961354809438757385971764235465951635784505864331758347916931892399131996716130627392667855064511857793293058764370359948137806118047047498026708904020314704550687407470109391512013484244730396671129060751910473537358046409023352609604518677639823644215895059012844573667190879482554473409863575159047067390764721662645171718540179827981989872792803229997592369251551495002876087579853351418685835525416927020831637454135514854611740339224344551863637116485571563185606276298187438151030857133452711754518760298858191044621846959535769806880562594305954301628292236220311027637102964449764695773008611721197379912281045351714772716647864142320410506875712484635532945603778545349278857002898530400655026194923079081099021837571255969076801794704014689636214153876763094132250209687712111785610054222519270153679402742940998786155733983245093001903789970832737567134666143993718074678646754294408474303749946456321288542049004851191450282745113737262592191584346252634265762496087006216076845507059069796443158084411399137975878645636334632122447610378606099767943974845587160026006033236922090685605746729621160864144349734697784282795631579167819480768310457239824605675658742022905690529795158848694531938965840375182320163879380432783586465367683719431323084838079841553843752120876730360905762492048025376613559317340256894357032571388838594340425979591667148647379287712594407992688002678010503719519371842682935389726649289915280467119615955068703557044526136108682361940890621913722915573211381733873946213328990170995158943942032877589436677559575273686748420687307270223558742291507885193487576762655864837169729516594006920678906007827144080264595453692737057300870962058381076338092712422412935902058438918747856567729327246657252472727246096305219510334405995901729087516215626621136568707591965150936140955634759442545714015976202105826914502490369205933147416668453682184477149545053614174985864784833037640100199149591295928023698875871691783804760615856889219269913777866730050686397469097640060263744028934009051949246062794463226616055108659616874777498856704992018201548811816953601784250253096035851949068815211392265537973091294833508238996208752232442385167379738352457259315714310576568820427524281338083240619158097612422259904488592061991480129395649855625812658801736636480898268731852730483605928423252520224627450390704881301818678141364348476261546806323587241884924072067146687036962413291123045789749482302958103510903260884637345575553631199897055918603649294241097635117403310199087133349088081877188804163402169743875921789626669332548770395561314030121735036218657246120849348751799697093836112240309756289072885335486965974114061684717797043777794203478143968941554331537456174897224807795316936928298461064325066459770535656443480632879232488215745112501037156010802423029298105999088302317609350940547830781273054734210998595662384934552783886539103613819257549708129063602700702278564583855826336698599576904926605423218923572700763886210294730346920514629468211303896127906138917023963591510589685072458470750642768251284283994157940189683207859376409356266858967110753703071841502091420870802927404375754196393240424726515315838383017599195451583089114100599517089071590509392305306245943499865862455143821576270797301053291923104258677660852146600414083780104356592981056305642957412854955351165541868409165593509946552036850441029410030634155206821979477632035921671828705473012590330972735950581088974806751368459248330007843747573371885275795803054461004696425393181400277133232800904214417117205732959141918541831762161628815363832328838376745332109917819586976466095430251392989929436802168360455140290903269312923353885327063974742919083367603726572332373271302854761517957859749190500721889589866806931431230826332326407720371365751427405046802407903073279833555609689830904439477323645615758781850771940592619401787572496822542682393904645132800668166912563773302911513475688385096327830436559716634058707852231570561533455071599752986541658427353038313723279571592334012320188524328197599997466596699624492116005819347803974964102148112227819123350215674590950835163973206547034273998622604723103927172834458852440147388683060043724423978458197268749457884843230089933358843500992291928485384319800340145647245276396496774050666812618921121965796883778267019671778899084151829074360388393199695729408555049582343651269449853016598586800074928852139874027505093289954647862825628166273203807122991870702210690927156988542225646358788037668632220128615151285709455933434797243061149898004758730460830333651294300661974331613817027692834244505342137335914214809114861764768365545921762145470694116401516483026706355253794991719255992245056171398443210381163242119969298887272850905400667392552534899986421720837702162572502408125042233069886408587553907273640465198178213389807566771809755031978203337377286358606148079056935543396483892974136585494630100566862411816292012467047857421446135190585873655533653593059175527390630855735797594195271619556743250263912723373258137619011622492105779020608529007925141589001052392432219624612825329508711967768099786522181520040074470939638653822553219079700891779704523573071709077618658686635258089693581495273180305586675876965369914889366530084366219191191960887493262531267325723554000142296813332975898373526063257733655642523594358480679590769768480783563205876474356069954380072720118458689188100060748339964565219415774070719534928743150674751231895677242402040643833310173122240021232383860792210392488856972960958357809756217464162285609568791856360876755730829105131474478950764585438426023698765524699057996027051545973851045579053842628450629621152054011138991468810666378621747921262639610128451031113783198650386944216789490114349743006058660502457953486483048041972868076741970381416737570971762960182447202828278427056404859896989479354808382071085232218629024781598875867211464793667761276714578007494459442242756551355085098949125125021127049645414000411280525242276197734380090764213664538750975784396376333196728112854076609011914729419908908342477441145005515988435568463703672949953201943785650063694111996453549039282612437555263372041061483553315296797283765074316490899350013360763475715632477564140707676978467279021128916601000723380090277636671956692258644733911937932848473062811343517662223263355575949257955009262615716116133696542215647359550232341835817299164331381784887461221665485654742561014908522942503507287179922479042318013467198599932174905429309289726721826980074256366931111474394987027547216513207173100772511150199996168678970528729987592257712503045932841829754290813712991156876378504716297008456979087563188102573922304478665069191314656736409475425241543084772912378152792159539103379501509982146206267050018993907323602347763546998869153904296969760420067781211825537150577530865206352564534324772574335206823753101819755541910581996683992280123426408385777838314268250001283504485239886528207600397322597977196611331193288554808431232881766439742057456612979985348370350497040427614664129070028258112138718951851964598143383495211609018988711818473157820215533830982513555624853587488128143412222974858628110011328938239362473175937928284139313038071017787171536716775776690291305403896379008416913269404099894987587235436221072313401662578118259694081934752948123593092043072589681809704823675209205514039657346565075570523906318080854134276722475963312631023039673227504068276689025979909834312906646264834225789595187633165993043008844271235432273574812531884547974445209689332498836585594011643133121051186281722430575085079578614902786584856088839911526899329886511548983616971498790361084857427023583351342881991352421724214273256196594744906932851272231375593113662169702552539607520761821148325003331394454686746651019154564391688797741885894415277798537966361455066159796119788826744755552097026679442131733438130613558783264554006466460711517999831840891824797525716442453679520414180528643616874231392727281597616128715299761688096257161419037700035617383613774399046643176520570993036779089905872368010964848913558869550955075283551615207660875742186241109245891613083791642616003334318448138035974814319414146694520165013457634094757018943354974364434625401130678896976098200521856664445952231036412294612424007126851280850317434728112160451355272928476881930041120557558294875130435540439366958686618988939210153572615269391466018823983580032524712103427391318969097869330047966641994242531150541637640003091282605690134302634636378746753662281973684772199870844890021798905245292872467002690556254910142460507750229662006570130056430191909865905231793969310760519457132277827783066280252013745608939652090727092674415520198347587654341459116225097280032660544375646577711375770942080107428203955194676677729767228373936265150950053195843739372170141655242910678347916924466411190660936281676566558197576391909484887503336756181675317790094945195208689877094837350264122332177468080945712374944288462959958724823475046911692408215640463768950867113734593248618013172889163603759339969579298070976481125760413998174221735172431002175214130297785382330445338740418056371483867933986048783354240609768283861041293947237027799614366415565802187060918301800368684701266884241606740809482434910384252577879223775585017438595425325129572660470853160964855121186870647518705123390907986362004088684319646623760568118706960368196427896852159109434452383769694224497518431840845259422970094546857470222734943137458251043991289829290663580047478437835487555319196917113832144850681912693711634207041294365294024138366108644973009935754465675909659972482980076862121647549081019341539511111636079827989978180818401000689184335032823912751438379392738727433006472123820043151329262081879781073071596507614357295259043633807821475517590171148129283640514488865691687411769661766674291225822018092904441736937905648597660861046018617161294612882874773039904858383056073429844834377665149691852999774457499325967752005074455799266324752816581615583342501106550699616172540326204916908075093547706914506824232963890205138274113669691115813177067826352387837017323301652648354016812386064277437903875102127236370111103592638212160592002697107948428708880946212960730431834654388444351509170706916026091001523380386458724922208070691727363973991798367113193869432605002266224770306700883694140480227841055030694983179223711657151005847916442690740121440792493585383541066345153965176568798279665951953825002121477188882252872797948037399743470110381515172842030166494727490768903670427140282994849461176501734904937571657264043715236747950057959904109417339608911741529484778389925644449461400484900357140512311666173805719919745728460796507427712070589946107239951571962472406428029306257363119237714325927813119966242111513611741816578372532496248457656109882805724955265553140132370746607798525641941480175604733987021443783006104246699153909001128236269577381396928905185279976510232004551037987782670990720531074559870096401891384728401343233147999379140029259859403144735610182696499753796260699610755973431124800899701986036386019325299925361627401782871184283477069443684405451083382319771615161309575140946796457444509465220376998476419194786480741136041228803103473309616925280041649515626571131780993585302282911659506507236818677517580557049078254654821135646838249994962704319539696234050903008046735290044327807194147678769093647560228189048467072064351644196257540643173627534138622214629869473713986637507408384199580266329528655289596503504992816095600688679295323723610194802169765860384347953588736727179760779513561489902227049070730547760899074777898497476417746715217156300426668249994994876382916452217114336385587880634220238717119684931820095583502764012327336142647865624741863821486838773476788994872813487620279506264503227128173371435528548156088175292286813488582305645544137847782962107730265997653507475984655517052107140530678441468960574640166487130117870456363820127015835495938827270948522213176791701474732046564041091609951075799481333326976212008833081930468894505704966550693191456701060971081298778586337026191929722874908119655913202975805553466566401836916291576336774173795053066052231719701045400259317280881019273366932286663414971933117244892192537325869921511816627228579240552576993905049288803590633520066281611547165906627598147851475545885817841577787261004080118702794903620584982669351648776872018459090772145029339766515041164361143855504976387274754556778101584186815001733985282027146042500174512554143436151473114045114006262501226889085373810348654399329387802466977257168508430224013464932231611378260022760772835963887237133828362540213766744658436334246739659042316044578553363479417165088731728987299082914248585335269944560563972502245856886299030405471485015101396488600620383556055956724516105108898439640234404247902313229866107197562867670051349385338146990565195017693862874734978048956162442193409825258383524418696333160658225853305110425306982071119308842323313946154898742971228019297305885551670634749221981169664532191011234112946343358717616856721593499840833999626856639198588157029267885143314756389179406888062633233289987971938166389949903215874655916236989116394261806320910414478159294985169511966265723316321513411082860058062268654748087729826651003878919604041492579287420976787452406614145689290628236263871154801451450216791541062882449782813299974268138269207764415606450155478098020095358344943468258441443519799299394382160757613643425725671106513319639535310236537470196126707511694954711943414324569752905686471282246900968081817870981913011995516944344308953148117817628166180228379780475262798800484565614550032103137105902614535369180742537188567684593866477521226010725905816885661700156287480052375684742487144728059775371802724614882146957042659384349439700133392297126538678049529214647681345131783221300856047643709522037430445625425255654764871262745393479420044995680810405607866432453906151956399990445881587168741486880091156311779791506656333799530107472883867868662496786309185362983356000617028665920536077366489047311675496960500528905565905162590439107347242455059871243803896356967458536138107257600341469954520484255718100336464916512024735684672965401386669736897605016659349724051764710540594259932441784716910885053284450196055892261495492109547336680398414303683182880088013839424157361044508908299873794583998606117924622140560479328757996233721329122236049140884065245050348605907480130027140527630177522936828582029811965300646142889564125558322299104352714535825788977768797196624537003506261810715757278944132032054772515255267894855590963360099049260803191773561186175734004777409520900856987736022598503449864473408134682874373889978821052681746565745154479148598942384525611718439687399882995909858559722807197957404993515859970001340506382635741386881716766036531608154646183176419093245783604453746556047302489680184844934201424298414222387475763666512280117677993288789226752478267693615371900272667746169442019757856182710386756313094272559590729993039907318554827546669013611594009471799107643931516507703980233746099645286892190668376214641776114095450711159470529793351388603974929103606547285234607411613796272692457128088599081732066497127782292199071520925605016517685649470145528583017850553770027986827591996894632217650541968585456987062347969051761706891236906552427642031200206869812094585767112423523529994058771607163037650349991311647098454701532448170202220727033360362718381706088534846515395096389348916360654572028631102456176474138980726050038492580663411220979683929233308098207168231375276345159670739100092660095342388234256465878621162000999972434676632908435178235356763709776122335393220390594645460257391391957366968560733930367174882699428399479172508256903612238490308584908361910482042399549664074930141813844893890940700888454527602383041672461312049527055345086580583745708188593315753903354198604505637258047173711972228416321022207534329998993146917140625895618256040658509514975022848288742368426341141359763213095700127234797054481421022893170282938936402942725958110358501906308673339442091296094802879399654133222037580837316649791900016106525314073320461295632421752936703807046119546559395654232983446703832564312601114582052523049872115522717247802532538990812966393994975787351810033990925071869577953883044982997482456860677978813162659957886273210136176070555539865615611825314304790091156021858911316073809515566479338646047502515369378056146617496581359035568177062941692649774212261695029909386229646696839005602015730346686436227933224024820304037930971001795745012901595136180861696318598100009695457947303795800311250878963629323956777580351616315525991626989711653788054086654661864642164673904563108291812973368815691265475418881839107289505315102589790594681398512275145482355048741272508802832921380972189815395363394841734740128770583587976630616762932387933823852022390711455206901993096108913130796782053289354448966234932124264522023738209916721922307523936028215722676065070078324196932515307513157490427483433713460548129220154325832919689579089873083399368227874278026741158898351002048054505821202453004636467046886004916377725576816126046587598277755089630556851831348717823622029673990493941300835648287729401384942541697030859998560815469457567081227093300973530332934722497893532458552884628541025213615094391613577231341330075560792329672002558682646351616479179532743617966523558552682291054600530675266393099257002093486374713471204328958424664941737546959685703963020334647705680738743206634173108993254553106754146903417320765532302258568302209079839794247853443750975935853737277207463940459762503323537421478677991037198689534138803816239377427937008426218485640629945437191626512264515230953066610199802507578015692585592340017030083122108964882931641453384349380660380516988623370924187379801256314362682754138961581829874043312106490642771006149365270213157182498088837934415836216888815410610780094851658941240662103141279531453390666859481797145034317739235085324681083083739997079454315335133637907923717491152454990432204412325301854888208042182660251767078414768477484333317983491190442061925741224240498085998916616563749429183413677026665128769391154973963601681972149674602532095971496862086857915134341143962661692778077750086149755181340360486265126936016156851333132095002536711312351399035277178982968704207287288318591537893117865461216908606757551168286050464203856137038654127009498404822034351860334726283977735736792657020002924168557789872789746281546761065871350760418926150289973246299647375515048495816014903683249359728746353365363869956990236509237531128629490569395861054126292438442607593957914645579759415119296674757207784557244621047707799686125149496511810940431748618131365585350917641957685854529628923369455783468774071839350100861689329536550056811335403209340331505820825190354327683293755834069422803746506697741956388752830511263365666926334266188794801537115266263756890668969033851073649294782664194910271004784402183968406629558465134937333864254583199440719873002394995646770219188003828479092485623876610967349226261591227404236006774542266640382989955864193236907749888936473610916277939519435941176224558380395729479042527199260113659502153930483419775794574327650461430781639531804426291358737574058493425012333155286307826051321389325997132769690212956140481477112435525191113525841404250286161272409957700723843137335320811474016172352558250157990775173501532788399658919367424264698133631403307935601088480192781556464620894537451813912791480478776133075116890404867015124167721036407343530157454346386802714287993323898751661559841493498986814794619884168985471226089157850732662511603092681518880939269162191679094708466187216289358294738965336175322870743232161510639862308573553170914029441044259977367528515156541625217879768903404704514352496174005102145500504227805590122974208972434359952488610423576151773698431189251359993243697707525400262847166845377402190885338164644363075814111990712154450330962466572594070283745802171063161905948896600307644872799519082405327736392102719115716922087133064444898979966755690314235678512691007458305685983561729963906820568206571579262666283512016231957825156317680953445311275637400713461149828719197949466141422173992506407771315799420512667740796893299837013456644757071961698913698292766271072100425764960241034587378973016038956175282321439536389842738177007234770448112241847951977763468968725860040684076571475857812258971252737753657590298936819937376054863327859893892892076969683609485800435205511469518631892165857400679612166056828150755562637688794183595514761285654936484446012691749679180405404230669634694876048052073235486671771799463092011373488146813263027753858536251867842775228381317050623708653766876671375447172631004971401234668130213931502809512457436405399375216057345633786826913636709672111729680932538737036940813313801622919796186218800401675881550078544767604298635775441917052219090629510816845056141560500742047277213418046088433218863278838638737045324210219980444141494112517336554785283709876556415950089174854855329098230957592214122369321302976226851047576317480997817938153131622230092235010750450322143423987068599472571152057087315069647833630712876644024862720003222725348607472924112385289930993344122182304940068690621214953633798544653757004445085740268366930046569486110922723102085401401957885137745759884099252037131397246944438451487673411482817235462120219483054956314983949933212226043808677939136213770621535270689580367583118964210486227400522027547667281109837908705109039453463982404166658744323898399210486082462801387011345897324185198395513042354099751072890362840965323725577218724587054059750710101569189019575701668992051413682071198489839405043511920463848990556467088392894844325641041396578102666079051293410211586528374671124346032787423230116534643523786505120650451251748449448583710924923548266517313339681848045476440996409133396222393075859568303068999794304748890513960219978620539394714130644315708265828511022067334894946590503153601462344971542768884601813132160416402349199447857046258401725326479199558035889651556258043239782583410067800580305199897150577314895344673812426371910285052204552092943005518150733246452713355239009248842509287473434288858111217021026067979894729625119660245824401845474554874793743705612991269574476606629450520362784110594616688973442900172686695090245487766007258830269656462829623527244314003810723340309330694622822656902451359670873879939069063855542083213762807898114257547427417077217180771798971654809029058011231094154216448027069601769646271132648601231726982066390376891809013728735856283569974201922289861053945147966737918256510456757152115709086951595881927225997718357874331470247109258138170637111769702279396598985504176402018101631846092292642694663618816026768325946475633597766437571644993115010077504079502554514066167483898245662904420001394509410329836428028429098077217783970128153993927429571514445313036586450367656500797200186125048019098146117244697798823429589090205303435570872959647356669549243553942490343006360994362472209186208845293616904584599977443266524499358111730927901972393168024925424841439110280184973488180913321739154553567595389285202525892831519413052434144164688180067773072953978594607405151163492418342306074036960611915490009828809180663059210086237514638597257667575026293181231694678246372876125806801182300799005243654401756854744601067512936400073750803083230672246248405254266237943526291245819798381726968080628466240502465338704623071694673201355769856259623499600629029535575601261069652140290379664600688003848820006839218975927714846243624143351697389664772613862246780952030511721251251340261420932114915890031744969948355414453882430501542685699271179314950341938286027030499974300949394203573748816736431461315986072102730224630174291100032703892296500593745232060560414636705985593596731483316937525933596291247979010985743445880015419316745728357138058714591473897464393540281784793964229089818648051057347462652971578888082390498311663554617337757630501945490157646171634118253200080359727205526277002752102156935662883416795952867856979673991167359301494444124196138687575815139733563641923602376815455920958039392281754288680810065740373565068572641060689510478762718784342345272262092754551937066871409535073268156232703158206648845303878585114816456660471587717856326242276624659528183576685966432498516870116164200908496554382151456275047349859087424627152892533623520002524053775612400115142719107817655091049393877683399796265371264211571163448654842911833850341735729113099434271047944027471485313386839010089698519237606522097237336670587616049720778038166336447303626505355697223704462482461092834739695997695245342581212385383037254563410260388399739091992601587264402154446420987912252889417814209968063941568802966146446991339678463408983494714099377106877763141966881752369511311682229790056933442585622585834743939263612700985739743744666223383949655213117995781610233034777651872407487955756143008881988741686167518679830194911044020294821095095274589612289459892268787771760120696746666220720758482755411742552518842698954423894608154952408354306589049571842030730313994980365800879055059018654641086042245179438141190494171769628438722239529436755949625724926070092457029906823236737384249831883920457586387918245915250354797290824188438716892338880310657004677276106083224464099734858774572323598635562763196255175833914412375472675013384228472596146600152488303564393574246569323004660270501391175775687166890351898452736891950017231523058122326194857480067015775658584586370238303775943815727418860829357926028761046853267463614627993008328653755425029565272410062367891771815261143327158949833955126420810573409650485463481173341672374402674893372581987603487870110991299585892372036515509909987334292896602769922413606947612005647229422808017656836478279729734742262250089933963988756655217153153963895236389583871277113405622474131080516696323279432095912325268525901216568128255828271090288160236422272217265714726222945319304908055011033193929337130438860427584236130981690300332837014305495543441814933950468070831215024128487342187455409178013312331670791029883996154040688844467728766885372777844768183725054640124619454316533560165625559150373054414449603275727151199190640379598496954133285610466569901175263032218358313509239366638832862019854193489526043852153753028410877603969108670867084849862212975186538290695975460208529563099687682060854285093421903428827851023319218605360508419264961319541223249112198639155972961248452665941802716744164100099756927382139664949081407683159938356156953345508599712596514412512612257712623096977256854136155848541802613297112817534010905130377396658548486273906294638789158142022584223330222362930444921928448224124212356484614055292862901351331894363572888988180204261640265575381205861732233620405792468827008776984991775272410790330915323060601081450815220254887568290062133284266197362877527364058912684632420964229541918429147922411826794145754774726404677971895436052409659708244826469907971029741261409198629766035615793579320856076641929607417015049484316866920759410482046073764272706707743878040300075184524172655972159263584585672678715091795144116223471477203278942229983731201922810200200486208762465719797591983969596773117174961937238232913088987171766636941504439710515544642124304855260683853014202051292817106487682754348708629992828290630124893572315511727528205265630446933364513960287232225650196076403917004155444588732669355315466911731223576623052459187405317700420965987916216975435464758382275419535879582793660208894685219226752249166745127199657841765617515339757101448800639953867247678436252654707398936935114432213195335616887891521408359328396915116520339973116700051555644395114548401005898759457625056427112930919298155592998755628931045250059097789820037162727180096692625471716877703336734690503266560650339590128442133391903920329955507469999039556092159656850809983345311752221432225742981453458322974678663625722972403010693572479896029771924911107630497639566325832265144960411736702326557014021653764277278140548419945502511278777649315690364682212340384607131038394889236940560591882609812851612324709743752460574188124663739700528973945208870340521584311967650332609937388050263745507091175373576879273762816971003761780839234241038073489663713841531184016721237805002641831127829910841042976270144463614135635744690455487095427310652270332081537488887439152692586942443496099445113079024509985472265017369491799471494520968628655930926393792836833303899694266333120387671154210924830323281514986660936008019788667237734973644167015545679870038700288114253702424028303760881083802200222196872454266145407526371680345190165803016622440809164975251796237657123223536682994148549283857835991997050919368724744348696364165366535356854994927516266078445753286103481518700966499318682013407235155082951086785307266273155996027316038272950691398086911804929501129954302255993552812082317869746237987613457080636760378542157811323681842483669047223784147563549886236439210211757625882845973789240486907140221637046556320432362113064658522524007431838171174973589573518818918557618476280079809160876460589781203582690695195689843374755142332852623190346209536137320471156146739129305484982230196052539389096927769825621861679875060184453803679426131896767068598840828341992326733843781138431055924600951492965174562675796281039263374584926396764543380252356251476651122483912647037348981608899864172468779429021373597383310509147891810708884076511258375865916069904028509478712416089177589410446349008096961431657640770755811256900036587368059224750249404641538770958227619042191656975142439755590505958657866683198810608251450008747915421317735301931843601474526127294042072817231324844343603561264364028801336256570493691602431439033305893205811597095352386857856552006461923409343758401721454989352011124292701290654804341378893482893748791482160015867959963810417667980989635259059284061718236757074303379795342590863811706310150059951810973074937274002658754602609737764016687459081393914128878184361673927894706521948371669563714417382770362257619349196268993568269183310550228014222948931725142445188022911081697640625728395594224745373900032489249066897696126579628986596195579261277690773608660041548471021236370911651623083725695874161940047173011002390112901660103909586460249964819679081644629601994005749349632397143308037665499916044202809252887398861216412908868087058651414840871956356418159651826354288434448000877849637017980959444340908153344859455985361708233703056850074760553665066380740204433041278316668800160058173440629458611063703459853801402573508890417289371356817107378189350179590900171713555523314035031919795306042376470439218804045636650037683343082836231526547922061962920412589871084432512373575967001888935412776986414097314309706583485990945913961594725005256512380214902741580294935521831461372385953688614828244603029696303060597088898523723309876493713330856391449208692452382945497443897742552551748055680796077405049224201146434895803864589148828497686115556771751422850843656775858906482987782632324971155973246931537081540912684137862416767040148459029228625568445080854523452790322168099502925693797510247081739208059676470710222668661267047571365208332712739343482767112645669047009576175918826914647919974667924034707832662027028359443451773677760023051653518577033650204286705764834702673267120321574874731172313856565634781756381530554538597258546259131258114764505227233456677486561953811527391897621138753907335659806975325434370492361054442876319662720703137386135044687356892595114538774178729631335160129784876160975277368618488044224642144875425263074334445851410443884008683273016742187392981988669201846764324988752412500784316126491481701341268020075326611598581543744030849322589639152252788177484543891572957614833265120554468225124302237633730696591273767650610248502903757640615527400471779057274431023401545950486215779390504289969081068470680431050391658465836297396527928760480293252228222545530675396795366769725062590839225971194861375022638227548708613861359434669339986469741732802804879349821933157043090598696179701183790189036192972485918305774837657591211918310288880509324288971647084518620731607749311433558143577065219952634111544181667382690628066055015984998673060499737995735158590563681709433541192865034803613493621841643219676693265303555035351963539947219916992532237624700331574167318145060933751766383652241135115316998469952568256680190152753767843943365030389372042936783122791662166549789565011815150466921902162831998875221837325406656269693096678826107216754146645694658514779492772092648677097753325122095322328127781855583208552965668145481453177983740880102430604673778969439825555557392841368109548563310612088573266536879466136670348727218323445246071695454935076483912170720449423709818823069315391430575322994708831111257138479994154413319244591058483914832404601789599528255151519964190397935911850543861359203412343280320640599600468440737456650345437413257489042630014200253136102010132645311833620784747441837817817618243918338057618402577808977815896860337637525158088281685946990047456195620405767669833427836034851386971583291480889869221777408421692472700876544074678620761339200837674917745341166553743485899739354390683143172849326439281861981435666280928488286840850469480624382548686366620800643015734391200546049727778618176226615713223245980968675775228760096307769564224333320681363875061926391768619264438186186135070576716018952990065727589304397329359151912801456541890924064804712425084245721461071057519727308187776034003055987633641580070248253514275742293720568918220265473539494422330524866561934645191569517160928980591583292566228216738316882861053703971987741435899122155543891887048198838601953819257601324657696662177401443892734858053892383159774872080635819707532210890918908575502753798675822561717353746723251775921660353763220352718971691264440990738166144910459138752203159667008949219295444649270101194917565203434319902077325698513357712542822723599086447854416261823171368670208388728142163368114291979640018544154827034220655094541904807546671155848212854570138762841973240754572190705749487410228339818256046262103798891117611935640881793238608931087265350336399243520807518346019758386806040919789867581546313969160410174153956605702246324914954237036960580107995406038260334262486009119488150363876941632331186704412497492628659316576471615529110198456734232504094645537789648817820153569872081645633386774519866598552604101634178713737174991837357894292542429156885367202792993960043588569289464006402639475998196754055594056398322814940020365688294909386462636818116177803352593370747023945545899394117285451327556086529638757915591925422537571554983083478909875861875738815410831135238597854286629898406694688665438546129995710811716801842772022125127762216602337409863799681061789350684304623143173598091790413903214757652644881924032432448588357034142929463522422504065296448796034323411220447391481160987055007626892961815067855004500368030662831917619054580445961745782860038466320350408557651175078675659483843982836439392477923694454843823518439490236574981787987402490914057702933404177514886838042113622635595356458141117184135459628418122960852785632836380834196950912702105125841309437488366354312262456403104145277880510292463581489909768837439184715406862767054587646754274214708105240693299063355529408959824763518304359259835328265590873259950140754685226625612211771935020468350704089448369663440939341751213275286501921047675439787301562287129815235074653232636972653043070027667858801472467133927197084757175942200101327892751242210159160337143723405241422150577683852031726608472611290980379953991091372571317913336039304031450100845043660145951012065185529380612327438786461977211944613828805174076336918170665271194154466468466400015751725257406884321730374767135056960453880816316763629357318975294176613028229476263052448450752646375735881841832050770892028586670702099698425989829524671159245142678356380565740871641446764512914258463008695354245129326291463863408369045400584652180792314656726333914805038884065172672421210889491321834889651232274840639110310731798344941652089294224597331286855341598135276761515381240487100929724778846718612790126603792289133534077456919682090780558107662544325267914358718525808433740108798510238939890021687536927354869933164207222320251832470175893301242060110778772704947610241553372833967385465949433819002712565435556317749322311669603371443798488642251676974795408254167805897692443700447874672012235115714427572436702379434792798668836855344870487568796223447310994358390716443136803535384902611523848064273733547768163433167157837473186996427279075022018002139303767375560992490690514478446691765198346202023100815548911983543788969971758147374420249025338635726206629975626329878348121890380051748500951373059799106417255075525580732359070176208086061394701391742190129205606819253662252074418546318847954546355115699241571485588820932951019757576820064518571742096182240121498597532632164828575935374402342016643305651896507624379798508386991605433892571133393283956153958851047879386392032400738194006312878030003492666872032273772044369941869878973613361098709247042644968472922441806870708703195242844380724407578133583280022489432807496217288360171307224222273543124115728601987692060879347052792929129416525547338850427796950022617039878261116837461681204215287504282253179206406909518622310591289364323114472886055544969616025719345792695426534758945692572199589111540458432531529313014296312739840793133343093052905172856447019200960398645845394945038143521556551839899057733716986545596212973937432919181114506152068960379641160794581051892955168974029950285493222072223231514474808855778540570613707884794581911206940737942891030057263503329036872670569172962984579235038868336643088841893297102711661388865757447789896073885586713880170593252240581277111491478462258640668552054193157959070382874595334243714484611114457317397853335126997804726968075013750151584870007837288966620312641137881370014256756675631234180329101578210876364086625129948713645814969716587719345960803331022302318546259599908119894187759879784774248514422874969110956037010762696683267761777939737066811382894782009932438858830083185009728852069730868293248645182486512558236137095584688250112474320775486239709491769049696234748315305641502958578733111125208161457395546504974736947850390622189619011574316222493334517510134482522413577469297777871635893987143514428132553190329063959400601876952349513301427296560509117569203572711816073157252136866978864036878276407850714492223212105295803122657586838024952493101297626252399398201812430368388521734234838308737605538309528866592496512511485562007980961325395788268358589359827103140694585511014237903674678116920234637137072805224482288070896840045057042945445495474803207311786224052890865492990101145715021774383137434979362688066902479304618851210397427571969015959407591953817605611311348405439708089523260544789334670948874849948441459529533352899351622431955455900073936335052613810383826616507676313755317541702296983357768683130948567907521603780674006038618328545410702367824716097550790704090207104772540707844026733139471355912399151543160899986272732290181113510421176165253119909188427989207728948987114207657657062169619666940696730214682796284241151238974183047948796072607084535662227243780866330390116977534752646956102405551777783436712307359571270232932699560407435379270498982627297265946474887494005784534546564470694240065374671393352731901452811175445344848695772076812371096915992458445871290937968376232024754989263057556529435203552885895840095133955864927438039469164279487856970910538116745161339163447827408185094979816437964435128239129115798062254285646537889642062660509049002632447975947024124371911556058515002179965430024444154685309455306297715106170078353831570677851562721422821271396136162434581617569096145381154187612555888368999332107075287452979357528354696615262679160485509106778253469047018002816722800974886074660444784652755620627059434555511715440462860058187266240061190421765120255313855669341665317913934415137491260531625726510133971424316999106239879194212638293466275648043963096956745780354322760639855625074402436526470503278622731167832187387284198287735525248911184750907699083398772959855761303957627174479307925507020475279570474762838362592024496299703983368421368164252701136693202368605240721390503967226977315122250175924828952739880662868123602851638740410804256113093582352400348942700500860351792718066573630625480719453503178957746817011170749694471731355410719246842779129452779674014095059566611961439418122999422908343207755341887599680482150982066469536249513477125044862208785011723374610516352941851926128007753622715509589777533405350001959809886022784729379468535467002643479763824434167742167328253843050899253816561721277710317224882951734997581201507386084248667305785767215766863960441228597118055887947910921761911677250760525240783349953998013083557940062982253525560961383972761975935376801783415129389439077075030891719628382424204452806392687724295149303120758407267126987551144800127862056380865095259921681338763855212935542849506149036772112031524958709084085792943799179147813321728908136911376392037359619772746834031352038978040793522260654891743931046379260664742121388743093153729001949175029123399864554532381859098935243739915707260246863169032048888253151394137827267503267232414127150153940032213477386174920717136962548462625588388352596254524436739165334178344575971013470282891512333642914419999787431518167678044052551774511908332248466110605908006400989938026074575122300960550858476851067351677154618913040535371209254458939973092494797542456189960333509971369177448712404164681750637219579556649976066088286408505320215589099123750326899494863294592327481807321154683118646490247422375359182450684018466365994916727161854990010115915567666727776092494394908453908062696427433217084766219246807179736275115809565324273128345930266454856217063064074121968684687685358220105975884881693383035510477314513540655554198301204402607280118243553922504646039389719096001163319937656029165694954060104575510506111680121697029989502349859569414913473249654295810086743355113529606091327685423579102454189558895264705859119860944812292388055483194448476736300601718992696894932655658218054772839122572451417611575113862710642825283259047225652624891050937872236972118026557400139769528240916732776140398022681168158737912288072459163825427414541850695063810165321144935319285236349795954441790577597797764140535826380705038514287485437883293543821416051508922461040482581028843347211157654564996586982975785308396962690177267025156450677112087474842596631351654031929856898222088710085711325877430781318227009021664732667258222547949484735410690021655994580208525670914910945808361957438480259959737901594048377375268555702480974750037464059340102171114851296896136909693370745971262910855889814335274376152534441881124564087027635787691704701517953543046909777181594088901079765442265526457566723768353003546253338049362654862572385895843141567580571535931258691382600495319290363409749778086843305599355006765726017994046530251934424620614235860584333442178158627185268305359789190728335591313395690045287683221741856370409188399190184926085600575718181305387489733240238757561521075435040288504734151203061603722250408710787946452015509991248327691446685126475254592338959136507025162098423028291180011605060857437353283034669834351254940286297318937795202095016551865956716275187217086285786500626733531093447378294715490758320247888576385165180129075336803084052542388664933827665288651877541891780196067497988992648835637862451209018940619839174061418343911857281550951511081462941638056467459332035942003256756226936885222600199144230773272236158012236355371884905979735190450350808888274887505212222112156349044814425455213418050924868161638674743148258723910333642743259020437691076387948136011402062980244770921660770812876346696807894759171484216026741117000258983510162373264752901006967341826111669060569334983103227007450843138285767912223247040840170234858162594151558352213278867849158758413808542042796537825419610860064191711783802076237161142813563624558731493324467168655157760268051759411758577468535658968003173758589342743134384997459184821465076105817299888484711070791344546104467480613669592563088637671583112086765079245056348903038499927775934401313544854031024818238400455875466371864801358514389129692233050869004788898126905242877580116036730862872621247070328543094447183291816038695402532981465620148456236963588995057390374761141648279677346940731437353267132578322542759254988114921795839456754705588990707758228387069382010405406251415440099630505068078789254572110402556147362451046855605423270996227197140600925301445062085283345169777995566244104664388788385845261929790863142101856353874456698482336386296638100847596885767900166879612324937247697902512571187195431722762053811392511310902592301920408532748716987330191824157876509544348066636291606180832144970742742467515209106236803141133684682124094294138073379058875080270501234800179176047005195467179392689362156615859191392651566311985562572609897418389600387699849927478669744727040853585419251411660199573337409073302638332924928128263725366358520427372365249498629189918035760353405386422873606728838413946473361040504531858133652847631820181242267038836200088523365195706104695468494052533011676211225891801619307310721704304583287610315588526823082679061312502870812664845969980427792785805967136474195632242525982781763701384264729776752075719873018116894014759467247101694866492203272963460144793693406967608580231785126701323474321298946057763892923532924827461689811892183966010871436629346352885892275114064279032912072375813428163532712461487345137582345580829546140533272712671747073804728822194635262869296910122762845452996189561474918439539637144430204577579933251384237621425230476143463327821563614954442222776652396322594635295664208731867396308165961227928046972486145960710798801903835134262927418043862548492304039643547466700107301066012619843767176417932909704812132267792920217735055156580027246577975716863677590082843054643628205023481508181143244993560119015948082726225811633156951932229276273022931183073149758478890536160388204913435521578447361535327349080306253915637063080801156436218340755616933590649989933028192475254248698536794549595666531399230990546923848397291526050135882977041700061614352855934620789447738566516812194754630272200056369015975241112512488382330393834171040050814017026715488242925789716301316374824941279588735391861188858732625699332411137640426631115560714150206365076127466955688086284672682420281431704532071510893457823918910186763146721530365413397766766098313205919041411666965396654610953868687505288662315860923510911639464714992324910644170211155228557368743953337465546606711719974642703679710908802455152552804153821703799924740036905241979087279767785846514764708747305453401119162538374076558024773149972245959415668988400009076510874974626734731613268773708914071353537533484329518361627758732851197287808092077077979693765343100968214868902812906031776849747447136690802768975870439692193977797953135308077340438923042356081308533502789715119744808764218168384723860052837918054613436036102695277150175643543695910502345084553108377080014801682839567407094084115454094955136108481306549222634950082630097709846633808398303272376408798315773056701204055682579625887262253816922258091335923533905314095121100966565497358045480260966631747812298181217681128746454466967755183846918367045949972806931118898890816234859357266976391243139191899220650335745610154131809890557598739914220485920532036883999944186858984194926566741599431685378768061113248036716819345364068000302157819612413852720256124102507574590947652179998673936450800701274174536089473881654147268056306041774753213777482083744874147791176365639279511607765701881446780153175348586429640200591945391980711374766472359267896245181481512236052748282610285815682825041565439907835144830967195811941036105754559144546170815546984649100605016329580385134219184621673107016972960191772020970353257009060715702393325918228996616334206282523364881724577257410625008906668481440335677375286919794385031690804176232505065590534288952284909566210328458990659415628870583826343684071822343058902359770307360221500290061103208088309064656614782500189755038970367279502513783997135371493471327400723086915595187766045823067235016458028033170256866721826255511314766040746343340468509649980548523583229242301206760015703820771846874406255386578910368415813106047416928300364750294822983520602578053411683641458685215489752841244990709142838197092023049204168080417444099226389474906458175127784998304607340792365250064335533778761721864352369463337002341883685789324800694176035453028030173548537179018272583511513721252711561581820102756692634132534411306359480105744300940116491980946954927819091562999897573246883252496356592402636289451450454059005556605210266589713510158661011240885753588018010649142497513647207461680092037062515116583859691693257374380624751184715538604134595795325633644420982826711516924920279740280471365262964122548756952009048042784669431131068022684941606075071366952933332873658481644931154163868135532000745071687842202539194336601613688547054133503930044659707647838191604116501298345524887899460016848437792801547240114371276114388848330090128048304617540466911157706724263686069865541473346105487055284066814346719962644375074608442596556449626223722296335401427456682129379696613551292772600687864191944306626830446024787224603743576794180918975802378790565138852630496359988140118073718374340153008615155763214442689620362727665723235872434770264059016133169900990979161739128675685409084008603209210675553928825894571061502326263856779349904576838925316413797118872938656651420086536587759934423507477037035571892424160594858146959619909221845486494482162214601080159115955984814457127518476832440074247848996823840681858544976306615602063986736619530449201893490186333047911281258124191986794195380158341313924574874339930851769633648314305715360324166615006461772762083178511157783211886713255187817385799762757043178188980597646251677547579325805814487209200056509748736326614774438732299186203241380017353964614917611915407078814787955635568696955667550492097120417087876529646951241230283773435153352900014514271377612177337920765237099250306108931268202618257167034623037117333162745886484785040939818291716024918784865406761167548045890126900962732420151283751783659040168486924139006301703991370306869104451491035525870997925138917297217696540290755247239551257333034456282346478351058009148872856703286781317588526092321179965602698798611616821514824494476596962611504620905157862323186274898843811669019345150325225259503483561455176815241319141311494146282762867104505342379675677589211782315908910227432752003891019136291529803991999857424907890646214752645869359104989302266505069118843841974497456131332470627606662298323122850389175605750603730153686305528463874059260254503538027520316871741902368075650511511514051478105166821991254183464550726686056849018204941283342789020534531387856582796672646355547491501990969028551105934830096706226229449927460629411212324495419218251835507968521694111250304925808799555752474936247073758536130059603592279325255945484467115303130433480886832430868639389741086746889167920615404582284550672374370316673590028763133954141961560359087304250199117257204737868675006727041534906291763978738983667880936050999553400845959321441759949610745608091037286862068770141018144265905402091980753149896653202548718486129216911188753529972217841235147203460943916901190689543739892767667352917477573016542037582494747390274497068599403934484993081074542936630605778736545383415489027662677239639810756890290204477804698489581907528053880340809431364646612302465312484332351567916570333175511603869987659507060372238483567943175505764497050203049530619598981919721767787651685144856058279350390174175145802544492340785104526249587203093811478297962795735368808883210009387450415872554173942738488801167595602940627394688592763552548589432264017567793032270770798454563377038029696153871617154818446579981214942931328642956526500499386573361467890997030989735392900276746067744981752319086325785551555135894822734103816400978237643040335006674442365085924928889365856002192140478984546258002136967894461450228479632199698892400556938128782991580528007871007971682712325420384691298752395883875110134764322055067514258045514766732337050446473663543818086507885610627163155282250539734437074594454378492067365425371853552457269929204123233449174236100023081515539411322772304460253322438169003549618631875375109386220902305907336381702573732937535732041535260692760601369282309043873475917041796416165394584827081734435314341552826948419488181148129200757230256647423385793771570352028172083760571112723011284389965044954479050221222032522286879056048886406303590020224550847199084084739481644944922393976322070964806179732854841023914443830447905491142402721280976351946599995793054449965380973882784228701631918941652820306498654769322350164322497518699842056708790212654124220322879891228282032338539896494517866314456848752050746493517152223643959811546224878058712934906499564656144316677925967132405448775596266683627930477189974808805777993418312899369417916360220941583530470189773323871377010240002765068057131250026620866906116539570662699494736881960583299998884595543766317854994529954000395872168887353161458466155744626261880508332381541744331720758152574759998429189306913252940596718883429768247789455282357969160641906142316027445620189257976947177631208164632781223207351518739992399235289238513995170228800991022981919532550519660910268796024939149459941419028820058112081823915102870159299614002223520402155272835017678477390294839306335278731824022547153735505154353434563053425585449893219733300845776465104478851469836704631303423507032227193030782754037111315179829241075775697644859354109929464280064483597848410837266612165860052656588856478133062437994461978062994413215720543446635088069692009761833873904820382275974817859938689071957289043041849653368724387766399894351731619030125105795917616160143733587722755995834048774951266191498716206879851346560020042478771431539168400873628424524553267346205294645496516434474042077699460867221069291434592652872615666102182340601945541921273558637013806080227510189330472668521390033650453895953520141324750373476181760381454363463855249564085756061972418475582369259759698860283071398047096794215391044207456255475571989120430390708991773256915533936382257834249687889063653540727227737875552700368226230916766575127119084522800520608167735437662026491496749428321085289654852601537937817558916984549704961860982998159734019190816247442523227405297316647546350280034994702608555682827597497819296009958288058341804077941965429906806709107690362764771988137528430192538793912810592420639171519794337601384172423797342277306184897209952341937998027377878164883664017373180390849372579425693334001808713238872080007397214412220350303886193228675961199246326128042802931087966878499887254830307169085806037930648176677685148368011736420590625318066358137463839479802848021880846120176329084002636826998574469335456098101314209805735284935525398404844387351767087349282879201206382322781587103941554097046005553591565527891114970166537775469496279602569437960398439889930016276827682612034862384808516376458101491777749373041190803173497843419283356001530854731523570537160995863675910150275339714625454697332890292851751174682629346244587290710996005440391321359830075297465584819656422159059893721759359758781053112522652734953775348573822261918232996534333516290250851745000107105678993059987541351911400139483050510575701299113066233986111544488469396902704198864276649554592013551675067056065735775126220018235853164147923027213000935924084674373005509800315531089980462961332492074374980818113568972792437670623299490266793475606163704180122140579135768614088122210567382213582808931243020098222795282007823091942695959196732155308653740001677157240748237451584112135268769831392493151347732491609395560240027865483976267400150424203979568766388780398319711773514212706900389244192733009991383739756033674989987754536889424879060660218595502903530479837093011614841611157760624068319037108770899937964473149952223431687910648883960046530906033534380950698590395851026499535075597335867042766352410617331125772501217993643854367917697035524645185349877100702753738725295058559578355564525721540194559046574840273827745481464268705166009607370369913827457342978827604542990761267759944252755796752102575816414012897782915320994070698574646225358398633071837614477538244236512145567114406253571007509005836549626540603824320877384868479036540758441819540583200088835518685848857587058842147787156708232962152653662634479483687583968482592959508092208496096080172156475100772312643132474031692124941545690615188577228388889445999069129123852133653527742070047381485283812048239630616822092654866554111666593231366941421217333377486725920074788574807361689461278073772552123425655846835227888361364748225226877570190368965435187177468827855323930537410654290160335619935014685880878504108975062485685957958466263180104382616155028451901421411031018158383779910083567617485071533216074294186097059353349849920825182205925332740096202604689265402491180279733828186304410302752364658376874857724409400927361040775877942003101751891053428880683147924947299449744962637929218977062121445474662248769873597223633848597808502367594132820734037513530089972929972351608610417646892360389631660326535767739794622804417023154443109384352392230279558144859370604243941845416738508298112114082066050256159968687077427137287925328728302002368757168007997653659161964314251139865811035451531343566408396791756876583802208921811344393701319338277495417634074162517078314874036871128502226353731003838780373353099568129554209053710200992443294349505253878049908712486797698629364062321118352981293214775769359500328621194968545615389702171622330673593981220286165114598155023774342177860752912037345400867772159981804085397098070690636601443768342757710736781488073418978469811032706451509391797590219019715681375985795261573951012450579553719443470443951504061856975623996477967670995831578006965964268960124944714096459442204510266133769994215027625620615454220072615349375843506201993213929210415619323059879160909322495638105627891494167901122452083136041089960502060220567945861924128237670285971277607005966644465190211473366135901023700444833629280779017535157132211114768942286537261281786960012653093643406957354715375818040315674414106118137010314218025766613412402601911304186737174865317643435525602162032507866921469782221006653048383601083769825210623149904299228096211289945312463301783319584324611230737252306482688332055565797103805209860254592729827550420297610435962162039838337897030207152970495775097707998359275863820003064241010988572034715803164930791372268244162897007004815501833427901940399570293805763982422752952738512470919840586073756907880170582584891480153965920930017195521762750375566190864036405899000967492891989154153736055189811016321200000010581694841216895145046483946007403529235692723452106394608927411036077407453891730056493925063357471194889380131447321217007605507941185532384281255644791763907548413677244638813765080974540789902569766171297697494460932220186463827491440218443685211043451768992072754934734023084670663321765162085625686143847487318065226784190230651752280189963613679126746296957480390489263434264715379561597851265016524073324615395007897179343184515186325057169510110986970778270422164871907055173065687809000643214543709094851265276613563782451784415902911266519974450208254642116817856681464405930162122732425851222484645147643830840672323426658843094483100378877127072166070074401901740635467670260003621341929526577250877255929088831262882228797171651647708428385978875591874012178261943278536136815484806328711441198237386775486521209895173140671034022161527504940380065836300399223914283822819752428056114910485686970314485542352151884911705921772054387836370182503591777245636012869412420118074616077316129067250302867708065011046873127005562569352803043666881114278498942194603272080814541452332257533829017694991805623236979619674243306353911610692754678551358538870085193848511837034680465441950025585235390626905301487853600705315168087046686115479402848811021586617177152630185805682439371299563077189639538557524152581195235862156307174473431041580264019194156261021123182267136570585951424777436105768899380065494839381762329431460943701766957673864889288423144808488529056918542588103812700902168063455702181240179197820742862546457956011192651215331650284339554811523250006011577092987747033535982059670400816153833459700664324616810135388535394300631930278967737035511023918258559120364471428538590377254047860792649836479402077562252645766238681759108358669165354098282709040326485043020146768777513353874126516391214717083830906155189357157884599606346038195819107703813253190385407152211873141175407206233351354147738804867227870936430819025321547094553287904511781911052204040422022331162743638750408191716288076683666248141210246186789136931526192195917062921587865696877595413319075333774954472971424393340026742292632851716120359036922534173798519528405646394376428754937465962331999545298150724546243215017226652936048552041977179698905654863709690030402803939472309707795862212950074189940943436310856041519561619151531118532470927072777998305743449698115183795629625656958787351663647295450917344278028299683957398271844172538277170639212774081107581962988987373660425122617588313919937032963662094534118353139858465224576592911669805742626829732136008922887773123483346569603025727019510937912014503147259594933247408343201364014156374992791152002966835928317407779509057961449311387473305952888315508138870859368064420761481296684767104937780456120968923999653574132540739617634508450124500048910617362037990612054661782744578853585254747243294995551523002673791514061226053081872608751042591939649152957383621185996512474305353064507845478562865999831211243230847616889991645064335443675952165169132128124233641116447949710172857722301542823448236373901786037174165796980874242349298169523693603393104343011932706630587945241836379432501537577758641219571836259600537301353255508968915333717052211111120085698078210214358061590597001248701801013436328620743781676736068892569084988607011194601476964536027889962570058189941123199626761579112034064570517161883025146003669817883816650499939609698357316299133937854359616619825844764459689746152668411828996932102123900472850740665743449638217773942547828459718790218544104432376398885241551963604054326489428482969590886492584226873970570342430442096522610022755280167050164165420050790623922204986589184893501732987600729819657394689713661133356256850112597155041110116082539079160319466107189434072343736343008227364898605852138844969012880369782321693435268190513401654487701126330346017774584142007422566235648098332882893062324094569883014657446285507762585441905083265018218778267493590919831104056140781708547732792590536539802336669358384552579894284752823398953951406088040882240567510794603931106758756612967174524392807359264456884465899358907165180829143376005885047955492182822897047167523308123721040535592833676964430709418298568569053362189443457086198377268700322132651453189386777221229300016896969719141468524465770268633506369396256686527981950803244371036097025788655631569729504861456892727273328371439349873103790960449365958117055401967403430173901503650656974170521506471906689494355314808434775480832364446780551971359635179804213961794322261195945139947977148398593262080769865876804517436810340845815619095062339207018320899797993705647194691504588843486128313832043078766200222081708878056583063652820515470155570371583078209479490869538566298817179322144232610902550000931467850626059593664425297714405470536862569538635417943714912293128682682247368500387253980077200661446825020046189044305393095228409229146974104302728207966677211173025628769849742943411303923562196956384148473992532606296944164503318932036223996285480997951638121628940239852144067171952763625316888876477262488268150598130589302803019240698429835169331572959265654938977956175918493210270727071528283891660858026947356794136414090987857544588260204748178864918837698844290517912843707639178699954006165691758054461957503032929460927725129986678859256144426456928394195316080905260729409047605614935651547847513091596674167368470936618221058053733007452565325582154147566211980897517692385409464800221551517284023201197072930036035037079292889445887305334971882042695685575256329459879713937415819991445005637309823106300230020443898502973365071846127981324131949602171403503183088990563582728902683939788639539685383036891797177444886805831081143826990609864275997839992374784439219065621172172722573415373348182764469548686995075522961155241415017816758077974171549614546098025406457419100687057008391410299539718715397434874961085699675749018569100739122429799706346130534225356316976375453854138107971879873141327060068085725140133848984043844923150612642428043127965266797215727877050127972544095419814065936112888874762962534208704682015434228216043248779834986628261566364158453433348675208746984107623604024236392729732119560095889314902759237913474038098867410100068027218780068739122551417979939795844011052688352647781652150432909735706191096100946047826329916019774398904621629903718537413588704300052272790227924264500938595599129693570686933900457081153112266318675186471962272673834589078787118500162761553499832331119326493224679437280721679280430195259173306181888900450994371644979308138545986539343133716428607069503240204743985254145772627327134004430053212532209303728819796109628444023542512738739333762311984415283961205464465059025688309796406488990409359489838184177349735045935389141716428075610729746448010365473955508492561534157496310250191199086941034899510597114912554667691187082733110913908794026846486727817648718006964874185669959314281901204957029867675019755022119050995467590918329718370070985094404944129012099472179152088202684287786465024630065778709922078421946323989351113519972560758738985065905243085476922667274257621717365246096784260846869582092848539398759244009623610744636124111913355454509297819307091972452934442982473486110059989878384954736671360599545083836946389672967053046048247682887266251062501273080623289569518682669261830810322965494573245022942358047041130693827455868484529193461956020242812447205054883604915324364048906611996755682986998812169469338102097012152502731182471120681118826538565303077040575653092752579589412321064874210452281021553384216847001035394920696103031482283048476796202819919555809665397012869319377099679271225376131902968553968946524485003729805509623295279540202623583018253171848546114208070446077681069404729473378303899948659410050051129102499873412976432944845753535611197907986027434614912775672614559810000269168535234622895759565113768231474755954778868388134735828340225828210050802309351766749270905818717689659936480974486326832775328784817648914500953766097535094994372950773126035758581603611954963227114687019566322293183589421548244594926286286511893994166885300308127069658649494182987956161314394091747436614674466644690288681952456018794158059293485717124387558495694764797347225473796033196332314667832318556244671590749968805191344551163369318324225876830942560033359606418357717434651607879269352743288026897310297203068368368320171958359762442126640503162026863422746631651320387616269641412819319960412558274851632429121752336141321002079238128785720903239201315589443531332958924505855299110706878606620275154169964982132105658110556557563038995229633877514211780671497604434494995037126989453527660381331450159263113718784468863933229132337662738213638586069701133071601463258156617894033307057370076121404487594440291622909105696934544381563615064473597580753121164993147780556237333283877133569499750311703133272560525385497586161984742865080304661311437136385109032462346034320647278447309449476825044526736348572487649972966658026758931424123618021047264003018328779685161479281228554508631527503377496558041124677910658608152848207006301351944092590677456195610808213670176999603399839490500621724267463378337512112907612375617031776867745845218348486337440442989433982688366611383456970716530728211771937871940420706671458020823371524421383048858278116984139645457967619389725532744567021237349760238874613563403518469838805405210111966472951227971819871849977403170730938993069592279342534050816060110036267538732874225538198613039849250694107754610628758090962308100439529789421942359749139085265156403342890131449942318696927788365893882466142721675530726920406857754560742655253570354713441159584217451394227233268315870138006460585137756583106801986865415916511852847876793326880673189936489749360961079805822882335298036213871373558087229222066752180020622141518364997240830365259560321841433607368420596488862486438623157654740421854249953257749837725977351435502454154940718969467772260424445470747932124250352944133832104947566873653548530713139487126902230904618022945710953295030841254450327539592959121210071924495764344543833187249267851852308126130821236912131775374215745453553708905608529970756464827566519360641625519254897283992864180401245269295797772539359202195830741996417339128762777663386946071083891675607442940058973037860333163582076878258658737779991010459106281268973589964234533573160360944015739634367748282470768627420672331984004231727767930920663041923833119465889263778086277009004219283298153192388549101689629637141539946651571958029056263979944600622676283444134502798560951357243011715006795350435404413202389521123344572216070025126229791870886601363394662019378507931104414559338834183134692518645929369210838720301343679121115487313460712454476937058276925312347946908160639881231320883575787427506191003702215986822251630414036283933034723794577323393369345939396147338487860050333420468708012367757100921059668628657747040942735717602593422601989851620396643575381999387540244742003535289934645690359796082233085687198116574256509174143243122534276302229836463330925606266460388274963572639561697259535757768997640187225599230349014781105293771016268526359146047439583625337262240164394395154842023134041913081142771191170617332293262404574861891530393105715818232792670072933443883135586051819831101291179824024094931732689506107167789897922329387692306287413225813560571463628408854655536071872295345024864364297209835395991803297719678000837277876176258872883528241030466707032914837269957786583413515583777205086648106610934387320125790667408008260429785133433026684725136769422004182950506951833323237173704345233440002459809215032881790470349070030699264400628798859493882055298555614290768242812659363560538651472172373390033125866847231754990510580605553281072203468847056041519927014549353003594003638395590675896228368633051800911931373726062673835499582170045311867586573709592199750814159781884379790409392573036286937597354769732614646532451643535031127895718374896741016514815581005977916951500705978301600004765574643603379833926441050334283328159633847549288257708715068690596782692783408026723106818038164766575756382010817229092896537976437515494799420456759061068310568651716325682792012373732358589504041156581002429440059853373927778160772836574149996083336008168089586602063640130322100018056586452296723133635323779074373964771705038413677731849518920130218995057706046161792117100201669515516034059560422594555310062356405222346325566965064299629637816988831699080071497813913560490104498240652471638137059792505090757247103092579419676463793328572156093783689226238676239526547969752001949987001161082362828358368951222209270240613731110870416786610634470456776246085706847755327666679067199732210663650770552148052984215719799617333079501764305291961797210023199317893420995482726934677685787566768007945088849013367192223321729850379312642841897065724065336360863243237036897308299264636214884109544981000434859490576320269058573971189512235153274398078997591802978036232176534345914099216989854217977450115752289322139418416969126692999892073280778107602708580676686588152923902603007775594082374615166751241975461785151163409626713943402372271322954501589332756893606306019964789903727576759404083267784485303199129182610445859671403782549270871217815841435455760001907260528265222765190279066088902440433975128204837303203956939247065187967875709465856663229549037961103184403338330621841517634095660949800149881532261176419994405228164334935416605070225509241205640001111351283685692509185498136741073802703383230536129025842984669071034425592428569230062954552397514105144675054238433050197977380052456332064327669632441108673926430062323522093714249723957123847970672675344158968251594319368808385735824536227556320486216248089174448700329915136586449740229810228804588962374710442084284466372448031726793792903935650541811404666031607232440967720490734317651199661073626524737589560429162070184769187069932308289831908424796586246005627155674491307082395228472188275518098942692684854279467524806208376024133755905892189491309625160062988437165941586261632634382121383646367470303040646992154333865543675231903477748669324285660858899025679328474639853403127586055718908555124670700085847849685776371409189422671324535001837041308167084221922214901887364276309160969977101664115597848134450552325889291019010555183234624877211849413916121363792266824110595766561505618269833820537263868639959853765185827529009972733048727090648987344299301886246771774937132461425274227942740187616690170587902539813748897525900667079057188644249152919062043089419552588980441735846377905368348313210230387603353379209803115251248114257201432943894994065527345301725123019692860166081728215174568261299152385779563095174800586226370354943827169509807284166096156595958732979394269643986107792955631050358041793485736534112440330443396723007382982864543517796579078473412463015452638856561101984031634302765137779224234751683579275040291774800054387980102509540830508672158477734449909417531814375950632230414748820983196259200372130962811473197516619705532563422052256045635263824630735595710770736966714535674143857023940208205177555771987799277245908265373094485164041217084211820138108645613519199301613892692930061485461292663023919906884671177303474975274388502610263173104371874765590706116639215283010361751458296432286522723122901649978436890104273809250764047532832203597095110927688981197855379479890072585795105793481978980629644569217201893310526629863575238254332952758670506423056443335024402897170666444259034856897333256348745144220801105701133207102761922912153612888898836736026677322711141203923957751806219013913735450440131099115219774440487597936891661848105509775428447539561652845287112508460697190216021898373313251820012285791587859425839696318083446506973088479640145056215288432060993463298733924593713479663421731203638121490593014919970599039435076838349457306842060752995649082464359397892350622513715975947181902847461812012938449123929715808306297485563309572161036829034974740236841018718758780407491724271180324814716464857659481969260744437524776701183396335976943960887699796982193881328852241366504677229201987116332745116331588301150962783738987353643405799830878821699658584281013212921689314617550360347732586593318182205100060802471017317782941512003217702173932200728939725813525252371916857312029977327680240225071997705081369606654296215028062025676144437147385122562127543600620584581111765900601406262861170246485640721576379159279594166064273888798705265020850164452050633902802293715406406794907706555856060091569766528567587115899988565693025731834952282305835684764473467157481689258126704999984106707437437453215733625909090015676955345023029009071393028542890170788907317890760156148398581046558622321418801661742333336351064777026961657024275623334464828792275283218345038762482115306264468971371246683864671899957680797620457631742869011523674244119212067065156090740911215944383756204737423757394135638602673901462859565575107256407346171903560041768339167064495809902927017636201970712894141430930169516947060813515021811676996347350089636199444449022748740369865157061785278742819902308975687686209447024620338706561718365945396981936791721760577997014257189479293366757738338467626888196937581805190339890302073887860534350054841425640874103298667039367595422457337290096570078543634872489524876285297905437452186005328319286473893299290778998875585095003390486505132693572909117672270414769148502905547535299995700169863185140469304978068691224323349324718134124397249711071041500041291808008053674458148950204540821077757723987857970374757353787296008336749728278945432353489179129873287088523560379966785860983581316237398857546894249021954276572087893694791447834649133237944056461046075762878344935362964993144315685450365860292649436013240726530158945203950372169164399053871500613361314643669620599073160639844651012015142821655012726652958215222850023703431671618078498692291452837779441036456931368014772907474047816285224602199305479623596165734478247440567429277309470634375162072144646411568422995319655817555649083492284049491989081470239241385401752525632365556818899244944747703063112394325534677709706345849520732697873443683233117921249573014386546899763282480915765577545767215858881236903074824721382969856705266366978796992103448695183931480057261726652214033365717174881061188005444053129030597454401909030185777207460375027272217714683709728584337787702337133477128558405641860214010888842560643317107091475527060972405085555401636149634568397414149728392575979578471252205749610798315742631727302899487321870048938562984402847800735763362816337701587484972671616692850595269607564344114784111489905000042510523090419122126826401199899420123650624269344779361519847761387149877742285944050401521724250984506058110153603800696978248246935029821086394440048307741067691309734117911893786361257592324830089131913727316535408766059553715814386944394345467341302333062455178194204654769474687199821676725255125187179594044279635221737573102767460481432237231355668936255715477882002954159157963635096693476800685447016493808564053343853735376884104658827857841762838371317194446265669302404780626635796945983484342235578202634276315210544018695356842387311841928451896438069343975237455548752964641138129235137006667828614457279372336154499985427158886975279021814248447737943303062933293224985442618822851739782169092103991736218801626992250186508643533393867036433685224817910630909430162179915789270686938380000990690500073930842818720723694663632389166388409569050994487211377070919380000921956900844437895188338490639900495247593228781312240637248940369342671349055355121101792441659641930000870865080088398467978312341939974532728507143711145043909092916504253580806580230783100770898524771901136572004462367728790488397704258970251688932697752998691400936086065533002522820989978861958789069618711486284051347754759150472432305270844014999293658047757888896185920606667125661862433968180837673885606385926012918269577750297587686818622482566417462816883005150840284235772991388849494413035015096945850669429158297871042011962496095267024706908098307516803288824666592247986722519880524699628986300749231211845237416274810284047324287123990240422067153094827548036166082863435601835853582197782695198050257497247369285217099299297957459919229606028280521607784837214749091159971847860877548144264452122178841942188903543019579377278814900328757703149005299229259665696274759462469717965952616313575977665712505218193666695237150920707896947932399285903643601530381392778860463222182692892853893940211288509452706796999323126276784711732784689006164787754860379256725972163379925330628887191296940834644781090228940675365066920149838472287675694064307067287529757005721025265385899306034715831932210184170743645871125923083500835557678904839156448617818431512246817701050821025006668012999554989226672827103800766889729370220318381997157923799826416018603269106273372049238533753787424329133396395646219617820260026189685504784372480704700137338744359174488677140838010547617141692909735218754879727060319560516817595825656060978766392302671140590270607870831705230098349025381083988687734324934561496998584830261820975476043387532931689157253073926016740934645802359976047398350676891062751941607600927869376519812894752244649578254518051077105416795791944139305917481478294545866606368697784136426607745742026476808346784031583256107074712937498304705581385482032580463891245110550928635325048816114789026818134926810214484915937647053668491350784571572495626673837238657646248596883831469675409532548494806318458303137574751228641649651306034717787291606993253588822826317008756018108722430980309001939310336911276648408873779195156360200465255099132778880535041328011582686189740444795869405005082946044162950298784606368801323179297957345577651027611556794645674986447637648787937694685549071923802753882071710089656905557393786978737514930607429141765486139576906107890445803664802487478077114158613611955813533699049969489070264601940102977620015455839635710644146929440121356212222653555183753273872040335357222112603419604443649725075929451657786779354208044064323605580718356068215210780368526163525874353832022523709279520294227349615037673058550865374227576619495162392506580631703313467723257633760148862378310019441340315271681209195154176611864311936033138175148364026887389943388410179919935139238345998341263265235299469460281855594341832866056716746095065139034255110362895469492129337892608890672466174547877402364376110022710370487395639495569444505783498185402389265960535371367500883217531978096367039465157989323104329987961729023564098715366985810839165092159349923123372447983908951819692055818351166283511843018704334348994040938690011026773369884112802436449071068141726127967246310156980864662853440801749226967105160560150676407848054131086799973916989068137476683559558143433183938524960320920583674474391519023129163267089218748691902959366393143468346780201037519176929552488862403372365329093066688974698160876963513400438657720600045103088850005851467947036324319248899505167671426673950901186844559930428976327273860209787388028712712392727208978296366301349323659853649997082811954575163833251170155598452204238449685516869681470913407971421327807511644228190834030617486640761747757520759321701336747938666629930156849766562170841196597057413543754830037784106567048363644520568588659609314354382469747487176654736475614608323138163921759026405367865870995179878317614766679529487094881446094143899769731631392857376555739275429344563241192375278786314850242048983760034535502950387344894422831417793677467354203276733103547184619177877299446898514063246659289688999632816076303498585286907057100120261651797148454902645266464902461985128948303926231437702756496754533102203692312381185885297046837077264348309970985807400012208086162041680968022616397001105822051857002990417082055677907239627101720480330359543466071013983255688033411118017716519529373916480343626335440519309395464601409129686583694064027868000408000538054107165181666899914396622774424861482826353221534431136285259562555503905145508971839149570780527675640492587430994130637628968699454404218986316133463938896213983664433978415742575545642034862707179198503446270934338084786962871411073712912217120198819436128294240623287799661108707223780938238945784883067220929446947327077827399650800542931000532241974449285716127299056053731126498584468375124584636619965106844812085859819585508811014439121148931390910726389833007642984748145165014504362825217045920756043423067467796915897858109039931727479484714620596937844101172915161708804910745188231112378157210217258660664461513588689318429587256982849198126434302142126282045125141030500558324066776800398390522593212039836041295103982025333192970489947663175253398349297931077107601096799702880331644182879152961919209345197656368501167688278051409151119465685646071606743407719432907638379919002051449684983870768118464832727069704815907572587016321832200362075899294810981832606784711762752359288776566451938944323367768420176358623240314788264932647936569987476909050797268282066536096309655776240539449627415940607575442864658150235523625248314868924983588413064924223174539811068564605686676439927373808624224335953275050910196959122478578899291882180135956303399139988886926011671546110550747880105728652202655894833894229108567622644272889474102292926232561066718988557282555021022634197895526144149381242670557721582906745316783245522359240285996909464521551701025938754703715687967052120189874525849802256028209790050292563623093159035382110174473551754492414154598609887536377718933242696704889537015334633945766374049855090388887652670759815050170141382965168473908402430437296186638973306390009047042695381157605864124817719962325298956766946705630750734138193028332609696858599343101885407240973054988148959779197632521158318233113720198274473262270117195085723362481337776180843837233040523597676564293347982337795008598471037659022536041545027583777200826804896140760695757950602632460733603608416681004133290822259869622837361584388525895219442557951501160281220967907440602855339526609459719606588528719277091958377236640123361984091267971041882803255667955789572749233554321902844893457498970307091412985047126460578933891221765360744595977836776093022197402288311202626728728375648015629294868062755677190222904467489811432276609598061800294585879411067969125706922384701615661850073683478056093742513913159053349831368827900670426391894402517460827455906516409372671939286010641456130309126869705187626707802926551297201260524081216503319522336687495284563679558151454474624595858083017466906148996554135771573395404819237081158114320244431239124491364946992844823668746350787644811164732709878210917739382101883454044863175082303860501600815081355550604760317513044247435773992258432044272886242979224036151469376592757694402588207305625019784484067696866495953965123702091379858720821903216183996629299016041492868618666599970509772049149916075310582944531921410690971616385142916586145412120709052268845237623295954640399024795972640820041446160152703362326749033221865421579501748414592777431467583271316144272739702594472952107981783918846425102661190884203712442527979255565938485618600209348887068820634852454902338274273302378412368457734746055172781799066897062072710508935573676472410100109917956489083361782525140488932047346630594227971759220207599653117311550876955608365783368054954011603278438747774548032534859406668333051013479586860488510450902273274096765284309740092127695118018478559942328456195752553211254584354518545634929635934752876173678190421174058628619683084205814379268375868875329258171329761552256830205662037100453570542996576096255148068993791493963062174700351549449088813075996871755859196711375157436008226566549078588463878416188131435630391267732926903204364928692161842885856549179191353246297957267863047092832787032206129232858357343983896192314927387639852638566070115647354355983789953694096042776337405918678106542679569988623595594894518600088600802881731281688358027169458694081402550212493153650949220488581794199360199356168003808869258864280478520401025422091976111876314584702644611220900624114569545007053705052988464808038044778125785601848092587301296332320408918244209351414297208034807200699811716898749244885085419885958910683040560161370224665599350830462541046374580926652380431656794388119894175600977639656608786321298510346213410918459058439781539529280743369978546792489645837030648890342244829960171725046486484871344320263057526162897140523516277345748753406632002448384851671002986135384337964656170052202473916100920462554689484333026365446352793901843661980285644276193842843022466399444178314240667174736794814443872818840356515366496584887293453863340337437280697029214386828678598487090307888698387341072450336327883936721754059955193306970078817915530092081975149395511714283713973751114893675472074316432517893484345397637141308389213174841397283231435329180668072425538385802017435452017960402516266600983395151378698255555222911767191075450080869992982540634885216042125938963153277460700676548954903172358999048090366412310356512803496863300732320490785805418955567446349132303855884008459632867986856373981672658938841028692585116162165446095397761158049637906722393637529230977287173885141595531140923887975102042813581624961529451707318675883420299345490295077813968156250153635659116838823438229341459188185821277304073530024952806935151051186428525099422797914782385544508694488972644184583935936934065747322857763328207277653680666338862947046240804387980205602656066838734201194518815207854482370226723713674970023472093510442164565636619648104803113093223437635026352584233431510889389248911213275867282800039730816251568684202628983888991105609115999254368210590015882323171647461283748818786676116870710667815072374674367060025569389676146634852707854347627278713240604537328057661587759612013543457380563478181591948289693861617242533075746676365122243026652742410811744287385138270552595547897093377656570134948086935581069746346040756001473440594584529159736879664940688632465695714126677105665304521111312827088559273604944688971666234705334193653751188130962630280670052566597612935592759802414084422644469488246418391136993694154897580827083175838743003441367808926999014997727703788783215478176689033230840715523033467699915345283908850782962177352889686034595674958611143463317580002390365616674790516961767476921058042319305598162540634077448359247645917521049580536718181208713026417778707586853279480456078532578707744144197021264075210405475569088863831713341697342504192151852823769401399567941814860703744779167437347984682389961490829881072831212776375341203806214831869735016602194871725323075723621271975975793251755742901045445029635422746485972889782089056636625344365825541102751712373253506332034279771645555598736914699187537204380596819617939277419467983394372938054684693396459329906780671383586442583046069290934758869144112224576273148530360656823318940740629559518101693430031363117802749304857966086981333594193918612142515926641887248593406364987625050597859884943283862806014572145478041779124722878697219767859409815059018428466898767545039365589086310064990326791383235482472812208761659390062944611692398689037299206207804654341789722144103955567460391945526995674025179968596807707601448979696009603422129455875465366940065576613650032508542620076372196785496777003767935216269797780393288822919324268492279553684087082714758488018031939363295143913257435356810925301257227666898677014766478450035247090144013213264621160536125984455624376471280568674771648560906011550311568589344905183125100414931925887185796624063182084075110570625348860732803997353463226814174637838753440617776455296747642803657903600691262402576512255987898359520647194893502657801225499428491969239547688817056678497903807196735283201020152605247836166815990077264742992222013342927932150545028511562578183826032941125595681535519479140567400722377658337298094440606688986676634068186342273659488794992801850894888056010003785651170830611753662700337197987608757089041469560759525352156380449236414413288509456860443170019531219192565891471286015557080071955640013358136913702343330079207856250964347331225751052948175856254975894704748454794933088367456112978370027891425519300980238824355039869280409063617641943723428140565580521791870615328897360839502720950690746399253868680866181139747079194180627002458695610229660350135767020888574391903880096287046466283046782835291848853908699204236924931329630509580656395108939501250877117925810896625449535605309435341485850780474837246146193662245923866332876564258586309250862389246905297590107601688262162725232525090212882175668579562565766217744720374986507472360048414797536813589583812108747409469528958028838071863609504276390011153962099778493629471260815808744087481433382075849915769267589711860420728288464218248900642525467027083793029378230946577207704311283069668382899622094414507365093700140784429363779043804327215223823969283926007344217906017055956859160054808705346075586547153766330656913597136348175853270907525913585100856675309531883116009895944649398658424962042989188683341640181372768628096109550114828497465590463260053640798158846015125389967796375926843712950776041849282606277359162575222262759580245880893554395570031540165935840580064117573436411547261523575474350740820648667278951566335762433496831700818494908957141532119615288896869142949822773555789146929055241515950918032328067850208562033612978065336404757168928884555241798415935923573130974940171451681908582923787251207550569767871934363098778842565117196780035880721598062977772251283952849874517197932081943315388646448942317864601870631821291855834944277805945570987631828671470361281950219050398051843020741517443511018428799632566663996429619145779838941714442531708906601972681244525168844847121185386970825559490668322264229878761440404975795054115200148759843153433237239180466677143361084868285402674210276415960686033667261919269805449099143919167989106178551379574559113936672264282168993763784938296474802094099109606353755030780963373378544437055311916780271700976143593560328212132440005988418126388115968643903468672237491523013297134688664725906855423666517967103278854644696755494000815136066160136759115234820346422558373097974506841519838691996575951857762270897763836350852806952257813022844856408984243663581092306663693720304343838455344337962719717458877504995906158935854947158516091838250347393109895434837432026376696126764525163558683244409203814241180913406874688470012205796601299150212221671248281670023184426841385066691811389887099531753295446393664812657205621503048372638134210811699617299633138209724963433294434295698393703392875806760333534343839143407345691315706692244945077836160112601091254458760844381340944484851496263447272457116282099426130973793378331232192365502382891754045474917687312444009809467628411102478462104609291337003196066386977545757989033355597224109861888605633580813028862670203665885943719448411019012710341052362032720072728939915822669639558408213443837721923735343610591320773497909712881730909147196891276249243459133656634830597728230314663192687117096347459959003672877851403070007689742150619434395844580879233531801536165939672774626155264909400911803634894597095160458331191060766072211720955594181676686427340084404212611019063065785986736273103732364751752089136762756284904837077585402309324722375118026417960832425262683879960883094257630272663659262340250114220769448628957978727441444687908809471828585294872874450303858209507045474047429639778040211935220761136065344203314552343580766331125839481897019491680099721043601534755792127632314722571817937834840450156794870665400542926029840252847731510831300649125185546050578247172627871180115539342644916020605733363129134102277296147655320031041157143827816792411845251542562942440020558397695167304553652705765986742893189084269244019151247716861494805547476356940399357311383987183838410385264701465201199822685087104180665723726358989732263456954544636285960993741665452655197530489280107061503516803350661593695728696615393244121949463912680672519466542073157672972517314831677611289107655626791321173055412388603633062566396080825103311211585980551599742642538144397812125515397872037530126302653010807000367911081356712423467579147424589762134802473676424852444878644353249243525778818871496080435944183491243209987105500455109194723266279277257596725786745917750816322972590190249589126922056009242238105560633142599411195972887925498857730721773427912190669899109578706090661829125090303007089547333508622065483976472922088951837431537452946658156605516745744561112533268483297150333823845987900818281483481140033231611445947661342686144400960636384125636310196264841685849132488613131683241728794082477298994297663495588791685894555173164722549997889608871748202844753209927018734331496548662132664843937228312908932035522920982881837555841555929444060358280637952552667617203550424688446278634098525609697688433483781207919750371050902394587598009830024208349988158197549001775899719655982873381565555961295738980317537858879277193036018305590776488162153025251681260643741121397615074973851553837130312403157335811461271370393262430391643266622340552699188689668550759031945519803239073775718726768511462571626508452620744595362169998750764825260482543697717816933416577658477658806242190802490978023455318590038330138143076231552926499783227307480813940837153879582562731600375620699914212787796161415096697642127813040707728258028897557152923921813835078160560847845519850137929918402636120406896394334216256633371747893819309185001050270701535295450277581209902693938213619933180655799022276026946276798325463568966234882525681343462850186111508158640416850781431729923859647565265614121916357598358623826203732434762504845763245940559780351061740552768121950568602290646193305745001062278731993675658621888222461838764135533942973690718505587712191471382544541101666098956151951000646459628035631386506583897673158761133505787427328084818803231653446968279151765097692413084256057227263407441612212051129318778748008057580561413047142862414915260148042523173493030587253422524828410605802440830818209291069661461471498645091778046621700853472316384883109673736285172113449072455976683614378784968462818460088554010993438972815357286035099283990108487999444091234709048840538709279754516876100562355645007303564390568870422096010086278867041175618689893194391186994453773696209534480151858802259634648812256975110193374312185786822042919823846238810990646230586797850605688794633079685332401265138342885946263537030115849767406859981000871712353450823173074524578004586781881932283297663880101544398300862549068009993016690608853037507312933515166359681947050375230049066491733343942509669136236920066664463240628755475003330760995308549001272743228307818113676917901697836290402337182979352848291741261834531529023979912486815966701980405061193221226356060163626011723651648827406404278762772946869600863588974420895007968799968374673970655546953837901243651033896288420939732523163701360455534997507651671464643265081627640013439381473895177638852938317639476201621790392094109255060978120048118789909834595218093426807813207695871866841237758755154725037372276136283102456678189855365905798566507852539897805864494366719330296873718567464064404666409381330680142947511334569948064117252638125012216383799850028172185944689057542889433969597134587936211789934410811360977504183346808136892490496925347797328553336174298265027566709570267971942934946523665435640759911263829849970095980467505304287242141770919460123274959885283508077944445510186446592597163261129857554062500171009467494570113793486372059970021304334830956403356560233044379582885958147834613972688463317821371818982567632324222246559639654440751189735090338040925487578198680145200178261665010846930888726874490937269796327949320042740863701428813737402623533598294694389840271451392952651935883994331423094711191598084737507917948094318362101312032454195552848087723990856736800897864851837977817956166919056564759513980530106886120626720380285841835863567853889614049672888986562989680363592783639149364671374137817681079959915205479430492341434017404838659100068263204749983463655341011309692019887004201826606564587467922773795171444225014976659050953219411378398804238332102362410352374622204157172284726150358588407717513580960639438370137032576632747977587923063033653445760021100004901307094726395921654494188866551224349029153935818604526650399611123918408084134861805571018480072629323988660544071655498360746850911370376005387848674221467811456832941111955128171485932880901573776357798052765731270670504730474269666539506851484899120273815587460237361294025760151067842923402932225622552746473997340125859258613334163514425157948210519090264018886722765281842982991723814107867212598730938775059135589511443668687550851230541308906432583298871261722819732044865563248790067239991603508639482781058343412265382355286053997817902297485976581624225571330630151645895907516099399068736405954941081103198847848138907078990490457151164686910159721503162094797401931433570300029253840615528658849568363985585438511339814361252584775325327405122449171345309290397858355542557735370517953036030452040856194918930687909158819975922252821859867179610997377595655843258106228353961300582939533097972389509746426068724786097266701391571813714211171362387058650618144222618397899117518065236596628026166945388771665519258426523315209998309872387929648466614581988630761331207369672898198775178034910818448553151440117966545466609231820933762235814171700620750287151571470597629773897747124015559577924220633209216196751935690484275520886379256093177712401163423943380905398613649241238126214076137150982197659112781498018631768313382888390845887206305457898079318044254849300051986659385007238102071577314935628753966343158544577613946807423466892823000391554232987611098857140089006809574757248425136166861675300831321235614674164111355624117938828384011372945307615024369107159084126624629280525107233421838399590765113601036265268792867824928685507604752401855924827376826730510019617789714347676380861091433342949037708983491755648575398363983325763343678852758606133582037769343596661435252918639274054836332249055803373674810528490641623725606506128774007398013967147345074362201813941934295336592194510273973105178394975989572667701727504897574253361250542663945760928018050932661880543774224299697074656461934140177243739356684100626267990040707578598190771842020354542221026556813868472577105942605322393496775644265260392641675156109264224688697820406155651521985449954577227043832355646379720417222066059889321302796518776976023486823956179134837446164165507261055124835711613652361488249793339012765005450642908507615469446853533832842050644796434897393774042509318334386276534302943452271941986548029962283196257911969125604804266949223018285811705777164792966087140088660926907100989344584210193311777574953011462023299261550454031771327370426222988889481175023306973125577201372268195025736652998620019489058752502603677256898148405252312034203254651930945198118132505157252317074811386173807229957313029074023783977418549443038138484164353359684965806126900885580782448671739654942070678251466269700300601463132097956952342498123708444737478163125744670505560684138449184922911011285357831537322701586194229718354948899670730044482278940336409485138778629478262239009959675829119447461056566625732508373110020241520910984325304697910560139111353709551229248550649667534037101988072354027740566230447137335823544072579594981671553505097488821499652168682739516241727142979613333255786214830673525870077242626531325287358581636221394261634154996195948996346657541286520751898264490060829613440176944441846562649034799051126807603484374854048682522285463149076712376180493716524945822593135045716630025664594268171795680016099635726906034562116697381975982433390790814271427570463028384982816702709430476421307149281988673836947078685521559760016741247718993559931242139092215595214674831222583184390663369514124564495569983505477196151906841830037921284849044071801020010097418114539475200497978726233219955590479498269044967206207497000916861712469520623383009219403444041762793734907685656111576165089586309812975500482263036946684413596177286030080233840543844555744326644433412033865910856305617541950793736377905323271803339994646905715399134977758381336090890162157555058558838204599138802088045661340768680236959084203303443462565804193243828660734224851009241523409889579305620170744252935375384987002239616431064508651803631940062044676693443615157028172190393361815980678770620618165236038292917120917862130778548959010605779727376552364981419093264910803990315562963949737318389723975995065181672401440975416775240799087398837808820602960500032603343528805391924799076317623971958362338166383103834876263348748164757529243358844149568246856715939886560617657735174421487831750115689342247928537520442789283418617836858083784582543630904434887312229475731736336157091074088446455728019281536983392705807064343971596294217447929541429662281845731703434295382091273106664180482341987666194034844779151610734121139830150372240646953952696282212985417531845850361174929793079775840895887321903658050324492275458442005996372099880409486441439447905682156892138024092923762984349119334159093359807073896305594697762795417562797623540765907047249497394219860156353566958927178642211052237684807593864257423697502988181386262239832870919535272842332129630734761137538713687030785154531590605499804400706657981283965453960558427427710309482882818795194901058619222723034348076830770309696030731809097818111450532241134033914589905609859608641967755148768644997671457899656315951939024286396485024541642271918985023931367360224320933321350718749746096501941006835201341443774076330383655619173161185741753979206758867024209359676570902241115058230993521821896433162647206094481421431414375241364295938151096771467865191393207305510712728180938300930870994591834470751145414300029477317005085825100562751156900252511597258030414270762960581834471658635755456579770655601367191580009364077824689962559355904593308730782251939738022785268021394778034450490041295939883512117437126765296160974749687782741759679788171627596622220653351646044284994526204125876934247533480237663663823793221184245080640472271675109168775237344268272488449051373920511977991481060365745346442572440042198336783861264182210331282977544942709261277770074873423300270229449119138215668232566961031533912055365696497144266976346127386920730342762065632924785375560158183248122527452588081764347225419370535684485111012571711397836823359043272137776273537235187358455946978468267298476350509067477231580063920218605323597084919582441748721929475153679039278901609305959239131206276461928345687187255178393588485309584556962656021549198011745815443583283734691573433477533226213712090166280941577244936823802992312792997448189876001319968487468114915578565827199868074947734099378868514636089205154378714490189921081167079863704256783731026660348632433319754731497696440281841973866723130396390533331254657757266624565065164198058692807397799932006520636671781954359585326160618853329383644371690180921532580321350950885466893513584544034483009113821899165853684663521816526572800912893895674460498085371659886084000955520383947760682837950345224045125071136677244580188744078471513338216600231784873466143414538891491685126180125202187665857271086913928897117644060897609158941872534991890070863894422843879275266973385200965549695125335731674416241546698408785551735384577347946041851918257550810553985489641751324096339930738679726330782965422321813710740081411048043151461831608243801893626862973402459224743270619032594452682142225910402890181851740674219349957555677906994546966806687027854568257719030569367048929233314186353727522499910825779289157539729879071358179755264816493803686036330391439827541545716514337877997385389926135340513489221152898724941768607259136222509870387944934972195651955664982971941356434706550356940961173029495512368348440221842475573273822403526946558039566772771539039194363462410870626313830041232943557779811216845993405719215603889773626578809783999935979175789225352208720914282863483594496389875542539665904465901972389168433151575761209222344852159424725118098721633988046127978790644452759247618466129465901005229698495031767342066767075938176794455292337462220516524068934157840488523903997044399227519272311394710510424014317426959345845707497354153308320975499951628353266738635956538862801480094932281277222507617905674228800340800939115972620990604560079983758841670857760045322379537937232254016845086703584453208163650388248310796561573732874613708134641710819506517818438985929922633588082285916639881507784993659461509995942266324594783326524563070002829643501488956789431999846414595578415379109507354893275276949753942487420665396944041004063858928110861995692729515264132119192478264708454597810163095324674539766878445342803526907082234151545656088969993951588471951455713708990686134700505122469390628172381758402835526723810649500617112408994138892932334600460324114290310517458269083487681062652554027415357427535744739542316549542681816447119256072723672907835423994511552879476663697808610426613381422410193400697079619562563886635573422383800508303898423206136260427962072627645830236305040692389829579891448229647466263251479538145782073681990925906368491881158291408965520568078714218611072049896859031402222783025998298466259575513063420736610655144948959676058321921649183747953703699363651851157819492121086003569865081692741455083171723940620126785060379900753650069423956865766515641925257388455705980080941307521633654462349157287227894143206665278800466177241872880283322865257927515008876965240412530316473177055341371759541967190777596877223320733206236697348290048544891758850389671878787469363350508669551105521777774629874867328745724422337352643963036262416825677644284300793431916102005424198088459894355282469264835875910730968476580979194100019558899341179608065198470449873932222019300742442703000875674296413915119298142221630582305853754274309032199242637156687732125250201973788812736011976222948208064851023055723650413352436810056394232619382203006309065380425077378054440347145323038573731357627248744457186468969081211594414025258876782719895537491139890564005518175062499141243702335381176168947104442734976511413619268831723597748722009567974699737870837790834674248979047040794297701320216370211281305657477328701010169176840475829437332576238868498182717784602004263996195311772232240804204742483413578061595801100533976681787600904385361553462270480261326617498432099670721637368787413547249155271739266285276716551312050039257284984402312359010466576227560004143309440356655774751110423966049983197130464153568462843765577460601227728074779740625517190565142254433824044977774139613772566516916895558550483758924317407377514921008526589952550749188301029796570345294457221780579759820607570807853274766592197716666687985886166623177129330865450242666093595988382540454949267366508122630797693929023008476732193609931578757633229863698090942603815758299170042535706957930183378100769133125715975676052739657894818336462361568631728938957058118876000078201366386210473749402653035801126117409356337408282388488093060365069854676976442989616825522674689202228048208322192176586426419844596847159501156377287510651003227164195910333212343349367348739093702072069037959811703447543724552662459871442051006315114614168029233714197747813754969669264357901974329235777113721408057741020738184040515552063960361811140028702609054828390109305197291512903371406680424134650571347022640261135643083264559219204654537877089131859411764640637607786865856360574410884165914150869712781093075144780790764232903787038611403356041259250754460529532271993620611083590854621681089648297016086807631001119720823798373184722904381301692998761369126956002453504295565304930218410987184899383868028846400086322111684317343945420086210779689894051924281833057684159245628770265968908273919176123630205961090119266905708157560791608770786845295527093947719019272231886502831173267063436503511486973609213609492556092031881096037669270803225887784048457116185414742587688181039595780039009617339835352400385207975553017575933583476298876172967465212194990284984832593632061145636766406252356394645873052719895079120134063129297054771133606392343394296997483241524404440339089433118825074556392823875457286980531716268090796018980628139864985718239244192158655446947246597768972325280390693034818422807747573914624878185121409444322195346334597421485201052751537298810870365820569713569149554483601763738620645887519030354643790096000442918432624398655785963278124014957721116696076717122071807604194271913523725797766555130003812440620814149887840157500514069647852566877257591822554967901692853467714538605522672334356895099165511694393764509867297430100808354123075636955935091500265890770190296759278786489280047640027771167939233129276093502074062348502790994370104227551411489091508599821252018227728306431575867153041635746504295947459380990402889258192546251488248045182594337179011755782296431766954598572506707367802697168845137805999052106549192413175988940007158040837308408262839588519148664253961121773832587682561420134818463425467619355706967895659094058254334898145704837781186745791243845883911549197149448729387659838639359068534553762151071175530399241693113247066754289558641354011762319343991145416505933371436712069013174960079183456001777916510458416527050747963717139117060707338696503359936573859079884020883493231120441753274321762029045706325482105369598917956492892877788648362625727323077823454002257140460210005181178419018208494338733352776082528060821221615024191595198854248499426636876054073376594194313493585102405334489957585985753365803790106314363621561138327586334782592777104004283263850576330324861657055969155658534281139368357821194484082636063636413087660150784597673969978216938327100814463919026693354617374482956821944090493152175204021508263009629971635986505936442822587647444148159955136738911517628657707697393072788181067076145891062148425499426130172441595407494992550862386024685610477467555991937787062831146989628358641511841263655632596756791062502508064938093858198811051280959074147448059001229845245639724686163455534233964046523511934309904688505240753045679558980239025579698924528683045446318982805294531590313123440054508962405535248527866274095341103931559538570213720005201856681205898962940023606800399527923602335429345321824993446598625881521016481176008598178707629871863369428924359313771133555663332549819420869694340711568505679156916847218097076200856100817987314726027599765434622446528301634255844320212968468846515442711009643636972678369073323453500104199409121933822364101187372311936941107520087401558234954747319447264322122514334521698378909202467731905508763698175240488604950058268937964567718158801455284992879467236009241727467560628238374056425191095045802742386366800101258074147177619646166922486167588779654254011749801605478747132664832299740956773258191870679890897337065404214632519777354928358640705335943082998069897083942453037044932769081088920219314853573786649802595036058984680185127636214644603266482764930373094152370549730726855257694028402013604262893214640035294816740107665622708909172146266513731354160000986110810938914160994188988550157028456336317643043580723841502608876461744340084069906891223609795467009642776686924394754636648676582248769778439253381491812203482368121313635676265570702925565204348428181271137273727551399187997921720440799106567763200927878546536419854766681965160488190422288516809203502211739175056169591013500060118106700456150115126263901135725088691306589155815708492331842903154736585807777572942647897965924896231345130059953394482362413414663674907288100817041273164785671944343614060492024815636478064110720163227900090201016417713555015532410096135096367848253376747086188991751010842418261042335406636340996865944575689088334524461532454255434421220286869519475666372855332454815766134099438144194142038763638387188673401972063868271783446777376766483127488445606834403624590266070952895706363388925195978085208312538040013299888981422888243964554446637050850847980567122937398001453465299642616456720972106854839254500908304084295865032239990211338088290270399033127160107099553133330764368868948864159528701203183101420893929387631939696398134557520165641215380724857426027425239155877560314535948083880104121057710526253029622701735997753004610069016612959453855676203017901227305886676780061077518215830826551810164645325398341424049736813634810870337350732283926985325127353126737519801812133487463920454818199073736766208576470782228943704056829966558983082488883961848292464188242954715253858608304950430503420803927407418500551022459618894507190109469845398152078604926882536200503351797226229124850059967971036518766513282318397475529711806992751775052001607151596552395221502292578205347454740878867254052524493901905274610685212938652623521810495011623037746032052243492880737570703835931730372425616083786582177844469373890550379109833725926820219782334514006300370086506259876875279404827152523392643826216596290369158820120588168730540631855560832287081976622741590737167001153276509771190708845645269995815025066409036726124554725090165652818802571125556644177801199093347085417123305775166903596654228438455601664913077035695182802871306628739404718807692078367182306240166248894624591352434220674875659161885208472733586220277023112225107997285029709992645161990551032001573847220573621432357207367338084161863621199776369014399533940112590863154701163381758481314971378248842525397847563748302073556762197877446580996965790583787704406901373109212500332860015566247860128882692148774308121878637198658188463584883727616169963027038360854703256647237628327356545712016390733687741840750974176388940939564499023201911568485889700776848379130118990153550375376126285263752795643238715510663167084454161436435538484650979366840229206155592223856750533225034982374342239449055706943528664418322526587492693544408743126115307076854505753472209371640283389412520897191416550585226151848261395462760255544134195878363422808904525664610885353072274203479001302545772211334974016916110483065135271086093341195298842352041353580452570704538896506568943664895026584216272625318259380231003591138576977025089459187369850572210916728610171026359530314199832107109700861794850129764372799005206393863954088864531219420723851017343755185908917316487532423676883679453470459645786534733449445960710598238766931436554153208667912026690754122248992255519819534689522634109462153605996925769118777678063528034096946591602967081720649141701707322348993614573794560015928118816351683533467848861355432249589123635243719232971817168309502836413901449389609950979875322507467375463887174148075123372577574176559558464634200072356861733073158764522285136808735452575231138815759670140188429269390651372612355726847815045269075002401232324919795647094653564933772183515420677459686332011158773203378348599837951127418939912255201901371838710293247396108821226843665972676168885824193522807874081234280021907857407082377995390075925808295758299816902030168419568988467532577201365165719675931360686578568912689650217419259646659434136231696444131199005995097268258276367329503672823524024121223071457463858589532675719145185208296348478122036879699363642254454255363159327737774922884794822955591703161424833703080544376157452510615661158488135092426055889580447272315236265840089605451379410892297555901141384743887781009815115658584149488981239612703838278938818780014806061024840588295109201277255060799301575581234542903597592250457562168193580083743317001276884555572341872092706798261668633533044005364671514412854356560960448094751788398391890784892208082590969606742234850112961677841317540454328045416514199604110165396282348944389119916761823562889571494162786678581589413931405513962404570710828979538175279124568931955297064697347553975150716752333685745202331439626347465137660862349464596259933646788242850837782311813840614141536092207088338099623739878783640273085502929875107390030742224953167236805585393889136238693503982809257266631557617334044474050519095149095362810291832820153784111207929593491868530903263151834270983841842018576666058407316676264989012635273792669458954081502135333061646889980925244350376462297980262949540109829920849977807313043186652641248086311418282803952355717541073654066626988403515043118848358687354342854907492206539897775491797644305047955829193654802351315976681047089689182138544024862447257834719582848576038583440551835291956275698365013336548602614436932772744852572494355783027155203883315060868780427813959366789325144651039236872261153116586138432615524164876037149827128852898337667637998349698233991302970787790795038888642547040553332397656274540179435681481357661948510830001637044806173249526823705941489541564421183246806788830137101105016110219132300314778293803249425604054075330805621571554631894258067176021048002035581217778017015142001944345931753894506327751526309124886751957301181867218122521818670848813819837664980533314179174156545260667355251864867708644438592737451298600889908364574951022695701642047553464932490487732805954621704121979892750083206790438181733780901460602084082232186126683242272834692783466772137790729620384759387430143732430516705409755942431329686409483769059188882644874291873895496415423108928434069183171557175096701894589772098535752171185850373444819213647721909317382090752792409033754964046566625978433251982033534779344874718645663935803669772257668134344301425320661549874766530412157707628655772888103450115963338317225006477430022295268010912890217091729615016693046404900673436517926662771445469272113847426125996454153798718677502918390040813798351372023027567590938969947537604263218046429909354126115915351729277290419390016238280486232144944077038554545864433378109908305308277048707255252845749251770576673453230024929969387725928604889715485764088913757883198417679164393178630020473189754800839516844483428066750931354161496842130203201989281294673336499141369668176278273893240942944119416205512016652064045062953886750117479656178619723858945812043781184491946438426228064432353548476234059234812435875513106616825326454187382453810565727279140505362862235622158410203097275694937658112542971937145417873616818216274616821580134898129762476306413530009053409690894951621209374929341241802005648107126531938002822229413828322439651443821254067653724704302323488824512313846015110721078873326386624437323506613933396800476355152806666701377202404875562812911496712784624551800443015435189747886060140855299067397919282071092638381016709916475797582697175723752307704756776689235550237286045889722488201393763593042715300730578181748757208509404157874431752953862817050060659334082475021505358587224514823698679155151004537790784392237769270209557335004409002633480573842332813387261786142451171571798627622019727912391814445918803713521993347083968978325232576627246286729912450417844809911327275937168999810263875559952772266061680857241576213815140034840822515810490160957792586154912189538550448792311483988292365832499139727965197108699858100848389393771947131322146344297709243378266905945835502906677844522014871378512994383147477810655784302789547673682392108251226945859434612585941873843904748276971744169560071149954065584854867281762530233026150895882018398652592917337549570789903299690437855149218776688794212510096150554617510852502494087098506817680471072347413094467487121556983289905009386904936828991356634466686458855788588284074840341901835044956952887609310467161161302601353377497854745497794213432811780351633208672712439364810586217834668423818477161022674053833539816279335286974692287922736049419215309548961813206247797937926730076217478800502627224000981518918212495080967641207986590697826891372710255859683780437131214635457385491981010701558114097737529454665087485031033186692046652922629820081752158223917638250211791131082111633360328349098848419097412759320323331171779926926342756909615136133876092258279372118846995594266266109064229945350350049501709356260384719529575821758264386899599312507788808233666132176562255884657600360408175579028835052491882853019913110325907046658261917334107372570535753840181815020602734722014002734039667445998898878609010546286252620190556384790899636115058482643611600212399839282282878939201967803243645239579564550739247910763269676760588381879502451311181928236596665283832268686833782528962590123153159380758491054932627627249661853979078371208077583526475600367630971431811414985290098141800511069421062624204550676269913509294319409188437497141181256253626931851841083608308825967424821758019435661260843762569323648190066504822222267410924123747702617706603714441897561903379404666956303612477808690991433131964363241676267366220742830387947486981497754341543014155122303309732004293705713429214085843727946860606965175755045878129309785583969407549569004500821525079319258634206283812102879654263565303825475483409692862410928383495502649376109676141992353136535291824119049880883584922927438857403693851106684397222181489796887358437376183276743829781659730627738471534474296441961025199983148551618619139950420602419706799462150593929239402541184739227707293027514905185611451754476110094021166500357056560448632462439438156480369968093904208158321723491116323480435815267886965907960818117084866674277419741889576078253109471255910797706101742417421908330466206086934023096311918696322227200945746658513762155017994939798118438452936886897473446320815897177120201550081670417865229492876728224386285067602898550285334814333885430865306135590083822377105667391919960243660950349455564671906675811546198186217906097679625134415592768925050740191544448684757847890885103721930410268894248284797034968218297864676787976633596354056825562951622623425539353329615064769454025417520730510849487475548478370435468097686238540003533324437675605922152028638774586518646824788777621471897145783664438377216777757456845500195772156112343838488142779707588194905916769326088517446699549900354791321076621130398512251574830424443025885360193130062687320386929641792438718443056420398958237423986034501111816045455851697586569747872308483021441930855440607209931660009219551814070098573947190534092293361647565202948125097062609096164276602259001544522866996881685834067022834514492331909991070771351844588980338825913854018429105353503999825224668967518524452172143781098231434810727185666475844958948447615825344060685574570603369949530029603229872341997420077964042654168919747373629460675088773992040886383008064682017837866543628461638960885712066496078353269848487334902346328583261515206679206277132350734873616869651286370168730625847611089371270525091676385185128925690175579501656507782361993657570813410175629319153135906023613030888007319546519281674813555076955831733321220114561661765074845650260783729323058881435554250089724705177349252459783700764110052327007245958976984957344677141152198003036431975647131369498288707589116166905914649383250670924884987546950859231067322249889458751447658128106339026792085203317956093466280187390625548926493636055881735684429479803430559868088464930990125996727366374402331093058582802370462693979514340030599161947167902363757525713162102903438765952484361314021784903738281066317093383138970282572602661874497990465428333158592872676739747377660929541832540722807792838185002374889031985197152494996508084449191272650988630334673494275878803046581357494014399426801206325903351537879750430626804421002060679194511260847633794814442685800556767695742282828247234879736246555307296657254941811575378860550266984587164031276553585643988657340708107482288886676035265937871935151501758022593117254860642126220799311881879307679107766229763730632789689485500336235811003220637479905075679503775618989587182093171009034586566311579446267187832460512838351741774050609207526149298468418980788972816418471835194434501964148620881919097115379718197274893616254704470040098437205359110822038903533911096539324013212503956705085850648858457644458450042366452297919156702753811097426112050675616077162919178560210899785064996164110901605059154522113675329516772480296190210615172844841953938316291335217473394063502158567054269436866740705629707200972260631913815872862606957922901806793369047488747161294795537995086931339397209324995583903083929362613800642979052794681434028824399708376947669887177960255100557566603518226383267514432463740127791011824384094548069614371227293945454526847349693714122071996005482062383397481153150439976818114659125570362712913099418472763148753779322429535839053859413458081118389567098008581123105680889120338588307293153553732718941391999179076381334113807512314875368479462629471477397720563365870982315488439455332233812050534050436024108686952205483526482263461872346315812535723602557425866007400658737319620118818285234419513228253990473984981800504133734926796075348734755710523979774631689828863206908053453521044562816394745091366050490697505285814202132525901665625093222239371103880560849994468854397827657661286638983236421802986206831136498688348874429793585041195213111103353672507630196417707270773316347159041185336833010007679800963655346615644455560415980586930210510797520476347464832142456545332675866550319066870197906728864919598136138445193216779367303925143903674776864180604447647386006662214347768312390839968845017136926963181647107276570028749795007054149287653900634498664621872013805982753159339669090278036431939098921699811523874894906093254158569531515011317383363477682876757772897355277765869767722800785024249372934216952930703153927317424514256237211627118064384669813122285328612079253069103221094103915625801022603995925040643591383518984997810859068508270907721915778229197581951523304712689093325323336895961058600156582717614979130705343933890796364908820133778749442032172109929522674841670790073826809818287067811444749462555996241002233723507095840211892480912070117219725719669979084020148724713607707594667633133048598272790451032428849466892127271915884438259452310448417129890375828832313056367868420931867534591446063189157435276040364798300927244972611584077983054241464111075587768254454575687813099169394396841663993098038142211232807687137591104186195926111941044120264365651393536229607806820699000503817827622335271557662664607065762436870689926375394371307892396414573579466364873601220624293304825786292420441741107859823018807377753184714512034837483593547797297026607605953277401534768002350439937218994295025422797400395747881469255749431222665655095539358172329213572462962460521125935184637095149457653083539407272886424847012264802057675666793303270855122319567884595080106422310999941678593051200108731597696459614009688263230730455524814100826080690293786087771993647098571853117197740322254708597068896544957746433444308522294219372709898635410787813702132885267935815623606336231514728382687395403790237913386116500848033302795429849617405913176546599867504803569742702661599426486895851897812736810668999879099409039048197640317265380791210964897074338962541370721810635311413719312419002537800671031581349208327415383393997716747602094398084273993167878836948334936851022439345441309009791881368514729908461473019894729752973923177032643578766203337361141464726353551563362067068595448798528810966306400622439225967415578553264464557534013111377719993889124838757704314010934704090757970979853100065408386919829079257431931027702808824732680148859997217241648188549656194571946980318004021969537968193360448216954243155809544052422402452220355454304799751579566178218441513006618330097795207964703844436535337329742585408262227285375922734037996037573871380767470381894014080773646274624051202459664786928408805239491437843928445924164630517885296794058165854123384216818921228936859383807745094148128829155014194077280016261638818152151122107856964011333958659165700417751864551508156972586067480185075934066675401272901613280244034427493883860862275466640594446505311652845001311617253907106461342386473811200336034481926378035881877049324239656317877771561074532926583231390962727178553189074283158487547570584783569267200291779751554317953712187739393787488584571303930895545566104302034353688235575753978581662659164144775530842544158950277374657909471417973313572802902348692245354393358657134542469178291164937024544178760447802398050195621151526886811146450470600168301457284572996502788623776031032857080257272904061518313159859895314935113071825342339834669958819308310004313286769722972577282391694239257110057912438372038100351602214834827818300841953960929063750005527624501245147329364241026122542913610396043445609933058203341219908730992735148604166869422731275258206456240322053383718827372953136088510905076647426512137571832829645548923818082371342450100241596263167744980449508307916954205652720925165692348769158369721843121493630308301535635255853191019540599450479794487439014408210987539107387391409075938686081751210499711393205329136819248721608516695588687998942524854432074892433079393978418908060747278738745408344717482457506785653959355436516212829660940027903340474573760056372588940628704431960869456223791910520052812930432655487396661811605589757654582423515441890808305876232405725070379823083030729802935177800837707568185591519570933869722644980949767824939837309756541109405188565619307872558494590505350134076780847471277946655518506184319026264868669590977357943564961987959099056020417123431899048920163918836037745825055227750807841994608159650708378775078792131670028633330758530133364850111483290125912599760292841470002924821941155282158871828109644224513499614992382536045403227911423198858417213384086029193440051642427947754740876161528080509129692722377371893280318939186187216571163413829388226530183518338477095736495964078101879841752875436035133221537547993843523510244147614315061113919163190679951154491346847235016579277878851733301701702403312352406219225727702561343198720719504448228741759508612355561826019458076871956184151417470885836594234850882945327398956084148591097346503607734227458867200841818415351065953612993474666877529911512952293027049831996140620076210329685599642463168232428141780183790252220411792337356128909146996771440271038163184746173279138186286800007804925704740458686917358994142785178532946540634042516105018113783527960217575121730309740850765940174366625878386992733076117187369680074240844650021282437788390883793888077636501220434715691788924125085517128361909614816402028142061383956652736401766979947543364472103176159292368165205534738107659984198373648645005066258465189772496990670301478317212272505504810871037751405554811670707402634836112696771844388369313545567461012533839244912754389541898625766310917558504015553237786864955031598947498013871576949098018475962384527904210393034167391651883369745729489318394049893885997512758452840024865056269410700658660208743084896551381468631425461417267795647496830351670069429740671717021936124503972134133364412049112652180298084230475601425289471031509221622874525001077463538313709787932329358620276772959567080912999384787652466910856192529023961353016003710646432155930213597084056547059201929454945583348937038880166928800946281571167579042915950104102932154740756601253951215683280770856613590253329923011121316020218963835653219190923875274072813997321238809223218858387947674944120454889450214527545723415387628931448850507209635938654292764772253930534369538417175018664178356531121398219583934563131014472449711321206356650126538509689230840748589516440767429188283402091577818762501839619189476527307619072550400146549931021655995947510284694475479272695786098829967481810833033812083712245902566461226506407406148009443990103373294839538723894185255939454428365515140536673119638174149731132080693303615953945150693234710979063624355353641264302401634600877502407605291591651194689007810901591888159598590940455523960909445873818887902916297508327908466664386561003710351288297962980912360696058185186845934063909168834831223647717698949259503410182939454964737972189096945066047981257176820699365600546827506426533407851438975204537763340030676202259767411960340160633607969394877200049497362814119602915125070722313339376655426758963419953708540798500549604359398324715699688363541620813394834207792683351144138631234401840831404378019830781601578110066558881202010729651316811033548804820051887961064452958652048252204846584528613935757047793728324778725479232354551842728978271550501723933313608250077405811587554777974713036231668605573566706335787076530180472594962001295333566271272075233173045676600561897081240313285235401442780766959858927935883958965982741809896762713262733005841370552880750747538632782614649440960812290017715180492512458631446876409635099611383797521182113912132662168088540779561519208302323089189036072883255709197855324177397866910403523741683873467079802637009614753961456901064479459175274679890052252722096215170729327572622412481948581920501596385738519527450537595001352539270589942562972337982764908027945352394117299890105110653248088280948078525763321564068364655122183439630499270557630906389588281868921191427406934263515292900339856300401319570359162367027111010222463398575790604592823787653054664671703965641485007302817170127502186928734452765098163073600728719137301590804529524798152296364901668038016444290149653687244628058614748236667094545621173735484272064199974278520446154413069121007141276221656796003275731592973178462006727729781348638579957032260683496928093879606777090682371424834980701435432905018002483608587796976300522918225457001141043964537851697939797487544510288432201099099038211213759251146143127605496449261733996779480032777009582316124590622779130160940705127445009625718495086532045998437043824272301074458752392858124183159644947587063343773102322290544514105175142151717726446298408185638077639002325737334514045503478511770625347998903225647857597925975406859686553641670521267395845901486390728686310234940657754517197477200375193008190659654259646420854562520099991884755219794690123537644982879913782236971800320356126210978888689992914927896373345976275163721183680546001461319220902941847376907966191764649568996529740065290281650456113924878179909191660262732247227236283493811636170413126028326459195081627799550862839192140278478611207381155972913959016131702916317109576992878563031395344809248349893052831340998036634743663184073509056777717736011276640234985582631933451570794310208927450682357165788754478009350841489384002482749941811177690566775465349064337798197688939380288487216886485720222635266511246674972047981065126587119089981474983165970611953215956448366893480432768294550187961519514971932062885823769062701196033758230485140165066531252293397589535914635606444444351544620024551653870556255357060951199130179243342568549652477325072409678147052600513151485369117417551872990874365450015028122720909314266925557561576706106512643067148294100966916652512276668150933782102701890790139264242791018830148784892311839264687473151635259790173443106135192319343693290248336785069384671131584527189706311769026774145852616173152965341788705363781919076432906338100849672774595208755292553210471716749882810849640557046649363686400223099778860279167430641168440719065812523514300422992704629989479400485393811373022496168322603185366421543941622990728604651334168866053309794807637526186878230828784124572432965287335038956545108847543655358254828538604624234596582868218130668720112734159611847522719685161047449555296886887483172131370007803453741884116031844070800997167094443747581196195784253976971706759625566069648674125252371927121078220929656440887752198164646040725859273639452514730861440896923731239096460735373960780365437197874643735766803090272131996248635593210822220075768186671581033461941260517345611423128602475673543991357148264039633501642200478727370778727823537597507400746412663282187143038463365753451988072001048421240710680590492761161956251810250173692748532089752056692756776108886291833907861910391905473892931639883799995464680352205991352390757820056296733067151021244935755036514191742834027548665438121985201351885159968142140719519840919218930754098766484193816236908268124448980578200124531818587667841526267696055261328988961050455775095783472079222126413896377792587081876632472674270253181131251890614595865827796043539255859126288799031230651905454238046278294324713776240393871089159915085369217885355402457019378774018610058475989185942286233478436052531240232495839944373629210085526010536990665044352731999607382338832609743483321341102691774656739400303422043108369515772595476514088316710985019430776747938389483718456006623382578799040576359098077871167336001838907969156712757358181674434393725459448044201072558647266476961824894262471290303005658603911057809138045248859004109978588338881500908871847514801574884092936473625431241071652258479139651415035088268156015681036709091833811777859609771045536817790741421471036102928312966533952012806491338633347118871288090128697436089054522254325648813235915879656893717318434140662973274247835181633542354211874575792516684551035759933314337974916639140444239027687271332873924786276205964818337643594002667732762682274908271437577523145332258715429178076251505048983801762714147599206726130469356158145310905358263403214102607760731547179768953689471314432942420976579602598633337928608800008474556915345668366497887002968846634433416246494425062837641453186188692768392095992261017661536906755637093625701132723182467455705250423266126731679249331021835794998160451759484721702119499559466001891334294441456940731206156874300291357831784571252086269098339634445624582457536895747118753431294389216970393652063135061713034560227971355582846416576090695654544827138884127308458063234424985071288912123916062769423312801052816313536935615663554268148833854992735425095351073617339385421560743289688994796745996482403917065896099260165075120302175739619153564393668119681355140991800884779761020537630209223120151504602735576061269004665044934365216650734629249920042695193816577309590176658309133101680055869337550080080387941047613468454673726495309295140918311087842185924801317082677190367079756140436646728950593560229676929049216304379151050547337363129806144751804908933606248214268456891654880112865647174608683573594028051334216101756860259420872811511930981531801070746872957802053796728976936092485635211454080125735419790870131880238983239162108955580829205310047457580329042945258723910101261799986231165869342593258407834223440965863443091368486484718928687940524223829044874764479462632503804860393931536662670937890382403877684157080430425263537267009493573331297717960680470058654830799245865439124903307243789855186462378870031963985709496510401608517194233805009966594211301392791527665710928262088762040754824291154833312680054084078762681450002490034607191251073238511370139885750311625477816625800612703183333096809167659120621874659946834945187139411414632637721820431380308827938325107823613432015567221852677738376789167187492401615284974695650328124567360847371490184374881618782669959241830567199865089167115063573421234667837719613620902954670911467044859798643640297624390855787823560879080790106950309779180168108534616823693499123324643926937220965343727267801896628457913361206094447807667011492744392642084245497679145801960266569658168438805232989760455260390066664809181738443505240918778137681038012511122873474920308957302807211235125509380329908506882166289075823424740046209335869258891975933623708108494955488126875078234245125719395493840744171455814173549848863452395402189333106497902471066692571661195510408151400506990398535493294599122553611021012153773429254773841519539744974650918677073488438274442932969801515360092037940419990355848990366012351814348390945940440753726529377668347654431373323595093576949359502277473064976728168528796662144384975994274289184071869756507601441296256331936562677691857082959314398167980725206153352695243195605535211090407732376985508130597158790153688044017210173535604061910077337127826485458256660157916502473982304705752560235293527265633896372208212118635104770046022972884766358856247195880962123412221021275087190055566628921161340772315877052785160546670615876931347895126696683990947272047841975408298684953005233275473676818045112132080198585392837162186614545222996354423393744683939875590819612629701445460637371357133238050011582605880431605645144184159722099371166305352833964754513810152459419763674654260018371923853786352640049437634282316021297310148676772995888985448490906228828725417264788661275241288518906159200768757300904555946980108392753523083184779656784156716694108210008688846158499332167007588771068970471373136344614871774431463393421224228052796071408977382865966681140845811734946825060316378092357254820572943192531243033257653543990430941174751143048710457725108688017832980013461412670627764129713535357383476803480730332649578289903738836422266092305809337490184154948873320014433785641545122573189127562743828470121933344574651994487737713192056446294783444572296529469188205283352122739680840663874956054101680317659591664562900200800466960753012502307175959036633775266064958194637208894164055097328542552285841374390338691685849295231235821048577160494761508526442794116814000272856829982215806325015161288753490532207593453696525818378943214650588980824826135996839163216824518951592937389601762561371259888198523830868251122890041202797405831939122931796747947685338691712513513560979495115212537049280285543377828329987329983728309172598675727287726465528779165318604555990007902869936455031754526492414706978750835044894683027857026323975747042571015614980912932216720756798264041433164766209661978858147847316819150457256059825183431116444174259948045862650484094931723418448464468925715548398685868244149830901418965814353578316903344583225660299370932852656243933678679620266210070481039167635053116646910325844831761516398033599006723534655496708128346857805805008260504680231776819283128572323287431496245185929623655391778242041739784077544302107644497473365993151721766023174318215285531281235251744635321310196558993327980459878911789870036081570357324402916401771638710132404635057415092661497959499632614710760434923674076923854658159634142365218304676095546030411789705728397773007525098684240346478353183050690814003647782277930839148043953772723441431504351585796868385039063841955730033406380699899735890735455245393984481018171170279872889514542989340127139769181784806391048360634734578438152689807320576419052432716392789165372667733289637895974452555990484496578045996799666962190894895189236258685474008194843043122534466511819836165327127435792479518632035524241900926739805361953974720873370723491186065082073213836191416843650405606641482440730082747574544929622453922603183163425022305566610108904609682503261415709658608472187990333200847550619597672441145277058321410379144530250409025374112463548861463125226593327451229924233734912194883669100409739325451683227565838548309364589806992972040143920584777802240677293436118307874258804014175565515842000109833300449878629308641748992313577664579281921909031851599238964587391249841066093280270155951523128481538555842745798362906002622047107851790521413588048112250095498363870533802716337167310220243160259350961991335631282164599547939416419416737981953581669679728832560943813256139626920866198698906806033668787340064721525210637838057367141628826155187679646431325721238570024693453498999462270122062249464821814831799939706210421134977937584058723337406952538528214179662091040967013251718192573459162746879063208942842372273255458800069896108059885814192633789890136713199095037576245703139985154223522288636413068952571818771775371287138971498953232726780939921079880694794964810951273780624514748014758692485596924923797290290724074633134435215826821305682987029618385576760266708279592880675948438017384398358820577146179898011203818799459986337879061396972433773909114172638678898936088359979334407096467710076565718907449785887145111306330003576187593784029384447509951252959977900009624863070570241779192692335769044720412660898261639918999793756928513805163486760791357711539519286023871354680823261658914068347392390744365374326686182651173762828587417003485850843700987745506333507172806366859974219821371584673926610117374196081304758272971302877073751184598401903706437033481633333720450991723488590138420573801666606743226087292981833906812653268105438192696775753159506664880044294560135370262326269942917808916299281780863263203153182620034137984166061637936879389548156761304959139382990621808308860407004279125993239932356584883375718489620505905175162335502188876535383408306657828568441792994295396002383273570887956260203551868339580392991556855262660865909273758946959364673359463435125878194097365196020832716879171102220427286152427369683135684203587453392846269197410054685392827227343041666704363568004427959708575667406635603766953240225615708962955439956555657528250859932952902443983052463342913509330057570722589397372568452093846681142410195130979597283789622251653349912875257508633215431166605040474179641043226267220188742311831305983755468221808685251339806514784304689951109447442126425984917878162760985055795709186406953899451457162269317522014665825841753562151681720370973065987527218271409365813049463515807723331179246251565449828387813154566492205963170630766268864737013476306484883118477086045363021096934611593660331160257198952055596588935498534508273977253972514237448017525885285331779145365922910084927240176335622166321885521899942406667603403361186895623268460078136485338888495155718306742376993484051442048625932203786347814382614735775932152964935040806621820268047887526557056613992201329042058793673592507303628840238752707359058249384912339179333827832101539293277927592163284507480365555405404496524640636649867151484543166612829100005205452839664609343316184357019114588339256197303203940519792525029436133246580148361694116812065876671776317057339230845138009836621059827428407604427328369011461021042508949541247715217129447388059243141015473048063713080268233379709776504179463443776679620362292349361624403925414937607345111663937375205950439148875377483419868451458249114733793830177843730762810382618670319655708260563042474755733430534427560258116018253940005475048546201550305212905777166675717898510336970888750267095883833933363861582235845766731737605331668534122231551491538994029722926191475898992980915198258518523853486505705989274426654309875841848462789914795143957591224806677681759602534489498001065026615949125327836384015548772044407037818008833806774981593375423048491169191041803152133404206854883658975276506529237671390125088624810141333886542192987719436434211886523872160055031084140639780676820183866313149928635962785852100256144113121980471110096695544552639169375470720121987431171395044036967898565431988719968494162024549753926278214729779441496415766587150596029691303707909587685553358854833507309873853635078390265869336162310625055831195316685723846463691670345283648885980157574245369853893677105920193080728703788136726669663388843174800149988313886322759524030156989775194039567274433218605940203445164438501037026352029088339641552670996066610557232229394944558728492189787443078397289203933359996569428649173715995675170507043335945121360507566963773412780609234388242728987215683669775152777353180872291151819572441439913502267916935238678294857572901939566779218169464132284040407981755030488309894064570991391335834216720035754731808856508269458293729440019162341380486610967350002106537314498250282055340146721593250638627920948016009773268257623091429208805203515582150031431563193913909878425224253557593821706842593209229470952824261765335451368577588440141735076100469342260670877532147044361445449008842168114998640447607000614338994792449411291419469547131825969070673775640248483700326455438157446189159122011611629436222260394720469604897757582039270682974511018540247401888678034326491870527120762252357313547221996054217806578332863509744088963922536562607902083153508325405037584475402717029528022207972136325812069038866625220464703183850294632045406258369520530449111265095286836509264559754528683345713908999612784404716456273865661240782646708038721570729517845895841832125712792482175247726091186729291420163480235804085738266407850407716912240769478037487006868317460336174480562423198224756830290557366783288332066642817844785074037819493096081445054195648468531051001890448768499201842612539580155982057865439543980427160733748779659794400684999420745410726812539604078712006376093569933445041918754497196744552551113652609986351595861296069679458878243208161148534309470693239388580611153356110317656279266747062701323647613146429350859585073382504772485651570277360932667113633710296775965205213111604653759419567754922632179655167417492096724825677672449737448369128111630052534760061804336184622249610140415077550552956669066983150635047816591654747866266444491520244103840053728299814858643113325133785755877104506233410301607728394812291735064112532953765130670999664723058905056081374397611095101559416200588835438567563003456010129706655695034501204347517095054949888213044831103993356265654988028665401638786010027871998538277820176640332977731684125464653924937165930314247518959897337551595728416824794043457792170822434216225336390894850132846644170650818640049416085482342700060036001629187551035462117465985340372636416424796459203632433749982065543435594825435498222046988335167176995590822237367472262058038853708181696991390413052279253284930544493800282141561476609657669904443024163818831950084911891220222477929633557838879274057949461136807405973736256242420334233507780641188337323524325808172428862460532287925596595466590220277627251129478724651470813865802622417151342715655120847315077974198755303040124872614879829365771993474961124808226326969604426678079396077591936411358617238046388678692512695799778886365812512801616441035617477826838888371947111333561566928812820970372997421643194943704712639927665682169507695433429975340528089767792441673511813758744649456655776647736854433654554463367001723157286057371251177693710681018054673061291983189584574284107820883759958949186173138004174627410948042933661252459919628660609333607591817839399831606691220432220996388268403645393786267493090305191209298476271731425033478523608919818466450449160883074365962627988996724158920685094125101099001622404249391143650779387993905829257800300664029316205999503999421022648384717511269241426210370893912280086184523601026018754041862682863817318367198871674134203400779711203027572513550572013300682706252372784637250607358232337262554103344383420021414619169409645818648399376914982770493851043301093088321097035414707898180088666066792782169205874157524185402340971031047923618705753979272073382199255782434522896015290536710681995237753723977795528593590439743483279033257951387357066792467669666239412132432764662731069358067987154255870057892874964774166511063733603777369462204740141766649258129959506806171975170230159126882666743688498277974067688082179977212306480371613851397665648525631255084701541089313734351723274449346658966994309260613256373870488429696333308423156716107551292692595664997134307099058847234235621906078053078488378979286844827553810752785123744399368611579580196689815209322240634607214926825408222658392873441358435841124827268341664029172841318177472216617010098153050702273062682335818591915525146205156045965806464690873073070736936538182402432397534588836478199081773709661139675329689887258920748505664535354621045342391506329452228044393591952523121799995172681109993205930040763272484044575624681207928815309772586578922133976736545983798553754768277056056481332368328165730115226944914120870082891890096650330539636440100298853339445907141590418678129727517863104767014792346063648777788388133650340744622029553584975298700196368103808867845731824177575766945686551027810264596748584186358190134041693673653252236901191822798320056576237524576923973011075411961839046782120246756929827128598736832577999483645850418833550450412192478785687648472195637302658829691928002793817265901766454804039295112263141050826816903843170254301700123396248899740158778434316963915916472002067351527478359528463953415004038308616715458875639152365662210400652848868360124185982150733573551927790967759779987900225577363433001616048758554113527746407318540809907035200348876331132883420664196216621084827131923905594391405700951097649066728668408001512051210146989362613468094537220812124374570973367466887767418737194053200321229660575953798636830838599676322859078354569205636690313547106044134222318534487423478889052871464064787794118709391657642259574744061735809354355866404588320748026300294601269773121276594931658127839342313148517610803591383761229543897209709997652860591822994383541633487062271146717527111159205637242643031474994542081907629510238254147286463136242877750754895623967732507614814608878493520446905381525350111652534053269790392789660462653147161953509425190740837799818302907538661438643541518561089625496022488570284439140418208535477204833275711304953816177942980167285134022233658925790709392412673302505670605473531136662703745325337527585490060088494372252627989118016118611435456538189848344594382526215789764550429380819792956665041647063039553516898794823055282796528252639330394655553003367356941438907610927651036238245457305053324245117861595451716414111907895255376172615591971532715485832609384612806918017618450866700852271713672178841561950911264179340881891959267507593178139616025165094726673990970333564037802851403849481238542015789688895843260000084920414793127387000246917953127947786108112690705779450030680232594207147220731317685815400892314290385504504916750572071680226468102553536340501324694177938868637426657583865587838454303734401616291967743554507935176743165659416625929524539811583244632247222868750579008637195381385927424581374463697789599549530170574948961445694939282438999938017909039523654280449583269641697315450382806149445144087857270960542095644334826180827972614093154676589601280743812382227705483180703315677468067802943082167617984767314853065425658411191788823816064878345639414430557268071496067414029670216665893651593578645739537153088114399350701840436585766615829545901180062386959058839517051678782243304636880892532489303497464040139380485288938765602459961314047858411340169667449952432112139410369243522377399788954291797282808860848265407425069158231161423364781525178605375672690680269395292874735738450521586361851020530555661394921213172353232679832125463538883731449138121927420454410538177072436140562204236388077489063131153547077203102716392198965439895411862873357271516237006311528860528946786057210370905556027866754491166796335304998026032384530451595530951236344324784029300886462719704849722422420623925476597255604836268608916324247814346684487185295654784059060787834854356139804931397160242976853092808235117413676673170524322270253878310454954931052439491053693439242907100880308629795715276247853306353953502325415562783125453625507725940090158967922815491456034553952847431935721226690755067947075116538179781562816096217845503713106008044799048079222694423130944369537649659543440986546182417458103869990313516358122286791459016844456700995412582587459235697172525582717817296600060282131537162453693591715474968716916304735984146770551988919769951331537524161943997044257109341307251182056896919959759730550857681690404996393501960673858491559702686649697210706802818165360114907474685073469628593154534834314966441172718296376432504821480100500803622882493781075295238789009422812069782935571710669664558072796029379247124639630804884575808392107261246237604315822462459070857242181079754411037939125791688139432602760974397365495627294188190045836884604242308358442176882182287558888772987165740914671243031915184535677002093539516212321208531945739979757426563818201022710212092541737044094273715432792587318737451776233460605637731753446621645315897367719422806597801770601863238588965900313290317043913338457204084183141557138870603136296844020783596755250775039615132540624210968379151871833647013194436952318166690750857004040135711719801969781553075483749205985057407289054834054493022027680580894430742029341769577826510578629535386635543404042902592233627392710448159493218446452880091811961033625001953153379203016100375001878260334223153359144741845933216366057463150299333352044118416853185534895052944679349930918153117755096132533780524096471127931137795755979741583397539718272659956609450448114502851175800521855643994072892021692420773442647565308282420200575436701739790512340867928223831329515641514487475533928307935946675078647267320871815724200253220576142962434433011024983790051022341045463269623869040729057360219650588182677618163701410454665708585810024520884990371598366636560732235821670190173614352365216705779425370665615155751119602307967474625682357084101754653238029975094817567403073204373624019365396526184346577417626394285373778974564159920249875925938916059076988652302124948671126097252485666572478645234069656269114604250972157471445888666698528266097688078722360662089287533957978442490347187079911518123893599561534117086268693693513785390827221218066307004299820829721492218890385625920784169611526117511304162045124604575819943584796382969859767756921688004807351410597389172348009099390600895389060869794120002415172761319687681380055084278738567476232262150166478516450063836793791798504563778410374743682140250157578838016066135988926758536811314376454191922895320739697578420381670234023523714694703259382077405440522541967266740532758152944130042914061591202250193663761533519990462260860976012247309103570345247290025783114158527908457161380149964421279253459018302787434592080787068432507714843337587931072072251087816585676845694408617349243760050250842321350971732787123652500303917967186471277831637234428847763819076674822443063951916723979571296739670286471043465882139533753058755818300490510264323448525228579662981707238246892406654212914135830537121749753380893353716600003839756557542425926730595507428965466807040184375666072511843684516894412115572424997820036940603246713215958616328957286203906403280013903682138418173674477691995955511107813531490257403364683553276600557765407435005419326487380586339757660682456528347752887295869235336729818058054966541129792031222424306902390340284850177374088948682921137510646457048520414773603180261952576958805572612736201490587061307176279661744846710260229839796422392827123857473557932197832612984619780491084371380608777965240999239543562540018957703077598490159386810506679352241028959933285223796681346806558137235604954201868393169399456198835590047680809432632288919935949607788354512370009504635790157733753430078924230524777220963189414752922828351740519798376188348882929324931624803715680870629630469925872207594390891213346739369820853722686723161916651903373983863643023899514864316800188209729924162082552505161794191746734051737704615684139533600149113753003328700107095642421609150384260787625718605277322785667975177367148705364517718348807436836017299818426972021401046928953913316862054043198279776246124631297295112411098989120373175705169059777008536192521860209438420388314988596939290498498157642036924757262540760617985623895117463124431074527721068366995767441923556333574611558942295664221177676959074159739112309888936139526985828233144949959787161087271988426088387542979539071030172845675493089727787105131148712367306114771596295517440813315739753828921980954355319243471672187375957646109053148247456690037296717646643405111597780621854662152950874725612672993916936040360589516059032688286702541234988384313785958931997391058780966928321172032587730960902546782743380018552034490131490825564999563447588641818590506962522454846278005274400779764161652104399369800725960145104233044174324736270806736441745968601271833615906951628596329819594832689029229131253836907132791585227327625060680256143384889863726044798873797256702185277265672678541960620670844754653398822012496136737184929828797765078530643554794625764801866185517556935334400323072090293222618685615138732286144940320711493568843108910451423865767711691761988458088301309526824575749908237385327340382282767610871290071767339699374974618289558875371847983894913017365440504464718386746760957443202134977469078138457844218898749844072441852751743078804885963551568186665675588391120309079858441596307300191640424070115979632887041576300915229064857852187478072214160000172018772501729225389806730489028950948364198442241673003927725997699392871338321322662339471941000376443220300905579976843236295750270358308725967508991326993135302881404745885224963965930762355699532932735350618202245353182486082676315266173769344843773981061387908350537309686150657986749734358085915158784014120848024468697507392886906154336814243551902527140879014302461003173763760151153880287381399838955548381116603185519040811445219316366003982329363301251232169488002565730278501283163494077041914784451706835283145226929873467292072618729848354887966289889409534457915957684401343923022254662999449377661612727659866166405057849464343257922932715893660483981427056333605635154214102522255631091735097042930166281229241884549103476606718501350533687081549417148113645595146825281451568242495195287293026743807678285447535626132482907528537330836844498750440025148329905252267170848185752317251728094203338968461897627143936257301774564865365617486876633103095784560227158589345151710601454524390947428360028876549782650200773668687312710858373835018758928318574430444638320877032171023146763289573559577824819895314072704260645683700934447378607538349654891936895147550223197560221823333741441011670971360830195662788175463451932052460886847880684015462332004043261916021053856544717593411248258498770663598490269231995863021952777833688066783629904688142917632837670466681931865224966731756290783455553297287644265046587077925756925186535694101417729712945827435953678377703471499271970724759390635236822021154508552874272331131710335660481690384925457133212620957816703656462863091181973182842501523999376627026377684547055286306576497505392034470147935016074889278263239683466890946925264928558059768804260093737299100674597318740468068875704748871969398737203286116295556585854299710065379775725225269411455366992074289755408209305895852874214082646979058487215786409760794528049272672642465331026937228796400689920115711731572974610608376831683276308748702869843482847120625010428660309479982733548948487038172458387182897445436763395854760873481052841330317716664619826401306566406159901940805124275035599120760204461557376415927338822894786958374319304137538587004274475305040218724379317695881360745370477807787646776326298823452603636505110319453610560510656813753920653739854797188300385430479795726684453010163467167873404784143989078025757355789154850462970861226502497058124764638249975221391615055772380968014398650098056271374379781095040438774548749956879179656603072142862093026600874011612911637262742500328150126566186298166808277106863743497307652622739945282538488760786423776228638267824081805045633913561668779120939779605142721313492188142302767659907872127444106807531921462149905750166612964880340457233216448471967518982968867993531617932162119682943461936206622227123476565732822079815035121625324809926909055165766755450680520228881625963191697952092125056780918458767112790318399534776938079458917828169383576576890813727799097603280056641738519016977025856938715092390743939371233251294409293085070331199508976674745475073575940129021839306311840636076503001220692627126003087752275543405210974085467421979320378524233823062496060845367961367773307150172027174994520692096470301445976463288141332949926877679929303604662004487901178243475406208485513354751669044260582880076216189119613423944420132315771875498804507565123850256071669094477117129694512036447270851441362120701911177653754494942331892014113505681677821682472609150220162495070545628805511795473164337730159142036072615155242184824122878871131991988217342222321518922403764850360355241474726637100704340763750774730375641961494867596468832575394649498020722293890505326521664221392087521364932034692196319852673322065608047107944376895339806065671798880439332699538779373304111040577719336557433854527850913786546947161578726528942405614386153915182898612640998103517961532536589592656313851488857636220171535055183234034938356310506596630653192490897712152297761018824583331270140901622826172230543614802322738261441779481497644021471958382427433155221047300153547007430023032547863317017305960369923437299096783822718442799472745237702920352457457399162099074888240433418495309527022063432053503178451257384269021993527205806574925101383839166205037501546971952914627265435005157131950349453222897508412520706086781553917791773633669014356651566178252012952414198786369623842104073397756776783428513949731748625548730467446698486253753642991667915321164129785324937066732897430335156771077062001551858289921109120653848091206626710832872041324523885953379405804977564572943794182420689384669598212762824823777145959873336730124831611831805756972901739648801024188965047284678366070042621739202224133844567683188146840785973069180416023416047296738735608019555826543232682424781219365066000053105745104641375399424737018703394960387032644437713818535871747136792964084760803018786814206622950490200651777642775575045927263943197365117252626822462293932203807729580281745802543255152411531367951659960329485784452682435070860256134545843952000060729761402589618372064342163485095542989428434010063125508193650953880065018634835350359385859230688161476012169227868837037888226889935652811624291148256924095357230272490454834172713044129668806244999047014891271234102717723365838761605876887406414444868793759818422215346307386031200771072736575618656165631373992224689860657713982417872176865521456374107270955670938072112636648326891920438602936753459938232926936438921667481632155645850929308700383679811021096756998203407150952186562351225523599530902519930670421708271662411898699127228619728551893704399028799827912431335334295825025032166029001802947049010888053683211136357466997479043440750957954356347421076904746219890185450836099946733388100402232846966804012250252671842118382375999414958826970916382823418661695602996799386281165016457761210889213202028062677306267308871359406392774922179451439351875074165682247350889047425943280048191695280488742260680208631970632818309993409244155287692238699040133340750911549835893939484924523947307996195905423083797338783092417080162888243286402232509870603820217078575181379746995596699149130789967928708363689330143957719708199925013523572818445280744401342494499954062763795662768144558756380318671583375531043997337300643438705787393545118539032722423191930600016354631082782632905503562039167108613321304542983835572848758077415089668891993709005014334337117210528711640440545584136151036661246863963102063284745279305287576683099610976594223576693529716581188290548838823582137286993047177666646549919814859510665396699401858181082427501666210287289720779832178230936904513361639626056517291578776718981571286290018895487863239894103831549654495817202776944849805311521354247791406649930431299274524721009565424896908659017128903887468681552176360499301734430252488907023785654407557822620802954091921001213301595463190427701452574447047940893432950183955089444245838588900541427996912453428891614354734712019350354078285128380880123524547153463758496686394251347753245030558846205929737949640162533959552703165342397970395433492875103974255744765182281562568211681886496799593117414464958868614552282840837346650805194093275995153911844863419945992048902019819077184714682359859064727986837198153671259316032342494956440871214031957173188955776396599449070666119624412680488882364656678045638193543307341176189861665689999930630796213441093469738669508135583970612890074287597364796309677584409654710733049524981889518438527523027008741812457411312830539333465495555892577751661366359595121033971017423012955655730727435939995032155857433448741728783386208316908897978998510333940787718734186731913018987921674970084800200815156564474858493608178175727426053426395402382064223007352328961179245968593449458342723824937956054581065383037833589645140300183725553939327842910016637158396308794110310504634897120145783110196313875021455660094429589740205201944287908088159556008168151998442498044166254699938654145805843427400155645728423551309485129038929798203349956239773628601028561569191498142694309074010858081477114871706049196768051664102579714905858395833526518944256858615922310840033252482891691545870927523779312700860015018168786922308948319548428901799719583528458934665896126097117812680019287646539506855588674211972598375126238599959846839952529645128611749981362281184812199254911100094936217232386753907803620110528257424660120082656443694550411342459305560468877665933396660240620688995717355495662780845622927178933414814835935311595021169103677077806140215393323075235579881515613934167495786469066375581996960508652814236462757634860674993676784781216465279865419767297791741736845578964271670952540765472724488278568592957872213762494589851534026729707361313118753737458203748059041864278985865806050298218203157081350326915734639145503007398618691917632537639243774698747704496898906387417906784811286884708102351027695254079993286295587727423549258714382744984129128628782714247629034780091814119635740413006929381210494394005607945969921900483693371418291838150620584768679062859511306915772931221536449792506354661590340457165416598900492723523047401592972294089452380110349874724074166139279207821057076043109113553239635363998264027421523381443571335364799494650317822952608204690850003054955499284849769917496134759553334017394428364529359375962629943425192911651298430225465407458382298482582513108309330764380494601635916772160810162744392579631416727666500073690243505141586865765778752077057095092044739760579404789846179740500405574996687075327374858210629028821841215931701686210477550183807056358912194877635535354213333016524148882912623375101012842965138556545017545313175415162109229207734234738458144596593633913912082087118322721091720359173852647728364387302474391552627824496124918982740789709875266327416758534967702634714662247615311782176102085228631647621984847293842119542712980231374588419106469449534983699908271772684372509202908621805854760911234130849027832691431675377256215182225973899228158508168831407117701130186196559345597445396745305822929594892479924308184152107492407339868309051097156918866882425607466638586444832095376899659741764298220953307850769671554080864306461898218853372293766933267398583435397568723729774726285928678034899855467730298170523757514001853048831259640818599137351176163999008165979731516905134151912342211202042317645721166708945157382072632308924061510727498576418179846853997448747443235278574653975608196567976829674003731817423598470214733484557992133208374826229936868464790775069117533180730044985435254882348697170082631278731731388652689449170958260813558726470906933835721804749426875483683901287060349697843268762885596216923224796551377574839885652340858902593978754738116177202865281634797738263070160688995634960774541553226700207413098615355172300259113104873370737303341206398537686700040393397750443329376017421800967667743694278065543650852683913180694755863032774931610828533695465659174226817924190041775828870466511067125148952887630993244189168689026213179622794812434810069748820391005231360480316381941186232809463273207406001663451184866985455776336720175920693888745015622561631761735596501224233751702968806190146700083086344571640290672169893339912293794833697519157602232737077438507418670166416948997694825913364867944143963889245665949497521700066345300410575630239292010396537250763344966395577410535200371152590702229212142758455829907362608713040216149310087730649205249529877104156488021725371429604747329794811980881081066592326313120225358176654626492335150653229891136853845850061755469175110762166745511528764601656484604378315227379348360667552378778767844002901522160205363604072983372793901667497281848704550033994661331440583140161320850331168590616100260630779083414051187263431799894491085191249458199212670210969617675242590725337229588717326717497381538410933351484868951985949582290605382117224251320357307767960835518909467694286751011907806100750596775957248969151982626663986852199121259276313458732193725040937596393571045623842440609452014951841555340668011477098716203931860153889445235490033290336467687023018534918732644069002701195646495495655474208990947415374545322932344297594130158313978471547620772440161225107895171113491621473347532775125628116739173273853610219070162261666405174879694783550893246303339033383263828557626651554729945431564473519206657060901896404242256008864787744369464015884981932646839747393326619175836886113893590466926124864741966825541461770729711863931901200319812675780008011363033936156685121673659009285656161994708607472521973963264956073177826476408310027986035883259417947852644100910524793695531402828276728719656926888315225485659238399303161590073482655733025132815170242732568956296123671985311230587548601500309029884121365169450957168559678158237714228315986789491029382812085329384913257668472849902459699970001430217521842738313247180604783000870094766633524884656672532904424225205644955313630026788549875015360051161218941086261834258076165955989352731945602841393101284414027718606175392173766373983827273169504019405929755708613224378467445592774950398490369248048020615446096347273202457148708318181303492075660350115752868953292195105648452590004363954329504992303082413344049344993769878021092951910766926275751153828715402823091955678072711971809927078677609151622575072352342932011817175366433923849976404023733449875616028505162620803069568849686132314224884652942633564352468844048844007052028138940733755286480294826628498646834431451057455141239879541561331508126120546254906293906417168979027164214017134473383611525057368440596719840440901811366689253397080450580242264100385472130577638318008406111210095388639269610381449159611659320400637561216810327425932966932640106322833350192615236422134725406112519512419280258921452166574390588138216947947713424918699590721768480368238437092157749071721536061900013841778391953582788787459837196925823799613849764277602518491630331368921123408815310146614038520063838765800902609442447956309587602782925374339001889641018975464536265485023055584279414464159781816409044669836715341128675788295212909533208894276265493183097616138427397591617945677598093627597877756195791485270755564764582410981533447204513834142235942934021145235709342025044970589525635668762354574568583964798800204218192283657624831074248042914620485132545972840004647840375058097206954323911417397929272231736303023391585031185938353137470735708753168357797600833055768153757642815103000077099648351160434544614762315291123237449048183873495160251608713706161589673645010229950505574347465629165897111027424821227743218986706306318904606872797824918550843283782776203852147090752786021535584389902496676824737488689603388785985650220033349045456928938331864329455097454722992585105362331757303699657282804001031121163378531089922424381583748884718015161033079364697471239093317062424240794268516346452381780856420848627429911027531812694786971195702727428386598003851982706751538421131261347445604435192666970216365336312419323380509128729076944409267501386293608769395854924079328075392472094279920227989216221609546944734498942073974428877263233713230397711471241504666216089541657698169120819905269699414173725374350304085686533276573634351154220645718869408500726395391683871011943614295135306800554515685605313429116246974813326912377554994748489147677240060552341954565206719610412556007043421097764135171144068044337423702119058753905278112916396529345193897525358512271279371989929204456848106490576743351913763298542010636193939462249832867095569430497544869654282658162332344247628642475769756268421952579539411940354603944229749318171088154674426993025162697799224783227670512121431613247293232379939169828250289874085617688172753012903416218845814709140738814048213083502931798785736278800681192245025026274197270413691168243476741180669572168511338183748284959071244390279035458112695731234833596708197906392462204601632119713646877962652723591351258820163944733428563792029671586615297692530376024279155859766369691710826311884392036749644336150101609428516559085137740898907685913661272715002083829974580348065078557507970778570812431453311774568235625614461255326853494860632504183759431236651469962785203530764708269092666591022112119362459963423116593247618178282269220836649776897773925469737661203487845320997419763295623765561523370804638142767246942653731074638639259216491758752796948123676527542585337624227494181078030290380685530296670406133837484759470634475921150595021509620073545948172744886535303793026512589236119288487136589951914228894307925559325896152947867159618186583243535348226619773576805959460536836091389473210347953372899053364860583848086737221207633140953476443413417313076567493158418561856970432373237817068204653873382555092003092361290743803577476834606378128096286603169857098403744431357799358731392543272058080544598332314458887425327470191767921926666024222625212569937735615648407178913655896456322408461683542402754151157228709051916896347401720338856165089074952697571081460807458278227508488427654537901543318820631680971781151280940408512171453689673094110500612611731216242592799996806372562969063149796940036499706848722304704803141551137979596562851482762171488609423560131795165067032974239141154166920834069993537661716912769769818167521855939797365997157337863662787224446831971704590474139713646500375902182009525333204828635438249936556920384969384478647666939567161977579212855742738524744992379821935636450159083594918066693226239097177515171123289040231165974729934266487605391067777145851933627184620507441715568841365415360770392179739392910671163168379347138577735363140093104006370562665462043156549345708418000376143546841580525555905254003552648922619834160560324102681938478981233190492948932571710635691483946975068854153683467010094821001159559312948156117114289008602724361696730883702932461961906627670372359101901158252044164254463937053082335211108133230384899677552075097565866734621618461819208698097248395147297918415628563019484880291170912389353720718261930655315741144235486492722397387257789933919113829813644183826491448142666512575678922304240967988275028000312475740711631907238334245015427812221161646539342991375512967621431383346570785432036660857443477577777457007707998196128888863735880105464537779043370999521209228819776567105821411454721540465428829092651582962290712337185358919190455259831730259354616582172813119632762206292072124245322351918945488608550438298764023498413233125581913318202834936797938097084377055954667576296466803162625005481271892727830033028012286153858974053694890081783551523187366512172660988140243520754305967929536640037832242093345570108588921658587343030987341733753997034925460888020877134990722343789545298860724464619857995536669082705888537626061841368819268963754067643341671574673796441674315246030404123071836307074752941356647080525032332020531425387363543117285668973494703133270503321959437679667349222498881535873442170477926063329652169540621061968703140341243360660446994021818163505635938858422304652337408520010065447356120385074571991341982496287915844246172923754601049852406105393680597580380612117142982959174815016643512754328751302585976042060876703001124945831811867408674091789357727245768358668862256132816669350073616065450634207366852586996421036699008269936959278322260761352579311539933269204254388060250693090617944403897552694579112394573610581060625043211088582380398576297969103441103637596147236930021384326986923172471163141497220956685906510350914653334677670465522395739979676244202137257054368830060511342554790747064349971413737523939028772611698485734135339247805395409488395712467500486902184246660614777394749015429043781441342134723165529022937213538618595534280580275711811352162869781339302867437095579001819291984863297300573785676607892274441189164202023154745581684059580442042939103897364476400551003154908728809424884780125391700317411417065856502025443784657973549305355757419361456913819775089418116955984479488155873935043116461308207457873641651152797782644734065666341354176238204516115470540800330278642082033417782339265778843498152310765305982569319035885075532262075375140399772947240180262226288220217071085527489332504744454951505433707489277547651292343296483396890168664751770567057097621598510998168422282393028386016359804187726289575301388757008128264691731244109401386075180960249040298411910026653787115337380626912251410136236252749688177477045500102969756303175359698539340855470130655062444445035291837460658382257415682356759130708098691015266794268242238583494832645209653832044492524898534303763360906961826405208961452760617812382613967931718344290167257654435056565508407835875060100851226378781514208835731553656829010205802464701764969394055697501178207049437183993699221716498323619567501934816723046472223252552480147292325587610894306757124800380369930472222969558133580142288616976000564149321514732645420045873606143077184464236100625084767925080355609327202971633846513457301636394363984735481407044959973408061459022132866595853442333697093953611716973621929708133892203277881822759835800052508185717074700111404369226745615030403135511106512423675759605482697742101812483597569197841585283540778761723471206852259672797199872331970542087338139705945092565002981654919738806929387572089614022181265579008475284256483266662028807640251142208813905618939305556414947741459552818011294182620913928250842237465146356362338563068817091481383774960944044783687676685300901104021987357356317425619023196122897550500048971097480917251080995623800791463084925550360648268828272332625696617081879342431476399330943314966225187081093666205206400814879653165404412540285387450063440284009612102208578539412574207712555252863037078902736073095190121985292522956825685112381353265904217801633920005550915885804180763509106088768371258309921047370639400698991604100552536171656148541094612367877942990116500858238217539287633982983601286847449037169830505087968841664125374976354840863549286122493755632582121525182387748569171969944989903617121800592691365111467930465994587163890062586658723392045405604555681007400900426395256676777890469477465945382469709642461623831882939294224954022994774162074073000268018650514018317177352703288938900169310905382174164833131032891315497200244368658258155937879157943139343958372366441879465948167234718332042759471643179642257632778150033567141043418061513552990838430354850586156060519309235451374887457262040618105256793972089440366807433724139451961011623992714130522381424588980626808441290238745217048389158714617345774109766393025327115483819954796364742430578388792767200362625938886345320288111449696837532885659852112309553626884413816287751233352819924234242916835202535487774220039676285438534878050577305210212285848170683164477108977815734322703280759093931323663174825163634009874224353766017995754155470549249192411782152139775715218597915311253701578755707821526251659785686887193192240245826091332335464780169922940305704498534220029411753028925643684929588309673470101155440611924924238138135351307161931435064707659242435670389566649128723445082081637691064857353872172327789421480831115439998307817016708036097697773109302512119774760053560968308682815044731686468647923273589343751027946692205743593874742893541403994571692311641591391248974291272915468589295705737486242145689256001259367682926323002528072352044327155716210403710924461089219878195920479376168160083897105980847908921394586798080063384040350909533430436920884896865217342129162791370822913964703785441162188582324237772802432555645393566578720793093021903576341964280038165793052241643485956708733298913494602789059546405964611041860145653810834218336671356898927342086279832124533264846699195785070198752886681565014156038702217167406899144229783114486985406866746314478696742474003987795181418380292400499661883444176557968739813781867908934708694075843731424387089365242134439960407400006312494776366483794704556562810603001967941025091976653412010798919803632079249212463318608230152472160755122502272984746360605995430120191156629634745413015253988366453260089543604490957237461590733192236088579372335558539936127999517413592418301913362664268013208586003504165693213171933323146829882227090429892692365176661825187046182207202655383069162770025453399681015842978689990879376202805784481880484815400271616428684508683713026469550704045363579928847912836074696216983298375585961420713736772210082420797577797449609301458870960811959955591208972472318230526719546010375315805462649348122670970015305576188699240148627270223072663767241050396992391310684804770207304776521146131284524517810426004173809046334070026162518947780022084159434929853312309731210545210642096323582826065492271301806297493971842165398084364970723396195901001314230117771785730621976187861859178400284195369916887481025153139288127400139110950873273439864432842432732230737340398842629960998259338836424447964692097985156498919107163162194488559763937376323502906585394975588677784716707583531804028707605732781924330179059951632027982813911298535564414134219706763850392391561016297820386461284648100243587262391752640253669675758165864391492422113075362284648840310566476399715992222308944236745920928918693255650203916225609884568330980138121204653155992471578319574870130925567058950285823365663686309684948295137842829568537559060990069790668009072214899980636990610504787924464048651730439087380842207457650355858726327213949234078705151369398286555942081502743439591530559602791002699342701564347365491093017531653358598238493513117689613844999863046651359679464383991262816587575385924842208828260872311080840436997120152167893384910434857131080649750770925521399107239679644679847046946973779981254761194278472477556322968234020219910324235570240972592864457329412923185044406179987815553695593242013043090448261338558401977856092078571951306440064758361064902039720237284287948358550936702487077362446532935025707600808049025639517188528070834753198690987138258535592568732661035669532292020963545594683646198485136931791607440512179524024200378700865337212213128206300922880588884687502344379638748239496594283735866169366674046112117193785175903063825304135752537570825399131635655064698531100442035035971873318101265698403711064453030059383356758975092759210278059736773465181443944811510176776312378186460449832586417305988357141148096970051290091901069402060492235439686889793127601473414434434132674234969804997045980467687825980757485238745373734712282668986572248054531707344039274360819659037649053666947620536183802444493039738031421072746512674484508450853753474320430347065575452356215694587133547135531161909131924313207961733512189878819940434680904765814349313373380174930451516433034761630055742990113377359985655606805008694030948117079012626623755608740867547100427375149151917468839487373637438144707696608492393444710236450433037349022782920169792357608751273528601564387233416076814930690416164439328568043281218140848848689250990925945098798498007756179003121865546351450091611483405956101514825531623194436522187252882068751949659701859676667265446207743029891255801556278784462353818293578375310022546998885825247224114099497273806235839607650679089615316654898644365636702407584960192258349784164168334621548329058034590616006733882404311007622175895389649114113071760812419068788972213663719185535485783180234658529420699881286807747473409471419114540208527395307081147843349542445673179212906715853231761825077467745906143038062625633562157340488551136546240248812058869655160704252083891033587291407454812979006270451253301251639613833336298458888227426259260712012796296188632260229636664713751464351420793239718592373937274363627104057778639338125980366520675326510244137622676911950989184063895604526003111852475356726193614594133117235435820521543593446351582201558807428935616491356639215298954237269941616168000881592158227430054012078477809360631353211779443155308464799050828117088295949985493592882711655944758458735927597376327910202655804848459352568197599927463653560981038320891691422398700423098832430834020834983967601296899554615425658171482121550152379773118491565491248667156250280039800814674698765443165209106801424457099051691180004162684286642819621372420271471581775693589616830911696946725548637746228881602741657277411022158511467135388963041787939708528206831115637258350162335553891433894368147290886426534518976783874378137970964972573332307678233423932170042671031724757656812760856619343276599096621645801282363416101686034373577187331634220134237265813418265438008762071445200683660395448654151569243056210108725524442377698955327311999550589359569910645859824300671972516466365948040062289986235112898161597657501733128348110871835675100415578333345526748314536877565989867386322854972090601750843956557403321239623517451737447726937024238477820119212711634776143916279791348884153597892448241282724447170057803003803429797752221642705277068298989324275602599448547779125396425891020129071519125795804595274124184346419082757914614363324240653418991166803303198888804723123066981851882739293751716849883223233710582853862562081428469024347300417851426062994870804102729705100798134336543328485587938363767095951961515646499604705987594594246741736768677509285780786793128243342857088638228012907888464587587399046360820250340598390398146657069875312522828716586818839277998577610407783266908675740574759468615977333059781299554128899197635269018837880095824406522972895748169314118704319324973722537409217782542088511325058513184521976291538445330640716625501923635919701063878894596719836011942787597267627839907966541656596588108530210370705432187978209386075608979074835614903259120625968047345907054195059326663016219741908833078903136785710019985811683410260481637157027798890704975473472269637148264622878223907884356288981233523356272520170790777810248497777353810883364837675223247933248692595090594668535231908304931044842595391666641157145405608714658717685910872392180016353873119493936369117686262690450056140788335296849492292231655959438835028351892522727868663862067927296304640135858068581174302432133224635249017830459989148826824271998830276166227478781532672196526029475728410138304606530091151308705087877774267951112807120932431334292008516893675506417060721180570554539831436526394672577855755227407940166258504002771679460424759539722360346139907854989068895559422493872282591761501351498729996421780269580095845878192757473037616295442252920305188652484404191748707105623198509238973656592005760944895519017981032607029489942235417694246867050355654476746672327795341176208730545769111250804445218924317397948496907655583112150295227948231340991203543270205801929846722846197974641261326096630240952895612404160366001256502099342033615321839285505468987297169846027638073004616541168503663141828955512778614714360609380852888919302895199613933497528324110233936526163462369833477852359916448616431992258483226295830296356539952168343757477462655318989260083743715145126657983429708049824455763488234231958390006232719048108110458906241149352254746417615701518689852346349279784187213507352521651583926378989632992974063117437279463446919969223362708913797089609258209199429555645852874999264903428650247813544174299432977387011958542439500970239990967291990687746290579128311676772465781106449400682259012799050523554458433387161941942378752951439977909899551989052096240241244899050245394419437558323586167011418286189407972659215104092046665640663247385937319846268211171505961281018088178927427662836755346606104956938020994743559899302394829254670122011599742525367135048980628362716660627545848213299666824691151502902448260495749818582131437808277869718992318714311792652112095877160856479176118282195274384524427330316095405151292136401832722370195512964847045154894530039460569503063940806844855661970253234614367168103206278870794660764928175924768905447500516113100519063611483068298050448248581553203855580734620250686287019941167097570645218136625886310865068933380368790163508363326676312491220946542246295391151119356705844779967141983784115960084453003407933310401337633604832979670284181403464935119948270836196302985553493629089752269981249085249209036783292892648818712563428010352969508552961407475934588862953177085718288467319361685993352130055042184435640332228590282055758459029185757561204821509692731940338623187094910273455581067722610108526768706219156745829415954022788427599536530623522798178503273072336798335965510493042695684944666295248677255109673327784385072838422133127357178449838401294299850932083344639102448980190293706518465621454238949760796175245852937389230974690921782343894887987015276370022594739209873789142598808439856426519109779719889332663828883184194609882517964276007121321937941390822808142985184351832977581461194776793834906826249554596919642450107943811507176916441374542347499345654003049888795112346452944897947193080800672290697479224614363543833445958249870803051409042017907180334828008607949879967000699130034945788993206638306279397816659804473963061881398826107228501342871844738208068886267373342903299881425598399897747093824218249549102373558551138138341958916105607401927897373251084137001523460089941418674140139931790014667232837936910353180380683800074021808339501342344300997063818150886743404759438753081969794440128480493315606928993062790861327297978970860699771222138067550478154337857767684799680121683834280190906188725140079746883098200376143169371905856863222883701622841388178186618771834181330280424126819430059617989164624375426756833306293923849648503169455372432221708085991912917406411353506479602319956682871613113016524351276034591699569703011852125554394519758549522933708465931103821040744765412799088325918078651879432229911487563268164725479866991745876916197342096212314060515937888433773659061268330272879110386914959837840395042901405705339960487639582625887681808906165555577286598905483668501401232254182329003518044102578817094899272414684081513518362300650307456028870875527341066042981101510345722683992498259475315984045268356312800975386996581280127814286303487843956174247189834918342064922672746122932964075346809785703807707957848374043047938952177260728709358004412585929127734760874902903518033241341614216956659860133708580219254830345680472602827982628361996927596595093931552088402162245482486664862032756903007144294090887093204421257647233848141340815740141860821158010329098150637065166772306287448482935135121252164791720758132254981847691901753733760666259697769335054194850992635303167218831628550253832787287113471679538996693540817146636513964360320147408081286539537071917768648438862117345780215469210113922102648065255132349066583906232498747153934317580326657150126290097594350939150689066495110063336028820321472018043701224186438115497196220551899554636119490231359066105622043724009934821031804432391646402933034578578991667353622741581084519837555034699181814194683545442666137181444434176837039207384839292783933901409915668179209105552442571086928791489329593422783007225576363813752092268317498273456440541637434257338893235497740196175851688529471595583528351052306084695271181406460551835199917786025237796031664105710286771880219284446854519809769076250369613851566643120737172444633246060955342860567201480077710478339409354906037143379096684904340687866917802061763418049561829612897405004814356451646391646894900297481337585179666115807479864537877963198178278964184550428512969068232117401701406086455648131360351288669730005480540576748205541069438077914539774801553978650768138932959351321729960118155451324951589689347957509254620338111556602858018425344097323086496105835259534521991541258204627962819398178547740172342507521082545415978285185687322786126408134835979653905860018352099907409218465183464240336284653100667841996210521210444723252457407483524986322632396651485374419579346743384882664736717295371335928948375874450599875720594139756833186756991138191872605072249577306046997845926046007215326280644528003831933003324560504009281070020106944620416331039689468471981933911325815900441438145350211649436299326033718376256765104491864039218847135983846685581290811076427336318078753267755098295031700222669108668152314683385251957359019033219326302281102966097521818885489987681207482842740155851607646088437242503226718973632890607978758833205630619012671368041145564066791515225772790074328084599670749153315419971246161290123230099896251863930217223426474419292587836993066198620559462346286838879739369858935454968592521216433852005293246037246662637405239172605398243987362890327541211810354559716592199439201772883935877169906657568002117722786364181343997262683459865758459071068756078271115206210870212302644238889365697586202496969791346960193265970936614038009952326949477315039694210705410427641971652735038299372078665405733655184259863132034016355414182855922452140053816682724722790954996642398968696950236232688300976616179183572328079493737838536387224285657103025052253423832905443053687032696423598132554504869026690789184383736851693826139318144884281917882452977860628146039674112230401173764499983229483923967183051981690630238457582411838226733185475610113468933671803824438892315509684753738498542698430652665799535463346149230291321245878498594236470679492693971707614137646589629372145528558238376228677425860541066878345515492841009102438864403760117150639510651768395316845523551870829575035480913248260720327844887776706258702960170606454551344550069226765103996840177357375408266913352277669298692265705645483946721774171616677307361017622560917368715833403258706795896758360686099331322011157663247467780186670599024222287151107681355054592290112289577832368291562822448735594701021470137170173001406285342756481695775902019454740850164574044447364246677837389829196529743563312108863162405633086744728893704449117624110728640497043476742282758470095460413669630855288334449847076320010146146226594668518223619549693194159312771628245693754699071407309997160248285337077637877345450952548502351952033328524159952354282919574821193521666738755015168101565154747821143432860190354500306797695603903107833066412924882377395955564095162985400685320417325945247750546927436418418030739375536299764097248362986489157595927397022806294239872842289126949360619414691476551789894060788076088806303365388399910388652122120518109431577599891849863715160386477934928624389556120269013567335760594259147950594458581207100247910161192072999782562523723571124822342561535583212237384760944220768523831255670214965274620623545681476153084962956779665445673127583160729435219327072698266954058628906324153285452932323902705089913084438561040117827942198368472638275511363270371309233005878470952877594786653208629776947618682561122508986424663672190815449907614534686691191064619027846911363586514643621114243605668703483328251392930069734643467561149746605962750442994755691354340249975634851265958116162998218373216531538357601549530470339980415239411184134826911766113111134116344266674418412099331752324014971106289423479764132183223107994310199180578571985045531230297142708681284663137281094764398059696608988515486813932563755357366745401943951450842013869580766153937443243358965274992362190868778371692797287309139156984572486904208018540296005845017827563629731017522904392086066248458438383450627361769547332284546857233099380004117509218941082484863336340401963767376483957017459979385461418298587684838234405048612477662987780718633792923721656530377968156823457851687504982435628779916659318092511924430576172568243842010388038586766142664014236764814909420458279367701900309814124123891213372106603062744666055746369427778100140629591944844343111193930101237086261685536880923310088624996133076751860090548146602184197286948718085193797581880597110122451659722717465114443957899434605323900601860840957200125213710067292848507435591497223772737384706673856829906830079370326970755877074056335641246617805523655564042862284957329258401050829022076356351418249274817569755244793103607376819633315757415543033626354159231961629751248616253032967927746059432388251984997428646398793159464945246065927510895365188744126015126902793667135676625203177193497933804795871917899126888746452496302897297132056173388244062527294179173214856911084279848525335503703282122821156255334912707127051455556975457931240742780264620549769260848698431796941559533623106401535242969604456660551142215718756255666030559406997765627452966691265023378249653733432088161075529339064442321355835918063532076225082593544771339276481293578677595138003094487549415735607230436582276927956781162362217898821782026429351951318910026892208060088057396452578769087027579860034110058629659407352504580223533443868553639823196347307160868766522860440251373040010797837293951317439716475464964544425862821169071182699354048878179265479808982500337993789342432291731436301117392419714256567820970766574734613234730261798250328204334971304714361624196020461783386575838556263255037919791281834084759490482128359657327273641411359617634964946226837230441205495761135000547648717199267292093351711681178663775880793804527900244812100219896053675619760999074524895192675335950677464401793818600006547855464429631131499815177271778347599973486799833347082637396067705281122454517792958857789691679707345984763305376369618401424271520820196215709868308447730671556987557836822584678307099693550867307818268233403929368107110792265225490337128865441765363747583326361112616246636888221031388132956035484292686005565016095376819592350039431938584375282727142378829050023253503197027393384853150954605757411689917510175468034760349509488236805402084096928484308923148516434802349045119642532010551366166509814490137360932373573644586977308274269540745730021826868523431447664950613188762952164912426188350330421024972951141616899208555360413595457257982354340440329272558795452756640181820995319262961240674403046066562211525152407228881362589737346982605839216956916568632769770560967579515660930648134971758525069105795656998625105678141321697162314430927889975377013146935232061860125279227654467309405110994750904923658943325566328208702541787220071888806267675185168426432934553674869904680464584869008794124400121627939814344418462236738500198934304221660747488779875504299287976650406516365562767195353835400909282964029608039200268557175140312776688610894287897290957855493159560711820764992794580260439696485911491432988471655012371007615852992004430808780661804402513545412905471820875756996151664174971743741110028749861094301987680934241709146102451988845543941879736166399022347546061235908323456488212069413461530015466392378526454441940523198935543665774672602070121678033586713261258464986799822481188156489552202674209088871686637788100367559900625889236523330860479724182751056341650868171754830063530788725306122083927123602442607125081448796778826894428535513540298391329893497405294811230764269486750950118819674761912656278015523953701325234920882800855524159835647405833700105192298000405905809537633139869031443758501183555230741066485121009629067390541816004251856423444714364001479162418965823232970845215191941202804876288382522335687157473860927043914080664191595582433503429884372081680343729749847570729447789198087179390986963780944558799482424563477296682075572038634063833361376030020428055544480146315133372780021045935875173754962057053714871043684460557067523490202976708220903409020023199415106002283247275242331167377333801382449025072119714202653126060201643062461294551791441346581428144696790995622083437299694859449485420044158183759404556818859253430527154239766711616275215045465418500741772895823718570123907420196550599521157524426431011180836652795063400514119401654533165294297020135483773195338103255992776235688022983551610623362452548917981086518735405080918927256206398998230010961911145970992219205762637186641939143086258485762164668914386562124608081828887496513806432709112219116448334676655456768292879966092914786896193973154021221349081153379534615884923530286441845686027439902197796320701294517397784977068699458206209746642532048403954805659827003932954894270880407379060498956098343619598512719005390942410758671125446536354672203077548958463538698051130874429165202948445500046671847905837103403131972712909007856029053600157000456283721247578209382368632455544133508320976015768877331807397160698978478966819186749216604010630813707045901549094194582340974607843871654113602391572720718577163357750036218612569399846051523171211155439823169549600513578716777788299660242754323579787307554396947135375117898466214141157530684537933044723238504617395327987383725902341936561101300481110922511041010543979915985495973188835351691548603530777424561065035352338844201985234061974359583066295981281865557712656062868218756947045107535277515078229610349444595800579905470565716394455981921522872356730630262345896560391960963836501698163748713036870724730151529499092051534670778438660228556930219551577307655019482528109689888199601596326893944380462081008349524245178936309526325353820204277185701198175895701027303054801996441904664515547743429238738072740686464543248802656241850304595942442931534992178803348024268379081169712604469898540944753050910934532624383730681213505350721467022279880457552525975251670755497288659275737723906621675066201037265873731042351990008697777952764449816395101439297217873570363032805596414785101604645624507967015478683618701588837168693306033140801732293004891262462880799629365800439513429195350851990622368404254768832368484198563515777019842598708900438589682389911339888557054563190826469784035675556058630575824958284992113839526943216901897354188537523885840518316840294248239841099974273765494112908150811699230100831263507543602833796370937252662788220080350205123880969902058448136660722770204612064437612673931548432263512425343903605663204442673172345690889462201111484648449522819180798656331377582183232981424692129330274984984581615255312918843938172636842032170432319345895893481780262511402005986966124741286722127007965492192749743139284985386601070246562104803589706130173627575316279835227043415942303778952643321856802536024357139847075510687674817084291807459605618278564168464583560169176703852857165442579951675344903903577726207572654238756624633393497205771604544995020528655580456145032762153229560992922551010895061912979505532228297375780767354720116018053349556263121688044480971837418188144230356628245670994974627125837744733670697078711308939195462304685062163621223281607189491768024700202384005522963516437088373551935359948161641941147877554711703091623806807671526993017437084190307953378290796218047629951106412489242214445302823602960885934599782338726009922703674314199748866308220356117252775531858116720794144252510717705626100879534136862346680727512820902535038484241874717530031687819997967100118479798967493863391195145739830403858669733118928761298058617752940276438022268714828528622515328442258158449581865424554274320866608790643149596277701291108906573979895735500080999992387544961674496319139868094693672269632092302897717110494356059142726076998774049117526428919440448018794466223995215210764914337672018223177986536161495149116060982073577806089910081641423652191145407427110941305040412806111321444940056215123991940392539876578079476299446860181756204576706719041256256907035166294681316197125559624537057421609452558676204312912056004332602974233429999057693801640743554633854609680131832952897366394438613817751217628043523189705888206466056767204813541357636703569730363686940052197885952110750497701009719609746767819886461973171477327527319790079733059658655771922814498050778142421748247971354203668197424675393150565756548927401586311074429730965938420202076190345742240055401429891352567320026139551713188789912714837104968439211022606368189032298611242100559257939506836679242857530065907453009425454578097596285897932793554862971320075924522972584804916554518250652808107951347427798187266971716386206450902295981840332638494073200181141209710527885664877397723996136113718423913312160632124004781638117623900869635580638468855592924423321755223305840479034362297068882155224834849007936259427702397057361752233505396990545779531261893017992291695494708597322611957867359307807355384019767144202264887038249534289579299591147152949580013203136318768941227649955031608467591824630056238228666232276807741025677142426946739326225451418532949612732116127997061990788818301990122197241747848399339824660802045424054481637812852866603493786906511427453898158058774975784874544428903253549411708549253976854293868922346116024317551596554340055124406569026081269246891088274804464504748725952641551917801465416269407073648494800768605656574577272664415634677596641025227388264960078949311198752433200205332887780439755436298717641990915359450178200623306193849152165358817317955297545799153071358057223164853378680802227799958144238539731843546540094305019726782512985540023966823193307540116868603890726165812139903438939061794499386481335682553522733654927926072151173625664248124829984871725104190596113056456037203811366827370861585065534701045215259817139102774948868371587581260495744105580342560374169837918295821196417982887033107357119417289581212122233095690419971806734621053686112539611665959746150894194463135876886939848057801525866914917850341199982804417870439697410753795843881173745680990637875040457602297425605469954173505773810906826952868311115262644933493648073389405815344836092932422796034912624785312302906709071960866256368577813712694302216686457453169824916175741890798870667154728252539252353855229872755258069529871277953073388096238103582293865048710375904714835168506881135013707292651525630414360381889834367153912341950899361619510252698090868664619149578989445230829956768186078251597318133266329692252404723054848626145936645862148277385408649246280149033571126976467103328980665518011924138039909766488350465319474980960302604798134136086051786476427731562176620996028461602297788772922667531714810948712474212983970850905629943559686388390621665376562022724419501457608986266223319434111884595130973312033976963396993558966320865864690669448901515318605928041352898445866630776353030935368509685094060285505410522110796900192432717161506116932330085454223620939328892535702963322993492735654654540457073015119023642234582444014597374445994435713400875072366206146914310004728224451647781937045328375805643264225476126932967454976250378705428317873388897423450734499174129879402726308589736670428373367279783769111491672386559614626454296250053639694202879635305431362708972892582395174495270887600888712446532844617875377558693978000245879310968589431951618363669951404919423616670123574449033636489231798822838686265643997297017577363152066756009288789197156807300063500323120130243879010075968826917763139390785461045309810388727514687177373666944548678290577061174923449863378545322744033853790619144255247852616739400940250253396299489642843094426455686889757861277128707507140826254643661603216440250831214892486992390979144153709982930936477319144024039554453707729187920800891921243061072607861563202559832496066723961414962459284891275097192706377466175459319048917878877195089894998983832827006444738638741801623715811949261748315131131913122466991875412087474349660802957608062544478515422679231883159986696814329508741249168501085959082933325209466925292766963880158259510146233929234153659427592749426867660973064416668517700887278908832196749391566781241675360896148001575149693167012000660632858406556556138663717008705300726471049997631726335990488453736912652881805778631757478901171665882856076628000524810373827293895493848068737003930872972743733453621124428125257911867179905705894288215183334865697446613907931816706340243914624851102997167933452577532842971809965899394795418256625548299502795351617321978634142038519531306740980823683946907027672326709499106952523681481058809614278422526580516381376833659888613687174473738550808662229827550128201414185636692609563721785911745108802376548003459959009117458892666951231893301495977844096783863958287832949769133576530340502119309172215567941084762806968702773988056781657940855374660155689120281034264173684657891960094640162205728780871825201326993184174735500321751390918003610256729248424787358477630979985901576816635666079973152900121152227473736542134879218512684299605218271791557747879365576573969113634344621238428225150963677880472145672559049160033183174453716017478211802052961530206377313927877541151436998379358199612687006004989970130319934984665941826204793481459333283213696832727252463518321087473985453336815925640891681461850196494805830895475861235164291556208230952908548767179497386364846862718666173220214852491449349902430210966763443720524566668698527993209055279786378993343450094682102391626846273032930086249549909634165977431286888903981965914969724812255061956014120179519741976407754831579170586150062252086991798497800698398085745053402918235084357617387884807870932359419097045341336381037252181926894864202765142223595209350012894305650400283269750745915136495985363660074418475555759276562636047075485094728339451003919618891402518714460606652426898520519360225991552388726890516427516541771891560735041951718616344628883138152007479603264062844376645530183245035654044931280221735315139866206819154414300616385594737748267914893616107185884894884272696339872703800426021161647351642205865071190890132929503564202811628987798285978171479535365116306546075082781089445048670666400107392102778692509623322917897642307011578801568130310151067050559180555394218605642388479728214733757976936013334097329929465876912178005350747378344679554234452463414022994644120447126683081778976728567812741111822243567036617097939249918568835243196102947828601135357203153604297519292809712047078249221240124212843845301546148145544037485860990912920745492363324489591168853849938636674729189673371160754587832321732048642702339867947249564529196764129347322468404350388318090138628026146385504605665308192733750281706777861079140523405419605151592404622404452974499866205315443150937997961163607064453448706808145948417519482940956924765078939178087263918047841301606792099142425515687139362356869570556409244536634584892828978116411965214473764122173160630869078363759084914825529207243668028553665144256881278117079677769110859432591067521807668960597394399717675727195403127354378776518085723758706461036606185867464634805501365366204425495244552557802163690855430096012456514216062461499133174646124530369395027409174442912452901823219800968925163306472600439480773952529293354873342885583483855036053832318416019910552593970572427909653938919234561882203614127643528936635541289762531980972141893358950039691061583226986545201902056563271436611115794690585711908126824889885945573760778504977412541562220462875263798928057218891999198412275203877531108345030082251288756381093437199865798587589966568980853227840164201923333547257105166348436958556128764617236303125955102550523215161011848521030438752675548278914663235031483353487359355976035382874652955175623800112686337029978789650026858083853727963663235616230066612516995779900385513456206302042068544442118528903581141229262525331028815250982562432760423893969531172457983365374070921557105514876907391250183161033283053077881170975196345987404465587690089531219531448358696476806620180247122657562217246672644697211838712766541190782396468294270061750486353288154284889090526722858336112878937163226923238213277043087425636187659359113371059966364813886670001699188349816679204705006850006477284933376440575756563210197430935959347182739371747502809828870312663476538954018805287502493215754762864031212597633550430918797204009960968190633566313588491374894295723686283566151952616660686841121678772318206059209216013025053078816172829921257749212111126535766429495841678850440956574109150606738804350233321330801082347403017002260583994440553661051744172670284994211815677283826506843222011638238110354198757477653838198993367523281587579435326826438287114966656921978267378873217285016162408268674269942709187745149497463896911481083346038235899757399498613184908610004913199317166749032658798169498016107181680960340458648701939452713175921611756591174631959947172108908059893494811858836585955211498452175442085379996361372221454019723327379642667827400994997141093230049371789829468213440739713062216849877487702421896440296177237851901106681873665685672706784895174802715956637738324632136893792817168592824536353119894546638710466742349065420807463630456700978070667747186224485026773928546878514854886318470054260155682884395240967492222393615508530865013085967251906859864896473448389493353522774860671577617315749982818869737565146724128140085238830799348079476097997126465126081704383310765916940034767649403122861675362778705244038767460758967802144433013317163199600091759538172388186009065037340935619753252986706414311210227665856086793889741848937402178989908591856030354153894251358597811671428271105129144314065836750494841264163680067665840970303464573151173679534285341890872910820784030133289678911120628584933172116334335799060755123657654197488061154701378871728809499617244444575541432855717898686124276860920793020981016180173031024417491260840663494766421297557393026785862112808240362439422090682872135706265293825316559107539168066353072858810702171701174651637359201673297508777991852784764223129489184979669174748528079085263174672606740254250929210508776683691305782248956277476077179657022812219922777453176272724897650944450539330783732743923923352770679147467845574854454871557297104403589248278271063056939863126137765263057404411704294711883219054930181258364100143016631459959342018414957568085783486868635284416726487970422061668068430773776107910456011596611300124810457873747259288754914178059813029364459606628660049877007417160353114926250600004710743281028407961996673360230212723516539906843461055247848758928237921160169558002799817098854112941579043316941944620485111318129182865043343697567058015879731237078370233652467433238457462037495481357799996746050721910005846961375298014642304673274267790761954154526994170909265287925320521597244566144652440964586645479046400404906253425748971109490003899017087294553566242039061673449863122424709435121089692415052361218479056838055548126406424990132856101387314852842211628989190183658685695682433301853457792496752736832397802512465829382975855836987331887937561586306812890004698993317843941320579878116075922914912190108649527222828118255867267360155875992598130508706699720722407886945601398865946828152790757701076524358793273466417110530199409356357017973919344570940050764731451862351643497361840264158649095376831041638382754021698665162030105101828080833986127766431347700083597501226331852861048287902803592539516155606535863822780354054596040199942140974477764322327043337167720163212782023280194043517933305808978209062388194565448508182250834995457253937360495716270830202401585845954620102026572005323900542827190683341723971308139389774270059933001203161933249954135285456282615305193482155438757535591639985482949920108552863552707210014641043585301146803099079144530980420432241973750115356951850395042995843234258323729998887978466014652351290867237003785324741378383958743438552657644904806033619784029745451472669668044606218189082852720255159707130068334207254540439459730661313614072575609240074853343123596639939916782064538256646066842925309829514972848719717011862142097378617828371943105212764693251727547133091578403067653030071346832067668665217467313922324371521448629642871293457308782849664532988462108300775863981974182755824226843329917295017443290985844028647797402008235686117624194690847295310017251428994650484030444947881228129985463878106778306313436363903405104983528489848848113875009818219356915373918430641920935477530790616110898981662470035232006716869505023116772754978883731989977942016805632148111875817635821898039267179685706196196578100153208357129793272433227498334218648158465412948230949472097552089064248946584875299348798156223471965136555834988254587847064818214406623829246211311281002447178547466066187019312590979850181124544668107064419059955736148196665881474469685490254153023934650292869139527336089476668951305987794987008747434646449245854518339376868878150657559817828213844413359709218549294059021904167856729633359417816158101424217780222883860740146490316297094265548044293536658118636381593349585595063743742257190028735003262296923718987091498794765125245371159803438358799805122387221238745675853553157789429077143323048736714285122357908528071496658504397214424738389639035411195158548634067676156181411914502976464433484324198984745968993343095498994257377088586078698789566549551137800730823238366675545427317904441896149590808935518659634251010106329993999871324752700433278833675904904982217784768838063691304177949892095843391198244570730857636532081988198453265421159823484581059477104332348545083741711462657871890286863473497675865572725907082055015163561174838525523803461494662342730888205413708985996383671087216349621494929144124718736016237273351280841844106376572647598543936728484756378471934243452128656045149207709144367790309936507483825635518465642198982863907041055459186932586170761227631007347472266695882184631216020701983653104978195375258725573216495853597368977170005317568409116617753190428971886278088464858236623086571534830253251406366608104155572976114388705265327124070927721862385292100545491084525558107861284156038296224941450186937585480340811516707697479889861648819024851717406306074567062375438327782891020244610947146697557434652725514118195799982054971413178787304848960673925743500269264651009633595343733116663071476266272322736777673429526080552889033191419972497606144499012885464289214242233733219672135089802008919095859219906123685171211412758420864349187074683531053408261899225971444806497599108650196114143419575805159264521765558096822409681916380582136916657772846257894166864768951183056163240690541779061077006799405475752106437000540970223714934391752414281199916230238852534786578658889709062686707099354797927451515560566568067216353633677607628214082642681367713804446893093836151808473208384975239134311122167557816459943106408967672162713197241971422374599985371243440538076796656676314274306630313630824047816198322771354143686325937271406224761560285233871116621420956676038742628311022373716966578643566930566544962175637746688846634445615916643483903911046835611710545646395908364173866782499653243311585448888999872433287751408217156645953488041761361975546580914663238505564678637252525497280502454476067967040099992714257634120377649870130592507424288550688555639700975669566044452246138224051299578005773874791585498263933163913790452929988739088416738527769150629650072403270455337979160147480474977727101426019273414543659487279832159539928548703539966197020860156063660669433432551545284609608796786555821354352369599339767347266278867570571108218410305486157934390881725332529848743448893451691793950168742014040756407407844097453860982270121239749170586720273971680926364284387731210795798833554008284573184333328727215452971182448635558361738902203318142466420710950833751168956614510537615032483508449356079033485499932742008406455855708608239014560605517390013392535948358990477091046343262334377416283369608173653726965091088798150612625019149716186690367953908886922570165480029051888519132766920518154163243506750142422396262412424422876333894467268887221302231412412324203021442307396540927205226517785476392363225636508497175776973228918121168212705875868943805593778298289891163408697934409336826001752192859845251171936671956289963397971826793282190938280265350733302562455242445474153022748161154139278344809562579262977007085450804390067982299065651176030083798640336285955627307667854370337417129744989627024421445876615422341573469233037720279028147537118894888051110047511003775102450835522813932058258327340956999540867148484307911445205555287613886901127031450848923061086998096251112768026933764601603130096700723682825874119333954292543978908680723353238978726744437510713497273012566814306523374261962809945367408848583293270708586459739561359624468500297509559341313731006351044310408392099279577197317796895009425222624184765362415754158483255239124905474581469297780716276848463069683381289096274506950600936589003739904116351252019872338787788404088003789702192671258154144516006670624043710490624833576738418445988323261050927779296846627283184071383194579517591881457585728056263673937997709920368808638486540329604149182765007965088372163400030216996005842063620030335876924530082511249178785155281066250726396911743850577867074155076321511130876889690968827404795908137183938648710346841840329422483266593067803372512094996421328541321257836316144290622621102602706307763657918191064268185309530175189714286792725818471141860060291924466550270736690610895643633797426808990294562907037120264117714177400600134181956338130271557576526129140091984389916925201030012243638894682743395140294769275675390069008256348889556432074889557123881841294919929671889973162065057655677489556502018970326366839777970407311813722597540958494738841393984886590911394090041249145450746161772587760703959985552838176713376767744243580018852033698513478542059742924734372268727381596930771364349464288988650703728650417409294993278440036183602212784804995304211982160614947139426314567004975031500223515116727390728503321102125352349511763110864623593246360579616930202607152131347899999095453021740565161909211920485395225783760694720127723165421808268784175555257034004709641079024376100738335950748320328970031220303380580467739416011052468128848879861797656981438582685859234200803680554637982806849768823716472097230253707557177820841992112004151314469411636801797973420140781386532318965913247697241934386457300817988404649978305797582809592636035565323975223946330549915397676445998530355040554722385807192101600873102568228184774014664886077070044049552654520158834805949824450499855432911915774844661788187347168210993794353633309973045611176784713588892422501361895155148694311369947583586353531799639586737558684812567940580592132450708331400118733680368635526274501731630020424842889572803462265267081442347598121357504900245860100306324371710531405999624749761613460506042064956617643506110841212094318451973566413559668365366582615579741410197884849411372604558952273287685058814424558618381863161813976255174935737009559410650022842752820875074471598266787764905713863299628386276302141376738328699766925970613895805361237411911296421156942137600615784316955187425085840392426253574474880274230602340298618670241266514631601197340877185737403541570386875891725935759725256974858227503143450233034729996130677653708496372612224890831677868391529484242909564109150627058442607171270615211463674935827594228334173116930931202442054318700125950623696793933350263851449582932834555038592068146473166647978694666452231075453524707091005156111506967526351644918799392859712042331862638034940008997434029256380452568285765562749569876470488975390455795837464859287451700661684260510663325638067981392733062459181884604646838174806443936297540739113884216221035624970742359466517621822219288680173939494120154265787746356258819428897645377988113762186191982470263535033192217315644077106898463456518025635530131578701986929982636619460565524622102218491680256160658961816538504037497948907629923518983049838822915213393445238890692744952292864632889408465480534967560486108959618801618285459283749672143965366573666337518500141324337097328363527881462632467648063627836059320396395081381731743841524909844077466725086124466067810355309329311596243348028165358794348199618487172599470956287760256463648618250826533772315095007234723799766585642791731670795102526441420058105849185016328641712516063703566801741782968817833813129847511483936780501293254218326264407101927608142038329765850626636125255629897614214348662281776117529897002541016768781274186776985249386855669161594198188688518895236703611581448352907954552146005593028167587217122148951381641933972582496479601298874071536391095932397532122852428227534944219588876749832056615498694115291344662966190133321365341438648868766672178785365155514669668740302495973878098622526243581484587369353497507812687115452652723441495537543259618408872255596007998191500193964605846163545140895268147225794553497244397233445085429233677493279137270384971294013676416212046035160231832629229358830450322568487794138618900079618114106522345536780738552278519137873181603952460887251987167880310228174468748951094815322775767437818351398803149382793156063765709667133379237163377169921322763863001949448025647483249123734436873405794301315925563470758757609343260182159473298172302621361722903737913326929819944168278862134310913417602519476349693812003289894581088584792084150659194388068245215380377377542486830473783887897154232356410263499669865039261965127518069279722456352152458818820290246338681227067642638679523295892069700708726892150277094633613584084925032471353393537595630392694918437745969626378824905693549095832510240690929058836021297988667886678048319180772192494639192402104869083710237833042448393215157229780478845846242064214139165746079611356729120657283766821040648668346556946518835326408241973472149910929343811168008620127922909758319980826521291641740682094153676953242752895513607716658847060368573525897478088093919545409796086844394855184201849314132006639675393798494789551894216770632423184361548411749019129858977519755875943591792573577882244149599516756806794083681496616379478800431762783498238165409863797092093035047211563343617520819354713324673509016216510821186474391042805909371652229075458187168785646374135078768318925399320790976686316459046843031729285872783509659617642627563272709755747973802030789546053160357258904443763055073763157285604087378633333246016886173386034835013912750133062522657125628995144748796121918551313891421433854609130948406802189569359690501990473795375444099392616764757225301057429255179802010387233904548682801676988454323060385418476425477868368181802370262814378072956622184657593620923464030532991074834889696489841417264086628552831998893158803198093970728445824923044115248356122065518738198272706262408447837489019069105593900447612181682548721676253444352022446505094459404788759731146081184580196441334045513076375682274353042222136992724450467618723805875745015573003175106890106394949808446874113042548934784525253596227228397028029988369583112841512694882833530792002792804502737491574118989316375405477187130694184075480156485596527775016768578003972240178872513760178248742145584631390969394063120222082728678188588944475701757458784661760440900061319418618823727817855806180176913938892577744239299493539532495700753383159081096233344954251586014983075197825749473051213302375091759878547387156092069190424105460670775832407303434422300119582421782245506658347412812905881729724966965730703851474168077295063378707125475541085707842206982652595671372162252369660136274832131634895616906671406457961404773432853240414338637235099849877299375412970887618586058751068467574264656434613992807846575272621051540115977818353605446174694970705691824087922228933940574535971554454696661217615827349849676324439559580961176826039872658051505699205590303349042135810340135082154865817436323158821013911267589374107172165527126224196677193362256962444684988769042085659611671307015285805950082719162534178184933446524999321823679091095419383525390356450029353511650663302103501074106694325681050340936832585371970864798527593920115254876615644088060839610348281920773925699653275081938015480748535054460440143987622854251991127001488849536661147602568628449225980476524609826515360448126837522938908259083045692590360119610174792865910210223591494128728831894359532883574645190928399756009638492013031426857616585345568179904713667548816167611585237732533809759565839648595100864779535597836160671424450766697730281964724065181412991264726845447579578222575726804338903163924657066786917988569755267794706469580797527421739175034543864038453955939163290209541412900014857559745603965540848042690060012897221461367865686337784683093496877697314055166271261256269324201219323995568034558050927072803157117973734559874092815688912844930714959509773753274379060161924345547091969829738396327468994856972322307979734882206156063113576008105022939242532507978779021672794615792450117393278346044475300351562765405368029389247738270444625536702281898379988806441466523021608778210516838168965578139780857655576951542927297425891739795289952904230398476179460762431682896087884837906966037644770289384986392608250596566183911873782650314370701017491165803861464320801399299980722976941737682027669192125963262971132195148458857309645552662490660979132190380754044741590431944211920233066930175159742740727626352347515469864523388235019759727666655678266652553021609849620936863397890780850887710645470543141730477124845162382309378925558694056476061079198659344214553429822074610555804314235496626143523865467401433116440575707526592668532214056131115031438059317013493500556452467016715588164163269449763948631056735946323954268337996825073298591187262953544507114232838907948459699726516732604522642535628784596750607295885658759879944537297291681469321018764540749533338556823496848841520361769878613887539351682563020691760652085595847110618193472504133245927999695181677377734817942132195522140440430336470076234404422126507851114849194415286785391058644944733023587456839930623301951196273158640919935974922070978000847959835444217448526173856708578577145576184239949657754290788477033131758928725125965331765794026598680825972691811287921923673671036559706883952861405023830833755337974722096755038832900203411056326555383586120502088349173689709184645642425013526597359718750991476398719524677807375164668808993539212835027881677216802437069123288023513682696789806104036536009919417155291394432004448767346413491252511495185829083585855528254811132053070783399467689955283857118961909330205729769373909840647485516568386356676390274630302229139087258709380991594565962898540676196500371056380303838121495150673846184894854044074245997750604094046469936435374752738826729428842878027351364955192370883604527318201875958937090595934127653068296368388946005709708270140606743820274692694878339571997225372411194762849622751207648012669364315963510390197057548247041675233164323447679888919262585167972907088068502138923446428255983240011581387689947630953499794648039064777572679768612863445643522176918878678339922555835234700658153816584837207821272665741624684754588916295679875434919869920183402688858065676652842107392205481535664664207069643236620099347832004104479942693385996232280654531459147124130466056292563179858956756442353847765810619404947250844405018447167575180994606879278496152039141654411241167246953632098648477287473654325635972534777464029573324845060106783377631212574671364484673674752231435944109704993080927495909024300526136478154931971896791893163914316587386614400890581348499290681156984474025388976748767067767793816426735171542116798347723747842228276667033524885768316246244064090363747285458017464099835959605401287819367451592050444732042642213085604489313655195796006688601039200437085094155833877363480212220837291700215582682219461683076444965265639630704124528822622563621529944689669151110178202534280299870488026670791955134214112434963227622185439839589160530365834002127128716055480047089138718738273136473431687104890405548398506741953818122564515585349007390659063101953662132482138441024190538790262324785004139696526279077551674382814339359185366338191353430909070773494180474458097060382728784144856669012409403569173919255579568581238502608160790712966575020879706310106738297194756238075256075102476478416177497342107032770006792510646357327837266316175014538177561343714535811779678710440320157797412738490082207536815886894762197303066871636945560270308748781932919896792925637785805073152693719778202979587971324052797909050830112100436673499480680735915679528100665858479583423028801686797786871796654775240736426764919943876609419737200049844961036433161896411343332066801498669078798449090924406839581713001573968500323891610579868841133033169480657976838363018405290719386061427776080397188930455582179999904921021674901287073824099994704652055023817660254155934079802028266500503295423784026654642271664475052805927393748229244546236925911283099072790973098763794505866122666631889554519098530795936423556110565670105805342001147689293053621302017587430941900646992195198157239804817192381099709548281657240596872234889784125281642860370646072803093040577928692519150797818569609771864768462696621923259389965935192936309109149670422254786867265948773645070830195585909499792351207903721868897370169726615521676474925043345752385245940270250916664571427553996458797591250033120810294066365318515235328469378729861854616438620506722324795706410013665883768778299806553080116593748974956146141515167381894961188735813002771793687916335328238473717852845421869919511726779635035506126146016783174628318149676856393083189654168010058096366577702924216265938234412488722261512253518024104049209032904880951577215144171817164366405145452566587286064832936125323152802323029697258768840939764211109401446207570313859685117453593597813630847916347829494042305204989825842719497759423525813767062723969703312395686321382910795257294991262523762889048804830639339723420315500345583940987619541041294177490237084986048599924499873610920749438011001161465327003632466525777973331816171797437636341239682299246173699466440953419803470799027935369895701207603233123294736256008633778207774552608801596387623726666330201130705747219482580005298796997383484897280725210431242377458969789940418181095186681682766617139235863877243126488188949691506734159324377048394876375619689931382977762680605955058266886447960366904445567003797480384292337682102108073569881019075475562696923039539125839602541807791644908067078368167701946746457125079946422570531387775554571618848464790132767113667681095487458767316650289463682082273217702332326797477089352843236532286183158975357027400826516636649158393007004150053349927335007243179207598875881290186848984617386406108077064245404432453441589396072715991677255733321323130738797115693050372328268936229503866851041562538910166168208922549730847386690149174221737889076696560537366511988952996700954655561024461438632609148156776871579480504247390942377595689290924538974157505961365071711199035919531853193662978281079370831209489071662063128470484660143446186301461900320543500506164234055898954913548824702969474357555927343519863169368285512917543625518419617611054860352838997850654013532193377316029696102615326296633401036410231873356836766693274032485064150450574969665288354638311097800393803404586435205620234289825690430544522048598951657840864521947220431876315222493779559688908684229790604295497184038972330772857181448023164414307995017775040699534587676175148084472709764777214382771749912015183626922604468768364872903875806740946770500853892612686500669389102570829179584024867443594551514821736492317157864400499019923998152062077099867088852481519988496706002950348101748538196789386139085117879109187874740675867237036418437072342462566616081017985796200016525362616464961770719853996344253188431881558868658835090406962931119181651328574188657374923373327319269451864801165377546395150520018091476414402659392006565340730088126770341277640888192456432639082984928552823055010983634991050689851336830436897766634916132597190874562107963889362569120085393078824731247182764505100569997508764080044023854668976697336078197653518196323124323562080909952723877259443798412337800922188441444907019777070031894811790812629212792081358589535063422646393283905437330855842164324885596169024439627786307752506274513223809183172632808673945386238084441281756836574947773358221046959559265153842974047933880980378081692102290847781057577065867761383250535152200906474912580294359109213215540736796291739960505745610624409283586558952160168952854602498263003318412674698199202708809401074136594620531670284715177549083207578368486797009520554775418655658760961871619204231891535068015754675095428808613510059483594375199905279645047799901402530383751837699813324663818443523560146934778223604120291480984530034781145610000976838046333583397060757255235494934512120487856312396358452495456860898809032089047306813629528290631815399905792644223301204710310955195669659606840625052538453361588380815489744339841276857309553133218016979929890181665370805688626532906753731452757755823112002444945571051261953813762799032451100424604268726598417522455025805161831158055339434208697089369078403791137901667647849590244799492625670317471908542496972551326762838434543498871611631309258832532951454137038626977637706915702673684272426930701444614841017829121885242400938641133370355252052244444971432152953822166478937243197254800550476193217981839222212477960342455032653098717990024542092261225815704286925083577570110911046335450102492202105791061297583594484284693478349124202058975845794628538032556555187390055447401400756665235925834136327017609256062614990721781429842219763832309748829989433894053037444385565919338527787031168422777482560201076532077760747660554089550772440073291482110954727226319226765630313975969490159283127258082643849515473269792578625124023451058631121825115735772229892766869128252489219786568693812290113582428957680289953057570969374760361485358030170943815750090604814735015526193236459993833408009933379763121682419130785047760317104611970535275888755932591194209667484558863432078022053954706390062865425839039731990763135240850691684611846215196740595232096348592872357575341368751434567658643381046699138199103197819376520220962410761503748867201848012955892144579841832973059736569374772223583359749061126928665655722567948197816202080864794421106595151442427122796732442425387467183664693159369602825790223639699786877719890428380008154445833430931489807823638915839550814692134587032273945750023976055835950323104705856230198443668085443863822010878167311214639982316282793159301707134916850206984478072962794605802708440931028086926235007064729510796217869919293336945306235807634709270846269572883993993001130157365988689754145956536831620684616718762732654150297727476403907809974511023110225539001409845794575778087923971249801452158453268009288565293308242391889382841888562510896681580682518854990960081787359920695014069824821132194075318886497519493644833609469951660365776967575507873007403577997842925713713645948582832214659442627573398619924458835216487334369763545638481579828202507310607463045062946435089442443697681553951578738314339576518384464550162461262344324546287699332550594754113924712799866453075918409970034357249898579935113596629876294861681296083021272032939969754253206079163722286818143563301693317655520458320248566527946051241619921754102214047447167542813140123475853375228033628140971738171946552596817396607082545128893368210644800938329539949785227443689102884314311521732287901823691825846878830731151195444380809279427385723413884663842324939149522802265507585556824946089129886519674369794786495572472575380541275916303927101467483714294675449741573777849654994203587853592527973681276723035242701700129807422498708956965371894096882048840786765692201111216898691312459576163631816180811856545630020651479751045113039603460501005563775878090982739693344669305655425068467955776837972047688852767664913973466729770810460150512310694062530343004647232371266866699995023174078325236462046273718612688743787130640994297837339684649662233144122902724374521280443764176402235349455952976665755985601391159200504736738460900199079402882992057062830628692979872269580151966830674553698667484889937797330063045581228788803644260911910681573858512496363703853272783863699482285881019437756072123511237521783628644994212710116632694509666057758800976945393240096809016005214384466413814413084687977300220472137637519971802579500106317972830320987703038851391442987747224073463049061910137465449923227212465528045122920979891017170270067706415682906693178918474150485694713517308192636216992081813668371252091223223367847665692202033673621936708982041727631559529338498672540205940843744206741818047207441036050797980047403523784993371389371069772047413053197103745587787785190238113526844948552496648305907219205392078832085764434176509614197351365613368672080621256476398718165585133737133949479757475815867576531833226035922293265784691738690427705374420728981428881916021894876504844036015017355047477311638953270829378839807785982446537811198527783834219805653920095847470901568961649750194411636144304036412012716166100213545728041674800200133574068952090515919328109680983664399437492439242388430739808669934265938644157799296548029108834428583700519487905325272953847504010250264244113341562327704743824974451286521398394152094428573546061565195570062217291906473227340547535143267698527035145486972812992617102839641828001335169560312128375127632063438283309024463773915861938244721995782275356044088727307086404923187118824145767525604965329763096905382378396835964604297678782217337603696977578104294091115619201442291841981721026938969253261571485659170261796260821613073509728035275468684984781151007103345793671052471997667246070560300115097184295492404583683428045564241362752675932658451638602585341236860412118737331044440229464966921182640403020248654276701904909478035763455771806586824348995051314889810979563164112705272896487511435749205807321028233251989278194607363502290845703631791416432971509643980161143751592146642880542056178024927995231911228037214559398206191680015104203291026288438815254659396160596771001220119768604341111615240745313818374670656648140802872751956517889078070410559191064211574266312796000064614727008344750796543005174608580671879743898518852669608157176121651264450367547356494771806412392680656287724836374264694300915994117512201197454194669041097279242858839452253244937229887576666364220119393829413612981607234251146281214975567876276488265640369833097357548553308393078652520220752470650312507087059150490158787070139744385835903167819986537093180918240338216112490068786099633928921250056526171312040015662747578823938782421624854944381084595607336959669425749566749956831831767898476702277124327354766024041859347559322249444401781171626965287862247741620519761773106558846700065087714886368130775568592354620001200550976464488236306002702340342617339353342476236151784742800279523368154993880832308827209618377604506379778585222459463694646028659710602365728995160707605001979778641323601959824650517332740828363129406537691325720430470088182163448542572439340842379731440628096092921658117140496307774539394283049890479029491284932874178495808276592575177475836237329718146316053449130240522414348332633886890025836026897295671558547899101374414812392112916964432088059840444813781476129975320414730587241533703880037854792552600165920070144876156930758309488269536062447417989388431694101205128104132898463058330454050204684888462610743368467797991326224156988116878534907754570258670473330261178020574815524076587992082856101290927057525548701503896121435810808838412332623790343196582151809305332025216553352890800973661464848365901835603706522522738512776956301571906841657342199087253462882713235904159589157214031417892092303870814592248532340802616770138851549894156103325192810867036207851982729623233721239576048649436600473803822472155560486227432015212833011703942599501481451449602126080377181754656701575273886372963344008047080935422230434931103332391129331711394306823007027232156004880141792771520631439909738975323093305540331633835511657560927151826687429964709061218734073322664549901832254336226712421613368839212188483298793926610864522539827101137118444136351165370359723396037644034888672272059356751121709591463589838518185199135749155926254724378426854180200643129842571412628547175471252669346273925769447979573288631977481147661802493726017623608368422181182540054860892239859959666731738695120798811228230057077286963337666890271451823382603148869569615241258513949523040794048119963797182960182793246733349368486679860571068574176428036635762166036987728044913421018753538334937550363482826062904879616959834232235505357560201649970297627827200141813916248034774148498546509090373063879135247763823525985164072472327076400523733986503263168752811359537199416625919052587270609083700040653071479729390460310595854908422193942139602346278777201892810828699376794947570517205464306478214346622263788253096523261897837802015495858873288023087328535005640513998670073683499848217767563071817413230912516341406143083072523828300142891192941446466605178231874248173916724267506701050527265926365252678273328150404247729043078744890710112763808774411499509239392104128322046626999138760474271202157441236982271033419360945984752425455081132245729934377150061795018868278338769179816092002180356306234364528245737621514352715470588908413059098102159495723306969659673909800169214420680961571384532729785835544819605563235734004291509685225429219096483430632795238549255939340866208488176584858550116840497310709965050633311930997676233087648247794866546564258598918949187291646490161845463142860978486685287239573660178653755559057075886977437041141258101526645044392762677858858829091819125298379966487699556894719251821267106768456487130381651316700493008795592386933195247359960259636075844836920234971147098484592793053794534200951682663681758787799736062511556371987188131359048096395602321843657036549986471756134999075470560996981880451428998321764007736850690509880827559019370162811943097779796256724162161865073423131703170852240586208642792594414042531205499504006753183949021294380674162855148313570453874441582326789630896582111022799654683259762340142909341650151035751671749703921400489525844053158030615630128188764996482305320053823729155518280742173584346498519778848602550787943690462308730149672765490579196854332738410463237248447335295293269786244162918288585533306847898752509236696240660734431957542509417169937585890313292944058214567690883449752062369767884751004390572407426702842265144196601126578676487183070112476948822085421660467652715866604637409345001471212293415533388747491612589286962002215652564051401568855954823522950443444205222855873526239785658375973837432926588454261921903304289124070192583296858458644558464998297620270164898486021448307229627107575782880206310364442401878219070610648582258407734148893771404904231528734098147348825998582166810984384985424859976305742614923077673865108146568775429002116697356336062081969284043369127218803350779152109334683636345103224720668286953799331809944124619921357689024669089835289798085180593385656784110413512493408021410825615311436153169134680358502414050998701607072572728819545523715565418373805417348446863831318024480721245404564156908357752043705940319740433489772378502689113784184555288658005618649551180002532721835514973951834236368902333900602179953794876058469225046703856978695936802832373629292553906060404929184009887103136142813146111863453720994706049369175121607180513902418223475436547355395936005487247216743312704625268922677526186475388484014774797944997169150078584493489105112644353863453273755777730055023469041182531566778363306047534051163556231859754559254971777178883858097321388885323151272993916727961853155819558989700543294922922720059345388195271198648548737034082857850470228168505779809266879280168725690698727432798835381726227418694800746148736046318085247611922133673214117285066194363500599836594353398890299130772891069619940812786558729432754657772984561565073317207559795311007161161166101678301710326077323290544015703323691939172466818844029047625339249238604724723087747028847838268086826510357164703043821489838259545389986138995944870191510145773414594278216062922497254725457835790122151457373859360669819386093323046469812930881023983535797855289827658067753600371734651328449240300528792830599160904900306766484387653840678301548909798023164518225873392604527819145722678920047322588446191014550669659735280209869345866009541948768560127424175809981138662651577078698851172472922696914729131251827547904579962298635298774101553932099375426605821031954778175457956974123885938673716046972430001770315178907587458718610610371681680709096560374897398396959112706668993688388568521720760161874936168583563147436531996817239765546952171684755814559419934687454227346571062121507531395607886645600433148161467028017288343202839392426213202561862787813675251928770701517311486698183782593702437708089804580991833232874287127289153998689908159369522498410079735429271230847205645270688962019898366041154759034195357259247426399644189809628722602781211736767019392906712805990915814922055027043605063020846165228306883306959349010920610096411723261591119863816605095141862422301768715106805941150545069359882330979470551853595705730997189307651039362604561035969347407258334995100253048354589070652025476398873466322806312410542806706513772126304910746436574174667943861697879551539991999168522064657286545937430955358288561637909291512688921013042031970808614492452800300163194456122416691892535448248644763375091305505457287177661742447703887136106184551468642495803454264858026901245194495415123165127488717563374866054726839698772870189096382998602904252656263192403820274149349671037129664274559596367407517322650020281079040301101696340798351636860784305618383026640411156416412822086724112738199086275798303284032033715372123407123482064476511911987296817329514230205868955307745461622542918054608432034595923694444491495199959919423677670112877432458697309747689013674053145099903659947531042328001680288705018359533277976807134651240462206923899034065037765167538324429826601396249493068396793793695068167915773899058120728345919235032230394148298859986112740348522928764753836673628462726405341471667467395124015343962629676456490719066867727293596871770589636401846683070379676753510577377315318830314697482106031742211733200019706108961340641517062308266784183974732834019598499011121112711353132478955244222838806107230434219528982411155667704367910113387112234181909881936890720421187082020841273105493771864662900231847365886393898036395483527196913422462266979906460184720505463842281517075669592457671471007191362838107136902355667374347186467750315604269417424926965621123044928901007402543675777151601314138058549886191816986094597254437257784425929918229049714366290453768702018016951835226653084283355458979132754342208507026821298332124667723062746255634653311667815161848437590532672860473353934157103221534982684966169925436409644387122134334333229588620116641668729531822617788168195571119142168488207502017947798879184223815493653043708095327236402315863179564280727991708963186350422791816133583861724651704761272233100475065419989348093457288320378017393174286775110589380635078366578336681814251079184073209407505173413026741162325007495129155680374809849352743648952912096603228142274520687721262677399713582241437597319573673497034961069820662300639381794518415138714643936256518980061826795079843233864592432413896911807280159389167676164489732276827216201205486559631138625047228672478564353255884058051349173664698236568657298606048644132712596685031198960815939352969860843716485888825295430949469866720227898801707397860403951953651358434912313747792433019902872308119779475032395559005805909529734324953793680227710955166751002719440110041332601130819132213982196178526074556467432802284001001264576791456752035583726982130395533296392359675904715704713715006708010053391785658943996778019027231984004839601142187571341575707395465784830250948365893101384778581419677285262035762740761364768472249065441777503789056480322346673234601661445458980930210071457615196069597720733500755720797682601165466948122469342699731375809660175518649972875608149807048042315136932136640171229637846215205305536149022201409187320503178164410057196797716736140163794300789175380406540789330166083402246771891509536541989136566793560137220981841075996223960266125869902349670188480078321702097123507695828492007340857946474314264689498701360922106077569483522094174485016882877482004524387084922022468467017610653915091968183109837678733157365113988719438162162436269230806076040098143398464454336421943245946329143724727516753838282363045134114604258520424334764546004606510239694958530311707223187163042515541654700537390222975020939334297910502684150913884103984852357074640214167743272548911183430302712268157067069085359944886528647144031800375827027006008472542870019266099989498101592275317498617298037560300416298943908218778852194118115965724176134125105558319947539521340489382297611164767043819387816649091792572179557468602235384415761147720686860320947363191928205908381887192571514414227239829064827662360340774096837204600129581692658734424886600565484310764324865289500202044662487842113530681668093472085167186326442675080384964834509156870304449875296787044422378211365428703829857902653886321405589857365090932098018408112781747038028751704599936477105793207376877463857594357624156787830229598525217214215700921343541673442650924972145934054271053226216063719363118020913080974523774549883511611221416221783448105625778883031299763826491667295107968291536526296791346980181059535426832366938609922326062454774294930119040770137593199189217264684974672890869455931017232040717499052794523298942306499877330409694630660531499718813823670648175856031213146861479427172655341122329090864733040686550446102925903104338042573211794526896683273630042726027007153630758202934481543270356683821318419960730631896307582757319331694998865492199775374577769542036775817318099378994265389521467677362927708424797404241687776713193112304281433171386144048230125642427839868877067450676897915327277718092790352178940146342162214161927676712898205660662372862522621525065709345401111448865541244383378094535735823395218933176139571025240192079161795544787672569005532476289094032079893026232803541470644587247898014945002035589121018501497839404606979256995785648443801685927862511441736215725443328697974590102819910973806948113869324758654399447249529727332471091944617988899722756941377045629495064842039595148998460945157777394816326924371823892288809848898735517779335715584007987943578594621598478480784284460383694625940903635059924261682135341838912742125900496115698882646110248029478707940343408281551525308628600770983316191118103429508929026960477714764754565491681211144807166656463728563352682702186127450689024584329874658090872881583870718214477962967917270432950653914231568558891051999323468124144805348659536663728765905086798338523463964682208928864939242003903634893052886157171308877910428536192606719704548537264261703113998638440675720118746124826037199483910125525143932197013789468508096366698198146589785468368921768904797387934048428712094758173099339135078818123838579414098418352284609926285999022551219747419432246425521255250622034467539735828155588679327643027406134012520699189449804635874684335666772766098633825982695288988040854321767066221827778188633329009548386232940127125934552186371457201193050669638555710049939510909310729007754406185603526176400995689124254952825812891762016141333159809387546940176029801126737031866695173810605508717995663245233330866421845164389549883817789507079035029584349624174566329144865279966615161223104237096762375638257385671382960563417754797468960210503088729399241519401391589354415111306574027487618858085810762442384733808306804520459795561800251921761391550687382590969130798977626763930043815204908436397700699590697414528765609700425970331604481657810032274471803001951194332129414978140859841285890528117897073546538359579203414207985709824506090995132293611338987466029642188418249324109829603429508810117111983952101933610304442484472414719782339374659451845291258435679563399468218726744383120153517211767937752679201265378667192687095588331895458025367702333711896415518565588515017430636884902925233613341054383713366322144465771644425541134132884662013560677045804377298208007812516326773480051084040141654670929724266027757240406304589936049653057163845649794763052466535651136551632736536816411119125180808594830644454556093215688224970844753477342421038060243630276991198241946108867070340114934233021030331601000335272860953207071893047485755522933187739185230072166821479033538865526375652679072399364055220726072213637134585204767506483868537897359078059645549605182063903668629247361032999856583954948413895065605536023895680809679544569867933126988202384867924705096657306444894857488764581528712001271249279526808804797426816335081301001108726219175872045412305231529218479296545933888161181265875430454092063570843804990716229907878880979521896287140843794950991428391921747794522180951021027393052245735772784111904491401821931736905560654585569276432649009081341363846103339676814435003449035004647411760440167646529191445866906176845669340916663654729333706837316386151287578030434448181432106946191830491389280172773664420881252426609666158091464499002222156691717504581452015837175441326848347394473167616070997169561347339232342849914670020539111387774041615384240313600951501322587611005827528318852267312683402006901017368373318700392614352767773695403841347440113579684774409285567746434036215043699938688983390061984360196957020308011392549688350738047674653341464581206196886759221568345460709473154971738693240561685955923901864950939971743606911069463719261236430208532944422246254106490731203176762313137347402889570480909231076282933905745647794831450594344162392727081385525043032624498853931045895632818807167294285688732555056403140304585971032393512722876872571765595280626805175013926119344661680490239456027111140856092719969674704971505244117576863991377573064266098426925036854007830962029307777440324396605462503346425481572533730997722189406353530481669600849231505789717090356987763431109495321696773382911460640418700095699869943401690779058284482466618096456498847203971459010034193176047888998169923851734725625259760486911797225718797042496551805968567532456883884035863806520745841490002722383439033004900107089748734109296518884962258301005681721277947627227515373474748969674585450075606162776495021701301080461612852095431069958081899081271678308803587107907237620740576798137955881968096124541770935283502152798716141591394897428198481580188860545140611163606513057506626552213434827277212280604374008574076813578971906045619984016594539895573809808957135397627019193701430872990707229459733701572225811373055979974193073100022030994809762194126620950116310205666281496380524633949475369611234757159937651809710255090174812164168531204003193935305614279868304334400706849382626247435462370315726867812520939648232021992955923056319092722075089533582595224169192442101495985090659562191473771819600158881189019278659184202605892453419282157840491355965571913459021062973662438181751735093975976410448826551336982903751481525697728975248195157807428474837708338381140172573423825166172647481534656262850665455873376362023781901219342496546251512762555698286885177761984339021093797322304643243114319336474761336290767459105744505335900770196277029968661390286256233943906931392766819856985923747690889176120965978425116336796658858555056016650472785393167173562199209533257905114473157001766991782425458884452915448677146732345075453094142665266908574016634673214258277503628226378709777968981386970393887954967652322761680859156810375717271793568945959863318744846862361255279375411649736227629738152776799789228135049200434321019257533553717322114149403064775295599780989380621368495698282143146737713020065754960273596689486366806112108854844437713404775356980240121415359750560288539855458468997822936651398250015529437639053472746139755518335639696065726310762291390381013074562629319647681109731944970127751089872570577183554344477037474636906080715986146411363504696226008574233613486352071741103155201801543559787742809779833624214526117810270611922639950010493783160295528257655654588155768420090337153018405924345530138609255399409027162134356948244292778402368150813738094406217298604109874445317339106921216344540039005649953802030707847550319607527256111963828915344155386130219995575681788876369650651150780017464386097611669589920280842599995121112383933154846336576729012785555013832443900666338964282596102398275760452520189969847992660606748440539976700761594510444459023980576076025308154976931307045972077412262132315797482151101582597530097942319993339575599457735758331502034408162524962105784461734592908819088634233489169182018169818187037261449837942860453525565383787472702780636489620281787222326981625256086988596265450114728355916102763338803069471668148191578491476337491957232312930173593476636741780035420568201047229385501168757491345694330034500389139179606230599150482813016421602064298062470234263817349647083350620686573452101182273994475537637304850705098792715469732498738412598980760805769875659684025046619333921532970559324175006672653140612077206481921486348394802965429253932428042640891223101346179637864072786765632487167348236741584640383090047280791483721902748461101538447880202506202620353515321151226215762200713581189588640840296121079142104018997622438027312303068058593021331317276118732673793140546251300070072960047666161849752698473754519805591950165445402951230456360394946279947413865731359508604087043045269038599715278834257167057092442745620643763042180693630659714909149320955856044115614074701501224965202728322981586330421085233924731123996691549309890914410828189789158810743011490844911866713524333843596724062802181335049776878906201895148136624289834148783151392505958710537561721882262490889452025402859313117635086228298898231382629965907846350225470329398110552618601463874013776925806275146735044324875200006051783651797804577204953842001582971338098782021798497409561139911147350711498234530587685481413312348458030774556253450736708829697189587048320935124079612178393465043295396993703944685662159269126338953279340508668094982579280709735041080996804332299862227858546490006704028022490137803208820773156065431640126580477337788376719636656473434914134852038426593724254727463524716176751989856774281894664273062461139650594820308683924557400141759880829892776504396107886907490187586635037041926926281950274545158005108483166487228905315816982127363608001556650575409143250352369205478793091879623053003389698310557768001103548595572212245182463996461332912496780699213652067506866154250628832163065146106237923302025889436290895228572344473421586119398579079392089112298493894629335142150545985226325670408320907850651053604038422942494061776275792242054003290580313406687389424361825830823112392989701071604659514957844692156638065326465621458461590756807540600279554722731358821525266791757660442883103800806385501495840102225275588859592219585076312615621340030538164010929972063661981920863249149129384840006565382249963207726859019589010295741631408934415318824119010650237355384498326722030094312791568320145287141284817725681052935126936431710461682956510709933057417230318203758318667570710509137293801850991423487693304359927176597349493290821171984699037789863313868889377006132566768695693952322415885298036497943257338686796518504003722165952328853915800816922964038889709684467636529668716865922839085634131296019627873418695817793625375717342503818040270200428302011092051083625932250156847751026243605495191186606515629132446915504533461144969239420911333500225493933997191589467626727043153447187844412339519009554205764810329680778725163604121501081386190781392953855119960552082806558586574918274063220032728606092587513367179267943665655108875326685656945016846216142839173916592734635957936601961438172178295281663922954892963013881864896263243261782608283862102479871365290603102827333775206043150700912653859032402306252749547087003861961289876613279126936416385188323636710055992862697252495066275752418650218712591561289409558366198990573480485741012132060322977165509059688520079374440667329536525628969827539120767307076906022725816563724327266292944955445504159861572533302500767398845335657361231238436993670262038918542231528175246581659704666952430768855350100666568550775114190166290349884946637050163174060780172130353820832042282075806593313344795230140816503508181147947413702078826657294032700605800634422189162062160965658565243390383860821997550011853369701186790903674465728465473307358702395000050109505327501980608648304044255806624699840246910200781605746165717741346751971303644534746005330204677283213460612600418776068537735388959778446896279030421541473805055587731901863510259695308696666780314396264591411667995829659293968596891986461344297763795838360707010827255220611970456447835855489864852935140919156386590135386722821332983562948661003429786455438390650338805556392711527633226562627588000086177360994603185048720998156651859181633264249959385286822790812874999641516529466227183103939995397220805078121088373938515497409709589899417909216933963895906385836225894980728034061862507935243987396997570442015611287470882688427605414165485751654560909045487899254274655250252278998996115170645537995910572902892836727711836979592926538898185941963562175320651046927562398183842811145262786444618703925571196332341442192268093158390351911743433719513695249191659738422523887208990335265940577204195027479298687909084479142974268783826672877853477949255186854725440549757851664259014553151849352151980572171362957766752758973427942685514167225069467272794754428298695049953800084460705164165925874924527390882619894272013946044194402111265313957101036408073804284225213195292654253944835355497341273965637813110123190096529488914607553993724565181617985976740355859926542975855105766046650712821643957422401041732948652549563287822561735961253008978330890728834736583494077365014776937765999642710797136975544515347271498234230565360317472578256605961918708368424039360434789494684108978919296743239484615419958003584139427888704312456807819006439810832057583163011990954425768709459754072925823352845032085495367946162440236027749899239327875967323441076884394364490854796595847250057839296926245889915972529029220605616131345063530870411904106216357077456973464806972382841793702812834308372372821246134369951387426522810048037561092745412723788931332247551409468670200157955000336463554351602130965590674260038070877416964523020078928379339885564851985388819719375557722388089154141510403953903826422065059956737674536024980159114867113694641309224979407575193773163945702917652029403005885254404531938294566968221679111362566399510505513839306289143085948308928696608990104444512583811425508290032236035304289317408126832694120699651530755119329710315463633028455779257654379587356433265988435904100643221729387797187602380990783816421846422679853666309985275651641698095135351981108757050723617895283882921203641347357141533077467311071763405029197251096732669903986945610200199338310281205230987759336147296288570755980066707785791148157239964304808501606732262649000605862226188049510494188755578809934051671102630528998623784635814202235373138637581699213710594584793552931483951732235586892825971240516296251855051115271864239820509620795761807754773297184797732707609297599888553303649238253492991300145113842079924570373054321935287215015820200849810789278659308607066324768706150119840628114834708394745569075073918675826727669504810554143046649258359891051986071334335294604429989967244006946784460137708431882861078281581057952588234894882451966310280944904497701443454419772137608370223690488601337238391831511171306608024483439926576526532652500788773422049550729968266491770323221794037510967985859985930015128919266271927249101669803434322279458028861610249089441500864199289621372453923258422061075653000813279748766668002115395548861603802053541174420691775298466404635462837279599427315781015301052252261055426277101500354728042662348185728909102881928657829351172133625421973576174999495736589050644715362721222393107262106528304228233413778818036527186364247047760877021434192879969149110545071843118292268974251507015766523704304305935708597563621896567397020207426401624928326617078217833623065808701622968251506678764678759031409276124842318394374879345368311827697504716408310195264558804709569923749972907082735554644486670677359619835958855994895065960657330569245903099736852773189130731392181694549604207572027386255552550281461156810699376995117328540904647259917929549030942895679174035808498970169529534987542769691768453657475576968440858123725405912913679654230882420272254072913773341628522153615596505030692682806839915989514007616961242568474057669138195514679064984204371743845089876732330855925005252944353614943721795435212761671194200497912065774551652027133855023330213957630817578512414236645050810456355815998657313884885745860462788557531789613654584126628041074511688901504651521019292030057874731698503419861063649790411216655572281746038049042378466906701221642005132573913854646843905411346719326821703637775164895665313056366290565466183711333694199252213325938948378706876572278994910022850701757991161636896465630965128463790828526124029020086810507149778212356941873758626753606343918546306497349908448430476086207637795567931081877235354476108196136265152030593748163742538607839059650808542507248703770742950183659686787248036719581183308925570034952903629770715520121786659861475926942338241166518371247666894567558009432773360979928779751411966732232386906532494243699992740533604405556268243758667534628242918261409528874641454715313439493242217417729330940651494003651979855160030952891262680976390315087224725921530381744370665144712444306961929415359833617053693320925843831239038776390972990643272854310355206568373100912476601001721822559123526552294162882479204411155764336776694550648422080474097615861681762637859193010638330329519852159396347094696600537621377961595271715351589165581798306289235991945858406257898009419704558566760879113412525087505397853044239874056347153888329819168803552433692504666104184848814259330486730300033833600102797236055096074499115188230903509078336942976720741209980089091252554309841646610183491419647438200609897607513459230040182161788573178417523852018443294327392302726998727054178476376665929309916866558801573685973633140923382659696650687047019047156126835379257602911218382347206285084398459469358677081354248192044678467381042742973323944811974610762107300325303034314573455446646319391408532954647312779063632193597338591478971768810924401619146224986397168245215367968145566965011234470976024877265500964388752450610333477017764895507481136733381400052834190163179920656798411748658825057229202800088414944002848965567026123498570350135162958245972929840819878394867310523806979897209509471189035636810246337426319347672190833127555861980963882888407096511814130891086934439938594566377212098597446560127623244864694976702040545948111809305276157437457616235492905386466980720097193130144649686951320576563053171055429420611357456878118482610859937274380496808891384107458099304608811912022781677610446520850353917970080333825296589976480112743865240149896673767472764618383696138247734936834698947644822008738280805766264065592879216300606694517273166308168211482639236187593182008375918297667021220156530018056628363504014861720599226441403561814006283811596239944919297231752027347508402068735630335300588667097611876963794847985576169502709429717514575767204636084690654753708986106640858587472614141761457688590981828216681765545127678867012423220679090177845979842752726650336113157481552145551964168591256144915288066171744326901181398264353209710364758641977170030060277330419947254688307908714650706265136561791121855547289442946049803042905400722690442778074454462930723891269261449998983637684737526853956953892901068975936577730350493677154019802232162802819059226083369740572450631833461636795590448016702631009829073266380692150079709845560416317816803711199707340756807109663955549772307217611604973164512362907340924209750033804745510089091576143051290219022983782921759774670755942195485656857684044842379313462268771331886107166365569500818474458301415765705853629738598088977804677496828502626220129042163840110212712803430731974533667824131189602109525656069539474565558232136240653484893537301384389042548276487023456639850954299876581588948115865410002224509132158466646903603601087151733086519568681965994769165517223280521675486629824657178311821556055464476333242377147459806519236168257867166243795450008040341390684035080020164337958723628531061352302983279157327177049115144058661077762687475961694416261198081888251687668256067619377650580757360754329970347791650845390777521128185654877075627103728451254962455620008886084133080903027555162241022526753071694004590394828953786688247416069937331178547523024269637800201701395762471432797894606766525170469945128037362437594397708608527131770589167630900215525596708952327192458840698679359657539713925749537674614387828726203271480292568389961422142537483280001876143833595189393090109036434995367712039114162041582285787170481006344239916715778379609956680210500348242084052586471677191063940787809760562131984351422614989759595545327529508404659371114595313217165360160803733985208301780512555824998265517995639640486538910473769691131233933022976641784354321285438245541879398295555742034479282618035960195737102135033036798485877690868932565029823027441518180713495686765449398946393450730500953026056502532053971477660951390338621671193289606604795307467681205656001682759474777846438044472512946499458682095413110541590711297249806512935581869989597444899165209656869070836095066365267551398797232999936163503843341350032625867309108623315160514885014736541087871995713349991892316795932028018292677522407721076804826945148463037798091561274848014640826149457235710934129801971057033117061264993026568041513937177668198202486167065483613100926322519792087640188178801900003520779393029890878608763119908669047562121938307571346350290871264696770941369962454858018330881970092777933763148236786518305389803823159197492143633274412809042314186301284661376486334268786821870257288409890465200018964609463517126935709894682365002990978834657005801231929640448390979686681459548956407277845795487688874115131881238468172164391871562706591013380787410446090761759589700127950288665864332067001987680774302231178476210112917631388759058313359665721220955288245507216075467446529508706806772938329327460112550028385876105720049439683044280872628130002204255349820678741431649717489678969657754343328674995348619020496548404570619670791792501878448050074927917700896226277723116833788817952221300983927848127035457054641745974965477774537167951338294984126246407791118245510141117906820716048536989076279918554761726507967485258798709764340096338820635193961292338483785423988312774977396527320754944259261192187170993501693932307083674948774207285205543586959353107778942708458178940327883965024432550125205629914310681446440936910246708968375601834149872345400123330944276954885085516351903996794395344509188867193547746123694363250663070466635073146389863797015437210696107477536718094845465261977114094639000489092578902036248651391469826853601670365547903022584118740828307852013860472634227617861815359096409107562575191129945862930036706568096644294364090871190812117406439316763540388462041163750616796839742679875004336539343554621542512083576237597491811595741332881239151572861070061566650218486043245019000400131936327511327013559223249229286827583637290537003731271660954276449196506856433161720105685362912678184783881489124296203857980462580457793168395583992197469414638326676549901436611014150576427749365709680273457168980988396996971035883057744491868071082064224924685041413117600976082350648415455428653558578554410138110982814772913470901275642910766628227063671853390042331227350101915791134268830525310110516129465852155255598957303468067507694438355227820336087845014094058425081379348388186314630370198021907763852436205308767279344546846014657675973276255159411115137033297091485304071193414001713227149739346986513432268254887104638956153025663804067136038377775654368631392721131733045827718616174610165580542644094229047091499018017641725931478775214887191636624315842385690795151687830932473503906239809736451586914950128767509524727189447774415793511856781843309817000852624930473143743187952866460828173980977935432619675583297388052924309062628790216573310986759840098237974271867070855884057346426026632404738059366447428659597271376077150075695705732514788813143922179930184341020079287473563154241079332704146980519074294909954689031249874785757710615983648485775501342670460683086830629850424824825969180936273181856172920307483135220400949655894805155541387398895186457255245646441883922971023559706575808184306106122901931220907559681871928030080112301127099806074559218231462564496169468020508324137936120526420007873178982491405766763224314206842386110226039384419136649544565571232227544804731548777884655605874013323312237987967432844652407095461400905998689536565777184614334243065228969866834154925509200638230990097231919367508494001057923529624246188431157313853069125002389182893876140943919411692264092751126500010180882391659813369173999659590429069823627005726288715652535883375071691378330795430811498667153286209831738944177343742287564444599424378023600290596502697181195729368073747628389601510383084816883244398838661423003867349464314882453574839461114836337265956796929852444388310688635877464926325658666418350232375017930782494106837749004652688176656970930844268975577682123714724084400307267391552647887479370970001224021793919711664071343399936543273604600739735653327732971176935527611240686303381620880463288177988186252438578133831672058041512475427316373112205567760316384422310652666022142940104971430282476265166275270280777316288149260704270006998751259009663331913162058353616148843133490770675589677268785854769400455018325476831335002611268024264337054364269168454951970624872017093775752346417682450027699571731695048486066491611575387393153044565992720065674059991832367932737440373617365640154814824838520408044238281246844714470734997058286324429140418320423103034057707627883832157248409351391302938967274850935773357829600330999646946362054718316147093475466513873285290494435272843252272994078829570442126754775586609123775521345191855507037750005501908201645077905351488535866096168981328264900902057600631532411915289553748287970495593873222460421438977649344160216212213398559644162147315367324668107164304074355693310766361801995225616588561092902807422167053805438035581594120384625310675430443532399048138280875264830523641953683281427802800533555221643744697092803410414378934344726951898953071082297081603116983623615769414390727829732268665381435077316727750132746171322819265828648926172185885417143155199009820624992667997383333252316073483772981329502783289893964670200699953966401724010907104719240947883146008364129248538190024424170340397068546899172092074544109025863220179810794064870818069564254473316939178944248909103595626912245997424731831519808026525320960255300140239856559345888822799404082053011388935425787476592912694178640664325654298182758859197362493061157085765700606591513063128965883649161148218680963204084064652442606241191323036971623620531708152194651820841173409888088546383263751517989359839738410680364859324951383298146257013153531515801268544447267922865475198801365520467688425449769284674653996748886446102758513035342105486662019044188793120086795442016126944263510517419165963683769023315120909230906114435655190456558233997168773279578759593279995153407303617343508541007187180118781735246861442652624269551900784837509961293948576546053532204043337192891828553485376227795910934672785870973381036832061094719910590397680810174231424283009094293859032205283566264902047674713194096472769542693898984144322945509014778861217681414148073067339534663214604091434263294245736808899425924496687913253779221849134838213889703497388721908351234627751109666868421651175636701152313569549253531726928974367114014596059254585952871102569254249694226507278456923726188729207519017653734259348080604961019912868436262808188584400223795316497265083481848654929433259960952825486190111859543653553106522047861869856982454761415210295985836368383858484341300531303505836360256323811791628420264138378269521976874764759165257087800407902902406996674039747871390894240651373028872340399783189432116065038533328968860231839533538885615627149165482822871990824724788125505434993825368343035859859285844968504688858271037291651096674476222637200721397458064147760947924543674023584096297877420799769695746650153764431397134487626500232838011086044681920015210823416831507699859342916534232292994605604310008247408642727193644500211591801646192887108666781177027741276022398717281023635548799533452224961421060176687642055559663584323742503780134308608463430291121953793736083977259440492502550757485726194050492916121858509361426375027515185724761851401714593905327825483557743769872511209671906163902362863162900833165494441440248209405547567321580534593416788632878374196483015873491176655167464827268834465344314322854823791180898650889525856275281367819161824532243008208268809797029151253220915219774862269935971553883476544959245507682109290544688455217052000025322780511639292123562173590728847195169472927412430998357641099338962575048330979964125553947412161868687741757727199130371858788299486134136488135645635656457934359891459570755681892494011982747158343477081212345178136649860624171916127181237631842183604093559257207907413385449700700879337888802209862868884832424143682030072737094570382291249986530340153889505485673941334294567119988922929279512718452886676424869688836487838736185173254445344861162876337429706868772616237148185696835293060242170211917284672731222905230529185636034672482030068262010074989920660999186185744273981296696577902168437097518997286718707735639327430073880474801834930508698557909476193523551556764070378780124202833681166604197882763237366659330509336866998658088603636443611418315652172230664832647137831274564596987047772382355912887319555862024320341747474032277033383894203331605704512200940005938575749202485871498726941901327585551668642910211826660516411360368166750260987135970240994011824385464423909705870511418129232459497307304413626296772816078304378617032814321368223553641127888886809762613564534588787650645404351944446249882942047299984128689161343996381574001360146488489726051811022522435350695495970023541504986575517706397542119158589236818776218707808073643538861178881990697974850710201760825966684214600126628685156733924429486877857989480953901616987718463200548395873633231887999907485490681036275280685227752876641769941294253169273773256126499546678821746586110495595720711747945800520285342004978155205664032477827157754632126575191204420125554029780039180004941137372721071051191573468271285026549288825653611088073533924500327811596394023588695699703618082990587885279891261427581462457814733698789096884143013196301541881566415001588437220521033831084104741957729404097147858641014657973916889071615147689320031452991455684380600998994127482751182034604339910987719475264608145071249669843003196438287878998693650319987486580749109033896927034174184285250513408028343294561124197405781862443982886507133549021861818842946389121459052502268373042107897677726045052036506249137434738184604663450762645334123792886994088234564444724995396798858161233249566874394779742224863285561796440975830916278249689543341826172759825554721848776508262975105401843850003692004676644607209006961234639859069559175640297819482484751695623272013535277250301423378707664312273508633499917710992589458391763973202588370122347765877476127419145898238694754360762363790884470912061938363720615193738907560632333208431753818880041497769287809932162979661132213123303849933855195623889707625000776240663473489330056664023498220467642060057732877885362957865629620226639260137420836089717098966287163320193224048589540977685713602034261682197041383492610567502134378675864146665735776205206686992153794059928955562351796349268386265099295551916192665622236558479006355475737674749164567256040812994158637131682007651244671709636689183130781464141361326850974743003896255585099880193964281291488906937019665987109056514565490270537909119122673040692794268702140217358757921639455208717092846995666082082656694128553593308851779635401408390071006410165313314921330968730352128166347707036358630658625561966425291696861354812055839012137235512625350781459819281341702073897925576570534326839018165697327637040246883000368772400019727463830866301035494865294555898134956067319673614918255356106209574822525917187277048179451227164033410194892812946867413777865643954092113497298429790634645739531278192351872022329304973492378103483398738710875823698363854942337289126637557286836607005488858438965984981016190248189564729360748607128479912811445580518305501798272697867169811784767745802655783944511453082194056055322056340867676206833992705794650493915670004524386203940240499519759845447513183940050262288134241546386879642257393407093122697418251814857578176718877882478930125477191771408208390335022252956744252592584399080439436492794650552484081559306793376904561783677286775663786786450766795407305541252675955006907436511441564888172394568577754488836462884573612169908643442564404453646718098334411563891340091033508286215730318980485099811778003314278511407203013771539310159823543585331921053961600029100658207175913276645246642465655812943656998687425462777103147497420098685770017977470968793616637866672315183047440621076283592259765789302227070759065658551958505096007885836895544955193673753563286675011249179934446216053997827612838050267429999367090250221886210450323972730735958381054577191650660721619744921985900575053847538481340329606175394946478218992629456615494739925617714048137985116464909294209089256729821064823139146313641874117844533965133902602746054914778893997571488688494344698263381758153472520689115680486876775958945945011081450315114655924885139339864267620946218079450356212684605747319621565376034078612113105237046275150313031477126992627109784966832180495003683392712770096527122657088445644137967899586227655118555051964137832352090918160000689654948579532909607274969878524615223971196657214130584728817502476902205610618126597781678967214527656992434083518020383678562169946022585952719478697394743421335998454181017036357831850206342787359323047347039579949777539208998271739462000679730798031373967622442749281324078668271116109016785429708538432805336166857878111417360460161870903249126158046685426485279574560650187216520239620825972746868698208892439961638214463343353540467593239633717601597992480605023632481917912938239560325117238955632500836290511889891145115634877654284554499432488723909148916329827198428788105356775826306849443828505822454078169230274994655653035703176309697882999082886455295327710086923748029672957265114708911816568891050057417681982287372819460169605825761331048935591750918334740606512662412997002046482331698944415364765308870807667372098892698640059984364744761366455204080365824013230871194403641621831899717065338116571782478013538538168988386742492314629571622286771973421454224099586696652248661655259978884807004719925369633956629927878960097484411763375779102262128612341380558542359874531490975612612509552683658332110236612041627934666973564388359705702596259033664027948111430233655320123190972315083248307933438701520269246539399398479555994981342481032057400224804455628520507014911597366877161396897693194867269117803139154031101201517611043927870177465923392381388320196328156704335757760087660189907077703889549671835763208430973750651420946575645065628236845110059787385983674296568415971388580012246909362065463640940548510666348462798189080554658499444838387964081675906866347866106979716845725288613135385986502342193526414587301473206664597659098756543084564340615147386287843383827483308707102493291891260237280351680088118637063483704042584583054708845623412818709361259418472953609350718080918535401958010677783836564031587229377494549575315320861533531689836180077606051216093993437944278630339085563469409090520594863459691786260273198292879675253361952408258016701536496315915057324530460563545857836419214807345260339943667667002992045877944318479045929095485067476426412222621943010347131030653248895793037151440388179568768017545868374479545747031039028538113164141820318422712309676102358653458803030405030650589194678571114556844299921206946834035856276948126940695907641985884962261294068559401602230224413426733481821946796826901257673549599033683725569473767419014839270180541661489759295544566705777085647480060849480931257494855108030181215981906044538320217598169770363199036528935793152631221076987277208837555070543362814738845245160904711564318052052292615844085349141861075987555553376836335656190584131826853822931890411530853384271523136492766599337776194762187660371315851058184107213402104826279611497412697798327037499082849405592617969776171016055690217633134966565659266418960633854947809555742546914711169232566114769820843803377303597141202331317166800513361926122929360360499943427575046244848884562982516617617194548617122796732690890503862646466574400775887452686910753905211058546959309558188218384068868705308181826155657299458466228344108739866197502843975799522065001794275317091698277292202859248423095244585477503555418441469642661449347627702600030877279286820529984766483573077361068087774530912285786827383016964840766451729407194824367628178872358158575599254438843576909160023366253872747629891830001357750102150565345032723109395013416793671135416506343841373064537337048590622841814303332042640508728056462449146156001802763634935670903603561551924483013424216532455338407444047623222471379662943956881556908596418999790921259667836648168808078636333827882692669917894459091365761054363297481312933963433584658994584192473775952433288686130225285744907258469840265311504403320462752560064715252870547487601887755412057794434076232163772086628843481180334190719059462678148721509219125584949087146839452448617848446806606335038644983620253636552439964602516196309817989002979796723732316389260211738587455670153034485965249413036391496620301523922192812792202776617661060665198295660122676389797182639653915376794312856760731046701534032472895520218636739714110435708373949814930382960846537334500971352781807465802451040748086590306532919614173235999905943203127189510345464452613859651767204996087630318018089992455404910242345957347746705511100659904557945072922407987089589692050132893772753329760149575725006692899933828665342085386471861746758623236824817115252541569741813056726263842459907590853524033408306832778439483775897064248568826673964075365320630214435118368277129600195466122438163841873807102889137701727590569347112104900706066770995782700131193979221017106332316638435735540669983613748509608254232582790219958985032366372148920410959355357993256027321740792175854672709314507638276531957608739732447567611910792077343499773102983603311688933219920199276735969011126708315501361768366151711553671952807347519702803880417363189358430452308368601797677474188936761841116478790517284390386813627118285551931732265336368883659262398198641503596310997591892641542956136926559244923729734820597495512877992908329453114352685477216075730065314881358910602597360331131509229173808257571189362311074901516808167767334230969348887846263958467282799979862165319092506293099354035998051569157412995090893959957914750796506473684891625751645176109036175921671764871536743269909608062733017994194496822528730606499488977560724943097714888034514509966346399608289770559857452163143899306720621624644745630607649535189643655894789764312460044049204719895133291081130614952312465668140884487432146527860146334123313799932932460340938626394398752091468843116080029968900357864861874504030428031502640047209150682879960866573695844692865705626170816232589801813519625276188568534639031438523234182146962832800119220935547399484459663017165454114386294493194588536307587419644043082875333487753998281847151900837106696283618186506463109305710074740059487335591032930672385266772232282967585569636160573409914531394677169617573980288536478683223298784117430860775035097776372250808747317004535923241260501411175838158133279310906473774189039956773624577972263359206128897067744346128433766220338392713570582005469316148741246674101097149521472672985534242995287768543169014559827695120553379648713604754988841525437958143696308787996911638016922568134515332701914709153562614739429143409617316366768778245915007509488535062749321655220423273849645581317172261298567368389873900034484260580739336956280124852382770624071735855273739004151965138656358574008696303521624879379618956727459755581853788877457046370249456429775793420015380509704985472895066421378410569812191208006285628387801719327493904569703490143402142100601685105506148525314714481874352293063383314819922228773920978224876295258442767421600545808579045610571931927461683086464643943619277584865479200042444141184714791217624755936297954203634691066444454590035932086147634607198964719597150189166558004823245084533214928680877870372882452491583339117721144296067173791232312692166772674750982782939282828026082559628267661726847560076212325137193320334010395600021177345948584498188316355300938613338043986769636199543395371810469321670648415143510850759950815984651017904329486777959995638813189210780470047690176680226069816463005833459780725327003889638860209658062250105182066294457962023128438739224087994654828100241195015344421438723966371601150030585322414897783066465261565392701743738803952280035909893597323983135812876166474083825947734666629602936629284475283650758374973628197600366779406976615899747561461091751905265420707132817620802585195924176577354498568318565364377840131320140302950423682870499332851986549297929060880227447007157747397577023763486725031937442883649024159721251697182030348831802716176748990891585999209610388092250321430919600606735049184913472316989321820169087883629903850056237905701359496044672580677189172372317168197022244944617143635760369001225979615330167998946139999267052829187736532638517930898480547624942509551233394777929499036451836664974877103479724031791526249837117400119812081411750051631315998588813952129178443080988988487255398157206374869901629673951892510843645637842146850713879725414356419108596384155005894367403574592187677702909089883194950894151397137386233843613480544168734523697460171265092741880833120506876269698865924765427577950809471831517513160859179652106549331299448558417342593958261699471133038153026466537290839987475258659433776698489775146760980066326884896646026370873562263746237834016316220347831924128496561304565293670324129331607465574121274767295269854625504781847133173669110412804337285784013106985095433548089999232090296838271388451599761494801833139108069518158290093821650629121550707623456356829720777625180207168874745368095713772412220594317603700854120228147497983218091108921771161531948654918948673685624632038921783254588750055114351085732147310383851531322239168936791431447126672118868276534995374959790029054755921558866463050060584290646893314115221286138605013921349335200904378418380086101327938194417679741560118044406072190907514454595487240378046522959379039663203253648898038997729443283342458351386255119805514426562347621388719131507915482543712387783595492249989679415396419840687246470442323909761742415378070671137648110775310302210352053988105192977270149215163773136014792387871845975203948412218580847060866917580133987788969750721025693130853613092187853773807572028260351912666634202085770729476588474736024258551239949569897685846440611422613043892408452823103904316993962973468104158357664738400067960149806319993359912076395754478872293130738659217857583858304760184504516409726660404251514261019418422263972414836247061848119402107587026786384628383412900344038217176719371810756443706093914464775322359712065349215709944496456901242041718156681981285088189392277663066039403125668058971589848146705827443615249711102896421075138038229790371370905505534648516971966819664751248538932328002824320419799274500126603447516985373885751236295923049155426926425346317638752275704355219109786841680306026166546469115179221969327122177702294551238482030298123633820788959434239772342241833487763895687315385339073334196402936186712085087063418887013930035535097706802250223504646564309308909097580887932460536636613523983512913407848588307482011200911737554316121651350746959348375341414423194054648057419263015204482953147167295272405140121152494400918172874235409530464311444014482433786791398771886855264556623692399530445059328597033219953203330321554402029390163543686231068591375176409961102265712364482587318805373393923342288966006652531621594379355167021870622518023595379834122442166029028197333436448902175475100199931512139911418293686406889488311476253507343237482536750796940808515051218076303430921126574032753315632820768712032084906095848994761582690098710902145765316646268732329062579029564137584008314316005792423173769734264411339537438448522164476586812059885279191208038463039256883278392788979370673367446635408361216149296131859224200763682349301765203319747682672142821075252508201729997946750546727601494265182853669264576298580542874825028656774449917958393625711441832848529211446490928374843794282472796269660546621490871708972760398055698550170728636064161926068046175608593372000525022902091117956800329861497664021917971173931600282601345223607194031953301047298665267435130091329717587351637862129579914475014571975290983535662841663973192769102829567530005304860958089807155131713336747815813528399093799848946992206660741893553598419536062615737501044430329114517142953329988842275635886365329644842570233065030952867332551473793363338701818030343555986700062850696974265063903986698432930605750498666142863192444207688024039156583959034633453638236603685996753857277143658063247599841413082957761098110464201260119430275638652032615458357157987209324820299649977390947471495803852111796637862346552203034947434332855835893200928787045354096968722890676033708623791076239618763341115050049261241215057913656905794313865123471619962041267038474875511671896023321273187234822104437381588514209847067764270163617904445439326563641111946407109390099729242991133993047609714890105775217905192554116887311933740277360246063986990165660196431009795807495156464359684882624410071491774752156196682577498578182708004596452184583007255773974518346561845939094723999136055048409569120562866322583960352052970131327826718881334739038820979860103511974273911066903357208880111864230943550064366915982290613327819270900240633572916917818363326599418964747509060994974945259571310258939752639963041921869501400496500323320943326996482688927955585668146430127771904762578830608623824227399104607612908315939199633831035344566651577677227065033496618142083633333349113338327173572562636652170484030632664545023233510188685091012690024343837597265903948585540518037818698252056237778695617913350387126236076150528089178512405285905326024174773099429147192253239718101529291727335675454262581668691947859275011250869703779669948936115972524430446027020960894230610140555825668093246500218335248795512570453249358029799463162686633634641314772481995613901793997633366199705447924444549932553584662462348710104210719165376650001788591302625473439718473534699481910584011916699422814010629044319238777005259359645919476095943466026682917364446554672129153316621865009571067500068898407385154158168224086009770330154133448371637927990751422001595383552207910174903275313550696085606511379530427083264080820829988487083436099568381991437617727998201567524802005016371491475783886845099370472650341099389127261450940186041399748947734839446695542742774995325424259639060813149887932813009558538071897076257920082260731881667961782054309435965708113869945309744430083977970019405653873111530387526494590339796022696919507522297345639508378356944727934736042268250316163179295831225467701319048169750319316283295290305474591946572277154265499502686091364470003271225241894718499132625996664597600592941757013023663485629694398725806140458548368736705467493643844315947668598321015401151664676464068972200117617154766429142527021504493139558420064403924331744539482719701746364485538073458309596648038164908647896995696658203037990823490375238283481060040134401646639134071406720636554542840226577060860348836934632972440838102623181788594937737283905261594338398093217811732900166678839297807894173410459988734786636772470072559296389760628097297411985215038700276856828478320021567358365589592932958562402735432252550211326069161233332730536974325268882414993097342023367843522718787822973504020711428048325067634998740890906643326030693193400390981828198163310472259633080030500523449209099599260927530521336490665837430936224084739042193705714319422441745427431459130026087849408333426260195458672399196756850010699485101209686258590650621181739537379237731855280708714656074121336967051389848333321870604070842160804549627548846706548476653177074047663410038689832554196502996105711434331593772786601374639062137980739628519777436653312139545549365515709281827296022072931428810632327800435644493490290918900977975547376153846948791843960314765704511466904538861295109907622647076694505976269062993960329619774014146828853468112078786413749106259536580491333939034228662387194516123653412184524521874181245525069749247770476189323385561632626196912364264004053247509656241842725968555324590955015796996190281648754013723419739980563005405502763190478726661185241350824988458872004658248559097006819497259542169545466216416933904649488522547504535643952902050084875740527208118587727728150821578326730283786471568871712194591717141523815220924720745373863030433594481308840295260237770313824568266864920199624626972899395068490901024181297439868730955012229094856666107797695536966937067023852592282718620599847425117052727743669703587872759570783256432547654955429259159051612771845875991036927202625207491398439853207151992647367363643480861631041453409140448215323823715953616418690588317030381850431568141301970741326287926649805277935991218251491247792495016235427332277202084076976312445393603398540114472886692960701564783787669728975864640385340615743790579986690448204885879311162847097591745926652559476723210960276043821663005592626810625784070537988303110518907593871488776086554619234740190779707334385459093114167650897433614062626634976689056177308788362680575598859038637320327220195764904385998687140381323259957570610183658081064404592730906196833459152961806738966885005578060470128962827924223596148602618015590977380147342729813530004060503467376421793271027910868193923308423812526402549122072841906037808144939036629362166422030837751574108205791662410265083533271721045985830041136616149010895500070016472018886859744003629393293343997723710349271615791608515441651642014352166649867628818889382237045418292518365760311712705877768982623393439597267892952934980403548731340736264243497967900699730845037682143322687187116453481950375299673414175090247967698335001008916487338352616072039859602828443884064666405787050572014014920203796014912313600402387847215990074319672771551982514512312532285353603010453491859840545600467246441343204393345626457349072585980498054642489461697050523235478924078120422345742603516453200236693283649311116339825689248027911623797709099731568514831424754234559480714256917219092174255093754292548393623436502598379141047820914944687567552880496727933037557358644708044117110050102610728237111827583576204284803505467235191742898657106962305783029170586185297527375323405465056442483318675667034290627262141079809405037074373563349456894226516927294394787864024042460560191315050921529929910833460811730228135660716273773500675428425311027320334516771566871469257975421852521293228240875317527289777678017126025108928354585626625648420283233326652645771872745033997260036241345005092768144662867429867871962531610357185986803059276376079503158922771857461224663407101559517841633694051986712266833292604696370168325558043378559708005063432743743391159635632503954390528654318883666353518146019520186471339332227762465809881409857703591253856895580730162319931175451448055597201112606064854712268716554783926249833306122277465120971293161582547767924896257524048459642811205712338978854785862508607295785041391354485611228854857392606333472789169851578679155371562435052010739518248399530110532926442416843374842599975948386300699282703813556359279946836633266519390356303825003909506239663012545120791340795825265068584262115344944478960167393053824886017427991570346998795908644943977093841138315162626190503614037799744740580710235469963917187786757202543995458940366501942416496939662064664943197554136718754236461882007696468880698837936649896866066154264100148866179905919083556812235940558911967390663639441689440905222075186811776791893529875975685396101709431666394765656384872345994688835141685872920702354070614181583752552020285605161551190955627871345223082931849065052253002350312135192800060822883972817200960419331870965963091958774129401227148672738153544935847689261948492216331998142967308060208503522092877997875912179187232502042850826069194991847035042164970832923762140218743495461921767820217224542602563442361540061741420829736445442069613068574024762015509886922474668213829240943234249677920814649588739879229009599279840571925607557991151327515272217403832609224564983538132266931235389761516233409199164063766518984574527601638168395844369004875707158056575136782642750917850863452036713344696889104299339820097876357665615679199174964834493551713681150522053194362764365870666026000487322296893452641412769835310589310246658816243769275107583832841974646240044074427475313898857017834156991016853615062386314425420969570126229495639010631762336593958894899794207392309787872667219797195835326716984876509059882289149904717067118739795542703972663393903505021988665004226542387592624450180883072725066801175544392620428263958831036667988898397075721866333666493009381517380531698319444662640614145940232859574909752823354414209961823826852791003661212509240030059442749841345203829635827162462807770570858295745788508477000144195145674562712028506051681548992833370621095569262594634283918401540042052903882544836199769513325878623390238002647648329006208529692629588843762719118000200779371452517483908251592269897350198570928331630762503028487993791131498914277221361230370344242568440275067319746407896369438305245431252943333033444341977324298499883797718934459171316845673150213013824132657495973694767544825782581626101705212356810383126773847399909361857858623635160000344759336826535094831609252273165712299732494842970303349123909067025038115521229640894332386129914336103742169825435107013613163025132485632216076750502995829019198179671440676184828780990921562323987290310091603336695596747940148376022119041409061360779359458329970017276479746613400351686286489064576101401809096547857087826722890003598606258671490786801288542758461356660736230237148801716460056436491364685841165011598012703261309910270937610689857892172744034565810010819672545947214282909141191002499101748259574203255493881848852207944765751562792679196358195459621888396543695167278818339645289328260503479589745694526216191180239376240931836687195023709288722054998710032315595420495070481231215349101313414899982828271160250986020826455901047937285370467602839441275021227795247589142874442831985240775864666776225032306299126326962158689464116165884599207227454542793154591589258839487201893643804992366947800272511324875091335826142963709914185980784563941231264191232476003935243107825105531276364541894163924750720387988229980541985906997387713923679027119738550869979221513844022078343223733017494459382538159447092074312113131451917096787723082447938615576383031495610740526588433010938844072962075056516742745342446756449962040918225172938945908228979896701458403058527500346148267754752086387336113650282418940495201143371658262725941535215686659480853900214236969748375509838749905483380854448211882863225446149735291297632555147582882498579950315184415650906272977863267612462640138741227295384320068410039041354263512565713272736605573666357559299611959633786254322937408285644460023482568171255624046826065054909004618979693285862198602626726596838552532155869873328782195843916764060535936941830676821238303523269350934970172578368504983510133672132827166385802905840353999634466335654527226078598795569826346479999087791112095119902774076644484023670053128590550892574350540950488279142296973824861396729997209620499202870712513303729329502249591936851837536529598835667309158443821726806420414133025889616746525982584018482789396565283934430502142120284731979357717441371773833658614483418328480591349038731678537999564487779517754557393059292302090863875572288421416071404519356274426366088227267218199794675227826466748465620340611652291802998441267765271617860919400742754064332116643480778074258913753730751325694362690164800107887233347503929466144525510857177993626351403841525085363034934971444158452130470217437943076481271167141051467089157433763287118912141716469343471662112127654593841462694264666929425227973703797957549628404902612235542919228081026896788079708993473252754237238169853723781319791016558752581123908839188243994615145513748524487679825912891503665251858833742917367163070321766279904993425153032064199847005728246082116346082243366189890478994251003720151903340584657863549407160692841425669393283904301419355694328938025142802571506463116959579584224791693893758864696556436277876100059637162566881116543455171213262681467712764902003386432009072320896465108434677646354795224762407728865415861674195342305118130796987775873260462459523141269522269132337685142480267000973553491800331800826150482928243498185850911473194921196588538208458308560016090584604499297185622949034793799978757360006088693398256286959413304060183245082429494543383835455344812987757948553696805519383422295871485013360574582853133924757853551486703793875905931100487425941618365200538517276947209788376685551197225285030187683527234016430964950876179460444681177516680498156212245214005253457311576347194898538860130464629111755422076502100742609975724217261750096286679874664965221114144010449838063514654728495939703177267874331566210681487596810155611194196563097820191376913283059248928965378420457632496630588336211794619542693868630843107501842813232307175774594294718549436763520933641823204035388800973795540628602542235863592344062895231397794980637973265281490963317033567857507563459464824285355508742076924124327990610149396150914327937217742777511011877371158652061255979429855538397246802456001879226326283767446862508742874205072729095963268577382523624610336329709804205608806666452403443784360668070349477952342921282294119796702708890591725341551204273075653709809896283856629540390791416253657748432559002355532306423029693300409144060430350740103634189703668638967934194543514307456931628254732447654442693897271143839239203910565276641293471494540401296003326470819807358607610582179678297806043304635050168500198164765274398194368404627177873019899307034942123604893233150530529870368496691713037472592478194840337657025849414998458974590520708441481971367372014141066212647847971818099539411349017971298716781328019702076527698840498497408072549072566735437379332829686582117737240579904922602814213664565804276657756822358537699081984153193187293994721120605607665924897319720750769217811801583603402430927253131121523057808611119879044350174881494673277899816202542230620884428947059172916300635194810658136327062317619174624533444959089301238796531124285084371376222906897891545249685639555807439332536232141962081463571338525249947185439805467840119270895016832470937575589417383503464853644936593981356630832499117956259919978364495808027736259030838128047352518722397127047909029048431691488151015599796784617346890036880708687418140144452703906404578303391125873843522134805584877946606016630655881452530097908472746631498413158746037025569472629390684751979542103138230426138547130870161972214294270987072952648834289412530978447226778602272858397585990916688879709463356449205310627079833597426302727768995267565799902178223561184749836465190966921882444126441713761642910331217641762524641280429107636403245471948349410924178779616680600102251403048097357852912078468594372363767872247872259778486914951527179323536041783253849832345896565042028028282622429798469577523526622283207985152781841863632953820071052716996027825381283679022573008442081028749328794182431022602151735521864216496460583916902900776304999739062529101417377634400395070407366087422384677343950234395272935925762130015068604030243659080175617558793903250131108962844021296359118013246680147026371041543226265561298667960100874095358883532785912234593342337944179677219528401590972474991991818081138714353476855330839353039976304002502997865196397393087136473368496413021084570009708582775959924134444624690828500547046972561681555401991253234077331172774235276466318419969809087110675200485428665473545373604765293309432277286393947870365529000161980250097707816450573912879599112285392408287300573301665760346126181500197054555151569182340566825530676887381245206926526901795132872081044727716200841510257023607444141140935120021274503636393815146771849709366793332374744779499850503879666718335175847433605149812347907983366041757397764253583457719613053672820925003991238378057837810765820396559581210310425674260812741377785561565668623409619722052429233352430984771336890218845863764699759733109173636651523683308193672585135802735196488342105673726706490482889308463321721364519327731451104331116707796172036917567451531155068929895465213206787002243457762860766226867526863548114870874520881083866688075065099932347928886386644794369012384993007939840246784917705430808886227296584310935473137539458915647507601438852103084242089135428076419377138832828592261674656136735412854724445723046140165368762155734497000637524283489620512097399993614638874311244133018677046738737340134871221885821699092224970975784875812443174957355477837137991826512124696567911603159412397369493534030599628962689950029421930142200501585416795114647933095026966671548810167581366867460926712201417387707477211366315867439888545601630574312803064118818536381902373965471525046565405907388802823589109494049526500704193217703328003673214756208369055507724225929064378483230501501648765779620803698158890914832142205208921461551224322537549625708936764286845523308559925177915266665858297190943041522206687693842294931741833179277012338303312412234875640645359904966920369099683051006524968518882953441173523406686410588505303502175486791382595127972614568074719545790905863334321344080953926567670322125910365750940777271132470302981457670321481658199127131562414756133301357240503512125291286324951419332900223840120546951001709038929343880401478547404279078420781132388759285987679960794338147324679711935235145403087535443362402334489705759970483669387650984924827913236177005367141726251225582504794922664018468977006161055817449958270172302492561487874468889676269624094578377907283441669446267641601384801432355497211191082924002346718690655486552671234221962850898974970490553946478844769563075636694179268530425942681301005831941484193783563125930171215010028022943170966976683314347150473505870813320236064236374676972145476187461244841286234503707640921283411579854898124469680423001523178378716024742304731278579241950199585854073518213096314769510426491848365291931094097718177506111551489659970803480502289948621922679546855959656968685281879633764329634048419239832874244037062611415214249196987819018999765676211819658313349258460966621427873081166245680017264079324239110731136347913747768863741518983454657843744606036628665848770143286175175877911233652059289947729274704390762345392722610625899045670106276206047961857286096208209339726810477358889601036528771533463708177842818981429321485387498632783553820600890887473042653293848775097834703391528820129668069435253502329320239512626800771083316703163393037932071865231118604222498782118976793836424592699820038084149291393460680974855151476621811548043903232099014275611870654103931859584472721500800126337736547646241154402438488705086404739742985404867908419845195718297065912607597974642346096452276680919998627783474593975796722499026679959938863151612101442471589483216101462647312983170556442817385752164314438296725121188683941226660982969800228836193794438210678422961528117701539281962464790706412916285895953722898946874495750638331840156316651384338335225624560057586268297934831844746999233391677180187550219311359541601916378100706635867480347167228795442906295522331596607817792412535994098155733873270662793465917137389054489042534269158961953871727208637062649840419575970970318069381974449557148013679808036966530226315811299227765045838178505045456796268502126027349249736495204402757526669776230106415258917404647318151662932323190634819363608857421324530193396248407345184871423233997238827543634787675042490171304814683056228411742623098822705123940365240662473663843564219069926185612146822334427796477587752635711475530444964861626052121026278925671887196339536984814216789841359293334824241005324245081121025516503254149251695222258232308918177880750811837454052434207518096593819210578865694534456599072200444998010151578277271641410006902827417010259280426727127149307914227713674047701446721907840604187563598456047363178025811776741326166181063051825412823535664782380247214706439869494958181674076526080182296091511112378283869669906317035639682807460447203726678832612903661747668790236939087330718711985709786197580507632853687053786845194262820490914897774000918895599544136920363787631835944050938341525904117391122952279045142231515513334314781909428592689594287456485066245487009384988927252897273368788279983140172355812140999536069031613452257734326158395516795224523488358919145467490131684264253186013520188147790477857481548591103483560808045344973764462835601900005367043052878220657327986590451303225476828358956423073635968567133441295709046494391086597540186186336303739024957143510213946454513876235123730231537250215374876001526839461812197324084255388520567607684817857528707622986126794991288052950199058770639353581675693109006150483139569868072822062532544654763950499823942746513625297540476830458148354665852876878898096713197601381247655259776756502559275143000525558008908386329538955556973963845756481243249591762211786180520388934467525487265424066946766064259574645935368501021207436491362423440579107755140718933957234860446897560929742537651122961629771104101028641543039495929657898155689888776216678219959248128023378537627543431279264444933376942045710521249118063050491028478130760843766606696657884359436770011311809620490711587869760049092597016190807197641052852609994754972137833907194841689402240831091096800985295333503958800258971324364263972916909225153232552750853765493470404333721851225885527261542995982380890320714164336569270829879460050413006286415705188333868924712857015807612907602473934668071280934287331501595704025705287060571279951873419559445922862839268910780139851777140525454844375284845484653973340675527723906935102187197338792115536617834869945887584867290207969827081158853019122342689522874626192165773197706238202238453378930129581880309543277889020651959952470235984692515437709582134032079350851432258310069607066465791698365002896719550938627442389145769836057663820468996451786993769784084573276746523219324097513143287662790246750084925946359086028357176713981722055270429457418634898040728608376669242103120617837389057719497879458448428312358226745244888843466819501473434790299572172926729619534182634025587561621172465982086699715214814803693372680942177647051043601674276751689950988109150099894480606835897951056234060395019131346836373852679554807573178439697587130922153522450657876742325629636654582965665054555901792625867410359433942755612247651601621878054302591688887783836473601756018601417964018473260310155361085803371850874333163004765410036568628872158248284354081740071135672514203299705178522350447637954598586645417721622713679469741616825680625528157151690131941000167668261442041526424832024272449957460957543998240268620025067122858213466559214414283370187527869901065659343814619118372900648675816800835525782794206698167327103843181365807251708324489597221311601595720957091249950053141862326277863660085137627528878232154018033356826740407549860253052469000490655492824503221938522948682181741222366812215211385776969242105381989123539505033415713971164924617649723510490290127774112084398145328567405268238129577158737122722644572968384243052279833609102245424687942708132685117079941352118776684108946048944499089384292534167459036631005924144255412544485164752870072600935579176243325502639704806078192339077413190775233015347417754355849400791881851515841163464524214633542805571643509492352638338893553684514738343870691687900715736420844101048290368209373034018263381531424008817837264456880820071707911357433185185681988427898820395464188328231337127465831582558310712460832662035854381129762594829430135530282659305650827572617004644468209851267690691434692447071293849386543812979891532774395832663305529245382801512278088846890585682664331250973470161327395048213735282681688043243703054302614517787477624004647600200630348926906194926329076026112673177851404288290126597911163766741150422866260880922163880107319624959337991596491893285848777756648372301664473724766235778004186084574697038162042276240735347342950239563779970270914883222921810822515932686898478998862668551313171374887638892922427428418810306963984532308542432165306583466236402364515621166090817261915831558833903621930874379596028449755332758231164947954828190475593965273055302796595459222995996017663056316323265865424856436833694006364514084687302894421453032953936571848721958497769213000909416636082589041073304640200341707009779974580465504160113534352756294925743918744861547660353127848881300973685086604525703818471056932164279581417751780358890463323669057581858360954259899691551795455480218505162922521252473456502254095966689926355593052477743388717227114642773520733816759845755287646522705147645645128657200602296557167271055118071415595724791464647498920526878916122160706042114539926683145258688477762137712774997751821817186426825652416294465339180359703169302311708939120214698667606395915305332657650540837569423809980902674549927665025730864089670572010941256420252482091535177500119865919479281329599375821357411188612123836615795854024543842746257952256185438657165383189343272668836739826056358678082639259096044530748360222638677836941459334607649644361202291672054224989293287724296551744139932436676682585878463317200460560675569450645794793216350317702411948122519820794897453357516670632842347768598311441991734822641547573259564966546987717131697777587487997474625227907495967357054903785830679932393333484334341313994624171619775700243242832106181404763388541624198327284828400266875131711269714164595093808930331432666323292390979488218629946876040900118002893589233185169029460219371239853028510362949106118297017760431883256675246404306842785980886267351623230328132217858758577479179248623873402318776920462169052078616558616671750718714462100147182007797740223111735208613135879348376205734804592158197114550823717846723231762004423547681595225461870473401390566470076777769173021473026813218878383828607433767848129270117381439035180242695007028736299281151946173917815768097582912274590957463794560939084839743654600223875572209639436854479449940486232286796882750069200750155277116442546987357197541414746176528714569526565958142375464468571120809155987372153681171198892712923792282206729326719476576656484683298346289388259955652787062576124270912132839285613331220346257118834257100516715194671921375405432510872585648161024738080214302496442370461937715271407602968850441603387525432385069745712944974681796748173611748822153799404339871646411813438583903361180597287792709627080714920409325412914517727536264146162995115638648629677728354764442770097455595965566108167032794251002212258575817399153937331619489111142469254014131567723443898607649086193820367101302191214512775514941622126695203415403046480105186938194691423725119071036234878687114366845888485956672344622830397347338731252630607637003447958445913352937287859564369659197651859337799755971260719446828267928772153580126643876868461460424285439568240996199404088976545450971809319221638905411413129219737594611579607027034117830128325196628748621237574639626987937448558475331944923922733588886564660665624040694407290982692258075831516553587038814468709610909871482971199861653753225328092026118246033193608034414449175623905903655113595018770912574346514990207942299450810872759482496240338166475310648725596826471564011787274732814053387771187599625286646944139147424237194253225269792351581418507862847764548605635121405597779082246798185594536305287412334948078493605118049286983741409516434927736207009156408724969667226210708265788937497303898599671850836828333896142098204977416653264548553864586408705343756967497954793989220573896492969997871462190311328232670619088974295600599285422056704472187979721896866148574319695735094832648019984279421764275538007920340927010039323098911295760935331581674651906880226260666695360897202254741914712826493540725054497559835977186471102397738498472614576973247738288379865942922491333163227076663938365371014664679826317577860206193048063401341304119649230031264400610979543316494190832603807660581500347033256145537821409548344573057358658852725027370224710467043211289878839460698109176771873187571042891292139692421574297315948841958726717912979651637946817198716103487757373529466399836259192423075691679709532057962847332508195347145911118575552968088370770877828708543244026546870687209630386030415750847260989659502577997275643851822582561370955854556943176115003196143195802975109173795522387986239887208828591823124491859615329390146148913200993654428197200095237743627624502542016908058162797328136752224080372641961611826521925779447449999750972024309266139165025354508655853761862176215740538803498055772769054825103591931338837191720278661567482874826377741296879456100651845995882813190819343982834017098060674953205916346767653796266389789629984075234363417610738901894813478621411532373698700910329934401674010951348807127635405568838654746536260677531133607941287973623521068648463254209177239175084759578765195178458881097139718303967530607746821700989950901531079103015948856105261171483561812127241961704844964951996247086208447961449774228488662656213292787872052941092332314864547796171685978967692471789569474824899115220135022827897853657792341680063541510833777455469717552339461508094833538709955271314627509343379126156956434983883562303370126810436535678124387388170845248148716018329568272912645192213626423175023797027859222656746932842490085068028432839984010889150454560143006610787019030938616141686089771415072109510379570770179977565715625609301666845165781989763948830688086711168012712689703097258468241581359796922141973101903894099095258843726854446724969841052174638618028224051963589498752585939727967450443774578311564511487283404090978258347558241927988185485980418577568358671971096101120527364472397596149353115497025226965795787104023626325816603954536591827250211759300279213650890379743143972628742281851003007618849035960035354005441779663860791459900118011719135366298917939552942971338545466725944662934596242417771899760987138100025429729141412117982127343009766546605584216609828112396851361015364416162333458181681333836014758362000291167803440946256343880179816889788689155238684630833497847774006019490859697715765378140868246433895014819250323641874469133835573361381781384928610059828664466881628083022903947587603468783063899510291626688658854810728951065668494364174309701039796246468024224788265039529064762605540361588354897863073723162144934162098835206350087852036722601602043961604201927103089909117578128297222458315366044733271548548550605239593985622122408192582749840750361362256034083691773181278485670006230314684326908303202495879068880562855719401308274628357749311673005354230023214062384411985666991775741600685883398700049586519986101686503644956458560640124410349384931468263553669697657999828566513747695655845122543591074183948637844864411380915289573248417391198334278052774013507691394606300189831633081166921777220633355001160293588490872309593753792022802889782904847780264868335996502527538115690781106100383020896476471537449808960941708724484430506755503919788275897058783687459575205629941583838781158486635412169584217995549253781999161865489633628029106128861177641813144712443115270305446219468393780592016230282924886868484921371970906499625703595156145797095866932810203243661036745142410326910406193212631884480640056242744884544965147359517139679736472588775387487993136262238754827093398099301363549402521099068903875348317565607765463429073617978976452290178609226530859809596919741858468546829659418844357153798272306710201080726716636498333902352696215555528528608313748204328730323394178292693638681403019510548307757069134100469474802088737063082957590490947173217211349093949040239507772988892415871469797120632643556734220874023869496457548955334879557081167094280772337124454312728485268754385872775380525147347595569212092442627605266090540412404808278011588260302184259210843627478384960525478287888163983102738484763971003099318071257383264681796045351937973860831187565975065309405826799981796236157083403702803298574517349474320128312104041108639071768966887257462679685068154835203936069121032732076415457511020281509334232201588131326953312083911578862491697998462684483387720625425322555945527284283007070438355673235490688608142808599931612356724383055185350034891863343911205002388588982255833770977661086204740963124694226373032174796760363667666536028975657210471362952086306403256070367732302147597031895196228393345406110031634801150933372868453827537551784605063891773041438030821873660777599216506506579574137707938735666596474958164781882172833237210915767947667511384194907397528980921570358011077621020044493914222854758843341212219792927945325786657245472307929495977321211466827487049958966280711900242408503334514619978399627997434483696177976296625339718022299198659904863146701533154226168629850602819350451253420232846718899528166812272339032331595936128400583163930080565679419488149236228212664994763833854463946386530171701780418329712567722284359296089001259311736503224022402878557562004985681116992156609500206897516303336008790382330605260544226726083752711626097768731777121548870402042824636745033585394462487504745737555882882541967202558617020681847888525264094261372119415372063034975084872227778786022934455358736963894923213383583453377705079338885641817579031598137705496194934401660381935783102577151359821079740387700452559855010133138177983045110911620209316243918786872857106180666840778650126688775506077570456577015025894435616487628693078975455844190618904757316780032494996382252421481691338996490295791698600927630711300601444856700241405349519074735828530543438894250867249419071283417036100371691873069358947102056274369469381677497097616459007132112947766291442610826189006443112117589977765389208362395200219623320468667670552990090156469872733851055465102411317820529580341227727226780607294903678334540449461818841926251697498072710849600332624375673102922668648613579410646497726273660838228458928014794728306612996866170561490749586207940616705242221128161171088441534265693264623125350390175662024103232103291318689581582612092403064885951367245455313634305750907403770870188542124082332572808558588691285953339851270198296359216265929115378428293184309968289920389300484000011852809870520685030690151333732290818863381275825438915508464611867267375338569471957774179133330201236920915741446732135814658829907992581333223761931198367273646782717902322018291314336337759895387815808411335816945648066364426647565646186207929886467841477224851199010400965390247554682569719313527933364093235551735097746915435686440910220970622304759122222655569072986312582560113041176339412874673052279916705272733752748711533966455169535909220964423820654511948608946899989156125548464961093074769947084864073061468922072441381302013990082073091626972596705985793555474043285236767925125155107716834410828579235309134594683827997205768368341772670095456320327450437526513327143160081256792488370929006636120312389671807981131207108557737686996792192228211090871235652245091365713751719855007167762800158976772321206515404591620812242462278662689734779659850836194268130846919305029021286232546588235011469508619357253756399181870383145099673645769616755494794133716346927289377276119251970627944285406593656810967468466344977963157202023724250614284694629195805865601948691157634964906745131415579083113481228224530483734280278942730131539087510967837781632170863156145319216703348987086976650260508671104183392803370398785894593314022649730622997480812105766149224396515111303126394623452424085076322561062852855702325793526522621119781885553503829463130791518201371668647980727593251965240609692434153538283966304888797436633537913772475360547351664701361554460843477038039428305076163517497874391513187821511761935346545991961673476524919141691181590851713165611383878022725622044193551979641260251859261377087488599510009820710742961779178174340859571555657945853580852677219974372233730238696367227247359762983768259092606557540743006779764073853554315993501193695963173221953324988831470535013136641943892085060548654554746262399490848034373420390176215148299191646980376997294668525506546631746807627781370335777341180742109894298617180631005016630048906050097325691834967499996134086118370907786139995816449654389749968427024213137021961089871082094809101486987538949326534737430641432449236571240096548268951607507661371838560265948226360111676228753144067753478931607594913213157198554862315134681918976909911552105557915484468188669866127948462368692851049234426636420585736184406394952533852528972324506962602367640846354902224029442804009679620242244344697577558571879037344033433089575804151561826054622953583630385694858166326969978639390450343779358833038254934963926014060039969576001402902871644719212679584027749856790028637702996761868189294983090288912362200447995434733920473704918212422229886309328726887539196811407135388945932357966936647193392407918924757059440954224085651617805530981648089186862365946119751524547576204050814773212530637777991847688381433657305178970167669978470298585291928628607920639710275064594545488962168992738264628750932213457177928517820849361644209631696243457985438611195030514833273705239018107904544938289291777331743810699766051289502233766348965030805787816691103509159108267474836379929238003188325102538851036191183938933488415671735058851121102635572134510347165969590731135822007865206918878318261342498682788344037241505895063756725522355053071889802304899315057753428911911012851584552526662410230107604063232030440534354358061706977277924841484380241568418156436640750130840804382625120316012235401041305544392656781363441833504243402198394556812519814892849679768806980409683605116734404160086054606030409551408694967920290228760445180546741880830024720323875543888967579337013264342267926815534424172553312098225170164738290960136680948396401547108069536748316142161792824714932905599198757544436453031586334071507250462502602000464552322901739609280897302594657704589991848025259480992071288322588530527138348100833676001097631050037030315004187097528879454737156023674621120555761746032092463137822896549811653260635111845196945707073161189375840153984576760936230848568742598216793576753102012819225452767614831368165881909217842501576215611227275598622124598255903114994960569721483562468349709289620127315700075898353799784380203777307874818166748553889485195120736641007518263266734267194223270506882932962166225339659098606651818739674444669885287368948428986662501713992889888643199234711867233804120197527097676375685228699161632822287640560584413283263513190559055782573701765581078467858747450436316639239126596190261170274776288212374052435636393313965196019923801226682087462365352035033719635261098022285932749994349638160293522531747282671554626568738186163247417409954632222549776423153990342050838580139122592119905210251874825017451752720266920923108097738388367825222899326307880985194490828883009244136876322135795941728292347890350454376438880948487706545445413784049747157614992043203425124116278699870165987356609448454869674072536648108003756109045044914675578374630829043646034049610246315524786932529540802965447759985995554800852772614361177531539593538916211766713586062849155960914782634348687453284788508098261113034569184497996488600710904427525569873067402574503728149097407929968066003426327233449188949612148126410397822437838084864248851021819391240094992568242223786895428537842841138118095009037568387425744831883197585000124740118984840987620206547540311013887954369848660019605784162009371717463095732773487758175596824099950362474765774574827982316910971646349002532398731380457132461565054724309145515345787385047428167869704883116584679577027658217084557313136722378608051428061526460683606348349017486324079598360876367169018658928128699482321975811340795408918602127555246674371232327041769436677551732033024838791100355127808080502587052063246336023632942984985053672111507613007500975145462041521002458036063073740618594987372905067958432410373333652943560979760438440318380139803146160539599921075126168937639061811578575007342138073116418131238563879652248240206332254262385549636368997218122590601583086767549871939128338412439596620743144291722483998477083395197558879011928823066605627480030085228074320116229879994124277063379358276995228024065793576553512035638418866293343890022016191634038554145704814403611808683733376319643694061678429452471506371295635200430215012018298282579760398172738063059554463868675854983794338518679980256806393895943791625287950340278162932068435754201551133285771941084499211767201294227291946856917643534100997927002334235791463364104471287050622032742848736531230505839971620471843822173474819433923987164053333892587213735577665901975395648570976641650700137646946231825453977113808199723390949736421515810794744536697753720080752575367490305401746513888182113136680068563946690633081530571956927488364701559011322161557370020688680892007189189052267201829768054323215098566443485125735760794556773948132218847158774731364865753868770877677895603517229671607267503564928111374746508890358392463254293459601701821325235942987977183876291285020401314020854737252381306086446242954536162251228611418717252283555072266571967817223738007403475199532745163082086271296472618833066079034246101299924869492074789293493822870764337977208885010896776309754347050987888039789153985748417041183432203187327603158083320152794457611233793027171137499892443921856555975356018403682935122332407245341653666439136109106356471042102086737530075343676362130138870774463622673549717909019652596690412381723136654835294575570202499021144252762888503923146395450917995720508361826123048448293017775796248289091389562947857510927092484669166035297929513859862960340962187682437321931630275090290213682901187719970626802413685849810104335802470872083924356890483700723239456663963682715418186105241463325848589474352608464002420090189590006083580604559421311587316163164225502929066113723508248718796167964419017495951745849463602981174474733856179653733557696586736407280319651054167835104202761865395513463849086315635768012026588128374539962759690186038424588664691848999960121922654154751618839222330703040141323304044094944393695223634736615359199848745769660998548142766312560911278740443438045817359024255472131755930849870793754265764312609930449482304037570857138240635631362024131185953472834276657864729244253637359389112496594802459302051413714401926457513940810966226719509833811126229466963558461702722308810041606289736914323710548045071255882531263000318247440351330065928365851155943138105653637532131958787093005464637145548911723519475481787669181018929557910906109718630363820018158828031546644529261777187867742847470695687135535534152982635577513904862467369394350791865179253038020346636999769787436908939551515172996421945635528372024338003013548902995846566864707803888294994221948207596239579343781360221916010538294989837177880088378307704090362093461949883449808847904731646649042166986958815008485801439176636680270261803647721836313899558843811553163836624496123235885483539166494188160346465478788617369978011853751009147745942503670851932492809133894582213595421116251156830867085837914632307425505765483740452671752779777835834751984833059255052920567115439563901154796727297496391915090001706038733287621289374337817156358002142972223159920411039527039229254173193282401318532826535235406054745155854437777779943666740371196446758809850714493146998750608250506180574277086686741990477749868939614027616374249690274687442807636634499928037973988026410745431633186476457897220356659107506834212149685435037651569810671883422559148581494823494207514208621366348973884186809058341746843873878762581590377134606890323530187972814006490343954065117076980517437814406727372146450018425706180207721022434280675158942267112646511924309528196827746217485544547271701537536956609314931323112739885339014641869187925808757031670859721401131029515028287147108059727689676248616525723351854154640209766784425530242129883042586374977959270406213642272675962627442150797255495808558656092075761886349498667488565732377796074907928310714751973110726922200140356888153739535110687655792558745882050340958780649495458577316531191120603256853759048230955134532104999962054320498649302401634402474600529486145521095659848931298355395087661597849169186207364064461408040166646333999687331857900470178038523579030627754720586610320840801246629003631048644253355452438274610450209288533267841898801634172889654985283006087233703601990405136750171509454807182489143424482776688881464423205988070816376522574726662268348440881907426416205146883803369659085227830506426267430738505234146898475500779166281957494225449644757901932209247137907581447406707841172352512220463993638156000465117426666240177416392069683767026209376495052236946586272709507374551625402801127744118430573210726945965642708031529456050395565093999558773243904664207892609721053044202483956517054120351774633681293751373914847239703153828170570944634881495974527199010365629984423126286481216181662444915102843457391530347302985552814801961763121510314769972924663888007924060183037771106118343869109864626689091513419956905932412152571143451962176259816543974131054225340107289278264126248684843016656291272462535906691604981962174818415259626382484551285882007835737621365957496121366222998684868289967468552014315642179087878533448806102682440553908556464286955884840541014367966371193306430744435329132243287863301569781175013406548305274038846772003749263433449368643658572490402084806893970914052877612269355977688662338121251589178864265849727266210251997207473525965739038174052715207509253796843735475352859599484625650397969778168605512554019764606063987243380572062983918725947486924126433580140160339874513246857863966448390695366845958796068188954297967923957656763120129358988922037469185650050057626361143699096393358370193263930195169550457137601759481786056182353413714477468383256581912223069711981324029234120112802124536821507733611618199444991329391762957801940026724045029114576540351347084950417035400233027116876550560859848643897186435880401274790991683188680382914300936225907659067207068898370870784769816712920736695536643014342068307865008437150704862023843668029476995364387076257750413708894000650556332115993986378653223614154326142942942075022406599986205396765818449900431413711078848487728902577092683907394447907173635892189427238880874962632509770274793685425458293776679282576759699538253214790542568610248429919830217941589714810906716222050639512672077303685320324948531980521416358909475699113638945714563816219672617786121989046278619384768389678938958682801647850116308885165934521511506504370110188307277944844539786583630303892003463130344559947190288467342600718611383801270628346882956919222774414034542268262238946548895765857025603725040011675455614974351082841739676087105368744782920899964867389053579153351207015517208756861071800881372155357132101864738498733297867050203002289880745812821129807735813129575109017372577873134997287303915824130381675049570348235922641920994143116782403904606593449248221377010767172459842860865801923643881113990857109776749262387986870396100569535493282942476026566476343613612117965950777313518011605134481540988117392228304767446223547988558707021122779221360888090191655683898830555372336007705464336011880651902989852189063063026431608381126752859008785698803968046974456311700721156012696377622447023325869140253228132682594308313682256987327377230736904397171819245194228508632475496013565682916359588430154677322348426796065015976948263902254074267960089215533011317668530497721045201255556470150044060928568553430855168385118401589770778803436821235711251494439737178406149327395162252759376292441981761663130780720957888037746391922158232526833772518348179635542270164731681170028038686150755678633983601227075973700343659166569806444797916818181144769301383077505569668066916673748688684644926980573313742478257712060156379804095781468428104636635137207563915486506433490026523311176314568769581833739417125168516372991405144366719418339789658208499967933995385894886172517875790194876530306900529994793217500602880856427354547266385921418568083558756383313419812028399764700567170424403340654345908442878282443695492638794134249033284635060768801135717012943651261166735785570488611806813893351508806643980782179101074884727724480787162758227459237848597276717771769551357915154907458232190151408250541320994897286951494436773160254790334117597573768595386365238833895883491247049188555504840648451268099533476976726862097163454750311791365774535211201812671926274359257564730907179860757999617304711821729362091056410082391004275506321098394379963786280212865932971001031653468278850833121590220785233908300086877392485926437982244574662597827690817863308255711473983646444455039967439954298751081460995824943857543572420010133205211057208775774453387608914866520660900224496155841349381092167551869762283718349779284194945787077100539038665930835776125791108614580893040525237570179935508806598908520126266797321205130853908437651567690006057117997803481409876593135796114138621128408982638832459567253322392075658695869908396630994805621462972088509087761074905357391493322773787230472290033190386560039010981590289303412588146984999516067255924509893816660236752459378276101351744091886746958822040983971343468843006631290483559877693870794410216109518858288882775266003120339148124447061043234244859635148257046999489256239914918446313270097581607474615710715308871454805862252873764227083071041907885535443172222351618898734405308211480223976896287273171363639516529551519020710654135187733425515385379310643631033143871285487972641498182433766043864964265917836662700244267334174300460876270435371372775274806368553587641880189154011842297074668952622880152686612202477407446613737439079440266394854630794291124766278292601157935926032318352144584773748806200248625490011059664937198694989306515115732192323307502219219654749251699614527201984644994467322953394901610618600052387445021909358634320292623066391865718736419745159496500532976349412445161912242937176583691511754482355880993978094988689520174130562667537055067460625527562962112291203046518632929314889658614742199890354479358630306905772059896898707700596870057476878011638711184989814546916794842159634594713357670068351013087220485275759872857614425326094259793413358023086071850839857299282418530561436060694141944938899904506373830033445702760735745074377803343212019552721182464184047224236578678565227849972924049594556790746334049279177407945294334926533189757340591938090167524230691289851347336203433211943042688083812360037225897173572313972416640329583440491177533770671151643344615211158278560271461667699796013054658720372548770657462506583816855054658820620858508774874919220159025633278612039592949011172645072547375636352852003906140019337012429623531116057686233718837147292820994112072100407064416521083900196102226958596795258331990358156252370073072580233522509188460012739548220796764339747584303108273211828794108385924651675003423679243608271162692984234824272350847523806948633422726497563963677382252945570162243519776361208495212451416591604337267597867814967820572977425077902653961766601128713539758046727338839523171799355392652807473547137165333151520141429876289919615882426002077221731353821949252071523002703407224376092368429795239951770307300417799102091274112954945853667308119384497882192147044387496783174121938493679038746359151450625530754659438648834217077418238745996543142893079599756694686413168887885825067252591076941106357006096658198601929854334202738761946586803874649563655514169313602369070593731054154971488424700599702524385250614909987805132996817921747147457395982910129811591257259642754871349030349065017172646977817304463319503044539353827072628384994819733310993941779284027260887312902486693554727531182861262426580077911710715970526214039388573820270243314686690778084788718117192953326358674780760831824613495371232289849152744914712018278656375494034266380895911802291143352594190178970034171919437550151850348973812108617464060998620344078534638014297535169971659260766618456933844021220730158159826750822518281593417305595326276911198280216233223687713099524928569062396497840866046463096724391102125132485248139800038930300670255322379266297128489596394672933979368999182223303369758081338805248891444990279445308888781306672736628556307756088444172204104283172707187825810920682689906754422440446208043115701848524952937987939220980546272134755830409079507092917032958248436403982384633494859762001448735083278393851780248223903655309972700847344791689474626677562711117688100222723807560903287286009853393238119550509019700115477618235842308125441591911485487793672856508929413889149423154526633469904645860646989102317395900764130725537324163702016400497101512030237371520572568179021078525331138881037863046994591731121060382975800598474162341808748665359109631750962010650225623075697014047079338478567250701614528298489991544618588594294610627351488609693654511438452187252269703316574423094966052996438739610153216162579821762303093063522533314197310570049862179648032668782687351432334730146308127164628144862495689319579904462381003849386176941495481366613731773295031280408821772466367366294530149684409094599016966137619573919154074346032200718856939957765872699867422129940688531525219222399430394326183419873656597644563819303934891208828186831559045732850286007003606417697744778501240170276153180388739611717052558327378973694705249113619179437826737196508526708120541934155381488113146121623783543429325925937321969874570926686945058374242364135447322328906869881641997904385978952084153683657257137168430875681401883713906412612975859077240402756614846309877454142357912079360289803359892603055029572042183054414348725518299417971162835209012755048038582684858875621718354602893890683946317974036223680764720436804836579267618907405016715670196997494902925359229182951012491468602601058223111042384665460078271725257382540812328186932237868128780692814982210170428151308151386441458888532487055879520849437691203002958592558640228562645103534975681290956160782867270247269112499497925895266127191261938683109828028778740023703003787952620452976493244074565845119654211734973168922148728147439772069824122466335272415397397579034193090620692158523731690963664836197253936522482609937424879796941918506074736502708228647924233232594635051847721236536389121318332333176189763997573911220906881196106609906144849460502757497760013396167554736793558864087137726657785735058169609989409532019548122067985848143597581898421540149186842758897433508709598974969570839057947486355615116471480083774371280225620182949378555724476319399806488889608189374516672830560691871469261126106661883937712200762874534971128436572846980576285280186905695032012359307131004804857265228208030723083887839429155822282724229925805365925851201494560914042100835730572264486715335450104069642455802745810570348856847995264494720192700549575103548153641358551864477917538475786246552783430392802430332003156708580684205287909790680850897355694918742922698514720211266003394597677311017043143712018777702910661402857307415281805236282054395034923968316608968888076698823271079455373838235084159948019113068567218121753395710214152823691526728821758959130280264799594238828403631289029543406033067682079984309106698252542737045068373222050124454219219062408677938376075083545041839179269200811313835753444447487987442019190248861414561573359179672239727649278990871052448494749000975648986188415966342105127491594935913791628740098814911345319175284650332255368818328413795472192114830362573617098364871566769081469513548714452190259017363188638361914608706803194987049880392922894000535199439387938715719414261942500289296717204192969396459701331131576424737474960882573424894779595875538032784956887849090311133334962276246329064359106523552369801666037212628422478411743673299153500835479821906025953527642982891522870594648615782009734041445002832293928405721441398049316255341547991194982734620147370425760672439990947516974592726677883590175389069423632477488598391997851489769966018484438051008912524604886568668132335500893740567853493114301272034719916326661383302790982804294018368799649451005053117883474557862604428466352655830209187579816927059117013468224161599627311475245986116308990506789702008057771987745652412833834343408736135013437442293038194732358053015299122717729685415964912475447068795572264815704429690891460341755108183882567913242520742411204605951003601374568256587362389392633889112397886011701887160780401478329431635902592857196480940228099196282253994733657527918692428990911560414175023019946027963173562234993641482514358109592409056875240909502258708001513189854655576310534097938940910838704531007543140482692795355926663678568441589259795119782534451078852485843691133610668421933520263995837725977511857663773601637416512091143048906602746598255076438876614111041845206137337888451574718041428166306735700213987279678336831834765701327772266093046593877342653669067088881292534926276663924509121560475168498696987649110840755531711879546517172957953343024993211845884589152410652417550401857464411119245111903927735398757887512060411175433111242405189169476324837118048618983388245329720104571160901314939844632051535535230987554830699675907502150867129775297999754574317023767534680064205444624413552069447006658307740515801475264736146130548253049715056368139093001954019403525538322495610801246170162717267480057517456092512266644644198842434408844260855687674493116070736740891491883703728785080397383020011188411361620443416599923263741173741557733272488262455653651903883309275741064783945874737558429283205028660804387482777878605242080702368518667133894037914787879646859168888773660893877921093709724399754758295542938830206140160285291555793333753960502008778143973825635381001188728415128221768767254758814856351256048477821909511254523646240134417237512546132143859953139132064865999257476413414320315491665397529147004207563255444021099753728667862973112567153526291942841993792190657820900385428997647014005667927157853554860596998159448529855861060463566748183739334786610491734083940540425287953361937970400160198139682853812349624543923661664835327188754228816569232973287267512052629161337411531511200816638016505847503395759763358249745433481018366355257692849986280189068483833962014059215035707756121486875923962724066630954394984610184061272123923966587964100056283716097337203144438769592859559483349747489392828793894811497233079117461452255637882941977702195910067282529846632664608211159410785863978022727018996385107080258781316570078953007210340838259291627155658225607927062065676570798679418100674056686030106117056411625996443945638737922549836843906681979298206224402621255998418498024480145817445398203002959340202901146473337612545637350578180967899525584301471847049016571631644134449308836790747903452844452504388374657912641979269584612971579611487778743924561885300144849948942396537557444937868525841306481663159169207362183808905290106555025943775312143143267652368460809289981078772556487449433366830208240562493940406870141166741619125047022081513903683166172468159899590863509812272420455433293485453677470808200416093021727153220103130124589806362463033942820690224201230948629973855010289110156892237362980395785534479884221079475939770619879482825548996542998827227009912320657981186158280788823450483833042268634547155738168745391530322393256934914604063471360481801909999263189514652294327874262709258490640661413906087775864695256568426014331048636234224088627666751043255900177914985497593824766219719376218156023775542297041633807957984814767322227432509284694330426987710890378428166633444919257738183994193846652889840913302243819766381233596686753703355132312551077415640378077465939735144539036948047872039250008000972634276211198998562099362286875623529246478787458786339578571753117315323246121148926938460714609019064990748992679345307254326760167910485823652863010373267125076249467817896428897243060571829140724962223483284052098758209831925442893664029277068365306664088236686474073747644783541064528889361801275385798467682536572425262504938100249579844976737214638110098567251400156691530972494211884842955614474909924669274461093724383474571301690596793479638222089643379465509647171125697314132898544107271056538822890784497318833947468626261230918178893882309330075527788260559501775287615409658340916886769234520152511856314426921965536299387851471054630935805788124609477790570047825293148916281693798263223924260850763318928173276200324185426576811975205569757348028806705133272015401511439802733896632484717402756327771975997633523322784913703030195122720999449277199460302722393478157703282614978854462267485624169022527778659988787335138986740561875860924992823572106813987068026851655293504419169227967629645153131182940123377968475049143541525755821561440321888836554569695130359368178697345320437481640584908847074425219205513642029543724685071111619753575384217549063459792448435792228011525546348073412897564112042673959130535795707862723051136946368572125792092724113742484435095648746856016682793277314535098622775155284207918384863849921378329532647499112566252169287686389547353425754730029760774325425235081708096612547905055889378113973511543917285644350141940768973115740688127660367620152679444819078607193132127737474915144182353039620631850473054886912821290456428468069765149793985596380451291168021926389937847551694531212216275494044790970147294933458785024615458997801865757813790743029724754789311866114692408243210243864108685061271519049757956342899869248552244592573895266706337531752923006825288278023981782930885001393982924028271057517624458852344958090223649184642028350749105738797254497871203269112869210600795992748869907018423812462383808118317546331465694834062951371336635284911080620338609517885982832041259079395532335821868895059041495583878335692964303096380890560392152168917351631400014959189119768062479970982645289262731843034691512513610524540844982858568498348481873302057109596122487989937537797613943835400613036933535899342949840567544875884821373306094820945761762941034723555540428059298719696528236678517123590277313952825105181754481061061095204208924670118700100667532279189642903310539785001152526851068409732111817537268295036813251222230890643159896741935593092919756811001660645142481113419254398611410070139034539155342259651429803886705238836686930419220357118594870578515316725918666022608898242107866888507728331309242755072343831433798306535905779557070553328589058618252931938528827693159662473804963910219079882451219904087505073803722165995208341761891029107532437067966984353743160774755348147370903044665256214386577693949904071653734100160671987266383092651791652621249217339582207114704974952151717544549635023365259788035339709860953703653181750919346781053159507257406578884357381103269983930830759293290545729063052039436313139641374231023106118863156320843569538533365414443207929517471068173564237104088349499684103092496053198441245367949206920187628371456347672894816026432796500816351287127372751309227458910712494284455044965841778823679586251458423944729698544108179237995943472126517018899438935475007639053687168056036038326726428239267237540912468509561995143800565190886038868685051607054812387297010738016912516728940657396522764804562878338271208362260348747526924646145068464695482036026405560487255090007358422458051017216032306021044025615759159140486927788402514840240466822982961429741114710339321200580108804915913244325874978533193153427573748366359705491470280651062369174046709944444201481629115320768974630723753500867354493438994622289576752906315323740054164056292874177187894680844269990334651099671357178869417354193966306030527466298282350276253530255572325975623135972577426598018793086304765038843576883786513237567189474445216310457434064107380580522348973951355417095799811315132137051063648597632215732741262589494450306628396327108973986557284700525905106207587028965419784279330259366707843690618924968289464606912238761674149605226556501027184046789735809472008301811924411223938176612963910259324619411285272690916382205360105136154292842551704319823304900961056833989314115922114101060954923034660223750278967754538909757705983842190244915089086056320257713222628643823600943744221131256075546905490374794457071419167011968480459002665193251700798788930720871183597634761246999969225090273410551619210683332759575745402698528584720987417933257291956220009725129209510449288311733970603479358745272400383302475031580666733369559930496711551018745350415307538258589415462746921775579187070067157677578927893502735000756783654418294938540601974396236292006324816068902651750155067494211629129627354567360876191741527670065306163099004302828447088575588913864108895693380184293759502396105778146845251962673254013869369187774755834822824875296019104687238414309913996375196513933465557756567768431017027219666976001757140760159523605630530363105320376005831734700544569594993663245790948915308318563241622075616909947931736411312691985950226340991270602751417516903183357587414332555449778437119930474733915279763561624296932434257474926239806034586106217856196872376684393431440241322688573853603159688359849810612885670249497512089047467930284164195369573366371237702000020149185397685147912319418575327715988300389053685493770172587212756648205134422355181950783209607866018950278741057943427977024628415465015000998161771217286892587677950520498449628827115959353843836737006383284049119006852729042127166119961715144579746135497409369543072880982409916847755758235953115139058510671136089848691611819529257151940776979160022241499598752081690285948099420400224787406128823276315108036081436869142012726783925253595899458798763317190699479053107307109409083193408287361159909973621201040778152885060123425372607089929325604332463564958631995769683593030307982015742500735503949033021046664454233894683546171805999418048058558703941481621970381816731747831966524582155259768935992418084991754211889268984752753735225312609479438800614586941474813252994051510620189296686632228122519852352606702934561292074628639118578771396545700893778177863963809849366265385632583565156649532870394420420825679132003900365973380437888676966660722749796569397988971250689497103238500190396399621928675044059653292730160623679004181089330430515251197234810784764279711619360552789261157709193501614128375691223295525329336724836571638606470790576407440817316550128911027941679430213135133760611908304133106014297857785417430273887189024997389694356154473478942028197213089556459498971376510831479038471056090716598567793448188240616602331822656303178991125559910211619776854823269245034714512250892770485849942616192474076831614441545411073300807478111558095233819907322526913547880508384675919194318938923531445052769709491593865658203416382284938117614733393372099245410059687452308919900260445513878224813138676451815340338436648216579029875067719320670952529414173491756698823102702674549637620641823530924576572672513130547227917285430601943474443845865775311408613681168583579285060737391893937526971969539504646400323076945326405137022259236088620690276203512575276242775292774192412256818968261840343243851013029865047177577481047346058907690233374123190250820574644480586877972448835044954999095009445028619286569042973733217128179727013448233985453441800535286847044666698906153812888540643357212328698553701806381162196763193755834467990660255175680461014850247007226540484166586879484707945994574486095007386658774778696102071752309421093870540048937353412447283729666068917811017530237523876316213523448650821596270393895909713244669008940727975559801111564984692342987032816382818270203293763104121898483268624296548783080386901628296709806820177685676716022336822411714448335721638276431731708118010727904480153782793386755349220641340807046005272533421497413090484441234163053176495476273303201753114665840015832868727374090339054962977438824245343233184862584909432787825349328985025445023580142858270235057952094529578704053425637797671956352026843243274561729181238397485940658077974422423282100589021985725462283676283801468164221345225222998576609838074513891796081683480799701642219996833313913669506115758380806302915145903786613014561993882979707252406687267121794686655649450322393099115408400819166846008601022380814078882627342022294097980917977209568079039199822862331990482157060769729669739407844800678532662520285771304105356954074504116412007064603911247683596765107540621291458905127862682077214469697249672301714911451716716302871743776181347218403811259660530001965919816075071873076914341427361652007314823266699382711290486825274635030972317867507650386341165133842021679572549170011897269269618476917866438239731231591722935803020305667289645669165745145229381374189962068168478687084129926986887807509922748114290887491691755912111296513655264809511802946098468390354453565642999597119534443436796021175678771822254141442404965925533902004740147294844639950651469813999331958566095905803582988190108157771754389076000220240725492056467645261888480688587885147578028373610930445772075232679735715266431642235738796802291585482806565403215465892485755088691943943571034095413489251809447823644759116219543959804802566999001533852558847867340661959931252907948524592500205082461687990167334464405888128463613282270555542848109549336710760699078347109066358409546108939768674202353038405308834220190705584323616585898207135826825987915899146895435734868325762026465527575288801585510509775545112252964591723230529596300638892780795055854966438138004088541548722796948090416957704012999106107530063858450951651067907520290704912391582344039730254931916993081876041320877909699325015992204332444914988748802621031040034675926761606590562000745556176583108998518570899982905020980442031774497248671392470335389316832236705208726067579369746745780543841792651422213853446180343474676501794736731860124766123044848471326420378136020123194284519766103258274414214161984244857503829875968999026919305462383901416221758103411668309568751164842926958559165251708801820818966990206055736429830992140498874745935799725333179704965948309481140452918469840973041782381400133749073818557617870817220054505680512843018673675622705276503185360469915698998654750865364144419277739603698191430343352734311004106156360116712455601442631845334975921811173187248264889077716081774246549136197515420819238628201492853796319203283252810548733169872160894241050425790355392086428996920013899929411095903944287498729473788525650061900581552850197175641610624140965200802409243356959498186236594907710500635946392182192877461335961367153376568064835702331093010001789319764899161486534244652424705371169440834056076849012037072392443791594872612230534049488813931648124533811395334787873390480007590712677559095154967656557786797713980790779576977496346661007970572566265141263657975775221202138532917205632950138375438457194957855809118427898404155487719922735567329241000094060696648983165572745622201505925585686346671659525875452230161943258597819463738095901410976477031459629861854466095833966502458919658610073781465346890819124033075003881123502169309166196596074151596958108255679404226333281784441349388439559538984698413946583679767115963777339885615550306187700434476926628695920334735217611887884858354159830497228399349663056990559441759865137473324114646941471912278522618099997544809439777000633738420247400607864641528184836740311643316756440883294644991574706530405135024122526468749917635005730399240240686135268184486851945660598781969100466819065817724909100378332570197804441624091340902534167395698048586614512433794022888308775999514867130134116657162773843316638310598003936206897146366769480208442258173945340677058476523581887819969850618492407757069943975795804197216953465066609949319038721066272407537399900813587922424372861705479681992282613022444023387254879855727887377780911677705578280631668361944813779027754672326906157202679570696591241484173515101239057288156595489588732082347206736709024856770164039870967985343385013044959480312212609318378890579853506066623268033502891235425153221901701212079085597110365186138003242876256683783297508652058560426376841933226655139496746325891207271346660812285264127122952048780439342606105258031216969155794605392224984363616952986769600241271409616863901286230942117183390829295338549172993010911132793567873536397034480506536913392494618178341087570883869213191758463414545181871069758244665248799244820764896326296203155518965540032559645647940801329923833788603975169069641185556109961488435851156290523405153150505769463522112106513170268771169944191436200101851980451340696525639161317772300399906017485463473678626860150804372747599942758835527156442109205835685333328269531491760362942884045107012866312690629856981929307245505036595926771973137138950070614620266591998756323817548383674960819791528248772810556809780911093664672991004188112063719059604488979265201279600452626546222643696428956813092761232139417188642478524575850562370070690615767760859050270819746599847681917576762223540217322124558761093656495279773562112823327440304173863569589362535163993372726649514443415201650329522807184943413200289579053845737456562022231985600905581560782549257689910106730836462470778265650069626607929759763208110145373903018270396413903768250894594478197508855422692580469007850802072809200372779910404606129133974222920395880009659100610529590042377350275212967856297297082304878599517915120205484137701356597096642077209668690618893858877166741746857849111535219146767711770505336429652340803206252448418713724485927397816463348526340287005807083224021256155898462697345661032065199575947869809606467776207709216147143659668551412388653152867383070602912325604074025299325732368926810663787489655798172948533205607315443430990081851988490024517966839348841147739491591970464247830176470857120706519027948529896318389873481075113710797188078553051581049775240718404702705678361490392483381485895313280578890883228531949453575967201853958524927178405979039233350714364019268316480103472953898792221502832152672169322672862718026306748731593941894892818015322538943535158150034946765655000845286947297550714388875755319892781845462939363450838652658916455036437008335585508016438059355041383083806905350185900121399937791870216420821314214028591460312081667093592853600145617303072218310373531698345067829470374414846544349050297165485531105328306016872449784930947125115583350113516158371752103849675782715532881703408609955713500169687310977416137560756242470330641221620956720218066954312736327630691187297758992339282773296274028915539869848709005341956518979133600370084088099486520236937118709671450919229438407490450260890597207215562776861418403276320250268504224227885532184808667516446413187860483621838796147040091496123476280603357114322168853552182389934721579758013207407345640704800998531206315991780846224026622551665201903728045469731459553224288652890570155762100650600360011783254367543141032310713476531819294962573709420916469327994756233999363884510745044901459385700372281468652868121532725099986627352626712705790210951722128896010159467647502775645831783042267820600505012886182342268996330983061055385921236147050885539394245412247862475400599527465865781118352591107188060408687026474256035863841564457750743720814672139207003945200247556602430740531268013437964152348878847359975242454187374716466255263924128151651291231579989476470232483155329686481284052218654905785047731476198458531836431028392390645465694066084044444883588167857500918289781084445571541116099014364524993009465942765850094733860170519125791806945043394547525380899729988098743385359855744793871810993580466770856283182119154618379203617679023824133495063440301966085746448281292922196357817047928923762489404488670301373864433524423963265622625584851631462379774992239066083256307282550730202569407119814043800453758852547308585264665428265034432743188376315093417755753322547329677472685685850587304381137534920308027418691506693517852208848243393543092801153419401477499437717949203619446876894311341919259473383252623689601185017307878273036967884454219211504159258977948235022824445781306946393077016162596808384313711775650342421450450551146038522539445366098332782247158699155359163168283920010629382934261183756127535056465832910629649006490152384546108862262178755119653041702745002250017434411327007659100579919898079747943919575325586138595520860967003435630984769693143616115407420940443618111705840061303158185027164401492947346055321353162504528806999524657510742832556580664541594691360315447455477755767594315280581316303607548972423293506837732334912264369891253606836045903813997267978076863493343133996187490981569311207269043856582762308401738735496904882552626709658044917913075516121786382713841741810498180922240023660709902146618664665999833266990714272193243947578560576592828704659253087736482242400403737378895245129518395576912740292116474959269011762055065302148566926388899831258648698189324095877824871272989432809800206014929177290261476586629066687076295006690565119084123003035482447896198973627425274957078331151763812365032424315320340802863318829187165579145363329802405178871349028913957732177674838148952915908017207930075925148699199634861569633786335152930903592187812558008122601264860847581024200119602996370236004421101809899803601836758099901346010763046399652043522803048180606405332169601102760124591340462750577381550587278502499393190672761879962326356920312589546442658166788099124401405271885286195931228635961653776017107527825002704491809169391470835760066652012531784216041501059584918578060318812037918274374071865144249371101790925133745452870812963022001210341217141668751855072246683632549715870502959784441477686348247555142876454847723136418966668328668745735555558475629275681176984757331108612316487212643121970570101897255796077372908506647035546598783939350953152174210068975033515879077044798029778650938562536432464980399693644232953381349972954103854352972174624828689191412255603355971404764587840975449021934658352226842818082526745815419869705131904863825768927353690167438501246078996841414294236791507909997231285286985261126671985714563761474149989274068609690172917791378567423871750608517061366842244718930988280788965406535211220154678764262949419193573223911090677629522508821830827573803763039175517520811207903321881804221213539826464766772948327304938741098249337553989216252101980283151058320891583563477450469807216442216329179244497574536870400537717254457310314828379090688790607605648507171541050243920497199058947175848093722079658593874735565030504478852953065479934124987997679891558604254798747119092525730899993647166650791372460436690220525127864615645432636829934198592151093069879517501515444863305545912157343219480686689709583349616260316934984993596818874886284785113314418967120872074771913794721979787479086185690070369283794329059159781054506540468895386458482243957619015060821430943037377659383634502662390365016458107994650046221543169217884938881927018017920637371323652372327533546571346761844011402903309859746125578299802807227085954152823286563645155119795820260079271810568697565219705723492948512622148024345416957425642119736577637789647909776336013439374067646059506145958490722330260083728218021491090861144735470501644122438332233469683161974581987403173084733751178206551874835783139452754006520780527072760089028296401635616373568259911321815765937873923620779239414249324066065707415757560408196102763900434299057289114755040577080380636296421635679843269444264298905656144783804817372026050439307464617669973501075400789124121838067847394353310535206696750229732414860544429369647217696121405341936888287532018596909991113186022583944145554361995581209807525286529557122034308806963538909045178690247253005723322695830238848219987107585311733959155600160073185191682111067874031938026547903394881203429338855203159475641406466237188480339600732032912596241616285195495642515744632662900154274673809214541704896254109699444630374465655280703583315646306808216428452486250303340436206191657174470818825694537186448356925453613327680419366296634777143484356197779520314096756126890039347248449179480461969755387592246123237137921040737684650689020313556767350610403051551695345370781224763635387518874117734003850408868268926072373405992510173101936499794061297572105238106499516495329398578939264023261454433816116409228918392436108784797958659433339083619279485742276069046877593118541447510806378551195150409768229874934349804127508868326041289878610892682929472935190924913506726012125513764888564240941290396676977519249372952554480313619934632822842632862354580704714369257693488925179496418582460595294497905586948778793461248998092882783948039088839331555537548282456047183159068104519377317227630210063131375751514914592443358378451007080161725184626575679351977761330448535456874226088133432634624716028880142632089491649051655966231933410244775838219693636319363357972003194919774370412588805595911264449988871960622393302291853474189604080245603884817335174859062925479575310665697064255724520976701822680826283592370903613692595407109573183713113431466869015639994795411177113008488224837533354786085883312832641278732246817986676757387142462269058435639966230019261419153985748628857774279798107343020458745270720928026035399707570221474300051304117199531863391769961175176811691982188492564743187375794838740726356928526682930584589152354018632836997016886922335510632956380389632877930137564210497546280740108905795523574785290099666762714097453611855195215834160400992401259903524330538283691209120168042452641939495052368384054388969897785764711147474639647079125854851831790601378483776486738851180304751033520722206998234052566051780682603327623425648498246155634114964653159760676760016440467148696125387394276102964463885978282260830183491311659631357662411341228371894575432477188541246183452916222483970701128053643106933799402810788920444221741349139564580825541230189885243763338122018965251398019635371717907354794971444190587709048863941054488396535815047559616953374195516016185299218933436104912544440321501874627777226284523938550471943678435840424525526084288749525356419690089209657088096929093627628914714337941414163444246700585224979593139719464618770377852976066140372961625608822973617662422361461639967854412548353683722125774711938008593468444803627077967384058071645801709891390583364556656920716308861000498446463091016652595267857693666043950554232166276353781448749188487322505424556667403375571729082109574917708715051901557656675271471556473667093740838077145161745500242557049819161696436725533699863837202181409925211137898899886893652915098644215187029276287095351773411395143914837321798716725555838360921372962705534941866190327536916817310277322035258329763314498524639640594167438110728346591641871405348185755838655542230972998587732746808637894592265067387597639880091279622321448478146858054054367923371646532590101144902422807518697630213465487825936762080099495034018473399277820407321000916278552017003468664526089674133466722517725278391501066506662961430930460347333445916541953946586885106848863511496629471805693461638536440125905816829362339549982877643327978820071676014087526741118437371351226276441762004193718062877360867133929869341847768035923702983952107669663932645858011639292439279958193694410765057915439492715062724732387075392372871139681099825610382378864944131435665360719254391060023689635157207951330477962271993168818420467879854593263703407395517832017467466716676033940196271847246829702458131525559094044591898804594565322809398507792843991695484809368943479934514351462270690566592456101845221170010366855097778796019857283495871644225051589283956667904898008632223934811200641717573389731231209363973808766724093632366310657818902493415054080270289520921006076709536002852269939063726759933141671293322063534591223286231838902958240796883463694711098155092572145321112345841890337545011902472596205675722644876652941055468869443469463173883693602548452908607322698600165096710675745528717580768978808492521566816414440682109486423914195031050767888903625534663580724510729106614912422958286792214413156672598963078576934965915533729903372164470652879070002652956620195848027493217233700864773805804514419879747330332604616540200435524752545704477658187746521166418580219174971301333940517311478589729496165708163797086511187574568367555060972377584061565063891068319179689439444843987421427837500669605541616880331537341482163229929858057895189677411208201751722307586337000809842373280783813541193226522564333553305016871114373621086341386087300663061722889208129919851664403557508899770866439335974667169161011599323392111291639246869470264460343418653338213607808185948672655793405067290045653419082356735230049373455913552072871768737417576615080209094489144567728912267123325455231705494820986888646822696566099728603719925695287811980786538513948038970886413662985070172783921778215599778937688358100043359201279845154454709614569637193113010704097015635965998164703812118289382786827974984515877159284975703715901125790753444542085678311091755222028821104399223630644228755461432739105803483932920964915668480054422307067058993680322160804725874998609197635210985968965697312031964562229019538591948518448788341353590134847982509528759284605085417126156234912072887356482540245966661086315739102817589561024539311675984191813931911934255685245129863597876422740701870402557703479033868145164207895383089080122024802212606236038020983906854878820762585219647696571143196518420723157367797939320006991869776382090697385242924290415628385054730486580917259289460571109711099618939834583901846473089090571859159093095311319937491249035939340545657509879091041369119829028979977727392572963858198909602776786592385210929060524836132120027841548993776743303284181422207639150955045563076440857327060898437953591341280632366190309370462736441392353380120277986140629411206526682996136009572425482210972764000972525620315857201218291684178323578794158658366096567735047951303067668732557084576220051921885246716249547407751079370324376593598247922365062653451708138419996768703100126597548431744776733210319898100641864112951867263133212004508112690767787286212303383870253918369866258710925369182601858247927585933600065857849441892901388479182681622421948172937555084016507029937739311333521455937671315007947836313119737960327438078245162870593890114018040908466625162036579032876887339005304557961122896581651525853276978028383759553781362273170842417823694810199992890610666130601135454459185981922893020040321833797404004353208280195191175464472835827742063137489042097620426632538691580392457440164105943036625370831806965449331195884987110497023937232572145873385931327545925166712083057188692109578545528762155295188713212206169075472397072270994590448197913575344884012937390609067701750252860952942553187876954316249091236765009321477498221429526103210493933907210513589753144721530562856047258874311523284082164814723339933170449713491010266685968255167864116846412616909594912038887398101161959260453913205756757453277291565017353254485291885678199081732728116937085367085115774306655848651607134380988458621621928460142667606679277543465050070549238502869017345304826930894069882142628273333147111790645780056944478012746797566899435780844341045458072353870447299748734392159553690131553589916114051310173329271898016494609487928219516669149520014700925987090647796430877579410553644991230325654713191531494142809779693373995707454734174208118891316182969849345959344948291588298602503509727796959213796170487736557127150439846218748677479532321015319101538952756576307428713735714237329214249111212327654731711981207524195135502738596025281154250387462754375823942465152209886583487078574119082184390247874421997973986090293490248971349869162615387275796674079524748406560566990759173861941570564496697445699573674163099705348572796623861942618218655669152473740539328386395098304077058260290585409660932672890985550977903922800420938232398760289485372185826070830467101341940278175886694181766097431418553286808568700585139988449520096680639626574915627913900644836877386087301909877181580860641186041240706161881640919640756683115397588533939045049102884084866002810448948134613791397242591302787220797847928415200961815248752411630706813004267205012212189187497359309998901014514676301082426132478281222481791038112945248195279027310637654890395748658021918675789605384678681816711932415891573022615301519314578182440643002588413753848944249582129513752363155306736334383733489583603248090981491263270749906452105475801682594512553923425741442053098783295298853414794247604220137066644507373307355545090233293309371569442158381643929777158820767853807866770790116971430843998373807498366698764869903663359689248893842658177780013029177657827512425484808802166415909203220920216570137881510337293921192352838696593307568164912065392230735389481052982502543473874543788953002237127655958043943308209109355309719705742716757743722220881443057512759757579346006109942104069788223913016310770549380823503793265656362026872848473530611659770073401065700041101873404333713427813639109179496062572201954396062575430183413900576721986469893988257537393312679600343782492274030155213695989654792464399790343987106697228989524828142715500120277287336924781936339176337238019909098939871977242322903799259742797147296763703695241908143269156528155363882310228095704242118058605508289053301263974398697056171149052455700431173946071346711448912994175150340183981081688245610369324384525435081636760382757028574857133657807031649042385725096688807316181236777525079715852343016743470662874113773787879265103783103873871981531724488069842611900131535244694585875255244542483031341724792546652879437330670345163691004486626682443341135299756092452664745695365100420550245134772107756884351849300908597299217436029058838872655132461231493590709526602158417955976906377869640503545810281331082702262522830974359970353507221293418411874548336488658627239161913577993131745172049084504351451332450433926173476756516523994013029132785799851431278168389555331565299479577868436939929637115327492302810874364818177407808402488875583424375839783279946214276380553304538142008928410294951204333449307710645288568784177695690143093813469368367796879605144062799922887019223913418799253961955312337173062699359315965901890161136468401092410858246810447642964867705184466343128279671609807181948791928531593184158233896600812155339279486051664586146798002847970807963835033306576441177799321996423741442150153640495478405334733649604616314852085546016665104897632831241684681665849353814167346909576926526690077400620187747921950566776564683912020615438022473800416528319989143978755466143022456901444236674805387702083920732543826991566288017752712216285619262908131620199890187542184061809875518960400379169320853755432235506538116046371143957842538970243165270558384044354282789769606811452599341310128145778946622621260865947118568704419550724456637128619998149908647028578782134105688784275827429304131452268453685649290400505719111902585139520465535491880151510025902146180478346485942367096043260524553756401538468817954797830712283575695257788037655233664218615333279880583699163835426618226407535103990610509933199480929655389726830325391296439578782925909333547723087130805105490591570783450742146761701538357665213704515664155342169032480876290267266108536519467219379088191202419999083099350453288106161644615439938985458516292337559916678307395752527844134151606388107374019522592037596337889718890968779464680561242991598269106544343920421007331097404642956629120090740931950598780736478393459458990259491712143636534678013275393432265843909541959235614021721849723666608293832537088870245077615998451081522428467003635620950259515174078859713051889444066708149976282704152661665416245238022625617297493169188592355927719556413325214160071226054811455431012374969360557898838513910219344792645918050758217076919003397839638490620632638448811090742860585957028855961753724127875641961243517128979005408226746458124107997768227749060248075662174278417748269424791799131683143681602372077503611396531702707799191075808106701226252285547822856876233326280062238749369814990802089973464924292923379192970849115260860844158791327609027103989099141129767148270544528345652778307515049838421186923595433852289092568839681581212301844019481260670390949895072680278896410972571733522589545787710388905656181711429400302040327930361575287687045036465026051893433646523982611737482280940213466583024524588558933745044947860626004352582849764703785413409181225223280279389429424106129498455083163991208640847900356685952935299239798630417906121944466035616155061898654063483813341509422043066124873528088401305126136025885914846753075268955464107738329512118460075994128012209429703816721230630207861277510572098101867644819435178188528303448560779042720877255873321154495557427909159535045554102809191030948758394511885289526117896859209704435891546174961934092613411740475100118099153530636398355493649159850457084713017915432969733860171203518871043749537144651539086608671548683197531407648388607541987756007931856348258770342334840126638703303179090709359482973150692175545885874797058182324069010386845029960405822748464180108743599907060446775960529797439033228333792479900790493331800552879694600690350181861689638709936027234079607377799583971166065012222557691906496644852064763478072562973191992981788516832862320638258410981986547679436853267496184425335077773995513185051525287999785696438933858837306304443978472109063441632015184651665134712719621191593030364104464370913285700091345513157480263390305710985893903935096209678619040434812800736619622434777237205136169797306433678865902739919998132641862971012124394940662853734234533411137892181116056917969614992008645972070994781315409928816138435966466881344518794232643066456964013133235958050336147274961799340275435430362838407743848112296822796009354993152582200934590976159364450254579904249615994887810871597143218718491489506649039996709380861802578974173457524387290106126809105105631574537773069154313448714050727276968657355414830307128435030083208455652128650891212224277174745748003855674619383481647450238036016181422383192299913130944619380465268404741220731175457432099964344460609764410082504408500560437804713943229485635135640669425889782955261997619380214983502938855281186153613277642843694411521692744710819035816389239643740786096780068733534023523051619951293617894900076964730639137119197066585084351243685552646410328878644639049264498047522184803991349108941371664464688743549145609397811104819843170686537280579143098063702552872538723609624941393106676928888434414586696363520396735086476078887663748361584873701679594522018436762707971701723542530922732595422905149461776540310974701596068524114200211317683616180686004137309195650343726059643545213121019257376373059623244401727237227884370380899958635028526641544219457571324872427277743517008809840895010213213656444906368965077865149695393299183698794663324799429447930906596849237258683426629085512140275417996533012014068176547227983518201024977112465217293987200285053865681932465669658704544700207495066032463963815517112731560707312252880256130515759331444484127965023916493740147283341052275956699227739194914694952759671738411222665688420586466800789190702116461349031815110179728042493630820820886075480101631417506209435238631474938242322308113784399322551172628036946638058480297657592689475395406798509013543057951063989357913383337123295722601635927295234334051043419149907793770651240709717313168382453821133018627743873146543660470610285670804379461305622346356827612106402036246360352772318624592086347185415984781191869342082060660534518154553211779325225571491968557650068217173461994997822476368072564800416783695401677844068708113572411996562491771452820888202756779027065906616377312235469322604768264007710948975517947062270219072265143413314711650464636713686536199236877606257792994090689474084355462440559963107805993218090530140700787493062003478166909830457752951431563169571448673363861311019194509602134409346791245243693759956461831563255622983722042118150930271942006081760866866374122824112751305124230665080297372815646300734883221409407295878166627958064402794824618660870333020251410061299174358381843523132694843793443242323321649577088990101740911999706774925782563542628449769049868699495546473456133670161350117855722970913007924766980467128636953316839477294534449893474391022349623468616064879441085773891358842103622225901794039222759663860608585667124039772350428784930160532163182853319909827350645235155219120720092575293335516495978789545020734526433755354595519470191903125388529094330638227877829207347140822105101760536233272677009945688775929952236283594916235020337227009933270448594571870099490389852656210883947961427010460720881865281648412437580135067153884737944436454796722868684858999124639586647453281012505611331684880926928856277108813416780452700738292555280854204724151166491513846882338460759950306072442880756418430135058003774904294015467615982832133983994820678068572388219560341071817904863312037976139675536118186896646298111771995181152202582776618249003998623861489444402859277065681692879863217312017608994873645456350517092242286138587901759246672550367797593699464209236089154856945820422373103060584856011259404530430820701144287121454509070045335748453351142949828559056246166894630814251092517413145345219893513251756182166159432109260665325490090724935655316865395895238892113542651406973960969321215069103508957059264910232861850154681339686597139037118501699728850877293596775757035582150533224267624698697648350137943273959958622890499673403484780341852408909435064562656456521394918410889609210898390854406449631060313412965681160738311270132772051815744711502923687821969679491884905701164594548816005702818652687885281131698843668998474004217327997358456602741910754486354506043172863354198805284058970864327532543944695960895133646463782055248541413787297194992066662489738177234245505156339405229098998583369441316195646303301965021859010262805255814294932429078192583720666357382500799186032557493629609580599958900598521745180500119964253026567066570714063755671139402224210808168132360434759280141287775175715818550826038968666263375642280940536995682354343751563212320099485242766268656132019720404995763060419046687243871857960084166025861320131773485117376416466347604948068651851893621546002610958630323152129211157625270968403215989232992149153053037375156187993225823870796828157866710002380602102951378603596971565910313090083058803595523169833964728934086325750986274672363231147183173153281210382429643572278450615549809341152972049388024890531076870340269657305464101283209440224555094521378140072199086708393895657107990395453239676724096888697489398945449010915240896124718264812603801459965602075480381933783552646346399694350440638330885151423748203279893797752399315062210659787815418858518117052534076512151141569266469662114710814587218665047719137858648721719470238771550889936962687128428697727859561410668103749565864627567459757837160095204321582100456608841044572272522543973621557141275372879343411664020257552107133042594346132392814552182288036933101847440328829805619189517954580910799550598948827047821444846837833656952699903200797734949507081866521612813482931827206051720351421437453691313454402251291655969342534716338289261266548923536365626345546001460559971942892313674648835295429775022987766333572570564862162400189038477625374474460194464383064067100119720069041057188212060142137429141294764540939958961726450926836928290750023069592728636600330728423994661325044307348135415085471811636137185204407811313282908987569149022867169813306353009593015908070938839653663859990375758187466069970247212485682689484079913980177863051766804715532012588967998510125713862813714045096793263633836588279105283235855506980297770980386013786636194719072325119229388783654874404658791184668703238793501703607614317245361445547172673277270873832453343235618659657198020191428847656526073186954232502657227530041703182647393094769626976093438257124281215700943587174538540119078274416153066192128307233295521302463779720004489522982960271538150328880208159551317546474987125466083175749553989233245640029470019095956151375003070659251202436700662161175561674569400837194973560425028178877896160852251465034917606066571604018768786344311608741218103801495864097097298473922468920161497104523947348356452079122163084352637627948121819512670351805806591108616118084328695146279484545370232390467084709125227633247561887140153889859558803900427018575631729086733502816290642445326004107599273025883229264501864650809240945588771965186475613383114290611335724368692322503182666055416320006378790014301622794842667028515499148737184383754953187549683344621594201920990150321556867566388477547120143705802074532715991093864268402356153781673282248883785798662432487927352026970131775160923249832319299716274797676520736169606167010012584560261196490075153085648403591945843139196946872666343777230291006521600312608979201944003919596464488882379100708031411257736804023758838555637647376237608525675899021859876813762143355149091714422796356019289038609543400241474479943915287260773469519592727815561082181919022247745166444437093210010998052661161291509327215631410839739942869824650307654953463450259901156691350189817618673946005021893822640345510152075825684347285951507220866640249950637751105413311022491510087680728663227726914226392020880056455833397588038790463935331894715117385678191383164566574664588762668386726424049318359938828797465145303842529317960883829917577449576051464744825536275523000080078443685284257793766459549924255446550085711970461885765256044926680301846630725880851573082437038750743543372318070838275643337950696866754352932797974772243095753297826352271349457443239928211211944171723341703780035587696440934879811461624707538637003905311993692358621702615509413709051254276071407931084425310686268505947277705534490065664408117709319209127235298852099755093109975203133599009396274427462608939821631574309820789113574455287008358021622286607327400381360516566965207193712023495522688933883976170475906481781563127446295889644785114535675076451455106590543215328384839470744931323545608493213557018159418061872402978513673473382376387173797001640656558666823907459532744883060746130680621503693920067243805486249475135344875343347255619921469560143468242240683379522995401357300627596754499132431462987832989946460579951965486042903223714392428188770000102735742882424974616208701538204648706761580793361736790286518617492579222984580307677318775319983291485966161920260746997844369509450712726759713658239514400342852688548872129379381453358125583545227262738157191835281242120366650681661153207989014232697916290969447590463723785085617579705984086155412375006968247556531483669584231452616248580292981474938635885896893990558976060473242818066472770643030301663170460526443532435654733847626467442250240874426314396438401630139849178913115544742718755484088629311117030999599892764922550864633414134890297522493986375725873527184073072176412901193433590069167835118748598031997861145074457701357321289455169008389892357162755986399839418595460316381160184827389276461955063369830300108209009295784606483687271320841263734599373744694504231161730829203266600825305552736485579631301004392716226625149339769793341789258229608847230045343229382272215463642198407073143175487804096976928383483916976142845151678808400490893438351884024957988773378445132525212220869818035976607054151798390218535601728079843325485077612250033055393283353718923615576938604858803085149593191338174000030492983693774607501707892554133536234477892201697962867156526509971166689259460900297618091641317156054284524516209018645990646000215805847255519907543921571270585920163749257479369516572417635452559948579310202995035880581270530015345603254440105747105657500265063047469726811518118402122714204893904156365374741641145676286143334335284261662563132472869156401227857890908709679019278813931844168851123047161362679272692259677047006121918240976613014757238578759792554337989465507307131290285322601878220334889481113966041446977213816199645868525659676562649273989411853506581240135410495704944506886035766866088717630066469504594246203598509544147169317302337397249653468950256559000894915954610818747999508062929983170020149251964295473058321829149294773432603895914869799063263855968800957675408472954867878764876436757667150442508595895757382250705438268980544642317621081771033296274986713401435044959604042227510998772411873849767245027342330516916153313071658391821184999900607630516785097652169531550520992882297799540000927187365652823846199100483368301249505578611765552734512358050745985361277176959332935623643816124179069591287632107167106187379008524617242601745951283974383358000082044619212936948871502803532260867987197573492388336753807630850854481973631619392456175188575003755001907800654035432236728721034058079473228313249743702352337586309978851808253833166953545798478362014868017757719341249247869370036975743783565391790115513151901859327102351631015991338096123612895167709070511201575053174174904472150222873652368105072032392715507208073173348823174285679842321947211943946194483837196242610961375861738618326097598314500767643303304708942749008622068476906498084509041874497764673254991689805769133035468927350486709596304565752838235275766764702852135421539760114765803338350803527228600007055540912573842771474500477414550379142907285739571636684822534421130554418545899308469491008863693257039529979622396609835726087662656777834353554468525527910218742623663179133715804909932135336727768024511254165138722006243187469316681566670036134200365647564694277836232554902563293017925547884865739058740546838992612513865352097720338073399327239731933891264840678374495144766692430809383816265645499771313693867010838113808345234418202657879137007746499923552562074543798554233401098440821102457755881836262809964674157053282703226296381648712632278563291046905219872580313934663959824264530769101330336597269844131422589367523865109504065831650045986026119324051328993373302351056315073897977196168638736773553089970766507174328181537430472798767201376864336966663385383449807599371884909440398353015039851435030274110524488575879874735340249506354355853195456032538836414834647374880640710071014079134339488575992655618913765792403362363234176863470939446208906031690756588334978565533291538146586718143548285800812722063801100494027214565700654579935150564817977351973735880285390008460585626311757966798328566948401507950515000522214297106491569228841130971024937325898947191115574150339214851511767745163631091573060893690352323346359718174104282686836693738438327435938246073964008952806035665127369121440314672220273006218377906062593960635580673908625218544391134477753783508011741095193960105854917197425843239234543797249856154280763795686696454925556900430685537610664830383633597126971174835737347916429299077852241692350029434860556853314682232721997613294035419620876960497275176768312191696847928361532390723353193540903908008710041406601036550278998771761173968585484892092280862867581027344749670671659732456343045097141159242228245737666606691492435346659324649508138161501519429315412050557706465565922983129716417067642760729774314036133619540980899062755783943026071539499047556655097967948441577706209232361213149276464789612407784687022101349164064763134218689268991654957874557450723459151315063668280330974719563169316345501426444402648446155575417192029240660659440013495541757388513751240180886612607685382501875202666978507521027745752522295262830347628449751001086179944800083451289436484307091440991509459248709814323620699918215226124576650332898575914606276825737099814145450446493138177176108401112372070418858666161127616676922283520247743445391954458046280198905864286076419875017012633054545499075018005006368139058130799140933826450032657212980104932190173827925804900610751191798737004426372169030797514321972922031283854718613475115741480550350013714035833893298661863169908243843226166330002416721231554370148996212987516808644155494786764312619456612060422130629609242873650888662829631721868445758598499036376911486708130651735549638788978988739364417412426826275506058681027410009253793573524810994915567293945815297366956688202143952177418275998524685049218918396872972398320827421007641823949150787636931386220250469997033712843643805045444818091186685600024350145865654278249977311146904630865798385434754214300038429627934861260456847594164237920242562383130109849673147035709912779569803493118061538787797498681782426941520606057034814009801763191815442015168027890604287267429244560420978756718701630551932809589528298018173404813073256703522773265202102200593222520143029490724754813243861980588821778775671271770472823300128744709823275765522042190970489406880121130141601789711166106463478781421242850138951737379939732486956153213189209203293566755891589993206554516887391781086989631599476441307685784296211905664368339750668484144751578901793746588956190749611349645235552773607322111933748764369307929047816082148256413115985692072369709953963482359779202394104776952879080200071365874159155720644988606180936942132226340755241935027992164904262546561702744960055672155321127530335265062450383502611413621097181196640242998092100233517103460251684029105495785246696006586685914900013968815992215982203847341347419138524596260457599247218423416261114314533047669155121393031020236380193414647318566325063424023986032984807645549340363208363074689665684696675648557863266298089436389527332201790420412292828750942527604430150110630581927184493839423988351934676186708668641481397881482303437053282043074008376004666384487037434773763102716212071508050141798124890382235236027768692003446014408348292935534827022243886592210051779440289289510585001267397707528846797303429394869854359889423626732558807308066060434532658085799064751662567329276242079429672956880143534038014110102732046454872901552813484632729869802317628671949873412123059716680261252203672540748472895113114430707616858113429729627289856590380570619480228826688046914945375061200825804801433369112592242931738525912217757540178120273067298209494130536130744289893556552527073400669991885202344287729165638753461580365603625905462880623043234605659846268970448591881091702103886555869109188362329299383141759980426359111509956851122417379642443019612172423558107421678894314669430660501668354138107111154959975626891692411212278659246451690853670797808332070434282567992617467290716391966289611987057699842695607874617214254217892810299429712104234188403843792254861849020638723429288285422634357759071074739576355548303914114469247614830763573489480531845830328245994056273389577578549315962883512527045656997339771747789091634836384313956188168640922568381195066964060390534730758079875259154839187518037418462897904961698375718616748263016195938536740922564169602806064659142610906116698088272785052711570100565295625966530096254205798459918713018462297074478930414595623681142810470130487220023281502022940047516061176899616688077641405569465831306047290215588578984337292255581969435266712876812035107638940542998788492606589771299190521171601009432673659756339590682065502039568105236072170171777149945107697591033090958769642903968111890347769446735843818795090991379428887273289017155759595749510193336775045189609123575934672033463182186369980049886221640213100805526204399616296620577482062363808777120893823788346371093252405973652748278059207035370254039627404315386897371322649472492306614449462191555219412330893931804452952157223005521408074583701926123658959677490358996320051241499805061748295900140597660750628488875132547398975604426591392129803846033688892042610977438737031570012437559397650283219963854895401769587273914818396635654879247547930366789118516022551060739642892455626819387193484219271226572780485693277001704431863709200980306782278669052753049746168935970886588154968687167992314271197177908610600692575940590636958525769392312142519662115969900431961934805473304206636689172828242474419874511503445916400703590582302325082498528247061294405501307686005335085231531247595646309294376086070718923259763406105887933915380028580634289516004734351111863935081592354871190158123655372296266455178270996271417666240366803354063178661766074058493509652749250464608302431743722973558866376271047120918170180893626109594722938780875704061157048797718659088280575777173326429245785319279429195460443658906851999162336836654238711063768769707875540611499551031851094313224051841024904472789961224437790000235598545316169789654690949515965329165709690055929582628055867183718304042700607853950879643566902190622471949325775395681303624852247006101752869866583337930830166659047784824568160988863467841765558863231238885766449972268188952460354438915075495648740548539587286320036449543009545071645911022737956507366986781039726659329939449505271837383003543424148325372540325547573469750048567946554293088977574154835523824098532654760493514984551344272482828679746845079065593450627567625502189306732680497641796149834691935106173542847919957778414400318117645556622997191391707079886065541524324555896031155327483407628761990738720722013666828606009208312956749339615810938773441783786989886402544187332880005496638823730202480809000275482258236154950647088820200331135372888465872603279522653825994325445732881291283008910112651179966417055134987108078460023178712234839778608477308033967993549205987268894228368736500009859835698442861314658917068826676151356626094268723661097095219674925300512802399351868813541298036211247932222677494736740473576277743319240319903936263330154974367765313466757194957143485172955913831898062896556307895035884643897495808063701398154107389948178261787973717471701606082511137373320313571671783447873113474099809204365057562613091073036843915815212213642855447433798520201429278127093815457720916942745383979256531244207784146205155408626805697148154583923958197453508261032468943125683932182543121634291623162984319361348610509510480808346805718145851051758498748205180511215126421880446955887376949584036358121297705422682944513013850121485154094230695039633307183853380333061200219572277655233193861381499072563506202061410048374239157629558633145107690478432820690778789719783520827422017959489473884868620525681077458114909872095445911499666764283112135437142584870322517871130848146598262010054568979720239864518876811357796434937011498949846594991733847690867482999118330778021841181897554323101633040879804145021138813424101406052874093310771873155064042940521714641271617422636423829858942805204719555387264966943585055751460930793797288377091537290069958912173582651849042907292329635726324754762120464276146820906545214497052214803745672882466466344682908390058793283906962803646289815528568838398447838392273303427460355148985070533903710012733924249122031046884422525465714770151241145455992834674775620267281795323658162905035156139373627285866369017345035412471991174417731994635003493540597805789163934845327311500614432422667747473831767181205369752288448753101925009983477553556426236766451136725785177293955524389556314590730270449353546947501420757080432070211269464728004301357899363734470877829094384953482192908448185275881313420255724978098455404484569398652867139920560299640377530259508192458008930915598123350956420068931144991548401437858535302756335429247882813179069868631793010110029190377676159261464200204010152817157216056671073706488491220464572250971760937079151769584157321176487073708338319046070426956415152488044682500508234993356804614645633485963630760499424922994508872916821063712977912299812775691605087528861412699512215213986423027710520264135162940447220216372972698252613365678182707083302927595484920252759065893232573499704274743109155625296448140861615429633716854262747491522303636399178671594286290726778539858695786754894952668109803177969027361255629458047405483198671908204243972250327716656896774007296198706114404982047437981989236080801072141001440546374107772945450945707645921722018399758967861634416286845238200922413662334202130378339981955825743676480163391041530234611395269931175799323656189711699968156357348181595144828107549050406706107736736377342104908971158216360176045279914784615069987526699486458579382544290106240489852166197458617857636471192363617908733012980399657137266131374120276749416302485243420595510277313040397056460299246511683175483404682009685432634508112183074179940784712057349475951154860404780042714106400286733609470914018387219388323565579721279809401352919127808463886735654039204438306406699503823898954607776624362008921333218252641542717463341923024934329775937912329955248570983278203722731975486200194248630517308461035339199490123135114160530211317267486926944100094447144320763496211232630353713216700256950443543158144705819985649892198683148838152437042025692238939446726674010426871808519876695435339388495316383023927383637467636626208403997502210250595417878215757456240069137506317151552610676351025846617322951034996264843292854886989259136143460600114825618650929455692028045130419064159023395539409294712961029057656179285036541176082429368944568466653632382390898816924040997235691532752696977550093808865270321414161140163300654874036465066641740795432929931456470833753051445427992596918611163899519765360894665702564566920802754321186786112095249402185004056707389709003418885378189027534405803153988271490821765945812988129159867069424228579430094285719558437969370244277255087833634523989509205826898954399281232590557897738278587060333798102589305026216205878224385865068036234473150988737025877949031898366053221108748565933713030260780825391792740406839109422920877041047863758670433506040095334633339279880490171057462095329232697117779931090729202982050473212268284416432344862861728534304521917740669018938372614740280200690581213092572650489127301872709056416741753422572791424612772807776423719196054454709981644627652741294482406742478160453831166935174763583443218069627136351254577081022380033279201990538877181703260911349329303439129783516810084525280250490795350408893207735269324696182438171169160725802290037439460050584367196726038640008625245537367034463967043454189092590221013485376051254347295760684577123092728689182601573333485040088473122925160955285558900588212079487808656556435499021730604886247395479811543911793097234264133394100617669937140499208146114960970342358284291159690855981959220088005452872246522969281013174212183583584909393423418324345521567407869598317801471156155262050317262929776071755507532594447253374521507911651981614550242516911383264981759580646479212335396148063323201572507854380793209674026391140617946452103800074681839382628259035805741530829241478343255816302754226348358618601506619928800662034796802449594054404466760014040912543258643975017172846542753147604482783570162478870712310852635060276863402900407358185168470359616380201195667454310849142980407323336204676706116061511501555666666686434388802749331956172895265921250240335007171822864287021989590661280143887043235850304723585286222457064395470963219298716177025240417005869294819681389477085565301590637955253603482032427102408741180455511968792934133280968781396800748833131270739681512101136856925123166645980672080550252401763364296108483380537128790225867970067131048838489467570417262603418357884283703176841501726174923935754440111410971905183412122234371129483168844886326542237367516981924829221751895522314650424549630605965579919891157670297237368916004329570424911035895114402116109266818280493939440383149338603257039645876461486662775296645669863568209242988005401822807288660412081107784458881967023874478447842181110239387391621630068290645275462298947264294255511504859131257460410637817639344371452745518749558949843184213077738138938135817796242608620707362765375865262788849553803594830274355183437961496230003216782278926101417433215434136481649511725721622674653000429725015531823255274482239630545400617399430986499275788549472132923394650466637002937805578028192719679252400418139083284648675579167753515341061274022494316920994779057956272291869746779118385625968330631822001829220214210802770842942997588450052190798298787576129023442675909512944355799793509390336479414348767211838235552294837539826558998524774507615467945785109648193245431178781044344685304414052527170664001065559327549013954715395261041973595558873635611324282122998199532446103919508758641543243671909801874287539580900267985225298520213204111256994008873005013293375149714047342428287676861844391039555358662055020362130531880621943634305918880655167708534802615192848820200682019893961524104896953418258216480700258837881174287206983377813876241841411046020303655533092062774986481072885713198917223728973057204655501100521057291680302342983241867149623530278093046316918063800911903564662025692878364878536029760377023492807971343249137890300432633017663157685871062421860916833962327468072015340726765235598329112896341354567495091548939821969641572935605410519110323800197026958114548318929431019454854944772830587920066490351500092973676098240584691167738552233740584833545133852885787404499129180970597175795125308563148194004405302715490968836429573249069597121351664950693668711607401516911230730804705378106259356746836895754373907600418218451178543653109289626498856269309352383496623743600061327726403576679880708059826976936447680833690351917144510299674585084922591242309805022409443333912849336574469959284398830840618396777643759336827433788970887217092863690796064270113688144535845140882883008163307442201823704953413851134517273924162143293728452376068070526217153610962075901923809934389852748595475561755470260357168171251776786811634721264744988242764146113400371800334786044595405219020570461435734236249605558420948304378620020752032323445840492692020454139479624264186741018628247199652975531285622880709597442329160489716217645220022046579980820882908596676349661025303988531415415662836510539081808888813445483723509949790012199009821895181227440950732456054704758864411471810176771309124211909420372811771313451348455654972584049485810440618636590450583536660246856129067154136029757145379305018960189217815706395716323972824020188930167628764725458285528357511522077015796168491691552036778101122155648050474741681689687684368335199517277916158950051874323098725738464667123099556578796003834752501330647016372088921009889596779106331573336021067577920608791110430342263354009445928761561010417797962318102572227504885068690367270645974801476495028880539157800576052302464555632467271052593163442512728975115686176541052719879878009146919014212889474675756598161887421519144224963738288398762132169503168770433444377867697898563458391526915120871671666655992483149650503727477989576485813764407696661925663116685408244659223198165086248635576698749166567977854599622324083056477246956158591057653049610964291915161084595022365069764711271559354778642262509907224004989210929378128990157504151144980041809691690864465083336605196321488927477351378952748031674893445523344424524109791648571029790152692356070116463687204336729553042056135434724921120740777718552530210851128491778772599547069856755571673168290847876595993588761745541313312843587241656173058516868211608188021595334698536425598657126732109822067780938923621848411417228822221997515445277168940710423762613452727560779268765069750262924062750802218719881139217082438327172126003051352307372733582861378064662181626501101748159779029899999333201195126370819441767984858677122095804196161768629498828330500731999463737654728511881871664651380827162752765276935855964696513219058306755072139330698337945629818754481433837943742304937635443450686591010732786164133480934997867896735667370736758291545380637437835357269739299669518876859572606853788965671535183361448632957737309753412874111947175273545156680113966863656429967841380491040898047839187715697039083802929970390791912503758764874896356189902115541743626542691086295097852653749347726452062256545380997111630449769886667549448770771917995127614820257617779335005550016469296182115640676931687833018344501647032257421058427699645025106393445686093623203072186475869917113894820325703336988988956332026259025511760852354345396920129819380646627153838729576359545174187823581996967475275296956274609645379451835839361700390468693972627169666225392457928490711809401078177014075245299408073331776868757538276005807896898390372437865783946569284560088771171140757184858446733532925497578381192381746416101364663125100500436227018000562094910956679790195698756059717792069660654983742862385313501002710316592579978378588221060356800822866621092292797625435374282176984502528922799030538414381243708359322284502268882371461336055237684488879926899271344666841638473328195111494831262030119549107253228564948208655639400802483517194029708952231689873307324526746053505793916875458312109048381773407708669287665454763940341789628836069054546149746644688684461678282579306831288689230986674716625549638550344207079997484897660469064252595482375543736897652076790819937387409232799004068061519335093197374481902465601114931790789013359785290362782519523780425476790634797343713561485374497787681490800631172293962032407526847640944681113560748023445564009184526147303201757216680705228256314286762351326922310617787400741431447185417918135885331114486398429314763657362538896092119656174709474861748116309023503858763726149211107552234224266939400787712099563220824765087452356517959948198720271229422611113655176129566597498587236519768505365520102474704420877219211759679518961931866234500446959184736524912595425282415205030037626096004537740387945486048097512451966826086821554271944029887453908091693993813962895948523008220557906753716205162096969511451142623433974763574042308673744377811607353923217941613451078065974528153179320905730835436341691788327037475701041358930180091131979235640945938642421696057990534773716590690901357124307959240379917174634839403374311722640915584615969340286515411876662483671837413722946484363906959721128375094005351389207656262794832859612906915175928128519634161462306231041901892258337898961474899742080354538721522214612432706822233224791184176564412420117086940948784519310959246165707478468411316616135656407537912768383917180752243208617831059355618007113772166506998418411754918940993308288363552173375854194568382903508320425639506759563477572492533519741465348497616647169970781482743090819605878602546043860846841469845477128122141098212326916965888757929448384531420170906213694829555584198248200828272627165242819150143932213555739739129980231278103164916251105405903751935894589621517722334682963845299624594010249450371157642845515169216708905671154350930120613860895697511594727172510574103223517009856319086141884883411539557403498861727807686264966839107132527849373372324216494423907749597873826843313620944584472561448273153208071141531791469424651479025650466282992157613390073761656152575211280626152774281573977018167067704642922184190432370543268080448488318379860310231199923769228339811117697114772723493338865186544179325842114139346507644897278337145001498973571866442183064607802444610074601022696071681511514258546593029843687813876202797645037486099673985666373880730959158654418831862955081824519544870676145631425360892293660151855779102463931510105420612933796388837985938527046231432392026982065857333663425930116221907561959220442424520812707419800598288885371330068071629791162749821414688706879969359240367014709254889049673951530961876810739031604379254503470231181858220944727963450445080754986027643968047015915987313085393486105716482074004294871088081883846939372200538722450726083966937388455756357269103088874763463294360671462072546621595800574971960026704337545076361320932098279593810664031798217035717222883450692294326073680085154422822406939775746292520351961339284585858885524076725568511238576095890303753379874335402915221326905001341366750812148933160305450554819846730919300371384239965424024471910187740282678474671235719225126472068257813561510770018202172435876593575812543981596066635190703461298667695846829624400602310842645582489884995437346331386645929886956980492724151022976339287220179901149432355192910074034228509902081248875456695478802397854719842983074686617424265744236080084642088712711407944868422607603634798645465836821586595558595235133031138426809952559183633188695949561975690555776223446014607521005976079532242779192098034462258272681620734442415501465589552671159409342772162320842635042438691959436520952957796542170991622142753825967841681720827368504555891500349042082165749719609320246045449554321563450988286311475645921611965703626121694123989293869924465901005047375387845240221528258823796222176674492162113058831944142113218057819240802863428253120262954673023660043067089626919942691068833044429347845479322955608215303828194881302930379160931413296670407401946533884593131764767660440825326213057504301943236638424355998813258318585376500934622474966086811647916646837217289892143370037945669940768219317700033706817440285148014014445659042755338221292374650269912955358713484081072817999500224591586126142691298711127411736555179690960093341412369580823367500105668102580947463743220107964065415376675050641082009086628223657368492848562397126419322923618635481414455211925703185424036851757220982708219122149586595821641666146728231347620172059491677226885361574759294411329014358147648276330957612319245089022669932590846121997011266964657302949611453199901881269924728627684827795856004233671814689119167036656277263067198240394537869347164540191869714540682162294158297095587071478095688888947408079262863170203761952409295512072355049679479060757008911134784975474743791976353296834519905683055147040758984887266993593128597426913146436445341258431103550475522473943951694238933281742771991217914285386263636481130482360634652658141135707664113196614492697230350257557098600702774761928611446622591900574218169044992609158686519891016944004923334885131327486197730050513262415246682970336070071328645173992369849160920008207911227404692179120197369360383180027905131671771985877005149979689187053251641783835428728169294196780345517794023905343472433212136909251397728913544857516772984780946904052390247936719109951597631622924402618319454548050542366782270180157023954874478327320609084094600497485628870295209737195831813064102908799337796143988946976104565113332445016474893255279246295986163348309851525007286861311809230452949773840956702211652170665414181059581386607092988792410028597702359083914250043421615695388266546017543645588960541243351369824773501936290031724441188381928362103139301434628224456055857662397373859056875773802740543852065553467368013902096087937140816466407267401514378850802431568148254308013850192518612115696857021289390366476135365427177498198654976109019575083873579082917241432095070413343054784707191660678700921206084338930005495992970453029883823333836353806903094081780060884158609278567994269096958704297163497404327185207594538306506208235074326179741088091497158166473677281724961430874197988858630273684828179407231645746730632101854920415196290604576125908868295450057907459262912453095594253601421257693447202318410553192603483263658514739410490287746925502220752554392229853878534266975468065016957415624612686822914265883161195539478491241962858997332592343397179665117952918572360534483724126231508494182389702181342627093840803729304121354432588682765601039027220851599203626589569118730759542111677848313736622707292885241672483875012131574143226397962572783172896875494802928916656782282139920330354078261942521802201921282266653542833300777838428428048203970420052531052186612519031613898752410585457461392682058513071928547450092478704102414901940049152494357941257662800161172757408213199000754652750637957338175221653153637902132096974718071602233230529688210021137553930261635289969011752017223584899568273995365617205359242913010430283706168325130082384174641698548106796055443417646367359471563550917424958323110562220141205923364457205213870360245338741976307401590016513088936201974245499336429548744601079527800506621190712099335995563501537144095702850666708358580693095507935437172530776528055867725729786075219044411254555480360333543201796303681305383911252455945900292830443143405771908310006867117517897699480037663169943737335000029189725193451965765228757904493909949112013839599520834289381839787816385316798379386403344561710690050122975767334799095130396548513208004708206656485352053980475881259151428722316607314911228974178336993931096736018487183228210347933003969363922079827599036363520677797325543372107978599911777064108218278787875803315534021451144882195124284159761486869057842410344886704626342387929918974927401580556168171312566220385245680046008641391593292327825222687111705003950859370794343978762548626261219573501550025774952805732278607660830608164945337174441086671971977375226005656036637439918680895357892542887591977823089726928489731077351271872060579910285590085199774750240497351275187638473095385530243950571016917923068041195840073079322602040424470258469405842429624793414823411569572968859261133064806197463139916603088992778868740544915787407796588842514976514087931162956036420060891538653041070808864058114569214327861352025557926698260954391759138357356084405270283755168648309635349566349228764641539535513364524999571438028847139568597094681523386162394633814844444132533726274705806766140222154346844029422099798764162119321008613174169824216232401687613448012592888637486160554202280164250238788356208857011293468852512752991637079196380143592245596003646955048994078135630737155189704109384530479256955107976566918582560270913223989455293997437497645931866673333133289946255571618291394854727093177078833952720070290908081483230372993860078994504367863215639816473128446076359713302645722962205852695566130865459319412398244030263325362890428625140597296902356856720451453802147345525690394430715013553833253276409219731803636596784476907322024919251129590627059311177333438662810314208300608108147517756949714623959737834983520712779591816396544887276304794070366316024331177450289479126314324634077646401814483296311088865907275503262950054993721395098552700554772186372393763065064124278631276307642371842068374190291973252367553501357797690885769342296281004194555925345146038584772990588393862063882589279490936003836952735757584270471485255609282456947565419674256981532881366113953727814437615647348491894976669782984679628541573546858455742239559748772265597707114578322905777987707026484072177082685700689802216238628322826752866576834669794948481114065490543834089376144076841875575176737265002718583541281594480556136336340325905167135870401916657239192537107739367202206703686529688984894109683409360030451857781113060952331250029619323955073784543432649397403636113066943453569149319906943510078425381976215012556813183226221520100011867179877130965643725280330696428184847684774807668116854699300044267845147349748007849571429831117304301837600629252621445068094186135806145103747632625230592411544037297964506385908593834043087427341505226924566953607585326370597865790412976197632734775575655622455414578211976926294773095791574788673908562763255929841193549320094291860833716817700108712298671360915465609198329896175140112545432997697969396167948549326295775009321133956171408660775605282872291426599990033320931813361939074952671744949476253089195344695229965828592477577956814558795897592856184798683351603481341138563007023220770191224291151813273898364163582937781074197471108718035509326535251759901967313386542003342666142916577718164819598843107345067733375335349809351421814008874273774806022639754843471931355421029396540068633015452064840834705291847027349487213906733244969091212689448696723186330082750608496299474484678254867196650867841738171090786526569624606837125860859165692188255925063050540950501334349194200380794982700762117991679335005796734112686200383070000771904518572497227873099432387476759798381900001226415419713590867566030335347324362626935551379779175534081368267063950905397075754378480717810330453765090025814204529352936237790887096934404058391996227576563113076188675873072265050861802024745501545242230912776439183339078119473405797574776145507115739514231626959389939446083910746036229564132145502533367485695152130502742336173683531661449351242699608429785946035237691908124367921294386526420639370172399803756503891071348445282234222049512092067300457832083751994326180632190724502850157789716195125010175941502042661005886999947683236357193333908509196824004705661320882443827758527767237089007821986959326058737777023253935115891012590310421344848863585528279033059243414991453212194071852277385808673001391165037464085738185905720375982535544156970466572140111538167723685076339328972115025366883281992728527017676197589439641941257055231503473614465275774904757920302701202857573670657397117285535773012479914484608280728686491511045695838007100412096266815542566867222140285640203718318032136304952286970807367263278578593986666794123878899435813764909134847914100148115545219438909583480749579377234598850127448977497886401595849411195492785669283276697163685576229756609272924632138738454530251341188796434265256900337462708242241585099149085094298228680976623012984233556272752427665200096612287953764604885182900536177127169967354666512419371354996308994252962764401481888937890987528821205408388631635007881643953741547679236764311539525029356281488220425502755278090752215167103635797566336990961114770597966566426951198307799206191743835840279658482627884228275105254435090695263352627550965340818685173575231794634979950124924207835531388088927825196606298791373569879126815616915737843130399922623561177332416352718143122578226072736418557888726503867970542968497909061479292733987034102847765363520888099099437453921256335681327650069086918279557227116465467594272141051285991009833630368592697543334215140768518700661148209471819887925877711891956922901257235811237913750239494850886680074071431765069233555860312676499492451553133133351512959495247714747398876685852463611981741868861823114759188091929598507647059451212366081002261032674519065081742059264735775128127185580390896404552865412533190802723145888880077227859350570144696293145789665195125565180816724948087461192383908230074160583234149003014380005638503875166782539640028751573059869800602211484292626875750968847425180998758645439367046911154203001713515011949552461958335901576416182410718026529659100039234287036431772922374564172363146798034543633516786021260103309511369138520174709020959382417253530651046719295645287002904531504628885761732173567433044392541076829770578701195089944166519363634987301863733025958190256363254195345023907749979805599554992261635889395447546832191984968145401189376489560111782132252033414849178346394160663406879877898933161771555255752285318591479441894363917882163370737389229077920481462083717446930988445861250929248701818351890845511562307370868146834752403759380912609141247204967583453259372441851025429332013476488424169334544176857998251835522377910083670621665769503673333274721535189922630814083185602921108438162679403455548981149427605414442268001992465517965548274229566189069357339251748040742506471668400080722427130747814162000674258584351220113762956996075356821335306488545594534624039156991940672193544664833716759867248451198471296181033704787191223524388538991768244475246495541469974344704509973221888156770186366941491069160987043326416886758609266339765366384892123656793780009191171609679837550788536393820884114293901389857053897381062967067133506845564973760403415660736893592340900789080219246589999249930847040016071103074349473963937223013600644457674965424120364922264367249594260353884359801692469993251837378081600956942023784873447447935920822878673488801288353657343869738871088343081130108294774958986223136296805969231922997494373363645345567206838392612791960855612513599222806235789766667680417522944057273396415668220790588968276772860440132257329384204461497082248167118987815602569541869597277487666711088177598567536479760545499362154474022345547927450062925029571149722134327637316850287836447003667223938487580396111685664676592112715284072921149525349761059581175500563242510785282526233160842860761256595130665298337029255416803792687424776889842710793464985621396488275989078079768570703459879208777793186639513954921602413578416854204691622273448359959860099087056854871393231041930739562233527398814991678270388210281927339486002177788073977178037019998609035838598036038564014818185878525804553646878483075056241385083473506844415217612089142948778784168096689721771983655913931549146257844705822636164734072157299806442603154389447889168267544283226431448430883264374806209566539045184702825540295672455966805895116791265413143150146580946377330367532130410738427841849586970896053627962591771506595114432230084306573882922178746886959851122844926108952849127154899894444387580029392465427645644956152861748544725021143054452414947008819281128050148880945282073214512534042579424851342388617292505309224709186809481229681509956920240279019879868017868006582717359019311314744082520770052383975758701949027008917783475061774930570588623907841720916983570911185614728743342459715683420668857774236048392584897869364671137698550559406319435064333991291197822969347777078609691711805319088322936924368362065644918338973307556296950289817732233094176295826616024467344404404682211191285883199696611080266916631074923392820189528299375615649720401715318699109577089070909842428257180679044989882129950971278180770877063343480554649180978633003033535712688951174903159519134869629696432409954406361314520658074451222052417020857808793842403072265588983076786986342536370600839699896845959249179776304139667150624298746704835488198013799052464924740869106743812858545621772013122048839994763007699581908225724463235611296918290069762807536046057354326130219151340107704558694272864953502467234897646384070531626563738851086548678114002528577883424151252335316574626835525659789093454599090605354985992333324687816337488192674686900116160072267655705628632741233859138905260675698943077948577277972690470980992173008321969251964678525988936680181525214173221886339193878072133101800885091550278366574172367490042832807422225086564323218318582986236280617581159629971871671634793368715977934305163770803867267637262837787544201717509302533395010677558371941090877250887439186956920054682123266674624780088406762748976524294940829586276596040802518121471418842123268332950536901053890403517042609700090255128816313134789318949942099495105459071249127691344399231582761882413109330358339273416303383090466896730721481582013908620527218944924838306009127496212498415392710139150534840250598110378151677186598617931549126434353063674295083208002270314399252188680050096053801267758521628602041042974128356079340743743710955975101742834482442116550545251771940424556176533300628615146415701424533388029281587121688996390922483756897228424947394121258338742651999058684856438066487180523295530898679228342350361154694486809090639708744104180617517277896344850254876205471076560252628715706273088065106085129068236546765638811093553079926313428943476809957016404561996234183340110823557703303025155433067259235810534018565926913042406648487316660396174066975892172842798755956312922201329339596647033570315074970611287061281127181621565293593874743131979985349955041717412692172846614711964384952142781299512259384625643758770016068363316514923206331076495681590856432685917431265221090358471533592750855480868694383522246975312648613433488420472718252519497216300556648444521638749478369333131303572164948157977948554621578357810383982118055712924913573778584895741557623747809090554213867910222906276645803914409436307008973339896890328623571779661941163490052982616624310610158633523185835200136142962910174413963723166913542272396798832250062240282112214802953541852852031875964367843456594854369470101400458265257338567625895202815346936865077347701866864770406397485789300467990251276803327981605885041766054635854828470806781600689208199104560362831700784977678383540222177057608841678785034765762644293030405067886648933746628441788940791950675563805014902818621079465463445200519705622063912310310105578302974946572043803249219674595816896890064808107907371195798269302791606148672139569960980990000733955728072668685903828673467643256121964981770640554318062564916929917627340042339579808955787798111117620349666744249095872143854450064972774315263452845287806945584097271817710276982405518355902343417112074711437432465270875264879861886913063128552591312089770881043799384321485364473917127201085528513136580622309749722221262039004480817043369175778432518878218128670265090310835821847632156979520688739320337082823312675541520931480350036272514231518886246155145679336075846297039394310708632925213369044568971971648978568019496421662321276881693346047418719858712778593305931417551270251975358399905097904021303861290668946159265911565930587321833801514962104097834563408092516695933752357676885082500913552954852396309621223062482993710529517227908750760380151678098559571374656660936296333758435250332344283667916604226818899559768444221518726604866962604705762703739140525515706822949251006493983714435127385774090748890649069292926829029432558906574906652442783979121381124378804942544660503094985317388008607786606632123320309487689316253696262342599244945345392310670836205965640272576504555110287747530309358942586878964721043969177743171313136797877078042468862547236209070273592859629706496466245245539856884973998730590514643503070647632587518946026788393492813043336207684584898882529209222371031719199664511548895100850360248008656672644630739658366003529941539579374855181544988470947174608787735008978000462820396747939038694722238589848648803979229979411217127899341856453163677257396104104414383863549421716818813425841841639106229583961796087454749825781694762308818083568862145308696379478874117801690718770135259803535637544325799200848671378702137099113850384141222936425143158695258327095385892419041574066620609809862266367307947512421852440463693624415776596175368742531344210593551234299673107623431570124851349810742282031072513532119170440755954252185169456596455545183814948935474835921541377101657980619958795503892019152720878247983530542942023950653272641932271901760777702732852385401510701490325647683370463341524483792547694671826852784253399435170870450233034501231105427991665973830751744557712113161534296709033316195494413736315597025395758838743032883840995394824682819644517618709641969133781223810565222753346817637247062461701758245173842880954206855404384910146393228838449661433565104987890146362813457134230042851444007290158806458772464539901385218087192988839372020872502670845340651802931850307811395104147821466278647779797475958593593043170262661722751681361670817232463506664119315646356502704293032547839195382993488987887447632596747521459503894807260145446813578424225585653858207968806115450242545118545688011873145936992601810639108846091739412622945847402409269765067913903746378914210910725302654037284939847604246616980158379238769814227264566358451182166120267896526544323320384381681969033899141996021911477974565729444956051983791903888619573454438568582607283336993367209387515220856142470652394645252581974306634535315500108708832725420489724844174012849274094218043854479845146816068788633606409740257178415682659269077007369224062900297057106036078914214005409029157708022615148648595359418054561837148662868816211723038752239790297480417440593989986003195023404329129260679663330661868091934623386818039179637607316786071249792639673967085999788403665318387208143552190970462031992741255490526319912646172644203685316418184746532916019343279583972629043063613497937126956297936828187636603433845913477522407778269708376732561836766704689326880982367946246288296903439438057738339307909827756473665848723056322761704822446511204757494055116532836285934454564598497637953016296320542095200052537339555105898884387792466986851133470634261929161810115772192193079341296060735408937025702615418719159285504229859724192178013315899191112293725065364404277609146728031916603226055942374017558494161516838463053602380013126221900839704049565661978619464848130613384376480326876491768231881804416706078746790988048358535893280032231293729905253359973377848398070606051283358163122992237594527882661426206290193636298296226523478656654124235198834367109522341297952305186657125397079863170754933574495906073209723940953693416446202455793794050424341267499821866629348156749804610160552751426626499701901020051642509815980491509900817967124163668488860950114979430469889778486577270660685869214277652621025388629153894993803277028481856856338261232783871757395773269452185430165151380238052933926868296567439884623968575075559168099041570181427108449274211962261092586090063754574694142371117264924621304658139764864252735183485295172596267264268901310533346941356318160657940631621883583498607282666374694278808294510556625090828572876841316625151726030181060475829308298118754614171057122824420409390994915879313678249829932421243297861228175824787025107278542654531595680992485691422418683785271300662332694347816561705383264409108311547028202960318559077629648417827970790462571632305361655107555300268363173044265538021724441134435758850735553923940065946450898696925025967875670037838061966507132574353089080661588860157221572678773298496707743397459298498511384887307740442979393997275200732464812385247687658770658153122032536662775157969866359929045965469758734385922975122764397383680269590244728092346959709979796578735372617213736055021971673084083733685627712182980495765206959214324168007899290945972883681677183687939133465256760804149401936393841582498141952328533463440487054052399859896895625447119651972232186560831149023209955507120149014267054631782383655715208576306406982948956604682237211400246006475068772445239312936102131531113467715589141498302633452688190175479351589178669744931389923227481482581429376196567626429261529167173256563911719688643488959089684658469712139096878613092834479449080372240799178558234373373025902185391181410932691833632836898971463431017019624268276511174153380747465254123097458559317564844562582553502107106046543529688434367945669813193239227485468531607346252322687630162082253321448692833696133188436379058914581045433913212577975657941405031114072062137361518405025156676324752638870448575472409774058748572718513622823645407947244962276435412275544357294028729531407773565653955056485701696001236800369114084723395799229550599352002648187114085310090478632368603872939143223209156778492293252967901689375645574081219217607722492371516820512414043226455517970653231501954813345558871380832410050012837750822871374636675677214857468844449700709721171856342054629198288890074504218307515097987833614017643455580788391512885721019967780242465289127661172184047545710172406401481810172940964143400708254958259181346250616458697830711117484547269782438226770305212114845154442001585354879189959598763774796827584884743586162418121936916490492747172528045670417790794500921474951689150237957814437244645548104940355646000782305784802666727163245635612687505951194494564883785804801279292699752048920821012192857363722627912457303068183876278032395988839101268093467073328231687661580688410170009690803365007079315884387665284598781772528361880942378528872142457598437240429474617683572666739815668977265063525452315678865830681860672053267589500911085089300933400999404420272985139716145448096539599830634767242945876271689728072812243621840450353447553630268338566717055438733447076328505647526748450502694354981007505356329099271660018775207809557148675544856029661735823619524415663393076116069597267452140442398607658169972735278362415610002428753555073987851416240991547268046079422772154495546000631077358068578306627680098219449455507281880942891966160544175977317196637799659424805840155004799156281219501891647532707243010850268561064967576613690666185459166408631899127367375180212532664978964714723019311604338532447165759296328553983877796438412301828336521540887141404369968972612288784378059267133035182457253825829622114467139173773338046220329413419626755653157136527177881581067882176290246751435905060675881914971322398960971110615558544681560077127630952799408749744757252058653432371699187114891036775493006442189581421496289157544980603429536464453096392200123007844995220008105389350181400747781489217474154106735957315774355516749514783970644687785020859091006511834412950854029058429399855023019489826510519993337295198464666721097889305248430107465469107238963206093286216851021274259159539522262474966153020907462680658832337653275295792964437277674754082278202791114804228284228886422204494594039269447544542048226576778081284085697203571344296565437342610814903137011561149997742898999555842968625859626340364569934810704878594488259949232328148872807265953106681735850107309683226224460926771559921765898874784000343212833416305302685797317644166997444541084955596403874071218104347448347335495651010628045482272215435560348057519726207073988308457014194814844575799090224562918426684425257239028050458076106835183372844304572210085498841808414768851534862336686333922029674027100497157424470416518472396382933929152530943812332710437769217170847810222205621959251868488398721954652347057938458721529098664446547702054868991527031495835894176875012894765801180240663377163453049126692131257621553381329750055840089163453705856084675416954784541862160907543498847528781001077610385852660667905307276348081775551188645905927918870198584549590294248377043885685448104890787929513193314868075481629132595555116940482879412335290026462401077190115991757839292831156494726298288202999084063844755205619909846585823330678298621705024901763201116897629471202074565450133756509658253489539705878278687171666711455276735971263705401782216820148266142503455754545259477864675059975403009813774565246699994491080094738341273316226261360525274399145901117134123265212618100476953417171227186751762633552885948327855271496293353902344357525408490246525567627058154103376490984469705127941221256976516748673750720123152749560662057362401851994696794327622404565202000013268233410697669662864410557758969115944232488305331773100984504957264564239882253796754676524893308693440940857633721990640424239481680980097815770200559633046096688107494966037321108044283732901513348793091782648085315399019318530849304056054251170221881037003961971586466492805939917079801182422065788578379172447789905530069735147902119299850819376750759571930862490650041240712261046844431743781551507933078566867263648823733456248055641987864229810756274387641421243490692293244292507153485283017071767256028416931136359918081539218698110899178438465480054377812306669671413491533841631170615874136921805114074528167231592091756538807708549073896987382076739624046548040393872237639036210463754737741240340276557159617693653843145003139829368381409859248248143122309109809064938828214794003324664105938694041687006541916435435994461415308625691018955647038739345167223932384066832212368359315142966879899946162870418210066906326331057477493239309792344354238836369092058527290261081340604788170774304167372780173611764898529334624455096666957513212263351583161602001763737486822852862509432270807141749978971149536564770895784462960585920513108504403430751059204268469066433526072804775778897372271965647614157276751064265495798252800696914634792579822941369850008274973388091659932113445262698704038204172523529039154772431327129576193969301590139307176567621594530895399295017273070193744836725362761758741273091128262380513658755230090398531463429928344015055278632183668703850961549336900509234488955505969898227750839616871152532766032710871448601737173335382754619722617047373435053579729001057863164795671303249619552266897067719290364438353716085364223703321106790088443048112609032260987597169873157882592694950227651960899309091926459517712547730814790267094775528318802792796214684049329851605567156488170512383182831127653314911296705413926331464014164798250495221192859341789782279582531349896568983352966693948797740298053265207190681617660572554647586693839769030493069198214012864360660295016482080983515941940884973564828804607113121221323144204721248120149569453036452040412148379487636621897064502685710723539792650995233786169423105314365753802426658354302235080379757437345408004658861092440903813481396197449414845988966312264816800857080815678944026571561016912588130358281431254834231882240137714968850640816198984308948924280921828440006802404471039353954048470223955847086526482922628034162507642961004037865164248539186591716970846833008635721908001833858821681579908802109412655503834533889137266155437059802675394634049988335805168750367281961536616550530866314504314253233230068800609745088516132203455208352342802269100936637855482802412956109971420064709925170779010718033105884062901706777042871409883924546598965021307908296614310568908554226075008562581777895524387685348796568394792222164038782865348683458144048645520883759077986588586240649421572515456652206338804219419531225431067907334521049475220015670178161344004204736135602109777673164091717304458459812724124161841638500289706558517185323700890293611709560736328640000746626163564299798955553871660751948916339115633389713543182504417910973000332615561707902310220192707739972882614798113367636909293812170679035703021859323030956723992770230804538186219775457336048460826768312405304000335834914211441608768336616956426330207168515174055037612313347929660735057028186087607107457304948914992141256707553380753462495669282592119547354576945910750333404239987148720252753247485901145387199142155020328496223534893965511707360099253953071452261970121080796945338290851283999156600186549198860931693990564233650340623310865451716877158729152574460426918423889675962931669303953631862654978131310126430896424637968268155978855852206914481438385333131137292352685597741804519895388412432307595739703951967986837454254936906196633814285652141685654716171962199613972126352125658331880355469973127083477161786717124829486231730617005967643522483915539563143277721693000757609415231891820836577176767400602247973541507845533940565163861639930188495719952766945555158046531796528592218998646633582220515791692654618016238932683545663546251879822129445809256213217824138496927090017609903766236735294760648029187703728968473584656854872079094969662662937376575780800398362693391440969612707445938242994401052666327403963613532675576596368015174975185381305422394966875946293145250392913074822190849867075703114070591145704935565163382875259823410267006578301947358893728927764279102359221433157278657576427751465855056440729393518367308651373048605125842490846856709223656781654947114218061064484350242133711555654049160470997421030221075618006791345038848809728551206285918470080384103641592702528394051768726869307236049289837688080662511042838258309099037152941851446165843509545070790742006733260672734746561306095397200263507300730703038979077106761792271000932904031859014903995692498391326990560686636332451578029433919352103422627514453918264752260301013143423783887996472666240179071335057615268980482385921200773858204447052139789630101207997074678932349462219245620087652336411382161308775954875061436536434152704239339742456323088004003860980834546053356194386946025526042096042197420271320883180945817526585807472559825295608482401190816277388897570663864465957191454369603353299145797351836867326303154523145779550483320998226529245532331401733846586526700476494204922085705226385453107551954669745989846790693876160010691952015909386925083271141111118725139316721484831057815981803399158619463501098791378801161810688156668271441564740481927031282518798721833065948464127283756915875996831907355862900944462307349808184835425609035203033204810622159041065954200646568310254887640008859175321681986813801107288860856949456974691960605477763084658150722169470097268112468638597109247540374251603414159930552264242489632840712191973342571325139680571287919433753763425957076836288804961356571027676531382320170277042280150580742883738362383701437806109014424066182818089447514544467528838892131602716661574347255079974789616443164966262043914716403155853514577567711239683220196820965708823312933500440070436892116371077542704312701536272622791944702480642133394807708899608173041829784300258545657266034828542468406858908610416824648050054829690595017477284088996445467852251704865668554258003998020637869553603640549498977530218021958066606960396559967978442260688848753598408481365186054564556979824178407273112392303104412531626976595050395584266511530128643241455644362613244333690565760676070464902285762323359360618385027197299543705952765361456153703372095969319419875837748800907955014416161694001236330053398392275047673606897066228560016871036224488619813014919536647753999042024048600599275845368205444607884034281359907950819065434998822075624262756739317503418837586110274707961506429011804185758965249595693001277122823341363763853358168915219159167364055413955546460576275437016246004973456809528975265349017480688045267898017945144549955207192089825201278290468076584939541062784439781610549925008217384089827341042826430603677945684151095107101383462653974862788537373238194788449367520602424617772086455755956420779722266679336361602390884816572471438194566480076097270033606783841155820723561882340838185078718428270559187725028881955478116512242780522926441207227513429630046602614784680487303977167555125489639005000464752215096811676088594810380068158597169076436337789273816517204387679748794292601511186261572337898280041957012487159150762161075764375893935659720786892063490033330842676394521848651242325461480753600408020132976368777470935104062697323244928379507478863348224346435911730390789362966180141751937187903244328067616619517039104344174492172556363656585630258704846490876657004714483226060415445952411389791720189251607634360150542612729124657110861903182810860792754450458781925565256395906132514645054318525568321491323026660241257207158702922382490348812552044195805775062706084716017699588036568503750197141713900594685591803892400291677224723845501241765444157532968053632153029482852004195348371163037851967686299576952258366141647536771900817205185921448514414700449533428705620118185921042279135720436380417955892946664545637466475653486025877874769119681162360077899972158507671311095457239050996417156995080144814085242954382303438370463659660197474284403706918202553363936109937924365072883812878087382525324859356536683698712046779905287519359832388975263675193986903130804919691762724333160703186520435906126163013623605862930169184479751862653509679987048629996646332016373799097911036216082165107412573821874603045331875323059132707836856689445710300683459653134426240790042406629083342311892958411864158602125759703336021150575988945879968491320344258118310187850972347404645870444946912490034072603263104659659812125348515924772848257772534003049789202776818359200984263997221817252716686542404743428883024219397498421167652046492643328272323274622347485765219374540662155439960085688252454598485737814766989133660247074489834644577185465468514874075140882929045483678521242622638151588070502788664030244474661043346698974948247081090344032983203320796093131687577824808504166894985603912533721537107056628481398427602679282669349823694256237256657600312112804642537432844176069850273170049801174187950926267299866140459617781454952316728694820079247811663599032021366187776715319653079036835370176298396148511652614489929488497832028457035532691211865611107446874318314774147719658380180468371666389441665913929040235402237235338367858996273351104997376255546669375872665226104269429684572200213737461167232981739311273352549025052052794482817474624551434676630287892347052104068893488593937083025744132488056460576283281073975790405736961339135036684241643427411475067635140595502051188473708905995199898649997875061709397065289136540119956129122554394474701548191180737493404582502073238331031378231960712293249254483718643310203076860901288997070303636772368609883956400942150389928329473068567019656800196017804723387370883988779450585483120611932320452745774493429389703733042090308534484213219148233649403680903205600984718722644523826857089550567279920716285306967181195868026957914996968738136071809759332207928236867297759321272268630088156033144151730053146678544478700672404754648686945116366760213871814300690654035632483709203420773078322148351967274081789045338000440160969726442282682719265863778088879303601275121861070141097207577130104690060485283922288869327444648474787098845673307433252890233398456198675993443260203826972685034959620002059033233677498478746636785447071432013693089480577764986864332419861224445627898218033879304800795025153503110096519513189953687315187774353078804682163162915286964103150562647470148482650072674233704584418186726552738016250384502480358470881737255574187686510518156160232290501428028394687303504552758379664477953078573399044108011474986239526018489866657840115870741186406882397450616278508964951285010938860306161029333980261740492563547566391704385915215857830391103240470764594800275924438554640012797099748680002195587112875820135797965095703907035484151099850722400285358314194718980891837400410034217301183039332928059798476279632218409216465444112871675289609199333141781704246376546862469160374481913947743328205133786379295396302362537532417487509247492536981262152822918193390418602739303429231631511537483934976178641880680415113250777572109728836902135602745372152378237837263661410730026035160787031948686273929758607965280576454614764597647450980370554570691087970394062149818020411497293621400631600337528689859602480558817864486745450565292354076201927772029546730807826893806367763562810174772685498940898165330531884577700876491307560968948645778233574405900006572555327000239450959034206890188461534792914280232004375149750349141372404651879313457059005787555994635457460069082376134819251281270220897419027389234276641356659453381686197154272749037776570765704986622410824907556644874089269251659353150796614899032862100709611139752190367980658611119111319766268127635762061364034462567529469455315234652376405606764166467700868468350092917681230777208842680551010512158901493918642643725821332459410060015215222606034201889658430416922552983939151453691912062816533482547761605744679936652055691680182221697443942282207880976250268575002346885254915856684509329898863726312638616713269886230439460130930789431286376635852547325372229130605693295706433427756783259351648014977143826758070620727926613112170950186922622947528066993835881181551779308622713631962885587467111541074742881974514593555569300049958822959721906268987691512125073835256627304628784631524756243998593440542520820887574865678032808727134954312014251666039805715944913398446050661875101617662689839322749056153422341682123346131272942681736063108098207944450962910279392778565295516152471686232834561292140282902412023183598256035951844097748148982026051673422510180385151094884556648696051508446841206046508436618668201453456017675065820395492987426834084849970368969675703467692132310788390567565514016859675855147150420005250477016193177766704439623862029035931730547906217691121486924335820560060117777049063540708004219506323285418370985517457718384107733613248133717646161133257096035874019879197478297622099723324525950543677383703465813286378385818880032997830151071353090029252509887845624874587693157546048026399880767085183417051976000206873632695852664039824549428749496104302046439838299130227709350680790470076524281341324322718250895671630717231758450401729696031210115511303899241885082948905608074377095383728786865622593177450551554873149609575592541972808668229746289242096657234360609311099164728861608173376873124475208779444027605410430081359208192225527852851077933261099002198465931143172284910739659930150631228347520957012598817117465657769417542613292059814478084656696846044658126441331780397030817190021876947605932169798833881028529424704356455745823125692575461462088190657302864843170472987644975996400502795170020905335204655359820514766905490432033387032933906285274786185777537173298339079309600493476211788364967043096614420647967914974407588223522146836977193837730228334077715451153260307349548699811976147456332604663146068520372703711758005447146964954548002975586125811986412164434006348553307132265344168756667497244371407775060315866647516363196156406735677461581093556031782343738554739732188796392166966979225211525929104275152164015901169577196620112632619840077036408914962347700675299418004974760360235757547443777578773393902670013798356679636132945744911733844474470626198418307266022047175925390687226124343100040998173685154788490028829183784101950914765862488675273629864628184948677123489417082731843810826328408731165777661969002197246107830043094607577325780131582886681635733605981844707272264152766762203261621005692599871006882600453212135766927698203204442046282550670746948696471797807475711387671734186181985547884215190096793469005850941039900918869526187528095869080338319914307173542957556923175221283095420846322564054683756069284706051662803655017552701777373423933028762457831761285153072394600780918552023341436262066612461033266761097448486572601313025529424189814601178370929409842538213105925613879743244164814167343038400548557369959135057185253133278355391061450608816017771093888511709054912504367114973373276533060169820122178658999605336362808269333581361070122168869088727757679614622427890052639156014622056909148336466161983016253630160726464092095023731918088939375559606941798073437549251518700051276309540967140168312643741138725947645678323895509621667479374583981254662834468969216258070781601629307615299446452451618838368635409983803506032213334057266237735656265503000612466068578892685766109647357898572105125299793075440337211937013975387009928472650796903591166919355988560738383441463763165629695466732339242597236990544722655695892127683175268267064271934117158780739786488943840181699682220260688676124598192332715657513080701029516710074829462384061208422588026859397072013558099968545065597340766268478839680813913283733251707405926511535743300144047740001418901499505192675218536709577549117660305877341610308576612871228873328250997369387571601213044103720050840416200116914965169655452411925466753345237985968901773368790389641724387577521959571447312461175259711167208514698637882289680348758603687740710670648376823038309117538256131958095767565341153079468466914878170824628323061805068902551526226213219553394063989957659642861815410300045197169831136575479841543980698716512470529370037671956757225194645700275046516213378197601239091879034360812022181585234598578071705685989063292670917786800255909115373694991083987384275871130976367583350810235695841648862293101257823357905182849363927467554130980843647394089588570641453406867273331871682176956562479919119266155381177501512909522284881609480364275471687287724590160665687945028250061982628526720272017594545080151975892035478729202438598437606296622348965333662857981518594398744018410514295945603393649289690456154086058273770413396526125492460886965597325083973982315861926618578121705741646531554863266368084051443719832527722722337259952066390856187593099705348299070154156188433344409002321214231986391999812207286261256072688880520557822275063588558762738824140205733270540973899443664164126110986848462880796525519337370670763259296611434473036606927816926423630327741682275329657795863974987505819443471841935812295393499068102545323195500572818641270758473264973707883499515655524073028648757665269193706151849925211625506862752587680953725291853298335510979473573474336790501781331754904555326163319356003576835491674592746078150362227250984814191943123776365412411750455793942909998416787987317790866031909273115235340693019499419014455799853300020427579928339445687624634053019368879088286248717016419726998119736218442973648850870598032169727061693481692277489588479435685704513887872586659054990977724485974369725723596529900847806296239431905650108092041905809033947292896770334995294035343389683739543200033193989399551503711286853476188720662897174150532342967477802829105153760618824126839933083204949341097690095826944849559309221506109446583299081174376409943363106517739991428955071574897060186864069776356859666416483686412968125216928732530135365847890871444055451786417732597851635604323433025874859836588418007455084834706373159213210582104416513064482083694791085530249243231746306375119867404194006834149085725715191376679262649009833003991698063233425236603641953667429413683984206304051340005322416419343344692520615618897574438392282067710554326246832758956532181884088686024051229117127795897948456841782107566067569335381706843867553213946853469781604551320368307064123494508431357387540413597822386395863788744137849140970535160593739195595728962876017719279686113692005818218866189789799805601455428704964444772558344674918026862855518788491934487252090653283022892243578301115613057849724138701213422026871488489793855472980758297309246052599144798136224328614063008396282149554745539576027312599763248641311595664676734346260152642400021400168831519466278209369457008183544551066086493293521259036790995178352656458689703357082406173705642220393123344592960030704860930090624205891970415721673370555291608659426617352694390765257566981678475537730860509165968275074351155852885574842080201224808200594774571857262436970342125200508385781907022223556256062591301725565959183868423630878612787067940174811894921612565394524226815948853453961252226630612855346793865301553987248046482480190295958155791142294389691251797129703707552804581825585711031104110788932587614643718761091485899373536240435287619605268039748994658275567543587564214867397693634192393003152579736234956483352001876441485893000710506766331744688480475019300216002382133204303656248360078686569599963070763730230296838243435455817302448471303204450292635812338480688376068807987693924949274926269694359181024178657741240690689810866010685108307601827052769601651343576002834817588947411121591593807991557628741761468528604390551057127724474858449552689135403100954866972572821907578208010586378252424617929056740740220024773409292155450435533944601003014773793871707959846455264139287260053095881584524147995609853427223265471713525864893386967547916518750736689997854512005129717907009963658618385206512756118083929363702939336893326777641042544926105734692697282901082539873254490328335015126472788921121858554353963807220846566125308922018432012890628183699555449495839944518704417228419384426692346623069197779382528102055747108218407426508341629003740745090751249977031022907454145614036692110946550923702467860003714800396376619254673771325406207441185162163544761095954366993492427157476822745277978256866258744452905107869215880015767733717292034897231273944373096217818486294136565356279202014150370732312746741613642960951161931757268416190174862848199536091941441972972998250731309813860047066530427693189519038775643758290647541675277261375465061067833694374935358327624197800200392181119314869309969288947318969331691498595168769526800546095971607931934540370530817819585593579367729648984848748341918483775985454993512628895885918805065561883374240657353097154211368479465278536520227578993538132656345522263749793724541821363284307011052325199026318554751890242374702074573440522290727477113230313316274396892169690747790370572386242619810215303018403969864255249817786685173546267095845628583785315733857175204911595244910173522062016440025883734178771140538390674766444700826190021637610155284055601654052023411768757450399747238665912820844070165491891653759141644377667560757432905827226377407004466183350931625384973446596560137931574204930555318233829948978212241907544191711704219213907798949484352991532821810554341233820103947566969860814867720668673822019904948206713705350727558816275179992473134901494548265770853199384299877027593849662838830403047483977758332293355524398449136247648981830328810393084579648332987887103109837262404322854841369475365476231945306802782586856920985175758422962852378481810427056210971194228610144497326005403912239993964065549378964085780631512446137413503980012620804084029487266472257230118129275014944476375660991695743010897749624626301430960610655444527478578156390249767770819885229427038831632519644695407780081051270273401023210007370509735873198975710349941869813652816925762584160549852970579631028381922085074788926450616885411267476268319279551196415837539880605717412046398287623879627809418920136916413206482275714434806960916111958540423072327375257203086064592856982140127478880470849831872551873405881224936024427765992500032517123551605819485675758216576935847093873362370135375894089644383934333093912162931564668318712929508390318304698060690805382900760262762002607781909064858729033903909211967405549117352553778101089641931181786734783223455361460597406777840027728949888339501734536246738834437957076881721415142761762772784073945371667334193477840355197045347443634736848978967051372450019023010652473828356068548020265561489487074302639185460956623548469190494851921148130088570392878671956550256453235338804396189764599153808338627330621250910524036935950214464074798862427899601952471174409351784783443187789645507551908362416737958954324148228419902629583377061614193326267365470313540231382316407579482551769171240337074633581767547146468968458699017537541505558445384521316412351164379458990317683311099937132877627262132093526951214272847573314997980955452629050596613359531653123102373861935199810156230065323824009197433626441492927570625151764674839079701578505028765395201922581942762262597516296594199602426760128489237506454128817288608569642259691879702368247089411898045772816654933727101051916020146581953906882957514251104514859386002636573755656943107692671573084269482132636686960597753671548929152782392201470905368919677494698717708559936801040431564199466662256515960091919073808969634599599248270551741719529207238067133052022287725876684561933378733683446538514162109793863341364544266092206936671998546360899853553265985845084190279847623871460280479205119695217090402583479339580843075180314453844930419356791250700389766011088197497432434465679413538121811489373064329778034938518493823834440273012221718891125579117352941063653936135734692768864415852689316077564742148190971026153785997174059385083112099929130326231734361630367875852765413464773873946665070470262378037702283839560774515290849636811175273197037510412898427726014943938542507845707037620274881792290244778399371710006372719987185040022707310151360846164654877211652286423370057072602329289117949918898672288694388376029927117006178509033528999599009630474430942192860436780517983793770753325396162687481237118407206782705272730036119378433838094431268606422134633558469810215948399465210184181040309670539551541503359757223661020366234570029547867403862194794824034982748907258049564006064375141791963467821833283322752690350448227126641017303378405341610541573520212573811922248700579535938867026569566449094722970476521814833871563694345023268384233185614077602076024409195744983679038280019853010206165007055642782428573765261261819795387846744365970821962210098491231380288572268162701875335935565065888755235798160990553564197386083035352131771777265975968493134878142735417910655787142199715338429183539223739981374647080068886922923006928392228513603561818029442332589537593468104408519209511418771553882873540587187731742115556904784977489975227254866935043036649355673333542560943367897251177244141499247842488933771911132140498593294453412705895018203440562698426963335927507005107024832798641566623831625035464196298406662637712038627548465170038879443545655070403892544104736979591210760149166213621266120447827222270045909876051863869699713581618963332316270723972037921546300257547270479917822474088502445002674066200113418589994601251409219768429963938585842171564305023714028899581523081567845066528169126403758201402731102006484952766981042558630437109847107552374141617069232816911033605641473625911348686292274772982653665694979105321028767974460839783253594407345310826591223021189271447080547610359859507185912806171394811342434645465599269115191441154331076279940077377938030302304986231506194766256165968257620079611948517758187566219262284117535244676784897582183569487453180932458159283227601412750505352728545519704708135119025561579475646457654245488967129281998352592968155651331293942311334086363795493620506104336375819514960571692313940762058409306632095487981978136634055135230862652871570493188364636208353137866998376855370158671476541906647652880159823905883650475692017409879750999008002376755506652788329367597782825386510043046696195117743199631980741564932948800917145498890423591682517186049919097751607513344757149319402234446375097696491879195063522605219293429546889897767312417157260101739408949509054327829803663399032853248625222503510939775111920754497454015830904740412903967834770413175991877924357210970614002671540382124273224299484710903489497940342872741290296294024807214613261897719737569244879305938308109926506518031775339815432254647730871650121788792953825442910080287801878441144027371055735192327925984324111800209295928384491414841289762538866957013238030670075621255207895232724201130858612840706069296381547712776660742535224436055343847110708983094100531434807378458054976169359087296178588390827810168387479414446868235758526996484511439537088714889283905855225514356432921326033136959828592762062974882109590238237265155069477336150878158767173044408640954450228864924256211126708639304191624866181145485175122584966980760300916919303792077432624966598168417395841080098202956966667327139086755005193473122225802885758910469403401605806710682389902209007877323597685173333121657203428260593277673823203695898765770443855972428665071811507718080300097731979531320035901782708050085300902262226201493734657739661722762701263172849814674832568570100066839892646943674896721017494046819195286740096935130752756683067709915553833864132536687780055753708232581205336251292566948726118341332848793850909922135581022160047762570398426124851599377968797172921309006056997108817111414473802706602977212977903956192963335043954700236596837717748681829788296379032876301125656111827096741327561779151228156091342661862647875256606580135970965033825305072709632317578131398806590757541414235568513017382294897553810660378638426188579167767784954838497835682941692417354292494385928923042320215631449363104489764637636450177459193482521182782248899729426279195587850467693810683761529259488409262901150777149323680682701227452947239955283011317137355600836997060097231643689164387107629992068653560506795254538030699177851418258197581445066939981561236178176337628934974816443732478974446023441529481253082925372191192717907193831730627652514352906258988080754754749308849236162834295791247620889752829496547674429011631841881556833776288775846120626788750646570807662294611992320148355550752123468223788000059886464942702597217714815809457773605063270640861619141951803021256615482932588777644642017015485711165694746957589903233260840489362925591280222942816184927615199164088930908491882363255846556264175216126789692024069822784682429581631976595624969756207696678670491635080818200760769149573319020676958088359861829027236467301627710759372293387327689616873220815770836787924338224693380744202536011805208467017175430671033877674844230582730495087675589529566447016655710045112876869138673805958760280784799394617872139505430698818470910228059991595781680776645301521688846601834858962915816059422264999685258168448715973991347698702707326753327656859924282928494916052616301988844724862277627753852617632058462506256089181796392479716045224280055117769330774093800020829186072020400858914109718512807463220794299333534683255515429756481174662876819626772550625930056268446471896650696320441863240745136048378253240785969580863980078158579778379211470884921552593129362745497254255651131498625157305805367446013783917423935799783060727244692094903297083790991406070240302379386591480934102656579262728092396653724218981088140211805771731391296779832495497444567204645034996220461621546407977629301552356029720479421106697768131261823269317859530117971100922244166489296072282959097165956874065778562893210412137065230818325071022944250521091396163744732016783309460046301570299915181752963210868311605747896444552521756430716702395540792365582413390909281435343512864562824666115217903094085640433466706410044060173818579579679104856101133960847028982003459075521992246960883324546798448493112692641630452687929641049750817636977826251946907717711136766361827361642382747567072638416794927308532272228279356617509483949324151850068793887211482574412636271358159755693299958810701913304253088485000775407427131082157673274566186669441236486959745587445433417126546678157648321935459990594031410388023468451888528265468697071601408568098448879003693348973786016731633916019594938309821575594002498932672792925614877010073028352655946584175654753679469141301214986891937905623572525716711662005642034002627499009509282031033180249349324584260556473039163519168606063617783004107781214650318820734790781719854690806210984916824037223964706187274635229123604875289864581250944234292763092445991479366485992979044200969668164727625794952068039810594806051258841915047535056913525854471689878373807921499569741189561394505409709887274872852407621422697358021327188180130520519764164516835011971240288814248463508001562255625838409433842453322988942571332007463836625963553738958193728753756247602437065707790185079931404944094740758485659282521312625798487841814103157503162093998630400634647883580992480372544114787463262321919694241717112545133001685858905219360437986218183775210082808814510920344401081809054590062556528730641073589403625928841555428554039618039016669617214200612365742627928217186436369807332582884488322680707350670825461938694701798869782558452317449848347166236651398775471500839967529710694679632249454257357971967128474800933962673128631704919550586131659834498577098277210916614092869189237580751229788147408439028951255503494875899386646304577590759509506520799210143477399870101489326229491479669814901263296773990863599036248613116138600277526928167028318534073696563559081953058014208387994798144996288157696180807924922936503707505661601694234549450667791751175359334927992076017342066374379234986436478240686609198292904244056601079960136231270290298129044785262112725451192625596092669115702206183259358931417814818905003334520356077771177097865722944267586892946485105845128699832507827739688064508195046885007226905221713863051729868712432375337253277605246339604267816803290304472222361423984829885474994912800681566537609768597366939545590271740883952148125075652663365380075522971133869972671307083148751002719722012815240472806676778938423380416647959960647282190320732965016171853092960091045149639686881728103662731557287557922433835141906874880185191437679697270024810601713133128083418156750495790306827586326119322101025713434697055223830187317172900763000089857704514210487270980452541279958695659695540833355489533483204886202337246849916319579784166948857520588644409348456246193713598860758076448339258222377436130275135906861968694619188326680109321239038861165441488321733865970889361846876193385747150882546910567090368722124255787084317045069712842172830279783496446728692863006288348612985385032758892998270213087608138604212001639233386302181697806055337894589278441624668797590157394450543118426100063454202861378208352527870772421026392638062239715390106754281538067186591532685188262101241023710148864876114522564364347415823829978596825712240611164982186605722948914872733382441729629402804574188036924801389805618044907772420183414967859497883434527652290194727201582362057783614653620647470359220691922575099909534059037984909805232439724645840000054782407770818175941723007090697522059416839315170357032818308663252187163646679606086492980635719430773451429316052388921065036706162390371365987590627110215748331995505634607683497351966981702765129752962835851486316256838500756874134569099188050947265501199673682679878988406667320596215196631087199428435633540542098456349339499410260831088550519369635095632613265748712640531438053848466251626414307282933114502132034098016868043414614534073719106243318553099544720005524090164726907990470049067272073363329838288799466229002646747334439157695456865896004198155533278591837865718135599184135583856553184862635442308104165895924065311775403266929596145478817485300038303587510177617161655272204008993234854587082499449330986785852595696110909729126060428934578025288485338192641742891669391401909293781137707510588846675007677683944420335535689049194774315878462686734916773805590912184944313684134380549439780142445961868686759927154971515220442198411748778326920602196015914544177158186588847510337880875225791013194782761613128747081808789916679764953557358421800644149553187466199036974553858664261115254479805036211965665573034172619966830485652904305535612780814976536414092888952437470562285316768041577184805738676478228586977069428174161147499910493308118748915501887678331688008083433596670265506517289731895182557687248204047790975584209692660569430014135649000981846567225752662235053858735463156450186830367324275766501344057969272098778384724731738860592492400312850577196058368778749517446901131445065654828264503892284316000634562055141429312420647742988548765142704071994118042610114262838072055542421883310700373203786016823152807396447198912734040869091183810830142440889702476472353975004296550898944587585959549677741474608414830629812262866396710693007547887927119066759698879206147201580740334144704725250966985539034656974460825228682995649415536544292233665040563301179548271414327363063509441178819828738347710942374861404143696643367237477619033390640117305688074563327243291434118322713238588621638559059719704910633090577106170178236492443765341072523384569514469405729191334382524065741858216977946352800385366834260119841804342081929465581747093465172130388913488689616036940846278456295468071509501322621260564981752979080816945067766782820214258738922325144802489057101695691360056612681543311982903882562682388120710230265267245895356441640468923265278983945183245144095266789001385863817666991506604563346741215747379352917891529048456535006381593062162571163625884915317873489468397194853661813271255758662323749253560738367090013166650697296935704602711460515002198138531189492102392843278799880050253341938145064775357629168785884652187802166171117407108363658877602472795667972854067314238575907759479139908704409192268684339308526648481750462898461165337399273077384345591449717959926814075910279409207667218708492523887566081495777697435540001755185839717070309007225297562824869174366931112031364252406953534096650934866531865436483130838747367744335010067946577951995778865498359120408046375045714157568891866129759702021034826326239792962135311292436369156090562121426817463657100733678611687863153112812606005504870614391563665021750550154956161114081640300672999078076706892576167440319717215720973682086158238305048664078200397100610745538760251797233926936038912821117960217027259875827332952398106269026283381247272428207480292560093898950406540651175041840322261476224286884932173054131888882499050828164838265490541797903488650942106140392870627056029893663939913888855257265735190464962362629047577480416137366294224936957036639950969431832167739681629256542344472174600031795968899699053275954835779350105388483338555577123867491498796894568349943086607623712854313661288079428059128376748803731538295268311057979840671597752582765608949337587871234419262064025895497759708007732854011037458871802237272632884395700393476008800286752917252084951889489157336543318563605807563416795436043908035812593649091469398262777077781689331523016323365945310304855413652246001028738562711164096162696621477022545862880659085550510393139409218759696243414571177318634745580871492432313287242885110136429141661772434619199011830119031806949269558960548231081387208383846547759985765410543089255253728297801278988406206739013488193798896080328291241172309550125214345062204553373882160888772294894390002497802300132757014256938386077512456424612181244103779870969678889215931521732168622391114439153269867606580459056665585980805745844642824325860366286297035346963991533604384607609957276530249002690108221878368619971812585423323416713077165841564824603542412995124098212498727320338358397735285498835254092020160664259249728179447838111480243326847737390259695776248747172656165397093228390899966137229323795074660461191225790472254379513899402517619017168718732093334934832619606012653486787622610620552544253686370849483588747268887245523820172520990510226416085596319400318915370682628017977635913863935932462386465894890878803602403988184779434446589474283226695819062316697140177673698426825859088181968781588241190138237238454215925758752018374240680054777022468100600035319624683735027676855326031071755924031896238745056050205319274981090405186296237324689119457402436113149454376985619310474791752807332062993076444815892596960118100655911981496757266564043759622495927955306222571490434348231536757742983099985171768468745716448758100071179511299538866571614048612443096156678475061544956264209419455792556564163769378360389071272831453518388994036764051735722374860520666208091265224466989427486695297064145337836587208904532718189370500910056931129733361911267516321591545170098716666355406413997093012257249278426496702713116643130265718765266523325553927229684046453667114189187987863254252525695090278092584636409264585687576707143317801762949986027686690015707144028558715616679872626504536842148728455197734293743333894240948522526787734445413965841950944495131113143752810724225398466434771355043792179519349519971788720459106496807081768755973668800929421408558535445729420675232923141024590728647869498218133467444423762917447417751024337196191526850511169234103458683649749507892283542120595774492788204318510928660186860539778902973752760075934059124150953605203279965616104534738366812830720229453548434618261831059335773270058033550608115664283290100436769941026002231411712190831985649318212896395732095368365998259919522740124602455867662761897093449295319829845942230332349915573379483720503326594241642633956303497202888034255782589219571025349223163728028681800818602231476618775518747486041632770872315753483498333378298156513505858252624518221553213035920938160505716286970137898452655744223266135616243083122120695819425141920155595761107125104843487562811424262342418952776492377799863915663371131630899157114975867424848983642896658953660377137113993947865502650815019784106366104294669371867383680719963006926479587839052230782414746513594630833852984084118422694861555319283865083444832703622188342739271422923710343324157406974903260666233507370258398642227846727295424242111895185654288758642966738637783610056087131538797573862780310487000074675020785317621776166376874425440962351893711043132656057005095090184813699756485063234392901956847027321560885666285191978811335567711625683984348215691064880952405486745742702649663214880147653058709099706047285030082648058307895317782977240736172046049066004130775866091515697259791577120124223856847374385596043099125129459883885360677129220052072780529169191637134449451407637188484896637306499925371104901050845858921628372080809070197187811972149805387536786873818900667702067227490669044714603101634543491347010533701399586586658666720854294514259243046778143847421248065013519497754440647681326344628730222248244071517848942933909050428769686369708569954540768172345059851076960065131046693612949706194454706130307634797953230852458588621815872141673239362786133648006494529235452853685983362348193956225805044263655263277030324131693662045731917298380097688173664812927286643960981793830268912885824948844200133317951206447239711335016925838415446648138243686485726054332509102071288094705523367805544798783822451886404578911069412787040373213498150812066032022897261128116899681476721354343843876065403144247127711977907546086922448551566190892803333723800095574440720433142418767661779098609340401391084581594624817072806662389521897672609157738287934610346204089353806673768702552018078557528850735998928718405008703974354384501435595638059226209510076859201247992048883147826034317695572949152238288640406007795284713767880604498659689875464277888063630683546932411188407871383947101495313197219637005776348177826710830420907039232814137371032993400921927535246075565653805656720551911574742487159056720380110434637933123055263811583317559885691726625475231213098355967518901297114829587238123575969458175354755331423476433628610424989307660081214738943948672064304919035438072386054810856558570101912657128523021292639263018615156098297558456657077510033566420187211273201869566631970949396950787678450549548216783597573358382861431372858703529478729154053286566063147787730744832395565202978983182836695997929382084456456937238920073968203776899964450079242443101848345605893489618278673988596718373611823818782167297973930469871840458256425575075277794952257923945393811949995480095573346850440930491738859797071002747205696272054738234807833091269093538693502061952368516675434300970247834364832433427805692302918672628303650373645225158692758020128217136077985423272805973286798751617960642649164919311329041010735511081519232879979766687837170490775940481090987139018287877495723482822745660366989288110534497023840508375986604538271780897909875702491435165622513425763063133205069453958840446247136129625356704128289864542909406425699793872013351785500927113721201244427013552535991439311503680103721589306065347158845631089061724196259309342996466416024343910110735138647279689023259319302967084844476754613100483080472546864612267560567934782814677552933297261979111370393342265594307065540961427263015107315252730690535769112598349536539191896936805808430755714516034449214738112568432144934088938366111020020741978988664849571405701406807912853747949592535146712943544866484558403343450004034826725455491278601278494983323781515271460338914511492909118660319909819756890833638897117470522218399247342573142206185971999351506119106421954937681081206012940645902090533610982123917230382110714083681293587727474532070664628359138977090673470625600478829957449354186559721533253602049396705390397434350027821577125790561883618915287866788730130019739667886819926446810915606779870649832308920826932642014624430784135749872586158943556585315731787287722097729125138482911648294860850883281039619007000884714249290549531819587207268000910991052438648352772297840448576994148728975053965613311341190822496118721102787735601003011842266862549946936096041467640155022733635117752175814546677797302451910042842385654960654473991557078817013433887606379364177160531089489924947787306249739577535530220683546375171176097516948636332404375050612389379006347662946788723810571529250828075476703005840181070462856117419229285650891910952641905583690046109171256098826333046859258407178946779619258423708355010489483524295871151931332794645357322588029071805839052961705937155220771860381824979428491878706043716745179513474095260067865487035894699294135680631004457831407133798984566161907879193749225886693628987235210187866543980100937748492742575460738828168469802263984851392199676887854509545961536423948263923541954844190953392631183062596241001386616052797288425898578323713807660640256692921893777200716858979209896975598202511319299316653549612739608090638130360099209955370997664298522897201173112985951779045600601494125486548824692901231959370852602843586887380131957590220685962451032334455380903143905480687572092075500588578116462994354844544960912568381257436109019636016935974448786483949569920518709451638165559477295410735252650254752134191662300356136145991914609014150783250215348755675958399650452019591518725758710017762810636111168439127723025263098556370173303956731839121282720907292347674539900674231252107595348647551293263802208773612774489366738273926656712509796519942164176866503790132828848730099354274901904019914856354015679708120673715638505578511563028444519994151498197166804466855404190968953952832482769471359447243307542287420994532248263901473337960457996138986652292235077439025312862514282143293376519630963023768678993536398200233684241710333112638904468359260418166163804043823631859027106682250741824926644075840222606737929343383045283318671960360554133695900964937620709330863748996598842365752291943304067993312658193640700892493644615558205763609089382833872810581413198934980613039290316253490355395154345778383553686579884774888988500000226861629712739637423265232670617774003152595212375380670993068908994355532274358545023599171847069775363596670327029748263434967653890679537713309250258546486679046737445357153702896717880339233615039493258401710117623944523709448386398950803460846601517489230094593987876725067775737359598576603976770655805008898885679707535113514908828177438613026228049041955653430615266946437112005915400058507730077258495541638519302619605731196234013947299316417482763872936482856994521534834257266040409253378648927726536883221473469546288254359720014243367606959911735218315638980589432043873088212866141010248678519363830596006970419492319932982955830690362349302650756584715278283042368346514632211405572463825876997553306929277133725618653306464744148277766627779182517839461177281856160809688401488433312973761239322566588521503060576708203223837709268771515854906325575023136308434763872704049319883192166578170621262432078249274079886142507744525234003086822633947530427823811743720202902316603863183077534325940348673017643323812370865489411832764901447316013211446797194201796141984214594061347616726526121428272433592461479176832826640484668744086346000976448068238073801540776063985657535556174892094488678984714125591195197839746905917717980045010617755860015438218919748378058702088772838829122506363315091325863354603139466945234625812626171063760488192431359209835901813197073685129858668360422558703624623149088611959381258994378203057261267646054598565355197540053137304137011981356132837692376018931576670877379372277435802072982878489611337226339957221419083604461375216741340833531567691033298499131353224407046611065641141558066787304149741839496224341920322767267334269077477736262186416333338419589941115189674624502815026912195571894118401894256387481745701451330766794221451713037365002022169561150038585348692846866591601611088679520216138563176165888553880966753737699153329109594828009225886410856765634424139673284295950478641058253651718638231819245557191214468758784857712259488465443376382414137237926517193281800568195134055783460740470764740418406042312492308268528993487808711455017673617689916345619479855806499960735418476293297928882914741514189375619348309770843066945330285759864636649122378566239275030837372086509290260540952167265611956980280320577115700158588359294009176452518823677948724138731637898776334525246431890509928692814945402850605471735490772949493489795757466341536423458513882400918672593120095246583823078925617677132153595273387442161390576362663509106372285847123884812455830123294846706007113917493547674852719412272580484836669898546565416253050090366635232045239948920252994240785088510537238092189042160316449561227795401252802075962014906958823792920097502818617900273571823888692695682683100398514907772637546163235458726440998715248502679280006786577027168611097194185354928264017664969068603407181210912573201120031739885652935732374169817785216970946052115532275632059877817565932262809335754798048564997377207672108737153243163799659327111306407488879561695281087543070688457936310834110163116943720273327081256568742965783147851356909488779833390648854639701062118271730555475243969642596961181042620089641945265637457737949174401159931417483385546557111713640685091876792832973374367399515299842621910032652313779372770743365647367865926017174985332418396141326343291364913155291459877379532445761839281640310188865870989231930398512289255142169563537119677459397323397581206350476828171189739819430066592938125807731204658917419540104875477826174600033496624807309756418239959390793055097303203494186239414623457630473906180932016018502066054577013934289715241667882486274829729039342963239316753048508003955897548717563442700550000472888960610756970388332868497021392031230646618752294711303041613590843472640266068279932683213029131835893244799870827666799291584144755082813881826560792105062865485870097412230002593931188526188223480422115646582362489512624945199825958347051986138168546316136710864212008553819453791523150501175975996281164638652882123297513828715438341501870503955777995467022097911347138089261172043654166422183278359383435340686923217233285164105862606915048357353324253068155420438291034370861063312093347695268490557631790992568132454829743468413456406421322576366270106330558059567886687524747187116292260761393037155830174221003768554858126648844758856060368365095550486055146170396631332973233494282292966050814083867695546681706516549026895849509809313667797714915883311510971015699493749578990275094418338566395702921275959183302408628029463808339351379200925627701518033575174765358195424922954507436874521382522336575426075313728185250824033935714361848876931353472634163645774085839793066879935480754108498607928991188392642560427465253592087775451699942676312753811190511070109097882799365062602983604258329261500310363116011190528631848316811308412986037634562520930502608549004646229071663188053175737567510453454160442169026442284373014663608560997083286838037599224313406623195133403489605276350084801213418511984986757999769312242523794911187350031843135690197291333450600911619180288769005923029092069298663544183797537762775428291222683265642998934202196201103807193031712009938091426241392518969639827859698468510294404288368982783076836885109603955622044289370807397146246704150073502591192417434960387238553477765019018601639263174834243187690725571681697956630213157701473216198915404153291705063204406754878920601428597367666710455010054514645051180731238474288997551108334344095172969671783962670547807754553137135702076412434062679012059772438741311884921575465189182037267142672061108478678815673099337024240129551126775771079549622683928502483890677179416423348409303901340790794291821830391958161717910257600963737397012655193437635462697809967352731441257967777927778529372970417363943197512423209343213259030682988742911002255675445410726682499095737245401313013233389942364883290348402727302171685803267679336743460983796750053537806411096021827444206431606052787870012534542367403076174924540841940046523373837085744092698172977768678885880358830405304339683675871510418985740972546345435944851518958773000684258154293077037480228555815942286147837866288544377956115690492358582227035036954944053146289208922730020139642723415344997741447190751044767696771578552677527370494738706843885299566320715541907883617456945399661386798469236004348039119318561571014991510272114559313092820124766071383729699288899454842877861211734763463186197377518498411242337037756197782397335276946051824469092729966542813795451149367662954816142183984043622471514756042439560371080447862038432515423631123496805929556751460106134568629282942068895900720137431834836707763538570902362738308116132058480405316931080246321322771445568039467459474847782901753546201471279325118407854502551868800583712809622613886174858223310893953385251375102304764469690138339966367402196605923346506842709050453144372762946856150747827898136584548712771858524892625861511382896279474694824656127047635941803335703488960024246035776470802646086311489900182475384639129238514053644307953910772355589232309915313063530529087991192614531471262238982886063941171061074397153743971820952753652853018312947216421309095340205959402770720718838588597674018663249939704003123529749868441155163398017022564240194978051672806123982813316375655487961346891048088583919105586105790878205992591789541427524688366862291285731145454571117573156703885726871503571940932042998973567317372524457035791165246571073698824696078457151986631733137473225261546324245412208079350469795398278109424430213624887781513467469408626984221125086729119750924719755380230288860085922714916197302099449030272265621093640487091097480886694663775783260000844238204753776215530846237729360195787094841125148708002939129926484964532133230980782407733997514011637991906414759310588409600725673288824653889048617574320753288209070818961336719845787467356749402672060680124405780303790312573552706701427409718722934006008902286496605632027188642607043361760752869164966511351574606144846120155159937359182043081560570916015500080261128906490836619374071860582102066172644870032065473363235403839699049730789430211445770827483553815469064214383085836076936636633295157033055245740300962280350793889376957673827549027886351199250376834021238163645410279001102811157155443200121628777964808759608390762703995812207288477968039311636677412066742524366167988083686269341897300861669266651967350359466942470346034486467630696143908554007925033606357269778252102656894479547302212345715238111329263843185582840807227148671300589224798395749092896038107042494798050370193510103542604510603691151844857716574525253625489155678625999548801740364785035857718578475896163191240736654464747984981872805252148628907513832108246651527114177170044744852065261521496728203863058094139944387841322975446289742993242920964943721288000876088119827780170835552720814434940595110368843768811307585057091844732441810421160727332288131578453013990516955650015167662981432884324945720767046984037734952838520054324381517671368799575178371944579323670065118772836671215026085827598009642371341198325124422315930200020926593409812344174152910178141583992496289642714079978712217920673828143023786027963013027707769560705489358487354019893882836544727574238848990350072483264931468213030851666085676490344367560618585448950771018668735883145533427329923240877246848284555269442258214720052155457671160763955761799805898036993827314069725337797837782721721086748520887307482650753673531219076785435299553818277854344602981648001225611973600178484595087813195052090094913868723944292591979097386093317084993768450066198886398793811427986199052939478698915225103386062633878300071762123414932802429033019069787084927130870820348974445327588478992061358819147238436079574584957138345777044805091602457958017813291909836671089302539334311597346790234412180067237583475590945025802425617600744388180402525473993911747405886398359999343162449413401030617089553899755252978413776932166385770360154960972350385706759206841901388832189646426062836597071791265864858123456068296140745261374481712192340293698901848050617021623305317953661649241478106578441438677718336574996526369458438185271970185441567644060777922328070016081456581587412070589730020511589377499467028295987589070654869561324954011715630801689689281016038412665461937300994342769460437635116396305196981494486245258377421799249252123027956687908144272654759863852401738495860104618038720445774487876120362180284356679702216425816210214609286625406891637143064606832214845925944768682854344782565575520451175932171419962184273634262823636889215234624254094066563744774702939720447163305234843292806779096051282626220218374133542254475842509731241869742466382111792099420275934202658787812921348795575306374725710096458886369055682799744128855414327453168363810902556140602895182385749152087435840607648561710272502503952505541039252460000362143163739019853752871399606968726695513811409027252335953408771417588572544643760589622879430941586734137904257940074322194540782242647995077885943787555415616517444730026555837085456250180500544454647808535829783390278027660433890331084100248098187778065747923797841698290410847546479016674056556191619482163098903962687051543784890129896158973781606619358100070936097906058322259945914247744415642077082492721616410644539982810887810155146779610180663276251822411115938483306447691217330105761251468386133174315750767469305175673811387246656823537825070833239363358927428993047890492343009844881672870121817115645345385002225170367602379557242008901436899241125651889389885093149296083136571840497582964084279478277866432845179846065976803570015750376422660432062357274413037123412248397825675334608501104619302132859988529010475254388427772614103398025210670501554641552286383853542698140807463678539411747393726557500739677801779304005178860427598729562559998400438360777157570831276435290757316001148577695169211650354353550213665888609503882084705275645437289608696718769841155150052450388784611529129480667355754388661948137009571455711031452873001282455816552085038470081649870307581588675985915281965505726795890642420195306744864690366792768425924952085882163834797629112664850013711332332364777638416442528057900508694260205995222248807681335586299611534281431849993286867365360841577423787365019609945666706063139637704730172620045326017182751124787857901647851546592138575383502107979637624173994931655916562014852213194783984536563535238505023861205423170198542262700867792582125140751850925702290349227912463691394867373209086108013007916809340072150987513757533980381198930364960229727812708992908846418686245041214341355451966152424465050598045118368797220329473411820627216792853249100545812400396004785757631860075567326132861460757130436795807609664149830117294328516569839336517109967611745182596123655991913782924667321544892817357325197359133286645795179273890946470565073575515514042775812315661702348680814354780695505746672448552002981747398531288000289154547437200798971033863941063760617518868850000778644101098869902855207304965840428801703172144228393483809989641628238496437003750550046133902775563155199576007702168435165228895421905435582524116550913751666358670896879939336538986334915326592701648717918020448020416104731640816213090896474034518897532631064892387758968991053596461782704164651003067207780803395806767201701464538577517799521344225991937991947413635008182340453485470935155774986299131985686309598445925414456346275554928079930545781794887352883932439748981098245344611367373355718698822874661243545550256920698684984202202861512537333030714776830894825246632541702796121036568202212345926065704538929690477107201571284051786258254897944759674774941249757160697248074082852698546398678225575599450637458614336463423868949975332348481118910479760462392346944083218402117885121383646084783926064884715899394303285278629181725260715378543726992373735505533171871912090533748628643314701598901997371234477167022229690194651187401051551633316730060284234307904150506155301115830996768141545265916340128287402547182163376137984937700493159812209586123837655346127207558186138903728985611089457447812529287505293139439644746212570316897575278298383595269656509702305097233576700804039001296838168950370752993802752066008076471458484679717695916162698228343719422324871772091837410401846702975283956728474177193128030031103701116402714630775289421652427890028050755610377233144705752751286486269910930267277250975289159344659829918453953178265995524872033410168207110351865610582707185346669028270179141704579915564468377099133927499828430795639717869473714435055642882550028417066125252964391279346005963138917700260583972373242218974656448431933707036205415622629906549810952329938747692189527749418824386414233628965098110243213602875951718558381015247508751282805954354186638291108440948978949576260498617838137449573626356545663958348613176312028535193953645768846750726988041294454324133774397269442158424461929856471156450641019241260698775539876714370802677806723742774222633004632324069029940572641718182937907445487598985330417726954470028652291191971763979135153042265807281736539351391084480315080922344730590575099398068154891794224666305244417261794451035703318717633416083098211931079904611526092212754350828003270238668062593108590471262436920902301467765312772195183368845576603779278688025200577237821065246608740728298993456727338501211942500124083532052075402451817285530469232936943319310179724910883592407353519092638361640407438944754400660882308309451866269297613304689592509295563041127431899151469239134004932988386345760971370893484176126894927713957280867537034058674463898820197152778857238158235448453522610455411836988091343405906223094672411157250559762776993449772875013375234410436545319382602548769181387304518660960040898473698238982239366484342718761215226345105002618922682922883154795776353532614308490263382512598750209023691388945825737251591733952762484092752279377087607532255370294315837110974902610587046777546179570626676629663582623066267172153872854384887057798955581099310688832637911472139372506780652444140695099426796653854955353843319774862284945535673108303443605559346186016790387017800877218350866718342744508897939090198118541501069454014089130756621583212167149753474140248325567943235596716425211534192161945225922940288748031704602692320549749470869473677650392458150255974826132485733576996428967366832200308664639727160387523928569983527376132358617067828387939721535751969361280761871683738448367405107632352247043999855172920839558057137709828744173887855309644267509212895565036323862226933897110510863856733730650227790086491246693949972213666660232485547110767576529135668645743144677877673486116155627229696031865293602066009034944702853384612028713198686183175801891103313055104838247406009706679561413823709741853602720528269811530583313157044479722794868593213300273481799258779936096797614235702626856058600443109036336823325275278612279576469118040991190321729469451541777805111541803465015311887446171356024241907240295013613938783368566258057069871859280372345105070554806443776813007536839724542121997697370682900521695925014161329300933430173626229713121180893516113904827235725669611584256127764050319697887152645448288224775412655723428093896151413352471372699193536385460391533776974570297464334364247568581807269994967734003099935208194990642198221775835116543746420680291204776624158447428149507980323838997051680413162101926836786032814854493796113984586042491020039886111093035852624628162880836896769126339438662655782747033266766650470780615588631068623050954988049236535425363373819159711249611113095188147779491377829728173762910358038897422585620079058004892113871517146982872349328915652190348195294043330950155658473977746642477111362056587233818852768483114199730511698049073470442208234160164019220789905448694427813671472960130556071853070426179566468160867979617050111861653540240814424203494567247560368369274085028975838864801859537602623883655232779619181514516062634371261779574579156774824312899281403105526148382874837084721609761133306903859796009544207586097389243038355985882368351802419851873917072402145334542139658715617375926221547168802182886650272296836663463940952811137638227923724308628847982496580067758689250106535097642439877695426878899789324628233468708778487468301615259312580109784477268311351445032677038488308350673533658860972013478012314445829726646777633982538130278307874886040653014813229057661977815820640995072557605212763820958180759680332159249394998520950059579114216117963819893067363099355661334894096421452742557286404045091393193073975169367621894236099956901670853305178025579933528647484833485085569442093172075970902456209492413543884389510456566073822440976324774127010337854627779499833271886946909268666596940429711128010594517478029126047777107393842669535725435531757655158257973804101089233253481440544608683897348881368732269806962808460281470867238989314275895401961026198789417145104140938131059866660159184606274053200925370640335869040305183414847165201788793181195753268030505604866737980246990694300862424147732891898318196926994682820883805590671935940792143827150387625496132447176633331497981531095531457250280923739221548156241895709011228771103248172673659237691523123133354825970757230389562656557198030872692016727805464799502418202890409897608430051666840594344725939847500226087584908057768023537757674483031521614358761685544152499251420295091498892906098639794667404326293120675565844042561133643625660432784210395102517393706298114219700109234617566239722154197618625260802895678931952013460751002986664318502721156649885199172657054523956441979741340718533022701142414702271466963383963844420568254968192532712463059824862294985549180367913051002348848826162265152452006661749890028362161544749494457868387051160113962863946556365801805072016466603515089249841459693678407357906537372933150037407263529098347538191100280824269301925019229607368962204398603870412916464572230574320545749136805546098466318417395634634443693498710887893084424172602363813109235640871348880839869057556678862944409500915274511668564412101513307470069520399640156061132033371206889111051887400045012268124850910368885445619078651676741929900520917798446005202302023290102702191714581334025787119904477002880793824246100573589372041094672446842576635361493721602313152168745591220091431391589724079102964147971371105279084044842618234134700577945405421749269545025846789142357709985301064998109670767111708741210708589826440194898298910056436215090328763075654516905826872965455994440077331645484004066010717805657351922970296967975252232411020069876206345538501059928982565723267506426731083055372711011639970953717560763986506120414186876051918841097427773513563439465393486142267156313085503691767145163755501164467221545637082354808828338186760896767337290711203121301565694179495340513140433755921198192815367919105135975612337302696721423567325738831474129947849733326436260389667454476389580929529133971914030104002849683517472960130372435236647126093585807435848040357379991198380681476594877809891511799206385965602598728759655145635477973513201750776636179654460415929929653484371774844073402712396630386669435891076368277768680895239937746450034195053445296709281304844736666384351486716882772276025983559182105028560303702056777431796357810784706522755179515536697414203442029482820088521446209892547358966799184825993500240549744923135395268275606256257807805600965513952777692808880663029778179079150429367565444385291805251389476758699450155747883498195624985319654853018679633470155040139918292707065216062521158532743931267134801993282360459552512427321049338706322885763961375021586973896262349687468221441036650553539766545689619762647994626850744033882930229394976337948378848406260134234658575399075716802736767328041362843899641489292765465440188887773095570651250826680542929812209723064383020369713738527587280618120103728562288528909698138797334171502625243875077595897569794247220965418827407608804612793588015884749536226998454255385975102497791556562386567542886694818786611441527433766281027619288171582587470909279095669489420497530268981290578002698164445563721750937319982117577596654252838733677622680951293007956346319209002298037241808958456565011793844370489317089949364612875957026055700691576660289753440579440847685924699827220592396566441742306973506330401776127455223868313890867550227379832599652332422652151382879994941416162306467436206916897217385784460104828345348211173184228259728156268823602785725295650180310081672833696573034122180961315405040763668591054387352657393068600255447997517458803836993276756059781559158253621771127462780225407676852896137906185774985863965142737463535455650384648809973526408290035928575383451586143870985406864305825330874105369322551471327185575187958372800426180609175002940332190848344774686270762172017891489484451977938064206152097852091089442722600605362188011926418651289542874898662472385355541759905501498049623597061016943137732266981036366303218431810930233485388579241007461655459368618864961198659942918403916525811002943977932118817195813327548548468239255694849306141460281684305109706429992276528946399741784240709943134482709693720212488623346549085588016204850289630994314922881029149549225137510468124402620572489108092520877044043667328840604992117462982660060080363285891060087524831763644862766373748578172812019580577382249638573860158255014660544055799750971253053179796928698355869154811549080113458606028625337832398810881288664237860526932533675853353625414794634471975646729746913266804642971266928163724383291957437246593132305627811351128646478390551506758083485322740634052352870715633126350966426461986875421041195186127910014091313452766672694626176335884265409774031029656715440257801252618332023124311507779214248648001455172013516513047565849362843631318425869211043480251700590147854245388589638452028138704432812896384102883230927547494854001034427898480611435396767036354158273327860804432383030590795367064613274204698992250747864931801504335723583260555740693724646256246495385259690344112608810542952605778751499566711662705899254056735322993869388141369923518925117798870924424829000392930765679114301120516462799924887442846073040574850662570265793365893047139314580301258371103434295770530826841788459825133654116195523730993249380713685453650324138220985673710322121083280912948236027247783626125864762503384688496273930321176565021777454819815944854362534144199081953881226994994956146991216978511366591386598703565997000169362402183893594054743942896777796137781235057855131119548321119105864733159260180326327877475093092241931027639642683680780661391434369014220948650498615474178105295380925023302842358672686398975780664584972454425847977648182738052022447941112593506620846088080351190899697506034729205448407166168232768077307317944225916194199309652465346382004855957439942365165875934633845852647878107949163685743254010028190028983578541176154418517487192371381097026104366470217722251266384065679335548075604527256133185795811352226262818847922995259687988347348146053962498905072862423577205177058932478131087397075592705414857572799348160773103890299328728165241886099643253769811835480922867129816653851888665770460941056419347560062541981105271990493049052990106766771129719661253111272515804441948692562422724659350236211229504164064302686180938216260033284437786304535176846885542328802946791713117693952592400952886563545380799734899604039793917377980757116437588697535046164036871281111140573556598751558528002782620160897326856038939109444281212239000016961547572030921171922556765144411613375986614060648148831613999370728328302653352158357185887086244889261821659673775131720152480708426792569635271946302164570990700892051580423461951908514681710553668384143992769615360499899833449867816297117089138821933869657506295951278867390128976955227992115613542440523132208788821965168541005988826632673491568628183608728722187068364504146376914845532936916777174322673080678271150564782156774014870128568956528778137344688115293888087133605628589728239096946251642598566526183280468810086074929216783075310134083764998237454801324744522446073821127143115534749592185249288856352197533362243085245205886119852164448436787960913361718318949124907162682879875943686410890185963718793702244911460157488529578715178509155242760447943801294972400497820260986570292732888460369166502981709344465132525944439598185923147450944957760372981315865404982588105622478585192198674722671803014848962801611016934294359431788477872085997066715140965434830953618785307794893481511607538167238607362109586252650657673215889249961043546734330241977400273584964604521652115023436615463897061663679651025097094803032598772141827064535291566995593532056440673044922194123557681906634742468609332678945432311025363352200634921908910105285002244752974504084605132883701252340679471832569969776571409523050422882739066174732328540498158943811435623296287965961070988139968075631433143709731609622607723418695737967535272267002973103401553006324365667970255968415691853009179750873801363064430854746919374764148559890464804296569642027253177327665281648283107083071484639916062252607202182912851002025847968540119803722632511879561083802145283989061814407740266024148702445426915906990805167080690675641992835218066345983148633149074684661638994121845877464809415024157308566331568356085123969518681073586767021678341213706706568474664150064238838469779608411972770832151209269350940265776399613280171670782667708024948979769145908904775618418200399694660743966598973692647494986953167394848787277311373963905723346256609668136883570512360729868870182557088031159616479850316726386345586359039020628120362910340390579662846846701556506621069067563578614592863413140286190696857371251705486493769527139661624833640900790334264137003927298358006249948736281403964864345838320752334329965922179261501318135606485931233271220368987605611124259330133784320310721019314256995288352634133867594132811483072998513351064533068919864587716949782239000331734216221856567225698637598002002914250452105217998500639062514380194063252353581198554050116532761652936207803368252802268528915780136778066544792262759723274791212880641434891877502477549309721182187577984640331000962066798482633641316929107309510298952772942144498803242667905523402803207739359335850898912238549427932122043517517773430561980961471423783315310974524295759049000803829456494903800322523507589470071665652593592879539072102489271861368989551801440023682975143931259258254775875384137697722175908250689429870265653976945217209451986330801451432235647044486626599795687944197755357605231191378283794660105752448328073674434239331557068572966662343088753635142269178106674352788090796452527994441805541405172708479186385698062806822492997532257646230649080945560528237240715021721543859474544715011133195352159312506898014308126644251831174656117158974659777940325327311400936905994817027136351717339668540021533154486978624173264266711936900955614902116904697348298019264460764579731497125831911386897902647748604943186220586685548389878767010715354370787432126139276636564092820965564562243203621117685526322186072353572082493775307252176182005820989857794749555643096086704118003245475820955944172171908858318967982050154919890684428232916390024984092220224482244811099306008568694190321727489355108447857854892352569415812722078907586311054512455199347067816980521374112859699552465817617053424470670720326302436931918410118435399481905056741238778496478600209655850142563708939657901005239868358318561465377791058988459449815806079877021280034628724592806312285554781945404941736214871280041904320574125080382680445902697158057062479524425984997720980113380858251898249590823178089216709124747445120995583691477157524163278730918199031152174677104099019184204258873514391374828755544341222295465084735534618453979212273633481974162483125128000781452729259343614675745689467279075217902555151431452353249102585741176449146990654869727661663055865348913300473552604308436102972662309269054574638517829571498115460405339100247898252633687150663840994910213768020556405697303942421067600124278010358462955643192794270102853909481276446226368167062305991833891974721799477602166729369752971224540198692282469419422041442130062535471520399202307577597896652446195838940343807939717312442167126409105506634952006083818427995428666566390379029536134431432085210286838724393428647987495184452011972560110649852774295661616924066199432373966329687794367459553266637337869576448792041017879596874125543459921055245323350908038801698883861175924629758054140477743712284061536395307742856137536866897526210879326124514421819925287354083581130315760778431646311393070828495898281896352573342028618198348818436756321222294260211287816803994629915341487427522930249939285916053531810385449462866803662414594134745917280325355072926375159798669104561974806135731075965231641613952135101024609528167457417966364199924219580355058065036398889071134160215285349607436320702051012066419700414367504047465082819811378197042718545937051824902964945705234644388906181350506452778809277745557044666488377253324582886764061676337872697525531002159763666460109025198123495815885422922354794922040065268480813716676221139789127633309971993482941371881578968089541067693294332950549630295158560818099426911100187218848454863188294409744555815914197160630363438234456196251058826144143745329823286612269204641849215896044860184108213430077526174557673521628975477619107821611971077399201039610951596816194616002629866765101171282758486414528594479748481188831734628235095135840674521847730243099346823191433985541618844875806004120857470828518802276919398258282317525259790604025609874160991573872563330472157602856924855866288701341078539905766569473155364718263289844465205530147667084727265939327560901883340849357238379001469790904018983269152323460739158275983331662748132471112446952558397584029816928791067844868161321402047535793027051367155326219847625758879486508452983042763220823287944107055202498750962075132387407002620936365739113346388862642615981387123856393006765554620011436546491533230124220087018719770004720147563322955982222258868306477970991549712075744263042375387484888166645831785226697950286929401176673526347618403070348324224314613383669376212432959011053952625875433356850038671864591390642606202073077735099040693890961985462632751892224103243555327763097434866792181145797849554496889930405377516567222935245687688568774919012161615696682898382629134753780027780771917366999647940352258735906608223334918385108016569964952288055183450458418888973262579011923697544511329641937947345405608906421843778362861032600663621174151568704696205865861038840056023950181650521745294199149818828615805659037144464079476662080080812075750105698797847081006670100526197083573873250821550798772210081338188211458000761252760140602510669837481198963637369593498793615316112208591395630243361895579564468858953566247366329656872234307668849968585430020750593953227323048142528257110643163078225482858909982429638177009135581733817784312563837307525092892439773541482769453013568327881698172641323173370503138671418615637417766563485532641765693929979256492263333611824607967156629405040413087760866673737262477451579957833101377625183256193098332474824720240011306501923802625678450015916931896084146440320394976678542073375317684367274461520513530654979425818969660251455228506755267464766595781277820776918357528002936510738549535313731274235637434453553206104916918194209829592911614162281823758201128554035789474166510153839584176291657290175803784361316120179150399647477821891339857627676818154251479821188550111502436172212476762262822138927307118169687984920345861384385332239454177184384616361974261913678764728920663842654734353102386475563072729882958954281359292382632035828960447392194584695759386430452276320148421839856728474845015335388907278042206609584625506829749066891385534175439246754346389479626858133560490827415385823156505249565777327272094600922064550926197639604754077188116890232711936181860772625710486808855573996660955664765406958246126093670805148087967593552629358689316683986497389254464509805156601663311308188144243540727792228607500860369871424513872198535441074314777384631899499741326325546378869144871378673781264182505379169283204450981843830352409016480579189927492631058944399572196580188743330911561171593170422273272854223914746315662194175848112096997507484854393602174334366666227085673347584691715128060551171401361622811052096202253349178986433406512920464420430543551577718258745519698947273832433011527058575422675891051265119892321753041651975025413343219250340593091702459879203874781480299524890294286131544545889457480076691105218830662757900596128033888797902911639343175514946784722776966964416835052243346955152959773113136795714133979600511542042889354150017495668766161769849450741124009317139558682603207472121250107226259643676366481447738314890664611191152176781364354250739919453043628317661139773661331087494999593003853915780216176017210923582911349718367199157457923585529126617596476436889237544806957186795190568758894894206828268793383156860931744477295646567984217201604643552617743524347328851767407102108529417515921487015258604536166179785291666100599027610271792908926260453900242770429735137650800022086082636681597980901019921788590396927250628087358307967576212068200058861351797263865130222036723609185637483208568956559965156435930532418816237600701358535837675944394448828434404730323523571357184331021120096343910299511604923977288857714648883757930104595550918705361495891010082050388387695186188178538574932095560865368948492244276535245075489675964326075231753913565356472772168699313677691979208528582667633356078298672471896632914871830052192526539939584402331732568970224165507851537293558805086191539379173686786662106780981532919710634589197323002979945945749375916781664598854538294108531116324382783828339062997330095402603486188371678753088853803229445268161092934147123587138645235536668252531619700395703966789929598002928728039662215176873431881129663447071728927631408500135235207702361323281811470915736535072222953112337271976302338234597233655519536163338552250867878375954629821568477173753959755534544534415335289080539072648463758549462124732303666094839701380627431681099725632931104689133344953318754956870691433897202092756897228866018141603429353371818461117625766042675482351615816259309560565284976168048656361460206427786117693592245874664723680300972638537853938773560366299893960032181582757518785352765832861613504127022515020671610272999539429423453205379538325442112665191906158367925353519021473736905997121094654160739226515348469356366450008061937796748854757207626220347715500219938340713030188489686833081661539731489868959160963262954713215988430876263451415973425127325368347673279319864820792978976435898571452353702378126202532178628372957262786011309750877339380755083314550494630943115716399260890673809245366787664722785893934093034645811379296170050943455868544983235421720834263792040278140183757656136278252278524397988443959679765270759264441788838922820403429492330530555319641684259958288941940234398636016237599937589602146070267592750180880899720048411525867084822484031500351482582372492126594291207146700545267022573476668622471978254299382549094927012850411632057577331898283252916499293654753740980278859694850676915038587111322407808003488700796308187128816012771963055662257014921903854605359144000525675514870223122761495408511092524547472804440371912254604249070111113248461469516238208813676991177502358168427292917532854133831116854558487703455780713363537535496031968983919364606643044463574423081589191974034445741602489304774616114903578652564913980360764184358281020192958535322741309357566063646754137379797896379970304059265026034668982878777517858383951324640221021590818034285291622997063713391467371087681747544220670031209616173679621105131901050633149130074787152207790191652335804082117463418463653669757531122730308280957806328305068371829371401867330772618140227261223135091521942720787504229049626279370026176765958667431931432544193779944078038201204144527246179743827739119875457391805743414817949411564189501748129914977783264063969857839506251882909445418079753274157471781493060726710217619623166204164159014776577450449977615561900775344038570503078548864298803063791741350341388531769295100431330377076590520161322474055866762496949635714893579040723725622877931888751053494437258840851094883473856680511347811987501494519653966055248233684387162449319651482334053385126171475480994909697119199624786141618022212514597088041828190443700956782271639883678641438882468925646987329423727204951399523956519270936166719483185285270345616377298348154768655142813016329553058669287427616795307588115846448870630056484966332111329825172396896563752260673756899498669890178751265992791417409228377399295694219058694373132275005300659753636354259323039645391317545242709769453605448511437592117133596756895546828916715638201417853927218122499778479571684127136551830227547584056636362423440533876312365865808438979763948701780561872294991721585112504970210059530584791403036342969699208223046753875549082591079336263416903029226518939388904356641865949186493057781282527987768764437846310137064579485502943500828688161313849279897680144959698930399437315611590002805311636046126886660667994783276969138880060653173414030543691490897679446378136410318143980844579162731744820457197647419215188810886098230024447154366780515458157942501158199086189692006310342214546829902173539175235979954901426377092480978129836553198827650286331169682033665544992781683412788992759247912600510472438179052759115832691338140201587699666220062238589142681645614286087876922517953457037750957097920980746841246209136886308112163625289194722698522382628402651642493440521463741240464308815526582244871503199067509108881635316395908391113824682775395709373156731546238355196662954634287943989622549014851812030259365778830597149821094711400343446424863908506325006097546621007083643193521341670529604049040992221024876243031485157806212162766134746661133500295380006251261208310592663842053864301847382655156301041302837622624548226686812919843742519224806894476499674703903340591078978669051057210480607044456400865238211990813707496042662378710359419659815263800534129982460292705029684086303349274316095634883642975230710969953770532916522786057651705790160187843869055208243571231917657987281001276060969490136117177485038856279416304689593288973507501359250271653797408920348836183715241677580982708122666228149720553047130405101190198641695649073778187877901905274342684218801393020798025307505717463286476189714375362514575122096381887002203634487862321860673684140914649095348049974893175277503440369674486690718006841100381952820444844435861881180098261013872626520968559709952048267475565429980611561150982889519651276140678749578768845280959309189621624521680638083540995201574245525401925544579343830876253622100951650329050955982464003456133802952648488670308193848412872247024520850862987244195635608638850317216576208798516255201413255330194134747218187244707817421516737181086294905718504525520812243463791801542965328941705448046242439037237293028448468527808220860627600907132717472259082473955561910782473274416919772385594255437401156901004813344430507590603735997984865413266163622748455053617129906821578548059024422495630594674416285666011528567109397060130130516071801350119014952392178104808590716297681768999772308012939070653944891608751100452216670849411138792917361569756519106228526204160088570771639320395975498416531341664528985474581038795928171484890366282264341313305473599603140753477930645902553421899961684322372588750709132817585255104271280954128105784271283038674137342504938151403794453833516523307706165738943437326805715051676772091211475193662416495743442673019442368234009071988960117136049369249389711293472930222406170490662932136029419236789607999899115315032786828433687283395260539399841158133904114088382497237703365978610113318369205336663145908118070880145961939699129844075255715989565362799792179321492886541834522375250986048745142104949943288979048783162023005753426941933235260654547436626119153633687556354079934671015404633143251247322654798174795192810746405146962643450204219038998383424374295848280493315293137921509699464562420135846584244443461105777675578014985665352579089574490196169516264932106164582097219753373418039863201333274464150331888107239147639795940470590793618176460425347418928285572241706538286339145670837471377220316101675268836011961812286672388046582941981196357454713067373253150654922702583849259771000567867597926189045117105276200979809010075927360323088345146060134058555350380312517563382545866659470657197666026676331558600799240170267799064449447976926224488590803557924931291813321272032921887596430605950166950474506576517676958997158357884499421396836582592260255266979867088893144176924916532822291084665630558751393560705493041630208324745448962094528184886586124946590669849096356922147961652318069585412337256983933929768102247226224800316088302554221441627149585350372513682854363225011568792614983625207789899016679022891285069842171982831716037302371716624610271453372238310701692921751908709090013405533155234976267453259582774966215693296670029137294014580267247707425947902547275057984523415477269910209457585330842863744513531742477161568376356745789454278174776833410656915659056998057053815196945755144286520903388974974320044101879884690558972112508550332380884719306176174972218863083947423132146712495027658430983388166339708500184822304820474855229422742601937064310551441231260067119242216367695954280691912248006245721751513514434814757057561863535447777984075315640771999833080679605145564284755391720293462433961092179354567771498798989234754556656395733177639817057123486282110444416823847721647783305599539201949663706903242280169896181878881950227497228419894886046300278804161427904136356170465841133059246423368425240135639997261418039277651184016642927772963063186131865705400758445570653725808600979935422196983903926657186548209069528000519222127000337423269103585855557902553660266141147949424822196915461851549128121966132361546857502900952018647880801993493076604673759542713950963241851744487872852085534257009033468848013952686259142556083032335785430619813662808755951186289377977398314173252016543483734272535345190328131277973613117214192373445136165523132782012847005268595699821262842907731036474489311678960934849704963938541304171256883448854496014184649263816591111136729922243543079284078038954415081989521128309493538177516852997330130291696248033177766187179461644466087896581551824321437533718025872965031329359465934173325867877920849373064821879513667106394497834938049553568584872347221556899938933765462976632436135253122379269205905615324941956387038116982188732328304499850769041193956753036156730973020725679857634681062892314869959152956475672029926380651021826178879973817146465931502059493150843391934908936918498639511253425225560812422408742917428302981951921920747464168870826276020722445964470834293153240181667384878248241007787884635759856803752296997622050615495141426982101932237124246173657034133597708338806019254666752145955444078872011747237855509198928332508834155941733954634842803300019518695598530368884691309959212247660029324786812966687759395357431778276580538851654852963793152103070591592974592066884279610807520340222445288370919175066668394286127831186706202569162173687070190208472895780166632177490460127275721407699656088758871486267027686266482498684972914858279519633691005147139367960780833158406963780365829041751957255691037586126711017652319790616601924955409785918767114538644493506170148946118742712711333513539003125158315522192671612091047634308925735803568039328991084844483860382478796848735577633488214243708330367806982886357368664604200289133342559755718126928231889076263897749160611838816911904188419292479700823878222360615039042020409388344448673097099219962290129062671398265640269984241044563953599071489816068177331103996947552650855906667328504894003201425933139990100962783592636811836717193534861514117658540421159823980924028403945831437890416716762773854933912480510691123705359890706675598604768830325975845606581599977123707788708612916734650723618336156211084945562548582215141361159881322750254721429531889327071877873619706959886810360089633594258214385632233847955976982204632324256992151710550141018925913259220647145230259760521835750675707041555301220656804703781045449841014308963036761625700545346304709418979051789905620320254662189670685378517242530165357926228457685395328306864241370799065799627587814739692238922607239844866895326235440161530582094166045399264716994028298102756700433052289521085755266225373664343496162437729874559546737848319672710113427398877883163296193664023989967725438462820170711759139344408476346495739565875632502404593588037032280312670171741681079832539293714060101034020548101172447583545240901093918876930690087016289580716826604541288747637457675960022662167364395056429497657767878509852636540851048527008938424369395105284551170671807817553761574220738685566016543634895021466939289794117350119985678959086749920076386467533585628287551842534708866621178807569565849564328420012744544666379049100133978736717189357590780547403206413730944502892076875308033394430795297327609138492261844741456282946143180201294079354168756051882095410593737490550603995337589577514351265367045546738073425975347861662742622512569793953953564887744469510234817066245113421495390538954040403692568342551345051316561516597813847748972689446784216633497268267897262384254821081648621351233219343341481376839705508963647727954792899940141527718243958274210386908366637526280921397667310048160706645173475328093117724072155704096259206776547290620982331850256125538029857155488350390180342873460379973507985244703947894035052274796848812910648431830590556696678262810111868325829517139219799584678227898771119465236184380881310829213590557924832760135287507011145199244807889126645382418019818169168877473309739217015391726521596331014197528861138448660920073266283461078409209976694679767399755530479822874046610548786016108067376828332345791469202634727116567960927885492845744242560765554629868767475275017595686614302038396293652588635757873151067409593799444856651485384874564632790970294108580673300129896379880547639579577272852833383719780882124966390282237692124837910127614668696040056210682077272403884680267966288494267883230942596023725298070664368721234261381790212470483591482774997122302165095169773244698800511912221523450630908686828406766469226293958418277657013529073316360247628075723199742312865035634840785197122983697625031065198449240979315846334498277709602163704631000980656526399990123981398880755025498056625294280966946835705136127836316634146551735857672034747091095618763407428904801616177458322918772054446735909520295603900016491529749073212756711586362175064991981608409931110187005364029504377502097012263387514877772917695871073693045989092433249622075227541076461818841897719339789156943880222827496335513694756814365585484779831593038660892629156406878624552684949840623998107886263130357843415577887111791866468476019581121884103792682956425700171320346468648080495494860823543328335829835623399978748210529713885999629810069762287523195582910402568420005040976038952243813995122793265765737391955305340379458640592139500516571274525554741875801639082339381748252036630197090794638554445703559998607970474965567812346670534061426119245280695039679049736787149949292200774750904480874874045402596938936766106359881593209528103205301204238308232733340968711089445150377397901346526231242245310316341253107292465907955037785541267059981600472541813774464755808187148012355806578537748257877515911970097538582416575997269018847454193478157802726626360074124853410784026055200707316424231733037829391213394656698565460906636959120385597025423511294924815558640701868105507670749186071177822437016742574527147518572812680625608702327744344127450604108755645948675536925779689180475223418886667506584520413398417782054819104761380053602089723297293970589067218803631743106834936106964157907489185804350900713602556896583253571801977528068811090718770026396016083865656514422515588830159014574231868687363124583794981027812115051025276924954314462624497729920686294356704289462778976357076041896269799486735439431859329941791701427485034587810540230108282032041938983864058768107237279102917888510792104864400172952998521091569674159232969342837506463818385136413509908952307653028635861280220672890161006026848149552850415977487310003449815514721063429201612037312636051269649578107910893623970664195358683301553578164961538542283011753544624208423012676209388739186737274341269024089312678632369542908623236816892135841689744497030601229105746126739985904683450734769439660383475341161475687854208246464542973568160411586943566781013199565454346703774438274339787272170258112749388815818775433234007858013075505796848421531622389284070877067468158198292719002269863037956007565489997745640671950737195964216830317824113260622206538313079938510607338261595392090695902050189121984846932887879751303661458544361774269366561620624625672364345948719056370847891391889498957078502073597270165194739514191889894854681507505530191606785825890565852151133208295703413197383154811271886559618817778700727913876252991425418592833913314867559695355386696535570175996186983587326094740366304858168617569522875892010221593641604920805156767824925810612572439615758234622410499367476770826721920982547067548988106392596107830025931956699054326705465659115141085670680266608845092303143460008567956050498845720515539192005344094309776749218924527953688283688781535379941675123165498664959583223560288582021040507848926082147711447270059580162506917025701267725726503044157908407620860376872949747628046554702701875679551108597309875058315841325911792335285557343582807370422374257104965447217282781877461934987922965479279068417072174086897398268685935621854299996941366948742130639058182230620330186802962441489641670833982345019202717965253975822862392157009693022523563840368459337408041336074565877391694189813262886599075986528431611504245477353817212777616365420894783306622354270469626311186314614134986794435293613446794744049334884300963006401678032163316122286407652619795967721142605498637632625215850010692987619143447854670144803092657599161815042421611978473355163561648847705451750260732178327758719720240929379781601730781747642717993207993414025651859788695076089273339100549722776283595494112498067265453811532700257502448509145375166860616429497238022182553312795362755034517764139549092401379116743793979028880598809814649885627031078409369543758467903574659439261567878969847600695107990688787073833869295995230534912915092657019241021141737885017416880285523693256719067965924681527619569540648899991273177926960448704956715018098237872414384200184686751718892533487427300332010272599527203347099166576413299583433310524489934655765219206322313107319955595021412120469683516971355844784577450053220476749341664142813923892736006134544098977741920350001667138416504508268585034630567384514879966457773414880957088529673840537161592714392793896558016320252901948758887053921088743278030069668294613066685523241580076756720724425422542816382126132937366922712209859000102416753226898155560503508234642364406512038718900450348931896790728773865709905598186767030524038087841752597271692413342915502078616457865900515924598669065906200077400630475754914566732861614998159335036351237530703452903976364972396293131152337850612433634032782404477595246014469441426352742432404470292894167715620669072488019636402678026830453584843450279864116537537040677507747248451996758248744585022253181202134886469880051989502861304728065553977626750563377984663796773595094232283748283601945908660147593671506791257103879537589309444805380361624360812842886724133576660497974984938608704551901874307773311752780079802814766133122323880761912354875627033939491008353475388637384495755598700496261498042314200450778938157448932322861306922208582991401538235490655121364099844409558147820712760516244356746131707161555916061327361651748284308413269871620312033228697315538489977201283230247100530265839056437886534273488245899170311590224428055849705099732313439799987405069589891113590637521026158491634674569133509132678250764162754414389225718181110759589580450780778625511003967820234704954545715615196500414195211501858346963174576637348626331216473191540664259769712482361248734563922000432609455904802928229963471874219044950444991607706991254283970805625529319673838817584758865700249256361358042466514924985833409133822280296219877429361168129065977687193645161580170201685466142113741892096041647700480888958482836520742565770451247769967213809163258134265117911750741167389022312736400072590932430446393932228988905471163748863240453254180681418070441293530597619219813523634709623497127250204332681605560843864345856292550674832911201163573745212874063333448377009414379553134356320988581299289750835318119072188622197362627906779298372293619368564164778120066556245005423949777077493897871836892761804695347080614644583465732985701884494484002600169238930347941944692022508365995752332961857095382877856009090182782701833680935005505783994207371608602044824119591604017440117610333339927730581967743022791997120285529883247456989146211303232540994429330390735909559738783316237993891939875561115468376499734938050353325032703240308842535829498471910164527230729850347527428871537863168474882172963064289369852384926248837350860202692572834842023498381050028107217045266515189380024565350994157485001941560595362183785121880393815521309745207946668311791393827320865147007313313106588134062322168459914623291569340430476760197072444915947159088858375630436212116552379530188625573875875051753303233381509102249492297207974764457328125312665176009108736668182441005529132534138940335922130175025220523688900700391348426874421512118211607429802248487832819403200626198612653128959582231017770035962409851541141302485979516547381472842684738572190798569353323083812709801366477847714702163146078209679573362669239012447519458147762815841236299887563453948141958304310075189793206664900161660500754778684281035516118438458519935265334113612680497052572685671093295198297192467365960339051564207608227822520437362192787762213812705170099521883029888377848991655613397725677002127701440229856886606940810276264626522698107372767390835438951165734324875528746238025719697966174244002216384979933880017139171677729245440206498424814269831097355765499169443439380126939831538165549461419698033860191623048419038204009982592586067722190410291977167609547300935781155875351151403335549369211755712906770548143732840767130629894666103265688221809891704196994453313359960538045573528149348720262998746440005088758566932871290275145759166919075332776353909580039600981597566190006815983661769814903726109206648610873270097054265609292468391287859935646772989868226159635828898304260888570734716197232572711437822712506285085902934728130065800516540264381849853910593754390617868324425883284229414167240147773448516240450334938368328651176800286831369142956846614768069101501238172053038312609699120182285144977392968877134963415550236765057438491373376513669501958069718634673076747317344787563238031999296023170351328513506064959792617649994199600523430602217473891783308441349065750294920654716953051367485520510646826517746992886275941943627252005310692980976797427753387382546737723366353186280065250606199520363523285462451814948806172507336360710128457217297586527502168914360820048179526083273836144956635208366179448695079817657558589880042391014847066256553357878690118131818553747808401158149478108690740071591070817350139938217709782653125285767479017304215306070420666342798771840136132833025686081721090954137690684329232802604604098674532143316286943666042979933263480800921190814614079581827689718664098630237200137321722058940160565602050462601795714024447120933230775848626637200644322398868042655901423499958474022476480053702093034946904250571832506367616908767184634003783080916133479004657941259892524752826261276340499525986410108269216591403309811529681896679631513915785503182412734910846142748688336595036447101041424518237539491990340795433613034103922703890761961199265933236854843951442913977527194898500268654249004768320552326397019194980774293592006407748338119450307964957655164807555341696843044467666701121031645928947312561514613785547455063755525757312415892765193376573357394498777896845825052998329864546999831117806066872787908763514087978995011855709697772121494651289271100996435466641496503975176428605576238392132415561571198596432497352609895942264767846669869210051797647307110468410442059553133711995456604174008807008317806023662848622255352041592736105581455963310643842657734641553812264474041116080833822644902330013383968167166571857749057946833622120835187657979792931483200400141401795532467463013030681241365398542676564917177524601023980931772099041611662050064351947104660085344879334534175448889547868928352018999222119306790969886021375328871003543244197506041661399843428959407737266183051770151397710730283445852555410599958960443305581089817226153831985168237378284992365792944110589596139520227742808226802590985326734999493219094253993647118160700363903712598921625902002032660943949628143872737526180524069209035770422706974174462822826420665235473407017320701921820109467678485335361239344626906010214473029047263908879964498132637895756476640929331349338206782224314187303398421000739566831446240917881030691957148894652942407766601009210158706477908913032253917125068702280306892640993972253303644597009983798183329173422002030857427770142827121209976870234887595318952141735113188323141402644649874316108074435491321429761678803531540555413887075797321020360607141315943179281608349488961817105938648306381307385381266327060834807718742117490269001038229480875496554512868216490872828984289168592666614352349527302632671856377264806698175759455958178450668824924654797903374890701286244994810365122795601590914359051774115595678839476268225201207465365292403056331691366100423333883095096871812985164422133430710899317692654125497671413848827387406119399388942373787890210222909534778986557769266971579948802573751860150224957926834908463410321766306084286793086724424658471993946768875976076157334059840974987536679069928857324337357968107636941647496792830319340353003305029476845614375987934098304988591131349323697482635754922229760219690796408909199875995334612395805199314363298161679517723332240603097077861039164094685158235761636131195287689948295699710725749537858613520445991853417343149637460871919831885101266115949564444661157497247723389812410012860528612472238320115720219370485316969593626395809868217927931795432838022875429314800919696157112013120790777542000498622806527680280238219446265825048405492715202777763169633886083693279497102502136810043580732392272850248026214405828105181132744017158207000855185808582700787261195952947595044236117691389838194575022213835033483705056990591166951729740324946357079674764868339156976160225513327541584765420267698841710416711169371570934824599442848542073298580952941011181122149910776283181776610806555978254626669017868563517196854735634546147679257706887451248405565720407432365902817420206533523072237418087946295008306841947665371028152979413248668077747515537872758954703908568653158354699554734197602626214501835590444840098742674167034278746506836927763252499345208537346333663387410989404132515648766762792729764450394528844634757293449721255980934993754335426629676578674372234684902256477622246155150733215475112035097333852045158165551347115700271392526769449024520537242472118423617757887376307344421811076477220985443197101622955028970115897110468680925658066802115910040755174465074955865022709995879771543449766297863003167032265309338302634699722269794251758798044598268748010263446008998169362755707415606929503005387784553682913005035525003992729098891432568956632468147971586430118944180282068077175731763878371953451569174350134952013583623130903235770113032153268646372160352736760125183599260565449004123510744615663218511893020692078010957477936942044108094088950994482356317532953651044431434385864821173682888336823248534758598494458533424348144745265392973453527580412256074870249546828012069888634354599808594320243409109080817605778521871049698289295531019910535846870481178984969320835820206919657670665811276157876372882904684401188121174554523220276349336672884227178658043284923127018759902997014628923962074085551231682883109569218729924018951711645737347772824015124197534706789924872340527232038782202363150342698501350979312410418178983513967723850229731090712009318055158797392906599965298494266471294169411358508951119233860666399144952965931694655873886855306698160349017742827763126416961218181670426436175277704580149276912459653926160579155136494734333017193451713170091460303362859588815646110699011271389206876835046577428367984760160614212899180253853305367491107627155851537851518514389075394507617184560207175427190294759123708171037540903315058703412034545603166773348896504825529760094350789363943628383275086956818715365355281689457070145678530553251437826229792821750843094668038478961930302583052072178330293596454829853524885584995635316008112867604226012431561834131645353885609291334918630982990838020944336876746174494796570147842553048787851485400324859077321625866856297551167779167643975651241259985343960542160132549847675486095707171810496442560402869726730943162102701076605950611864979476004547034276275276530851488368840452440025007976466701040107645744404827121574754773021011843420711052789762802497567296092636505965135474834446107051512043623323320222045222893282308764560785587594760279500373203747916119826559935409549969132095250249592480180687734404515735012729858175399348145488478777025475548841631868437465240965069823810173457686720617371693744364232593196730873174226657924822002577620752271653402440442346461140840115469810717540081887391923894787900433891797564627649862597476708998524192145773850601848248588951866224269879143802430357028388105112333291526998607666364290839994133801258186653533325463567291835493839792769068338439693589662079733750308648313037803253598577396037529419847898894519290704476325665562559877568634743189710457880488372107241397346701299023565258079306218965661686488046763957955879867991150719008133414132861686197625393534193632394670074932650615908464438050266688816687484344812676055018965774091480879477403388695854963859830088944680347563837570619653627708866853457492551085484487439240554356634002010400966893207196535708737594265807858296055247870993346003944531992769895508078412797258237263793573119620314445534415605170859517578605491303931456107836690685358850528579357320978949142707972517859520340722002132903817861917394492771956129461584942137458768996583738669131041045541890632451229917337736966340654432657401607876086330622395417809550390816887129704930161450801314829115821136869442560573167240386311713638455938958652916019040797230626351715741203542462904933850873742309371231691916756602349682898619015273687838074965811761115779545678485045989850616512114610283452358570157586679168233704102486199251643987410699918413333892188944111752425152198687635010672297551786648703171181473336871862944837077796462182489593920678509944345319899773338723896403915186784244488535912506162858984036931845643158473812453075954057840571953814170191435794017446867032151566253444616666515717037695960072122910823657400025455909511022677029415292554367561981901655534244651397737518696624642238423497513343898542311153485475524010207199037698967861919568873223376654432178270288687900722996925615477198630718480104103843755245714082085371799026202739343308149868213975897248870521165129619463234235728020308752766892580348371805539094075993988652208848498751184124140776508351055142158455494389958408115789583746804885631996264025781702411120369818804298577272298971811699106136051721479463789891138472372476544389460272750802039304952508966659335514847023620532471484624401076329942464039136320044469317349731993004804336671207540122911297641975877577274409160695299372395427074430676812855945914105169457690003549041935947780476155839957149764329546974069906251053038507880411472934854367227295360929772312471764703864212388777676580717310580386662383568298191785298151637387222798383379085292949164592271096936382536198312473920226241069771151362583635848220421016431176753823539326160605942159025110328919609009560814530453227103261828758402983181463312194016204790372544587023556978360082445781762151172422007369835697639845336526901081480220458151225373436527298686271610698726229661524872879086105562002163756590331208396931728919684895964576808090634498849571689033328828461511573681642182181603302115209012196609998985582691676875085305539428829800728135641245245646680868756803003849792312190300934465286708475497487919846347958053427732911654981766336686078169893344649472181187344450735215363802423540283385959665824864810335380960707557314926683765791614481865772242197099128793935077955344563530825905638595382170692462018411316428842056175410298623627152860172696039107709174928659635571923996249211182409422410679002126383961054673007385580916228779671333380611127315355267939635760683401205739799430986776802598697368200008203738228974753843350574280582232366138472747550312683976594445942380949064992558386136823496818459955081675347012351151095465629892316199482120221372589144690611631081279091781316742453505276519234611494808450250182599298479998451179819731421536020567662383384930139385286664929740886465306529778719427940946004496480965723736823946015992600432205023927586075948513469651075422215598568860660088829840770449892044847660690473382306400548457548255242984491277183110955527407833004675517553467957182348101714835703227443095337190533097734721472985280501746255237599902271895197094746808854375225320774350468555109283671339101546380394792538364617573779135582087041966683832775654849991508991131108049449407760300392870619348305405846464795134994527739021183936678213970602979002261375965875496884763750745248137811791094653280135796187428920174422704094645818391131420908843073883319422157928068777084747989111685517464952909970068871730723904891052491377606570409548947297733004609643757019917842621382917688128641697476421032578481390881712890353655537048844680996084360514110000247396504206008050338732302588274932199432227564421112295090446427516040237071527765730909056662885572613733275002469002363594619658744059500092176555490269502137944418978237421762366905041025431839685804911523055935042514524618097094479345394376834943283216158162820715585994170540526135672900880121840980049934898525329691711693091318232012123522658555040586215081594736064757382936881503662625401631928710291639755394276555185783597333956057419239451180170280055386887367370635718398145849285756819922057614754632464537833517826984118141420513945502468294048322497791932084963782821498185817769549765084270057608232005390041265336635324174530083537369380384452800581029759965685344507190452606107835148287156557521077542527476150942172051158316640325347115853748880715268547609498043497927008494278369248105309319055958507755098557528892625956100250998063819669646443068000226568203553087665427073273477669111982326165608979955088376229588774247434863963296823286686062239294082286399967032025206638675887387079926522163186012052652519184196433822276377540437272830845618648695794101030900122688695376555549863796641845340536311826559506880980389059459110569174649469729904078053881956584774505537118015591103886557189159751549990439976667747085034264022253479589433533259911483248992553265304427250608755171847354541376181143869394594742924510217051088773359206464593620235788867890455947679117799984755064297180682190950469044414364270502448299561745036772307813979677973957377777411433201408454660240027905069455957603214080249801147170111591277134596132183878412338333926334543060797149085385692973422322478691227878879769388302280041697813890740716662460109739862962256238386303990851654123481885980492107074192484005790524388619646942265320091373176780822500941883468679975692327481356469306066937934169365256829653148781084687709905478170346414487755219681882305374443677560106385531829948130319727192769558547878492201608384446812075562476086373504316021355788823075818797230149830465884326421617687504448844749289257481055676762796659193862386600833766680645393751878738028986531322661986299070377727064951141206318423329593021881557121603058364141013102714957536747397216072358260959836442413862274633145745362637890584940247550247898164144650222042817338996822020319717552530747317107956898511422230172630992317665165504778269182266756976732182776637566219625986654684362011895232048514797744922036801333977785714016977696091177402282931857822781441610575419342154120726475211275650370336157192252181694376436432128823581841373069884167094184047667362272926642800047769046647662308207044736216846321773504054417698149617600013060879086042142984350569976374266293822864578899974905365684708887909771874792287194980668241829417906990320042354583516916268228463400710021390407125304996823477250084323920302161944006433276942761997853411418019502492245654983990992741067290948997688695883617710596872515367719001025414315435115881768562726074136134522992207807905761540875145735381119369978364855711133384269509339607992417694038843897744952881433984967351969696663672878732661408227365732522230805897232379896856071849605626481956820932634402990101668993608180842158836693853856975414006757324808780173199487203786385126422709631289833420584086874303840141795514893901801128619650542210890385002381664383998567074793476754345815504142367489060425705672445943389593328273250992147962970441736332397185208330423592026340217329089442598761322388305052269137535645271085442174650461112318958574467663939394099652488696000303645242593300665538971385867244986934091616654204058905596841214392812780980699878611973836430193575835508566267728359174285640253607786476071659477271116115744055710586836756816902516975516894027844081640883143462226542951895266165264706829533722650165335458371706783084325841743817594093113439762453805372449201398216202248378022701966386872442147990431761882613649432514768206504188636936552180172401202664197488224612363057651298424273194948981634053171013592249295386732168550984453619288795021841316005235792897156115009884726350141698607992684723512200370312790922387409249823180732608824401254408987984403931639229710788045918958238328897301251327724651276363720463346108393478998791444677490358749153639334038144291990377873916986357063175400743226657409649458413519987530037077647954357677371904986427293421582854025985212919612346574259281263927882941246793011635951304506937004160088392931801505318671238693974562678691478432601287363195732516871393546118797427157740905735586019214308694129969670358771927880893009892322496891530361264547618700430925577353914568114729972003800250447485326261266951938678481611255605416433926639523563145219976175707890990106423442179880770024896160936702909506940109779795117901152138073771830049803320202769851107676602916783564469581644911459973726524937616195330781931296695484922204999665536030408771783787081163275520670328606124202337644719533087195138201493425675154101362611810730655550564135250963404216231943395118020269974832953936629508068040308703837208101000564337342262021471216620164902175129277766222528565299235147533958389432315819478895447319924501770531581311093911988488812855355894549494470495060245899457801469727722717531269130234723590590671688515885257515045959479645305966878626894508620935609234879992663656532607816139330486930255770498563756526510817279970142867813941007359788445955558465221216223438651012909022300990255629400048749909097030591340314771461335566419102825369998813832030006535902375834362909399988698248955210318403866579991689408664994143510472749942011363897678751825834941307785900225128995005679400360635736670827266050990143547860328436245871482682568003511871041428404018196198522638063551325424924201913342031978646502250200207934818180365345551147636462249010383249604256509876535797078859089066513517047557665882768018500082275238144733464998533574068819279014573069322049034137965828553807877833130269494961719632815212073789629962136503445495870945650299156361577953580054029262493194691474892141255892026765032866000006400787646317898086720428375582001784265565851310855852679267711574363166481056320835873358471965185767606416306739718124029174026373580832578069709894385172111246524252135544433317115066308453429231203284284936525690438481804015261441180141036525631206995854787359579796061374098131846522421711668299039656442963621576933606202272199775172223668919634399063643323265571212200660716917561608931417179363490897938608926868077816848138423683347533046530528283165094125013866990354525490058649844287416125286574913127183322744817151793032231951615064574536744194421878170681128304715946575785485525267257010262141807967603965345390627137293893692062576044462126691063348663165267076850305475243689484294706549093314083743821203396355208382682855618525049755977922396175481251407519034880175805256316860546874441938383859559860971041026833083540194770103080556576565631651501835071627202229191365281517878685482089966703596321707160078901220364747440529909030898185893268641107177756315013844978789906281698213928137899283972255550698045758626997241909935004881581388242328298452476937847436770375964519641188005220495413600056387397409412868063057966701731821514188980486100069915944020693286127031225466127757831293317524447505096945968686070484685835978035278662873397948227901891653993705621524590605136101109472536231057643520414155145228855102701496053561575047145781938123921759915682753713402738808192633499755449780649434319549945979331342798789243877982194910104775099806954218197856783659061023025431740224443400754966191545210777267734044504939541820906514457913821678881577937497949479373567311241440886147770040486604074098775401821467556861927316044176737467465585642318325017532558457854776775524939308337319328072083259557509246217895198488715780947168428202320545830343033594143031400043486784651944031102944458852135059483328601166281616684216918969178010456207252241595920539666574055306035039327886160616352941921330871054983469459374317547195353871450044599218773133383056587463587650531533061615219565738442716609482468016795927930737594011714064747879939514513061835456870461454435084889365599730551004832445847846509379309387210707930241555429968357467679170489414548012209931595486786356618207913979726402831818446707811418303813512461321515534538280682519154745584225697246050990589393919409738112417288946657271029145816411597620249339302192360232949863506355421303596487662694531378438358770109296093071386139809979902389772525128639290961369732577751865567986737194634878022077906998175418710467681231306558280458618867516246870013630848745039020171088007042069412438680887636474438893857488981932344291697302788029590285012230937634943759775871633515730334895576152705128934071808527670934394573302233660366727955856992273394044635446761038301893382666298418419089652255744555642748417722523284499283071744211199379454494912842884898803982393732040561804689537887069610864224277955679712662283017489335590893614260021907943028197209677923723998677573066682358127421252653405755544367766086297906056430832550255036205512538822561860695906032506829186986731668657384715256978484291245970337779969142494267944446586360650687469242811368297623693603452718404513311206849653766355175621274896681760506829868660014989697287520577761467361808141076253603428131410542297346504772504101727947177266980005487825668008035261542629817212005970757322314607699945399518964915459970304710947391824723726717374223996841915809708076176018646117654145194131594061936377066630977521078688232545767310466194808036880233250466907317575139981822236447441478747834080119472974411550429643200300677212824897799847756772017321576918829116688490901474205598733258372754924679683381329108783154844074142434843455801689595474471956564745544857788053846387229960246201298214986057774190985244625386988640459443956309655513411369338085890169722770252110828363400271635346870907685726695647194647436978319626813522470854289873805703522995538325066485564396138089583386084793823584020029035746991685016375245735160017752939912359313808625736927734431369823152198609628571548610607222589588142219075222322176486202741003808719615614643999332180776781856735032127699402935354970005166544879816908569026015736902012440900418141379248094993992180490496447380581715224067194264180337534448234889641028545983815211091145481180479484418971130601914511168514094995173752600382661266254480245128745589589876616232292360332705405016840432693448553537322470055899242021306820683310698376951987053379050811830502182397071071444828479900491783846258945932295775197929655933410669151025312351565950910071254913449222057772901453403960699531807057909318193206776992354682685050519753307269815000821431016084898205146708199198903568074346711778791523421583519986036812160589151308597949182760603014275677479059200143987371398570787836182739984020782702046935096329897962962670545058768258136309862409558771423476946873010526873598446122460237228548139681573198580331673879333023031034567886589988295094341406737103952549832410400623080541015886362049278191442134972341981431988131489194184932545873107027187384899744380961946473479790697940074805179009642054148269087039245090402906354119785796897285206598057780961904721307223265320231703732969881676671778528562672184435591149618327729494569114910048641672343340608377889654338349658008338849479578348258198249015599643272055561217748603846948381155603398234289417216989288359454351377484854899473680071791968831532245043445924481187699395220223454180764701173284603919872731035820329497950461264560684232410110443467382140828930360274391451419208075096711831990508136858087704659252102777275042432045510022652582620457974421998498491301222100111955484644977190478418568525834201779357645479826575383891126563177466915307394983896157599018113346503837388750936622701649512856235495928314117576917102946715060117993387103269919534557820710569867967106199727779607990444848959775616828670286347057155677151627867841225797688150581113955036301533012429674930405690877818043212318936782931606550140392916517398867919053669126398134527240418177224623467301538072755379956055401506981608491727870719009404690586698174700108314630027299420693191838803437414721365356023382988729121822693076301880045740590118706800305665902147100643923670941500781821578274146954747907144940063691769999919081539994209998298162967907475939962909913034776163440659016480698037593225873950211614177459880490698622993029368743922629832800744080161601421514166611214061994264218938896274234151389918934759587407120401315856697818414247516115972457007345997423706553450392367475092818281493805710318960575192797609567902587347790672853250883383323119902193299500392715386400659049795172629738322655006688719224145068801256313988001145477119207179234017650247240318448428834249282968588428088033458103815135493956192272347062014223057622452577055200755653244587012519028987244059112088184072680289180709694511507204782274892661396532066710221101357619364642648248389757020864099845246851681161980311595665122189986339500781351619169059953168100240138868670986653905454329687046308229972222143810457524804699924662007054128082356213839533497669092798505313072417175351766480693329655438235011625427364729357004999845182081475592370912153649390186213287277249028286055303153118944614975759747584317019796445998570498456278545908680164779790881856440464313739869690718212066914276568675969235175813380176118527499704786550192857917671336643430296210458404012737821221688881440357444565192636815749123755572980322252051426132961922914158259595797659943739863956074907592782260897557361164799891215763976585120307716684490845969206063307254391458067341089901642903489125631975196629326967709573970270781419337857686892152310886834707248564986379212553312372492505530852617389642762983630577399037974023196861372499167003390070542480083542756679824302118084710443394721616746506425646798309590118619591484181120989190707674436682363737487348564259834599063546428814840995459179795207833786969490643864531094022375376690668349959952750390990360584809483999131383728262543017587003003495875455893515346932927581820683157649403764987799101454312259750194011311865185281436040638343917817929764554991729538753449711068666111743208206148959990646456027352522890234557659816774119722135697571310404129142323282072565876371959563073774493098451911095425335493315423889610724401142456839221878981530567032538649241772853154876460662209191055662554062587138993202674756091126295370370990588753182436420391284135039086440984264754872051917253769646259853373482354615656252704056272567639606324591390508807028899452538537629148328990918648445483457882022969504633717760445451233764262370939524213844495483087783443730983136803981230911213549940964080558929853399200065133022124862966766099446611005886766632489693918001026378843577893598302330627513877759719455911342472691083535754751223138895401332786190232584552306779021108583597219524383663567680009521448636662350205714984174029516487521056439018768432251966551995920856206489692144583917487707614498900666245378204115297528853437871950497163582498175584935288282118511135960436737645206367607396462584887195776760574426221736845869593747568647296709698038678097048657602092552937570629440192263001067937746867388557789327285653889504729391254827821697006019704914031142725295340625442216745821930040997462702414629718989618929838912932573378232231499691595184823502478795633846016530026304838851367791739329596369850125901724643427855632286726478553004909130849540834352863910889158591743808262496258707420484993304772294662478064900732244463940584748611689349291476616305205818313260304371192752100072887583142154347817245677749025104009501548624322409783291224718354242866883383190120411078109738970948647672484971641060583996017344117188054917350502910236672540292936678690342801331474666368270976993716966866681075525723829745842418262320723280778985030067448429916571006050963717304287923178553247852392627352066059384454888410626673262997886308043756792133911779319294112405671616212940353757548558409969062542406456274931343858073054720141368050113464224053230652498246289138985451290609686551447119803086857770390317751807712638563674690507023938739696074048328631037157030944899802225573321215920246128863250828657686450410167682956245096878913338981019972877555586731521160400059767841273414718000062717303054649787662295736878779032939407067423518332560043296511645388105840246021969776385115135442954759448276505061855965511778285064419631867136286674039890350874744912600625835717734811003474866587902324539645865101509158142212604887159298696478544095615604524650593165483302687884887373599675035780651312579919688019430193814530311603533295414121085127069796998988599361163193237329603388478040996857434072213761224879209095371342024416746473989760693642140095351284735240894389473872303592797951717634134273401048983575428897149867106521608748151655822845157676502176070834892560757324381612722952576548827459814084059057336584265253096094610784218599545706486363112383235239094374381897314688576474787875212631793126759702788472642429540033148614271707049321702932532256524248418495243493925080979442505778213025101761613625563833275943605289050355054672071915007924308432314011867071211771769379542282438962623934467584379028299219062547368685011920384850793012806806371402290856013513627870575843634836443990204398752459401761424747303093956477199185111226030621178115211040395512720971284148566480782984181206532387791112517679027081600099478182439464793538243651453418171074857365658001904017989570161460314723775395677775164139662953715830676794812298241085065166313454888906104701184885484324826867487929118856116002336984852559947073612969782396030921323588010541601414579027947238696308856040879388761387057327843640137353593083084400085950423822429240672069241617993785852276436453378835695063528654849477333221367375750838663820531938760041482859389853368907321449868640990974332658488934650432963762541164233275274185391008376777270980221074285535046507228989267244292805803105252459270387426401780146001663000104411305869781511792894578509032379048500992808065000428420605661908259576030527626145588507926698179069861191447586393040616981892174846968892457797376676014366491291196065435855792652319145218598061632494266274110206828280953857730561093146793244415284557503623530542046621505142359851919790563900058075481379070794939784039268893128333623714945691868924267275447911590078933950473860172496816063638225708758897124939181456614708939234175264083359834357401192090202641430572549159564038148012930941748623872199332707945065292455844727012284491061554291422999087514538882447172280774880899478552283817815009313640765491078427610281543749421705123231133890086043169093750782637523748241703019985351485956995392113822353041814114681576733516037315890026648558032767864963294835338341405244312385215534685428963041411171639852701325466184040208673173585343172707231377343447327089124339923200842518984509560359560524512908784487561954490338496687434891412168175748012976027665001470335169293182785366991008574451716066422450504405057476924849463213022966092419572231692165654796612465584073676834743004112246889553643852153689763318535664073819785360175723974218139194851350556316814741318066015592292521414251317257138227984622579462375615329740659858515729870902861705881751017643952474295182233340379991049188010675205744217323010379010743314794698035504901471146545289892494764828151912619055029762629079866715068070957640317963203438027455263665735819987528973612516054120884986860989978333160939101497367068504842020609217603273300919992815492446360591155381038865049810955735311245551992459174134816383755179309960719450448557788910527407516440872218699738725310662961030938913234832166174946261477502340892482089271108929297442867195394590342918604378103772526535116283660701910044727386042189383047572470666375141277673374720160692712334881236443750091533063697514719149284819185505129457019829485121131828723973387936683917258910026404918982933214386766091921456215671509402811025695837662227492915627915759957695104276142609870640619168824692287366668138316609757456312663313718456605710482461545658965389155262014423232291801144898170026314960125245782004027678320549236445706642293475693067393384408164933360827188744985674865537576596978437397404859996577739900842290841630558507567024153933481134886851551638702283598288004441185618150482361975219983015873403403508217646040674531120841153962323056474933184430753932018492140772032967976956700512846999287767575244663796521779094155306580267799538306653166091208831068033131502286828989950899839668929014775044651546185758646409375341053483732615630992375285622575604097247847245926298808804715527209757718431798234485019169158729807601942635845834495538354746808936065641341496567721859374871682152358236068686917013704741016863500613591651269732611012910149221985194411234989465199823007317479633683199100469741460372892418242001408804362047604454523588200473155624072402920323428011950626436076075230674804660659572528371635498167133107728099735495505903358162662638147256185631159628096486758409132345964418990546264452942369979488981988036640095731267622226436567526675151371260526646443215264564144050010757907538504807198364922689178432713896168368853265971053121066653436341383612244157290531202713247536852998225496409896423390364171048417712994513635977712480636555766155654770522193707641211317591783052513005010345405369380825250512111173254477693563143693057283914795239323703356256236514623780569275608364515094162705334586204682630342639630777636665254850122093921637731625711540918348712238211044162356680143660151167383672000195297675227131614380190479168467891204988776337070570384872126482245543754112117568379530885171098160437978630076285065527166467491565634907529965190310410072991660063378805882644460411986203694149913915200079163817433617826435445224864055937781899283998695703751696652477227943782881832431876405066351729395868612501286395212415858752279422821318208703176433117644156564407894557532320594038206589194882380324894887239199950353609362108981140367246023237963385027654864557459088790358633918932970432716235624395124899414827262220738415363703432007235994243707283728161170250998173424100587994022931285751596366201078175281875354620212917171220192717680544238719134755571045769207079908358616656047458835017268039750244134883235432770374714069016612899244307836066584726375880724169407614538668811367519575310946139359469015358088088493681716913072360835684278234856538934968594942133983134076726157534213973596862557523845578926800555993727532311037767931970268849484815290099380114479147659106940269107556858435474471530974354464165377485873699428058663412401566718004746237207966166884091160642121453575216891624196575522799163720837662672795549271656672723313693349242608238550056841867569426359573148436856065042577576983721837634727320603639505342130532810532496944178015114883727971162184552084101865173927834271810329958273881273282424414726651647722234330903762568969311865070348846457198785039747863182128971913158171696998432312014534928733412814418977093717555362666197617437721034821273593116542510924333379267665190541287159876516328637864308162274932847899771526402382327167857685289166708476896080462227352564617425888380917297615125541202337691010173739634188527376991336149188239078895235563373508872080328266179355955956686563474685699016372148995214333773620816738543759558455987252194819579616852048471416718908341049100484034932020598326850380895724350631640521014263870581086371242612791931572724361445542463550223200678131184730210819493711616763881072934191848314899766608708719349958247827158923483565338756062454057700323163894148596865577936592315010998818437299870799935073334253834308643951778566324929614141442347455459697920529734010782716940045572518385439311764867851693879150357407550401148915671690572336303865109900923500959177252200171813340832970032795846171009816927110349889928256949909479270619818340673926938917790153126972811487825378063128053496537924274084880225892743841298195292809718937757293707191108597810127928552057606265248361795523396737057760966756465866933841120044985262328332628058802986205840829266291934736469038510991284283337935305286103945189921621779501602340327216339475879111900877302811326561586656249099449300052437499083333053262729897270441272161381755951758204578678381576912795633939366663577346735754577866215436919313481848180899457031967847212776372204698024363921730471866872708641887997870897744366157334373332927781302086411328163579005444086413637274210539073772084324920505398652624224766361750328026410901402543568844825796111603627365835514361122100321143800144649354920017672495499695809234288777248226506766511298093323897299134516909485842772972045890224201712569934881854877580642682805875871754340637114925690145936791857431675006532723300130759539323664719414212093418706422799697668342796911592451379227325957981539974267967301622700094633580197969698363037478843273755985600177270169991361755979343882142908838302633599694739676946365447647765358555659854791719153565486280577001152027060348403493972127254271594941926753045478264249889466511018516478092399386825718310361134061290206044002436129082562261495219680385629050083474010915097055001043475981674550398552998423527814075694124519798489841766190609912405373836962484385859288732231235144607228222242200541717634401062599625508427680698994531967754650111374614983152791392588492635164179747458064733693094734136897452348845574921466871214259701451684341461485212782327833763504196130900328548075515511703449209938496128176116573458580669466323606247298284514009041447191300296137257527276150159055418360463848813286378822037639358224524029368671310880218580451770294016008709399353724789560458862723511775686771604055221225635019833489455355194920019220540057788266277138393546189738162283095424177014664997486112805517324400654919667182798272004199874486293549453819219324915612666468512972178966704326020552672734911978210517337484942685683429946127828582883694716788579627254371351118572720017555374683110595482374730543028789888688231600234526291375278146737422037237051372218513895577051582551834147333404562921131227785408530179503905396011280873548824216161672420438597348804728274919960964650878000150302740398740124297099781924503707298024330846432425317478021314567557496686720506012352520722820803587687292097023941420921369705032019174405456043585481796981374989017724109867088798035350227062457326547428703261261003710114327066552871522820617517126542047162009321560950549552908348778493434894331731666407950995732600368575470128980759714920189422024391838520770950191279716696066063783831161972962707601311533564696559429928804745873647039349833137836878232347286763879780072120570336275690896334644711225716814070657182530147282579881634450405990327651485183051037873418100378070114890307488647840464177316324345399317596033358648903958005634659155042797490921297146982382374577794391702253492441706370944115688596095185371729559617441406709370816128252777090940286897236100598193761989579066313982000980407788397294941032576212857970895076835072348841113874280305267905522740855404148245511432501244150500268743899552221990014915382127164229596878202979433967206323377969077633774891636731873188688433618926588133368963780694575987484375793913830753402829943959283910754830716811707165583655920064796586127882683076950081360967458042396705485037126144090306383384148152937373907665713874505525472686663179702372659207748388160589940711328672621334644760243951721958907552939898768452165029519959335806211542537301107921396893652041629475155202656421358742353701435551470404848955415192542173346227510574006362637365217378334658064386398210204877775220959798904928838682067642362408649303407787176157589820451716809981612079954884010215377569946981914385844121796609070642335246279911016839667831394010103749442475503471709426139894243837121617722399509770948819886423419718586214166163408166607558225092733538544666929200059848640728202718289373866824780833924079791590094872046126186889612255581447784075877688265613274429739184754239557861874376903064398005166484787301536201464149476043883809613943694307052431453076459512210458636395542255901350720780737604054839145113993509745919484633899333162869508297560805607146785080041502308732381625204758009151746586114611607740839912758440836052754743116871994084936629960677425008503882577611773729942398959335233714999340497218671282065281632351938312801910434221946538746202123464313170869455757189982561159972047923695719743347785098502168330163220846107914885070215390343099070801300108397093390106011786873850594650825462321579142688428861388990721285429724872840736382229140575921405400107634264678386654228546419222046219974991663609623192008216262178690892905576214163035991486523382312199927520952611284248326678327824186283125280726152161100487486526728910376075205995904025724998688629612299507316617538600974492877307563470616805445390283503322727942882541392609988489004362106095638364376742301435223310504898380583224113853692936422894796357014104776930138007597953687971862425505706395064638733750961965027295591475627350622176626757359153615641621626104355729526426141240668319329528127758860342719626916652964349874794227220726941295116017886036220443719693311697922073449657304960652834704323303515659888157381507051831059737783416356027822763771411737286708533394908899362903232982935692396834566236891213984958731649058366086964353969890539896077098713016908613246899478246917857057650207825472784715101719256923029668029028930177569803802958629933148609943784231470962890609415417149487192976426107142069011180948142391396188842090883903972601635797044813792416063331907168822369932870370409452780630823108355624311745606882170231915444034065227119625971515083250792419175427684126857973229693307075964750804694309548699650909789901964924475160682949835399921956904655047564499642692308060594566276908734253211447751475821582780937606441007941919742353638934861063551633372576949587962908817670887677012975157392263264997851070852496222404751542375165403848242470079841849069207748245240921641328521583097615149831863921908791030056736334176107183459746171813053261248676836492389790125879282393019628749510518897949072705613371683386990700839489138786768335291310094195414685637357023122018644858059260731759101849643490782381726315626922429741364817035621948422930063509586604201674921122864121656069361085350829458206325721526680816469222438458727732725551846465096758889486567047153734569958112575013992199699052478432339880205301566207474794578227683365634134039834271366039698870171460233621892129980640293336635237206509360071005298519408528503846204351879590618554845089499358405111904110534384469693407479335884944412872312576123789058833670232809318773557975406499069285547376025643916853828818973058508355096703605739767484268496905459944805693391700058806363484393356376007106667140997044311200528596545363622489396663008014113473103933169017637111928439314763524063023475241929510792390184954902341461646558268083600656914928966976328719398526978626600394195702763125634981747560300101308981742584447514389858561786907737344409889830551808632647178775204746646167412047342540217107782148296324953279372546038437018717883931351245902435086982035653945942017069474858494802429833836777653840491741542338762268531596839830321628280208198913486383136597080587860906136353346941538667110205176567161382392361800568711363806242768479298397336971470439302764104376985238916093302299943626283410566158181518342546043629561518023785395713864266218628278528401686977641215305522209643755430219691118414313646746847730676827413155252578178624091529622883012661388719789788884433392602535737568652894510562386933282113105284833282532019994241681687140055674376783482952357571770554064529690174504815131885222397165603818579527241242079857789884498599238920624901881766468826209164788881931176403240064615690526405928088520378798022749742257234074518155152843550268122891719060322648745465037828380857917823066844089415104740820922516536108902634650773744231862261357139260693750011604056913195670530333336488282692972830386987643873405287507061064845754694989784520633022186618928719832723522295818890708317770968468749834314134285502588402664102409818099020086604711613081756997248029388191402128296732492437370095565776809535724731940652078827474838904154078022188058526480862800168065947282862015874586629855298871242489226500254851698961254725797233464633395940901144227469785695512321362199007032245556429155546230652409640446420405983565428994799816490105506494801142875938086649564788024738311176466089033548408246302933455343066205247652016998126815319508219959473488088566110199531161697767732199534790195554927242899855293441585873651676799203022051351913872373798647986401628809666786412094047401950199126182546647306883329657664274485476450641737451976735828308368938405979889013797112356162842808363778833649736347020792073701478023098078378179630452213921239412128122115351581604608889214842881392167915785001546866224010996249704872560615875063326976631950324739259158971559974391949176994070521050191172708449783238643888784698573663747967141311846289976344310387463682791835545787082883634918888858385312794450846872403963860518026852872312627052687619825076036759277503988393816472910536651907837330041022638757964465686245850171313470252104070920427233357985273904563322055895589414849524107669883935219698356151892034123636763349075799717947164031246077414704526949862960957655150058297537826816716447726848776728627878571575995992846029463048431521281156900412467016351965479511592272017734523141760627502933510869609043842877200859274833513358393320987779330280307485917379174163383247095363537560010119666820537595379252197779094643039666130454311167749840900649676013196460251702204570530048543295197114143520580122534298965327169702356702078059817935413166890684013288279148480124311362090743509750104253592588754384312750368168900996923232339681561037516682338811815075179581027218249449376322349397123988923414392777543385615426892102348897622438046859298042699647841346023912029241531379761712749639984972789344991996789007300951666741813714677626306946903932746222177130697869836278581341726269992721640187356445578360990082668237162788193123688744101549391993123972178502225075009161941399568680385729353874074762229141752650875154859404658683383683328122105123038637367147727937824060207644475061046587649202384193340312400546435422680711297688096226911337857996817016836740177034080631169638905901050946337474790031765507266888015823537760625782404778465680425359889988173608882003811439306363579167122735013307683063129846628295200386463928657295711387365380632713582514610761837749684516241800434520217875914922574414393505373875398370183933631676775985458679679155621084907003885979032673254845511431162719849644608382890388048635602185786141543055882024046911269781090557329403002847682318385717126934393038311739758306122553776845551713115671632048512104290862481962196241075469277112320145048445280501643562706770877676227685926605220300856441870465183993712229482116108962679188611551430273872050363119164860809118335772395449267422389693656853975472620434180661059602436861929177601346582371521792844428473431370547508155813496207587679554486782011511438905740166805520674538018042740228887561188964155466720380508491268067576743165209888506299797885322741734213626181192396318342320407902188044696540023020632398829004988584205674704897085695580492465736624877640864393170993369745679756639411669843592974147940831015456864658900137971509240833745692830073572038705891020827882259242934631937633251146931537171223411046030380967986227104047148958279195444962889839126058668379448817581793874673948085402891067769322130982437644166819751267310807273677322291063205492801309854796347848845786582681141956257795850356067411067321525456890796235172121450869818160978767247169032484822411111716433334997101610366736908851283217048945861929126506008572935476406875650796806275248579244125800028398754762193384024444408487080900073171105001885043010640949320243807990812339521578244451418588124824667687311227488013943449609380505174846807440721515595820351213221596754009986106199614358734226800402538418981708324595207476402690977728384068587824801832197872769579637732105418338468144599521156501872340527164808752442624857914373005927644180323129001186539072901684316936184711304981248695997224268572200998445881509527204712056325756896249819130010742151623416641782614231973375550533246927316489881552375126248514949929900882345845882728154449271720793991979160333403705076381618379121356371929368251238670757130445490645034970025487167268364126779316465913148962178175926596894330492029188967018019323456113929886432926835618374676413989527168906533040139777280878958334842588571869868856002873254963131061429162290184656011878644820634417469734403672483225600657962395401558547852978104606932061082636682315470041971116522128200096929976377403428751475683358914423550107452320801763055442012900845134323599482568674809096583466305401336926993073272524060688497064554755384951444775954673576018217074281705769126694653662076591297630558348746684908704225675196824310388335065399892459342895344576122247358599762955746308265250703640546436036713277249718687016677770115788527643921334036083028007129272814658292246706391692666142303231334237566591180395115187176861898251318247487019340616517943027454933400906705660900247137405141184776353055470388291203097876810053476025026391556530686299067837153286892967453337135884730088683320715160264696809174140030855536312907370701366995148683245140844406769914404806461688217504060160304306390523155963154678203491579433744437139328484540863414311335804687979843297914353165098060681484346747007027424612176798835582014760750208591624680884138283764993375898821831985603375765168268657925512839025579012207551853591542210611343756928216802021668993833845705223937025692579931867542280108904977807736171318698736272360197038139410867383097739859053167288599963286293484097470152281042605020304468427522063927115228395384541544080801641719011996370229118496009281852515447557762128271716616014962264000801015141151153786181754474008245642135751607962071498230369057490668337254422109793792595588338887547684718387841532918706868341953923884776206312936784458902936736548129606171174061551795110439542838579393389495691513161037427610350677589159397892966818966988688251600511993722386523342327771736151739515742567175670068381381490756833777135302719781660023659179249917409375363590704599429004627292697762827285059552167809020009213687405434681857891470049876696323857870237386876406628089379816155240781370231720747977334654662853887983701953155275868940870896809414240766537301524877101660997561754110243908854674239034201670521515095141834676214248113148413576954956690891742898449391642366047675075874886927818922910968818188955388600767755140269708960967429773348575042080797181582792654192140028185623912698267954462531814302079755155523952614213885439852053918154641935070156601899396783080880971159994844800089452423374897120006078853017117138006736010844891550364576897242171020680816002555865156801759499122363329594430820590176275732825393547036099016540961876924703572641729928746117105307613872727278966827600301026347439689856381167916887776253517459489565048394292840494848513651399758223767974495101202088954397691069044985769554310306705010392947975863210225618318413205430527791493617426198786759558262228935199806332783152168132186823024565787234320588313005566260435802093173924029078279298837577961986180985195825439893685831763087672167361416239017200596557019339073563536670520256787272003596713228036516369153043069743814718570007560270557909073088799726064234667462003741094465781146464715579135315734576957512937175126039442200444884418939319536885386979874633213976240324766608851604580791365108374004895959512858803415326711913650059238747944456018758095274924260870581153250830648296797034297160244618461068244599755816923531396776890017747100806131287259207245924740623881963321715238482979270368758796460047829208460499859393392182560250166417526735826540944389536704350061864948318741897434243298112796062199461171713831715976006213141688772432208363400200119168853647345266895072326637100255162834667258105492951426401651102645983547662402980597481497723799826941425543179759003241503781879883059058133337017391419539539734592190805536347143216114916338679711088493468428988256121541954797626893744725034918621529489744263891522436534129900357944460955782341785544786426645061653142319184340160904181855972469262491653425105903463233216611308448672186751633940906339447798071099958061424536704087394790955290030497159095232504355502943870820609757701116141361772307718832884284765997765730908879585252997076698978823975632943427053912727249494158240114999524681719696451511515692101654080859872492736841851437564078840333416444086338729780017687250426719038876285498300159872215364075715198720943715616654375748728919363918348086066855483340711632675511660150195561951613673961007154205052289212258316216820956873054902940700139947702998817182598283623236801454140310300911679078649547057030178374331487953570542845305513565343351725703328431530317678943495445590343280966224287317169784390054099018791778731491451916394741167160956022417551910794519520519500429749146603518838736391292158876591130944803985911442314639851488539794131845263853459029766911524138537719866289499626494231842995294274930922244417910800786467568815260239106211248452335828257226236149798655627493704715140547312863166451981829600982370804351634419734183390903472736767319606657674646456514218718376179907322900251491356248732041436355304630870752769193029426767893915510564838034244892159915214223785392590452912984341914709020911917837118397238088824661056327239672603337984072208993716813284275989794242191620179055118928428160442004626868074334013371589687920840702645829559012459966130250285379594642929147889459200863198416934437410335744134885981511421024318848955089876919100120796232028294341681610828530459102769580102151189026895592554768191515462787504323872992355514722553119415314793492790319769452808565437131922658134332055782149256804840604966193842301752185530962129159002636019923194819936781451079610882186444232992961789834181781396716033871259588192061686136489754998064271230277123155230156148824186945654713387088808885240917568252890398159650229073760581003559989495009959617823073786175571482436718141058736426305113786002143344591224942935820149112538581575686114232779743834435105693997522657839426892088988879278382272982702493998461183253251483342529697662975786462270376040036231519044992916318992209094760368078004297359158025441611769411084519669815926874038405082360422345051596308573393015634069606003122989898674996373568166570524356193708782018672318387327187417684348855498421018631263525839283040699975379947123018854593717287243307882542608771889717855033566321916600514420788001416464459043490631434242724796335491984843659000951659945984896318880874988055318133619518905576984899351869335493198124682320385674748324290987200952892181621333696347577539822561649115021052686108996341197524259348808407934810328708143473483942025131583207392035367958705755865555835700271228237230927824993584508141966409455633232084545201770385758378797638416954673825312922668737436863653399232454641222173141950185676481702537385209603056684427850408084743047518649465196876434185871269116107087240283740550138582687055939544615336122179613544972193052663772978582772820032641734972547138592674141765766871141138692640716880058014034292763725668381753469267071106759641337518983668142027264978493099247708948645323487060793509575157784370947338725930239696450055597645678758564675610907757132395831922790378633693702008491604495664718899504953004782494673942222804866790119770216576569802528433013164500695397359379531173795909303325642023802186131772038273801865871524538538754520210043070042988222395145445795878353261503655387530257366661615306079368841306731191335385256780926284504212990354446603374758826962798645408222557327801223196128458365131950761107271708748591378505944525994113687226000235695174519730480309848857937309656304760641839106239081231494160006908195226131066916433812873810838553253754498292478589076741195041803701243386699427746931019948686646236614704771367578014310169434673159775312330488952388821939787141760319660264769533652237164767445176442298135250525705111944646107110973630116166515996708735849384847973571524338793531072272333186677291750587394875854430066348422951977166688597288674561394729787827384787749712666890379799024335722974629365720923108916898316420631380188413218022087039315274555313423265203020488302347914598532084430712851201075834874661593891682385472422782185652291562777921756023772227826637116145867336129106524332042834769273694526649659120302285172419142970168220470026205758069491713321356989149477527814320261945993840120722497721989075550164326738491250025182307581845012411322385083475347568925044554909153144926100919991444251607763657933554620090821626039957741255647655855456820154062275126750510221108337596380299699261392065120244745143860490220692170980910368533017319507773453019291030474783509979820780856190048283459264619251051034829914186208808937560604450799304227820211231777293579799987547827585643783804708847574812444445945142798085053564362968123969832653919360054239436170044856580193072339632240182836134356276171079843529437222165976497376395111386457156561019728533904266900007149694490238059885810467377204450763833166221717869091764012188801045826447778666531717287376635009539696733482663688698085018545077942945589998351980617890108234949780303025346470622975272005680877826615868474249937952401660617791920543042928816804515664019938407101563034966346166970361889125136937611954447537423828164760620607897721212875259766801928636035866465410460449695123411610808796487732842008510254020830761092230452768073645656124409098618353388898554727957112300038522430070581524165833260282778732888068808137829018317593353054010861621283938811775398293432335242631307466384093012791195007690103179925566597017295675838306690678662798095761822334824293179170590715560748205958229239770738982383527448233065551572812568506485632353185589211971048529747263189053096472773479920482555163511927937118357218917314076425545263658894307421810642649312470308621276952168011644710909922455216683352713992334792852617917031093060208552396899341027731172317330192989862478794911015215684613200080822998326728745151992081147692226160145111391927430283278854722126686152641478501854908354042952873206408198922792433822581771697057245728823651674778105773743982305748057491164350435733423758837103093310032187267721693940196705916907942102495215244124827435561231463838123452130109177759961666453065261327916706365205101509462741502656498202130407502357491850662263229398936157301021038206376026605054287599620624467038723766046703287746206156981390788054990015218206951423249587391917052913510728676902683783838013833138273113931246171208651593486458156457747652611644308289409315156419879791497267215407698463051838974646410261004580029550675551358632572352327497922137360139672521405330540210885793123165064021062943857484454244597314158767987597790470449902426413410593835255283460981018509299082265905028110991869770322951276809529954183179325048867873961402952219402364270236256674504375104739791079983984238978553230372521355392829086349957858090322120042370976093049865627170925869976020208342174763133648416437933406642484077634762932150323393155973774081728314159557879336978904014143576593643009017039048560558091364121336540131977450452379328935334381147756357924341288163143343151441013431850709560669735214503913398204628800436941146698930826515167271290701132819268786223323370384373956715141755454062472588341229778574983059042998548732566033961940803061758897399267235826097066888544224493776479152295609441318142519189968819511740964798979747893857712482856069674315295372648971231610842828330540276197993703311521020938878223400975408212857234208520956071697737896151315634413029817784181119918148056934011025201659336882562721912075064288766266290369011472751134708847192362839877723456460766354101122016226642676253698205702519890692106304581285926251411064035702563212346778731346618247716591864474362125183501516829880905472719183475248572338547806371087588293545751457119026337679335446585221113263756874108769276751391171915304330181287560723435224007734983872363821063525166770615269259842321957968681429436088117584898065086688875876552174806286425501011966739732866283388557795026387812259170822378997693284292173011737620111814271263366753475810563420423202777689933900653333823535437145700544989867926171184866890057883482173747155321291765544885536864970041572681617433284656966459824865526987080955114329885597075555458282389846595621702703631203253299814317652923198159426112503322161817150480706617276997188737852031186541885653693399056926139452089961241403850063189415871498054069187664374837192510150095547465400731006509139923506584034350949601624466701417572193052415545096266504453778049354128869417893289215870263162621114306433583979733706219130955423549496864139861753625501729649290664158650287497730653749990691890050172564376309522000857173988213307886555996039089398954876472692593115818947261347878374817146766978019380009863789034700599928881437307736378661722366049453054820559116547471233027140369104242613765278707612345605642190499405719317564525888955311691344633325934210997609741242699107975526015996631678131870883142370560714691481520420447326365498679614507150888632657312454585461061093672027070642977645407586357286888807874485233441545821628949444624891135258313170185856813450065796271701707879999974310433655269545919863658543437740990670753146220568246656710633875400464148161748425126394871222151121963839851344415096508055120625950434435106662650921666922043269700740556097827730314187927767151462546937112881180064991849724411707802610681929415050675995492455083063638099854930437024631525675569249982854778019998122288571168554093660737286743924382640107807338584950836712209456430237249373967292246768722633341428157846951851682957378283071009279365273680401802951062279809926054485929819876537277469740813367346281622674146749810932860153054224152549241514346290418241581944425066693194393872805554708620933107123789805207520576021256159128782316150251498803045863057246272861480403686221365987430952725526729208166542738218733976519302476701065390745865788560841698856545919480595116247750361430338380109211249522013380228479483949329794824853006263226504577047321236436812823621446567591347307744227083405833424832246503449279997589504167673429445649611550524882039084701102209534180202027062977751670188722119293680164075957451585403586206802201321725486564153664987464402710463995256591385019653868649892929623029162957058030817001419792549884134650729712847717776047844761742216636183040323843937900155499479877814050082290233450705775350077543258436736993758962140640886471060388778271455075316545049101204016902311067939703842494114754637107003241786766304289109645999458107453432235758096079525392710763084824470190989187406796948614923224710989370853601078307970848517820371121965091051230008897670545754329848862201042979787978031802994232407779325901727341933031372054087916891704503934568074966377202134856521623986410071909646287692015049938550896492821391389105777767352009478480418677839012565552162740618012259058461896000692856127936745029231123854150284470729662875653098049950868607765539211131665109869439943224035672805371282125775497123853086089866157568133095084810803668824881894753572785775082673972459672763271635965534419899597285626484705419911688790312664479736388018220055707897770349775243249963217867568976780172430749701172644198224273624670565605875664955692336330685417849181059701464260145646933022396833265552691935507488298633951754523030688664814162682496859943876866373203567903902254575834041274030701585522671421772691636534016255781789310167791373864709438385214541316329153395526899135656196129534334097267141004474434663507991294794477455572624267763948235528101228541047317614619164933638118791743887465989782802972172856221759288789368415201129188860072380984792863471111255812340169599455426939276153513541602451358361301488259094803907421189635208958058284082242953342667290356179553931859105400357429933020714241585762791775746482874099156524042233987753965532939676497619602167596941384504303644509857486582872631043100150539967383313380943848399831308233062130657881944504566149302803632393711453227542057435197375936835032070348988945538323272660929095884764981546217458531149564770241905305002089538131492870457111129566366911736781385988705051223589206171189568340113511434806779846179613143272526149923590788661611492142388687906381747550899352380172956744792057492807540841064701755516840701046103232163079205635121827769597414196908171003292247531652455839203735058112969630022380533568957669701218878330061005816693397513306841846055434897679169869978790916140937537273075209064323763126442476739592928724094702615306941185012540540614248582076775577947283246606697447361805145507723579471957349227084517196816921319591366544887160974843280786491016348904062793267962271739560181758444929135779441405030114207608803038547724083214568055743066536655070538169619654605993956194461217563972580649414686710997618228384150682103933183716512830458458716341204789787729063815665112452869307700581287641070772147587023645812444393453354968461438305067506413899157086159335509037562812001782700525562759434104791126849394049661806262973072034875213433287898568352128556676358743310582045197393529998223944809891855474100795335222350851740864500041895286610547421010641629297937336112668446005792723468230205691694147418984813740493070864286523677867590948202377105193987121456289975639144327524470677688705522699324422887442192493969932718867675406200901844726569959516456797398218712862582738528984891986369802022825191852369292234501562277792537172578553031073512831976421588661078816784951629461073276158593094570172176128175825467492209464677872003592628364421806159197470336295204889708106943403867108622854869198154133748863765210062297846856765239188851474443435544614405436666977986088895837147642684681065873208858325377692491096133893494561036162257627612783037263595970189054357218268784527573382645997241972352842517091803535152507983182447732091149704481226289688318633620912317049798472979497477678306980034217807906500565459804052859242251374593709992187720958558785049434015714989869895560586789515793668620942380243127690502278187495165284350034925034806238384016861254498060257308410424293646390688976164055690980954644689488359903207467546722201977101278663939618972992495737228639389618086578989752024089880631311420409518458390045407991860980154766198469166095309544057637766250152600149526234074974173798411759992391759081232101207640222698751325197958318991716892112958424942318749682011498108704837750237148624790417406262421307274467185089268523681120920739621235546732006823595013435900484878721702510491880188625945024849762557158026246510867353601102741848911445573731473246444359467095054044362873579447119116383395915423728534389575498330598496505334438707574915144348439511337455289473080424068010377768775041367286346661218863437256950026570125166609000870473310403183016970355652918836550130691043712453814902737195572676262661990424261463906920626527911865081347914583555254281231360459495707252995527702869655607611456236837258744026816240108698803352008221184257003003263180031822955256075201441540584668353230578951590189511234417827003595306281743807160472575163021299508480053484090277459281606427884308569096060052389357016244521213418152864160762521201308143619331321755065588101393618572202074377339475094304822114693760256595765263137806835775592044623500095565675854523391016736991082872667967244836943307994734250084297046615613174278952816361162015322688076015611989228094979482477793559896664498411933648192291068656783935400433543647087282027812524453777041015051213664350319364613801907299294768387699520018574462678698900886950385662579359813348784365182320085302824480391483397266789266653606420509969790286763234380956402259242111085233869596388351026120265315693534829560013378143354273299874669758789981021510612212110707748520007147686318589600310132992002344208421522135618231595149786197866039933491417144232366746392413024321803283074343778663757012909710280899486311196898222657914001684781307470496806624639408333141863293312768632664846185824804391916349809078819189558184623999251191065925110607336132654936997692025813806260498406495066530094581999069462362414845049330343287577269417802297675683232839826438549045210220835567258110516126906964037358705038250592371509026033537571509569563775392183452568333334232404535942243305887409787918999613118693576761142546858552252466841190068483983341680824502461125809241591418553757590110738203039241559248457141470655113507329474047974725601185279156676426948613342531837987122021942935583360312721798626475096440196067589168390228113205581314739778225886692572387317937017882197435022882231137578284274694374682039414100670068675970564359215639889608099455932469912945863906018404280905700520395591347278408075295042894870204767480907932931030901026861125271814071003974383530733146464494554455996077758294074175207637952866035439879334923855628435132226655590671540864544862514468237570215961244876211971639634985375089928303323316832302429792863479659414026239371730340466229230342178117384195033200336045761782477419839803729007088620662698666058680049968573816083980812815880422391730098212473169591726072213477326907057900023458450492346344522822690979060318372676284254306578677263376559167794048098121858899192420709035343218381153150987178127641879994815574905385067993041839883541351645066822139798147941514867113594574767710470349024590007104245831358113956991827756170709793129543767365237904572410492193346784620532588412587654023559796845506403510460838933440077429855664155688274360066703508175558662037516290826466621153482614765020845903637650408185324689266494569014116218051893044808023751279785058969795605765402902171841940186592184709980674345386876546322242961565564407108998628144016989902858776001444947652268972219424607931206676572815006763186701079133162530120510505174949287955650714454137916798254382996013364982455615452936383475059069731655949612638928580445965968549664519869534944180005486123052103469709263590845564736311138485449933869137298720370670038395569870491049811654044585388001582709298869631042845099665119064707145957411255945925599701156176310938556074785611143996710541144541866499037880386584579229797471000021324333216829598696776844727576996304364591253707878200361120491531411467755890266417526381910494470693943754147960822005738426242364334076215785871374203101050710987752325117932171777955620887568058563376530981251690720848587062418015078246616644082888033492482294370207281340989288308436899552411308818059321207321065759512492707144116780591567973503379876772936634011484944767692757815006335044751146022026588481935927346842474044802184019599204462382146000934064905722260308880796815635600758293359243057884279295251315777026679333136120795342585560284271362852187833618326108072740658785664395516025387768262213360924571415332761492094280830894384326486751752741782403867752493691414959618168213810542024520427920310221363824095183000438220808408664066484586084822936697207004529822586684112701505873678734909105543649329584966324035046099497266275898335010275512905834826060709284132727761950480940118066703871268556851746555451612193405505981353828162038878317850824005972248156033501349762429769440345983690980620888867670109843619044479585025435302513969143463341841065093578566488102572560647340707879827221507342257408240011565479018809284617439456218364195084731385588700614674517077694587031990975501183159098848371771145663516550848582207213129480057190904594733384055098643524924615421952449829959340641708062502435453482003295591041646305688894560056423184568861656781234196872202534400835129475945712264098076230570888752067843060563868822333405856932091342940276416259652561431575701245621126203424855602037493848821938883801554681191852466263547666938032947781516847166826836962107076878455776574929518762962400718833786023933150704907682453268896959861285283348262450106478911083577690586710678960123123439624690251490730990102035476590896857712578955995990663791124490573356421580573780461422594332321927803723204558765308743953446373121770438988226601652401195761217285100190738809665510060205092493174119176129655164136079091020155298152891879361453454757549947139231452111537779171630316772607403772448681891579274239363577247270164042281063080093088473379587195926728423100797371112628482141759774145227349103981552620043425954678993661225399522769336774690478149155160782892550291664791638799626665050818965404263634648549225546889621457372719176937264424155132702994116820090212060127536667590393617981591783411208325219961280772253736161638157946958044371828724815340386267250294286037040685936558400105726768611978874905011503906141875653932359048166032141161879155116298197894126229741158549720613707739525106494458754748710545207062722786078542484925916803382912264547178434770425448744638907752589869317528728125315951684050815849008673422993552419796326554949115235812481136355040116716527398389154317420059130336111246536203587229052055027314327144136653442485972358740670854517041267855580854917573422610491191453975863669394287006671044870211090183629648383715672304055309579884433522453932024363310444453050112482141499800573023390148005376275477664536389384059274985008493041595887146812167446740293768163554107190958748621616353807537655917557370383458081227640004110544111354073321679729547288408820000610487706142452557481192888370613113488788924478708536675912859848244473904300109476536435741289146608206757978496546734411423319709763557894659580461940786204934150179984384317184863916836769053589369046035137925308199827916968026923729318660462700419965867756746427969112866627876307475153619957253032881471938478885856926383233296605517215448673993229608005939397512317754902264457298082701409893029489245641294017962885937047735887569605798372577014529483692498544003287868566879793207333385738558212110016521451132822864154711231502613662226524955846829673313901264217598606982968753966070167244789592692462054117753909476176339986688833797464291249574452640589256875964756836609814164810080586081258300184739693889456167171540210385732351683427539843618471028645178594559333207648698259161905548124623933719501561164757093227381573699680546187281253094888613423610658985899608967121839067176269349844904175928107956347680836474439525844894359972794309479280007354604288982890325788464698527986326010043337866807867754258366067476059050257946859716497545437277735791533779072509874676555544761364412415389485795058242530119539935958921445041581362228570261201957632935175804731987514626973028966284808164539653021427670088100928484823511116109768831198971252818092777176696204245566337809083729364154800828208882606460004411451682508989529349015279405419734174829382302126626540631755446741978709018189574857906626202159799555267145798970377521191410477078215173900621227327482078639392268011053090637309936540555527516241026128620518120042183835196544811126772631931829392145015081085787145016268718640458891183462774820840432358363467303548553512068069668890250414207710873567916523043802384604424473379397501453741700284003801036111071447768615578561405069976492452965895128093923930541002311283727810118326106095449824050618809295758477423756284913988299817820539245281619494507951370740380673529749760985385909137058937342181626553640822254201495651045013302955454713582083302179355826497345713889882330224352624603534587424768062169435308659602691005771692324564255312420991562238925114161502363578048801779879515509223112652520629737948285814720776886920514048327293519718601523597018670785073447693538853393395630361523520752115296428512134170816930902686353643802242627412738703354107509476244259063613704853969385962990995334581196123918060103085929455998178131938994104593795067837458231196663814504745882334597676003712012250156392078033884220730611484541778656284297369197352497218711219983532204380786833877870341492224612407092104890273519641687523994268806075331738575473044032647236746944217001620282569897188920717577568855985068435053258650501831844620915296625341258441069981454149937467263936336122512454199024620887971281027112153993670422496116852181846429411141928968935951491276789360563368787758423526799763855640093396826474886367305987165217564361699962701675888106878120644039996639692902757097741181067708357231868790514684564965700131130855953692588991226227185300420885153435311581837452873845243748773440171555237448297751430665318224203135769406827136329587487705825503254527981235073926551843977091981390844184503965575792366862958850490065158802890994704594319676904737032263432163725142939188501060157818057754293436357465013126002997066451235517389868799213950328782670811805472731584722909530656837422054121947671207679716962742551439822599709103020638420958018832549272438137538710477688779724589223879617889989265845810675435790093156992920656917959100088643897814825387451621873828137318840368308105246734698527444886057341839421763449323604477489898270861050479868973361165028942597984640924680437846784363565905596474072718213731662594611618352925209809561326062464645159058300218646035957787481001305446792276584345973819644913917004300365234809664851491246173201584417810580017888051702202591152979136548191647799052798612930854369419608180495512913161815089509068413658796438632889700660822894183030626297453742211230050364609904553107510404599168254735770840138197441967762716432238362623663067323729375955647373734739294514449567635160945460463413981594698694856786893238349943573548340152995846450782351784387621734934327769930711524260309534419881534055075461978041086193564122148540785793602447309378289551989420713325905926809674116350003125933392317122274935339293590530797692030719104455924597130053726569987935541939260452723213982648589264302248841180874887293468710763711399298177081585235132953263191733013163965467097481825111440009830124958865824060817126265452641026999372753586413533536900819720173284298686182203108742590842591404866089076047784875482383203944543303025955360753178077563718614615499139538392056052975483785478296514924159265894377656039421448571691537645147424498819507277772244257787859021655329503775071259854768366211327967184976723986266339872026344832943778549437734758468352992917353408035361455972908145926876279850567240605430502157404436765920124111428963445880436777976538321971079681203871673140578191114008814105311319999742943659539784472933812267799043854282547712961541559309582546523843839612702934087516550498188791322923553244147781268878854990194260029293112873430196731382426425585043974686771652728690967551073455973435170129723070605618641029576018754915925443329008837061706114344857372701682375739758258722414585184060824953441494280286619199570951941030747710371928751314337536186420793816837295659169016795434135410941471376658335635201861209742708063222568085130843178033145012529304274345180186776968723555285454097393551329179423271869017461737780229044487086504548601755975206790090893434992648624060482165943908365933597098325829572685854609185221923109520998458623472014490307909612382908983998384862715390347491172666796085093514578345342880448950896558494971421691628804996649291264706522893649924651171326787805927275593569270819336079787318700097923681921216535432161224242050810349265175180676148019938450997780850744665937116782150430747795298448088161760678061483025390966428258041769683337567052727965702080605142395262557441940710316435170267353465848974066203995851394948720481203427145753021702363126359532888800979929234458273395098220901276578046723006850844744847124118839352513252802553891840043852193722581067396198437560652237474271998048951357640141791489923576011079085905741678671225397136353212113453557504488069064199202242448832110076309004169040744513116855886214007108908228527696851580831396898608818405656284811441891832022297566224979197667840581805290922237327891054165217135544439655132644975134306674897228362424285415966990911054203932824777142584376518283635705302296667243426758449889502551780220161207905971908372523875938635254310733391331256704640960894827612255086199059687328975617851520088294826132323505629580992555727647584302103898705535580157090129355245049294591568854095960948607652389026463662605905544642206671628822247579647992460722375114797902110322077185396384530283802536967957468860853023790241045177178135847875723142094407196370166404137089752861202053028798960538471444419171606196196263732716257361446975920958430864671757006729444508900179029172243549002561820714089266925832916420236992196093855645047642524651645420295185275112344305040009830646763005599389432667693578392000475373134199694344641497600399342601199427446187455755879524411462469817294418185953504838401036839419753110937343176134119208588754594286428655858771719218400041183836624806486234249556422679176465792098655367989527302959114524667459060015327528727191027893630874381074108049570826881170805130004457499203710044563308953203097339938509941059286140694517586133738912258025173517296077497115855164759251257011228640219182257998547731547632971727050593115939758282032185945584171568253517705474854181408909028646440895837613218678869574377317797782083083506477593474243395800059025695754416214425076451585547489076089591591264379936177281674880209774531242991064189191266088186867936712898784124256117015101545876665296432119965785029777566951305187455558935408926773796954529553278657447669316348719697719649709418754740381409964156361855353893477964532254714040020129737261067343266072399448223734025654844433744525604871924941193395142984559775621983071257988049729591253811232117722115034392451457942331591155511724311574195190769630775762058002686431390458458428834385998083614189474936477433860301949783103441495152304652465559778971585051976833573554982252206285149023623018334098233490408037627582994174831298507193574382178788680976002271792622877748006321509231242879088657965581659531493109186795982610629444884263505562703377926396940223144395224207130157431647062621171597355759016434465924526057826355515272647872254954441972724876938652460848521589860543722345231680559217867905494267551555547359181857746014873150330806466459792942500023536626057499031869496850251760141728335498157214411634142576092696840245720857721602903748771648797547925798385538511163744196543811307485223116438426045595614799757685484030464434674741355514567921030536266934918366789813326191902762460891948811632277127587850801529570661732377451807561552002389179696564105626386665254701151287464781493025272791761986199706618333397104435213224451595282574000874234982663454701161033996098343856198902345123896376067502697135981070040714111716531321527010728611539935443114825441076401045860311275675540236804123817646287005498430687072967903680485570593593991943106515224803078940658491246995935689749125247904755784974323130396035853067262627296650295123682252233771264789174410881072343700644255140248704644105813313181709656062681979444185013244588594837022387675674478501879572195867388741046228270879839555235112394848140213279447221405888948606331035911564899072737500400528619341552217551653530990411137467999375947757064260902566807814272565087846862947677468110964854880338270749719783444587287944933254147059973947581892260771138110501842549657780824043266377751919292138534996204587557455597777156670244784617577510491561032160680264722143783107485658779605993069945419064748748099267248305388321272964127626078062651522748944385283939400421522425315267833786837432207135600975285914894050005803761008267738490803260705456487982509827314639146998709624889578068644253888682316912023426440667073438530200682226974890935283937422575980643967785547721854905904908907852606513160556851702421420898546228009991780449489605323519068447569356648804407397599508297298673151099288101870671772541366615792176001764381055078259700049429779412132119505124925573687903436384023363386582522337797576378255051157711326564213581551836563699867503240450526572413896395764451404616665436070436656899996807981319224896844624456689768760792573762352078745342910439488790632944349452430726950442708456147795465751551713770209501767133926207692461889891937919952502388395138639476752359477587843488588811271672040599974238896629055191026725171107612595034808008297225580049087253775709056834530803757508768328699552610888914830761983253196678729263460712742658232184904703509974444451324348130270800814754754629392399702974039672510594586423814399590029660532643334071484470552770337248285977831854507041550249262482584491084043350443684074370824228236488736748365540107589479108908803790406077539936496850753120292871847475351181547408093794523140255049322134478308779362334908808919521151641107537595143616353801012873857311262749580786617871456424378756202287835624196031171774327386097314710303794933729244316180613833477406050641399983645663183205026036820175908050674578574303737394895910258628434959725183789976541594439992401526603889822594395812316684343598933592586268235559977750863719409100301400792562243905715790540833883790901948626471141822688275771237202895827643470710955565544516524685435756367732953666389638413648023097462290871414568098635258255541172415178487076920367241218951317989839793484149221144255096306330147165570885122717000544566725470974706825488886194141062050812731811678787170158249935624533505152760541367245368409162316566917031935409179058729339350700937732200970014725324505106975647373606566759670780869855927437019969129825399623569500174427435561181683584406588260101803732265706135277982835973013705035621550114751345345757148303249674086183890634216673857313215097677439552132316537871760970242379206304172697070560852896450534709883894214442424782736343146563300821036073738049551084166571446282926461873093942133100389252682759421324255574756523660687079177125403321942928783971895426617979451821332837447554035733851095914041500113541927520712022066276661261640508000999403617043763641590458137001879920748972818606978386204982249895652035453583118763554102904356038286408611250044999890957976947234584477629851108966162645926535840369386531843685572472297802647153272632951109640975559207368128053075129722934899775266717163277581789788177253777991204836190378889109636710377224323922695743714682867492922558956812765542398517710307166963625896560001919369396718756405909873661267958052332271952959583548951836790699247883441843374469523503070745125476329582969342868644480908722412833484174071290998475570873340455702083053221175331452436171742722959841409568355473203789904230281748461131471484985225076861969608063212879194688367233865841574176204027348374964173704146413952606379616936313102350107050745025888333835556863223872031152648932503747621215573098319272150841244340328631803477950978005467589114861044556911068308751063305436158088369929407059663868297963700524069774840683812424582795109573764965748888719186683380544674640986932766618397528594731808919583342221901768371210807076604232310544162712487772777430610730036071735336019966938047991325028753514859950853969237240073162696633271192330855154306497156826952776928429769064165972683863781745258931069103324335021082317820446991386582278642669682823979398507198062167730120097222278588494378040705633679692414974373630526369194901253540167542742228371143242174637187375689890650135862938368825913458728599240699442029657730777977210634178682929650073029237117344450511607504338845613564051691098393602879752304763077968251316746845823278565209865148487392872145573453847361894636730910718114248598844484108258622498189804514906440589205750337325468900736313564271796290809653591628003962892140314494715994792055435859642510639256665504769978493528802464597135266321668053335174048677212865528367083696105756093783615284907086485345977234220057445866634906468614695217108455038297610510617320710151185017697781273538208318286205146197528476446497323754592280885853202720326434798020478057257270750336710571285026654469221322952495487694930395064405261302124617949343895745135009953479184248728089953007448993725708640488141891595722362209193449651526448638733095208441807569993099041359328182347303403804723132605254304425027677975481535784440096400137426925668627224727028473615645938314830075508511669978581510086459141898161126842852919244198816280943668349815433512619735393323447183923938114172460015895596446457031201229722027455976552851606505698131447394604116005114022898020794991129086309326721969154145152933858849333172899676415879263495145883643366097749203564701104096933999208576558402706685003276082120126272841319800971227806707151197025105742701284601570151835890015083704258972451604027179156525014022934187074414488746224489574327725971353690819291975756194407984089984311938302420468786609507566865885709267038713887569343691413382079083002842821425537139936090931787475265114038749271221949552501543767780888266336699869694185277815251908145112526635340235910234543358528035777234638445829587799640557547809398693516785129776118607853249694715489661813975846763295338008094840303637897701625972812075817371580133318345331307394773696674309297287049127126935903747484782606646237724278058215139397211578904670850800649503890356264822329529543828399965413225912979539105513441480498242184823159467376667415333570687999008660133023963706394049611586209354201841162035680058199789300593163543876752572112413230836730331983504973177664734692876060355045676438751736202664468571268023310055747593832153569405999811206740597056124576527839214589050025389597173391366893248789874120432476140494237595685843936941368648424088190101099713921620527193827509768066653303164594769766124065250047188904902025184978139763142437522933742789853057322837441947735391804856756374053778397310752552480429619593976385601921923882495560982125203611297501431539257897636481115847551483893824292806572644281022617111219018101286157599786133573638556743058088356577593917924303854262853109978055126858468417442681971692687977994103809990683731507304227408834378900639422785024334722794783156748249222790252707288441416414910655718867049663667420097208098365942281396386836451444255442375569936690911244315630380802513191764949686282494155953586612395406248663412739483221056553874469621092824000422731890772661597033657537692595247605602105217685608183453813171805446133549782934819145632799194484424385088974399673760742894289624566835613244228016328310459451322744715573684112838170103508614457408037134973638590947002696971555773349523778956190743721048253302559441716633762249391768977177551510027453683677917084080424293860398848812535018389538500595370157459458023047560317590477032645606585630852124541369356259040003150901080914060783420985596362272885862911245931080145080924578222076516262416514514651084818366630144174652289045348733306166304054284195361221958326520611692474670406667713375123918982448344564707469688424768785817681583041726450534105178163616112007516944663484948709407339063905680264938539195497933126031638609151406160076387775953373596998442770873100649211867566016479013111084617201040340054276619525310196124476033102159969041148423219353356134938675867065240201888333342734813883918594757296218727090126192504666334334500966168361854423540086726749616863793232450667497810763091166015251789374934584508168056838813339161466333156492708684799698690090301822198069710732261596048501972345101908168172919531221498658531811847169960825058144991694620117569941926394803110345546137230960083037176654584149088146633394944564247524320689489625748313966437178868605320000516869266217700209043497832624746662287991938164778906012108968655290724918005409312470563471935389832531923455238937890273813897441601981922598117471198373493365185652229394050138668309481414251747097013690942205585928269034947580065651546137765771804731539130487950560030742318084133287553179250591055734867803690078294785243206980450302887594853691644187619635125140077100247595942042795481570625800471703470966570285350016298476609722069769817813198284969163207389020474197583118414982859241896819187477840788830183405490496568477944518942849023706757386277747905777585035310653796373271161965445904677429865102519054570652245545263116653710185673083236262094121158597063930894711138160761966422341988625824859184571076007748377176547405724077458549725674321320511562947009189018472040847012686484073225800027673170846504365710005192430099934890724980828230048283039406955515089144227155868591655081048018374985786372455130103117719233918805950902752428101120442101013739899873073527743382661352065448303435410239951796120871674714934951778986880080286579446214283007516585013761356863078758405643636703371526314058088729256596081815956342784176811591825966648279974921494493519876756829711067889902287483428921672995146761632125136492865016151554430498033166878661241809470190438121044518938873141207621003966756123878133213505496279031288369481481222455863806325839688418033880199692604771405236758934584025149022668778495714928715098408432098705856492139870165468544716856430645905096483287842606007594167238350297832540210321558966055404605923636314588092185362870345346725161977040172674741600392442643888122776377133542683916664814435456632377282716718074574466318253858855935948832771346864696215226306657696118419751137882897593170999009907880827092766988006813200431822985799062667534793982801450917558271989422710554101788193041180297171962296051168944105086096771544993411059047861899012950097692262282154744128054659618849994545048180642728527498518780674666501144120851590792865528837250639035891126956626305767243746042522559656386942066463132599275747701219970921019776814062141021697611535921431678382405637620587113355956382346568537413468038423849219424093041426978972986518161197753717044701236007897942121853127627597173579415318354806904976141737320699794005650859984675128249660683776457261952569998104457444696551503633325232361529093260383132695203160550575128412347803785785455617542536890700741157202807449549386452897252602408530801043387322115208135282802210122275015274830561962555415491434054997820603974192476631607255338363373093935538928778840853977240907833799991950982775333434952076477601816781590020795328279026643546189218588952787057795199874287240117113357806962211950753147095203741412311852158345773178572737571473477817678605965124667695433834742449383272876905542876723106938372342343807840946270900003686580166995528152886197769905473262988832073082661766145501819022469112371334117345705210711985411912166094573530699671165107260845889549665028474015044765903251062044896493032252631148111257237041276553395021558265301944918663235862815814817300273776094895562995367190171431212718438669292726368566507020727416565151806299267468629214329095940825228346825288644684685206070402454429190462858868693363214934125435123426254060157016337145561974574202295085198325542169338147585632524073996493007614765269718416441613091274428885071158399644919060834138947891382701227712100877653736842586796447441900643359524474587183906723513381153404988569886681260885714147720448103521159523850161530155896554234516100301409710394947113465339849869362243407514861151306195127587641870780393613071646738059865259333350452532226687777206732162881080052913400502515316104098464180728939801096965224821744302425822996779424543033238364813255635427110773004407242543641248407154347501398851778674631446870489560691649236912267010398222650060332930876375223330318023738114703137558268149980547697539725350239193148343947435044614179539688128423281250800838446453890531738951494619414186533555698122998327182511426087306854294282580418969253907999604837273799179115575985709999154897373308927839613572241390839215907909997085297215185111364954234226401153957016832476229094132523641394026135387258233094551349146598786734180409084616348754370414832038129000217582337628469211138211601633406801086257802325777926928938568831803825995563250656894133730011642440783626409388566939022701498397690781058747887598881351868430939286492864940438849053977671112629446936672134788875541462709501029916032332870810095102298793739611161102491751529144582085732300950940071691141741385545626279265394359536654278580131606087035345434457194764384629246991134306824606960775055014395562218239697909343404042762634578451824191846649589486839626932831064170370115038536779477195810358176470244218953358085130257870609625598002660890731231827056879049298490532282714811093959132342088432921643631401941910667032564555708153624814472332993877512057052416727280429819545914949588914444561790160795515369239399043557126713314426802217515209122487289513084469411639813195411076511183470742556007469459639897105655094963423894436359357255697465986659377773033452908325470950101540909349345192019101317865646812659159853533577263640154476858180352049461748115034732221949436339491747071438710206554913060798785957830927413954278108351463030635262319188256620538941057307356340888485008186987150609176391496214749137999224468476136239052063370687321660127341072575608148898466473679255962208087148334333478295426842505798191178866256958679117302284625699622484496555307475708279657167442954895935407053751512143199832551049202184854891199827901614147448752591627282612286590288501969330279227847601202694436666379372453776965065926455328064889070520219387742517937444762625375088297279981185504810071790404631037829882015845068627272506034206365795888312581407459722547820825359671954555068154069651607828411845242294232853967425631853019965536992105269348538065734455625639424785408203607236139832068493531151257032056770164978392593759608473851811819899164288706465116937152613020122437455343658711300968623404716927184882364103870653026796971473890237520500264493668443920368200764312086123299447402118537281791414364707563889906073207054285217660752128329760287285942292777089853713256426212179402409656542416464024785304156164528513451082718549966455381228660841611763381794077432583500921803340009464289500428447546555637729732874202384663949553964467089468238373621811555840664246081531722401313328323029446575912430950990962249608568934064381488532834852477997082148800919914232206812218228336983719805331468235870752646251103273621679131158407805781123053940945808353890248449414056238373207135469051549180144633189959518207217179588634302912762435424487446215437231902276372171748187236821798115607154614595850067541371033980041580158822132548343915380357004168144582981676259085345832214299802616665753115960728417448162069365659206318706833676427590959744353953427483775690651624887664991594738079551301129336089097312907621368973094583637653669692920358471803232749941296080964138653077259877430973295294711776505482454769209286895631791312625279828290343828334095486478394262666539020497248798396976176184839770359420251949294051024068377007008936247978938479756416444172623968686257818145811606447917089869725449428847755856771209050007789299882567010748815197612268355242246515825681126815769987761838723958406574689068402971258732126314381323738629651708572951459039846802017686572776003335496204248254975266393104070824159970893679381001850966012063309362563443663614941950121235975728686610291091382325445997661973091413510946582400152586134844306445165996526598364227393417312889193154051113455453871511673089664598370915873452409681516476076472970661384017591277636020978008632395777370892329585049694637291153514745450070096730070796967800489916646972213681621478270091253974496752380231035295655072412605983976109794153956675595460913818466146712290522768393392913490183263256886393754510401398027873026413657842128311738185595846872983499524664673238689913236993700082971624660040280484441202304712048713221203475520333783421318850001538808492101252080420036123478050747091558596202204895320943673122870060590533688820976927716847880275495518743015490948275311695155971165022950257299512538638467616024606965029475324168745490304484053245265434201908415269911603595127422643315459360017276983338002824357735408577354482005929305984870807358094175201318894022212731343640856860319191128842472239065448693766366070484133984277437465686696386328638719369779375141751192650801159212403010234225290442378568827982545127305531051172265667418401483489557036586745756037230919302203744111459184358350327426869750678682715050175642563328633484014205131871120239203291263571079421323209646570669914877082105696275977585141307979347098459656217543727945765948306697169466789302936966467928584925457281443737793524240240489500646070799310766354145842992236774308912842139202097773131684631820975810533064512089218078569968675296031664209472699737923420281682339481788248700991649831328401618831009886932245385077788785799208201783940357293887232490504177747845899356304650198741800200159146673437310324874098378512372567333008337505649448927409723968278592321149703858147457814471727447368573045174774186459254870646862719088567106423706973588566342337290207529775592309120781925887323206539489251284516370742414027185383840275291448565076269426349332635959931632828377425004729296988717770488750980944469918884583849315306588659094403829562431636825751287288662211640688368150733557207330170926225991296107531976946147649120060590437604670178515287585356417174050812755086077553660867410233329246214308929766164220903024110374258553192195191979187908312660622544700757544183874470489074447647479944925848739095992722872306293482528287345082562010902126541140439579526961067252279034489070495891630564960691311664445092484215647900589513732007892218627218483608021847396875024720855911437548127452451673679753447344409151326208530309718366108759902359435236249310635668144685746428706213499468436883470591595842940650100888013995842415943584740895308336255975807993514766027244669330880081227478088248957085621741178681698666853769242992063616431223393442413743988437695024480285731959347058815862301720160883628240419570827231196174571499510439931595570625364831826679313889671234239668733107453688879064174107767993896769956661702794847402965686444592349915125075556573437870750665358876990738227698302346140690697061870577604108098935495460278218026681730817218029989026018014800774078434540833531332963811891970183121381156299649220552063572810469209741015558663434562246077419797539497083730270874823992401189314490259964142200933310247871762274517375586327798577449012948802769474444291781948411933084758946746500440979579395094843610934582473752704902440988160048771780479266713020388888629924125727718826648952256907131261568584042003153042079328476889559933190967450664792390155869844900367512903221833284190089713454808904771803221348082928112027355523900254416314753331201319734856400879882291894722864421593855346495125535164851460295003183943045158268898151041668724917873967632789133013334296087461490461266116935604178718892696932792042853643779042164279178484936839972544984850487726042723884268753845168811704837852444484209478580101029858324878846346207232502249212299850742319324377904893807948153030654610575284014739539826227322670683387003518145614429460696482734724917901527219516534235770046049286126741145909383912672240574332804760028229740025376985851446990918601398047042666582900710079810546701651579557487720324296534325449293504800946679879625207086252150547957285500640618968724645442447375937801728541381552871448921364834713067892375797666134308856028683651585183917411596054351775228577278760442364027372752944566430092780049314486268389000708211188331137836252882427091796685517576929052907291800748134497230056102619085543924587079110946965824549221308389382556908775224907873220235086010149642770135071968810431084605814024519373102280926171315779056155992775828088693475398745522879931736749599878204686308119691196634086350183756463849729720128756610964764291751578162010473840151955682446980041766920516439942889171115385597993290603033559474457871527273625972235896573529476557612424058543629101732915202764103054609691293632172973023901935121629696713886540861271519457644770516004099503815654832297170332632354867018950522463561407803718504489765098688174445442060001551828110330327504154495764324610560549435823960826029401989355212801794750989540687736654621136714536062848764975328500630773235876218562782130267915645097467087928403258252889763197891790483764174232105542355446732242719635717185741298355047920195057258890617319095237367647630603931397367178192807382514166757585905518170045934548746365931507164320567731126642553302869655718829545487074612022997661363916365785890324642671259851078049742162720624107993036124151611566520306279239091627643355197480905582433164079013831201686265363958286128306800672075953901614215041573051657076986087016985278181756883719172991689988886940949418685710466588564867202201245215711115730193610269875918264271105742120957189955873300614106010963982726710227805178805716523554913893269999470622686467398294055590437063071632959324793816379851808737562135851864359150440616376628955495283732105714282883315754550040262701791885124755779536586134524922056909622935207416611067839954141826833280344937301968099241947777858146973440853091847667218716420483848396403034236951252652867295388526607757474002217490083778058198110794778248293977066725546015751777394317972580283988279194110216754341765751760909302276484558788445331213403619920392661481291570675532857190460040253627206224952862747988074304963591702612609671783427922957866452771229595537492802458806933607189670964827383125340406725268091245650669193231239499518555660032975698541365140194701653410417705083297466964222686014768257398371101446164583353354964788636940197059567722573260353366205080083467507882668764045627653822403399781809513310275640993874688545470809394315102194491101900384634720680248379972447228534345604591007339746754176211425122046240373523521848637933644383171672493043489993138285369007628476166666002356626364067782227504247747249214213029427494982066600446105220550880084099805874029769638776721433238140616802095777984194460622287045512349278041807580766727989313107500059168711004052555593437352360848202681159629632383745553460005055577324511314385631576923096845911844510973969016810031822861552726533168592759828634056852130764590692985893604506945871937858956343808015895260554989258451993963723760045705661110019774000635922667009801765138042574262615122320419026395461097360253993391460825127934966887951139826622227062149896823148891447553493650986454428644518946827303143486625820781254591760122107796541282384934900256100037217068885721135053986283438029719710952250067755068620130796435538735045914063015065749099616428606245533189496215023235290842747194682394699345219797950616077024635709505761017613991358015917673366055399698417050231280855228997667494568798650007948471766589796830728294503171246513875364594140126854376595389075769661053404914498625206429936957560763392125065714916320685987490071374915906765732644116335439458671364892061186702830229390917820714806013176446100442435528076869692126370223735903452727556102514245118910087755342049471357323940389027938391141659847456838329924867793146030453444714228727306413747181775006939889302907586284022582668807677208711365491861353768478399020706407339430230132443612714093000497451072556303516910357457197463887811431884663658035053878521633637053194463279428365181454155465961486318182130856553145708258846646548814809307280934211560024401516230470389039401687564206581284565371660828931801260720218965974979403027948429306917011106053423532535996568720289429693796426762267706828600959821165093702709252203648637875042999621773064150613245006481551220244363742399332466424955812523793867796203704786649192578881916605277071202515042284911945466282772755126239077951400635660830347927128554908800334614560582839961305263240088278535426442110099368020576529043306752911116114066570399172279282241250825023553677872105309402339709025538693095711232058298604494048785485077829621880402442255241087889913388635006372387337773364016552614414640359372202126373513402158143698717461577091060116440023732546541145473001563411403376223423562589449977203605171507641224787517530074165755283582648480960162899555240256667376386736160909466980361557592745196893951111100201174289757954029440803685091694770048527222349794013771879509090026175507215200148476418301186839269821839633430902051285552527152875160828636984176687959324542725494392472680864494719730292686297883337171639435624077155695240213474811772128835552967477135870642792323729419743278610048036027145239850989680080293581373754310060893661149532416718917791276491175219265906505372319481240539225753466431228005077140842396577304286493487416510913431593397358980423323049158552773186042927171994464902831054294072112780292934678640772434189147464102265106084762053048324821732019207061581325240276593796038852616999818288790302518378612801722123744378950770133952982185791346027359715769333721780737219109025044570067307905585557228151826675565599996396709168666068332671927465488833756348399266841190880878627039159191066136860055665445961194047427332393354737648235030661209041001798191614274910210020735848983469341587763136431111531005369409440195566077437782430567385841688308458243277241957995349970800091750696535951452625791431551992326254071051427391196907321816113543914434150069728098272205619063216320642948481672682686779446212291394147820225340219199063232835492324967610740616463804810483685014655878066400783168841631985473301680761033213827782908791052032673817131744552089202856692456698887463735135093983718113850062716564135903237125827008376048396163883011927746059781455395317335489088193493070769215447801653786918944432792858714821997025546864112078405424514381303788212050124601581594184836380562830306037534709586099827263149830313473185990721398400598466085249295363585605093674436463306624243823077917649348240857499025374726961892011878661417545776136767168945365365944236764652483498972181733720291224803302012062901232720212855406644498200793446885594343598327237786944221055187223194297115285036367564434535281291302642177900005922915036650098509847854341003640728489064667855196041183399196248130474575476125543367392180888001776919393355112118284739760114418758088609860842426395823300925162605486781086859706310473152226218031220800419288710744867172924788726206648385487997367922428169067699621569401673910844862546426947467793213200039588183136031566546258176834088962679501693389387350799281113061826468008656449096209824449335474851040129763725965142043837853140036286035026044646293495143392448543657295214637314549913805528302852449427434245898371558343560287845706487789038917843957516945885700728627816261787002664631113793988234855851521526518720596073385857079106128340335946746454012357824536613119301760829081006558539469232905510792391179033475333969759748820602101098014863305312247470089494787936009738535296098871646307673812571291731955573303949846112948661782858022951956882222008800136585403361522855578219916628008729250650589462464380080785246292162433191524809894704157979933800967084184144231275601551377359895215388104206602463244501883329492107743072954977953447625907944819414131882779478498074032520450109887875783838049295252931361063076941206415035407411058715115124571872085306000448481256648155879303892703233904661904231566288529524054663947329936375063370992514534016062058825677332170225295216412161328690476342283688290875512725048314753320888785869867946568678348143048646336270375385749053362241754653601865902933677932387261326359839537649631829002691059871343190083075112565892554569136464585245590470019028718548889835714470018503733226462450985490743186359841701933598904859877699530972418541653268973591450781694192181120702909876707976593926328978452470111403504798228703175527482934748085595913479214404921786820620805065783405600319856795578296633557140642940558373407088665364097663411858970905528059200972806872160175686852065718321742068435463188096860782707668284373130499906529872744249206415322365540384346773686706679037490400022271330260020542008367045811188588649455629248511348327798761390972918382188778943475926513210140773317482845868532612369498181624367743946059192265645831315423394809944176202886474322033322432411896986631203094209608978447186805090125790603209424929590586704461399256882882488755313032838072551538588684730423474382649964305151558391716177455491638791250827913388437514434713086774291324867584076626696028376554312976148671048714609374005914988584744621233345074971398215405519364257133183498686142246831990784820435885154825431509901363941380968399723593490605688482021830922047258011534751137418449380411077300812919980392822749126084837096397420762962422899289440796864886520905739176075106848898660195320335640041501514846560977494583061471603864689401291133842712502617351345211645853437585026665642425048816234486679822048515416887214516881481888373117458900229992594589691719484794281875314318439320328899619038358634047010143811278982033182303305568913645065175498365660414395364966768974953018497903680049406178815633816952856847705384415301254061848421246945201515703773992658820112418349120896889213822315053981325159366172421963869325165210498478511114563716497734809607275260374196449662604748503480867548618907567434924128780131870779900459916683582379185544802077809133770010928498210453074430191871669927942348273081651297226477969258332196042712548701832854480457961170166853028931670915881933056918401684879878643179903614249759051663742200126379851284252907690130086409161481860245868497710413377479213186358522718122477387089498967333306765600789256036760637944263122858120725538230734485388447015974139927158997247686938868017039236115948925320093940238497920877387317382842109364339626000598372919570669192673498529305343509275839041233106585085824446015858946830725941879172926679991028545434994333139338451696418498193419025915564678824464798670237092331290545460217891868859675361296892787348618884459459194344594400166268386606537564504637612302948821969182434462442585889042385679647645045211912305762016448003030673693028245927110836655054353453231998784762253388970420731155742136850727802992634883088572090771914195735503341082656805929121616249105764959573484669963181234086256945021161466718432440374014593591858833513738543462433117800428147142993692991088747196286914415963308697849889265436796941824979062086044589894419583792261823714234077086637719190919239544804227088864859571017584158470430170934788272347091294176005906137658442290474227536705421474879446680531339948369048709342577655436338798902488953775241180432550573204960818238154558603751245061526122488000914216437917903675464878821453398438291488147525734400881516126570649651086965517037555655237521667643354881100118751308481250677154880695818036007434215862732685626919284307761458922536783660984383403661447690716250889760317385953140991436908717582948656055505352316612293409475130115633247093083160828641444673218503933989328281346148550638218893900284944853278625699554463579058664692172210259147473544359287780479989587636839972769326719906950078763465538413343931374758083046420882238117823897334737867367046710160026007847277420683519947117188902690788298481257854329994308417378135474059977638942018635483075655857143377903551245253794202922287541523911749856088805172984443958475069643536299378246297216219176059189525232589913095173718715112192146414591365911902007324043742976061206828925018691146582378798181164453307664897333603107260328134974231245700070680360425583794743581721979348813657555728168058535480097721222477338909358111072435642407494912377855728974989554823992095612446053490648969507786083501876910958789299720050745172297963976473228365779399827490196166489136866980993592107387805168231624162297848021787101556647742269759887992618434685131947895864256384560036186103653279344960642346777683009091218685471907389205103459281862919123838049799479651866304779301399221024804783548590140096827305496109934374935909783139255411651889452770817833280774443126779902232446376153313611912850612959531290113457592615644290398424341763758461674523555133921777557534336972689031844975302046213539067605503125410787633825176991348050264593787743781904286861107863908015244047397226339888701302140372139458013736752461265981527463043622264043729992361724835526302662415093091163837946905055660963740559337585001564940141102427856328389373608498013148916369304426245095009186579636888782852037929555091945145397123248674263208014642706114056162272797695967813957818313234021344847046661384364460993795102647905061707971519513887638355382911543141410742013951018425833912843982851248756173174838441240341946689071726925661665194996616801509256595382736618310220134749277025006104280909017803161729605585930165287816817144981346944545471258658914575034090115271100805376960313985854451567479272004083520512402845590925943965915679205410911212100959995100095570645140840044292324882594520904136509874342002114167923655541660585890495335977833003396015081906344321769764938599495982804180782724520446684352467911475539971926902410353720193755075465240256724041236434568476310168236781638812513927576064154539166839447512343909597739036431640767351382591998574146556446845840214430250446133070566403625738212667015721422672232400140873040843028304185603044479608741451540943972148152370627318206857166856845188088694326830063523392095617099368175390502110148295050412124436119498620638878711200875804018390483123782970305975757176846875795463192440476154674410418223035633648751144245915787594259446301979040250863917756955300903332952585692228102692556459901731355893125519457636868707421721103008972571227548848804054360620654697714330468339607310045646990152766831589066220597068422970778599824946554221381597639917072150554753918342622602086558670261158531374687545471879102910472864560372380151274613354670720335371310177093535251384689740461627968870456638688546572544889519793759013857404042349842117229537418548775808364237366017242797190157265740611213454435774434446927835566428961522085220266688356572083033995398552876813143201617653283996493261132517584933783172991753329087064602817834757612665373532096830590184196861106559907641247628069814596290469969595950719667553492474472277185693988143799145033002206050626812927358029878723953068811224321099967143596998397312653202189037334624920445285238671631562015389812146647911858482074046440271380645720401750194347703761905381932062034113545837636836175045148535006558304632550565696449006114645089720310143734310994160214961356028417885599474035585492954757961969705183371975318351227159433526618030666295851359042067445364315822300241574452616618793330297866319261322005500689667940284680647257170937748271378227540613207557556291126617459197033883072491123655810742618945450870575816353478716201470460107030000275680059292069300603749169250920592974208216006600325539880830902339573296867906308769148226087027712048844790192749349561980780472261348959313683855760649658241297789162690724556216686432831321089408357699117720163013030085954252284867797001540149888011585228295346708486598704147906972555605701136631001783800929470093152859787654849605234072975776370823838907239729098253333343362434694995198441965029176547242323469163223221433128121126515653631705656742752573733637101302131378672540562249014415926171051812087779981050620340638732742070518471610582224605773181280738341779343647235013191401963481374378149701043064148686740525915458139338711888465194169074496452298895881162583805554816252124473642428475370800933357059187611477737217921442510395619702596161756352893807916148207078999903694701707293119905115155681009659565557542321443319746142415106743955672018139977814565825813704153760899759031872733702187974349925988750859011498180508475531681799552705005114106302536850186551659451991357335508158519433431212478552216403287786112599225157242643129094297170305766853392517259540394376487869867056330388634268072357325943048422478519710684921115214295195779107304493103207756161690232097793179590992056108873753004061960136659299323942364474909156879812738551418026598249218575979211617168833047353575933538963856244457362792454534913390015774265566416095365827593034602370788203108234516019004070679500774802501579634389764371167016024454389773732762005366573528756997735709452225873261653942395508223093189826296777921369504001341970137156080432311495223957353970154029638814788607996471130945388521054360311327578331367899928809272653525752194451906469812942448079991158843290800916948411763377301738524365774962444649561841974954475182690012740975792770703193231481681341817350163466558603286393487199778913055975171295174519684330118900878970734393482636377637245580196903357011800486070070287318348818387509018768178633587694912444854847667784652864440890364244635911842783661422471155845909477811148754713042585539393573539830363757727140509452329559731571758539008675476836798486544628945391218828562043176232316120414862888510599366673367851545021973103067368468361726733776118551082437798726918635311567321963038276422358870847205645861226068988657060869644172309909646314940356366046779945707270065510880672719417561357914460835281537186491018144060504106826265207908531704543422559406138611950521238130190646307805900405103894560733463692227576886368660015253197720513362795327802152868365956734284137308081156500947038165779393153292917491190020856686362301823824726667310308819377507938674267455438167463761033371143646368419740049978375761118656658690963438431692692796765783565640708639898314047210319325727710144182954469534741251975655352385487379110912240453481802814697591564850969177580761803763742006575044425392567303502290361262136952836337794753910088164791142250499912118959199359425324423967621363790650979408841486739571173420903414477626828542167243777559052933250864542365978966923283979756704654373403508762009467289430956051288493623228203553671766214723811363792035750712750699334601849918941253274376951881858436751687743211936993771330512460955581750262113594133222389746821873926670698369632818147151627550797385201320823661170745229977222327127818749147557048265467579661815348445131036018902549748153805390807907527250575436363628873006857538175448731533477941855388825225588114622595438256724893498595029782662164848411015924528130616078453358695483816514675031616513532941872166466262184597271737738695094121389480330046831056366027061009720596058746555617797975759582201370645053081563606776258757296811379030944747189781903169962439219295580274646243628960077736960809231263504860514481892726126668593048526002679553809420147972426155620019119223443172622216263723224107775541707492219752994485581343426434548835953402207813058935127925763094529142245013336203585050262176496761601942538293413851428699781446240921964607457049414934884591160020053433799637667304114081712367452431486274442635696667899161124771263395580290674552576851703979008601714741459071255921896332529183244071730655304129175814931108791827241606604534017095179560669243680578490609757067781796685432602210503094889385914890843401200110381115111344416926123350483013777386040041562865649987662412460191362890210061641504308061176284804816138696379153022063462915727708478351979026307183428283026635880878206467219949627227958975939565494745438165901238180791364461651837072874464660527894625408860060385852770398861574418177311125686883059857628372759197303982516451103986233825586188487759737020829195631548894638788046887572598192345996644735778832038845828906148904146569840277005102589433172855570486349189946120382435921301855194250859195349140398632956828100504440312608406390181927090790947204790104650690077784967198791400567018582129811518232645280734549087305674374992304722151343283478047528817042709768406071022342945381544636534605038551637493972658741041537506143929159588823089266822443166235702031711808259258704620059368510213397005462007443801607939850023103405482855374655846460945611881288230217116691025381747348877637557380804442203796816290358312437168052856810722452391327744149890231009069579792357972272070635352897882341242046477791597656839256827684082933356560070177431971624232021686333480609260162063764046176529537793612360760718111156800464263048137162700910767248459280913615525420558850384995442113331173313678735346150258391789120954972003859499457660899682615670627846857614439491913219498963840741756721567781297726750627810389143346671436229057550834680942841778340053689761311193439999303464502252618767579395412108058094774914060729124650519532699270415977526261219313514921023653812801379185851346573898479825009435335410240265755630209006902354573033385509784864183146898749035901885889279556185819538399743631106022500194241525859887215437499554416597316770227442450799561917996018233168499848955453045128924128887123069137225002314122045412753932822235527739461126427898039790757782220681742964006948490539447953819546060171930116313473201999551576862363048334907493440554580662142815631184547819831717641617428603079716503543983857629001013328267506352064106266760785164495720857947451532898766712085757264453802379646627134160005471878519473204014362666445468199978147418498083005326583908674499753647859762820225809263136935131037286713287786799559011328602210860884813644069518903524126776195023104880894732751455812989076086865305504369583274081367149298884486689433868324097381389350613516355146092650984488101236091202714077448001648077787729607415371326136241617303789384392456683361811657162524762430233620669515055039215316233581077402452248519386912656407569992829185638101538618179881519820248341324486274644518508920721175169198539685555161561848276899861000954425360259605486101218476311878844015324672789294785311570003263995047585884168442394087371654118754326510443965891721755003201446894331968043339830024902174541456151654790739504178051361785813193455617060689035447855067799756324114962909904408184982893961568104736413942969654871483984353259618603750051982211726364882080764290472706433000853162651538968540781298808202469528187926001233505309136817294551885030994581150623590071749569718866261660179281001816599565904257892993279349550886742353745049429657256716833356243570667152818175973115059572648985172377756027332425551052602098344124407515746105696977144433790669128891745604709801847783479243719505200103954174729704854592009924546580870351942539456088880486996965778019470940210651115522763920165885871781684649096802966492076158760308683590050558429310831925805040119437906492251617732841156372510963827534927890938913833491671684185828733787768726645281699914530151731282702290494740147641261319466466205550165405864483763573347279800581911077837027637516440390737445166233452558323943774317669334972623575126844901398342609707760183660944961555088969513358440491186260153463668267973120155811769534554796956178029520937586998785302457995039682189172173421458646819853689996197676606426041960037341398940331346181197016526978432777268797905043247879580719902622862039585613071619107207929647940849151052509484257155006889736415662990854700914012407553636600476731615229201158699640101092842053051719394048798544862575614636289194402561083584519825709801640010957448801220168203235974843874972926710436722927207056674778014963393221264658939027619416733946409751166513469514704041566098179031150429437577696858834379193691397677158082683345350634212164648421745514463118719756093463432890693632664951246175744817995249975756898075519227276089929815693556164613198630107835645682633185205852253892880515416677233334131639598147250153661833726860085503745301292665049953883332810688273773621624447041103826281274224071837848132345797153513253760060826707581130467295384862245550484331478397513371197987927263416963040090370594526006894531095310714563576764900823850340169155186318924636611915121753561255605541705941911850939537437204699820083328378793122299883034486677685189890639077076884598994583289084062851984390782033175851865114726383030950529189958576296310231248846456776405501158139209609306889961659465241780211829022103648861373894185535632216509218886612101201689285588078849196643762775843405977584878473073342789012644780098002282054614217024199749212421958250408104195404293520532242267527442081460606057804510201868069777074570701807946120193154010905437025758951378382803303085733250293325082394838916500381588032123102402344397540919551983419216174990936817670393511350154776053006495239585847652177101328038555782084220175023590306868760883160052384413237960824450265362014436630995255407968077817736746333262078887720415707584879322341946383777691993557275874315288452743369614791675034269548714299199850218956017703753806330906585973472832529440237813934508225367899456503539824956289985873357141508532834627866518110374690581444147339964919779795108989121202689611408679623884201856524564393627370002092788278466932252026585340762612268240321445335331312610617886254910806085757762913917356165702889153972681206500253735523833981852645851281976588575078924459350887087441857350256047390551140020073386334211331777635756139252998957483018274058730267937800798434148679277535676623470552715414406286400303432548694645992355826912661477784104730027664945030448978638297396505252837159427010903353677380771037564028892570762664507611146819990265640708940514711673483041063743163004191239954725702633391410755360537571329783088524029504253394312544340327115136965239910122989167844545121152583253337135621839241476887899241100019755704248004624760642032138004844322697217715094842154470867391504489346424152663677106438943761253229024050500312042200045356969381498253768404428588386815614915554187188019473336018760839864114976451860875034513500014350173714186739245034125221358949160593632977170872636385149874853549969959029550725847151504604874420363775964432099485714556120970639329527502973966888203511551736882884669149952696735707257179558245054784355548441127735091048929363642053735511082821499440588342041828373200497496933279664709610746737417620712007711540888781725330318632494191532102954097329967143824162038750381690053817237027304822570886025114490051135865504635046477977908660836249244770220006717164101618243947976182603978350877925695604254328099188486928764980031513480144150257342516621767197249570562809422085963436494926112112297641996375762635936311667626715356430076762400937887199526166529133148940057620418670581792158243192915181766001136107368827129416813368975806688952089394173394494028112996681588842139368919453986464458295941178438664325302882193765333236066726553578260210092321808132921278222413727802708597614126335495384754406114662444105716225367918622560656625994860159477257842620006953468468855903694795565183822956691803273556893996662714595955826511738985196881138987988733836302639445660631409139705615268457196927975706001755216586237785571416696546504305480546493255975468405147812416593145701395192310816287943299746245119244794178704668381377766227854329261317088086611299143288173466010718301677266070608511486218754582998699331012861175879245476113727426450408117773611808159136049855622538126895870955663651024249103552283376037182943333834421485249831811497002896783301582315180270218891949878319516417914955200461759319090846198510510920337212178728875689739572983933854019234574980325798800529032545794171345625730654925592469245413382955766936160559827423046296922524065111008295585288990855137551642096434162946298042374053802935588282147473426999284272208204734517099558999779678587962160515906617225155380994034536056772805022566878411616481294108823430708731918918010332077738816296073648611443475056160312987792789427171680510959545810170218517087573511056452460586229837090178196737760073073403949225650832198364900760676604488973839068107969413863862883677725882527169799891316662694218122941286917075904896699123489147331247824259459359271313316595138518598964263644657711407445519286085337689388848141725685199717775535645885175764892475517773682701826092580047198679502022834929775896377858376439354793722492991662453258428410541579969894404635579314314715432604916449930157906271516030564266939264897085314858831354192409967073929793855674520665244702588327608164403083094226047330234545004994173309061432607612667335240296363607954445543511856185305677921434344704222140184102863721383934342811619605538512009342158335265524262217323338113173848523861560483862912709723328427162976196408119196704440459644845391613159065400935381795416043527140548006310494827615719964486382166945889157602465832311910314239728032762577089492359063049269763213997788718513081381445280420056209686678963394419087865112496463355196637536940874002703433580957062467860566221312165387900768418870480703568143144851960360775074748857387270817966079332475058469276187318087856679652890771028177533830946787539469192613124376322583350770856036399518874748882124850653451299380804213356305690644422456169609063787195979072830360182167354691066736806221532849839578860150018384812702465694854984015873610893097648356747431414064220043984487445943196474228509047135129476889792383617028116019875824589300401803100253759756586337813366158214000140674665859665022631580873806933842705558059803394684732403117692937702482678462408752366107475064760429250927615842241870570626250621333501331587268758395893171389438100171771119146645440475412290907561107818807773413126573353639903881430073765827933893020418425799170386932570773628635798826477655272456249621874132039846945162009234632516558423723362705405259512312766691618700468573292380413649620579463324527166045787030685612975396171197335830685586924731250703758648295976848836545270868496772518600416520903000244772593945335346566931403321624027722751605120633270656797696726434352251902968543537076217526636692531985083667214194254675239076347995510336086089261907077200806831314531148646772663455648514370964723933918870068266682123008615954782575649680370793168529452152241413664266258183177421327858344294435573509983772718116538554367689297417552977879596292486230778649386258369275082934234969173180162563975757581832645163147387612983696858092954945556514044163452031390614758357135832135992896033014746156325189537871686114041109464865957695479244810223647507232046141248951894883809145712540701849039483629373783565534542332493811442253579419621515951154912488614137403142804680139309975431439862349602538132676876745131471201234061076904866086227601844152232813360042713184218623708155430881294035420210489669617139285225637252561145086516293318335936574196074849819281208111246562898337386087724228462449301229023656458130953849120641972954264296831878060889057553480288457629694279429275527479979480978873447783537522432562910328133147571592528748641145907665604545727541263481565054403575689983297954801300031458766641084144190177666648490437848765445452569795738685419883960100294288680545275250992160155854212591964281684344661701335083663460741426653929438338142544784418323914906737867963216825756726589633848071610841973770243857273981980143679583107822195835625776156486092261780616074626654462953758662264978142191799851347813302752404444094869139115331277727477863348047868000177949837168327518941138586745527387831166665687758619557795356509647133829058173359866671918926035308060941659416491483608478562041015379078302976512156910800825852832594420685984343162571944319053627760694068959238134877871688755261481490331676819369257952096373138120014015986983151792039873789190295278626584078270946421217781873865910237815805483019004154177826727431897966428545719030987438646524359689953208805019220838128052653611744930614373763971370269192674540257473820736538577084693260891725009121954969746834140421896525234547397282691477948940412539974136361702661826789151708136981024725444516947631135056940055416089154218810210942231217956553682113888551752734044649028184684332570746155362105098585442766918688119899029905144282026471732866346754840309099800379837993755335728052464148118268904068371024853899220404071587116737340381340650008061509378014065336951857580387896907645234546719938872257285550659017811369908305581563261286710082008919546651700012014590261039033185541294221122098615365378170500625975553689217115682008141670763100714925973848222618371940299246777094018600614947788623686175891137591738931646515638658033997211968730938938308967665744651406519020539360578229273983750029702593153152963734390090294290591847169303779601514355156995046618501195905446805731361340360140965928793084977235440512102374194098797392873135468855101083929108200393987825155582626162357124058489937289907797237452557935623959779579764865310761240156527474421114754249636074644534824071069668613055210089666441774441284461249126866934830377398631572632280737989281525214498929398221152835762370722462231167853549309552069991153067949893869534151878760540529490065862399076773746107256908865563226123517880379711721013951784182342429431808001228502251132763856526843755717806945417657591669875037946087057089791076102568501148914658996214934073755824374360886247424257459038684987678736478583282168580886192957479453962689669168392353409644122531280107388386209457887548111988847294311916088133142770133877500483507740284056275255342473289209138205038143243407933616410919428984644184585612294845529847370580103502342041563136484094109454482534190169718659385989121777677160098126728666178792200945037198367377550123884748296957624914883205357350278176407753657297381058154032027410628980292266184204049774110030007251023632579295912099575370607275400108799274355939562823770125131457445813170134277101222628140566526859185033831835757402711749793973580420225237399540845390471022592645128414390442116054420275406542372717680715434931528049306790621005792316218794857511384331156961902238895966216721731220299469622208310542874426079994852917905116401166397252268880268531056703420653680716985278609657807794365776662335195717315242084292284626046453835697025407244855714033725218182688402559825317040227756089811293994370498931984754844708281300593680570155249005365372160002399727168965537062145115739997894253746840148071589592791071032854717144138619935154884479572442363502152650664255090286713125329180418309187653747262089411616017063266183529846090860061114456361975257423403081876689887900569162181865484638900824413157095118525482839430941043729576559769557035605931479101174698133446946263039979210945371730689595636753927834273850959171645628635785843303892290084111928175979969884225156797674650833945369044378683589868943376393334431398708589664939593830343859263618102478112319342794082358875609977110506652870403099644282793589860892377825443822749484746280289740305792757619692841247470378105646099809803884798565743390610077415191789786658325134464772474384583980649618425391421253255375209654684764237601298624088395979197179349732150003326912693016801553332766326284273172962998203883474161633149278871754952136053315133927115850519050358394939542448010487606741562862870614660005801583692133224622832972026757920072775295376502387014700388556057711205063718743813835845765558496476941153347635204318898138719119151302845873229926904082681517498634640922280564585797097268011803565240090305343377289672850625122631737275694248437637812145204783740504712833962361180161113766401306528099984231354714031682860634830074055528352161353143981848310688929290086030442327870836765348382844633499170649591175615164680533075514709289664955478185021814112403481050588972301427624614758583059141381432214443724381023007998986250703130065596633620802373484878464753042364009058007735258899391261762869459751283759146593639546660323544366470319529599959935805303162186019320330424007604151399573233553637138475645292950716967405570988547150610234312792245226929469633325233214482046439342662798535281761724338138659664898765670229244716416642068577557739988211930410214493321852480374246109062532392848091463803209031611039400092117763786302554210072245546203100747283942740793209393743671211401527322803561231540266928739377768867061085074112047853355431229711750081773475120861459833127309845377192907080840697262421458744833880336636037506715141980409576860607253826342243685681615938294351630667457213193762380252627374435403122611455141103194139217879648432901033709362153485892855447647246564112476936998110067671458028942393829863623971543287763917397199336849377829161470817156612667507146818942634508416333670745772392959855146689614450025548677879112951151742761705933916888382873432195204287534196263321893444032139665501829463503819149268322627426134999077262860475712294039511182133631569710651893153758830412135263204088493817717385727621682314443388424383080295107232819382138020345890654297936269483456864573886499331787263601701592336580056315126713065608768784305511730985236582136001119018277852929674448330460095422875003397851042103592762551890767476067147840303131777341943269028641001959028446983934126728303064841393813472171571738273131731203057514470253814324863864535828744046099388489587565572442919660679905351901375020173612028655755960134177746736678939462152902737612668779137971054101194196468591230103532927367657172496638141761132555865051719613192721241116495448285796318667181667110110204047262242299839764642917758271093479421577785905115162470121249085891008121874966781000564736574618267073147651414006825214335251960634386965164561431950259524197992554621607400731665767591622596225600946710377677343940907251655838032932823948812034695096564599829375031399471050274201340240730701746450579443136679097506615007441211788792477512756968262318986510114550464939681363169430739024667087387337371380294359602159850183550497608399653327313150400770822543617279256782157722305537753212376420724218424325718346126840644841276354953991141345553606357368549682191741019909416834298926963209928495748833189452924327951989234832072364676770236966284422826552283301032017612194762987754325990342816627298320013131622766281375158499205859520383709988380911907116445776313526876504626793332730641863285668764889036026234363733558882054784582446401365922416620822595695815247534143657937175880602322111047109508221198899379503254397978962830381215516961552039849104630927040201525925580339075806105374908909566178539955015006834545959750012420740202110338985611538288648966086737198427169367265142272884772353804041814990472314178997308697472973402936329736153409515429272639714517512086901031976358609810179613438475493600064251395108326293538725902528754057693354045125082419735767793567527206493413479910012352799456243554299636189573497624150241987018589609324714827825087581648700286063913134174179339902700478020070158716898314024635072391948651415451077314988674444684478909833456563169020004726026012945926261896934424914227465755784114763146851205967335033393234494300206074334298606843288114932206348972753064649044863245687460618398393357547658247757010404403352736201565736303934997600580218389440594302058187507632930204863941882056571892172545035438406430210541800779471980375831859670641278139462329500868874775126815612666147971474944516917340761172048216668915119164898557211273450001038467923754045986088224507223025315280199698767405196463834428579520916800902288055003206764650196753333627548459452763190802701161676631495780059233741604034956750748727583627087252969417902070681454635621888078675786435001330322493108445175463867599979980469473796965025311259359774410607716800618568267557323086029526840946746851029942837439441762118109987638017955717680279502502951440716454326326870712377276283893003499684849537245131244040526307579331590866095711916990421103686471861292312429552936998329308547123971694526243507416547088927841838178938708431234995330204338833393234537193165312538822844207982954040886591746728151973967330157261489621206252392261471570173876453622234571226207226192100744282029247334141509519469586088495300885042005022836984882514066637865772382587707536140601432547638745998436239132068813334312267102992807124299763652269454358736755750754590249074602586239943167652453194473706674833316689882048837387736368489305187543146523968191257397666303258470632213466561949701927904057745059867386603175842278425866790514832005337668107305603070426121222396243368924123853628758435463881559207643212381323269005176387266138133047435189808475100655031658201485028868602733548833673563502939830343071930703056483179915472281213096214699869211391506476586789598646848458604391630884149929139033897866329887488075037707975152120117864139226665537897909483151719843926100284229264262632538871037889929816422789331263417646357694171491518860984937268121108915391925571825401400890891536550197470644152041847750412065052624985761881368693775606124876658456627889130601855097104874754337893808564404204311573520359954486947760256558599122769762805228074185261236429935509377065030264871389320307646097457464481131394518614384624928258220411324080764598520986908329414165252724570605205083582204557447379157826397816396939343955056081904421115355767804124698710464777752200203606344526768625922346454162447653507598254539730129816819750059903777476611714770153822364435037013208870268599546609867608114766433283766173408099327087999199484069889732224921667003974323587476074825077114792909945792591926326917634415934607512098129628790411994333127380801290031074148745988899094180781221187857900509081403811825097477251047664894516163027165832024838776743930755199872251778789279081045512466026985397223248199462882634450667102253005249182634301948717276035431222237680768573440242590890731166133960490810221201955154734832772787570250814528620525248487395580932483645960490284237612672921560330456229670178969659108550984501519346595714403096387722539521928353887678432846941576010784808406970339687570345353359897544210225255032107195818705263000790874495691268925959056940143859030441671572891387071456549148251656831747344383646382222436042187065848947839268850204017752026914624994815306235768373852397173411675574348937721591958654425634278803514355421240982729392872103500010018744061774169328233852204684901267751774399600045281279200534754882031844817515631957185013603965740078553016360138260167489947873765335990870503048396609558082416139562270668398540673061994935759103656314749026160361110785333585006274878078199712664633108879861733312905779722465860071755236179842382909934723474419748752136111057270200670479247222799670062173485056588606139506597609202966762115752287087066705445327829186469252433690307676817205069577639171928248806650185388946807755946904364597083835424357175039643859297800498222021550137364903329089245230234336503450539758330388569390076123161781823791673587393114948828458740348868116670319392792984324560457482302940985488799462401083979276044359457094116574103946767800906616797496466394610996521052053695214732927314732246161526482393706106196934802253593344518094867129545714132691659470110064701787483071647677648617691239024223974776792715209857939886290996749960451899818782720799684786338262968410582992096572051381308482653817870758689090336747615002387476386026456801928581108701857821585213144446649470678155854609433778530328347789548725732000139711886423932359685057112774594572552870456475796335013847030127734420058087784423106597282683529654657180724163597443865618187917258893496612170288249477441045424715486550452078800032724860013156346581744520277488406485318525420421229284105306825248144406092153970950805048947224069049522764444380197307494092503350673014868325904977836147766121032340556223056099671982037209766712257706791221843086957599511578375583613504373823620353230812939772647039741023865664622306495131017209374796066831036280788287516356930632654203414005364663699498927885327742266260278175718914381134717922464989955312502776890868923922684499619605801699231768804955759846605495116165137762823839205474414822814131709667958013095629428409994646662622510007140208796796488544844832083298673651580434884133231797464991340408234455725837280095265968002150696590128346483513794041312153212749193613901418066581108686786648701112849107658785679596544992820375797263430624206784018210318164461374072829963283033427817237763623223125479405180163800555671365751424087109312435078795604403860937875880457576129774649987975240679580615127039233287238677515731563198618330264691746256708360053724714769542558413317171271732514368028762159429800271092596712130271780083506579305269028334427483982057202562658533114798362198129707947352043894832552691534982116266054625480620015746079576508244094376051140883276765312554252043107709443909455770257506247542004015801046088728055963485539714227890893739841343894795583986639581580214567947014658026772712514090182587983712274297560979308991073566800706063707860899826212708601199622342368206571896622371099273628876099120222751200033895438967745515843096296900212551249004410960943444796839285141269457400942209877971600801720963872693753910789400846732248328917648930823144344643051622626867378075320186586438432429487495561705027801192204367425192388358863662144074955800742797073340910582634989842900015977802137874176018731308560951168858591157428584735742207618419408154755827343685860672391049574476672339300029213986746308858086789820267602532534033155161648883816296610524580412777923826358715395142699140711303455484982887614455052116118925899331951011941038895173726181607356011409593331773812444101780047964093030052729929283200228952189668236224687776274506310197003212552906441084096081901533803947737852873643063687225170941664560408682739158364176293554033938824334491073897982645631752312757885037696832177938000198106602722025013302066259252532974505835220921774837863446107216185446231699127517499221009488726613318311942931321154301016816723996946936239007828015171854379076936585360788064338931064169571275911539595474109203710533943856110068653657976736282434982328126655005146249227103748080685320155224932450169965782078133853254924989320238912388280251101829564037556905405501557437677877306928211043489229492519880526362292389458025036128804144154851080240908748290235226546216366250731936476332849258189290735591027711529395825496143112717498711848734526852967186682469444491872543164068174671605740900002481649774628103446352251121718150534153138952094906865225016846061533767521527469252710156349749926466165688511801025847947351951730501819880910737634729374847232720629637281812594759770536293063134867220724352644479024126837169435655710660118236332507204995112253275093480039356801617685786253984242164531146651477626201960069655098949942564236954333998168141601855111600504841935993400591924099680568061504025005786740144663274006006438898943299726455318630224149786716641594966079864860469025066542247292471313158147103746944572311320849850672271309534721051531835815391905432325817175071420237553897959931097537337229665524842750388721369575406130237586686425814793117647292839975337818215178312578808744227361649366900103900866918126890416935227779629724657337835203120022312621830005511765558314107290741831304303518783871803759734104063699956788172026854735366255245190208604757987635124187025711331322351602634555372856693692505167314717697310712318710620301657722119190611491113481056528338192998521815276182162874347191918047662053419776509615713291973338499767455727760540102292749818531401959111379950758355528619033861677272824947087805206196233413554121856112831826252586078521913433548328375897400416901671833448958845278153972693161665424347246875164026713780245115340502372974215508310823080441087721421201073430881389717731409288847132639158359789631207972251390966023999128056282173596286796228935614588027318140145312347044153054121046125376295300071116247783069978906139004688745200646606690002472862039885557910495499350531960588226507931733754259073582607093395556472907749129070616217241958207168655739170718754321496172224176136590078501288322291623301393139781972313921924522091918903629375484623828831213193516468070789298650395885689179476646143555662294229189021351493134490141914404951521051542772657967623302285797712796542802969567954259491441818143663764768452981096917428710062466333477164465590566942754584185732284595497268466537682741561778245517428290871387248552285736106647091210958220306391155866196724763608129669976857313197800354409354919727649074893874488740794659595281988878010084550399509650905340483219290221736547284637693898494245635994310220275291163767444806791417590911240912839180699090243991618465187291412593607821811660142643814689374519218119398004990849198087987371480289924599698680419728756978166004702674423198862714762350890889924730141502475315233802160190632653656583701854327941448439915756509411084876181172619072013813203414504247430409770253597869316791454337779269694900916091502035884692183075964888241650580305669208093921994396725447496915045042288470274953548114879332479328006227666348915836388035366775993707473671431957034283199944382310873263051739962471657157217002414321174037470546126490762315725063412231895085411991655053431471978330874482994628461533379833926631375601425409359390436783260668477410787646283848463641709545512227556611036488117360715154666931662416313440105567059652968946517107455049782141533407633212357971427729269897765753200657109687073130295374350422001431126424085589085077705522092528512929633947495722353404361794122012203828982817659088622722238443043720598551168453087735182106162178752979089284969892674351591255411588837891471295645077807432939097099925087448244445582990574830998953847835448334710301310640010376817910462836751377160904625844132393411752911358315312510206972423465202802639128490296995005491292514578697313313684956859191006713076997835516414522424588852162963645411111303214536303194398973800377700918925497498468215766783061937393657053301754867463304191952159743022022311131611690429823720215759429777841329877981646120999985477782584382409706105264527764563801460013556847623121454960612096239645275469642676255341372330069609530841693910703842460240455796954298603120112660398672027957590192592346503917426594679421262528997084600906227594665295654381522583229759784546308259535014408920336548667438543423823724104094754064393611734849732439314472352729985551468862028871848313490264580974149786322887989432380424449897586472303344495917939088798377174957978422252986355209816393971937577585469288739064616898170699036421526221622782358929431250170659256606413007348190148808394480425980946911277946497261581535941510875839053241357797588361251095674059188352021328813876271370303896094764437859037812249605139489394178296380191742090926257802367220706806044767809199122420203801329528096396253832799059945272052273668302504241360599651499186138212303588054477204125737126107336299584831106970915898702626358529407710544126184788559730098252502219507429402852873648500202447083821694633363616354604843942307862799533910751955018632908829578806260697675383886444300569054849405055153947667429485038095426177438961785329149820639141214741971895979178930727922214129045293399449952693373109297683447225103617573026557694845244753846308428467876790005001790969702514828938221312023309163756415947109243353165515107135199242648961166938162366661263654470162184551227629099676610487321031721420054151531677642692515163966873012858604710459497318276514219307308582334077277476751167641710262105588805979975459997575287777471398998266134541171478027951952052393519830121629740384894558382268692552035709965445315957291115209114220469468305101643290664389374628208048827610587557294237602616607447043249623115184001211935815483286269240251882505434623878262376844005318035151887869218143445662668717370934473398552933046237742267590679127728128214962080606628240510126107426661950614180849269919050255226330511244951005481794000879047484345436843981360193786355775762652068290278015443539085770190373047260081985408100263942218691326053301432558172264465551479922595354267415216837921277174029352142066009624905963797915845018630018424103217859476739995555803614966958289719330783759495970390486783686714931276082069365068397362540169074081705592232660320780322365900723825863064391155643304758516598845780039142769399977799596209294147953717922784259624447468670052097081616943440377096729551510722971245673040158002088563016863103668584065480814873042456123793298792680335097129340336002160950938272538262676055278460853387359659093190539596340302440338477994067039462134280977674059901616582297734066128302613603484010654343625285057715140365627614592309026616034685384259874873673958228574303738260284778002174322691122047386241298370487394622494620260492058792126741730350850132080659604240255379646137695132433850213716082468708754347820753694924115823590593224957885396345992368302214955388672260662370956069546049170046586399592739267871539713328359270509249800595492474164113914167697007654183078889854372818904838358225539666072614914112432991418466572634792070461804792137084590061952638655345022184823178232189316262195335357268240312479892086204266819143506849004033439143716079754815200696565727268692656661652630552981273291444720805755151979153470670712915524864223869687070617525961280650660128903058356051597084410423999527897115983640300217362402016669134516084967462056360930705707685062766041935381526296268817584530890326081641187340469614917576941737744096180151413598165244969671979847906619189712424184312423387348875048490914787820107612745696271231912478394670179661149338634529221317373152095714761788444906543916915241283218501075066715644264731921774676794502709633188319103745689338874646640389213205426719768019838726023589624954111192733523627596749597777538824168273583078625555117842443130986932874100778764259583343345793958503221561598947327320773937008558907928087521559516254181219817586042626972050697707532406900046049048045241927531689630151143769852653765898790006823610372242559022852527339030997605595684584126635014930930308456062535870080757736251013599952929869319266096065257647071650597618229255726938507493559804032390776922964117990791082583007429697699408651668529590464468112029962029923363140170187229179524416414981519545695861271474023125081694334786883297086446872336693655376557665875764168229106635541287269580361720823097908859285328430817809564324246487087565096673094585286672803523751053829813878114358339729961562202806008686774635249650187827070942092778874599805054332962521613401567639317929841147521435487107387246990327617991197104951663902413359089942047342365631693855466330681203723736247408667715199110680375363075937695597173810789348661279375459582786083710605594343085024343600973726156643846983653274308960834801177962413395515966584386254689686755641469003090589956839554060294102347325267942848397715586967696845823738577990553338103193875879341041830713865401955938864932459596628245979272959155363383198722036139051049853775984672361135699306546739736834382614790432121496891654399623313049857964587045536659551137290048613553114362476507338826664046208888574663164561630634408749243066708108181479720682165756810762730994785444365122457127344869557433284237558683117985446426896696296142518300869459451491943102754777754033740529997501937882427367204949298559914547041998089209938996079933680511017148012053119503911385472539520775933758117028487641559013568480579013565230940123714124554183427664699903139866249773349411578850118388966284360701148253046140840172619558559937305719494443815659547947481782115474358297060858134736889035101222174938718587009813816465315955439578912425616113827753578860574780582837617036775140905077628565577533308776354301104875947221176283428894484110745080430938717113941605650570962512160651948590379140047386881384758641702588586487366642982513139166358358023257799168688441135965908115804801978502986614040904440657175732740692140503927786403290898422441009452205211968029776592921323880242344695389687666032849805863071216630408710039343074740195689619679395803032064570902814944158378328563669548900377631514150989996643057976315936278312074922075294739695730685744768186326611332858508909049995402939145851368177433944813597260786618714288770067301277120842693433517165413156047209627605339080949124061212723850340684310416554854408910340903061889614564165308761115724739428815785639774741476743557021765868558761928437270542062630597048937803976065573029210706744768558521252004012252762631391294694454098734603879702189588961620466810238400773699116244762665106661505820682802250143110402618845466669559783131055621198567117565391084782428136917501258234285010235629021172420175072262129333907710454644637102800171255933892123870889028034037778190786293439278215088772569314026482680064844898099598282603038513159550511304188009000334052744815750135073209432770484438104098363649200283267772789113630640237249203040584287826548015576503181324803697610125307389804698433707400848257311831599267017974725720805232480349975085537428908562388224741524940520369002371243895660444942293705030453230773301489630457828800044987112159718056331787509244507865004938301802449412741917588429738771292242939907435316669102248268641873133546596223924318303139771465575792415395900998396404724568984922806854064457150396975790906149373604890486385193432985262243952753473364970645116022945850059227386379187627320119224249257824858105422536682100076722650849423784212253684713393142163963041310292638371870018118718575086546772417199970062231686637467214194544042036612670156373900969461513500213336021975737323466723158028965500752662595972392386364628088533093708654794423996211780445404331560686452920837233164969927038376801352176383529904958558789795011930673000347022644576053973105818965705617096568459924903621024346974452030845395826801467522908493241856918583131994809733044548413985331519164520954532593725190958703496222657846198752564601214750523191865066514187781512070916479049123650988712395576721140209304318642248931933555700370894451295822252425119572869717268295021709729086340012694352497719706068182173273394634151309490134850763567132714747975281094611196110900610243949368650422703219587735367145416249376120451714478747351446172464259731006551160404553934717476918817974280879471216465120446343378492327939247978953736776688141247699589664744761137792942683090284737153903607540797996815323730766708707819577992236171373754835680204909202553467689942521332034750730813275725495331501934216551927345307900886945591805555557148356406805332188765166092296676214031457237102529342369107012888649463449309122460016482126612098679351189794878479969207771052439309272994733140482942340664151863871122930112996834973500337878425296971230730673669813125801071657972771033289855171483418741639666561109341621346843391096810970988274564110315108961658493049323614354749699783766590936249006239811616196846245049096162405458004574734394081811431792415096985016985279485629387611764190238701226325692943492435103820968489297004453484286601655288469451860880779341542542828493571130006166757075654664941150190039242086546769669074439560856453868262140506919054088729060834767731721191668590432657248311597702715645291170773188003247075675024727520197132609776036343718008514738393595657704201142634062519490525113655887638123574209845143611988190199189408685034575324907867306812202987783459262092144694512952115346503841554081638383608040954794840718133802043772225387266090865384152189314385502834958551441311506956930331087612462242789122174282370353770021013597537205474562386794332567842313793059664151160667537654733106934489542203774235861075271615903424349351334360674948341978808584805761176506373445434612691859186621956313658750711108406382493087837485436514158613399449854158742082783747993271125253248319942687094615975051900753671553723846140219324445645888382036505788186427738428719852617337603785116521245809369979787708266450028065365365661605693990874677838826205549933266520874229566312082966396426042811368390382564749168546770227323894075511110780850261433147872497074505687613341700394958905968176680507970460452086275012969032707703436934894456669111925761410662498549440666820091624365728483090420551611322753948320578812900546514674201126694907349961483317716614413557605737648303400771786441610492108965163146439503874236400080241709010716410929050919777553951674858199348183799233785575342331629226352105265632492253079365041882630492673751977267768764971704322513266776814463340941873602956628006274348834857569386434208783496054458417122792751669604509564639414650780466294263486828007717952246677205118549493710925703849289877526574205011650958533297677024627598954045522554532916820105998024095185788620596024229244777167228434421390216017360812543765899297414946137366235467679145606581159219393792766853964945148732462874120352694750174023793246051797728562084220865578357155757521919787194166460032777935850143521606051235208935118826198684793732798376434249000887803017624174297023020492981707808415769468308446361396407548968890430908221553876078875535911778740785208670869412005061926717167877908704794174177358613498552314181353736816512415150004271314767257385316408291247153864590591064448147780873741583577850753828949995990353648020681565630243173286602780219667586400942134010402336785684184021715121027860970443120599080184646424656415406116976558398649812410933977152974054933438665689274037052838488594335484283002533476447002151946032328546098567790865398888802692878519913459633665627422549532349435458484615758963396060773639196050450445919452765037389149688648664210858433569638703899600077219774687224466617740794441321169699669530487238918507580799609466007401785883358863221493678781921193686163484089823351774680744422226564145913511073528084851738493873524926635072365881352267787193676132972719170444290101291377419379044064193054139536396229453407959894676488081303993910534886989023755969299130220571831276190974499434323808257183497104345274157799463004304463084878993286597572128351362680899430717741864966539763782802398244482430612838772396917534406089622706515712897462267812798142621985198909922265997363182636944185919887194643469094905216778321504784493509254185184977143163825544938200820804105813133297092026760933591044678103607213639261828142425129645461802506259472769696818746483086314500630218319557590881706508887854295578273750373173195189199170722556341996484715148726853461329654231640914148823018574332936508048937884654603741776269450372475982483361647683082947727221685651201760465896776739486994802694229724624889788402879297320235578618641704837920659784423721747401528744071241504120217647582256761467231980835577569873868996435823833359378379100546689764751979203444331453340734988797528453793318039918782358680496574607632764172024667724161868235933285000227512387930475235510926126426117386774192972245805654829581648334837870493163364048596706176936790271158756318218875061671538621651107151098298167726433603335871014863708607814553822426534731855213817809534359763056033155639056501316462482363847854079355101172840454614557500312407936205736364155610553793754727631063528710459154054233754591947952858332810448835479929753693578007107671177434636356041224375483567577088981599277799034400541289894498309892093448190574782071825324414949064637191071837448461114754656862323156792822292854048305681857692575048251344648109672904204732296617557460527788884274988767662828473578732209146105503069734526038221296115301374253214021605145165218171712076711299597195585739700200850986374786759753095137028852852089053736097816175660873087611786455516068001166203893361634071141906002511878919143002292879157335297872796944657195918414360624473292139733012293694942481426383273155253060759760178563678286574626160332029311630535061911950973985040740687132325868018975858594612304523557982224058250303174022067779593834524727460304972710658489327140016487134938446750759707929772863855108655658871469730783870269667506878590477176531663677006426473810921502999890049991728649517466802603469405858853636705682835680533721380781990094253018027542369665177620906772166728884348023076745742024155396419482113454849159890185289519079052848095408538041254628478375177428824356949704142401631459034139675995725229593036484225310537652283728969896309761234651285837220089001745799004846575463404571350938409391849870874275876218921285656558384829327003148507443746465141295517880771153857477562674858240655265262859114905084934073598703713410531124301506514919869180156599693069250540350863453837423839698612179954302649352161239717330716442533427547450106277658732729321856649610611271237968706307182501263019995171673274348576364174742991552383224857233335369453814203164720493992696697496287511014045402193718831226946997027594870160883148896824149792913836820962892555012852236332248442824617022996619712543225234910729745905367843458777479736459393103537574636388904095020644396018798122962103902502948420936720803980319950821929219064890606453783756725117652674612246441524200379745040718685243563254378979796013981557097465712784177162152832705087406519949601671848064857137424780921132302044308660747258098984781455170751824409147923402066927880796243147231078876867869539554654380449493679743199731771762250285317446301759747739628216280346501163332820633591640898264497310628409982284258893716748925387629764723649970576011406818370405107166027416796026947025341064112862434117635304091608285788024458872450523664368275748684492147360770540219792259141698825733863697161608589089955723882290613324295229803391353083715297880037427067422930219181012648531573050116554095819933208811581044814635182303001795841085487300171108902405379630635099734662108534362964468967776253809316711549639107559451369696380274195080965032601206307039058002462723412388759173065695857317877949165031811266593983024527197432063280591444180815239095433270278427420075141415472305801339974917560244938908711281676324154235013623241670204527103134147360078689361045785536208991150915566346327671523900960189676470785426451589954073751453115474363680850749854432441137127258665410803566992617980661688316559837674592056384644953185495652704373261390480666904677754207212633810080050566650262548423511471568845718676155614919944978249883829277241367935257337177537346295459809639399383679529807345338644656772312806343346304539486857668438237863824422429576891372492928019748051469317286057445572946580546794842025855539440383363924161652970807455058206885722694578352417154885789969390009581686338101775823302372780909716877526230698550369664305371686333058398331849865907197962647502077807278662233467389810384593389400726245304938852338474465491882141653531522783938897769032796615605661213463175834912121079905825724329959006448197299687583110150796231962182699119497222599436892054970709816228821313246974027699110264946418116008062705700064443119058669660909793093578336660303026443476884098547238236823855551354037424535988258995199305609192760450053192227732040802856185936799995815599286473380046696326158652767690072815526188448549888848638777957169998577099992551416038856841970163866456484939615777301480292762591756144554917546067767562574518773391270647908947169251249464603843843251380181997513311288506103970472136551845720764303892504287461784836638983706322046155109438220128149471507054787944377908594015478459031822821265456611556646246148555885237304162791596293238307621163604491075352640290479773056504537447538063268425131762260761004440425035004789590216573967949160875724708708892727553538946597097491033628634311802965952233019406087314223802892709975156919650991029223913278035954634954681286722826611017103012456475325951794514569576909039204750811927027376334930878645768810818878741235637162965015011166130448515014452203998680781259930386786471154665525735472059662746972717201614341580436260733081749501862672503181693338002587181643423313715860789658086571601443675264164857483527214532060554344726916891916412750358972447369291621539214158406978104443800125987636650837289903555338931329477109623405270577308432466214945476403096384145287384253977379710556363271873732187535755555608604142142107459501174512471536721739407166618652210360979408266916686327083150318322217613536955833602817956540053574068198522015936131219997925388250305236973795822642130352414233346359433740320510882087845066999497757670333560740551788811155454324632784758849703937951385055768567965781304525646024740388513179226264019001079262308488598131388347752779460139542247534618761057236785006560139073788483923114096415018360406355966503674170710322457601685105284492904127247843952204226139509871576295526074016971667846592116639627923990027069619209301022303102287937169601521225366385081711736779684799606051386504333769045770299296296792227138517247387831965460026882527607145810829746332730833681830892808180120763658710691891199609603668812742058610894651398104718959310143538420970782082018612020775139682554149868115052053451644981873196260990913371453495883711461353478457888510189179732244231036424503346808106209093142847391780739712720490458268561071185567167750814694996414796023524613703938043171607577909557138613678748155429042931283791176739042272592663946521269402392264699391471441778730376496323470952183747639459498948835191777243884875003672050164430899229543177933291041666594801072302453442136064610572493504873640840937584863606360504610243974313553924941853451746132026515738462089644170313602874682003846107138485084035951648172513588912674642076625432362082133705525417657715267151520555810322561188423247474259680836882380507514847616711683496151372525261729530394592333326311830578177347657227140312109566520766852973495547900564841193968620848395244102325022076848496964145122385299597267734577337876506104355061461139731715430981024911421497446753298321193716887528918259693938557371442944336790469682788198198823018162181412869215168329821466886694023373698426521174282452576000460401322287135871201948971382553213159092251553986431640224140291963583181422023217463838479406088900239433154085161335214184405974560840232318678941868970677420974882109526389481925843006768287958693275450200223731710059607667910661219531036143504512302354511163644639506038153976636187515310105859615352821685179352222757301592359548800823067725627297399332746401197580656559632299961825683394009865894339879865299172700472783214131635214436072633924104360684148851527360773509907615140220697377731706230628259872405869416041874949514098685147734393470356826563268248067373216735182229332568835714180336252036383798503459709213844678575028520288367836415961838511396083130131522610132510005084520986561453774400909414615940139012902673683512255846372249218234535731920675488927076382895708157136521875974913878637230702348548427880523555634803591242611056523077166945256959663221623365293210647900013247089200487131056859053543938544016020838717637883070230979350944068164185371012341605756785054853490607735696108916791365182055107516820440878616759020740509195320462295041628608878339317900317169974262254769378299325360076606370808580923151691122827122297321228043938559022098261152758203707815058939341804137336234738318320440842583960013822174092389411310405653586624142036090707044766340557224135716742430760548151491459646122348160416805727661775272597061217917100824140719630104556483188942915717401752650264518743539348628449835982664413435610843529443037385692023777008567323162118907593262192438619759816757016734198111741373710093112854626145367342942555512755489910673478153688797751034463735620846810028234425346580959319953039227348255610798905886956473849630140845534839953471976633140101874807209585016901133609851750819543174059744559220469900222923760088673425416433750201084519200722958132476243723692615429808945309549349727059139137954713462385424772842005303747867348473591109210196429031621374398944768810194038968916472053493517407363043502959985120960158862874614950803668079115655906205131071385931649710808928232537855212270421837641106997605050657340393104907026238306227868992143949506590347565459974934073993281155152307418067990810765529443566118793783707088944646695910627799697098171458302836540046958154599335500187084696059871253359693278121570908341439731838534520458890447113233220670077528047140227216703353306830237593527833308053425187468954298079728756664222377767265250831239403529347213923306668414050583406821595319512292770732058334873620441484806546810129859886001037082408688913001764617406448497320180346069916327443789768604812557106437743289150150992167794607178649882591166357454280392989341855725115669383233127217725920460389449195900591129234704083009126322284217644921294677112064477546877305737054948419424895908156120626255212901267425292000028265009630782086653755865901658073324728030199656002317744659904100975250747410297427365295931358574415348089453099682182429799926386825961305386210567399938941051916078026255282352436264543551097718957948308450993833233870432599814539265379975633680664249331521605227039184076155001226473381156094168615753913141843026398965510243134166875118478654899365805444945114737260859559064112408509636980408093101082914226420770646230535779894459709210706674302354619075752162281282436917334228298240228335896161026056159332115234789949062049417125242471036170507045190465458236503280626096623843571553650046204133752316137387009567881037579597799769531437557606124892653109814176582294610331787285928224928611815360359701614771033691735336517498767214781268368542107006204685408235392552643696749702522564085064224071175384480306597788357473002590440962175278029896027209462589847811410497479434126388352127541165758280440317562688078548636652593836541467129291665029804891676359823730493906249141960644394597027323638305833096910932240369204518632175315522369167433080241815124843884927879676822018094844652665960368641206485906452169832823698127087976648195218269102392940410255118326465405482557666128553497535145232535442606995419084501545415128779573641755671610959220485868401531556448748338036478591693233982792281158736468962337037745940299210136105076193420198541016149027145066878430868340076188621257724170850973393867367584082856387354417912831378691751079378601793436785928052149298816472549954930179917737564379971919478290850641542817343707411139521186404844637221963231457351044904798354390435822743446959670342325587537255598114858639832849893105198948358821289389815137593229079174696315820531396943451790104200851189500801773852139006870677764750695529511532317019637975437078970563005974476922268762631059265748097930024832446269291373580070933955389986688004063150694546800001671179834667690239334646342874084162753202149079293794674747307861842715655904521834917137709041646693118528693708167737752992760981055331151059210840485357945813365056828933933761485411609438189512325883409841389664718168838627573088884763940278404075164824315732115202800387794212921744432064890376194519167127399136870872246825062388425339470127877133160701803160614272998337138341193630646155286879557162996362573114443121438467176090613555369532694641615162043441254924506755004147209360909304524933707756801441127437890695302902316144328882477680600716181872953965882028458943883992724329239911545805088942795914852616603441231634594907414378660940157678057780754002202907458404355457730937803428491518380747565059594008735023875716458788212419835552571072569858552326600347102691415436749231543900925189116772860434998011268116246011077898269361462301101744186472612156399827137153064733513401220035597676351018358749717251972550166534416513265923034380747690943833322554946002591765647147286050841023366784922414969091788316291578609053482665742689307064514091317775391118843479487292496469011665046444815255576240059587772396428375157826646277157433464534339704224305449988347297204078647554329007511494438019263930385328257809197465310670111075218981876098128115647301681085111413902209711752601949670902424249405945920018441391298825437701801545511486938117550795245812548311477012486042037503275416931331394825103995037158204380035746776984780408003965430750973314190949937439318588263938973084969484097747607398243584602453728297247726534890907467337897643155208079802354730734659036235189246171480897806492457050605290684175476052375587183025162003827432121355107905039523364167499459790453033368719222402432249095277176337822570009122000863652722743043068514594682127389902398277103349584359076612834314664739834515444812095083680780883525925807142224384150053345904327063573249788776041262608135733736381444276664594368471400802703592189494415639300448731683860740997222255961473219238733097017659400360561123545220966935964695620701049725938024232769466253131958664002076506921300749139690559916821236712657769064086735700528910353271027323779303860686778525374805910122466106518588404276388803490268856212727155840211079415149381018306749484824122016573609999970240924157248943060787064373668028474481074419877234954166262770590151792050495029107052189153770781593164934821513745355934396092586541019476046292959644247043349360757403334889723101143855818954004599863759497107588074179974828600386985320331901594086378994569341772710196574440507517760750146371940516718148363282704790157307290125846986638662269005663113652654545702036219965293790024263499290926034528136657462262319201011677548196197258691668873336964961550850007935405018766591066630805259721154324811118060751644475931084434613354486005348558273435487944505995412681050143577494922455483948222571043401684106797429067371586019301044837256954653899901863271063862914216528191076321508077620824171524852711821882480503649127130599013540845145001113614327939749172004901192983897636843512692239000458914089391598284905397927805890441918183553983688283120315963542461514627548852118375739044995433276314561579495623247892465061010405466514541860539244245383790985037976537329253677166931947877501344341655345758097438912878719255851926123695388369319056469430723855602730371395604123358864251433874903575724342520296601841284915043120850577474788650821808763648915528397924664841860988249514754691123429258441060414201404546063931093218234341136490479308748796112137940111697019900881623210356360882491086781946066410286524773808669572458599174472439957870196204696482410237809060770547852471321619489103059535891885506093635501509067218308252472098753973290701214593340742812941023717148124723677363487684904466602949610762542572538596617207961997723327765601391588641330400167852139626373035730014420070490073582547358898566683404119630769333367349475848743406396955539472860085915632771182540461105117646918181266489131498097382437276753813326398214647492860711918376963663131458450082264784156762499286604272882173460042999787384341557239679564895614395728525452411190923595164799930929409090086747204703767089392504558145425584142969622988963517720960618369276111957071670297665309005961238485191503007361368800176097420839931050735302478404279911696668194703541535716034999424968847390263106598713212629625787808707337319403073670497183169202458834834756525880855735748910245898999478412736770582956108936915259067921355223062867449879697918334172615226102530990053003082083881932158177619509447519796759446358793217766133044344336853758656155486967427469885877874676284635732918625513002086020554501248944690985737145128169200747753317590227298513456432710122334285983780308068750116002598429440765609141792819893390143524078038363105646698945176520577884517463620807370451102868175371458493080389564739268217060344684085960997289971829855423559383506283431385087104287053656190340520569669953341038310881053017328247711192463282732411771270615687166648081480070037711258110308106568996153894489027716994078882457378773334203089703123353043255240491717337145499032509838156816153998186115274162627375773326032386554524128537863591357902742601926108280164323987895426056285138656021683062897992037275590961178988902746357387955764290501507583970885566999819003679358327957841268013152952193417543386301550751294369076364652524977324022529819708120950383896345307909636378619940340190134316847388454949093486297317747838034231299731050010029126322048750843999218368521995661848149880316293362079107183823436532683103486671514504830358374435025675819028405334275590883664718778634274809040733960962726107726894394305326959736212275683861630763188279753881571726272669725447503546279975663690109787194786253839558084918906090741663252373177997917494491324568135307810293565631832807092500248327434659208201965010010120209248305357223760210822417043766558243614645556947735101140605375487461601173406491499428758383226101759219547939752077350289131084047344762305042878738308847907556428041424868505117907595323861760834945879445720956768376110298319059474884112715022712448053007920732375269285136154927659285336630972411568551069288222247129299211144510926208050736464123573170050259926818852179544739459801609723253574866650672142121083132849302941165773338861707265913098736471163680626514432721145778961742567004567579340979404869409380615421098420592226141223080974411769077634786392302752875454704598064217754401535978345155708508955067591031065513833858243850245698162144690557220361910392104669386537430173336276063034291841886873829598497571100952877001417211806316371117672642773164741291617626052358688614745747883799757487996881021637948198791983374510512214504551365925875417107911237935550787224070918476496471614225158846043866352734106409504840617811519968640201727245663068431003082960038967304611074751742846018712243652284523161990664629800235423730174280516032320413443313745413807125827368564610029254960789671035578557326679574156463401108010422555085840512287572626633718097651864149294210543240016062480754574190783447271960456033187774121824194435668141769085266503717051306732767760749589044919117940953241439323794057971512212635040471734535809563275462738526371186035887810117344554895650101986867925664920866740756839658866853152614682509512301336328794929411643755841714660185162559654860421153444711019365799886845870495393168671793308334176601934262472432039839995156006806661174910179326538238725665236147278233949003893447853255100444839456297627663525430594932202715897260130550265071095788786064401945036695985165299706093877231374928029435145250711293764580632365929956806806771892557160685173377718221722653033556318240599380777114329380972488661590338631519041773850183735961643743128911831788654843027750306874134587127288525336308806885256432404198111124022673987620841253897869452023826095047655159137654175959323414120994618140206090734475851239207104687743811748839698256752346446631379337521673521783423223380103795413093272195376744116572443758425967275459496118801127431252596512803524795080398506738528765585800180618982913182749050809284853369017932941241613341547291138927926395906775441302455287814397687181142312502108367018843250682951947506357176729518289286189732460326155922444566800160343480667683843309953198935881921896269351762040343552039504904980320507119168507555311147937278230968354146637668174785829028023486577454806393043271963248586556031190795496940987172751808669037780105236067124720316720889816097261559986164194415216654250983499538315252249538407627053338031259665119311950939320094409288185505084775289452806714355934379302038729908253778444715758777188420930396790916310256342058960481744057473829038707887790812383885615234229370172035746597479070381394083971100126524746348747354872040291380675960653296221348148211323805480683032327693380401993898232994753959611267073169142368170257151762155027308964657432826758520781315984661435301006518898361768669503619092560594789312601266906573129605409091205753409061616559681810466278740328009402574102286313263532587770150679050519188214931248937896844275835972165162247983280849296592213238070975246703564528307108363890308302893188732063269054279585752043262238061466782761806669139573290414386527400564294583989143026031679541854161678654258516667027645908570054534739019852364201419345849460064378525375771221161952745074660109897126325515292591880636464622775093298920572423812024752064389513186746081831479621479417240405981375454788962596810516340947375817945491937391565286310022463101199113769660052839624442852275720628486350043687768802304865773212564955767101014056873575672083385582477641523342790412225689237958962480208180198864007188138047662254620992443423679276694451227280263377281700504430129711522485214807140883999521659560253238145116080515827486376348638050737492098467639967270901373820191115204828347339215883820571798825516098001986102191378640364217854327337547972495923672844951144061813828416686396474781475300409133238074259094099740361582727170232290260690235050537308058800735399293347839923877593232585694319947305974844412488801234227539181111617331350134126622375435697467587760834074444368325784424487548879328558150038162630818953304723363457264648948062359074049907665183831830569027964432938544911831720095461791859672431325864383031421595209914765160646137862995998278905727275758960116433609480577529741461935234447889215256557643359996537376080347330332334165545416462242119832992472344724553899605285476636764736569318916757338553586983899200773541750173184289440390575365333384144157127291636585440333325316430034870649470678949869755967209297492065890846773169145661995843208654340822484037395428851941129467822595553343977772497627559009031087552343750785239536315389588226635000322812586256145302098369411397790551563336846450366006060993744058498395250454229698725761709001270293503569170850393942283452429316868191444617959106564016235950875922716883608501001133950500169743408878132578245646345999745932105564310214597610728429362647972689416647192438285192355767081703075500348931256468824624821679883252973477671554457529927362164908904862379930738654771599641573256958955281911365614650640608918689355633854519388322247462071178398593715241490409363403500296313904467287092813081018629873667524695092169657731636990739795335700291138398206206542870081695143030136390623565022664905395360529344522634896463190942731665293022655551079983981876513854319555976592778475290525422633709573427576714979301706775877831856346059296915396281964649333810804326982749200969080128225665945028711840229576090797803712318855919649114916748501076056437423786646675949541121624419679549927195537983170576573934390802811562302284463940784930392526368847954587083583007459904819650675714554719468370456104768640708392387652589882121294865016557211164455705622324243663854648469297173482552450850894477242538226862233250883066351620827391538047387202770108555119683738796944049427485096946073214534868917914243617632839678795166956757299548667745068586241060491467752850419420643100329223334794136907709914420512078849024670145521873983666219895509069336982715237842184017394548520989919322032158216926406145948496083898873711840834864399468429902101175425048119221846224373457558259806715376483769318770764523166485998953198780594269699029653571970554432051591094863565690647948076851117757254384454259871103441293951315326730587373081461342058584696624874030140838557871753150441315122333600194499979347007602360166229193420257614304543578413370931216742323523646864709183380401875013085419472487349637547414009810076370717528720846187097780911693574544936383950096951319313241901070904156629898758334325735149074696572022701987458573138970965588570422076083147142993313707481449244910924205797029108060891961665867755596812798758266540035179854114051357053992531705842124745523639084990093174953510085650371519573843212135171340337430322393421326240912969296131513627086352366294433594347403496161523789013359522546447405515913502450666193487240861599323872718884597529062026698086572834431199145172289531979207684742745355501462393234027229141507291225567990838046923748907281770787945277865027708106841252065062859607494163979343773535473020847100618568966243642056581589114164327365763421795684858049945261916283143487090456056164042896680058962251614245193369162027474419146821219350302547410939718858606681822007880799159054566677463777290908438318355713969912663733948661736173038383307470504020923013890134539314544930373413459650428839310245760885511161566633793291071834967649666304915095867851601669252068423876525457478099032462721129473269992051097265256616613319009838607428473407888604778587136415852781844201766984471283676167584157948164062078860646846911983308845761759536496794213992393811375563879441154863218393854196954501436443015648434420770668946979926537581629560328788024512344478996327955701673330866136040257499155150317029231561568920577044206132689894019819209647336039090888316169170128887900978128570082061128311335220375211460959046951679225161439504915419233758667161280389769854227326371387743403154054677037517173652800740006750096382630041055185768595531688731670301610215473685626113285874550890910612745071283232303983387265188116570270758859888909095843244642565074769722865025353173086134036014152942216619665440800741755421795623511674297858545980514996033514871947200252316870587630443578743053570158159265356788498497849036397402829651038219276292163401345362833370624394625728330110163113514777622403526930607485637093349362653310770708146374237167179097286085102307508231684591614339173458732008393653363144080122058750741366669081901963011181736649659323770686855437129095663017552245442502153838806859320099777911918858400067507779430663279903870766074228313299254890253095486633566388620702959148842575398642458231721532797334375664309738385048953967113419191460295544548041233699365747993624517854165177854548782138764325440135550026150752284705603965783849097493211215939468912272836587465937757902528268978821288783799720294219168507215214898692977057311674840615152811324324485122119571115553231859419732420765829359435919804672153646515975152959233786322906683890109074920641513341259701710839199580250340668215871342527398577985964322043082313217068444504737200588727213165995091319802083950872478474882746149860209062716839409145755113369835760223169596538521493095138499215144314864890394908110111139384089278370859859168343242213463921416764808455665432626833724356462134155986398148894606193758500794106231063382273318958557543648575921491921507402665802457830306257267450238129833278269996654362838226742934587253075490402192013444166636601050897348374088092857895193944661587870227157368589589182255389667660699168542589083580973580865783825567136655532189833826969126717350152140285362964993782699135863567634391991188113636190659836121587458353179084663615061821869784025943010872978245522444707938046600009307560518020503442037051585047347276387170929191440141094510137591158410441960288027542627118328480891314084232634424137292328454105656533925045078519643264886070594907862252631896107879247990583188231470837556848315476309771763786389903415359967826554438394687836800536875937159911133242791884941235362759927267596771474175775395587588445471397901430895931982164232515075834079298722370292224389709181418652853134788545389847883042421304073880997806848736191391527698775077510469347646964940117706808963377902588683586971750165226726591900404683529206675708101236795142553832441674733745076555254795195520503364027775931408033835970130876221805084859215369377271959571816251847682076602602757259352645036209496207187838081115209991236610552258632205053596187404713246352181755719281695468258501464014509362634712057066301281368515265177965223390455988997597338687448491932919675337788016849964900229729641935044303088962242015718211010907389823969215095792028618739129509392676706947601455849080346843450377392139950772330606639681829125112911057116532764551861897163629500336778198254956236384493734725354471548610173443180599898559865218249068277146092088416350075799898982611529849126198232783432089770768846613952760264844406880688663041942186115256182557316945432077284892143870914067983833018695989366150886829055009126046015482510997802086558343327121142349526162795067666851648082214205477950608365218927217885273074834853067821095815238343169333177841877298718406360302076993142514512169734045612008511619497540578089410919629668885879174807353298338545402647707982497657943932604392401425751654778478019074902599983403690860458828613487830495728496836309829716929213849638877397682544601358431372431968512542056964777960590525030033011003105014102218039482656626170467336934371874869597005515305629558619949509827077760859142730131206006988106775722099646372049509807021859047266634737316550760737717969884539052791318372593312153680053056271508264764775194108700734808820734033499327691487085690599844447357452848127752353331033287710819762882751839872977270974533734447395351361299342913447417608773220167382550105822242058019255271188862600436994486701576590876667988868765244825011145473351544093762418145829793600199629242488528717576154819624564528544678287189350287000853329451190563292453218307286776232738330952394947109977087164743428550613678122630641262159988666485616706063001152800383506674102820682407807519846296497570203524171433512252884673989830089944149263530745870585125672537981978348693380754259593648135732640409292654050113395694549841162406692431810810161413293020399371350729413278504716268380303470846371873120632825486708724713102337002621172679585657612170461521052325111899457874503849353832418131301632088305706485621121120826075648056117654800469386433736110818511994595628475476583286418465492324465240602192873828833830756519111844962825005090247684574681518127678482766169321646408645166450459361965458606676221449541023468195894674329628420679806137570169828714616500035344079489741098425716156612570149592858499812997327496954044713753922367383730458130496171624299405053839675518395975151243340114398763920152102175655734478102906376300012927772661918367360774340743481105821849797499470205614170596736283398015982105028766332973623987970453012501562714153271951809354578369925760859659396461221650184578102089166073641208009014812758110313233545489776965797914717623174172618354874864124702153283277512078864989499311370058131010463127946412186531129751517892294130948198033940147914369154207053160934231362216219565100549193228928294004553020505309071720841267989754645708084064559035011228494073539681712354858751033216785928366098301617476396919287587096670647845151894058504160404337966565026371140064293234328296921584582467054011125162561816770722573814394719130702621432842103009244539342203806868079719535910500533040065528285080927995653951000606147861764636640705963882521009691791802858537379669993346552683021553803022127341429592846972323777108135311838933894402252315995574574377377734977649670574197424954758837974628694635194456275414378978413275536664803022834459740694737531196359654286708454214096381013248569795909541379020110057382983618647896824769474848775437272293042325449750908152456815137863708338749216891221531835799815194776883306912208854671459497910854149942134531494935871498963576990610245244389689580567605544025815497156752453611600606878092163287889169380407795623894624369001307252436437937406042771517485021020271849530567162325492918276954874152560297863439483971513908661708270541450937417611878598938004602659093709211856108657500143408239908185802458450326645893471395255723929412973802374602538056061764984707108843181351911611454449132833745424884538945474911099696685575128067419570533904714442648755570528165553196193259635590024931352249629160481452366514337155426196645667171444954447445546451528583847537266812073746290968822335778696122218068142526344091593255191869712476061668975517012297122889485962836236152601961121024851670261054667209228724094026606231493147708354344660679993050911036243012124521731155925468303478509260577908245901766954975717225274448415756086052646664178118498070072859332711448532233108882732081032734794423307700919578593598797614899924134181166564831254363302121392846448550175909107566222395944889245648807624895635919455559611977271678522376926275975904488805333882932959732916253867303030731457449688523419377812708815288753731111148340995006251638729888600793968193819448903282693633163215005895440234259792352704658340112572261199856173289696187169930161666433060843086678192275357823208726829129659453018355636621056317783612923449163531342553928649254994993146224668972324619199904926265495171459230089754404226251899227936219239065824383414125452880907523543759287347642161152730246702232171059100531375023104193703606050305481470851415372034954903454001690680059524909194552596629860508519842554920849382821154206345812592917910944547231121125658120774034318862444913015291112469465434136960564997977723082947785821381014970651915099768032774117969092587223350766624142747370467587833682230483433395248812540964550918927025049371082885937755328818810021412146337336705752471807989266183172570458799225847776185610843207921579680760068897173192370911275563170844096253976436282261173215265650035040509212097499388695996573448507234517779724450698032550954113728464810551733954313331480082894223442876432652621121843334974310991981089719968475486446579171467848139134355820962959135070046439450834126600584508602766352808784259272500362474335217234026579696720967326048906792865531820176077481815637463450264978297079711894520137820640202681312243039798373980430494480471376392598373337627019976146064093524078898236875534477331874236575509186506783057567252476157283482961653795662254885204664387236700889690968156721062520187409409905195560770118200351245142821166414314687380615408978494973180664499154973889019474265725805924156369344049890472741202621975846230830518560734687466080606084004525000193219485935166416186614021880698743892422635874593516338257240339870723224285496770297992071695478968464345345441255233851697466195955485640738010605877078643621253754920501224440709923864991960370562019335536849681923437988577824173061452558399921165493507713644770028751761104167663534484865982072812303559014478595077261180027364478312676443470775667083227431041463470070191774689183977335042302672211575670675967541044624884208745752353463838159925453304094215504812095882188939754880524747775939829082517027341711196790245530282443234222184305605385411064243612141361367129113089302806795044283544132513411413769261269239071025482938027056408729237299112620753749175525818308013422420234636097420853606080638216233561839213674594844925687864099760531449512333911928856382179011961126090839326058101268255845064734794496000771857322731181154969257598289557134191518669821503976080564797901637078034987826709417848547229186072033463869677534820104048115771659320249982730835190738293255362824340878693459049372114489464849981353296860091185908799578079633670407803621876310635384763801446561555004557319952232749378550852210908508815076067149808977938153270933575956189904328569388733859548795715532780597621828890028322338346224248992407401901033400540221473695652076010662389603244446122173199738834850897008180504789139638599216102286115668980087747879974482094202503902435240097307563376230639584501813993770937171429168288985913693592830203826694184542566147501928606291327894677143283201805563463284575108671594572205082033037886306197386426962620127552256034984266536052229889681061094618484999467097276753351890609100155237507874548424398969452622697643488048455725804699360000249227354666419154648131581791744379455103091667489337433417509887188411141058040343509180124694140182566200679262373399352814891640818161952665994523973793348128733737601059694322514754847152193081221957634653668082347271281655109414623558079375470024195647917341182801945748269296501448491388566271965724917419361008864372470746603085845763777839519080402902543771779015293898832905263972802703132122609666869886801466604203960848207987854973863162847895939485691553849667803655985214783644040526649742485680444925393338032504640544130239090570381864243354149048244185190788055552778816087891087839391926750776471805959269949660669118417275976952119869674547816011488266277404737268075026740466079728057163475754335307380928634563136400633405829378551945350154208983345159960356587889098099129693090757996020286717108967109226757969031776093758131835991867029327759489482448192200564372786250845985838021160588225844648488977235537350707301216053258338830261213813589241430865512011162975150431522859542084639550540393357910956014762939651334545494071631459787633734046335581491948606320803085190985144323140347946517014509372202210713695130018438969805592354961704533589196001122038251226632658302630345794959457830510996747749764098054598027772898208889333443909029210196563215015064488268959130722177114989020248920028425324217100676479460708857868079116480180741361245896726362602425317426826533241150397608505005242237188542392043340348288447874539916750729969761998965940763550171114091670937246699126861592260342975883946534238088425578639582576284995225997924941197964045703905638009093699986558534612224945770015447672434289561065057245121259317720407723222385247625826486175890057717045612417530329912578788033061023639177994185852862168632210853771163574939468569381815818578803912989253237911810762648180933775286595134878437189972450987513863313947153628240703687922180602829061804622069940958705663119356929722198135180939962322745267950951380679790671966582832455127580327396021214270419995625422615461801935814297924050944389808749573803975546696846992002915786730416161883393085962970016208921805609003435002396193917290430733936140310653399635526181063800978101274469453094680676131229218625352061915247433255911829455279896007611441848308703686868460402604283097041680754572916152606656671045224577131814529549845551391732066256034671880148763378146209372451291114923227257422111670983204593801705856189821462941668770026364598274638813405807390628759642186239994385463118513997498314894654252135387198299763740762454257047790960197092497875670291103906401831053597539676942585131678644391196239285371423098920970755704975048125984386345588333048988503942376675067150869096640111336635357322674283805874689963417415452794063271254829822888995635429129739312497982731238789514532367318669861692308548807568258580745037538231829996262800536296679208362817974654752091040119184776953224003979290519239121628248111701932380948977337466105993835045259742954428712547448372466073179193461659541785786060840320731129911212790311420244838628354430335985416495018737984501878649362511501655978637184349147826138713738684726707000035280174068726952728384059244057336788979149897549312288538377358889951837116541165738499866102657345303446063243556631742073074748623768424430581927257516579055362785459983866560470071437563792565287939654226872367903010323470555103324814653773554314289580527028465234269836516319625516781900720869881756782480559248757140321243626048142423660680442908466751365194895765531107198446112707692855113684262543903890039150080895779452262924265985324459268644873664547942963555533313112659414408826923613498801900790320238233325533041393342121779106133256616746243506144646563470744626237691683466314579955513885621267903727864135554194571518940359385413756531210883649151447738653295897437187835724377374398780991134056237572452270505035170872535079472794201009218941898379365299848228172873390708353617297702980429791687378284779357631844175776649023568619765670562002868846032798681597234960891777699141238033161001879205751150850454425653027517914287171677691194205967342587317533327424866548660688018491581217058374935335014797580254070986970200361002390744875043094340493484475893099089281828081834672984420920393969368006685444445542231083726307153125959816710191217783532801293207707490919560732075590187622792502183453573061672743669229580822381727253886638369348267937825438811245616969743801120588218459176555002529321075463763986608650670805231990693251003814791854529433646379049036590076715525666126952195694412634524694575152949330811259852714177169984402848269314516827454548574733952554465235366396606989958102771170342441569171206603793943818211682090100387712077926892915418429000606092453660270465160159606501217374982182925191193921933982264403575207712738070575420777256496150224926323682016990346578532042403912713016733348877663280651065079048081210238936491762718308900617531108899354243931326554148430049474146395596269540347207597138740523036887548891212199997016881219496639786197882005030568155323993030241125115008026380501388484972644749419181117366886911641026681417942552488427423496094972098827412815802976131878619349457980353650313116818267656982331749614069341388557702119334724915400396465979649086594457841702705286420675090064544836694760771753931766415418710690181864990057528314866248265832360279594980288063429774927327419523140108723082876809941505559529998186225016722833821544474320841295096976284088148578123809495297333446664741550356333729542706816043766121550389762614663354676699286438635210861819979904254792944000608876840804427772387172213957011059609587565235683058051152156309435027545281897097409212715428541671389851464507484833694904186648242347357580769399754856731847156048280962170192869898755845072591621244185812248160338138406108648081493569066591018718559025916616436745035771797177359431659624135244679449582743102496051594512994857496232326629047271435306507764957818958563097318071318944722220647105726200435811577971708828440251014343068807878102805021739253514126456983650870537106834249509179130261540675828881400868592213800362078550126543897345348127773310504916671831400389103854436538622741553216199603629708568465420517730616697253669920387500931866167318648332266443037888200302233915385897927825085395588084593969592058229875566892927907557959390584473433651419413878490692036613856976757370681141479405268658129811962258370177349795617186575064639272111014653684741982558895070789868603770342435449590931048437791927897192054626622694778914615992832390179584966412431994605311590299217870965375076742544560706514615556505049073980232484339548967119601068667804080318404799173504568537369135072148115110159436549019134942433196864347942633397461695633254107559845666580956876286055022789657267845721716081095688045039004893370670644158105783740535618480107030809200421796410380691790037069325440922634043729795731895639733876478444376277140232791630433351906510922324954212286130738004116854888839071006193438007172666517695093285173558260623342005867580605316248683973753184073341861308243745164577365573389901063608074460282918591761932322192584180702643335534497136355175180018104426623019023983193027972413774353567115052291738885704589910319341573747273048623291709150360904687223558975463105279651248547769859127350926413242926946995242927813260021125247767439399203144302295133488426060104776491734432887440684278719180888798615957392962339471843766252232140099421398260455795624261690976994523401036117152252027894388503014668053871973382445256470521526952333764019982949562568251681708712890520216591800552041900325466042920872540744575554271499257296549724829526328171372110408890669094892170471300757307859360674218826005136371928190503600995602452745111128327424383287027994428351031500407203406313160726496632589416219201232458015938750771213410346336119335223109523204727747351082579451103984256738179995913732183238780882304847927547938573049982569132437489810562076225542444368482722689550948520706456452333724655843048552335942791120124414963695808841477803134630338568810726628823001735219609695987493376471410379797517479394101189069261408952376508435962417781353508792458162829820469448380737504509219326816205863077625730800246456970359102160359124058599200846871605969517780547503792209237299268885128383637571332485305496600344680930083352347527461151034415697472075651142703499546141133351939520478564624238277095540984435478233876502904446428178473488472180236738024813831421236723195726508566181754966161370291493530474665850409606530711044784476079774349075061911775671570935969551843037658938012736258557744788327885429562646174018045651429812117291995461071649118801025629761294190997199117410934125319069437450555991187912433638306627185033263348202624339173833816461972726967795133614135978729577082478430120634028031514453630068008930339168291638323181493785259345489826102337789011578012060548763868217354366400461648126127439763720407056897942812260162313967052380122927235666336975663500086921093408437316457042110647818868539493383871749567889493195015255166934425520790259459469585134152917084021023671048087637549086490464887489149630033526604756557620368208047351322936642598175837522202482854644831060444064268727297438983133625404773582354221299203837588117708642494450193750672183994534359098090968799450533194703317934638948908140712133706513874008296803009857259110203996185255217795399616092613240929225822891802396804572707488181166465515934169230655960778046197806222044853234535420538724556437094227533987101077296687459681728953761319229821516085615212502611870226715749874573825360183290149365309910801288777370478409846213579687760476371065455030140411056282362550914641522259220021485714787218162284015204721599611620182179522598712294021432985977987152257952244282634829607224367680035707364727635125139719114707769002227928549363144039788364798342796451956012680754022163971018075271976660421358517230787554222117044537739887238382289245856615688437832626249365035858768220354598168520471852744089549720525232340632698505572939668865561438238652510343391908356298299591878937209782392361628789395546021819518974913677742833892863048741741890818120429687150828298461423670878233950224846329153554128129991504945536263836372876302081593171151704211060061753287795004450552129567976812131691214442323638127010596361760327892446288651960890422366803840832220099285022218986249882882702376435230366686499287995168311038380980537924926073079401990715225291310104278568296864970649971949273183164989485215686790044021538831194533133399576001506178265089571024874683058260520829241773263148074389248394487105697000775256347011665079551524809277475244751528889797341779052807136887459270363736299217702290703728824844277943649810614499726723084946908361111846606350574316690490669675234080867705022883527393106373470988416161095088234441966324015142765524616062973829242614293206153806703131423479678149188241070301246011023571304463296644662287337012185275971775736787781323962410707575467271722270148189740741316679999534547854246167707963894872986488806084486452972028884904810692125184771242147258093421073542244873513625868928770849469479085059216642307773332299640717927586121822047060024210753836372021725414350290110956968603871097664690189431240255133328045013331486578386883283861760147326211406968446104129755477396979294639894393250463788618509100031247299134865620970869166921702161987363310973770102610881623032217401548772393934308124831387125716226103119419756344722758505000262657745798300416814527997619626968173798872163763344309636424921607498912379637059573917939613347767629663754086669420348665651644475283067472467024114734318369430487240308142565021534354438255923647599544744373834209022760263922016188095615986273325290263211800721505921552386956790901630492740999643037184045663501202509926961424937647081120654747819268772460255481332528481898008541579181957934186424724575862348675456456450473328575351009660566616911341313761752650057875809458597250572676393492833937991808347735714911406322011283015870892060614992660636563899519381749721427968626436150799040807560410610532184682870953397041697256130250380462505776095546271332437706307462965866530251209390276729868845707833250334150816961332015068455794739451471488062535491527515424901424322277018421398615919776998385110812162514587496887654513317950255883277444296855735733059194790779810247398479435965980678302307354155226282097231858194142318082898703175589748084245113362600437124893326186643760416655469904403047243878891986460916009436052220255881695246250850676095836136505401536946628509683973916652075473239657217039855158485708873323422940181963362409203526061515182803357557964340022828099797052101951416794807018258192863920691791179328529619959814206667118690494591302035215589055198838498362053285735348183455151844809501392223166920683671511075079302037038241168372630731505445823495023358722301095952293693892080847770382727309262255560347514394889228525604238517045423409006990257480530002044121987569736590173849485229436080232690830244087696394126227303240263622421693835375672309546772442325067273892564126493016744887430904206145587776070252964723106129604233339457462546199100031143113995842366600912188033377217410092629529660315263652719677207533382370264276369424727809704248983981037818549419444799565495289669314977071030842984334373181859444175658147218172384511800028255504490678078275752078835580728348012353316754924991567042379044492733205929023773391510873329379199643144782765589830644639520583710977814557137071218989116422613560747699861440767378777285032288823652883672649968482827787913671975890721559072227532856597008134295941402731509515766334677227032779838404738428384232738898963486203079409850652125323999967011351753161043691883933974964026948360264801497780572014683603392796829289526158501836645630005988470478432115055744986968475959660587890676187726692511953264297440188905680827596507171971108652602473842124952490898759379534901865674435473740451662169984204558627957824484518632277606608308878902620290344730959576903551740623469588506740749116568216925163662286259845515346114968607386646815048408608906592190232016990196762355218834562978542097972538282881102902383512201966083957479209033949757638681639186052284089909961955738960467541771234317515144746353389496659621036812640053865144370838264286820980415720154522289441561195505348112453768545178546602392387263640762481125457453618535096823484766142583253823740239253278587520114082644567431660714279223228381505761998356918530876947653354023310761944744263183373261725960780946569242968952300498340015650044067314657294293989474077263641371343484301155051733951754532220252495729015384768670376530567191811384111277432157806846551205379539055704191140626637245860077747686376203461443604406424210511225351672973836997438169848927229066132191989405418833203456669915322323628469077450961784731240274572431225623868373462506031314472854280367252991838102797720721058208016431204697397995432983815907664083740514433071821846076116562669399806678018218207327871393461006579388756002017096420283892252610090196745659337039303151165453592359320808378445745278121332456058131883760375442235243954954742763711815583957585150644194359241204010304095912693949805612725104949421018684458619808486910470728431678757955838582736406821522550208091162817467265158219449455669917823791551820092356528561200555215895279573088960838851751848699690241349807290700628906599022474581125192005408823256634310909122910225068893363910580388646894915317937100877739774444797064994289144763623403435365239558087602355451277032829276544136519720172486977659897410931936762899983844998324365200391171275184153588222112054997385873683825675614950751504243170038056015101293105356445928155802481402427132064821986896346575777540182554597776883845562142446225569833278448608286723225691122257165987235301665141371089393767333721449563631656710671336797869198253785107665407266270411229964811840743822123931701751271124527424269671381577958053921713699588984534524670788643607347970754872192377251549527378389851056215753245946545823740108960188307394997591282128138073693799719552333893946624510216239429148668431892121175078456527518721444053074661707775079513794777799467384962128903690411059984568842445710224023156196239178314004189159144688434432911077464141755873899405048222021040614594714339661494346744841876815150406780323220239031413665520844118108705878875943731143705276746447446827503539789243899747678976088230488643928243539455989589332722737905100427278160951776435671164924586831747933737447505370078953814420631704554548793869895914766146279152014398315778583978579649400348669398683901522994391407422713526383438128882438168507357617962554912202746550949905788572070987494881230074332236557117362757275684887260140135035822544228429228935259175390621564942333316287785296902593033626652669420462352105119651426797358041472768414574391247684777453886591059316675811866505389017815208125354394655037651869210542509564397234846080767613312496874410138667292994685507212569442657396270196875570312172406708452133293525505702658642483693520254426900640593448121085842776011820198515195914302872062762612654271351483197995586812121837774347795925617178714536523716534393680986114371290557527295017627850109424579864700021686939377447498652185652077569135264503961342059149074908781303127710082214985302087888414317405621094832532924814979935369222609078250878671075050756682150041021990913053048914959324532391270805343772915522665019412492833524091453314497239251377092207669035229385872101912530822093441117446156668299276560096841903694026850577649415885612115731452738415489498280373833700887278441934459977727873673521131008418860235848557601682037206074367445679703934517293036462355938980283522068354095986843709652789187435191736152327213229558043545806333250378714418478113690137878030764893490631973452862874635652068481224637761618150268780688000059329682950919724285515218924777670395510346099712450869752632460165180927407261292572846269391004643327311329204890240908098550008361224298855473288963349918857487877256764679537704700641865795940719370523231625262727102834825793616943209081759466792445481062495985447713201907444725658150490937762475897687575293419062684132242825248275285395917089411587746403796169910972721071409993806900314993793048993705387606883882299969924045173062425819678221917048543990125184533036450821167690473666429021981278287348396352957630103846211242699669180430891265468671746169595237762921212065480817708567044610267150848802993907029896187322730703106148851862971492305330909203430631512227889902361880561636406839177312221647361008507199456981445243592035523462245646681063809078899619097397237066625828996326390741663251273857398470098310935615981716082309972402920110410243047299535020964017463109934154918921058655368876827228081070543531032871110862306830464162855874898647998608693191595321016546000565387348418431823167579594513010735578587468522057731664830138571112312442071535699045291561747901761272390345328966023284409694180552084999131941862666290112600633916991929103603048008571386854324563575658428432372073157656362067518426512440168322644912352643538346329461199334734753155467591748390905824059980433023068228109164389595442605987955374045485823099865207827558738483244648612055565298012047260825314670186094702579415866283188637227694438219793281306441519426759283496629179933064109017076223768830435336654753061468130750268912695790550982803795295804712884432459606965459021526720195845714099249738553441222771063395877531489228626959355488874052432895387390473963872266864361811201961245003913800865205029854117019912182566425069203795609685958952714857004754558127263886159751575174553190795445455245483341745366812680384128311648648444660791900646324096467781796718876586027654553824067813954396168214795046901269783371880597219948755048321471260985769868874213038633854419465535945690794635614645627906359445602512248916402048472105683343725468766782191428772592682973852631539496801736732859077026273570461340283124222447318056178242767071186663654093576269254926059969157510000316400147972710897050133321909545438894416072533549007083706756136838050453474719939936531847799331750011655605746413955228616175522153800595460759760870435489717825248363881045825442068529298110713767313745658362194500101637383352746899922107660201788955756902269613755260203914088893655158525421537797447410221282429348723888194637581858806037131083710560475544213834325359009182225489954591490367849492725631609807458394963446033654849170373996578668411964894844391421527212421419560920626350146699271706808680575994272637491113552770418385059007081749494353416264068097675509144357084792338083447665455101217378764478923614244311978996875568722024314779266029590972271374714173520468074430059966289635389919552845718625422191292449627356554912826841942344596912257265018347777074671154135634306073764688036004749778899537394173057017107028548073775537306214938822697413315016609016715827651375141048629960834973961585746103048642611303597251098619452576851738006390839146764354318588366643897698884598364069525169714380418534176623880646920067042352728754231866614962133476725203455170888430502350316384587091301013114046911390543776656534206140930157385752775170052028005932538499170709194546733410129600680513271176756161474520674851421957733001870955700807457636762184582578787817140032468623821326883159123591439172577958592105989871865298806388239213116592348168873117800000139429223452002744594159470278518980359625076236228271324413471539652838448819697506104046002310257506284524640813291515001864578530549954504454464006335464999750856226430561702676693032308335114947919299695220754110030974646101446050334968911704366796254109965773518220260432569253522916550707424787749274474782718372541025954315791740672843584423318856621384744456531703032077802350879364730235156888188794889423609228007343437011105125037346837552573532865130840458483651086799715130598875732490082109217202703305977273287801696053257034128187674865728250634822302235444911293889864351454465702562993519421370353899790860950733191390178443067999391176806708765744065715136460968141131249099447970581563935609100752746439832722417098268789903252975306238268313761000635872094046692365969580567076979363146623659303591087656394900398341734763222243167663128201166293069622444397296601878781231624149255231846559042638007028782244424298299995770788507018861368070085633720917336680518518366359975112392853716294988875771737529686400995046364667563978532943020270692338631435582132533123396721774082354040658507732228903037233742882061462713997611643632703761605940978699204790106027055911160122795686202203806775889077272499617758538108033595611823266465001108993622535393439571184149104920291483933611208271248444990252783278574839252497988687380535292794957859951502783344876054159374969328480974099021780824683728262712971936800386613972152730919056008271232033343026108706238965453848147606259299393725819230845057475917424517410230156567503692295944274398963969500014942639183997383204152916204891156291662813858882469647471775853606578495299283992121533665333406715742047832710339939165298038800291411625746444995302081811190073634274198761684460761734648527083193114276202936360192751387367509136808244145434410815395367640514355948020323642007874636157545663762656011851222371505603071989574957167190785326508960674347221554637253591393151159650370508900257832234309713673339453148420365944131095003215990626682487356517754330886399773373596697593323257959066622006112958884642378262600419817519034296553913954113487953722288063426886279343878551662926703778088082186044057779661314500838611137721959827999629535026002991080397122020945604406819064134489418108571166363645860504110909563424515133060121473681463061929950914073072157430248012871590272120837876991816265715698830870507116795055741732471229316807596566933098884088497036337233634018816066710977944016252731198861172704057505980617837747123942655566261996676495563066373630836438936381024685064974117031430475986709346086383563699072796026856930398233551855852003106978314103679507473853345947937734017650598593518931176188152231177846498795397761173591889452102636400669155943265356169402884349456047016032615985449327353662592773011819773405384657060256693753577770395849996104357739372560000515342683594985681647004705731069817796028933738973955046286994248125540355436966237940076613039435642294954233612948198641060691643947375975005185857007743239411928483786435499983253215624860665269978675120972282341180691465106309816975684160146372532203914796977786127587457754497697644397387832244950273281564419551517497170121009582386614890147359168324391457804904811417932879498020454591803024705222560642301594817048461527146222803493999857851297770574089357624464928433973098560633846951221179826592646097333815057653630761896873912902814148036182991786326431514004622835637832759484886747581717064882777929503370065275150107822658674019394708435908645495126743382321551652404984125196177454280138401929883897032695885873128721799474200410775508841933023415743485542673310523063066812725378276555111159050789591254889593040751650934334844534474095706440094556318226919467015586250307712253403237849153005895128013576225860829151371449636474321284390262045148128861777350876520017670828953591125084260176994123838012604967711402131633790830125878389623008198469338036633924292752402488387687117472199899443809993586447091923695779645484165327683137273681453490066041059161439208637808058269744605867478767122385253354927110326583606300517573297271896486299563755124077836161226254048403731107080660718418227255502252181639014028590910675665164066409457213503825040203814273543894785201095545866131552213317942470900283408029993775734948951115059286685310304346997802064893069802124682305237477261263146409395700091128597181833833990797545001897732682526394715397548326217616224977148411462733363037126972125732216843347730256538039397003923670843655528840009170041107256266034744827055840625650829985483338604979070280925338575591393445963919153983803718607025684811481808427199756679933060488490471561319009627503034005995027234183335427645287171692772208889300223825277701645974121806423892518584325823478583391103534844930216693713163605136206018038584172953043152640722173934144808227848565727852704880903941625201633522493474722609113507278176707815200311703769862003631716200943877169020911270584889024874146867246744975090876220606297168683541700989466547783840712120018996629464323164730785032144099837028760142224629025443514449958585089085261525826358137355811565664204503191250113474173753117686065540865888655751265718974572577362190533181780740436376793056100414771335888219434744723402750120376232620634320371743610314730058103704629593968086597488770365751630101337425917045329980094855588150683308670207520142081406016736029130579086537909363290758001034864372433367485459666347568522399341742017737200255697682546377791900590086059178554045533015422123047366020106820195146276983579690512532485902387303566894410890092262742549285241395959710071917062104255247029106332784470597418111761804652775666130663394430141315863371464230656509555814298618082209922490775169011818420304927091384497310844065510462577764392530796465153522528012074226137293275186982918180866317539492390238011468271207762477741529164903193749574109713369484319630047346567563154343041024713688379475022811980521508624195200978086723415028631143399142962874365653292618000006253603213979901170048248687375653540940618646558018671310749716740266483108766831254987831659270903870479770703578267851727760512744292715753639361387280183555430712684076695374628222838533061568463141596327270317531180697194369501992865442315676780432102105244386324880971875244145895591349171051837539591498462143170427169623842802121289744979380841149842156347879310251348278831778583461132713550002461822127861790092725440525290637006439207137159846667770055860963834262996828111986856228512151469425183499845388423085120128679832414507413508956653187599591576754539053039273774597214438190114240772965455927647536736888417558133748793873260818996015705446278197761318978258704026826930805856205483894652971898691821133281938112142524272063111362407155476163646192539639261755395849420514178729339163600641879000650567316468887058884376793985559387248140125393230993810342661165566541355115890192699516053149317923532620944764345549184122516279572189599742157580597504353490455970877766021629302845576713591840542395692151070693274098315998165952568431541363963518348178618158358110033602517308417402007028239274145398180319251402612752907317730561505219709964641398541001875549723899048859732117547274367387649366302682807352596942518150025846090339137149638675180654817477027392613914802323622120209348128829863405659510373453570011748646301589382952841983443535748049828365122270720211844923587845694887304793013902629251456737399131511120723430813587732709177684243928333766571503337603363360646615823798622037689861978129732063657769142301084275002560091466363414771132801151240875642929360804142174963295077679145905392695770982172278649117994040795673254950025973304484521885544929972136090822975476532062912947136608400314542951667877954164122873342966980148896761130323131247042209320189294526722925788199775390461829226966981117294297489578541644267479418305753780639907134191035298729315870888185268807929807345728666404829110140629216141563256499527601630463636747425696227630684139172477790744706893706407266248220586890600371529775021730461900537095351608279550434362593087675660323553685608724735285390397371277813541949769541304518150749750631710512335094359087227190884995108122885227920389600585611814305787608712882255697489231801935196786405427073996337337047770239524722191511820526902437753205581528965579076574296853529759607957212164839434362978080358538117435843010883645536388663732930285046467936771754617054101661077621147317047294903681063318786627345238812305278352305966137071806273024857704901291238171912252098148590994878448436878277046009615274567930379681629376900705984927924704283791628141849936588907440760764644463063959922908091756289333706672791876414840672505373098509343463777656313135417716448814189488891713029308427011596352384413450536872339832685098570973449607038686703498765266561676226485442194220890697372391003081441508159400084298840669728409355358507509510852252855040895334493338752746025864362562987284543991268688824539983164562036290225264980820603812626298190533296463111862135622886063437775206234602603242931423532971377539569122756098908326723170351731078938116754741908737806074590882518359868132246600985522684926216293721408286709810295652425074099628852452778676942549276973987576484225514068616330293840428363149408832199977478476822052982392031888263749804461391010161844303654362359265576815310777446510309558910957572933324776910116885352422458011207193446659889068579196039150240584882616838918396054511530424610843511421672882018992102830463005095576195189138787308679980130421589668128905577861799686567086550185423236519873826373849166841298020235475234434947659102087293089812909971951575642293866127642696304765819665512215929880902166260910281206067834523888089421376601862791939182061244764793589266117055194505224386872256989927481677585277132789779513879409122657608509268679846623682200355904098844832854498306388979291774468376791717699331087406982678347823415655838822712441900880559431071434384226223495632715697744439726928990439381261075639017948683077133188534139599396399062170610955048287735029244782908645386654422530724556063978187949034138762718004326897520218367937352299270071114612081451701459667609240726999442851040799082874589051832101567828554442717410311356563996188651309837450474080330985205317379705297223851778563239032082449967547806781476334828711573444209467011050232099860592477643908125562943988137906349757534446361856280428333484277904963292499025100798162314980996576568652330629452885796755585897826242191802353051635525542164661160502407579443372610110695578174478268402656217549580018258076993355028532609195201483655517052447440045396751668331787276092378702252257233156803184798059333400458435117816377365435444836991328604566294030171025155934155563380892460334911951405012346446771564550732547440199363704676986418682694710490586768221873309607308697529811064423094501639083090588802031787121465009789133190290030802095175779765093450149328415284136518910158245317714628161578341858097090022918611118396212773382268867850116527583844766221992990005636198285031040755859785826842798859286938611004102352560151463323182031561179277781598184814289513471268628709142614534038501703187440500794883923825011977176322830830671566689257423417075618675017506486702643670908519068477640270242352525605709388860756696522877635604255727035975992569726345709253687115490659315407747949837946466004603427728042310721980979343356804149713090583949390259965618152187701083604722513241678520978554530324949768565447148313562301538362534387661990781572378832181524821850989998812861501426919694633735918483493600012269931888302310890786128696547119517700781915576855273003608222382336179888905154965999295203582328786199998095648282355391678616988187405740264080446132622607561297699941350189146090874225919196157537148570065741553146871452712888250118853144224282853335917140597678445743711065999160828658966909444977904137178513931642636494093955660058052624190439914946796870901814936516429797372903453057011862763424605193911433137307766547287159172903315137066855994672180332985903243922448199321307160464182698310979587092212155105153395496240669362723297847566774970367595023017122465576520251050130925338268402969222709014884094799708593662685597956205320704761764615048740050122692381024662518218910237609368337894785577270453155841575395493306941636200861735613964954236274640987629934024597665939337219819870282751960107057043386052731007813558827277853115115121775535802622252721297373378429462763163204770830003339423516822098139957506988599268861801140300494615809648383618143094808245597951948892637305917650461455810231096479179240300836491174564396675222451021040139534008306660250184336611682464043224378002636513397788891654598313968621374274968513879757642302710038977713921413046931640816949746436928913787942866472681612831797610454875853764115753295918730458476899298537759121263335305137449247350533085054455940195620484614317995575244110714393062014901728637662040354412834938555762136135718885221983636274984949871556596206632848243544078826395431258292009458759210661035493531812185396215350906552080961606977263040955786967273616586162765391154688395358924809003325492977785709532757646039654552365906242926157755973676314792728331821985848567431974475709582522695006162618316368382844326391217351057132792569299693598373441441309483039581958858992320075213399942799779207141050806480376057839456340511085242072630315050604411923101004743003710325302585532807184032124880088330701051860919720777938067825060774751938454253849741931285629476693470260039315214711588499454509806073201518998789176940467054099994990520965139521941236588194850658036582141830524900934786951512737235734529277513354312229516640884856700808921628729506966499256608260293097505760077842920168720931441798971328044443162454416569991538566612658719641251377771524397999774234411423477738140537195329727594022212618359330999966691266206464376429953165283349270749375456560965855656532865785155675610863160569530637018363865149235687639256566502793875085582462778244693735472376487927833626835353179322669489168295598683853853448105796612667386121780502933185458742691113384312816070073012038229330838050769625101239035642650607391250527918735688185393670742694099579794669540304769775870688798680102174991691669808776520316109118587671416859789764449940267690375975140940316915775962213852893570908430107212257302889373324768498699177205703214156688974481340858143519763292580854170903815182922103083125689799196053508404293741421088433157382284106033920012921376370043088674462275023576934402196388749270277239134283515370713120263407748306336259702452414140635104250984787666043916438855928469716249886567837837766802298040259961716879019415964567631833009512625628216442618466770993754268001716827655504831604242212141163799763090855405047671012989231478493212051380166447188789013728154512646929686497499643404300825004224138496763555326295125451609383537437589949029895552624221726764387059029701082497431086507574434602519388273552256789975868210663188431623283003852282089970781179303448822922805217477104506433056565956516687558722350645920756016857360083780173120329886930104663133112610093218349129915287394663200939011183351049503982320947066568342469304532004786752763751458706637152758867587325714051351100258991322499096976675915116691764849317680348331541819253918775958850385480602180251721247432820658538944663461767411487358957642613953792699664522202511798178508309929510690056333579095306711697144099027717333800576052619874882534708038903476803067082245927026741202162433434405442527349525205318062935226010127202948666867352178353176606466626313949616542261709307183116316779258856470869324672929205842394010325311150607480267444302669045637950448952287547313453599709395386004351239585005887049487901850148477950117630236648750437995910578010316899971857707514613493998589193445170512041607747051892609689746320146225812381326303219852696540154267652147337986270187645876941286588182685107577981320653923247401482856995132631211321400382188067425960303250115286993128738604080312013160573578128160567894750235452157777947353439750652715376822848643336817755090743428296237433168768630210600504055153622206790623636156925986506189879255066351580659369331126376197880103739788105278925278990095019644680932630496498754991886865618528953187482175896574919018988954132409056293583085709499286170823255219708711752572119163684904299496870387510136056796253509061157818657905721529406191078452696172746483564956146133764917305167038750018570964900029790209152239187317713877421455497761290476710399459987654471577194668795554086270002437556373813461937853360614525255648994045616366154771040278509949308718407247634735247423996494861575623222106003382673475745367278082749808275885534463235818651385648042715333689486281703138622570958881287882583261930930200159602749095046502614609400360280587914754752773661509595629528765073102647765743773137509053185332559065739659937248800397821188490709182544295256073522310053659642711098660865740722137507406147402620959677770729838304373920035275607855806568025378099846638655648395589003116125714394599280356537806326605825284220317529067300314437725215309008099946821034982701979263274958775900635449645971938732100032373638652630341912661198495874474427333748630371853517191357804990921096066872247786608478186760375870475914099295272975293045443659593681917627721803576343259397151222842831857459121275561073471012758560828951086742383497543668927451424286571174027209435615813791233527299456053337690095726792079838196856564567391174564374038740515622217607744720477001814306636137010277624882424464643382316749759566563932015667997511441439185409854878608476423765356709664349470988867996587695127301590209671114250409419053613959868186232836879166500258058818482264212585332249368522562056761883497493188200459583956019459703869844217135988584906269719638282006285426880579104512603990235638254337718765963990044938751537385370696384870543798111448954640089881671645858422608808143920636449687147409502407648985502453361266931412505784414211618701484975972505777562002535477520788947091112476989494803030162235857815602774128722526577215686858535030447895108153942187109189262314816677138573101850266847894541166843065041351836541594439115699489395146889527165403591165817860667109694489805797443293628567024024442022251606789222324840311093031390686807653020920625518054286303848022046988618187884694480937410549512015986390576813632109627968281424535410902786920563833646988574628315538331570145359842240776738021869269914945524795142951947932184779347363713302509166522352754414443722077084161615002476758647379030960730146557260150005779108979879505218545696756820793401963104031452605003199271662216021610361182886708710906596505569588392714483198438991408116545411392742730677950171131515842448574420745380782269632705171947038620162117114339966816438479720739484305026555767672892336923996844055179534610114325985970814879255684626557659357539415745217356032941095488879865531684411707760936325246251932137096027331582382076250257337782860878567344671194363687614505428425215228049380197103276378894647825985303767384144445119844803723896350246459751277730867639086199544228337931819913277118244359270845064898945495242618272710437239951598070206012161478182944999918295648985465248402649733592698660258644725257358267086923910640872088984307504969413771711407484815894747807311882809407399029682515234914060981633682497506636531929928723884939755642543426097171475448043952392373841186549800858070824406653042255629833506900576095029279025074688276535571553348602121771684575163312833467594009724515618399246430182005309034830342228200586005888504537361621381497249820800156027146804699609860718475447119330364357621235861101535196469493722853601744749974673504908017524629891046805463615589608314048486854739417916432856040041277177927837453338866709852331138448547910022693108363630189793721176577516811818285556184401902379148797557940838657168917180001522552610216386961935379832113292579557367469375151057440089816330826356550508939482131507224248445565122653342547441154698417186168997911223537012271244148492192170191341162185122205425813446299332856503605284069406656209747280490831330965770035188841269606884719605001863759980977544684629991861713433859206177758979493936717255020685283311475392693960781518809950528968224128967822601438126331507724517062876261397029817045135393389564557190438318774381036259486164554693090231039713481445017530986326807513256350536722332268090804498863232356859239371208134987512099933477553683632207081546333501395899177854843327129119138865949330126174946332529861440907861009972670749705888584313790835418935376909921526234632429642216426363667837262721376296801297240406596418163703529695628197512069645997051174175473763402582993847492809274926700244551224348437976180892601452193694895420882076702815267104964395804733052999129277062248724268901648438629790102881424790869642510061047032770378363128843388939320387499408467345485411133208067886904816507459524156420352422666404132080145397019735920755161385922374369067690238124684399954021015899516471102184161298376368862875721542116459740428868385317456928610666537013523458280827186846554651465455928736221174533884757906345968966707859950706140882907439580029476108958126737506597140603164970644526316094525172541333724908226329083628080628107540479350391356480235462023755153980551097842514232945698190657658138191455814118479350739883024187899510732411918735123503062898955821306721479055017645777683914135042079440492170614763801918173132906396181311235865334017173496819869431314499981139071770305353837606401176988971675691151520205324765762363511174417615680026571088520728012396776296844444967637276216265618788498363627668869056161961190256746954318552425149081236940560027076027200749314251489721903212864813355100443316717144335916238299075898382148756979473594630352994579879636991584813120643877484946981911210968424869318718997338106652795603440427976041607876321808783006956421050134875733124304495305440730803295781739985380985917586960538378790999593624999149382787394708241314088574050403255719464180952677270659967560756777419409206062755196824499534328693334227245552962673147033921824051525995617674077368389033562850883490023408793402486645464608158594727560078055339997937131908867780992997811645374629296780800714194505364017032198079772436486083688917128309077417760601226950876140446263002335010255560140482805995015653256920063967942880029583279109951040746627573517645845009720750372893433150730236627562825871100491746959526024493029986100032271494295131174782659186958629433695656013119099065990779013860310370974542358515877094584581142124119049281049955311828614446222385674856474982855960936581979870319162167228657896600467923918482609747730856764700718029080921865777036348782457275746479572138200520270220827269925681378231664463499921468112190120279181001085559201128015857644005134348727954185849114429822990564906947074905747871051240985208189067333623985508644864625840276625255269609594972072455301690496169367435175054347684617882174971275844212617914594059704837884616671011804527230508349099492781477622699354722127021829385289833907214540379021500818305140368137378579436305321393909677402319842346882094688520634077427130545485881062337771578802497431935840528034777753159936757641357592173482252729352951474031507038104894147145035839173323047497972435000941706152010462308332227291413738721842485351620400074068650498758244722475762970748977347556737376185822881759405388096797722539046410786138328629068101906193929312900253407686881631766774251148924209068322381254448026506035902491310412519442862690135695893552684996945257640613542832388161936962505940368778141347879479347477745453658180633839160766865104878210583098471493111456434026778593050805696817061620173910724388735548108684731860572970611632726811285586408154466596155034823162295414665013894442835194810648575881099601202888601268561981043140125129832212911534011888763095361195363459297152734413165530665491932580650108764894384769835257178015501037494633387600080405840407561271017657031068416138664239475826243926228062503108665334267333457373161789861830759141112182302612024793486455426867318153338560817820996978424548441547186471751922908123932430816775940739831037377205364257526173620240124570253493616418696605838785442082885193291660503825530882611749748445430070767612866190996516055337654511372874128284067960944979298868821104513536898650006584835612442592065474121507515997982707625799437155349000768920689514866483658089936354042149819142642456867031816663050819493715810953824829910260280614919708878715799034583640085576413064311277368513288109216356797453880565688980890547900924357389407188025917361483111486478784178928744851204120337607734301588542815950230414322655570786822988062422452285184743898876897074208284945705048738174883504950040113974792781930374152567202416131423294467872579951972499276759674906951042752420860271590490144488639637712268061322743179658534874321544368104864238687838154221396985587971129863331136334440079295878656911589920201191616116104837280949104833262270330453766657047023785939014492833034899575325794660802803779459774292852653957394870357595535349867415119232852220792266404971004822649676381982866345167692600973187008791704226737098792773733993610555563361103400868219100357175129579130280285363382070419502668696891773733214750315170749866430979076567356041574606358006126508202628587995245637860523647575437718380021409911087728712819103103664989291085401612741905092736562220163297586564280836981202093354922497072747184959246024578271225972411973658410858857904996787882237294459003755978052667468927074196100960943022871376390139078551790481886642122129594435772160693550239539505570476850337367263319286317704544165517561505214145726663110593115934470711144711671743142965338664672347828141272851597836455618619690396277999397700619485427704036634564319911980308706370602327049825281964440161575006078227553101128831297594227950455287874719892792461708610534337758104807187474571282481430707611127841865853475545594232101632448789281259360176113494101107206096689841328140623616252870944685642855290956670029987051878523659491856746036910486703427215650403914056620732997070101217324397021869340149811298947520336974893512651987300721075578094736396892993791285145059467985116048911753164473791633659247658825425506508320466076737015175419786470435028854711669358992873238612762682102782655778240089855960373207014027370556400273970993580739849294563226754127741249905038681301387892315805767948378313405433275826194962977915285626521313312140157312714191989969831528085645127576385514392070844812503201806952068140731297601576194793435248565582553972065775550330823076427549752160041814517442968422034422863959926439095493112503998905750862160655611930943263408511418938157797781093769206406633892965968741921333956377048867683407510206557875910180236101588357215535760925878459440710830119154784068883969211931558145121054616006349662873856631061348909941529589803431794384206676760214571714754537657071267717574702432261519248953962433278166132997732421399267516001434495971635310321525876526689002825408406488224369528042404872923440759107780904038881279716485797318137684518328648790524737060046383963018914554010878236968967284401636659909557358924716474097716319155570733426806263504678894396578039522855314754779213977364833717809110868202214174662433035421331518139252387857478539800128558550107108006993823478451324447614686558501949532559187570591725015630855041730646496843321249966085385013474064919710963199763217787241907443817378865119569248923823111893736707468236300595210352730967872680320711544209916257033500360027105024640093919988858721178891397183104612196452764664131502666659440051824259776459172962869060287746510688381411283457039995229941868042871594273781946406132243568471028492442041415917220377304306404263756576536466699791083604279464350361119404460603999086467105888343789337661200232950732462400178932687700386273251957927347583521439544752657181062384243187483695643891242596581787929477643527620978609613849181822941664595957298278923942742432656909255114004864047785206175921732033122830557704101211147265791254952803460670195939844394542429036532019757761127326731604845556233368142866289026284153931730254574357916641648692620896941167708697577594213470361944194135676793905542042853058607734209722242841249878770695994728725417744713794089798137729792245974355761076103902757342391624141172553126224811386472708223250172469815064771205895151109988149874119386708876659202012933657478327397285414199538256698572173713661706869566540520485589614161709937748821686907137629767687679814168811876398164321453851965752682911137213894154857602010829091043977488126013265474195498518346387589776712014331521690715750164162700858614002397369610955535424814378642507363092169003013535308471867959069372845130558139873353068220900611864319218656457181702478608280617471129595990695320415340538585543036988173068183551932617818739945831085773148798789286777754467184990414252095037114735955098401602486374424098886334422576313479143532459416058862584627847604284473089286947615276748553086082509968203317419374468630735335137138649426399211440793257727695678278624887700747085626356758308803432713787234834278187068824316812130265263383154220170566914283268016610573731941172047518625060816090655409093955927310210750808394817098874283844450975781845934837776791618146387312083475543176243337032629093563937480765243504174180411929410376370415865076205656442209350265626567804666015761625392935943209075753365735182339329072605796458646669473529510262452678877874748067389865568262895180297832551325079537077854885629441541596629942259333269261466568231036025531599152325095441490336356050907644566055585031928440196290385023684621522391768606400319409332733306276226898456144257381542357560002860183258602767158336864320194334223565120546920963934651228277436596726811430460483137538513873241980236543408386641070638748351857771413686425042478110397469863141214913947532668730855900007825904352667391716447551268411710412524089734511993555495363045069532849612951358515109772860104587035430284509052476309131867367067855579285900421027937460270413519162892634196374115168521600557647544125533487916634402465876439210798907129164650779945182765032571140860269001701463003636055419357443035168168419737922142573072064355353125548071942663003455904936478049050057692202092004877525821148412822948356583498567141928532651806784877037837389141014172892478080621192027526652757450734960245987381974837576170755946839286136806991615492513818264677281776703168648399422412157866270351809849489964731169357390351426082608917841518217463314314460522187512822001656124181101063715143719789554382267610171296270518610183961253607573406439777367127903485686438454733845467188924334293166981641056833365704556781802874860223153696210532788012680125745834676848305453143120714369906918006935344252717788606802804360260692434411744566360692475845613772123587219012065903001131815102641164062217148999518521783186400418770337511193484946083257310560803083314361029542650113959040028877440177391431834850984416048750328111939910633184832018653469081385954233171629598709653474733125318131004993558878603804949420652397002811267782752861583606413073815219808730199826054067361882903817154962438559973989163092468319615687290020384112531152639702884084420330315966222280282234784645767432487893669515911859888774505111012928179982897345143144587878872797946726775638012114200795940242300510651436229537142312868759084723463573035400495904700556663025655753126479683111529658567863618642385993970169416019275280928002334547029248726727094854398296873766757117821491247060803627497184703146252150830477493241798040181395010233838182179131298402692954566777845466650567947419052041805291186811914997576830194470635539393775184896655693809882680269967135741024870980070258486109731050766751337801685649357959572344568364432297697588620072067112316418005650730868677005291075849544761148229276029689324113070380346924078215963852226826618447591344053277996275131374222647572467883339124103099046557874759230332341947282853580144678260854320896664806403597293186007575740439761012878453459560387154937802846697638284603259366083294338689173940736399332517128734008498927189824871379810432037775483757506690970785250663352146155759655457230578372413481761267711790654995442665805118771895611141916970713323048382121343588494149745294324349313096888730938827480787899973711942912775612802789533681867200139125512029071246274753142138339567994248427293853818571350287524286529272208317373589959555817565989031020870092938905397203376063536338854908171623179528999042296026437399435049743576327994697348248281727533095012700747656050012222358278610874599506469041767228768583355851774691399218156958722665621425155079044960577554263444520297798276038274364648505003891261125416049782047815414505943101862593627646559759732804197001589545752075926201979856457413617513855206258072989786602007881007470221313689100967473845940674648355967372595409511931364937462799671867651831874336221274643147530626314883725023474321061157116646049985192315852985048199882754826651237291479372968624234037543858645164136695400726017199017361093243355154735430464982678465947008943676130165771142298396602082923559698079646095044568758639736053033758345699642034556908324272639880562090426445295266469204196255657846638475921972390310550571154874141528854701902565364967997919400869553738255086149602360403969456017711977227640437115893401107737156159990471654557449313111456759045877699644128363422383050065251979313103860149579430032558823878101474885736066327073194024371791016669810993349045336826931127984507313065803972284459244684001151216299527150444099289432121373033105698002685243893624236491786712523510936921805690310956501998218937499276443123302247240565318217463143866642350484598673288816381631481458120401625976450796956244825255168110204452621790777871746574907827275516956106571605663480112414443895547498572736158048281153778176540212094383070074529984335133407059128572518789721701191727219981872136570647048876667250824672196232551985730660033905610895781960963209564993569461838158320505300875497762783771938261260251881439487704950825892135807489126433048565723350228497872565962540917530057407319989066888580026880780981240022340329636465907113714634184844827760609364381991150435703881665217796114493113153004351900805515695816575996472941403459162655781359400823212104577854443299951659967208589760397164309341461848602249241272239611045865179758125442297439162385498890336899525287494134896918360119703332574415603357657306448733456885081129301267789759653695365741908076772816734260014159943669628592067764708539338417077499156832892297963467773075737770279064328058468535792415554746144146593454915028897272900678491087166620417130421462346399645393474755813323180397052932984869470212094160187481382089087755552165251288210815344992861864647189004151038051632238482024270477946159340220186241658337022673711542512763329216407718836010969344305485939750652018355486527039388716937975164022907149801276926127587316139827673752960288725046029654638357907006560214173561124054626549960172359167568511987573468339505420529926879394209577575193921916892740305953795338989571644724851537540663645978738386098021714458604834642764568465171456653965849569952188976773806512173170790873016059983419485004173510826519636032471584717757123912096919255753454098869108109845913041222952102749979045858468474365742666465569556135721556894397932789424273518486699541925548135493306957386844127319882422770792323062280437075046337992256168401144548733621531383607985517592407565456079038510291723716007292121678611220071121103462708131472284491715851598592925024214385934385347636414340405134593225169884964637533675505985155560784121312032613599954254200579927777539176194130161395517576202654619943759186510951832761204165252504295437186865516475865944721617992709467766638042900931951662419530011661502422026235831162257198851811845701351478256294893696161656524303776604385358744369124338489124947000612749998639270257689166120811029099464827523710616432827771654123109164347889741624196652597988893185300713730415077038668406251150531711283647843057794041491320834214521111382091425075362966799434597625775409986851007911266829330354461429682716540724886199070895607367290339364356083002485642640435656700296521377410057760999221594135868615833065893334896560892494132181308624883470047395234576854878761351887712523172010763983036338583764457128544267891390072826700142915420497547321226069151628388908957988155900818655219094387794490000816197943887952448896283474665345162575012695117957911299847043868848925437860651933904229204024439980248183948759466784123527208687140657140375155852698437874375034079351611920278409755603726789268570895749271650967722304684200589587899693588568051299339432058277958291898156294642458778073615915481781415941384259484468493089917878102928503806232864234956129181493379727545898938548572238508127790275223900504752938268940546276354810051533894176749515621380044394238236112125274772258294106541068541699236708878416263411621663325789761492584708546509654261742482663632519251957371321768898831505403515079857095119652262763646537422961152477433594781469618907340136151087872413261370573566096918940701344398207628604369137722483029852396187594113642844749794226069747629984121684796044533027210232949924141793137542426997791008703019026344313421358323994759320941751936500316132706437105663507477855318048304001962052728435652858306930382757717751812048958005770321140984479283225111739273789266710442675529325544994425862206377846805382023372844218849688015031018065150036005668125393407236649195955784780752213373508743199453077190987609632693724099627518820773756614550432588744134485493920100585773973086666524588343375304029417084612358058437362954762953568827652062905791296221832501881533611729650844733702027258268946525725304825853921256377670570784175528140515298770147736399607070986154529483994139802335741614367429924762895515624139412131662999938511997187105463376976152101933031236935136671201548541494966999721014438459950307976874685755044378902315764931192373936026037800961801409401031102595939740621224483671588752004292511264964990630897857331277065668054113571245420946921087072706265678766705734112050131953801830566385404123902897545036970783143685362284743416420659033524186671500711657535782430991310582000014135022697858714605977048305355475597959500641544450662725463577256070395738076905896452814168229889178451302272126933984967101597347911731795895648307511476392116003004924625616628482605476461427996076669283617184172079420424882029486566722845289158340953825444887211144634712340028472168269508929125023536056685505299689587837739153713882431321016640273925354557839193848345769063557484589868169262103858183827207688101639124890089991648762591238615479898069682741176229068875274682671347827354153067164467533004628187946917450951666240586011223918636853152413972760656237371976294025588666812292399579952432243072538850704385350574819177534099436996889940540578999823680553893358769198010604766745369427603139305617720733390391265962340381404877428708381819954203288062375289492648495865142486350631387782533078962598757295134491953557966367150803818468360082448869249321484093984453320498537069790205075190177773559101751486367468922566250367191131486799922445800773612092237760019214121315211979582896397859267670293409764745864727077371975732507823471345544974709952410113028243998397343454196408110079636530180736839418531342576295001835170435024896880614225999823492404827832977067606802835640499035312774975399634515035521865529968927766359166958079921854279337773607439627552361076507500018751701533695263984291373215369693003550634955178470871361157612870454567684538701953457718482953360430124466599325351380962807351637442917312100457624062517613682183765129242618892148818630349289448134056822890881514401246619844237728497085806268505275665647431135350629227656086391684690849793283338855522851509723804209535978811217123230781255364943908634118119861471901404743048149864606132809069565782836223503646665632650769174506612529249163920949223815269267656273251100248815805533008773670747357588449365043764311820772968670128376854284254209555956269565315344785488939238554154736343222422733758561361236103947635668635249555255722282961634251764516787269310453316674260225081592607914732337532476910728325108386418057459233391842711956580333732641189772605894961527465899979309639429409665345010486608479071536171067563885472470023228151515930214139961176993655752655651489611205196891272277784639798241007799904303086103827977553383371901390861798874504550427912960297000844977488721135538648310129050270046952410350488963302592386415894094824228621761885313560233826775189965593879837216266471766181114190289900009610761419287665392092640917882810093339506493012874316842509834054244539368628395953264086771334282983874937867799088929963531899073978944911846404680852159300434571572278771195055256242538549458655906246832325632168875171758829089579910576120602679174921677965544899512541359076985611074985868905107013350694233609480844906117081282551025242436494194679637928379222825059053204520057194418383392891493131002863656518715043887995869679912454029923397015567860888935915761880761038512953601013908349837247961073302726021608336041469386829598661128485025333090978630742901028359559234150020309530413507671209336685387488076147077862971511768869705329011961942969906182382609780719043461908311315487918618945707525665037540711159608063616282023478900365412218855050256641916573527581154368601898214303055330779161931696370865727218986224111164890844255619095165749898207794789301697016028448683527050046562817860991611042645815545016509489907982315512920675823830728027589904011541043571188960053671009034010415204641470849678883907109667268654694081761402873510885409934640247815079642605189189333162766751955681455908130976041974754888888177717514024279172904753968308656590026432011786971132212543633190866335261406859249243094679045057822280527609777900491319034278554697006587728677648326345443434358539279084397644339101898275389016582869328602331674291134111990026597260115421083152508347518106313054997400112403413062649616496503117552707625527750208417293731568534755289524305050065234367485557781881548030388124110239345909322344997108974647707385002968236306315667995390041632296450735301615415075228557968993070962927751509740285285559959064653125045393420479552890577942546686696239038334402202637771474527324783463647509931186839570033944659566126769452559847717042762492087336026185615302410853633293622241853602364808449936013699107998912730546971314661021373617758768894138486919499388156401018849718108388867171265839793696554068544248143369546217726166440474234288219639317203569370244775125359079871658998803294096167464899035758645571791835009891088681588464314771882953908288387156192697538545990530890111138269108119770497760265291992508102815085467402409784456779504584107095296113769905950944899003111291542752011075133935390287186283710129137328059092399269636500608934739703990597055250015296842401526025366574519996317524502632810125398801139084665456388323034088055706780177841574001177853958397570767821591775259888061102176106572084781304444938790976661796912617618984316290737138368122170343328404740041177282773472444989469328683816825166878791623747062996438160575667455307075914953350168219449156158981145721850520018145384615187198881416577191242859568252403670246507489959344708094942242152344532172336991885967692883635854082211627355665234467911371491196322365353248364403174286088925281590576649088218283422529708116066490286551453562759069257398130473012204295743408120958615722571489779755665745755597373355571305399527819705996422110541175400304140609561261503407621334070092723790874618564478357773240000611652583902835678159559285402198678801152503683217001863106153981392842211464046124262118160983956891141661163613621584488733684720020508367229790738251584955047674923641837375602103577551718950874415671947783258851460122324891532272897148032715637759919958264932601065953686320740191029270605167920670755875563667924959985354837074881757866167415580684587932075565251904298334994498929870422235370723776735429455803420061147309206846744507902773465959145895665671779450372154527713467511035492042467264584565373417239515119684400012189277513126559888433284141786869607507361211953840229464583640874173469030444739385131830050872624191450190419352093695810207440971571752277124883657285165669488800595181112163565961477461690458964171714124808184266418014151593727350321376045270179342829379760500914873339603811718814382075269758308359913282113945954952863442784085598204267060318192703153710639431426843673591992403723334726732836303109567280127616878608209062989459289491299800199119479443437752228915616628346168874549280475252133898322130026569418844043669195067567446059480359929196631454290358732114057420707114458024035907042348880040773103625828385841348817534888258297118726481403263876651007879163462214623322417920493550428666564578119333454912896598483995623296524504040891346147493510488082769790209105316544336831221370691644422945437573284259478604527753811951293179284391840707775972971083849180087978996973951955528480790356589887398650432606844259302386681161961041483439844707636292250141465013421573734113031725984218212830104781631744698422056444935030224596508556998218170934769675620024526260278055212377482200300473423815036871190965584377076192894314984412041338192853303763248557279073273699344579342087086803999635813220902550037788674435930205043374064501982632726178037351235341229930149914990815834536016443531369744258731045204231372607836001820277609619921674980880246641743823753063836737208991238218049879340353857744719840201344833963644832997292710837438847235504172589221855641536791664158709606844064955474002744828075579231973422107566529999428299872879355039233772079199498171488417644762488933107767186571231491618956013193784818993147590469582691560631499616906270223967095848636287209781399868511436356792452264988623864779062696917495905758715467693015233549427498367488596608412256935191358871088097571681886310181412441240518530127738913316390815714766573655115926486989444178386148470117004027429614344630848337951420516082755265509219875621122512502651719341679247939821640817996640750988794018571448281675793816054589646417980929498992017958229751368863122247775428747918519031953757814909396454738435793708002149706353515709930812047294030277762195095212707998562487716907848610979621089428986479586180440959591798847962489099707373443615651054951220919615700233877338777927388051093026669485856198131396341352296895933238715400240610254830264669040563830083732489846017062608138407007046925850008578917546788497046748481244498886701318764048771596982192313819418394052993459482773418465220748290010148242842808138978215723000597784464455328275265044891274067756588601361747939469750062283224836190957149338128783652908669328972507982398980621524129532224554122317328101606652752460895189487619388943224033041472908861865582225519954632260661461456355151440671360140382719412653342317285655954616842188688774642881088472884857604099593711691510326602793682358556992824335041181723923249498783512305871656541559761836769494755420036025249117637953945442967256860558547139600438240236427610284741851055490906097316768562943049785085088989002900176205635300583897105848689846741044648365879997890901369271809325965941127359115485411819207032329473914980121246332114198358327331215071260296408038534402429796241598845431290268395592333468468917549132161229042019122747753826469668242515741132801805010701432891532498885546201333767890294626728559898201414281066065236311096495765600016277080720851049841046990450917463714440579668892998841750056067444101571908286491615233487350992603739313588747132189919047790634963209356849705923113933626769571014864199109114006049535904791445813575668442845663134045655981056047682494518242226773781816924175650104349807685279501084401797437946971837961249153583788964901213643618377235774428356107230680590931338133101922331323223856301078168515574092234168122709721012982306281405132558860464888169021288876410679149270557701076127297623877391406324466374275834420555756060046988850531230314548049332514719355378935850599166415270955586696389360145581178190879019614944964946555929132716197414458953167479640003385684933080597653754887733373834943887176588365115462955985085040592644592643996442149706823028979598812085762201855463072649501024591431985391040307772569744741493732322025970265520619419194642324022235532807174287497221004214694278534306549809140532660916183488161884672769613990869349282835314342148470819920490342322514646001113817625452331461230779357293303094701069287322110114075687641216178039051966607452684593969892176452183945794577370307750703018075283953930495101493242951577441725270947916540448096624556496910071113804314950898186592434390577708487419979172374012089698023750464384785700023791350241637270478679897136382480947628045661188036146146485371384754376342699096294611821676049120553564556499017144588929979517020598654228683045250181613163168476042833922319342946452592114645927737583081010703213334838651540400143218053874367550492806408337992643330998456370272912323811872749093568744923331081033974483402575766282802932811096419411578668116657851144258309948259735039712636654803220717902526969509124605401907512917869538417541031483281400318018885968104341059570094845208489911849811321334016035865963028999835330041504340380861873848133888229278868860260814018676193322492944218818077062211723617479915535509240787606010164861207000550506645796213829020181260890639266397084406811121122028202381763944046143891677716623673406809392450591891889151382631186031246381502058977036206418141300742861150567489331340372983867160974337576359088765372294582404840581801476076515336430713010344149478748481847233821461341487159130085482166935747982819420151773873195937636100712222597844945864451152599983148915928124517516981398578383355428823860545830377829643444105113330677512025188513221380427989801441099414237839986806743262169043957999664580351494275169085843723134195478300362646067058370018124518639875254369442017746886212570491114695601899367448593959470547780731470769159254239408528640727896407573790021878618596093342697471963738496641398762764750836203691985316723282956117478055322409045950587034553556042673476535993494661957332625316505442016838055346673779994460936719620378224128456035803359841297123094212234903942260182193621139119963851696191657652165827636909376902443629107910319934549405458346423077593345013450794002155513806234520590024201884771930059492507131559223404563866974488129867528908186179963132264275377062878616376272962391521522755172079644018493265028089160650535491153683457257837237494915311981536654927048989905595297327863396445140163987503717720817607393051034808441380806652457073085588754901206853016577532983025344204239734663803338631227395976787266710452545306302019139338215946476660110399481140729382701928411794323013171742862357504386805940075998029443228455066529624501526214344860562519044389049767769263185519368064180855951138411210743880095369532599571924911253814717080637955543845419600308084837010197182015791089734977101900946680351326060944043832820345239706877025027489860058330971162991602379767343229161178156286753850779541585582997853628394404591002869277335231724441784561417755955464977998019383005201773751556993975998730429297169588061876880756874217080732721527837269974471310660466480805819228140231908842285217268673064921026782097643919544855702734175818211030953993503852443845409868919746569668770667295121316195907838233205288097694992930835929055014951600870297070672498129662433061359331098328469069250553717719323468804802871887787607323801929970631035193976811380762058682836216272479760724146470215388621190602909495836542814883080388271051931598725127474739775906284852632064293058767854783008174068042128687842935475985444281394214761118065838957402470594853979392843404359105502768022301395209981033900731590591217485157743533256391975059331709516514564398634063420883124172635629861795554913177446764065580935982719882004736504812843555139761691842362901151307822690268978044579936522777358397126594098795086931648069521258421207187324992636245474921848224942025089038941279031048932394501313393593538313035992163662522940574034969992738411178169774398363932623154912605106371316507765581673052071925071502314990706752038999294856295784223309946153288407696737682925406975366614624389246008940846134133115853866850876410715367430313900115978971204416128562880086444264639461472647642428816477458522025454505629540913317852093823314759119365167537197540235426420768451923719655841301877580699776955614802071145261395126035412350684456322619732084280774212409278287139082470002430141208438804356799571663571758021045501943432672558485143722959957626853621504705698679973508588472580622307466854573204962315705183643320275329439413354146610110805476433244222001986493495731926675648064642210868482490110163845995907147040801432283180269985104118174245394694233677147697663335548291488037190997626511921632037681986491893625536795694296410547004367575996752753408695209130302854344639130133142699319236089917686584851637560830930204810667546939802811176868128001985873418513765099052897674484208099545903311583785994305996805479817820931596541589101163297886242229694495242296442768867943100298013534827037146921989634397061100486784473222474589569629881507004619012184477434493437418870022942494749014515814401362330074006391274278031664097325636182344526950029552239305400894493936224264590108126193781165828147093277233444768946988222025279761016334506994417521787484160937180811663447220779740008906728360886681361370092757626752625729560526124083521239542398881906133365090562796324442405640917919522623058508019613666904823072163543650975299268687329051111142392769629215992319747799075135127806749914379571598983635774700584143558129353044640117741246485277920737202221756269108046717816730445576443250331513286379913610947038184363273614530072442500734272722651584887956735810372904036772779501886204742447508079868274871328116818588915354269207566153793593272035736377655245659522009642831662872314959374624110654999072836843573865412306078200385923129935518736853167819076648097348463481100690387991489108392699228775497042635800136992083203811720434638000515541860076076599012704640805808132762748830225982765626910782123322129856585066765489902336531615117467233953082165527522127019854812188972077667557969037184609408102232542228725911426645035610877498543832849581304955884829519414395490574709500213978888552863178034719397549263021725144680771520453016079438813980170979399652042040694630121231270952920228403938251568047621448861706505041246366382370671893220598600481603887859284322220408348885171525309530947692313863086327961255329623718855096124657285932642322619807473635497300651486223536363123768612157484679233052473606880117562569267283739950488156483828952649950851783643547120681689377642837957281620054971642999380989274120112554995302876733552307607676421259507619565162939613531792819152839335811659886749577010806200643575243471684956417899772629053727276429894089485508327973236329951120823331281816331125229250171617454478773428980032021853644559388156664476022232809070298652084666296730601385817129546404912084984536184715847756957767395705596374917119432811979704248171077926605135244673790271721007049518814814609814707899007539576950273104272979313498632498616476791001472162431356816756974094157954248783392424148154044999439595102208717388688437603364554691970275534009025072408674800656123651809141859743916518446727463081059226925263747562812140818034981634620412694682091322179584581024565149776267114158038523447720708528783667235885934932467961055860583114510824786968635860280467126486897897385125763396279597618125665924446700131117994703196950666994635623676145555016814570630007809659330520298463549287468396668328406128117237734675779637245870642333490380712331774350266059682669242836922160947309476828763578316501263716444381503567046338812373820710936931331109012641518945629106968799172301778180734012914422245686752326013849709009375933546858042352719711748603982857194047450354799051019296238219784853033084487324038491411806497629873156752840536615789660843598338011250756071223387663013220801065562495046428400729969702788940412228991595555307707684775738300896893951751389857341911306591634731067586075620065224521213180460395552579716441885294970316514042743891980115867223960717730884203684801424085672302686053652087838654388124859236937752680584875803809637674781831976401551480498919183664969472549663944429605339259835495880961364372757836711159027459205255735175641427860567197529233594121534282309936269326556179155820343009840436875380209732934538136542387885465108807901727782224149884019036577702728150420353737082060073227694599701640831719434626855970667150913630920184612562521406876504993640313807246270152563658883483125975028281797261907399367166713036224490582958545706280438977823319444245794247771510903023315532225477914256292830400979681741493847117512101068353523115746416929291074054884089858477474235516373621051368396765396242043772407245054911140373566764074450492102991266358343609933792802404202183309821393804811857442929011552293991419590950045218742317503704739742063516742047274407885361916593010491778953912741160990661029373100415508846152161549838947321363868134673313263506287040117924837939103052881380183450368086435480036920564173667634468573611526832624282273200281780150878153255718530815067673219377969300749142635851476665598618343225995406596538955391615141080031277116151069438773560045009351301968295772539592032058910197299283262658777473749082812830017132526678272889306245123939413256283417835789204465455405575140294452441808128258783007051223196325534427972052317701018729013516059377874286092771363035106508148268063186773358626076568878566580593374071993488743716705432587440837441426831528090120929596294962097782712373244565530519763442390622855134306121007784241249957586307779628057903581118643654631767665651094505136747662704064983432656905438013122602415638828704008265800149228883948908854785340689265646947430635331710940274574888142447220793923557212247287751113222856433198900748138023510208095606947681846776979779275679544171347560510241178609395311716087957427448705428238257372566593273464305198234056575317401501230294940221243493073012411919153573133273124868445290720527052058441234933207208535606817678500255184762086385534072030546884631588597638124085774916096611735777506211734850123259274682830833026898298335645110059080645636385248112085430850041992866898112620834815247328035732937520049062925042947194982633774010340000221414434451571822944088673366742299349222923766604897953170975096919505785934665782544898672262625568151267891184516672839974983175931953246587525014082015597806962504488950253979058044690390793834873641900339232138264172525243015616862653702054843162128443793687529237461914534768395020553164813815558995629259188057914170050505879831997246672085688653102978595294958084717362504242947761915375160237489383018024699649384486486429405623610299613413364793146478731727268484122190288747754907063782279334408676468940687957057877383258998752912973742657979961130448844559829079954556988959822028411332379535660298066888152965865866535577815741083649273642430311995400410673911749972350779885675944008487977113878462602478978210016728765324844690018625088723101826712710509101510171861067285354343621256325098265965425353072130440833144307057647903595382121665736332195148192872733584642256799322795248337223016554594675798644229636179012642437025412715349273126022954364445255271862306685427718101214248339585621219058626802818266950437654465306095856557348973676409642926009172049634120095136189009115390472070244284374741340811517019759209307793371426910088249070967588889432045487869054322990570357529243076800319660120921145303555462328693535164200978156335698731739303084708100622802705249397977397166048922853082156977951384936619200960683070253702409466156826536641560437109428075785306433241458736655024288204718251918207241203919167909638137059219247422287809731189787071622920419468942753130838838425399948402187630786744673304060925029417326756364065235664762897743165711504866765343883502698819873696989625749735112185932348976246064424216339325445135430129540212457461424085880050702370570079221510330029385341592749401785840312390527991465723925973311827759984487069131202503126125805741307213228540460700886805067922191896342974500464747747155566721201589881115835073921736806762036297736060208270907100425389046383144660206787235338155191328699572973470507020307381948842828285076320925626555593434685515062422952336722121060689057870586818422974857691927901857744794099917853609916718368013852583760846238687467449863394299141640963749733092377977896003949770291819348714042985570984128043885202712782411021250103920727692194543181220372795447354394433579898499551261123375270587986478252302707103635773511582747137670358857396243920889215051891032873636560407182142948013151172789667440788055223301167606025627581481370762924681187505129357914773234977999246160792317127945744422193418912413383592390740915964637053520600337842732211796908654209089358380906533204072531117720676726261366551789126627223249520640405695668688104269346756123256331424798333549177927012839083212009602741791264226592073241825977450693861837725535075794767370025117929424275150652838098932096325912522690885471542269654733823587622043269876691628967280445154011351288998863781933405156657392943995590890862392500195605741598821579791394962754909736783810630960021939966688540671064626245803344814539278725949985888838338670063664634201889675061923802995045630164983505927938225847861737578827226286183637269481924134176194446334898173135571419066513041523636011433145445642382502125703150896861801537463368280411015106756530382419426167829082641577464572925473386476839424989187872345323627952069822458956900381322021429877734090776672495781930364911576550974849825436842904693439020007562936695423967732013972939259084713196264018306966850782700047832236896085884142363629291425952555222410892957662987703178830738603877171838095264841009894060906408082495903813803055857471222485953674796628825261333751058803465855425981869580288875951617996809619582607346564953443315164310305849861746072590871320746613199569552805010146315188916677929832065845087760675501330488332852311141115051014081512884182577342814628510161578256015924180364779947631260288074560686651123699121083742164227428245640819744753911232070391728156450215843793952346331859359682772856493863900384564368178454372365675372226285736818012503413087005357768094071080919859762591595410219270689646571061501701100514582598246475981015169115867008150067766058893731358086732244689246202243929620705221540332758552385065959369861765442718849195925765250387590180306346704165719979809876703092700701594991101666267462119753852356705968513776078899800082242326219328221584723116875313628224402013169216298581406515422020603603606341151138401301002207259954304774357979011716162294593009183305558200281044490424079030351227894200066131403504697429970066448947147974360807600365825893116803127811333105027483156780874916122576215136021467759551743025163457531344538967827818909667608324292861937702383399737570117183280338780535082963436155364060283402621255594717204525625542577662876149903375650414827132657516918930993390393469756475447151788793430448650003099030525693133232085302885636884796167999217006297125012535590629848488149485803630438677458931335907158312682451891687009398466449024077154355803948892896011498242482514165077538914664555678217837208294838497457749767391300246631164655674295196994926983943846556000813208274216976781042105676916626414031290150310611403560415056544493750939437370704046971222270536058193799927691688418852662062399216143540104524182590980911117372853606836119220568892454132050498120913783396580716938534495183303372614834251904505927909509824087894876285103873275842287477668289164881784933784119309371582433835682596317871045222714467174114573842320659351275446229509272553364449003869961008560781654233671511958755710742117752684266833687629163920965339853676260493836665009324991828818965759913475112529167398473872199749954794150931590071587730470098400009040331612916123267056607053923494412319806142582195897081274765213297018907219880479636822747932540099569813659385909407198272182365469466744787418608983777316339339996828654740523438170436519670308924483605934637697864086655548054084262954348491070526068055417520767374621492470218325688231912916474416617780255443780151537574911140702584083867846783544263878454890549263251185009021197840208626326469554255136886364789813162689720105946933903231314548262096753289983314273348830613122382111270257915718146498187442181176963773566209089494108549598302154930828858359738359642790720162334340964296522853706898334763625301194451223857595317056054173410442463558737923056942559847852469709775952837604948125465879979391290497095126499793569782671029793636723085156783128616921961891622659578241845109996988491899440747675491751610580803849685914850860380671607516187294604951997177286407394437238755981785524088636922449736687236831300123995166912054838001904054999757506545453193711308940994334996752612217874363554106531131339641251607695430558892540801466158939928219143722336307214686420773183968893595239151995175631477162584891860681530979634862357485854951384674438428046831000699211974685009948958650946813766411912858155116018732267003729493428867675653612149137889677800837869860327825456735675161391602783237386245078227514458051891967378591560487845500239768695840448828611094675507424405928071557217856186346226441511233715790614308351077547770988189708602094995300835599257508750872799048480038557434073246607282535433646989882981739507819917778381992960080802363493888593534155165257482552726274186257939936922096526478263329778273926583852200132695229506341650116836250185634144129313120998890575950434014850347922689233199307144281531066749881479993537133733903727054143138793637267371903155378489505229168487964615714210412066259697389780363838849655098826974515124459832593792040543817039865691318140367752894583617324010674929235134122383972807928167437052631295688879932977621196371823137594849876490187907208923625439025651079924514794874706046106551615583198028946944706608212375649703541733523532320502860242258479953132822660945990288769231905647194138314131418268175115639156789415347580770002249754314523008071968673639148766226728641110168834019546741526262938105465144920742813394711159030340517086861073903239865189905292517703287397072213475811758809456944166554409168783522286423827123766787282957862800925086018797764182064356716373304772221277648222277871393235612190275681267051389199541589880081100425211317330165258170754001389735222714088361211759792300023550828323808513946966382810384788207013786658423762235678692526795446378822964611487182103572503692561108592407160224998567459835366564316933943473914938665036422544525125654666409402032212895697529452023411733452762490453110925950196142323839470006700625979738932086484250734195365728207464125101514733053264837521802359205054023323215537692300799009386050500439797760563229847417231861443914374925311206483856260741061846218993659757467744049848630866325408980709057476569329920069157023933150817398401635766324213427281637714938664397920799415019492252087096860061352262761630828776824413626876184953532871053874316780652513514248714692909016549649154906658397682099217299592323661208308558167250704943356930881078542480405136427034185801829013258844102876069780906832165225545163381431187069464444899015240397199103857648114510835269785913980867164754015348846074565329055855971354211775109688582417621196904203607745265737317459785729828482962560816662182187509176939446205940183013951624332329774448210327838995578570788957123747867484026323172753078183011722694242498639600799102346548048145159543265396837825116989674006329379180901067353060672599927164383605306989137014269837872574821306464246619044045154715777553603750316005719037044247847661181078721550602197158613325377723382768857631845725762885438754595617380643734908709909655818399365798093694414261234059908050953695206941268727866626020480491339607613775187053451511626650673369749127480990770626746571083404405214492849686220632182928503119915879715886964715883003525645354736972024325872131146081922437559791678302369726380274026144667732516081519739057003395180526027470041848472463281613087667399628533679536696058370722728691489484998163187616190062752972701525536596229857480266759818025894272688176871035513571308364766180171558078596111656284874819296858437743427979031576157856102315719207410325004861484534518487139474607961422894303037295732533503122694958813355965370348968273928931638231072224291887168411232030609897742438341542625183828831226127230950327781407719812510504402800992384384358123740937755335189463780438143849203065396242348046212013097580490027036275898475544988708921938339697015709620465352131863834747267217320683125586644764271104912250708063808270786098510864508785940859295499976343888498630069215951188711840784896018694583681144988618705415180837846236637815902771112150113615087562091163906419869259104835814595020259039247601331524352014932003718003641802114944373249050817630375637701930837527381066318337962913731214512891844573814386861266222873811803216141529574318625886417884944296435989099440055222192131056424840577857886735739522787244974739657696829302095858862747188654441390586565405288476163857472021188197533343840278818356075823488560942625956010561526837482432877816554942191401904072870339671646022327919503259664401090562866350686614725218901442099972573297096956333029135231788161438268697370954794666498163662803746141651528216129864235540187347972386473712857881072034747432007954503378765348971206037141879187822962595076075227044249663348067706071529789458261047683588295722206779745820853161950902216157799142040010438132884212111593558793099831810310580768118788043786516277736347422447207718937859270322702782833720376642073280193249295770227384701963000180145917472099870077407303056482525971369053675934118584667877420569284837655839468305088752181242786740371624260744675035294943922668344594316821605802340485308435251137456720979990734427420354579706009808413382587923394680564996727373046719826465955437288257727688110640912534994829362509112405404933151211856312139177277143123897053731130324867536012608058749492133247385060665345676095653676189924930573169751451905574720779624259811399845769193687477692938611858156085586342607233774979988812035402088919568479028999990415022062394215755336327152362683336649457157485710239667969111706814072721966346650647940374944486603927739588642529689727407656845201834595240725731005409338867915489857769133513676166562012334299834779453170469903969470935163791545264625297035269171319122574681244141920688953541178019394832849111972834227563673935182056825419850428083631369875472528638549050158826494188599444791830172950476953226171273636318486656705860563451552501492056326375068377484421174738827792005371783242361302436938290133850516575604268359197298194054639095493030617629975526087584974699486062517026913469984692978565941507298284645737884917575895823666698527140593326526646805751640013095771802061846276586169639573386391650686706150447815788596868824736854664858559538200291356016574255971393424967056336970637521570716438252193586233691435573317035303212096075462199156417494425548822031926884638204741712883863447567687352410642268274863734367188356255387105499203081590134385537599761679404870000939008772759040727116778275701687437821758222757309526901843279296497268879900055974630038866369683699312262240923169058909369719641184907624036329727750248116090048539383959490296881765126207908924424299704699378892198738859182339293341900026339485263340437655935122794522334043237380628110023099723506389153146843624882418361912662041799263472493593654892099663699888599027354566645962666997066526118102016477199743387813939664762667974831880039212774967474442338855042811979287197365690158998892039996139662790245176168421233904805659513463007602341539109890878444213981496333577564047276077108858265962622750313620104136587030284663582901654274072317831185945574977683863618262290305212748895633640029647285061402247953951213538279820733436755982234839719880016640417782418414871960638544156150995605696507176062893933885868786856873527357977872778810829751019780490745715672475090607448429854325116753723152375941556734040819063762247735305312772402754363672910334111716135448227359630628294142063894882333047154106660320106385166206033934206243870698734573351565470842286536074376942229871258004613507223170779496370300559511654223057053117315465679479398568977800624591290453077636533867461759138797417192802384065897027778997405289769531742554962960360940993430275207430714630264073958345419717379932834254913431286213293864637884247302253124660589768283129189166738827522539535719241596487419788772543170646635996120958091023938515191298397989131309639824956732533431257825545739280863463708435475163825503408269503587569886743985995871168619755755112086609906597547067673892470488260258258602168138524486826693318009604818018902700101755300373067562011562328992427509796872459594263410698654703758144885556429465501325918512771384291372848542966798932767117796165645467421363997147825490850667101441063137409330539421141849973709420588630391152532363001301852006710573192943698978530356472920445067374463507898041629172729877645712845236093047616700107048298422211229869194335287858607231401898407331139597981471148157605749427239239889655477415998222957514935327865075551249310438741703569311872728896838775421492541071291212865446820940911453016058333151292325276656481678170190483285051007833172095484044654772972518187178033554916626282729819500342503771360916909785882604281806166961226754108971971647244449763782335641893391950307123308600549738596715387808033289079650520027209362021139183268668232086098898196811466297507044855264577747033769078094728236485932172059741393984709954002383298067075919876252396187222800088940433334320512219856697773793528693665443897118011920883976555838079557338416016058129789141622419580640947999824495637508446250352349440441056550303480548021102138154365662780625071317003506041060505124514700421277640078303259530440715204519037340162811248347690668832882601332295444151651995623869757387360728420518706024342797306998034084522326460954667690042097319934797200760193752537175718665903834876179150216810943920443405061243708204625761315164766300236482275977001983613927499829738720998778065802027359865868821665969537409991530627638440914809754339298720850900744169071997803160429481101805132152656044406810463369782602013955208497454876061563778286815337007267737414244301335095635022917922252191465679587523502714528789633264030510975857183224799492237174430677747111350540492589118959356521616338928804735400928806321734670131264499997256474086681695354873182827816556819960197222972995033932970904696823577211679249556429862652360796741476772963741708661499772683215243418300895467249713757657145229363134933893420506088013353132812183956739955433533373663075768953731553334128400439442739784497750479560600244485460442897176354005617852432546990141612304607567276158383198920827747143095321143259673715432474767993131856816706052446366112972650100149342600958614533095974010009554531438793251082271983194846237190969193190986062361178320447019380449739043727152213253733282423066145361025390969834810086064782373733910015891580614057915789912459819038939954355933341499335743961204226215853938308636338486078958349050691022572548111285966480960543361716224595903974579504040390785839350045964799268908007529948999578259038635206621209068226828684115955377826233167713997306864854253510371704891025303650948476300214327752523288503244728730218541196273157575696498880580270853979580357173899421625695589763843838405759842453500526267620377032439970198212070975790120607518006881151544373547800277532733593895006760698524695665528951911787229713676956611909768955401027556787490159985754263065985438645489884051511042511691331872911022422286006289190925929311620695797179874243988906245885857622556336922105787660255784750168835461829186203469095658301595748573820645178459911323840819910763479831446218725673608477123607009782614180880723259521446748730232774331231827384961332626235474656126236130692780691795848046861844326320221008440646243103847216023971362165184634397931597467705606271985975674673052564481335666228967996338209104925424939980300223883879026820783225222923181499860617031498845261156425342648227288232962768953108294266053232618487587652956290503439773693134038860429670763216760575684000361543291625011192532293566691584615116793575141170480207675629291526032236840491464966564794638260534539915092945171939777317387861966981849972475509441533812167422011595420702666545823737602023398294505888504661142716597718500677128615005767889887334292717260111677744999852983456080951390893174847541214470444419676222981716805892603782431278363366999603511502174165572339669533235522057411035997561417584095917175808915897961888485568308730012418382295303677112608333240489923055841893577423925785047412752858389484278198067622230412722551055952252015819134825909327939266652860445563021363413254274766310068766936590134404659992583855567099896293946245420272350435667962128642036276847001097575157290188960608270297676524071311631215468785525332076666604961345749868959898346825762164577018209596374251608732567635840868236667549982633004966742384559534896192071374244794463305975820457286681756743999460140950214408983921836404344975364253163672804556092710297798770254194007398311308938196593140441138223914605202393178531252599140539314602562647977899244059369481555694031107052928372016013307720055638631748496140622610861503721494945328545966750260404002122619691368146668467409480624866709066904344890710510996015320119280745988572996435517902276810009779751376598180660478951626901738523887983207987252242946126386479816021534941554226524438236625281308732008244545621813560047508715521218431937418735844904774597783226167074501760213259996029103567202266382741745411533958135745761905926119947014557587694259742874346661178824165309043292317350060719910562920652198671735638468390077043780068870691897701124071270188319626492782478854134803764663402272257156973487144792463858469113808896517180017930799270859290855195258198795120000648742738682589629140790712270061338142876774592540293450564501964688589849147015685652068266894557683473264249160973615093585130815966444146383810088114259382607697501219563482685523504774281369369742498149810268994539016461053729234089811333546057683572958929125857887295593768675047751259612058457370186341634089030335175093966476813695094433653163791109518417674262556791040805969680474789929753300822774167470491171437109775305079567330466044069476986540382201148475031449915558079529713846148594945742232427582399922890795498796663600691071202210089904995762329634966828028207673308886415142951831300469402853724791300422406987031381316473330005454296705854962526360578036672753946431546599015156271212740415321648744448899024446080044427446159403389350099836877815788487566290723377047987314302306026338684679157338185065238386794791055129312201190886361105530113884893366834755056229399521554837120848474855246744388552578665268757220160542181257830152283433755543101332901529523804772206116459973251901730174636122219921371579480631004996405152614111903330220213623706089924913961194988680952854756049714621052158940538584096969209950663631033217039020730300191441925061067276404870504086871610264402501510141338743655757987876317929004970370589853741886492126819185643662847200098257353031563800754788253723955079005312825813074776268325917545655231880583938120166041990146705534530769466720389265295109431521140407010986267035631646218333767191599556845135358782285677413755690202022238023915218256976143447993300299876124489678606781455461857960418820447317826406966384261293522276387224786356904188755812805444511530227976291851445442188200318324852044373872405985666860364197508710650484379432080813877506334461818266546136662514756122632507411943842390797398673557489904010300777356909627777587264967229804678408208307037145821280117321503561799206837583440168935926379745564792433391729735984957460031321417055655879541759174649459360247537597620195862615444932711073309331104625966992561476850439657824867253152948433083551848335982135973800582390430767241294781137092932640979337941011373727486848611298257520307207814381027697915117867537286737981214380394723590157352629472342813483362849605511586756319219188406774400238569803077722717247447792747768287827992652133787071115522889654966709466792772442107621695794747004778794772867117281291171251817674573268320548586626243301204199974495755490617380989118099464136500306364538387725149679056503564715796839522924309366018650682819178593557494276577701333924845848812619091200994710712762598387456699007100379905922915434188941617747288992824929235766336515954133333332287866630459724997841540114136961941896215930928290179691028126462034698666032996157725178271918226441314552584525156254372520862910142970670417033856950485344951852179473348771676109797306769152981152333532394984883743115774983390686242780345817257621707574656014975048411389336589995242507180809223544302287514703690014176759970985946983822326719962962914292871605335427185076148688769961794818630777555932800793484284624379175877689760709215067367795131248205010781424738650806973474464377654512603386703749644493463572933006265755597629118946562249166082438063894505564439227620997133052132558182908573515289003767959393060626972988472491064776339587846976637577934748969196598823174217355217954396800872238604588430831935565989432300398175031951961420835809712424078011215758093818362402439133142492485304675154266308138170093484056044300076605373720538174121548248084226501911178197807587901672980971040869942019886390097871200769960000163726630057515543296515563019895912596510756576126263992879719383503260276456120284503014004856600447330983086179863273892495916645847221538221733399842736125219857618033675520610620146515417085513371824459161951416798494871723313451666906776472874372485656668614325094375038712282953629556955561509634153646101431053079291912523259209327325304139231263924330954019100810562450716618501760502225371856225037763271596509972203918586526737575305885163014250307789083623053030334758461479204583442914160198460078252836026673180888053478974260103459836114834781574143655486683032311258877147335215523046929510345415915958150282151988504140672568339920181221844024581198362356666815253762687817404674460044370417289526309251121465247711271181878676703453724273857620925901389552380224789316414216728150355115919544663364649121352858361619205385657800618425267148558496720229769789956359507494319537121992050415085135530501011431120023105276550879885275373584262270415467035542550527038119902446231528629302252759832686971075532376629313704820528102782370972658467212879532016205497504632079941108218672700090610705362984729142222291881119852184628070094749662558064018304800448720452588192514838713191848698334171632007677848391158428615488543566238213341546400456678263597254652382067634712678241037820111335079759150893642673299978606068198961750673191580499799049977776452885341155541802515485115274745683852772177198058521852514294937039115720332188269236555178445958421492364384505127191705044597420055408162748501999849907170154096237554923000729765647270230678288220357712716057911149000688898587188094056402106522444538302090527960651733158447341148532735027145128214619685046807153775391560005505344518676622193971979277491872117904560410129287085433174049877938927955441145962811084082369267180785489194581513329629926340405290384396196188078569958549744531706263139802705944268551290525610310258154485053051196727134626302413140956492462221982932380732846031390890411041050455603733246940774124620227482968888479081413714432160563984689359616418354485034824214623987503493990723909804990560379664612333887638709270429513034957275370026141197258117295911760315352954450990028211049374948872584633161230014626499381297934758540916194609902719229696172561697835941873471698935419570242359835498829344055389202288088019071917495743840849324371057834903238533420228153433917621730232871009886458152166534751780208521318266138618120145322137105136461341288575596802826901987405488612900709661295170066137097201682181637710892633035671394985768074691523855358205684462267970878760671573675962621686748318435221425188635836189769991139170095316049430452917098218661275082841987292277076061913183864233611344052077315117814238574310643569057136343350980666050653695711304604793535065348180921363001795817176754825644927883834103478926054460946221025154019042443661472749951978538694461106532758135820062779273218256564773516925495892228173118371895578034587577581910404201113877922136110058332391053062029043487480340512907998213208171121478330815214721458625776395271419713177310065799202470798045753215630867336606135172181837779335420551631401119761481718566424657704783397467753468152134822605576037989175448299085635208504894012792615438101503311912042574677123502423375792234915239304566709369365915579567495141358308287197087780357551992840106602664389035006289906843328356502536279967934216849640603247877666622798740193580633469759533524249881181285376816444816816997352450136184384657961894482027419248832964166706546617033229506326972554539932661623921709931030322562088012271027736753108044254563555100340197419395852072933218255411709810724598842927758810950913673099507885741457954735327794540485653518420959827843024584463293926210576648004720301518916888511169354513783234539307014558078565862171867349790979073675327669886403415842565933729944371868555985865000956683873859694596073666815232977719673072404729742533579328692480738438091529084306316347787714404629093078290830214869575494483488438445572009600754291856408841963139285976946259875052737494869181889529429832668246704791173856557086951530176462135065127038164141294545063578531512857516718326349994823226626139735958131888059698077900799191506161079247415617809258815730690945691559078775832587101186955867444054296632139557047060546363900899248843019900305971005553824856241884927623587754846326499889176530443931804452463220589265494655829124005237487477682567696250831911142445419119249474896085440215236908057652248927683801019970937067318208955701800198666668460257652131773809389657990344857176266295526188346885840347116420129738283162066910956597826244139111153227224690307003119494208192292630647870313248932908584937816326018387309695117588548873850992378042819130875093184540328195529985400407755906524411291781493949871593986980596962966809514055213332765593891708811533781883998489789575367256799390754535896981514932434507926761498795286031383586974433386636289624269377846226254777316234807248628580507900180542103352094533248739665094333041716066165765896555930004503856496018879965073177978552310732496970554938355714869827172595397803056356583435463520915599730753372557187217295424017398910808479301049802591745412423458842500099603225386045923702217892534944201975456758440269334212221227265424359051668684923852475672436301555033395386507056453172884725024271737570583567636543902603982149139215005648971508507189618312728169552688310341769543242328144261113343441302263995295629891828373241883332816247753235252685919956965170979139789603999521381068106388590379295601231994663937018493324990801321976616122298914214114113570259047122614360930329036014385670194949058225516545449086858351598963014143634283561126765100266415000182949642897542334421858430164036885560264694369151841165273465402022743445654479335115086314556616398634774187480183509764098599314501347163011208103789933110401243093276870262482627169617518866123073210587047622700449217858800188781814008264271522032318042804356165119722036714616540749235975389159611606065406703987993909524345493034365450023359187870327983090202461089548600650606271248772442706591244312788414280891448463921260788277955820500805588509164543546791355971906134678660773898849179027031450035691697398458978799635323242933035983399915704591874280178934622108743327680055239048093759929569902285808718511337720723558894575508914127690844352320130197554559701658721717367402684996068850930691805743991925736549422293883239836328453291848939392225505935626909173958578982777276917841583443680176531037043877159629199139115134943286639505398553864804161134343497504534334044607871811022098627645803559840625971524361058680872453065233655877451075024893522691637434466317171589777060617889542706103471277811546043939525876955877129430326375740406870924044149245200080780560456760630179577027588531825629264766797946091547686261998764442295193448121772168052215987891592135367909246363265230987213281373865666315312036667057475434206759141836724722590484186723720149770904988455495842470780539375762639405787376606260917290151331861450011938845945539006370376852513021467689681008022632421164720300994604270686519108064762399205915867315263799118346066694068787966722676606330809034182011293131239316685866543100468861591131184471669052727222724608089032358125434134938596626894162901857313736583823282751395567902920813466652891483013412314043448131111280630832841938580723698553202482485340586381534781235586693662701946207042966632769745742904206509402246389940107535268130649576824100599680966233072320571975727282792251807539267512388523560051203118356257960556969296628500949855406600413208122554898142131023899948121864040383426638654238716580681786707705048742847307643663559188092449612262446458093239691988608249254691367057019227028707590099926668012090452358076325190505304472199504409742026839194998052118032067283976236102823542660802218473126083776117446114543699069674037156863321473067001015411195817427321882118907157727259973117293460737941805904800189901963239327915302989556644714837318812232674466064400031336061529279883634920882281382529385449336008262885992785509787939562984258782421844082274993269289993408799361540648813290077409853624908337258015316011226044768443875997494760207048959511417993586640696681943865230793551919513863861197323663974144403398570590827724257140100280132373816931154871662313499931580983967773673572232278651591886655566321686134368211678755633891108628140874001864646316367811174100412025240683233631146445502150738695849093345661392867828152844009480009294440202278499912133824337617905317051195516430486698660574113675517704232409047228823772053356757487299166922553819633513104923965146283048751863460014760783300597380500666802769984100301787745473808958665472005506445839562332157486941037231700977136386133292457003112670603599555157827804290883289411883715188224767363546751032872534486362902051508354385652535181087916854599442309434652638731575556112133678900724491042333333988680133842697350827586790439809108798952811413235907605688937062926141882831439574482577823930199134451777126781185246615359071611439405188180664271300108734111610656095490608254114785256998109456661171366392466323537164797441852138630331607634653579345114093114670930443043429413943189400205996408784730662619291869183688533694860160252601100000736627384773690839015301620360752191136837251827993787954411955144007073598857083224630840354905828567546251817959224893723169302308961329477477677908282181651145624603352459450596731572094247701767630902144471074250510331734703003117387950820506985862767778227089921114638485502164250160300001637841655378391229829330192409847135819563515207904709397803812574809245870162894907343894437394177601863733876958848999523569013382209938257782863012574135534272751888369584102008871868562082143333981229190535504017446544144841711100454501891588789792951739765962999029993509817287408345647222202501054087965108997542399477306429861324763600715132796647127851641889956462916953697410754397778591302648170013164046434626980754722926180255756355518620482229503106208749578848515120730577748601072681011512003354024928332958274816546455992540049914278874065258554759734392790247349248586539997823158947355343829706283048946536872613657973849302600503533540201829340071537129520841417620817628055483693423553583656567405944580037151614108118857113046191644575646116445032026303904640034973459709620430827853667878743796200941052804206339617555393532545818300338543781033968646744101322488154378584214475467794495846310761761146220863680450001530349174514733209312396427402812209041206026381619507871002789843489327597373460989276223184544211434795314499600335428427440622184991172805395602217492688844131173515070689854781263814777316942939671882952958642555688591983982458063217570066424055658106178589547334218381758497206735213140468448615460018480489527846056065047731519152670382950209417594906722897032173834188975257095815006160619668143086642282359340179436391508558309335109135887844601994493663175335983457730841020921264879996141835724126113461471618550207869859123526674335825350177534500819713918061866414716356829442763462176928540195209768173547320413036788627115404095762431259100406305959277481907016906641515411133298723201786841903974826190542595583888357166233456167473599632489876591675864935336702857393668881162234274063147252767690603608606713606895443267499616920998042948550280781243120638289261092056466206218778165044567984722622962947295117687416446549352402997280319006266028722033552637695851430279356644328273492274197687810844042408123624229746019774182117379341379628992714622187541250942003463219843034449021843007710772918012973598187016135455020361286775287497811744004696371608958867348592380451302050643700888734133263461240207223425948452394626787982284041742902626096077616287180498639650554821288898251213362854060969734072289413185738825441718494279548566229304424670095618901432590886995969221258705761036697331313520653217243502070739151600788491409128424294661503772633894660879084495980994781541814737878033073401400758973957910389404962590503857945054135315042091803848918777487279335625724770089698425298783985106380727487114765084987984074753157755195596727390782116461604461741792302887505913609276326904395366341319988705622096749401972049432729303255899913546895485010727767976918044817960967813368140933048548781397158147261514235373959919458011369769237305877977735765776951104621859867639128333004820537188116149512257791539618305945907515390007209180154329501796199493936842660212419161828776752641814416562831521507729936440403971136341911204889414393703758302488578502913336601899785101898539117750806411962533364246050979095094085087538365777810023351629219859101936240364570363241443343249402487819114269056273136757498097169289965652349130973319950506599994816055174451505854007628972760315031045601964930858640493184116905957166857437273651436431249890929935744727195359135462655094884998794855309710013780063323048428268011073379509687108653812099579677945837350619725091638262107069679444356998586572122521265689404927526273788227077643201236200001276195000760327867438347421662233071855787027013853615032133959522741370446872093283594534913909325356768355117187325032180129281892031412490726359159637537545301022099655041856504068049627754892905133828470091155373539286618268338397266902677302041126461987599454896291913682997658904053563512585062512474203381005044264960120136232759843962329830343408171875447855776588749644547536415164622286309984736280230151079076972554986644049270019252422740746869559877786884125726179330445795152778667981461621985175063745948033885505766180926068363554018931745167281855084053823691087615548601617615332970040833420831056168884568962352783671272090180784468683402058955724473900342871589096100287551441027875128455329601245135474795847592227697214730151914517283310704160826978468093805240822542199222070786391584147153987182787230639989539515559867271000673500870677568026384186098628148941017807867411399539642956466567509904798503158628358112443671740724030794867051408761554123163452322461558682892989925872513410667868741104278997216763949662372778728282864728728413351790027986168025901575750118779420690679943914739146416661766097069816076064087964608143739657488098405627394666235419290688572076033892871578321487335215425637596170892745840149188327083824776236575104982378915291225767867241561015821637702072487026986501518904749694282494535458836690648062232654342509133829131172377862524573435885717611774048489743485060109131189298663793926380884413213790594615091550455378243322377449337920033859763660320788861169332595316984271343157316493673093763447034682939721817823829500420456173002572021218660614765462998949402620877625957954884303673948953305741890597832517256259145408942352285306011143780021602396681043094672015570441144726373155064170656760667191250855894911675726731901984756646110902432766201764596827191456330298412934646240518569584251169743609098591463362767025851885199160091776067418230836958335042391276703460230623089733973474939675335182468436001716600497229062562194020731338047890173525002634335355061936921086909587127026999870112098117697628309088368501911567123503910310752587019788884957594417732899704539395866678707160226734469557749402476744065688017624215289864166574247460982080933734235838508941659120058348288124681923627726569565271569530235319921974910388449910284118307379459032719650410907978077526149730884494718613819341981971580751869999541501281507929214197311473993302415188116133404065898890639586870061784056721988710399191700751514933968375486658905910911810889532235345806152381081949218508533246035137329965462318111841426319271668669847631393298831051554161960862251605839591694467607205297679826286873258560093611801268681507500038705243463383718198025099917317838474139541862597137988037125301072097950478704949565070210306512948529009130988583406291063451294147655845245481264420309028302374975335922290236827638077897255283239272961844151633065116709473816135326353015398444816904480880717487316238998965608565584841785030298969231830444368093704875001729371830002356055454557343593918926484054417194186586508891113607956278119452708145477847486996484461649287642740985790269137777781182192563075653544961797209284404175006662913733850066578912575347563657328805076067417545038141561076336988359947676439381045780278116265820491625502556446189849055046928019268052892428069269104020210038137910402628509718813962953210914356823285882154457809095845932327671469555931944293145978307708379821966717142588402771102755552920090218433801355905859338329572296985689135440132689622838456419911083410466274860396907102011823720724746999924680418509387086318365004366546832870596011911679480151210537962554106753671233823032934196537627739013384430613919955988889418336246138722215046164421708812340556555397121252707741056964770305488842707461197968033537333829676491516608665613655191162190490138440049681844685755416887234454875887040776469993882815146788333109620378941997687919901370124214655238223907793601164615083644357633064535996412551936537645811087390845107149444339111751480366609929887497407731871231788987084946241040160552757574026737276860902302584480756795546784853168253653005041370318321941022612764186716324809031153800909484339845571714768697716236065277350571392710348129789574410729316859950567705910667336666827170945635741469778713739486466151685683746181635305583272094594147740720977476118556496257363452094761624080726391910705846391451559045150066048083328731131684953353844836508260756279099825100266090147628538930993354989006483481238580628503502775618157257661213514733945779458921314449657032785677156866462894203395459686890983498474515090454996191883805187179796899385110625634427582237618582838615529954685982754975328328449430769840629514431176206010527901806741866968485848483900840179794153802225897420031054941580658422962123695570544038633433701500328004758573702591510076448229937410165791301692874698891634396872308811022985810189340429729062792687213936861054460314753167693194135294708602629195220814963787998568456172327140466411860461981918073902804715912442405920033026963848924211591327927426343302756753690862443349551885250978344489980399731923065041947402815308522269268582478655888857176732544735929286847626875995641679825937413600588728173656204633546996917199970658201137367436179889974680345183759189604432185163796682790858527908897412204473931710157119910985499445603926500988109806701957927696919240425713934506874813293001985230313560767769163958961018172406481956348100200467229365797331740879889808190122960700251939737732356443313578916026355000120482324259811667148465407851378505111182541381216041655598466579022207686060829878252694121577838231035528339857054784728567186052331434664839356108637387742616396732119187453029933036748531688296611130107481607016406268027113918698275924521882147784603858636137324980826615521785369942091207723654057654909635444339959664966164071175418678049472865156398606187858637916451736705477599781994358206124546610391363951192120557723782186173447957640186371077868803080075821081742787541320847478349800280215864922834507705120474713822603963065737665825810074195913999532978382568156775701852969793905053564608901289947478761100487143919015872775645753650673696944144106812622778930998344300967608418191162468385498425807275245484927450472871996226717989525291300607131934996972024217582554603057776333994392916068017574272500045961714171602913720485346620766140894380287789449041513782805025967028063413165355428881369064744463444386907235366255099409519367516565937785190249783005671669810628134173825522075467693697396687815040975287820766853891597839591905903265942684279997989575230588715592477176053849032131653816791220915949335678573798238026129769428615588619566454314200919267637388649694938378980066741826514719040093747131870027402597177139104001287005669043013332341504725706618140920773820782304813460009785124998655594170174179569859710070462900492381426113301654107422511940134275362353585700385580587850866839571902350921114194017204258228579541876566450382246759691067820993396474793599437772267018425516762418867029243404183810219871489759143276266530060506199174322830774412902165876486047897036979530075438585859737878205525561616840211972314076371248297609864928626689236248160495415604402434536460649496662232692886450789688305813927728083698577074761297486086844129677412128341374569390058864251879687861779454242368618659390519060888958153088507073898068856477052015424588941562361824063399151793055253817389444085297578795319784503842895199065687128293457620675991974239246840405738567920362349344275886652590379250330856221232705105905895811385237643194588999516130760608461163186817475003104567031482517258021473360649098256779124576047368019761719741983104231263781978979215594363625075549349802918216253862398435251336824178327847832866073083176133221435253782929194491993307743838016065746036843856336376797490033287451030980766802856643546552638137936328356452505010584117848831015379029573369643575770475144189488530658617504924166163331379801605252394326175181509835864174798740465066781942613105990519472384481984753331688679537452718838250165904188505601621144474032881119350680370255662332132810127205944882806967141556511481874175241129322052118978314989723007699275401258090149021233606607069288324684793972045370486097941753307630889904832245538234345184752657666721942684194359012222851167012255325111091460508210775848114006627646014148663044780955996871532630340570267141158428826246541370253685887201797381746484757024424526196679920796000758290575222200727220184088714836492171993638339504284952274684398841308875378500286174376290409546728339052890349210998665795964447014787258332477062389398081173654555250108091665931579358606542648817385868860378248608380596581685503021877900323099209796146052227112232615096251280641822367251933402192196220345315878370286017267178383700475708022232980725938643760775640878546083287017827916838931670375253556983272287544494219867155257388462870790558661810379213016817291091584412233368209467563263974744885928453114114760060766009618940038660149134419455457851517070721728563833336048786980226121108114060343355042574693506355823733097929133855783940687095572427431186706072867578815725183714110484960419281582291339998041302501427486141240890948597851062132578994506908939954306272785606632510548429879771624918310022880915154543640638898659318059765509743001899893119011149528784146572027397328992794810478048660079019811549524395929724258976245104067904433822828980315920185131536156857040922275395631893783773169196117207993417327455881456233001181016092734126085656766446440828719039456014492569975707639105487853788316313784782094188858532718957465861891220374415181521574637526905382295140293569612452129730226405604217591099970526973667353671820958563471392857576556861580383345244517626731343982670041479627015066969601580051071934663028320103737360476815008766304994542509934712710559774542681152814760180418200576598418506219614126518618827960157966558690196437340448208753720418847027653473665826420056576724905036470607377365648613640998830086264676768745468426615314511722891663501256077015507008550955107408624018109925001087337752695101117762731378077740789363484771052356243613926724114687655625253335748497575586874877147878675022599342759511548801629292520554287026270845510123983651750348363550691049478985884299933018647585240562020977290696346113063094433852966208648580206239220054504746936293198951859179179031015210443964804721117568783864522414213934083919178570260982717680101952800992432749181673221106505201617249601663568034052699417887160860339795691645060804192599253240932570981935976956752745224385123803220037293724171068759426920259611870778650806350827335293532465218043619696312490870338382330258903013149336115779010495394214965402147958230887208228173771484728679829470592621012088451615672409915663274618377421303626412775373417153920152220589487334629921458600164166011247904127935357146051266504656675740083727644208914267190531011495093749529531612193080865987573603218828229026476528043416893690804347046698138646983492889489725221126321651181641844211854906830362264741874937333127145411671854400392327147158567461989826722702063811846253866790897636366171934896914643843258011435079221210036762890193127244861449140102489025569656322412546500437168811084204625419670186649919302390676184916466435449091635016207673288722018725222887608830149974811289735956018140610869812593531602432951208441881813089284218415067674798575086743165341373013764782755511962434987009043682156875993901339839361971242225960286093157328082379841436777379260054293119428918622004558368948911756608169091885465794924373136009478626844444377384715460549836504467246135489646720239571630681870064532587759898063986926426637664685439527862507571155888615144293006355053466689750310533718168287638961366332394501152107118479949262645862726704554639186803607685188611075910727992404473712096857755130705526032442291852116866670961742272962422991879507693844853873265586735384533850654177395094975467729060986364299387510900389359186997448675750381268323076381016802968644630394618061101946312146565948295330148936198490416005461816290860378144596032561509441454778612303179654106746112862772846715778162789483281668526499038726811153651105498983697181323426650189363917238343707695810329473422049656628827558420650867106311977291583295368594392974930189588242810752742017681249235449302362265080899426169547341334240197616579167376343977607425868724686508694326512018419483118621331291215313747687435504906958574451965424733954203446301933534283640072553716551744579431618192509839577711924125284292661613755209225510047590049245391775559548321702827074076233850583969381570323038215994390498437545194929988642756200957958911758555752937357473359590064473528560783414401300386330534150123243509339269563980270227831146579892261020037728259175052336008537149565816979283709419598497097817505325130060987685911182012326803192017569462523555489758167696455469245420709329899230985711362802488954742180942746686478541423873737461311953833350001221830542159096244881592339221830877462526677775002774197825336695109405383863949468165969575345967808642748949784737210660552735634256469614931206089339652050456539850350861427118014192009461596979454406206001893636640099409383049020803436351966404555614382128965350449450089471495927420758341745034290106732125873570887606882704861608055150168671067105161794498762830650248772253769903688940124162995665687376436190403008509906771174354021489990074005809209226381903073237634469662456160982265149350268175667405174439425402493818788320559614467590624949163041748593526721508469190561016785647982899888750968247102945600264676049233081894807922534494795436492333100391663060870116838703838867302867760498930415039258557037208450464233825368921931729679838908397255305609320332027292472082776763658671984034159717538074226610518957236366341997060036755851841504454360006955601353421914874812206711865878547813212861063563139898408324095517614971555860687410125939566613301683222095636836080652136126786882181136478607345474600777367909011616020189284104383794069826122556124053628929652713526113290598306615852306206133041633530161974411415606238675213250992396334006837117595002201849233865173815643103358514448068386307029135748661261546626808737401845262345397762037091305433928629201786028077194781410273597154440587141900132767782239762151260755669994407682660014014076534986273017775117114373443972227213043677312366906694785450870760164380919039471562340622942483148461947459385827613515999654345991086178111281168460420672192010509300922639677000727704868066737930428930070755575549883822212976939029386623611692077487137055045571398701869756861382228767884323435423184885538855094331878013857538123473805898666412063500417781365472426488120126688140390840338667164387240837241355316221552226505025135800283812810837668534201309914791862113743468790523158873654817212104155795411627182831578555001362874557911017522608440601241483805817335168532064689501371092093780062529497721105335321756819231339423148736369300970908785536576556373731499886754514404841042981468367481512895514343544961213305524597712173074685362826166610023700173932746536650189857797086030849066788681989498203100034142399193893745304025237308212092706171802334479690130799575769110749136360354868613587928347496411776192086819125351265227350730111764221839742019963114086237376000822183664613915962777217364700498873280865279706611989352540953190444572530664243383790411720747591921798292413005937179894428527329367845238832708476278911573434581707590499845426087159065634598950333891769751604798972772736144299115334732852827683134222817681839887320834670263305777523409458610892801929811129510331084159853985669023379902115580829239484526089123024548370843094614821823890929656565613361166331307082264145937158446406287816389146571695945548896098683342881930057248610713445171366499025472319066428572919518155814813911513923792800187958265444664670710777625839558096978798778012647127961460210023580371337483782709091341193973420062938666701363161669673973624230912195577940757542587899594418277302735138565005108326635425752419686088617510719803361172249234378839475549570285422245874310737895483619978589591218688658256461687626916988242467477599263603644409072517124371787321909837291421499699626122474207197745224145185217747221397117050781513927501935062683874983354685363835216308574290589828558827866573291466511979194188170217235940338205749880539545949803797941642635431512470116392623535165358317472213218688047454302173414842159694457413727647013179610739400752996112003956180052895479901247225072856812506002790528772284616689092668141028401142165940119487037050480566057472910933448139409742168873461519206072353734776688801941595424740247724538566501967087230956010614560612684019035649890175672236894337810069495368400349831096217310650939982527187205462057431555242863964555112058774393822045106624043687230899019482214261474124562377768515978873730926653706354723613813025728082492395089960867577039735305560199513572400664786700992144075703102001700366208284768399255943536738450940462917868894546691931829621181689249752489648066815715368934686573882714157529735273751385905109260016636822184915473469958213117276865032259447340800006369773945894863112895867982444432450253565241099745012116085634989829032156957926004787536638781646284319741358459885384809323016854952766361639490612917774300660524819566559865754495082456982919909345880965863477500851872171466829443115067123607284010418902972421229181441829723293611013162730229559320093089742047274788855213057417050912977313001228057073343174257955448223870318344304763744771091508784333103938777301322220990647345950101159788434548450059107072000241215366885084426874523759581177228061494529681754811772644309676504495963301628646568021736025673081122483543052419302484597663610747402554944056761175715616927831189436429697022518368642011709735817709615047237247100672899029029402830536684334370947521814959456838430322560341611628688250836182730278708155849809475881969856042003013699298451237119309748028890775534154673156063067374341958803458986098350389019090979282704464481887799189200731284684422763641042930326806220938129910403380749613018140274375912500012523922074177040241665494201078305506878185789015022382828766146811950177291336968725673962819846065242216069837034364923211725984409827075580800541242167691867056349016850364515278723102744882942659356974227653890062819850549056153652842559204487705279543669312770046105742320016482779077630924767287245011397664798254265277044535598005092475361978791260159436240615353194852830830022645945538303409436810391458627371125370379803798446065239883683189797432098152609441303357996036680396152447658415967436698574696261287898845789737875076614424634952775436287966713847720936490610267386564951752439070768308313576890276520970801630174324037336112630874036839945443693511327908664460588289109011520543014077404661817302510086887290771914557574570081989433272958485230549794321642696099367446234147133217184718887559073880225135349678217561391401414527638526366274935912240162359412681150098548493949184061889359541725651040937588821113540373011849082979864386720986949995915384377881786814392774257462481506240522971849975990439095063176731085836277734239122628852158075905982323360559653666588594934836016277557234764713963115795493616311553283121681522763208959691522263289248948651191730085041547874818717487913980457581299397323157044272154330109507883707662023422944793403770068562831616369176123098975544333873912578465624212942075009419745121944832281823092727514320798251484638305992792161731839870322971508946412719148239748285051010205191212394677733576748052164410837384265657147975329347485414480617120886341202314449730053339384584383195234237520706697747889283071230895703435557733165557592315507691192788111670872400471999794550085179636620195861651810489836951451760722243903035962675448239642464452931822388767008186343447755001803699781478656930354761724274061082916442627501034707545239115142242223390624032634850178335423297322307246886082870139926588253194964685852108032042740925909850486578787608419800783982256834842864440790815336551547646917701358526034886877884489507551326054191972260146067192628066772707276393056480153467914242063454980137136259876670989463234637024647240401059707668314877712564246171520161156867169716962028307736064380406997666520567441339997114066398073164238327340320330853511570363187952128672216290255805256433427879291335316103823085777202117121539068430905015118464550667478207340383255837309710869152636353694730653848582891370890845281739291487250449793937852197992259926314511937655887882781354921705266722762127587884311358014457670832792154281061761414234664179295839682330173009376200317724142939080642233692112319139286592067242198616630788565635380078310636380679946500328784434385727419026230640104413636640280112036622143280759533436358637882001415502351226607893341233103192358482736964536445096248891497559501217487860559677015720844193885089668400326546196112187303239311743761364905958686344613496254414471163058580766837222079889814835200069101274018208233431614102744087700903586608487310793024473232405239097862588338774959913722330148259088068130290894454816009595728149951803166854718007072026765641762690239651406869711631781690752655573679036704330374416436340504375121908900476040830872506750903585180194360097859669978729578444478572337522059752247844579697843843998360207569251530147784706357819804760304823112889071288506867352250948579040360432553400230202762754012184122193320421358011996823687264615962457837295189234775554873194822280399637679455456214497642269081428550612483731572283391384729947505595541836578653424896453263922354564552530185886904902040745756072123000718628470232517016428488975815208919425151375232650703704919439833891001665055408539655787883904757442663326698337288149149134418278939574353726004046435029684244358187206120684192382614721855699640668946101058844235826945346864600458356916714399465952240483187328672380724263132893267767447047101293452672223435196124011051396011306115194296781464393003160929377202015759732233917489103329143510611980778919556372360588719574561028052935803406240202994673731660299387205645846003088661450877355758816164401647878814871294384395893068170167573290456405521255274217194247549606133723406780911722399268315431434123945089360944535879869488456246668557144780565142067651249969544901409756714598006963887844702275970370654746201448790741486181797619033299940987312072004045363598133680736982061409749433698826735970454537010006487227185954044024501766168600163618758451353889535522086709523501889833175062611244999100510758067411384442704435905312725085502446586664692542323181945595634209612123713797231407820584209741144184802544329574207841194159883296777571878484595496790835776896758028228550611381458829482025439051078941227873540662694513761316891549069706157951054105554403306647328215855369274947710491368106913324357034198635111886154826786260407090221794695784751107206075710417780551757601447695830833962592118913949584341739436132982065269830856871113715668333451380652518513873500261758108838365398594920974275447085812949442411958797351396158306844372909438316878032290813567249521853914782567702572657331833800612320192170311832405665048108130616372614428553456861099878325527485608624562870045319072018314229652395697871387417886072316265378621936133611773436060206857001918895391759875319022378096805861259892322170844700834061702056867431788530946389684146658512241486604067912865422014102125122209920392126106103808593034123742564073536063724175888430819796845991557091809356571734156487047420561553398889839923821331339713655580876028570030319833102164126954498745433163237495747908076828626983017875060643332344948259993244340842263484462533819453089530231406987730898610599353855021962670614489568193430672324891156351171117434699708573138949660654728806177239786952241081223375508572221043265886462294146984796746136081158620384951323759324309987819373529794289325632471631700628438971383905854978112435038506009139293729066236217188812079279169978696247472416253749222479603310558523494282750832514163440435047031048221860734491296918454606490275014342758357698537663673797955095664069220727914833168421281236989321324601551931098650881350982332474277341917733629295678277041603263651078471444544477635160064548268261469488486237976262498780498523885252887833329720896461736142298963219648920106206918925339843017780236137757537449694048380749864664036059046339201682327536569913763556233745513559882955545834877093494263845579874509701699906231631088743330239664817900568608628951857006017156908541113257173616680876411793745098874394547770321930497576956859657902229142234440618836456028782137262733230043472277064905610708478144270311867877471727713350680900172399738714910596465436657667189723272412349943539567144212596056573007333628908285039753192241685137016470613823343010802817649499892907799663210062869578027069032227675803331715223835002396056856625716652217427039629987402672215578926558938477839290840514305166234687084375608560417050946703894723569953818636492142101838080087805621409325428613000618980674403755465709808773327595700761479376527539011103197481179282985406149523113374192642686744202382715148225152330346859361463424371307242933354080949836514246075615422610323560212216155937464418889759662435663117411852460952843111246943441185398728393018862845108118508481045767091781751388615472940761467624210317355077599516137833239683108491217653842630070610110512809683323716240055656285944817562262834830324802118588401517715696824509131679756644067382632004892970793134886580282809328262289218449802830683015148148643154989329255601276058516796061805240871241563912390681025169543811575863146813254521209675298225525454034002431806048449372483175443345523776573516770722005691524452006792857131155306332434182050502779520599346364003169408743461234038871711669368437875020880263092599063631061797332878333426572371309682868088480174579976820941249848031191823940165508293345370845223556635107647501484702867661149751073975927246250328884157525908190120892536924577642274841929963750559307259119613868532972940408067891021022182321973017914461602795869840975860906573770854580045971739419665334540758130680220583943747974116836010417727438483494091638176420017295180803050614081566402819301168130167151752065114783910177662413599847136739763081406670091804806049247387661759019385224446959210164455471521627401242727984802958375888834291852899183486518123954352729012924786545002839899571573861573901578831194260098951685252769503630738143178987795507412453453497986904260483855600344717870375144770305270786593910155739753680371534368327434526878972725304688199625203096234159177318163618813725900665094458516136725240172467065272901473399620142405250837602426301975654792288765319872298332291565620392767299869159408942308402129137434812601668140012502502489742770685106196380156114500085240414918156740675632495112305757145792538213510992228064367219599698340628979444042646589976798636561114643043409771655488971409823433208735444924916024949309131046202357747890001793639981709566324044210252211862240309297045898947146520914754003233157628891862266829597313497139984616491435144935877358959599842220007109387445934736987185424104491629983485344272142639835588198748347103549514213493136643981283939059655004990517412759362296116055972419156214486766202128683385791194168475809825094490671733115464177343193458179685107436978291622540563102999523620023439301634444729204240851731778133959422099298193382820737146374672843793969819955685158875490864338002610066949447823190163297805934265823291093893248255985186906448199228208016791106962866483561550175769598299458364158088303638535093626721222669674176387581538053260975199954377367393977249315234928069625034494578827408696546070820243938539178658684550927309569611812416079814400872045554180625644803824960496267725949214039205199709559671049930523484721873551535595065386185703931938864097354276070083908003231199798142113567425156417116284541534800627698643949231435935741755855128332466812184188760207520539395904149006208056543088751316538039934593743566072649136858219991472300825709041959873105765848112982643702704879462163785748835672017943557449892060319141333363618152861468750663906801481919450337434214097021372976141586865601379990372361520660216691504334762680313102125237154627284153913672848295155264922425997028546783313029812476923977947664945136508934159961908787966851325356083288882418947025983502887040911751982813234017099202378624749474094731432806214520137471849292273091656737160039553381598051420619928107778059814658373888321028293710433281730991156594085335801481136684039196793563805529409338557909356336599122264252746793997460637371807131946986037804874925911748051647070970277156906192070874492744121282645633320398763964021375264159341437546762932683187809547103038956352062503049895554917149217709455040307857381038218447288010192736739754924430312594682956432420140239933054295812614534442762931238514702676160236732782007547900640176121767761563676611268102860763759872433174455203599467637455135098357093088658089210751558548293041597532540811452960049662597057582171887316149173329596697813206920299081678593669856882130418372796899964829387106141572464713583529388654609314441308283703111216992513077482900529727456850491730712584841502215595767301997799901592711413239012570811766596737053183601115631439704717936741885526063490117747413884757648997380829198680910624481497455305851508892950177406693997074669097848290750830960744939879705520584292469705394030180746980495152857775066789981462532950476144057767460377862192867797991346042209563682630685249621647272800894204827108345422987805265282376115816379938540474700369788233854067463979126114198671815841127338407495519328710998538908128601241526798760872938040127232680508559631732617450632945251560876211685094399220622038951278267292159404260901274857435796254299705830983344334623345927449282127848202297581067857393380626978138491408630431972768729405063464266793382285925480959969870056224421949554395554373188698056779728264923310435028898306252350845583473522973602750171443414287625825806670621676341778969436519432701458814145654406977703431305692974935575679835610907270081118173068058627990477101706402794890619025541648445881767874144357517139683683836192211055726448601479462510770078619655079053327906465852011493080351190817748848088756154863458313781323033250954904068762131365421179347463190143455182890661661233520256433781198467476425998523288223795008309666574814571015861574028088840672139267483503092592043775009218356837434506336805805628925662551522034584664798959006595513250383170751760676639423428537328295950413557077058155128424531193975541787669274522484706902592539325419875536480148904797383960208852675197140907841906501925854489659606488971906299693727176134327114425786969047910357938385716587460634746598785611966076112596228374574152675028272689463487071780258520014962173361173150569316809847215034981885499047485841408579794834875521713999498669141812681310007583401367179704098309264607919041288505253045304713599853624589775570723997979561619253268152381123045951431692648006495261855491101839570908164856025198174715019039981485331539302607252660717043704469753767256969522292018692191427961565239244093600054568508991872146914828322967166205061915680782361107795523763391445929708173990635136949877042354588298127925829238792453318549266516154708993521625834551982571298966352175166314872220484531728663975729658745738722923637032810897423643591306110215607694019324738043269761191251356238068004587518143371727089824541300411405673534042774374261650548961585895408090008636568623264937392373024406594270815520523564272688529419640743235418352346069354799679546523096747069490278817372412543211976981974362924651588098315048816693951062308575237538166949064343553346693073798715688561015667567274500250326378148801434861392257233624355128770390084631315229351148876864821656740676037396487819961595090814612165649578409089243677302562367535439678680045128292468793285590629113528344469177757559456140861217562500710732519579741184743134156724452513834213752743327157395040099370603774856608057122101765854827164122268075122911103673991550617899192317637116060936167171950863245549352487525931543634306744556031456985431656728417122764278213877921282765691313439077338529663548619066869746493446023650113279100950997030017787699014176564857841565869948082747129109867984395386347966267972298888667005724066471855256429633975662078533808814445604191291483498368137171981830676610222368082917560187780020858935340574168226494663500284195865815752548963562462474724767325693606783930726377675127877321808347034338931581944398363714534005134204823198186951869272024859845463078940616254122762278992033424087175491242214891987890719204820959041906236729556044756034409395184308769092111958437170633937384472284845921411690409892113460259882806116740687864445065764983744633955582930265055357180784396473301297816571233849026700137252459483182854668537229473970611696758444858203235709934742073581532745872799409147046520982736851774271506124272430859831097026666033275108174157366279028898697282872104889350570413514623835770148879027341366192806796877987786711063117084940452306962380036148963618967965167333689273602067868657387044477871499975866772418878481082286181312098736939637731212719549911764775395418262807314915182282674061659112763040422337234812995001718159333344936130561724945374030115279117854848414183668390834969158698409438821639517556989125842485318951372905407673321803857748656566417127751915702580497664186941549986120614446355952648479996786546778565366175679402069378401676050055586579086787332075604975968448886017073157237175814657797768119999901033226011930292637457666569388146584720963399836660159453738352479105264938428135639302649802959355145248693659287795244510605022845617427528342507356651680456082454057482114579184068571940492761681742388636797600932086687303053232738153164819721743401537141994227593418611847910594567491796794844610315769923220264067121505462941130079919022832757665569611238116413914971425811221786172347303507200691037789547831128800776230972706778755264062509327011024528958047830311845485935009946585684633406252664008389620362697375279375593002837484480791530723941705929864539897990557226184759590858841763482037695108729943017481092711694636153244755625068591193068872086567146001086670131519770221106844324246529974885172084731259612109076377676547783679539151803996467845226388698962862069312538940806299737621352189871817092165005428087673343850852684812505590535434149433955032911566091545259203822472472288994244961815182310410561417815474218675311480895968710006769897064227055620678066082934559575485167162554358383795541337059813693233362330441032188299109923543438174222426857144212969899888406314872424800674921052507910963127885737308728347557916817659505334906499686848018180153063259270454578874636050365336860977753540113034138105082177882275707159555551305248230124951459528516841468597788676600294509927287994728505395448206917574024744075546590878900752544852929689213143823103044626694116637249431565607365783917182268377015086722021929980955148023646725612976006283978843442627725187831411553084811017759641013593730454878950171337487572942763626507173889011013569118705003621424098221578748773044904411414020328524136990381937060252478398429265225021070323486818619991725095639785646097649714587668774691687266828481604727654610572335240727988703327543583590034854172232537802882673296874082273770612234558079514096982049906713321069946781257073315425669452552388574829869864609514621440340390576743129568336625057451761914994964637301515221493211312602538642650552167662640984450529689958736276304096607164941045062362278068819749160459972123545228960494225176217095446770776808057673314377673265255998779870776961068540380702215915432186739060582704314235613770820469624599100059580274356467049555674038481365061898285708763208344143660424378949556207016764018262357200056964231203179437516831893730888956794912315185943379983826079260981285888746915332110553129649351188081160412977966892677509570396984462990150238359366164698457171850311146674062570423131442988568027797092524265855400367172132129263270141482911029732317632001571662878318494927775196144670686758031776860593215703758934567334158995888940159380009130216931523719369542519466756683039994407394087875364719139106507593135775832136485255652541028720897999809323336479801962373126497725688416106786292581557810639172303933666685267866543907190297269818018909715487683284319102473199268711960841901786119109374752276148536641840243095662563221210433424252829176859446051815694015559608606207560492807759618949017254544320086085303046617810396052873087849153229545709261252858415195527780466330012960942447604268129057418763292579858449540904452119678908118649784746423420252026990959595674080099253009503404889902337547435170273762005926071958361469701160288137248185602691440834669943448236729716045255194872181613613288576882997419577147894202833340617380748565974225764674326782318652434791915113228833749115760954977334395324799939146647028345602315469455535778819883967089184594314307281211139771495433400808990419382475837063316516171899543606099848484064314824973493758911953959436795298315283064869485097218943514520370531262916454166959751260231197784977825084230914097603641599530674495364444497724717273514786211350115419323752159268701354868313574846525825075223470398993386476173004272115627518321655459574142237049024101551604140311248917164983158749705266159678006860157032523670807885063143105550242189807893378753322522505078457892794781758503196595401647234447952528155791375115255499873182064423408964034061993785853122780821223653588467643562133092810458302969079438952326423347598999701797513099457392583406998670239155087575571571594355688920352504043768268352565821982467512048109193561335882236790137992369378052235813559996606787356436635558511951092526543562005411847338964143230506250145058349177126368909866079099926585732494339521863036672772380793363998357567726462826172488935573139599349704776038511416999936104546035085045489962487855463729888027035610420570923998807616699562992820180573852792577126543694902525032326341664719590704906408298936172053265135108929499034910953710950539824607607913795111584850136868209938897651502703345162148062474081534333917734373016835702014907150206439956704986501494995930945786401563387782110855023339890142277235810862486310691907303239471693391397308290642251976179204187021708704142613709930143723688270975797471369493277883884143703030933241298837854589552127802380259603724872765915210716854704835565802931107071190555702880639467181813360461077827511794015634758196527640069394021085132344529155721404537378519836510226310204648278591547336788751726249515083113290334674282755122225143603174270882330707156642552057369067678115187849295080483039616211999360510953796904213983016359549889881829949655515750296739546025072397892746561849131169699245344436893840713713350231793293412468896793159348989428643282911030345007511780291869255933669792534454812765848117440196600719199206314547318934853674771839961932825031338906844229876760395809289047502952184847309839992624534744611362561175534316859343909024920607619549364770968897294688511633354706182990539043845343427508900006049820623066673439385091810037455984748249355810469597785973237142534974291476860685970133324700645121848643841751651410767645073064625768080011896779240123967800953762885171184189950248901678941198165682509355222720061415302362060615169728430577623334772561028868899149476423719007994729997561213246492947459302585294197637963664738894582437627324670620071937577277540622880219678741680362542966055301153321203897169322431859918778080280012690297045868696375613157329453467288550144508824579382784082455475557975215853430079628255864660995225602033208126761350207869730192640282585649451120764118265899844460560484237182135178179336551033118487663962635847747433277497896697677516659190100456539827909390887054507262091866852431288082622764501845687089272278435601641706087239566706399912371450968663169294664710221457381455056408205093765954022070139628066028014671548924274266583871611524683266270255245470858089114829979944262060279204368217071393105752071222243748647789756103389837536312565149425753533970974794319305017196578845060603240184642868670147634160503657801040980316083451573099308605561599140109533350167732159736517544634574976101395510766134283203882747366213788990442679508688723771487861987078831106995735186475468426530593032259077668828153334318478257307524105223558373702428589672836729460782459887805546680396940621792304216067283185610628828410298289191964987884107368398113942623619177748000668875489492191283604044890556781380566985285675749582047236687694691680203235010926014574118010476553503259333048634417221069846879808629841107898533470482990743874618692451545688882011704732429149372875144887792062032247466754693053748771749016684968652854989950385467050830985526331147614673007641805331718385114794241203044328731053358636441386327981067541113809317140132505107485241007495252634925851564962480627419796727215831635317782527372953235109556385652835475505985141063333789532759728135035829877226012366501671686286048809713447354774127131215602587174424499623594188709980107902693684268319139361834210559726976395218940399953311270552066472198074143073190771579922511200474156843815382128019239382965301940845740134466035848797066876710169442622586191941671605451334911240617280523725415740188592694072185008759117777815252529099711328162392264013564006152492952577718922385046456010489032936083311279617265185812293307510503322719268342946833277520172807492774774118215986751949542360743220933792302081259467751124629359140657744094109052791979334787555941071059691752916068788847080357475746899732212314144650924131586243095810885861243198610737692457548278059794315310822838321463346232660149700714796199173879144079509366554556644517170796838310928828180872162035553653904337885284658540285277219577945571802393947415939053649706680732519013386392518583492010669134497382715873509854144553659163650470308282481027893218181795457325453395925698010954072458641499948210924954640415556566189480160348749512168275734228467110982650031803183538772377919743204404050792246290832511534169997440450550588453371327738004154185625557923839498231040510815013619930493467725919317588234786434248261006777112335937608809963878815820987402735769552111607006968057137898654428851337648801371749229066002932784119718308315089264467240318400338706903739640153540550609221522432489827912565908361390789962539900810597738231467358402835708996237229661851602770353968098505049603338718695192118224631337170470063538484130904516907066453113741377747783088275944645442954881752612326348211032337163628612018362847358753491932370842765476458460165090390693097865237567530230238810589007231056862796405623212607390280839555150304081462030334065137758465769610231354554741760179031289737796767423282022125228361631180041937288529106683554099523737193759756393979964457328658816197959288758608133097202083651872815370029623087722578429018091239257663737258988321660622728871100219110958753689577575543739924274988855676076134390297460022485131987153321074162427106462865300947852139675323181679940650189345838619284230234518891388589277628194323519677301158265346478416853473334410182264953934010510775820172807744004623014672057347031838777293402340183608210566478847939591283252928138273855016964161940700589004420034105246042235895815175178300837182655836422726414134823943904831126397893079141341122627336763725249936138927924207572405964242948028527559911873414440942186681203525451368756707626772998588266481406495461604624888602124722492495121851956321407930687180967378893807234711747979069809573169931174436967954884931260166996814109194353578151603048811255487264343937786618451105096445524219268842682120007857551917050861186325984110318374907139728920350084906839258635224717204217510099540829491478833809736278598403205649717228148687923731059420379922728630351461353931570018163883652018215807666163292452357090079941245232771632781040932901018145545305872658983101911017246054872012994851411957268491849690805566606130116422980099457052558945394777189053269919362251277940308455156726989696343068864088834889524441392657414365762237299955550383151113564188228501051359271531921329073828971853438094424383298406982713570537424194165560305804274979197533691061190513615027811521895700902918340815563070868811005958825574862131149789019269643233087273677492437578449879704668532531411727930951650552738573866405363727434963543258395119883914231695347230597736578599163007550271083830145842737852866825860212597094328289060562912468322524757801841388953069816704936723642685050070753195850946173907029968297331940680988601228806631671879037865253254725675827687480866142401981014072347316817314210141568720241307318246875567797062186854959021161744361558724935270218296557329295258348662308715925471499259346004845011701358203342498647479354271112729155350813514573817138784818264989451202464531790505938109640003455078745551466628626898743623091671450711217842049806617282126204343108205655339598236147288295968890902953376379391582078629743915907473469274390224927162012089057640857131420722190111145881854720423378426707919740515932178479718520738266545689963315167274810708575965249551690979940785767636181465975469246865297752648062158019751170050262245183723989640833827162739902318707041078349049385980585085639468229738756545349147036839275643452457228949200585054948313729238797985591275325720982475312711902747894726629332447987202067603101813767944199888402283995289749122397130580011347315270318749428784873546468577378970573348354349457976700790690120064674931722815531949941256517223468839473662592469331587597867510697144783929549691465250858527915453370784605725624576104051746802105430282190326869728551970128904121906861601264175213818576206358780149964408571896984534408227641478929120435272190362065274257578688217035540313039454164165163788248287450825784373822297800870735886081414612158366137393619520918348053004116813663741520572760211906989368804618629657570207879205613469419250947742377347008009674802116065059036696081072471183048822788250490168672662195306991209091980833586254050549726036594028954729266571382931317178523174556205015510053586129912553755576522946956205753766258605861416925437906416748147111320959162036461223150248874492067677692109296672529585366775983850006943761947246574410589904309435262697468921218311712583039823046872849150840538090587988439622568413578030101538680269565633883422957564026880267806477848887832441733991682186864343693517177790861671575733434791867755118066875968322794019162131264165868072019789079454619826498704950680828848143763603808415044696493441571780881930560644962784762556758105509237811215907600649426390146769903137838585815088573558039540828789315505762145435236396046991898046934346285581415136733554559738898402168896585708255965727771994727405859568184919626425999726430402771094021744714911313832285382435210515408552071894704542161147750399162981825340319095085189853251062082576710117985780851450582162564466313760271095215834369178490975950512497694009690926404110175995745879696589972569818049997607090307026625892797206934891399898720401252812675335467750057498364926021206230785767113499539740347261043401145878250912876691668150313769419320708656558157439227062401507754133869496663165501611586404484803637839587834527908642210097735857514462848564864295803286254827181054517535827237435776994623724027970169523913932996667463350435936379865501115795760922660182184654120198309434387580567321278945076035176676208627819332016194162222384604376456570708661379066423260289092711802437261953014141740681714643322640283732839692854995643247957925035745974596872403446869666954928325231768476125680741269792376209244289229709437718217341236809348336275909646649033162501343949618611887385944032275915525415572676482569180091374908593559150333771745959838655996799812153892881190893370098800197794939132896881317639934494936417682732882290972644178897124811455466749260992593761697297714282089667289362106246832655557203318125346077833718021834023216671561001724101621075422173135451902099190225373834755849945016662936919898672189673161977854056225401315143836283979149594070765541910306746833059404186658650996212808123045171835259508081930632904775576297000373052647554689344958160429384376367671347872866787136514498124469861805126177020778049520006423404953006966443622990757225290230407021429453602691958913094105351287392004740265620025314595579999366820070448354716889777442223917079961770330205039489892569999373784779863245767357508181095067300835076422095275166011914334513072431140593137595547754362795954490753166598942803403817245964157564327953812304649508362817509406056341250318367487275657575332820200844532149014044145889969398994660979261979366238924217148704533508058879672409615300496328187881837374429445361399375733248784783076244408534017176957721671006781665107590521908594545523972688243898729672817455652207333978889463214456841049319520812362462577808670944410465943622034943739972569342736539359737356593775154913317919640182479006094203312872047200412000554994574829682136569220326370526242369418572389805205268049058625711557840324397442951376224517769798647709632038207972747320404890916839620814167839558823521232959015654884393700388541836305885199041183325383986864750293995283733156122366089359990275433115235424432909016353665404453969703929040096897476939184132405884341425244062209555594800872014020310175525585137424124896286124974724736939216155168658896064772639998530995366132482969184402885428020217145599787411336841295118660325707081434156175562649502360393977355848872144477646307141759768253084006667376117563744450388626621518453815145439515318486418667339030526004937656380193476719070441502741333279957947356817680156412477960659330279148914495618371057507081863188722071469669526643722986033196936376728522584244427228459084681878212056622379698591295570987980302065997073104499797892505785530166601375681324945354136166011203471034487097010004806985147237412636236520068199621953669906588099281079939699005975154681413117695259462612417454491815736239023213731685569253672698584629739252264579176409248149383555178130853848494641392144177324818692252230978893988777767587673478675616317881123720700847968640092690101298612732181686485430435997144636415875955318905761303318881340582205729903181667628505090001382693220702290472330124395300762783555036165104370323781379250524251865544178846914035417552075712343525593709380388135084803576987268799144810095660702108539479087639963537407092473635987259415033778362532215744824690703250189587762700456456756583573094389965742581819524647565463542491872915790266776540619405344317622384173475300303281270727758959504984041867659740670331666266534004568190022087389658249104819558573592294232059574343619001321383302482506821834597160458830794479254010864342868410621452112669923938179540444503583535813296323964788758225185760406648757392459017094813757119594815552666134249520174600483794941143591039264650914214563952143136310077286523357057676167903982514166685912379605648252398312086166665130485352423732622204637805727565717983824684061889514051492867846957018477796323352014811933713390088862786519760221915920499478963921336789563253208592452462597499750899095459522436568543608069605396636651021480431842197440646148253243953806166225357617171853477043428883558589086874525739123767349348190041997038040797587747056100805773495315948954609199536301275218372827609090455248401450249599132207044618990728135620084035409963889383326859755335796177849480685601079576425515546875778115868337218494276966113845691269099178291145142963276997160596877489193625034914989325167427282023233901129391139302135187640648724729795403667341208732198621035322886239675053674247507570839263658805436996587576673015563818556160739576421463228017761037417490813545872767025224696942954515644036656514529322965718469900689683699151226809168348329713417416275247050478062199188976373165846083047245977996541685016798332362922766180929176974517674585092224811246467760591052690082680959143254025174917391034342825205986283509429289443727872363880739344500492029822135874429946613190680723823598967092795303614403971772210139719386239596980548436536134413416614058707579919866105711881765362033458799142823212318870089746660743649110716119627081287184272975399087727413005669458220574422027865590553235350245600378792433295605991337689515590009680870192960051218479750566096496953901339359701826780472019877811987846821263083817247657235699958005675563407144061043144299709693654459406060510254768120612484756822020492827034962373907077395043007633599196566904914345032772078921311494256605539692161439879723013439434534189933420348658361856828575551636495228058783321439853502493231869590192243411188942882792379136774378215835476528435805407684533246946144511148561952826075975449806712155002931624217992108966142521571441970969734063041173669522701416786692697517592069603028522097746328163736965852289180722796054697010599368141160089545102293905237547028988630502589126815146836224052321155380626312797846288448279863653154729888877057529646601957929886966920830057877932113572331055263880061990985032404967457621556922041078009965609522704041871431317891449738977917249668620380738026799023031730516076092066666147429229927668162318995575335612334380045072162439386453547690737303525280526495443855789819357711722758004037663280791693715874697527141033528784293540757387568146677318695332726160559560885922844679141126459389307312272090866875676788493405740804213151180266146645559281455631787870812588733563455883218574484686671874600794780686876517478203128719305808091325856106205940576451998746789477413260042395770221638062599635644428559877126425315651517384942729500827594620204795913502766083510151135619420471648409963471364529218747668260524896532119446339841032224824394666923249989777222699735715253519948169153870418700804444980736474434405900348747137082106257718083609034749091702117805632935441342799338794247938514033847711964537930704922009541537390937053559187766497592687119843773575331990051152739772131220475624869997921079804658145307099923461488731319840136612012642280186521524921893890986900373676749880108895313852135720638065186927651963883121667265624608840435960042360590541080164209963538111976181100639412016739257282751296249782175704388557054008025570349020453845581346625393356132145722820332185096290640006281627154027578236156472175293025682955583180949831297911613768711341179289030877614530656089734706487950446800950650896713605364167817361244849939324172556978123167327301643862505636147994602302832672800249548129503964329432492607773521464536647436783596279728554317317546753686079519389347646110768411519766149861223354942916868620310555643387627676468733916490627612473047039095826625301164046297720872450392235722852175503809723036578973113124620938762577328479812978049159211030517209897081626658536969999361468064984229306157510330096234435386589867152202397049158214374281183036989187595526366241477359257730306705172086030364644569121245272249824120943543812755445106001315277280057440632160793557532007442038694058882913993657537373738719327100600857714130186502264509985069305002978190114384776994820775293642484134871119089014725697223637984398664035654641336074977790772140222445593697257881426369027017864010078009833163226247309214630237001039444846697031210796633507572907489171714146146676346066777694998615488206363833135078276591731216685834270433616632188665565569318867270907224061449757019808471485373824136264323878184668050066310657118439944125874529153902152809198987800643856387948985282709190741642039727331138653893741514691441774189814936806896101306987225745295320290697086173228579090535854438638826143125488733040715615593805990642343936799301487208344830564212511462054599917306400221273080678672120156951232023338057758898253878388899543273109750318842522533406886521839924304859051207806111739845927531719024111925597982443336682076596852204523675542808680932056474913258895382138306164734732934868135027988542483440429716064974877018639115641860908778053281023682889953267492086457843308163218091453085877991585193636476013947647608798682493294608603848911780569869572466368229740704410974555750531911700675042629748120790809812937934189735316815109419720767541311958982550875090952951419568584489900212344009857315536748665640158482810369055769235467526229335431636050608270519985100732160727386488763098681628685025376826887537300143057618420756924905854159011946469991983080418416492537758599893208736911150853588793226160897049428163223340762440641265995937229123720234383970184953908040831434383159454964966775727667443050859947849414699410919373858439386425252006933791347015860694766967747037459401005705402592307387913008526754036445391835716033313023262642165766435041651623788822147778130885416983794754740333159769186647517709790253741615411209330774453064621851677783424881466663282580346984253414699440392303483704200199429136854470915755339227015060701917346476251318149034248044689496554091833346029194774119152682902121903574114564956417765843075900041474755074126203254625065478357091932156443488218172441066206862427637856189270306159867122839401460835639608285817467169568008435896216118524219527347789194831020483739951057129594179201493025067627843113131770611368094222469229737207946874869525439546152654792539737097987354660616533514158205790683390095553863725674062100628239880406526906559799717049863360563920760314464953965806393522025488327878816517627706337092738853066092199743128454394044667963719536990455618327251620498087765962469682540066964123916710720635923116466970340201204012986945963330099889063841802775136563017884855260393778183536337214751503553044184869880868911912538310798194422978787661401613448451757028567360051687082553208915522146187805827295492923297505435921775488051186887797291014179738517212302625508361574149466412584188252347887023412964989972845359622905967069975744457974821738314387898339273806081870159856782292568823316782359699695044358544373614155583231413560074532554451077624673462068470376921201695716286390628549333270237943976631430491041215946366445959795969653872777938964755746344712275108498233895573681714742359189747622042665986725635234316105696425832856469388850194280067034325191348897212799198091157622226901342254406560631833341386278944452349152390488891574376990325975247213939581879912859193400678402234351116582945574858072539692941868706873350426579204697576832284526813985946849719916831927808280707995859186988084928025664759769267579128095892833646757934025386932472858306706581015598123579750797028261669143673089012555329939010509564408588446233543471752968416278970795978902967953654186699640142453202128721035858876132297295817061113883285710836573684636657532964966826303534013123055173128235278748111949433489822046832629416658579331925427808413922959992946140791668358576435127484346236571715821900573652768175074377046536966833340179148920126639863981870377957255111458794356429394153405824074096196880924582711228986187943112282381041475008365768496326431172456515000731306825998924737790069379839340953164414699133882721617455560997634873435897935704928251501103068951665925724588782580361601511918895284516780281061975994387090900186906581989338291572800292651896779640388618942217389884012982292396716702695507639508313486426225800248143252185182232977761045069156534826312099852479792327786301849792993876809551023395464051179123835813728189462679555907215000856632946983928448964970361285220987634954172316207761702010219476202242665121054273654795345272842162109201131741634558423819497775581221384928185285856402021179736369665949697890391874140736270722977205931103915990225743986838643123599675544557321680060547969826340144458380142773025906669594675864890150533923935006111386807762470834037191683833574035719396104267815765068695873022010903752528969415891536370664969009060863256088672715728995182081638666524906528554714300656747711775105473516297039921761729234840818170617194548993654738379442996292883625379993501800929097876219872447839054404250995949892350123217254661930462909822366766515964670816684120051451913169357995389941558989261227111482969463220027985148623460343233930732216587006977681931475763382171452570675197690451873039069605102558025091538499524751790777943280229412643587172792279067128421814958250771724788669704333051239045123781432702185486558535629949576522269662497391289073434212766599116068807078889400858327993025978392420327839963625141714119849446844633361900716199381134736460269839517437939360381895784576463279434229617880188013488484533178708589043813980152174678937738563070202705022624005720441796191480922506427988060477115228117014073157010988198967099582517346549095237824139504427820648326665169291316859911865483415939692700347228481702855441777537035405678405338026760935379658130463183959634575358874143102763587157069333164163289412445302661208288560605376746508730069196428702648588802070002409610439389275332815492108037031664626254021033841073383549978887635127670095043022466706514221732014561565493064327421732586310045218816771875565191484977120888552099443122991479128769900816836168453619239291367580139039970155210325396500988862981609059585229442572483000925412990585196979193908624582586202190690434613428582788528282985085287550802116095687269359106221463904392948634271205930005255599190949212567270309801249716106531480306823260828501259502721447896462650038479601894878203445920839486888768632761986767470403361549370275461288981083720815896404483003646728372069060241856963600851366228238012675172248522725818190141404122754494053604081938268606750967220987134006376723453179051634464873179898520662535541377695119004759089708742241796357490365925381276955810197314406416066425756168738017165128109307583308737246919947124690006508717883006650834215727205195822983758175148548353857253385554168051563131338312868184867689116594964837383356026845347171631682106541688829376454191990106392015975919028595132628001284702486120317902537438637042924525439166797321678975709797703165851090281223454133867570378894025771011586539565184335927549357942243277069252311793580546397521830503142548611184691713289622322563283639279129017419027683256050092578858580848588024060304764546958144012561443234445654093528317240910745568431288870515261450945475880850824378525449796381802126220661032151267738722450456988275412781137643669227660437278002928344507568837691529697338310187894065215489915956868559557509536945528771510527858942846695075147287470939186238531657716246836177927636914134440982806997472050625987175194484541486413301991471555031716868829629323280775034995147060238506373847219205460980696731651200128442939179150081235873682394438854673237455946894854472761141825706819916100892909371491197507919374252468869280247503953052555022589149422097071613812541382419817356205754942250165273646147488452643255548065484401013390137798500571386267242808320742918854251753884273759877632771079778496190152580998239275801423543507849776528577580057502146084074639901559990609300552122573239030112062436597241416312907249237562534905662728027559125564088720237304212407391711350622039566121698295526301869984686260265726374436580311523279078920383110622941932690092075412254695303261167538824156958690519697041293101918157411806495376605219621334476992593530320166018301323207582176583600871463556284019472359489569854603648122584310987430387785204742702578029845096630109969118413884341545384118700446041761100671189470892925443898387946042272052123695409811316073465892563890764548179891066411139916945072166826120595872937412942805391579119574967061613332911696310202747340884796544664744854686247484925265399138801740343947539213221638941963088103568151855128295083946518891387131941035505196370173250843222037064422180497328899773896971791139478406600055619432001501791153120466660903202877092408291937389410948385861528671276897058027664747392664988490121495557349677542822136786424596321861401478712672166725115000365081001406212443733104114981648321908456541279194079404835640706455416012114851981076716991178471491195578021860669077037970489965229567365676089812600001607018255347629947011743671454076650792800308176260332620562892863643096746739145782128236279291052216268476684406462379246142553396781080575721347174534692600935044901438590926342047989191820973378021472130782172462527215400624299971680811014338079998654074403870287596380267905693940661914825226250354937537039851773361319239551094874305825582818898670421836398345252255170409601695855925352699939975407199591310435280410311708695007925731837074807905896441427862488889786921034244576861888882635928406624528899946962204081942710846996864202124691326670229886185716584674123242357992875068523786832773915369166537212212264183428838723866480201193942016407523270663175148216378327213064868848935642838887187766633884050595942611969820548854891998735448449871374386681369215814310877403607161786529626529544433474546331951853921609613603373074314296181065617844635906056214711379469429446777204677808947475876181429392919677491775715319023473300549545077904909553294303171517615817520210399434317744795769013819770909969953980565854806835926687757659190173827235687301047025718287106298654798812539175351362175736994430833354792181199348120499289313201523460556298701581743543949943508485967504038766080049311106237034788623849569851622630063133438111184863013603556392002561656823776387368517398824745550947077019433968561175763131646510544458865828177831975916985573083433948645932871665511801401716323788634065270394608142636356301640523271393201980789240306583814639249550936621621787498407325612894557208536428503825439701125732474088258846875001292498910193378094247053323864206188578597175485830253050182218704963782763949814978483523196580122138348382392560660877319408405737750057586760849966403961257909392587374439133515249191185224168838763093141642155987739003166904287341558674976030861514820014386814309472357256279524907910872719337562422421384319827749801596475931862168917784374228641130469643628656079456202254494062414164630343448766227078153157708610814970736572833298933833167171767046830008627606397338391143270070586530557507986840596135687674683146241336446066696680094318101743149162380273972652578451504896255015768143521418333951043926723762330517706773291733498417624436945575599455048036889234029703200697088416340709966875473072874647757884393609289012638577461598301513527493395437145879889002654914125855166762762924842465626834612258654846631197484738066136097828986594663398405111069883218505658327102423055047683129626650183583084499590386419493859283745867216840938268662752178277735925540099209989654657630952029598858841213650214681336340314641084528647961811473294289156548860528585835060578967321482192092870362446168029990790458115169816325609550918425910118440864701629571984779279819749705858934056804426862834994444574759444995731475406505514604569674402260025150424380586759610442575768283283980778847346740882193957355137791084637554563767517422568223213503680084593495103324867489101021690392881280015947364432013293988397786867326417679768204704949073151020879686881921355680505045006580366649079056401194974187553454309749846466688991809587532203012481772422620654455054685539407680407633687623619266544685084411636037014102638766547039668458017297207641145290110527905544796850567112306199547645102659187448716383077447404762503056815924723777695665543752625878750764986256640622764979692869993152784371460147637975667172400169119906136726812189742734969535544356928173237752372452409570561631990386631750321804516509720141716019229845101449947475558893180003794349669352007735051145443076913733858779660311888168049996439590722608942476884289997228764645801212922486472512803978561310838967352353873960475240984546082544257542431560852343539178245573253592568918752231413828291971785632750083788359472488248333321465443000167949594470498126949111276468694809384952368932620223104264610852617718162724451115469432316565096693005089332930859649021481819705081462426111832320708269915270962394087302350470963390954373630920450492380005173001043841917901732367843072298537039610525566071819955067170911727335056286371234219671497942037985012972521702743845356405647977437562126028363007441605925040986516823512005372940831565067388503945296703807473835478103633604544200670067843970629389646938130543508051212561877398491334828623348406508409273803994627571974692310359936859019487580488225173100653664809380625789930644829572099872021809642423971685363477322307127762305417333062240086642137920028983120803751353722115952845627877005212094633184688212613424990257028701135454314243771908477877748477908575636245828137363516855496474812085212541426199935644587971614691013094635403101960482469659708959715279040285907388269681961734902228746683815646477886440537225642366139984211251602961000321692905291537016903107083353693277145028420536811647847629235505417859244426921026224533960959988195349528314666811179400783594632127681529395863309336867626386175660250865351041677634836585623721074086504174042018393566509300301344103528631734825162920423182822365306154756626607030934999835940919875896238212767280383755094418662228419252111427086374075411074557909885424532240432626114020513415140332574589140942205088790799086185767487936910147700971679841242780346339564558613775281373896550734395205484229909424205789296187943660417196696611512895812372895300881147754563086199174694066994761681173533091844748693477545728165548972278645903001771299209370812143368918595165608925780747023288160438034556458934863485891300461113469077606061932394442201809991985409451431353723745571312800051881883541709018737122242152740464609961450401017533823734417805125512206923152628626578652320105599935515190892961877769545681251505136405535249919019315343548655044594365118918305389530116521259621560979322615395328409540895194086271352196520628874628881490166235132630351070831925829831994427273494345501697707715756606622428987014292201178062849451792447792006781688335297041467896743303878962381487577371794442676981856542060648271393689803976956314681916574809801893586781075820371381784701979860261894964569144162015808844338368478602686310740276292059066335113868822212248526221471880735988618242873929536802655132070130581442347069696572880473944570198013486230279122115286892684791997596302873310491702182983652399675248202096308146651451278441581853097077928725330993735314261964725357063309362083389874176425587176442922148933536083086047193782063429528119401521198021208334571417064261779090288358551786228534563843345068198195937352516487343109957973883616192214557660574986660165336253896909163474553213738611701896763896558866878696318139674793247320013606273874356919666374856004901864345600037681603643119569731679577331768754632595257389102425028494979827964195035773386708330640991029095235799177321177827195594938088037695512115626564432196867598495498874159165154717440084581809660577712012464182564468462116004930995289564128233575533022009230041198588271649223894348754471850833986409328179547793737536910461872378071799251290478168355105584382555569884725220883232612751373393790156706867734417547744285879758233029340482853354075860550224790143653325813123904767462193623397261410163478116565949832075969521975527668976288197513545331334191992915709044086780054913649969147992496055618193092219415538291356161851855735750915404436753635188789341632339434784110377469165387172751488782989499387667185294316704809848826438877513157454974290462779810906850902073265269567232687629921984459168036256476573988727979962988697347833315285401634516023266974906027331045998729062562069603856699050747744278973818245157178196980151002562745251730346329541545484880745211214656710079781618513585181118295083909296354910613224468488036505675474842753139597812468428541038360665158592486230910202869049622816364240021626946534987780742179033340940486032694139599671929596313825402251168923548072409369506957044312451603342952585846380283690548884094969743564486875552264950986673735634620982962850430992209703823483371702419817410738446563928182156390563528852013179615006547479792842376519187222308366332804860275471088675096342715553510037438933638486306951683724126556574959133983290987969102116025490890202963333496680550980577055755723681180506211618519170511374328663464346578957115131421248862602474611669377953742603537325416890627873992886373803183508323634541458718014992804781311454574375284003979689098667731730324580740568175304139201677827067885299448555133991931129685891980511021753602846983599607668521357091003462681491291120310219950482559825610267441669868114903710766481422145590986819408110528340509596813767987116120184613505148367303185523618852436258943203076310088987645964874233682412649577512327611718302464587017521928440375688704808454532852346621376095041954274891115618397150751732102418236921573195677589008945394541694530668504527865586511269026308632951408378035654042711654056388708347866866741770424721505337899212121515697012225201509708981999535524753016718116564503429696281469068977699244731051764235925289613343709381371639402078470829945197221494857985216142051558734873443268919626628649787072946377237688806260260976183910029191811743260149415537622688078042427373699170568007248242478321319404020149174695182468297652272208068563566830433555586987846883737095772157462822606949267914988969543974717302342826053502917653565349151191987595719944046256688021329966009289629745104153182366553967397812492637785036941428253960796680710303328751538154002816785412883552943208780785765903990002325182235781842089665233365544480641087549740869989224681749001289349734731210141560785472691158710535589344292158672330941545661241861410551263444408540693162404380165720111851912868280435839830249975116731698411524974129178731272546798281676907248218963951085198473394647636014744972125474391983814869411928530295374372261532118379387993244438178797772564328439454944520974194536934890974197828714771468291145692344704110083255521147308137588870120629286245175698204300182851042463853232656623488655089595998781290511675166267482993100769995936019888139815642260748605041293364161749433784582629688613950394491670950039560021292485468663611345945414161530406102776554086985666114143676418518339116865176369627328875467761083830371700566314618882227043241629155991036807262924879820073645981382801755028992603259586730076880044868714788513686886531430854820127516030679409201339949150663453388923153491247784449181071790819428020543554465355861213545420803819753848397533126087362709420095947946395082101192852871964891074503945977535188824107696282269724073735697502281806668136136957231517416478585719031145128064824713725414680733035986396318639338227146190197525901103560708888735251027486377138124160049742095699062711984469696683208736008101000307608074623494275456355839504529093451993391054399139705126297681671681087894661710506498356104647684050757969470925602158440344496084794949920202751408945261732685715857578548135199193916199181971282248289410317708589028593616357159515763778712995698464843068551709287708596272559183742322137340208587818541237650665102918691696310555926598322340337916817110734416670359519013157799236008582116556802706309803304538661164927687261345481374071138695089988986359075797879085124891771991526797219119743922553911587295433972240454029318321681860201493632432525219827084127355865036225851434717266140669532193784359943309799230902403301167657786982113021413285912548081401292860133990456991806864951469626299750419960229451608449230813231853264213098196744720350048026648146535912618225323810753543847484697175310006797467935566651396763171157077964756988165788388816471570434099287057041807949728749243544992421097023383538492950969384888517333291934605920815988123221096628193484680383037466617550110385353800792346165357661075792476086455546544950455618682188960259862303699005964148278716110246679372463404478521827277825993339413658827114182005060526430953526877078843199861378222729936233555207528197766617139549824390034361083335392746427575561311144722979039766362518481718032623298197823825272419867131332714230587987492955672373699948151873741691503624824874102842501682487430864835844791597000059477795800026349972153074489537628155049834397861461844209238920188061475125245475732856980210226573284318572088743441756981097353147847293837907496238156860661175197067875069294186988258067178289713607030588094995342719144423240156919528680331905323098440647722495381816006039885416224955792794720437313941964192353890171168432255147531966173018595319186123370399564471659319511248528725872317512661567279892785482240584842521194288143223237348915162270624656967061644756690371148461531641187625631975870901130110863107847789437307734968164715658367216254761065580145421454198435827312992119241260306206826314902891741430133072830081728834638940907546723670634337960788331706138020746607801911120836461092306901570987881332756222817440669441804897447715258395921780004439632740327038747619007439788264506603660600627257375503627025903711473990880859797454117925579662978111919790308485452224140239810579518702819070440121933409989581907895595525491983031529380872834310671241769428425755622253875211910046071426563471800147447776585555427672158836996040400828446768320927264789180621175840366069771544754332018260722032087386076549815914216348708549360832077340255869281723341843596169050756166600537978572924679027940495685055023094869144312337740857385327731941189721153986221346473042127401073488909602936978869007781995117678980103074659485757531169504748628036832726204594021104044034404335923342888283125515398260592960235011733549032665677761386012083736762050594510384255846333298663333438260317895568137685902572623653445911323081124381599038485963538032372864325502458515770473024548755745973369263808985446210722120466230489820971468931806451917589078267951456007661590950404305274042470942529914547399025364948216554587386848665255815041199328109472892670681175880114882671928660143086632450087640815192711328998917056799166343211596604140536210533317127699381167931109632439836780094774355945239038072843865281500852589429918567219907858574418335553489366420962548677385885471782262500613823642931501654226888131323118852693268490525854487594149861004273279019361699693297016272359590709190593330419780116392865787271965455868890130605921210136293460592311473717182998585867981693388091065397827464545194935731290795292361106553773849326020503355671909535162947166660492261914702436984137474662405449778739367047186859972868272362716889277783457731439959764468621618827957397617435565119993277416774170250420088586712222068016595320494656186383076323936630622625286735798253747218250665279348446349395973758514719998216838851978686903755197896613165226144939059299496100598349023607264720202244495078767943379852519153503632575235854773290232430506361826172132094601018256936827406601366103586191911838123976761539973861636394544754633652471757924294603081398947782282143133552879863273031143068370984212828385190345341067889644459935064946383319288853418341030038754766318173923830365066309078631190855916133655695671070476460644964674667821221647330473995847712989378242488871011875052242315175460976470286759053779645185315080182896630793979229956745161252751778066593540853785450268827588651364612131728944035715060947510975227153719557698100981960429288758065650617131982320767108647732190030315870811825444001342436344580701021047135569697777474432136595852049859220907163922521355213899501482546025243889305092551480227046426112747540608785100777530490140681577927411498838430941117637235006124796025132309726603799577324799442307067359440147890339168591969008034908891764842625249367098528669874189771344082458794150712368376563026391461284558606562295095302630728542244181026417183546876934919995408553338818365866280299578203559608678194237647267560674069243492654678140556087853496721572748593612729305989380888481149177107305698435194513180307249116041221484318332401285576741407811559171058267629574881812756872941942357700084304740645715085059007763349972305059433070690009537021367192082769646575359796594146509623566965511588089701382167864807737479091045456801286384250977967641874551681538267946477317667140102801633371457005716336884006207842445266664931746790863326104208337123240931100758591831655958381017533591890794864494517190949169818580907557869053881901902726693301283424198917749450573324144338851143391077051553949188045425932874571376341498410806394357445944828051303240518933649628529131519997706946046589186181145118026485756159359582907948317072099960888349554280581474921882354103781429758710258344214469645257447007193783037159799790186299025568757115994049349136352310277987752875891932806589067955937553695848317173740363071552087916042842155051639325930992395666147221870481138316703382968470981340569002260729129613952105579808286408189426754789040273527104184349575487924071235928623356464544622952995997823270532489230616781062494783525088173325176866619708599570028334808082750704277395754499914480898431869332930994112886031762527917517284935665338920107197205698814174979716032654135293861348159496715281083251289727723263055041038031474611360057327801549000475234043391236765330523534604211807686964894593163273822168482006232069475397560313912606981601212244522931186353111391979932431292030271598910189533898471109800097677739630054699256720875084712149857264881853613043275100335750611899197511551674905917961726743975955877206216780172181344131476987123681630517500221060956817622082393740326233261180403331410235192860830386013658258972685569053348643169395336986220096972752772534067828840357896949008034192802207842701230525176532150855252486527061881610818269238345237743482325760623835708647573937869477352214520852458186960670357408020129151962842107992287869180529862733584753582305470800337330102525508675034587837406801588927962675740963083889932317561186591929305320617821815705814234746500318569770108675315285132188322692015430161141752423012941886618826590768153954205029703659302622055085063509460900088523364660288671341566104088740467784686507501843761518436608568501599500478434103337005975884581446437596348788331906404449266379951263617022913243792317771760881730926692307374153390743587093621641222979187535442608460543426323648649966216624372809579027304572458178382134994280731327632940801614323619469082983632256653449393425742522687531516564494871350134188066290061353669235958538417351358603670256584672716141880142014986152929090425768796866888052330282425257921926287983309869300859041406687671809717217443425984097598593745526151551718529641848719930936093382874286501564830298603550748020106873292081561073150129948654668064297552231957260754175579541096308364591018255410133232184865095318247288794977228084987026740650329238456035831130206753082437982108532372403399186161329073477940673122762583856871298065843878286991462054301044780466278368351379133027752811259338700083523325007343981104739626600456018593337294381885491346090499112061987162928115558221976630152768020671081241246673488185511102171754532711773493218683748717131862634604863087675110093608627590129146545311562473634255296045113143106228748062462092805223863848987224386321870510805917067439121081930468607602617649890072888264299253601112019433314986627802744197637082394167065519173489258636887825695715268634667058571039104238938727368798110574032401758398918351001134595053190682937825436942529830037376876243979940339250132141058002697514826588442355972153667870847063157129855546082474531693110234100191876126684073947928326470722372613962595007273107439443438393973128582211552194723798060545613606562205610127821407287807805694406464780964588850881416607398519739175464795553033008044034911696579315476597103790746519283256272947356056658615153454864268721504726301849006743876928460306315483507327565361898463966658108879645493011195708859489846354899582888304632743705562678604795666382832988349005434157254331777456285018162043207798081244483021192383415916951354482113538603431059454524173029502505836896510486162829473408144942999502425965154490654683717785517936549118079495970570281033637104698623065468271739858102154750734463961763209219307738169245524788149675822139419988968656194285109704185968920375117079823264677675524786861908248936529062102052820429181120223575924529187975072077439527540819818716558759870557190287656152685371967752029641232465699642504012406276618358455477200663870736755583669014501906548415375692910685942520412411923425590899864006953819985505408183974212685036976903842417611100982558580284882752676360053633038678718747606490751334276951354863555856642633056724389749974633238400214183702388588608413706896116958370714567567225820152944423286088262771196953290144636931584408599521308457938927142676318865597027799290618438225527589294655011452341527044472680032509960204124512240227016425878907833012492645494281918291366558469307000786653697081707546665545247621385477155819528214272333552209602161940466497469159390030261841863113362097382395096170819215766185827988095273010620081481278706684387159797290401530581036076868858538406435984555155655332326911067175978374528981899524954123879591857022453752424990566381662886938281047243104282298538008184922715855969316524435876714362649774434571235028551955442014750760395087341389134425327606919554859865160459801560476829487327220359260097761287788691348136871023322933575122154770789062846531744657002916805776387786499538818516115690497958734639492259827403697368956650936541046563356351897174538228665967415168432707084886381125410841516516149917561950602416590740572171034895169458482423187483345735920317370406245413151355183864834026094697712595591502535020841678374585069652281870002789797559655715527169971361999451233946576060544357524672682724992714533137055271433308924318622870181808652798462056573919109667236814865578045529644058449398101285519934681373036186852019524979093269290597938218934697552640165344673537459408130283042911006226761141865029918986342957661707417141059506330817561645320929991649635534230494689948404443604908316231486287485937595134440904153665569278591143865894805720853433522918083301673118937568253811865653493750598757361158864574499929363642939689572497159521228489297375071963621001259484392802457739584985541575607257168560496085588202180979328574169312844087228563129285761526859973321855845855879476366693999566396463200011779131968259848702821502198487001383826948187048307630183863064302789495443082677607827668100846964406725360055351491310950228787397890736978844495026222243888252923804624508985687761850877539676070314267289051650754914920556794496859660137796691227474475637485468792212283669579588607419193920131185680474576725637780965567900964048533258691338494294286563104200077540225003456295863035516037867015739378379347329855095630618257428865869910653460811509026293017431312690527498088622989713252534942051358655148861762554443636611311207989345914112484474658159738025276246285774397963985094314251002808964532597666725730301336742105504307291168737476658095928312625706017858824538330823924001589587979435476343611505705697837550565598820250137521875496639790183447014538673889388228780809884991168914551138683899520255133933127848850343176043323389382158575757073510983027861403642993346721290900413807754274189342042108039595167735951055337712799786241994093862372132713825565265119521236224585090025185172012489182325017998783587709190308677138198108732293337307865571193081905712060916144664983835901663514156350141864915888582457408097871355424026290838809276715177723875823127308990541196426762286019112421134275917907480613873610179375685720273183048767946120678921507983054001656802458193034892043940561362722485729092166352940426425012000652654014023044642611273455269066968384767756852196405830261700349941008042965984294508130624224643338600250910184440067232171906382891153378675551565788943651354170795498889069047270981771651660414669986249637908408468411913145580153230478108934446897697135783898842333242565448307220866503319091613251990160369906462784254582198738400976183720491466745911501593732280742625966216934997470623288289269383814662627940515898214996484579623782668764071354771327840580567248003986022087100105075938110417988712185971790200559335583008075514813674230262393848657816327484614360651667835400017862355763304455771164210570507870208531924738791142629768496215159407541081161092492098548177597770648850917984011445758989087859041589016769812879073497849000561121667722477999252347691537249143699771292772644181473705194042761814650542607563692240731940658173433730406190868254843902641499735752790749516515587246820315390688106726075634567806065728684285866706323714274769882328615797518629330135091882241807481930537029012486216170033114245331331909015402559282203544706532224064870503956614276126323506791985202366788208221382843747041250807062038126508668164406530929832098199597472571650670101336825617128737441130643880395414249550217159585114853091984245107570060803520666543584906407332150804378965968849580013272540295295978719227018402036988833288269358848685208414338840884994546322102559735642123003099602977850771728524164686070240033817944223016200536040657299190660838605243311715401222194760897038778868428572997363316848321979625361900367880543473380019309829147149727306841790610709910467640095935902886391855767358632476650541089619657567924341949868672153287310477487999799675346657815866934248768601952661133833226489838393886495278817224913264535216038831677327391717605978410229084891168318937719370410242353569843850035953955884111044428338226422859501630432187166631454327684522641468743356713625600749175342067996831237983377623802035174219783272616480026397073799581119799180045656559920584627472060423245379534550715443946655454573221332783409674055428074677703710561459105366443252172920191394026030513613613765124072514977382207286888169347259812233382888827130901024692242989768471955655748643058793309585644825443451656514707779759433932075507663969049866849355968605228881071571607336914497112957743455947233833383739054786437348905073040082612698957152121369080311586728650688295335101001685058800265060715950312424914931466220905684768329053628722399381346711932757898965983813024782928889951248170684572279845317673777373266628822071795834750142061097879148840380465402522106315382234880522977362430548431734844795308310277988998244595538260076383200446652128817674892837873871752025196078169704190997054720087200558315676427168859746160198899568042121571394542469509925712213992784668222182911011357233268542005133757777156008019204706901221808860331583134470228197877525524249294727674629843284941464581440035364005556011013525166468079676493689736047406908241210724465376566639793453211189010717787980142964945962119504171458693173220560215062350801829080239655697419215702746215525701419525735108879798740216881908300054467430745059659591694168365959795222933332059158603798630229666117708880333636361458113005709651333852749888487578578113761636436188115264575018909449689713656804125850567755838875698820298723922469154426380859553480052356302350412363532207501630584665979990152726744154281328650304597418727149956374113408432319523363522505925710862638497755567590208836977418801165465400715835052043706308245273983793813743046677941934490389704183957975512423582411600581633518778250502639930464428210333199096734172889243654242996314745082235933298806515660934095462764283062549219513686870817706756423044149930573350175542281228508638281834448119284284833210401777915304629141992966421533728991773843563175317900117759745440848523371246708769633642801649620928116699102567959059011159346593226748785245743454110194500088258466903188584494034052860471853774858249498336913544456718273372821971318407414248724076284706649117107747394942876613727800586901006727737485550597166174245820855767673346321935059867755789725614972435428992942977288265402594402440078953999888067053552919565234119633471229724553996541271571395065900973204964529100912418384179396244206740079951898492530929591593830823602736742420696312763802185433402591358767485882720722421426194577867450518717878776366178723016199243246711422348487507906489257138036288447777756102208442735557855873853459367207748085897126145643521083055180360294402739722687527188823176803634505715204328210720053377255956697941850148301565576215697837158561353052022807881926560728305300032579028340459304920409884763636945896842669688962157621033730637305384099009907931124079063438708318444392113961977141468415828403811377184226866990277239563951454801062544458369899815913162635264986205941756276280018415441612230931221259742833755310529531425106904225075498152927373144651171783607509924467995914541833039743423167523293383464259353142825369549199276717513814991090373150459321762399858296344253782380672434543129483613922112550208018605316011728750344473268475367901222879862643834533387431292281360743540039062495024507649027495320396208840672754874597471071648272073619136196900157759175330246979964789542292085401930301310188251590951014808559276268481073776836831370970181803509158398732635410156495410079925120394508641934154093604369523910743074973826334278641765019131779154612181994913973468628374203108156787451407298824254983634375103348702123660864483766403750978040456976369011489915556287717093593955283379086383592696525294318283492539308268774480079451474796298308644174706604361328472568498301722287677037903572105322737022653953525160807234345276885470077019240332290919835596282859352240545878983121061513144634618917443661746212466452753092333022139497975015863071501691123213146909288513661035797967727847308116931545381506194606511086732367973461806503754858091447842889882482449933259869308755464825760022300627881301264520843680960680269325957379083110876576927144326120875665631704330857113704234721714036416457828160682359265929663463544221003908583310765523437645682387110892888504886428151982787769644225565163909122384315472560182274531448016080791066903726098066959093644538547547264098068054950404617371923868905921272375660965282950121142856659882103351983445434873464723672387094562340786823591300559281879707790240690399653203184546155132275218686284729993168407987050198254775582056397825224319680729511444983295506448954947839447296097323943130543639666667846248614753851249644035765152444664183759581583580033819803699706395872162052841735422308646718996316626407733705014504757005099199297152065619553840004747366974502466784189447636655024392782157005747459160825140877395693539111636375220377913801854646994812198883000560767773307445083034201773672499347035718473618766454681567186773606280584658549708366979861284670143684143598445472946935385604140352637429370576877827229041336124408062002479401949700804925075696944618691941487093877929622618316062671177057960998605735407701453838335418023683481897746483977459298121805098355106230330308698762612142232481542171536760480925786923576159719661715366936259542018723536582932122978934001101307849808445093238247795447660672788620303973433477258484408397102686107211655367570696257423066543405625096959410598069431087948423185275034480916305406364909526553189634404549416195069082740427351367205723710463172517456897621072125427958516919003969065795520787452933850341059904443308570673125495372472724239210468090325444301363468028458774088807114513515218605843885106019528628510580072603678949400805870391878511539996565935385803455876974603120643091630866287528036339746107583586227299064176561849602960671558307115843200518102217836600623057914249098438559974254158016424109841488695386075194882066101413056796670364558591879994404559422832406312682205227027857788454524377933208051670364002627336006559126646983131555692768092312292372213425926828672488386427725602139945863364343085797204680415613159310214107162715791895578319687107689368713272775060273123831162149065986374608021868778703026553022565406621612733105069444973990532941412882034192410559204070152898668792427698970129745982777600764092972939459527731673230623979480989622054890276851416048841797491544772025949679123442451088904922462805949896525188088055263876733419709880657826355695372109471492271518634353327558011012854812137404803265799738243664474614469269736504815948490229777231510203540491199455491325906418539690262738254573488864680963818624991656966307111285320053092323606202611795332693616415148339699016821343141698695403726720571004718256295407702837048227838715954752928018076428915648453175813534186487277114250283235238681946919444972133592389039524049305201975235705818506942460720801706672819320056753606352964688016132374960948085971106035232715418128804133072883349868864891639646099967736879663933205431784459335086689719214264782058604306102075542718680889204413394237501742665021518269269975969000824016844204204062738175080244503593427008872332124257003778072262722362128965181443769990385933960836345172369949808335933228688677504881691745774003134722952623773749105197326016170367136547075680871125334686586198031802083617069610546229052024671377604115562226364308689288793432310059891048199609855536967239061861557937901903103161530141055747389559846128536878287524396667624243210119835891884625632733885344701920700714671102268024371683343283108955166466945698211346793434570049176964807425371404835979488513325364970695155382886255326224370052891142178041076348863990678160537627989562204042858665200549599474167616137351370245462140989060093418202759185117541296946040650895796692764951935496792791385693452205347515831271499487881298551364545429270090602686252650963557903829851290643476799749755719957832601871860797756607102569674991811260342602423645330793465854897693708857327727449059365700184327789722937209065135792244664741920559790864268946646196719202345743191544840075885277512992977290185470695735902032101112657047749881934172525923917005283879955523251597407020442620933316589459610088382930810517466338426845591447679136988595876927357884386294889147049812745818763689700070071176681615093665242571091185568172362853852177999814280974388790232414663868534541036246045550167879443923416534433152071748762679732377264035756634999382610142017832826612629089106264896210111738911718506869183955326980726341378258926661728276864573662052080922005002754371124624916764543953101934740249984754099667296227646961728267881800958231510238581985992385920301940487140592843858764795279318586520752611533940923526950850634063677353928211619721349322148704975177574816023991920748770219769925498281264878743938364112371394903658618805437467765426823141965388397812346209846770382314566325454533920206799740962336953216771058217231706147544113208201677059527989814256736376961506063678453643167294641293072309566313395013910102090440797005339337201614100174864162004724807035184435172499044000251798520798639238963695323730262819900989075451757355299112961539433472279229434394724902736686113280938138001272546950702679371694334674886982947194762510863388805385303045655745275547314131482682248476837867327631209717521371804065414926191116332346554618471318272631713377265638302670444460088895225204067043567470204641284166828027652172379307400785185993665538998945428864439243626078611280873507369143022537810459676772250524683663080518029878402593012538466047890850380396928013699283421470400206430085508329518059472443550070370303102073582980654794570830465856214285235044162151059813663830940608435513682408749187410063771603514388245132590926325477298750288507527062607526300217940821590038304933481380947470515123605184196339495240439052038280928008300720744414298032761519053184808402577949115527099672428035561984164175020300668303894911156388770785478910336855686338314510311361504952715905617286493858032452179460310424999216985146688219809692909795272720849569665299453528441454146393733366174148819991895180639048292905083068678421381413817496759998168203147822558127128067635928048293064403800092595217779427068421392245983114256374663019711004957667823999653147699313035946337505574680376206750495461426785743345564546716559104547825969282975461916222411849359584170000815212260111947892078870387589665335644702041444709631720596856706996628622302644703489305609681944405379639491542371852759284255632643642877912054999798711061513314784619322466051584628801944710542660764405658135529716755193109334449392172373489915484804051398622049924683741467438755144057228302093393070996119566400168196078511135360577875416089873109112269599645827165591715917245259181274351772916668720160195974265825912357301543471939276009607466049379804204244099323317360051168986380897655168547166212740905818876665569901920645154477863978457509611843613941909211625638719971171609374169917663924910460056458896882817225431483133776567399128398231384219330116806298765374363388073838995437918654108803228267537174078448201425755448665117737114809590395978022592627166568631599106230070154512187170880223466853428016138115349489211470645010994615898814018209119804123617751285389553603666061531312832741060186672682581702586268994663050428990340013694533182635894691072216845982412347436890677661660584643777967658491371800013697457600561458866659946984527308516517533432809380176403031975261362346659127980205807053219186530946970300379645670404526907480022784001494564482578017687230906216905314926403306124488304705618511858525708875216577853524999972533491049803946774517570807272695790890727320663113179366385236600627884438532560217076283913871308964698482757969462448940160103477162306094640526017786023688615879760143348344880568393049802816247897933736405954175290397243974720862548158454103507357589500856526470801248043278970195772427113388260094469786878562668190656880295368151849391234112563883336842658171834882942782240672732246307459950907145154741727441381610845805027812377700941508025043248724188352007696641093025492947162324958774771526754893056242798581077898092798412937863371411730959392778114194366385159905710052299997812905668640196144258436200482312823913879546620970406795764023917480413207408826764152244953775554860872796018394932391833845619370840122610248673528885192373630596043459369968549378629507562834582543275291013344169678713444755296342688214427717557284575127677007527857872179575491060591026566164734414664049037317005278442545503224579619743891922963057625072497822224684853870296701783412959100796299562271087727024487460399195248980288576158067544417732008817066302133124385396665361550681468177303636506316861884841837893810487023145173588631501459060958100853742899545751238666481784894075046308522661793288846905478534350560441704837161817371750937435218461344417177143239074244696778054235593469172342002144454381557566283385312990080185528451407179910650773468631416103989626256844829704145030831586326481886904676306906646392853059588502854033534959961495697131820245971430999022329898219970299102086970266839484870420788343121572931594262450694256839506087839544844887661213594830432553533305601523041045179078659936506020676432403019351693588672768338030467365398445028392041453772195816009645267916857438972838320956833783316301018854171870804712309348260971003588202819827566503652486596045615579635410479013505528890168311840587831643778831592010877804723104226741516436161460542021529642890733819765887254368382319966081684508544305186948719922601181755366977179298475829975759458417327123425963934031947033060706439461738187521941296913617880031334503182438311380030474451660186456850965955563471516243821784269842341580058571926213479188756689827825067212301431978670253414035040131526679278406514616913328176072953119226402108998882336757989983272546486382687876019372666243211439898833942286136777627071758132390923610175928334542548450781511524963286460888399074927195932026340136499466716604569126743981215917078307761599328946012965042651115692601049048319496961696638637080726397568575915746882953738857432539790531665822262922046191703415007459203314135959868374528124011653603444238514965796454232738521988258973879220923315425005010774272963320042160804656529852631116565986597521711209338973580376145240699871200736259214472985685049453959271673001925618257390493761233929680202227277570687237735303031331798942406447453607770895223042636386368225171505194122889687858890261346804044425940422896682823008260045676858363891821291595618013039310199209420500034835786474705987146710976901354747648214150698242688368889384388338270365683365418983906946739858338427268103466692491468823134904130859910169841859667517516592080103696864026076752693432846450870842828178288245812405651900881075852161586351404648399267673202178312528017558375614595113424594619382052319607424251123956393256749022791374733093682359088051673375571210862027279726978228443471886250154531855726777542076308984193667366734321128480026987739021421648027497440003106187282557847326174467218832667249023208699977639665372276341999207503627799854603528404789562949268284025689020169439665718910126984918408129558825287920850997705356660620980658803715181040589903131670083913795051994876281023684357271468541458347321675626882441785575779224838966413524639633216284356687991072234392519402419234074596012344397611609326308433372536762310806589953138656571222790163846809452674639960704906102522530225542012804668639924869619483391173092665498905943115266812536241991640280164367744868180078537318162023540933131945012919374506930240718263844710038272401661767148329723283313919388129884926828896502180151820965977901070541864025619471023329250986757085615124287010789694129747496182329380807469857459759371309772581430834097034159047693769368368078969406438653390854915420012537853874112204286571111722085262771717772065936757650452580411340297139137405118176087583862887057768656891240243274538523735532289663411622620432987315248618004128763834587972570618414434397297279853260577973079259583874678835634014868393342056286572195500240556734767979764987631966874673641296275669205015935074129806051383373017998928373838805838721364194807240109821158627244524437353682969119391982750493390925913482153568284837917523555874173238806593823522411201356476159729196095884989487541444957948143942235336634050595498164320185889922157551805906132136845126418498239991453543779044752786602882219335107574529380290250508822015907209320259976094540233941809790516326637943966885207566800078494406583171555787496590851083146665925637475707087836579091948206749809217602397089262662487766811720590559968074329141577694795079597214634315605418598561649307206821297782994798991815956189455079330070785258575244208862767876817131518091448385710278233433125433930253217622029281549842510445827612328961726489195496363186617204669605995508124376554920844416725190165659630896346528960258029309104909798366587389457296131049791403333874869465542440041700644801286383562859583175722514399266035415449126523620014858305180569844128656261284685871857295929070436123021276903573443433352806377939308952629497947121091088285482554510183550915092901823678453217299699865687734642455008170047413578336774670617032183971135562829741468771360045154891332793037171415306135365277310420657675315422041464936279313224507869993310406958676734478927275961765627660782156044334961769321002355183996639568294046292086494091182922237135670727276296524792711711195967362192510454626598597481632562774036251014835176003433743190836609953060891875990939683426844010221151492790340833567379774777020877740840674229512483702534962262424293216261545421211098594019019771404345550011036852124689041904060410293349593765333110050053765787857871910771271037269323363784452133807326541405427530565419814853363814501878624122904703399539827221008126199755419326536937428180194571747676275816508250006415140994865547338627647815759701033461055290147256190870316537481015009350786122156813259120505231373508978000103521974095383555630580061013474717263507812193276694446416407045181584334837007159269622654309933410983166972682422229978973534304599495763049288927919390599724091775056188749549712040276062349121079841662501327141375073487658567634165165364130812927874367265937291211234354881901307207326404371972943483015257341086350833391343193760146334290626122868787252799984555389739729505238531798653829542807859424733096601034167609115371190066179230328530043513301024680400684866214657802804641940436186587559414432144602472062601550327876976550336185478420026637844786487701302164870732448686522173639722644692606999313693507251669423043148489280548895868444735381610294784267136921614180677087872490733803103952501897919077197182168616332051175135032269574140443802038449315424653093518573075555209925124110185413926019133631138568129363059765718431541865819861804980161714819421876727695131624116806297667947705509170310384715177706366621788774919807435420887211851010392953210413581085940651201134579422878976957919279848222344686371451257798419802092347824612525337510481828036468983654601079254767739486527861092690847748630163656338948611163630939458360065824008839185219712523468505825121923575159602300662539233853213067803941817796355844972082332393382451422307714910598571051241591896914308628785892639001518087012847824967363192563588482381605329019016777034349764146503030163757657794539857770136817300482356532703393387338288229273814684444620527093747238170793832118536314126649718065745227328453210766915026875876304489621420187012534002395731472259729676920709839838109314920964655586220655804807577839243926514258509679184758133989362560449620975768250658680883258625722601977244311924120664124899213233552422791914879402448056777035684943033436839150317192144281650823377136751340855324844209008141864524323063766585367753351949212155088824082338876313891648966440025471550821075387143837311009332855926304827473496026845595936148916597965417880176007716851014478175054107543982460026855125561894726105900630816873451417442602920654296800756950788601983773491153982342252927463955634379366694221149816574110189558617431357097926106461320251711708766716128276519774809782323431576477317613482059990892710001400630139753968477770075234765341737360912717959882089131557852047843412769108191120059774671494363514731456423327789921318815196751105144730251374656325252922210215551945491445382117185552089346512590135647609947486168574837773997125239882146003413132255808370783180980549515361738000116359550298889074490497423250449819541100080840432894599315629233976016035893329205979002428204403368314297259539928872813519417402762497116232829045845724061612653279635859187300594452579865080775156333239401272977392567212098370856628921311353119503259941555054973999489645988441615392003544207669065960419902697529308011516592664032441775293612689457404379203490176274136842215385152892699328153047088313447493135108961668839395003386322732818284638534027895756413612583913945286814498797810180066355946518580009523900333863624492844799398046611066755164346995845238846778902584315117478319349563776079010840214396052744701402592437661285625177802462451140703136362814602201680339183308373072879420659018748936332473478380656103828292454977444079822977749070139797744363888815991134638243094101567607995924732166553058125467716959767947837058249576658822349867605536835953087172324333311337767208335647559810405861095270842629651866272032183889918962429366970214220399364248119889005725725697491034810151924429867775321407114960933954559376079378407193083588380235065456737938609530966809575968196881426461492382645235487074864066566691226610789196443332842887726172039675351296625902192675441194687510540390256966507954648081020236298392809144426745680159095356200544803632850617128307005323582498969076818230778514615954456498738977208710201996093930678958141487434233573468692761626716897347095604603234388540083697857139720316806255966765448406231202309127999226382813949451438925876831460527776494266288338348434349511630182617200184506940188674790158072134346790609642088188134821124972042924087209266010151911997713377850109015049949471064987637590446289056331725784260400404012865502446012828747641486570556001239846684406494020418193621764916934237550197843363139292165669913378558335729180466568723990331565552251378263583567009847706202266658803281783291722380479963456593155903038268468687422409248937069623867392500737388197207547386718028607607922616468496480642795246793229221904847626659937638444251680364820303601792339978215189146239206627509045510768713358134214150263663005548756272072836884741140392789079295927651247896519044629153846391162530298611958504710409519627655457600769120563565676103629134611375258671867166288202370527067489743856190735362161641993581460358535377070616436970611144528121986827749941047268371068455749463318263225806728912842365866929438267179999501514629063975321592555771410180676989005219185934454507193381199265391214387041770423676465770742409893976478158216615436641120046477959700566911696857847619534396885508373566153701155909361897774193212185792411508577343853672310814073333148444079830255894581722977057670395986855026206051476988320643890642251649375885966331548199368946425597389307870769736990307003975210804965294266448717048947719410630907354100270499518025752204402530433125683808983151882708009774337688163259009761460231686786453305383910093678055728042502100510349118765892728327102951171414688415735220093579109863763563434614144748978659184718427806204147716692047500768335722153626760007804364140254214624932611588046381926362310528554918843370513135222538749590889455406556470104917888157490812001389069179281252827894053901529857890212319905654860772702643366710310937931818299578514814377725413510189226035237568369393982133112396397463930316630902879766946981320502034953365472719334740113144199966712855233506462496165680730604600797698626129937691507864410336385281324735434738564451810333667388099027242024386852728736071980944456245958741865863297484801577474791173545972020372689301365001294915408223804135914271806715151081684087176494595490277500257289666468501715136356583325179806039776943824818102802814518283713387904474090200883816965635745540089878933257568269374131414984619272725401865748747136205811877273817106322087708457947981091849992640969985227026928463280115993190936412013522987506542924686028004680473874706995135621400499188703171395737448182303676268074865158575121084074818282789530512236635112152298617394208460838686295058732108774131991720096087776506517465833254069255276054890595504683616746056103322327941515217742308435517750886524388320313302787975775894635205360530089208837755014558163231471926929489186038683988991115313039594781904291060986809060638127532397246628411686735216308699991133064465897460289372100426552000408481139558172850425222944847848584586925761508237678480700620594319633147265640907051766932053439406236248948769048709046474635109765239481957723263822870765681818825046466518590207400909611940419781079812202843451662270889889344954719086641861167868559368982484708645908950865314662826670672620179184028660068340807632029437050058618457834164875670487357170097666046084813964507774908484736357603525298514231832424191485336575200109251799589420955855899727029801400146594773982535017792270627332106534248586457181657362679445903765229399774109139642545252112070516367784655187385066706330534995705642700273161521802332442620294234550936659941335840905977347510897188985687249779637019791494028432777019980921373196365370428451280967619311541717483434362945533878434541630479790583606491677795104232892745651840503356305556181797933075816698505219148702062970973241805106255099331490199902722279841174732282256368674847422720503201809591116394586469364409214110624884936954902850363664584048751529360906459526187713467049522027245637010294539563006060337666885229144407320727296506963379616547535725834357436398256770966839181081965193701332116741040706529584821047048223536302031294613615263924984553786591005156813251833382291494202990900652844042255877958784408897917675889698629829889222117185652212743355145057392343610952395250479575299434041244954062312421087281664143458154657674506134802199885875249544900079464716183989501393694690364861575725853573078716245106244706022161586968395281730650095650003719095246698839571152441277662527644746074877216861272371827588373124948104177348080787980088764330487798051900651278731172927097925042598388754145325036445037147654232809309625785734985323098374260061791845102862220945821499735333479130456980435323813017483966269570927993729038484938044447629978606237610381406370127269383474134166778319498804215155788908857567509962096183529582056481864969306895741440192282162711207806137647986658071548044328594024379087541490376261234964074285935719669710213455397837295737943354682815756872164569277410279450983242702920756290612237302970354373268290632253587913445808169973696935606463236262928881654046866354464707278172408919893386053395493190167855179318903284773248016970309745102798551766112390289779686448869841853883615945213122020865040903927672385417353379955145421774016200215941846580621072881352163076856410639945269900784853353712818251487580164659722504895942277360628555098224532815799537034565162807992290271718392468202503151514500739452984860017755739657061246533398549158725973824774844741221122981840740835548652869698969661860309042692285213265843972409796349029958060220988922852421491471459754788531991644282943088166309099378052434734485561867402763182540419037211691713647672160645356160040126898669199945397233383484327762441550993150990949094920523340801658792812909378957150201763738703033268113666587964225180365486734959954677519895276660573372258741919266354181906823421040625560223058229412511184233688662090782719274734031487679793670257091967749079802390116894659983567683364285285581434938535027014510054504301657911293981692118262593327019887532384215767668894827032988951017369928442715220700405498828268270508622718290514645996893201304312516209827316820050579583823969058523170030848832569481324240719846555351738053151518475828279080607376160981142341818120582994326411854322719007450287570546636502267002311898283999322048960656645501452262900818863015882621426131176894277319757976264825646574494985510268817311340016320095959828403229647785363239690869038680946841573378275561298758814706740430488852981867567134720423339891674786635026624523654040841421879674647437999859866642298127383775942268063142474825464868100269648845853506106027000310779209346713232591543814440140262390493191299603486276100066578353176925356290002842377056592056353785681277077083367784481927074139344260207387317286063483618416392703115145969603182891260080074247362510753890090308788031483195107307071754424507468668975212795791535624974026264870421542477580113020196571529651669040662188446763347494153052392011201144614771347713717629750906095814024080003042456928656372748310143477970140364765647365506008416171680594290620776820148961181293366182717679370940664461867107038040117719455521820380837634828271451867574351962353088132092063545053343933619279589565911486661557014603046226238928620560101620271808853518005516887128448977417654596679630654806354478789972169743644641022412891323081043742947371555565429603863156389194173309498941727585136832420544701096010679146422756313666911296067225872372060283923038800788223205505932979972955631843857643829967842760979030774359082315484765816936518620085731218925790345754150311503012484577882631229841525618707709859841883854493632473525250483350360543769628535248930864491989496110925811635405859576152772724096694537268834695574161043833173203411909671107501498939290706656976778999562574765096586488802355453044775848391943546822548935655969156995528483811537004302822597104121506469503768885237380212986699486010520964128656597514152040939087425205314061136738966251292680489764687331372251474577336810811676870558416808308287848749079396384736162188047232971787136708764087909350263291392342173117434110001165507269471427480796906434384985739165350708878210661912994219060201281609886685859474426539169681760369271863169014963883534538419669602397712010342079719977746259649346708390250797847576498490376260585650346503012857882776860743805332560896561396959795804111497859749010635603711289354361849695785941878571127892020474878204635460093324504022018668279730356024506650041493667759523081194365124989963281907539431140418470449566859005347243326767984987485092921293809982652116707390756528128639162293501077110239024704334521177394928721980553684528173464988480652643464228519530580632146774610094589039749620160284194347599222632805401575674885072434113226118317233603878302742031725117506533409415189617720341126528960079104114814886408296256065696661417598933062328101831895818823406015764014978706691479651661893635671201817993534504672966989893880544745109101286599829596898634545398907398601161959938346370344291709188124744418811719820708965045957675338078224067358889874817115106861056240846995860754806395288822843908267320629971102251150760203629087665994268610430488660112703389723329861611069284977074842361124558643602348992450363178095369596877068788404855612554444606130209786187585743345979180826605498475704275441287045104314345692501164020036275810369835432717376277809026858839365841521339520512356150732752145651209486531715154890706827533031020033465154368975925184967479746102451786017847253674533521808691812233374664212555841962779228694925286514480112005149134160022300534152304395743680756950061711743086355784920142040058382442800823754188326233110457789464469593966201540593240565273845063922250434001272298125370569425103777302817936259281351892317088448130677751047641347808055096549623418160597597534126331118600675239958531990598355296475490231187941926854907724841645593056440633397516394626991468433254233802426377686639849471367351357875592663785030684505842800340773757108705084328667607075363076006552459200741409117736015977178791293073067350549484450869461005809933199120605117085788397272095771670006612364019009284278870983155325563106374248884624111002868805540644840227100355055486116841910141426803536702207653681714592919116919726777033972836216501234540084884461434137287464864052822590346494647649955725467748562712743792903323818139689441559997515171112584187326027719438499132815131913069265474980114183744536581798191221752707362320799966314351202190061335841681022723718101110759131505568407677348788070345981972143875065116522633169712493898350178603404763944807939644002744570493064964410442683869327757251426521605361716361781491129721239186341353042905407484116148738951742622574240796851406982127951930146487682286339138069594386967966200546049610201331097590067539444030129113473182584208883079715456322820688947567170296797003358829065675474863149345911902761161397635019554017257664369234717921843117436603118117469434211073748167030867311521439317793820459697219335115716913840649059882609974343424673318682715220614830854056589943394303913228632874472551674171158114081766594905167047850178975957747710980531137728609149574836822827615018769369449292703450882116080968901235417773091085933970479542492616872424811565681677061779976730768890063937365966894452360874269349247034427876155928374807703535364170335238761461207979669708443181410601279872134872504871354215054142201746383418913999948705246551814791247211124638365626142869236535681504767452128420363604881614198839261930306339368863217698546279088817362763766493749465040443603409135357005464766204249568405507687668018043499583759672792462629287927017444710326989928079795871894434108179373787170985264369270264346247271146679603637009226421016018246736832377978178191254712782175626521870763171166966359549435351049778091953252842023610890654238634321968858311405878476768999633309435137327926554252789542095559334170982926696049684438047948365005867004791859326438316975359406633761803102067696121581999890781032405539724730532333328205792697432842031522734770934828628338159944479957571151646650111429070538049836700991321572616419315385436020052857675176990334250866504716944147862146802834507123054986354528301756867172144080314699818376907634313551103357269699032940310703818594206178651802460714698831965785953425825667746618016666980683075632480723060983444493167866142726834420118021397854570830577367535752728808202694077821418353121925156155203796883270112888261739477691144320514764355255667606646918425776101053147830666620876846248002433116611296745109722736855287522748301124288849912591157712417440400651147071410018211609114926796618920018079496877484777363614773710572612126665622223595395892853215961449617163017780505767051457714089357340590076572440105805476714885345811134977505582845127968162110005956734518668137887272754418997166301361902002595634677064365233147925531394942170242983665297815433563791958499561854758842466184874892266388854390835852265610917214043830401188366695934206314298453147553921412787046198090297127547514662356822303500913140676667773065991516929879792041317796520567537032414470711256178108202438188761106730650825749877123836983378902342298775425586613150070550060454883784506757592311544036131213920621752498409429694833534175687535708478192700587254159814190994742064702831850015352884090967500857250623463319953993902021130369960385448592014816356739658879897199128391970106885875006471032890254829895382156095747808120144104982389707243615955836980884326207322191405151006637374649036588821836241479790490929717217577710650713584796262475978465462314924464907423915197434179591979918480684420551123665411619734937854828055369163093604971169306883119462769001380619538582416862787576131592678294790093477316959473790991402630202595010792142500073186427767317682691860625971179374294794241488449648394303186571723291743182002470164214329520461846312231987890405580155810833790597118201013975554645831370670671864502081073540157160140581720164092462057792549662929751877583242797767061605129631437283523844699854378946882084766408130550449264207333179290332894709597585586395304983986803769640496201849656399146174939789467147085782712159269818226584423656918321931151273583428914394973850014647479025313719770662290549448238326606530976736079876153582041929723063134322997685422039538678495384052804688763415321175894816883190693736670699552565179219849497435569682856902108925650490225309824569366311900918665506129280254980872383269851248839551018650788369443911445974516586778332171485333836735543276947325674045346974615536832319138634675920704691682597525797775388323299994223284551104316446991404943866873370975579241538718031219431826739924613909882363004988223750130768920458441683953877584255750006604934618064652180492946530938959792452448653376541002657233359090591916623610019239368592999351544565493962081079277645794612550407062395353553357531338924779614222161722952177774507145773778857652231802325822340228202587282959605862115666041824089820621033005942160417316966440197582511988687524617589465544752224935608909380895650888087331650354774054372203466746311561379779594660884962868477094842179601844794398410555144561297112983449396150763428873261608952342964448634668989814791177692354550877305716664033385201505268600262283733419676611248884490367276247799699501438234161925023120095324845786799725989396835117417255832164897276909642589685839142212799670549774264675551286506601063911972844719200527726975526840303695343356091856799052612894716059237036092732398612711919814855293236443127811327146274827930207200884021811429557290400632311955620510693506474191230040558056439985709695539434028454598313940030831605783303484734588997852626960059431158188292994824565861882759386265387823633993321386658678569203058754115264636700024477378832636740928477054644710288096439988289872461200384217825163731208453538048581366593071463001922706983438482756429299861210566618691253930052545897115519056155114987168829262230212840595462776724237230718645095741297721676509304789266980690039696513426153046533543728736694887239536219292370241883439087837003081613115727033776547248287830806455229839861639519932375497608491693612465784409409015618643267043825258042178817529711759024559376045333590331893551892152069584742683437391625150781853119749604458915379416127813600698565536708733087355341509767297467570716083824928846602451599731200265066672017294048408448819131326156789419198157269902471304329508355815238254809201794423980170741035130873677348263306235532120661192674528658338586275339858582109899391987487784029355240859236477269883995328654579088166158892086731173087538941956803565252257818876997515456790564636380580186438090511821891525313237408416324825448371668332459166598913840016444012056649485962082710187340147764191617617529826193794190825457541407269250369239546210778876454727915961997813567816868610284367737948273631810066046868901198806724563268227987783178927757972698441192631374658104698101227579743859813930387231866153444116253328052795488090898160714972858259156397827730998750885797263684516195959297276191302142224298441947511381658298583257865758123280917923047683634409123478221975435520273152286298061148949215739970042785453378173324714888844679362981879304554051255562253099264677935087543055007715753404689175992428801277728046972642623817109341395078590071221794598770414706809982405284691202170644814279300329741546434187462746692354383085091630917217273535332031485039705308572667774989077653918733546383556468933358440930222767443311121686601663344920529978469297929718631284213531833718552880277898740465114659522806678943958338656788415095654386606609022440884810645356750568051244194206116679979336828241284264784734655744632247262694414538929686505447900327788966131959622934249827973237250010771654950886200793049111422012075512603939187308242956215787574478344046813137485540132032552823423935666080670909507532044328933264498495802114182328414627526214884817413049701798535818885151794960643444949333908529406264923770644030385739196384094160141971509945549938145253669421484265878904343276151982600068698529922695366693053874069539864088247893082808363687948276728407310587630863440905530165174337953135683956516958162203457876607974294805412843224415434273062740975048107024551767523476281046675327124136569841628880311303246289055221402538265633614161350926419918622900724841304758564465851044088477854770545726966732091506423925624987396408899099929971532494510186987187551853192294893635428974801691452960391069120578042352952397750672791761656170520345620806101789644753618686714299540680806038562305774155094119769470061666341579953005435193403942182756555925213768551746893996152548451992812371338498523222331512737085144935626977528354549703370514800886444718079054990634206026332186008097248751327802696964960676939863956593376931683564662909789077114509158334708338375605156602046480156046560112135287763055374076244241514893691291041247549955984412190691314885836375954774784012498099283309310092892625295612772871704949291551710016137594036022440461177285751895055335224394440034892798647364794372115344212650654335061600109925343687121385861594087051701604941695400868207328241162908446178511650952152724429860263288347378217645909335109163402643520021716521795619271398876123541294066043704119712003355165444391730881682386734637687754362463790585689925368572362255585920365438018452031843442012245255995638617908106312711709674302522819293213150966386087363205539931464681562919760308819676743356135143854534067028788432750419669735055911897949219220925601226021733921029514903875902177035221453000994268159292879382364027107506094710535369568394962867803163627657807217886009215329584124390270295987882150553651259413636804931171939632673595118441571172051298889468029579360746475479327909762823376273234571922312635552916354411078334646089143962446382793569664896725133153287577996729520598687950776433639757431824310936205522750426881295212374849028495913127864379998019840972057069939372026307335239686078027917678585525422770311816823348581219508107084672750522174934489109176893826847095289103789187896649425766247366320672771619977220517146315297042846799359399050477644182596267881642786459244972073268242235733014646122233928571684427384462499844589063002912983253344788636084943653045773588514346677520094579889532422108132900635128652577220236625700275360965773178585550899019273579025092317406661159661764318883334651946964416519459582300382444748388817636879528705183935074085604635737434964180063677322881497628958443957152354272865881768931188777293915391857278629371628630128829692373879040237787546318188265143587730368169829066153666634636074539386824225761917260328231429486743383485681428115586402714597942832905402655414279283273764824330496590327378012642089315618233705421109726367390133314119978010917066909738779080015549711584512787155995652256723384800776679322553452906996395097130153111571783631827595380046525017258978377084383924305410393610220118278451337436755895260069799982784885382516943156306336687890547671108911310116168298125967713552778807539240111394225852270168285364646698932630082149528098386656643736407050071677291155338288190764865010364703011735413965587406549067298165272967349812806933246549057797711291370273927874613831447688779921495246473325105355863925664432828148847185374421796012332481135515575736303444563813596496684016257840268999280889939969273381523303200156929854285881620048049303152487197665384637786978577370430057781840127617622995253633245001426849945503756937249130480033890855506775710759993113812633247925177860031646016927633067432880056141647775240312793332202167660419738096099315514882925687066503099540550120582966735841374681419117907603638432966248412879792049264224340883026177285634279928133806238985039943683289168942103948538730326072543189939030926411300488099470542950625620233158289010480596109454422815477372772182298144940664988721738792059727808829713545044673402518754717665910927831401397842407241622738360838206089697090312252061550689650384206834982920022762640409651355527848739157246265652618092742723895582310141861783209543605885153562750661845761933015604299030797036526246624995085500376063547752645776501283914334374362538064385827963399656719523504018925968975142373339761947837397745922092443705476576277661240648385352918538094054328318681772289893480207786578386719627994277278289342746524145357030697245869179552006711306537024318924886905133320528730743037141229054653309221487615417839094040731745166395674284084557381258829728660857963708928972171755023957038574047463979485063171123936158137602066262566541129273195058568341959283148218521957293279205207105666856799719176088733156749950749813177009689640050917313144971425079462482190282147930140098836385038585509454247298756506701499551313198973598132753065479174430283856067864469409183839925287079203834628099485978873903593746338288002955960223573644608435499715809257084215805579341395917453997407019821157354614202330455335353243097893501766407677723605757650842047490568842759644596664430409619791231741207039969335660709125663642554231051710615684682311997116380026860619442643707718897612812587238012194592221360811347856414218275682800600326791517551752040610155902429520865880186205538717970203052902974223574109212257696545105850670250781336889958169568571142925840114038313601036820544448817673413437980121722807675663973291381914488411168587649178348614647736687700079736743671651949376291899749588765361695755557659119543791746702879441220906575238954588584175355641946262553089771049091242985042045720850589353286044361687476078583353951868650759992680504876353376861624321819735289183034278991030828615916914850775984102553101885633934753421234623762080831026814839359178107656740899699855732298216342760507625175267084403613030256250827407034610497107687942836102536243797419273451664259356846269129385028109955838776272075983750905965568511682609503809133649773655141955800839039572006306412795954702835077870757131030968659231997328358203558886315362887418518844494197424658890944558572931918802540382107926456237043246117942113284192630046018583552458756721635426977708677934711604003031843765851107337853169383754425978735189433680676516643187092031552269563170651032137082337306548398928132274399331504187210401769217785887762619808518271082177151605675736942829779090250173023317700523974182077649274120812688318653690865791325464393806701715229637923521636893403077962183229802034619683663549987578965036888156417400701445860642755678912915296612397750900186180516624492777081828205705275413998209795238447560166782300802061378931430820682701487339600845732498068594985674607411497291868271114439112056815292014845810809436564170986023555039027991589577460925905494504862416367390291469679017344580087797067450122624952988131538162851322782715829834954871334562851241998537826809421507264793398901619375426673293223226179183273606330165728453961561677011568597417857198147544568073299137310330420090659665402018341500353567160545790741750482134206905854314542846183750898013192106059909552277439774754759123257825285297702087958932536375091534256717760841009807858762503072813153733635953461140901643683751782549365085597968376740447341974388148979976678470760589411663018611136927269381330206566318840133620358907150970714105143668233038457319023044406128475397007667869885582340196619776706061369996943792208914009135666570525331040808806161866962409702850170981512310104551901547990503688900294355079684167908678273513761384057863128727032856475734105503836390783778102805591067842579392190483070530032940791849145604298772688309249656243141625565768015976237401878005022292213651373940030738143238111932945103023615386190961368349974644037021494397508012683643178654097228872742937659328311996339119510249691389314342231867378157593649732120719789626874608008014034643700007283252511057197132685521414423931631335286496950556680808121143027024684386634384757663243253594040957238022745822529233563424317374778253413593092504097324817783874690705780484072992385881195972625486868075712559274746853705817843556470754657158846730730848098850025820931029207850109029069246161012134232800904875139985172255983790447094394982712546896118930805151632258036975563103889721947598727818050101009574996621510221899694684764387793830376065659802614379413380788339782301605768163936889139182980321270618638879886324816914383193979661881733266171395341066726832646900899871286820867999535768680858595341034702881481527042882298259815383615824943797882039787340667024565905282024385342995601577902364853797195973332632787669490988847542461069344706952230182077275880707090419303046905352277675083994370228359767113040945492025840846683772133615083483753361787707371722823741307420412110359581705749150064200677353397459321180832645778111002445276276486087656525418371782272390636628561392226726597601597472094394225224384541742353517067708436332112024166587347233698624837016740411394947427253865216013538328770889865869771510850515307630376114866701971277762784130494101287004259618153421311095052612660816862725912579502183281683524259683852766125550428692432444224723961047930649380979124579298428330600295115736597969303444080865794676970257762912482595199804072022082988105764757584926344433933395084658641220164663693358623950421427308931090804189920464773750245168945058209348165599367054737821866842466740428114593933923695851456585189990072005704228614599880327443657742213717594738064470731256305794600205973156728004713776560905678141639781374937539438698831016172245610310949540998058338788842716830420174762008572835241521943660000272909259774092304239617036023739738673395282717650153931141582525587600367653697531326992420581428543473527467280284262775273457222039900649104404771384085768501006053684924130120023390575953189868858365634310526974775012688768321187620069532291797086239646106937854843584662830024981117940152908183537541142611530623569310574589395725485308042715341494744813832328000416764896388171340007736116639258056972979076723037727235170750464717858357558050392713445092922317745347471105762294183520803999359283409638433111902047200696927203875349648855055920512946960797812616228906653883758024237038662164809120073583643279999141138355737573054772461544240658388412018863789184726542534784829725711633339989675868077386638887853668521690223983107307698083264370824505801409253351802396647761926428374419670844988514469785649743509445335481140630925218732817431270558510709775899378136179970571897836870128849627471848067764235463331491036483223571180675429086031053341935853535650464199560135840937488471234617077463915480545900752344122489357262146513754169885096438473054280627655221052625200023593963794241109535163990738995861849656134821860289462443895172236992703931066499582974656616604729301804205626775563398614203506619376550686951436527929637660044330631276793865355423045781176844618400882403501072736522018849073600052894752143167336220639164695626955133538312693891525364451161374358248128848028707884219023434512645983511690854198035726029342970159184812362579041254436553492292335665987278800044211506761042389703043099266916554535803619881077702298729613596868576678350609202352935793039107877681560851465001513360657556369700286839810569007566209833671861700173344239078942440294300706938328455285008170274491201224367401286093415664896873174202901711226516260814146934629122591560816727614009634066780907310252291709260003539705504547263902687592677472041385260942623241439538531323961369356933993897149546740343522894683451156466981038101428030753283578108439391920696127921921588837186512290918565069931593892003312725920616510767831402576746397625127154601088944524065544381547667004645151061241024401646727337504377528719743140141200302028850561214896318609726881801939582993031071062873805015177855439373195958116842237318978823292174220777402090860153840497278502107619839124685063992550790528561540573874094745263860128122633724346472902924404465641390058425916409189049816723222296976816257444725118166651641779569173382993888227133615109928549111235833130923804927170730643194517414160467829485083470406171339455171851311045372037910718867235334428758116814713562658617096373205585865675006101303800527787738676416126408846102870832072929055004821816987834514992637852090741648757923608024193625046873100329805550565127061721131396478225690693006106663736514177828247185818423696669500644545040332594192904875483172887771198174877605797225452013848332020010838316921655537360451149429948284584683559888807124234637489675018485094744870272472827870608967177358556821388151541542176246701572202032431939600746087242781204844669054296807726025799055728048413323139017174366335300620263170333166566958594682891883957327638614941236160305816945009625226691760196013621848357008381852804945692804631291309775099606704782179013038774563836116381165423433935292152086372941810000181742384774690994039511205106434960618973448774310050572577437438047204280434579606799367425186970759764713395164698949344552784934829328984323158142508894376806677903662381929564384161395874784574261329563181650057970548377478143929098835293269476015867094059322680758613373460694281356354596253544576663512515471644771364995364208244248090098874250139346846090159651879549463540905271988813003746059379584254516377156197020405878694718336650583284898936341221113793532112567890114654920222539728819382823687445092486171118394855977205950065534563716977168025090265897344172764082480526979738767899587307024670643901235490834142302944912595572661615522445996828693479599477681869072899112931995629619779384630678391564965250028390271838181420157585530156344644191352459767379133875109684169909148573125408456207483042931609498642133265721127605299478315506623975198161476207719010852776464422588974785956873751680469030692239425214551327718448921982919059962271546849154322328769066189015280203384177838297084547962471219365931688202741349991233364954147136754642285300800020843842590793474188683521786866064586602369150531779742650495793741575095450360990534900665562542078961108393052577494129908773072172869325156252994106488972947904796640701605798129498292788839869753859112672991380183508422290001701544097384376106123289486505420936333047674480181648139060985371428658251401683475792192734251412542347096080793449323917391339749814224511871150946274332932683972090799084623956265009537402989763994681110748645044819754400080045254969410354129165571712756671668966481112498276384073766960573686288555507289846421368935440883948994765466720756390940354537413084636540255082669549253663440335736186904655730926894997609930889900728725253708157381082619549272435644089192480811144653585994106209567481445225081032165519026046869382284903351335120982817548873673382380421785161083918129966103755187613348843854972826013797163426180029272051548204809707010620518521733080804416039111937563534609097330518648327980134673478245670920204683572920544272666974365823479382562731971003684814311550400632050441041780160201527928360823384054501638690405776428393760124848950981545934961889286528833133407406812101523106752680830670586396622532368345088490669946622693289306985101324825420546138778326727972962873311596728201003353718878779159019387546547994108275025773874584004423486346601999814968645692812883854963601003908333889975919049122677543515341661275087140500006118588171836785596874833789704582370685904733863834318703918777854466155445854060624976239643148576113183720599304365855994803944848555214294738775558549945179509805265337689325666354126658871595675483388120080299519682345749320742527822225059790033151354136636525993955782155486854479039859344037723029468470869687474945477034748328629839587811100188408078186520691410230178760321305827764366802262755872536153015802166692713516779215517105281641702336944989653917147090757364761542858697105849464218833323143923121378578121352382571967606684503883946764693833203191209882048572726466172014361540762166251448923038449185043590124768607374351274926671685341286132924904154684666349583481928731165931618620982208288172810956843263610734618581544204058998353925559370537780941315443036487495693727487965843736571898769676127418923324127401468247600649799761379855676492171887454621589390179230052392263470356475348969472847587152521045255570058451614190870133394663270693989695736270401687275527119083627567662043056339406462688973092472283061016366443014124296419100240972063271099863908976051038364234860017858496882309856244800221821135680432655874788533079314240443323282996923280479708196310066825248164434563239880058569205638557690206646790707046452361018766026665206424296552939042647326359989298357289029969640044898996336431422391012244389159120977229865913469745110001328498029856231885841120617080625820565071981114721694545904406533608390187093875364306893205312171737909642335026926419893944480781136952218314670044923127773154565064968479628431860279197057803240164638274721987794320550714852142562224372019791030724435806060007583832550030163370859280440158346495922774423637570318857373149939779592813303404837599426384909635745717648864081837315639582005786124717988304744457852685349776704397459923223856039607451277821235349524924487363350918188920319406536132524995891326666282088028719721062493141016442185545574054127242181886413753748484848657572410759052239099394758294027670277945918721676760767149821000173569573267403410980736591295446168933603600328865351995485818169945594239054531872521596302002093137142229810761268909540485137475419900793653122191308806362883391369184731851221265928366308676619407867202988317282160083017243303673579048909922168501051972216730866870866429015294445489859781861160189737949538460649791511894931844907780904171463676814805348618289648759506874565075390627391385123510954758670842873180931203974732605637191249747413161675575873474042200818614974789198486980507643574913307114053135483492801093312259597142986525729522294737820948197395795648998738319722443924061738190960024551057769827929990456291722616108680319360857427480904936120735050475605038999248449155102139196845224589593304979277037994722461197691258005695176791818919103516021528963863232322130007528467768193445917408075975094206313003828904717934898346597718043305035313062305513575343850390669010158020634917478495606616761158008127751540336299333049127216488599161257508196155201479200648298190644443684241259807595199592720702121999719976358237895133411570502297733164603081712980371571237761521039984200796668261286033551383143226730548980962852614462277553107687196846535639669055652867928926925292801169653742067275111358675789511908555254760562656295567969533089843081698138362893093303241409999108242220353495070908030274357137101348315352248547432701961980447797973918146729939521029508124748479279421386115265964095691877993059477491375831741538026414516517607131494260726546793338404126568982789441468184371446674945712394097007771785200794927677171140716593547148050860640738586989916723441897253722769246961881625369135791490159605396198410352387117968687719149684110842762292965863102082515674267523345445524242303324785052393947999090504147636986355353000087766702716328155111916412746248415197889113424131876866013537259648996488701877207648476841718207908692969049062541228860044298191226938410535573848552215910810466956461426952455686578864549469087532805383152267579804301562801658248871226723092727582069777860647113204044440127211729323006766619417170914669079267165750337973439250900144463421372154659113463620669236297117399064935153655462724698599767431519666274165307314391191059814835266971877512634505929684557755375600950664848155775089823198562601221046608260023310252261014390969213746052262659568421195439634009434623187530126378456404485403744615060859367513843295897155850162902020596937391052701287477613214668455590332939225620709228255503361886893818791155828047155785355146660694495080769560120546029443966411115742268950391278004658325748491636161549365380833572298426671554576518498370224232420503393744969878637883453512437487098980504337357849495105957290483887852564766153352879732440925992245779864104753155478060327005205780990996064169163068234020499304569437019470818586457617575206863832543522744583706164737484278922520342824918898035822433688020994936091085189869541987328903847748319771197499002416997961296328032518885229362404290754823452029629677821083550842883051473547582973910159101512847496013435361350641271026546864159761208236974261883861547737369169832110261564223236989643660867862785299761180095794454301652873705600693087094235944278626830554483197041537286768140634997029842620424038504125384430309098957767114090586003943762827501779058249965557315542367997190837510009118478662862436991970859367456658940969927763834930994662265615624501484604705894773366748779160311171660078377563398094830946660577402155116998323301249859590593012714979688484394628514933395934983721552607137007339773826068605013412760168726276840433017979221630109401432633572587565908076819768315445316240072304239560375518454616688970058197193899320032808305794137366450963070840969634599296896985117639719406092577662775784555438943915103036581743426083913323226162225236782688802340848668551828261233619350246785588489674283607184230550403317430466533698741298006496792616905473423032077007706559796020026288767473926348594296595108584824552779293217851232550022660304476004652897637773069364799484639784502099760456680510162258179374586040785272243910941006323584354343083723243530070811562694379304827457048886171061729264096776386011306921472021102125663125420795012717463356623792056464963804238246465332592202207448296027757558385299643360945361502309208286624052530894457278190120368052283806719569222959195090481743149171635992846421339803892578801722924947929113472374192275393757065574141541921061637997429648245904841677505082494265342107679901151772424463062285804802359779299186929610974238647314794987777066779116194038907367864866348305434386491236892824125115623436298595233732294365134805841382342194031310716438448289027025000368531272756615878718150663394105166798297906091032753242266719884385605461270176885621128264238418332298468916117943317282911800627544990120801958874587627144006343185330993315626812647027034767586902621232021880677483438501540177606744902905853175935483656428332433169220682817200777486536315039318720704009463798182452587112691736067393090206405822903789586531307425333008970761234854027732739831574805720726338921091247363924188720059370498164181182609417171390288030047890886971319483906490241055398647885122616654600825036183788538699617542997427382180128195431753535237366114571889226363256283001260341142119266352083825409961502365896467680767613291342359402374805373042143425870751393029061700213732944969349618568611977671797401368986748251178739315388626836504036835072754335926549911463201757039996627709873673350994543754794045424889044723837018696538102646290139594058262810107423407395777431963727143886507569574110122585220665121980298683557338894166971270595426243055839531369273246355652295037180212226260726650460542013750443265391565099687357852130418830721939617229280697536743227892733944804512705319567467506503652325489739480717011082113252064362237154502041467734861351001070860256903034981924013450976087420507315522106478730210321647970464658874518998277718948500715327174149546912962849817592599452748521857744927176327077884795106784517109082864281951079367595600112978883690109605484979627399616418464559161202107846932616397079254156434637154700208790901867517082848609895745410487716033189978363886728630647312097918170220486794546215683493864982660589916485924094751937350292130040711452713697415887707546377235923666496453944279526431646732760826445938255781975955621683670254353653758442691052836031423700466468736579619017422046417867066171544662163142472993460842281461216333617799778260838189744049309179954351091573074085809399929970515465165910400386198332823846242369766416262306656173294621299107699115520287311277396416333360066978083717439172813330093015350759765160364093569647608764278794619516942076903660617654581130276602530735379885306239240773930546596246716805839449430427486599555233892581601538001135108214232389196187201126759602273081570665401257523519129777849825069809013887142254160845617311317859826350860349036089161759744071796143173326873010286114915418051339415029475372727710571075920656045284088056872813094067296665097841984384920292783805364828568526650220921945309900517487163265710834986077061865329200250509706108336804859971880272930486931135366390389274587049520133109519625850600895492883647686212955826542696884864961588832104983597881669646965971224174219207646976733660784603527731714444509911634128578259790837947263939898882259615418892587880141638431766053114554176707130447921596894743038987042469855235959936727837578710040315028214569202197908630004990025044035479106787044534379262057283790502032233029077951221335911170458376533575546908926444441972860856821178825806315320185136058042772887083662438868508836690988474787246503824786860474634731151793954181209590403769912899296231272527472796505281882701577325175995236986776868429090142467136396055158705598473612813283454522057588254170189349460278539583063693428350517253922947346225555073289249426905864283704002906898985916151786479283638092181227258161951018047181216920833776989989417225308270486872275119617162196566932209366573595652512420500573585972677657704157958730512736822416607931346169594057210938525896183083669976339139759136539761240774585696491004708305366015463781959938963034340387862268958217975581149661484158271789107997166364488637446730770479351380766237629295147860049385332618999087914482283983838200643348878176774174448428579646186296700975701023698243386533438980061980490660369076012463280611026045576522011624124762536283922462902899766313759749778297672810734933884625421294100055396572361908304774773284874824516413755720184678212006682269610676935096987935682182396258534999235718693867563648233120825897601804395953456530276368709300332055445692767523493766763640524747475446192567045700173203919060097323459213848975917038760146643039673316891409323186519907730521308002884679902033193707680425016857653549701144880747166250380158637206971291273256114631267165984511060777400204692674102321340896373555671323384439413317100568410973735073805545986915074271109483456817394882747753098585594852630479067556515095321058769974302195428325304612381857530023582023400695831999152184059792502741202296616980166835641097847914221922832984440124871564566172042714998683053845800953565398649018174346408864887728262933469472258171453696197904364239784025984516961030242450248809856183988856838771512869940053131552398458362925763905074530271376839637778843567755781891596148793065483888874090067136584049736661345159273932811706793652141368087338291198852349163127207015162616036829488493695293373318184769608503158112006490476314422081305514287251778376683736561904977708599645209570878592936103201609544496075812217256150885024553949772196644009770185955789051323509796386494232375865145827238859503178284094165149201175305274501472901056074650301224091966111209286540785460363945773677753584198270603680883034302211422200182986519867411879340117927564793662445067364251228355771064806416942914224248621533113323670847243572096884643686553363772294348405072008155387726755211109002145081071410937161759633269987027316764688047936907378196982185861649321787408086360744121492891257141894101717188510789588116329887423557469877287000841268580091827205098829297390775117468026040615243539274612716051395224092287858303258844601898705195806088652530357543242373373237313159142805301170620170989971235432645562753251490905537250683652988545019720528546936928384669653049312731206422682585014484321933895931156893239445244719690722307184447704373140787177128914023504927780771018926667895955771813046137508683048690534210720101024907826696673813589774396573511628379601958573383666637608061530118657664552847368282019018371371358032009531589623777262977875285649927353019160096328311021392420710007715046645988223489376173240801652267316415598376551810980233222025370370591992475567875190073656743298432136897963414556681200045879282508550477355278128530579116002104493837903954246797192260367658728575082330674720497264028371740509302041894259757082977687573186560851966481384819503857946468511738310966257637017704424099128902052093248165982997238488248908757452256758357679894142576537431266029451885542383500466645445066575880472781557703781091808065747314385176244316400942808595322295406997562155905390332075174073519448583945451316601636452422190477025396617001576992447401220917729920724136419888598328795828391149879423730300574790897822240990988044328630092845303906940137753930686654087640764642077448039045530852243808491934021951579097058313621455700827612188180746953585615354459149343495988139776489893420666744901522217133960923451312036179957684143323914073484129082614160132720386534895379067912111170093545126687026960526560890460573827950186532029809933910982909496891834677657281794575654517397173455637727955392830805225219107112732115537035591180150565833390032835802959681200085130112637772699449822383725950852034906125238356216751502314600414338943633579894066980423636902563765339670334971756014941379001004154876568925877548032553669127907620580099376935116742895820915667470047114982274968864472862406282697912620173045746827894926147851518644175422948065869084307535231769020853572394196566586988310246448216464216314999952437348871140087049999751327370083578989542447208267192499510894730237358710719676686349136019057693814734361507549290938641025560055101463277880791498933841380243276747947610807035359870239596791934042641210399998264964833444006770273432115166858143946638772725583080035353474278391772508528211008690226922368635948045755875703456468066264127422157787473234698765850099476968763165030693214982805942302847945903333014374926440355345416395691448382330570222959787657824423551327433466720000642120656091446523056282490721666411705954999335352648336977397724180199592850495092013958136093177425678263285811661220044716803988246291280860545436151116167309013665775004452706658245045788618706195945216446293667488182814303398432030853702483850451955407438830927324408526354131843103477768948983760984596046311726255768469929387427501788951350740374018214505564029997009650885770410335461127214854651860793414459882053817073399718895161011101036888671103739967078698852062712330114810876950766778971924346388122514312403878073276340402831823157577617057357581627803697598918379440197495002199442502161676666545135391879049476554497572343782452536520557600368962541571335111221730300176105869659647077113567903971730104076464551967094850250385678609500906241116228568068394204454898341495568954201926061703274999378845838265576732519140718362312546300159846228609966019236887384230773039737938650652621041558024209767600298061716307298889601624090401744374883228489825826814863274366115805168276131433652308978128770035446892968710558613417205784840730064989740768995952668152312843397669469421714314805901134204936878610636119827189601044466710755793754907700855737003031286816426587432955337994592550151188756207640401417218141372360779721351740520505096524003860104089149519033300617965306925111934527401843116421550276122328683330523127424068021363033417698568815092424932072487583399323349967280416387361361316233286622391020437198311996432520691594026644129324422388250672725863173506422661948389039845425870090049011004365268530366647072133683189043251169790307660395186966560964908486554649261776952096971144118186331297877811921726182788287376906328217414310274882236969816749074421425956415561235386713187373467583463691991253646020034885172340392161263028411729078216843624216217772610512466687211303178440629240694776435995461625335574715590562174838040229397026800824861515221588758620355154522939154047523327704313124866919165862089522373600140243452885216055563404599723105835746829644378730954363508581725493697280360674423041144887141298168659714993432146250807388450737765537705218561998631071069203450133150444522802925099668136380293082505999681736448407890532733092210252968589999701723084423096934615356468716563442046171401441659422043973400203783530960303225798298302301907739157613023489195395337636255704146411493003487447755344042124435233776643205643216955481854466223859299546982664495121211529419500906168571429500599661282070310337659065476373958883717530539280185660991550694493293500625853083897221568373954873101395212404493348469079537123392474540248303303605930189035483399011701305801308091548268289667603426938049795859397860087458583464255227986193794601776194724794347262113768672343316333772000857793803969599612244449768945704858616861579590024478623468399311450036516783455232044979931038745752735941393219496976929383474692564203407668715376734123385008625803551566720805199287404464555490157501992634892381423998401080768572985185826864096781421845430195176853794191667167748268709068230349485533552366335206718945627379360483894406214745707324094921540779213296071280238867444137061711720526512436537871176269438213953020959963362210089766221114929973210605432127744546662270666831116885556291200154870812448926025061054016247153912949141674268284543666088826793663164761107443546804097223283318586362892376166688848769583293577561921073841488909755301503444257028078156539291925487557734343638408148691592293475321168318258974824728841576842261325872886628672327582594688846702868155768041223469737958913369571379539452676974761029942034475427921344765133981556813957165849136958912930883827455327275246424370744104461049513538774495768578032263184930724132817388244092177880888005854316635336596775408219582617556211967025724956849123263083582372403566440142610686210695088868667194567812050142392819648266711550538781999375445981043021642734042569231527706083011446160866284305471241276354399088764368251027641404476055225563385532532520459322197727003223937086324534774631009804161230003978618552536022076959827395670090888633496461232456277750101379056720656264014373670576947496682378490632509924715865627538639506589203620311783549670650571425605177733342138628191970999879756195224500543612566424430705164798071063373506376053159407996718964439533763210467391959680455906996702191350750339218906189371908726712499583946778186532258996879522924663304065440385881549402917717093367118568606661680485342041634047709425272893633703603498469238271707815124800146352336880674139548774175070907954715631074748683936827752791978448299176599470502371278706183554493197602550408355619021867807374794651064957053254986561315159346707543752860857833410333301421478780310256337046958468555012493652061522329212250444040457553360060554850800111804845081645025766801941271616448283591231252184933209270553460824567119426599223181851266086665985478223715508978471579837154139153295939048295288724314668777669412185935809130515501200375030158435714868269808420608215176861906610245670340051348773652594555220851198653925502125730615975544240291055145884043646333222437160061746330129637476815512591652237535782511063966874702618138087921488746038751064965895779995660879832327155457922169072617643016140236570650303541802761517324030909406013695895917248333324853933207983431206254882067412195601245030779740300019439682992173188169725398302473044758777756262445024556847568477968217633825307711661000246688319902681454968808133317335005423119332212211939873240507984457248410038006785433479699427274115124093808263798103276702098859677611895461872928115039988850746172545457519720494939390062732213973464628431597577074622386125234718456900122355556840962978764326741495188640416423373943598192985753152233907035556474990282335120122791859200071889731357979022081857318995924912736535290518146219942676226503685390421059316002427189261860255390987618122992866396089040972374985505885360805130629607010430315966265468990386496612624850272629833008280233914860860315246599390418743123909658372088123795029388194135405460856053678351689796150724139786435413452519911003306942357167170894653231904552627469434930464916202616076172235750953927334169979794744855260289618104491213413721846819553389895061214728256905011537404278501594736526475302280019753357096091236383050166390204936265961653072094138228666258649154597058982042548546344987255081847355712922850569722509791010800569120375468141953174169663852323599273870267444885497798779088699912259213143859541082903939998284320224488155851836840426401116899840298081691648373733977074776894799912210488915462680371918840733204415757796746934504428301843054723958413068389746204176558491780119321238671903957042294587320697169016116355331547977592934702945571193407853641124898146160007159063166258253123287274159854340971791852293554094748947111426213124212155247509231080953403997862712157528793545867279796165822411406066287490193240642493689829340593908338905495528898263928033255966303020838358584763785982039678339677399065741521515168230400829118849665167213564299304959175341775626570136015596815142405540188947140067948498577433275997496392883219007282197300409796938754482326600736885644666563207590838215755742341600778189378635640713187513133709564271897247957121730997569625917934790077493316730220947946453555136669858574250152922697882522390736184015073076951090132397666787594830508131714761155044057815975340332172762701172239610882279539637662611555965219163909889504580165906530304186803339007523174498227130833576152527022474061216572572423852709313226244556650287605110615615817881820780067878681427594052576495956601280588703126926313579397781814582966236508047819912027089865230688386556460822443640258744700197704977368514586163640810314955825351210434123394934060810690969368721291159878706755039910828241875562746224378929889401096427635528902528900760403608730662138879117732359649864524795751156036319966907875893453101827212910268262305889235257001328704680412322186359099409114152575751597736330116803971548365054907963936403106853939129612431463447882296543296296935016438855656191608853803149068296073917882593602135692198173199748092639072522057311186483345492524659060344901910326640655123390284996785057510484405604281145537730111220784473683893722971593512509596711574040463114869842819919502909845149003919093402952313993977516228604136092441951394154974340752180133181011166674340803478111225647990661279922945318633522007987262557476127534518222203768160057593199489586346703901630934412009707524632796869103901586235794065292883868812419428672451156432884917260995929085866422187880646515979811267311581378748610575267898125137680359610518718817869481704193193176598521632444806641059805591072318169627330195677355052297538081943108021264234968031883459098753592207259108828689680420827238330450105615958306352340454290724044542809480879256509170920708146536522879937690239625738707606810275110931914813325681705508027715089330336719369341317484870122958499823773438307926710824335850663143002142351413779834568412795573235283205941174184045899966128110107617282119815169521664272983093311975327673770659251085003758151847975667746067853735978628032756508347991308641744492509854923773571163131187528683520750225367789526465791697223307315929577069316574477201615268017015572066584787546066080305235537521667878892815619163395871572680627190998693227701024692563154982174800907862995855514520632902421835369803779883426803115394640654634177601022590265414741358726090833138440450635777056208402101438402286653849921136203012732642803897343329013320401705238063515522528541764820064992189791655469167351611456346777310045132579849872873826113417876123253041708634438152919916936519772998346785844686502675362185761555411962379085915194411276339023618851083994459676275672229762808242126589730073490601050813227169636145169079010618914391605592546893165677536776892171703395381858221970137296458624022306961337055798518314379844227694129609959014183933862096642509835135121099002657588657084641820428960593978555558086721952722669795296616101918760766811905958085565765208810120154220265102191003521396624937622494242802543739822948352206951818319638120794610972374220573710403947653129064713817776944761983401077203119521076751092907467804617672836121433903751440569268594392874836051200756625434439727750524591115712533318616669044625418007428423368168058347827576875003249790375491883889491916392129831534694035548434410155889297238109692100451479830670098389522294554753415063594657246103520952907565509305813335876539900636773695513995002390645753636295297777016845024560869269995298562229697599745595448233013752285314850216622375264086967206928782429578428292512022628818936713573902508593819098105394915185930953696211372419810717418382838435722699608789992967752901715092275064024008915720559693834387834582553253608492595012622800547991039035548331375467188964649637615895086808231132579756369329992305088458291746925152651691619386393206686887734627606497223679590747835861585648011799407527704680688809308325997514770128076661049399631837755359369178230035724938856447738918211918916514234421360173956308013565912685723805608735443841279420180810508935337152754235957503479676614312307981769316249170921056587054047425576509857344314099243346389151653018427189346124081668438788229110605797748931169692840515265473108543595905172225326352016683499393817172975040045805222779857998273347142916754536252509275538891565043306223899483495208790283972671569316637609033168441307380774602296799114975339435610042114841334058105373823066229509652058007147108960091615328962671407524544231623644476455067286310605443501414052860006594598358984784402182979922968670381538444876494388516248045621946511579121964933755900137407559639388361103539620948010407954111230286346760707514727280835237517944248813285603294549233346525599068186290587539066575659557244178898079516488935962317515913399452146953071956819088216488841757310229144453483756337017520065752343528252757767996604191213798386786252653486822122331321242188545720581269036732034159763792389496756456388188494440324237469444400678000538223172904270164913539193006543612950395824221697904598681254943292379344288946236066221092218603197257391040151001582851888530136654194396668715167533323620610677878338142896658133636192602323997291847468868688969061991850930883346960411114005889645962307177895657149165471690314521764813904682576377756689598180207175177941236625433218121199173084242113428077229860722589942145702054359767655627041437941415443799953858348850911989405357976966433457063724125803663237417183029806028508211551928752348675644766051427432194970043133824922787044060574839777896172478280352631348532270260917463935234287838011927267141361708358439926444351190995654823514915015849071949621860704827817967993977355391220695390935642972515710217091453020622507463148765700267481512211628745207452198179881089826219790328705593137790665278493791294970960014147617796502166628881391131170569946550313576353378670584520196196384811824164022272447412210271853193118186737078749293305747351679997039335129123531663367551524650430476778180597739156102593809971676761206124424944984726765555799836939327599712496997746185794855612448094236507562080836336868953060176092958249238226760036466871173847884672613028185251579259127292711731571353251023725489100194461641845832647172664314074385185395923205676218769520877899576981575652029346846127501090282043908707602121943559028344065172385707469427889904188745122548829594677045166558519459861059256223910929163913662207895277248927971173048888238881848480208875969502818243649381777802597529115392713650892252012509939820588127043065879345264683061027523319268383432566637259144847340436855767711645746461551865215795533308328001628162690449123063508310080821891264431430968577116015382713430235290054340075008575336194318655170651392350983489884877053780550228146897838820968366013942142311225128082019478838206441834250575261791849078714433612509842789955527229600532692021151693201719522741026278325141738731578260744778979807359198153169357607829014337275112780794715456214231905359390534375913335697152817138344949139461874148846781688393553866678409524309491771647475438660813105992216397335947533735031266923509163380500309161671873823711763253718884878563523627653484752792546168707493219614766199763520348430005502439787359070337627798385806869795716847815706004393299675886510755332004550431352781768394254915729788464897705360758341228619001807463140071884739012041872642344587866673340320797170049866411657523409539488721621990521427022299581852341352662826325978960289486254768867903220333653677055064704051087177744161061075528837780456470183067986953231127027510578741281429392957735311437613160469136150596169783965133049756731061167043586845081262029437346440705181253005972496077429086354610308773019294868419069946172206766441869004187738242486949749139959465315728696791803997732424812930777452631766141946781211798926183555972460972295333621929442344059256363534607991149382340061790938244717077823628075425497055452896937927884005745790090565571058556176158267164063339959339863008245338190101434259690892201754683384433741382583909146023196587192317081342265195123683050633055084099547087892507813851382007225941353900740653371951162552197382783540544335831609224625282742664151041778207284244359479374878766199503664111087924659657343984435428495553071240708210834854705044580398201980107732550647278378295710218267067611734669157503017941964888928597566953147489971049787779912390777680653679108697901897300794262077443010544168401468533817278825397376010625159384002985604958125060436851073743002207802597685278713204233130454413659090536850896944380058677036370356019221049019378925616364672804962947431146444442677351531477671482340619011015294917301048675572989756178177020127232623411796761168965289525546632895649277337228172255820003503772976447865575309949058415689095092775474381756458711730397773666087865130413981822145486540775355150422762026926439429270051564571941258593146003126839849483289240039981463622758334448175869516354801894451944019858675270029531333440265353492536680318677350353105124123551177577922750770902932980144278493092939169494635664597713728803123958464061124422120472368426767680319346628831046801620371701257987445962613248667995672680795061013367142663607170851934551191385096122554588581226702363286093738076557157408868279537164706940814072664495520204121455917775964691991649285440325440215562513651977300387103596660305827754022926727065911043746514337636445667593234036473527404262601683022824769744427108937912348716100490779860791152355121864113886220196078989673392949365079476097598356199409956541361967363288993663977949471248474349174566151023111370916384384289290569695648763615570271337666261984247487412580512500141002660373492139507138664218094228544289776641326960181794565705675167097803967450965811986323174622256067709653356784358771753256384875450641483375356892002411215584717225965817430883181679271266735065769140217331142842352485224442517691454198733973140576277783261461983814657799254729865641067312558270591259956162717733962931494409781471020820398964576196798524213450427676402533614076150916481251796113430706894874783645322185394383983014315709880287683754486625009101429990160388437484873779268134792761826964452259914323026008606018461526896394398770654479314824412532307685466191381128338073424612405691019902364230730005257863173878031424147060196797919146581023989542749713892495566778453859860578985474393619291688455293511203643490538753416114197858991228310838046748726196421543933142295929454100267655444646168709606701374454435027592546492947922733026010431324980395110966608490125270740354331229070182667734504745213543994996354154594265020515443592223690140200008221054258782904707367269375859481353633185600333993136076384752189367810288701258499963723776836097902651176876926004080168141947869685056259772757072618584278025930742127467487758521313481624311625955400248846371238728489898367115969170307669593087650654253953241849076854978112219646272441236589468859259970808406920698834485382621660835873570724609226137151375637066903467481277168463169643141631993292226042140798050606229940571742386956093207241378693506509412458702775866741405785038768589905071908182044401635947958284028914612961259400931519262096529841408052786192767077603616148893438720043300914854832541875077317711071518151377051288406131800457828920732767436023474972715710023873710296694819825545638680261303089737315478301634230027470790484044597988815582104147100188772225113906115600911606263730022561272218511439641845024263565270199739691123653932953482075007485915581214876739048875780801315244735366329767852743209368726082201425830715966692178455047201702916368625541865478401662736117368536715676351858830700396428375612760318419015143278791379803005664252555046829455832408971115565279628777686304405765626082816321819223726929999061351550675752823498552884241195198352875579384595019462793149881160804229442036369736305466808913242767161211357747201140420534865485340236482987931200490454579041425418114041402605222871282288384839020940063444325237899081990768609401408175663335163066959311910885076992621151007494214299246481363514863169674934772338747619485475723275586561809837049050862242144495637234151503396452035946125526309971570762511183068596681845049779491968718553200889985894022875376790977656567411647409721423165527265282560257641620734826886800897632304696611315338743069798635477561908409235831706834745629733331602973632425322301217761910052588864092956863524691582343322565181287986646902112171891987505493464979753248770406933480621946992625271271700398653364562116586902954509928384714248204517676483285789136095853244448712173707534289693200637662828010537069906061940966282063397947160628042487149380610761502212843192390231202818996442890566447799336987966783318717049498821254636911912886492286518190003611586243323092610124749329155504185630053940772212719791831425381355625098254031959987140630260213547777342975688507358655194068928592673936477536583867342701213109149258323078699122468871013415244604040936385653067455736636054460260415862255420985028073330571967770557521795230348324401814324381109326536564602941314139058284152058433392727911553943381362044777404665597162341508534377445877953006928681225332701643198888507836956889398398706116645013779948860708916254881237766487258607533445962103457965105013746188412215399848990640964435385181050415421932480250597736660471868280021186334576541455776577915646964108956579980172054348374049179397687269046746304782209128748416233400368967509152717247750488313579706768256594896153888250132780358916298129519227505755380211115818824227541274912960263245151872235026045258029536816170620362377090821830836405989247717160688895722599901986997603181357371865713575258514810251314403204739000823906751144465846817520728466016860277573950860088577618892678286937178470893150493668387620355811220872450021681043933773187845606119799257374873803562257495625772231490624449928872126344735206541630876444695087535015927858315645977418094352209073413361485933807413364528772564320280246954754256331034569781067458090833963164247201896648428775093670047149112887729602094793001342719783970598096951394385959782463407640312142968987896370898814887483137660248706776341824888191727596309712214869075099419540866171173016357599856090615727907749702751770634740737817268283187618470880794913062889614836356009123522357890166251132836678316808000920313558935837573823337380243005580630214075905384759606382433701293262358366949684375340517561139945869196525095208197968209430226314347978559425313609540969068914398189965241963980015921852449881631131899276151057123698346840611332228104541509506513661124955475832135913798216604716414313132471371622202934580376755637055499386820998940152696095060809709480659460935271578035525688769935844631294905923600626207709269857694028671181668530888664576945295536038439815265011317787018028512624177571715529080909249503894521071156337082749042085763150863792422794851437069089312548533673293852529023007690091886789209400573709121455190321801702968729667430968055336568524834503041425478497386053630819581244690680699867237638400641210578447203692049567952569098813687561267316906470276895207344028148428389057566106387284944308102942318454532554832620560626650571128533069075657223392511156845050641356614132022863906187833001633431007249130753260208077927255432946058272275657258296930518117435017453804817767480237966009231114975554026542045573840722874450081711383677351621474358044839106199976287017876714559872906055346112218357940554654917096119874696171259809210984035600619296356834892192640004640588169159966906836702256267670211934598803132469796489872378182886179468868811335438333073847102204310830478202552071397788565559033182063460476328265323555267889418825269935527414787919293583501678686760478894248526694217821151719585234748481471290489067303596018911957164351768589824810608589364255857411246480101828323619500952951495273841073775116818207912868944753535662428961933410668657812544437913897439685678292843313167464812183617057004955200649161260751599102392526782449842474465651274523726582745218310091207271968582847182775810818372174406190631784113894645501358296068260543978693936267578730935826905046292717206828180234679797585425791902444775606893721414077228266342806266438529538724360883172084529834286276993731174283281262795598759916102878603838636039000410301821791269062375549832285458237263871513227269691136752618949994732138706863530713908536292577745233488046693174060503543726224797722199880820685084281065874154678001829069921135098916873243922160569408810591265033766023922078067455257041258325975071281559292304459101627585092328672117082949009300974638468999556727269385829614447838686288334728237243480312212441334518434028601314860831782289040173344103623507908729626847556111521281554810677705205207985476789456025236787662206345433716285058439283298569127915848623918338662276089314377836745110280481573907064225032804470621826114166384046443258418823520791695106587411384639047373201178075558620277568144480060717685096664392362795314880492337764358405291026572272165834574635727328036157774413901739272459437082064791469105588194571820930998446779560001898644364293170384959949892298670462401946437076825240939814573624257542792373648308570749231556638401598981370517543198689808297414007368309519456793143547659300481808855474468675902031874566263068663788503991822418919354679053815465178105671000633821858753283569757296086861215843892903944255363401987658486592861644135568532678086987306631645641893172641495418187017436447184085870410832196996988264033206369628560884066061298277783161807682280368275502902574212042701376582351578745160186580422633565845381654037950056299315733058758458748902999857757763115313897286384020749965127138488943804511494099325807635496976949406206205872978213845559579847298760507005884094899472922527848624575322226242898449611631768541727662122232301859809389317211231320515943745043546206764431814331452674636564672926371388649359231766900275529349168403005570062114450585093867143842968755675821890493458009785996903639266164608582379134242498821345137151196057606049787752305061825663208655420172672286432706051025309976343211076065370619317832659883542872734316773927356931385903552828240171623230415743902287390804958740431170057520897023568617461864863889791968738989885033698973663914557956269733323993395612038537979986142534011287796814370886289776289082669800420395141401813042122209143213547821365123207475864131065440019583845095157801887912910962055489633322696860683466322636506872929766363794865809443356296201259682245114643251342753742040678286668195241304368793829844380753637078800321949124906956486330838465450632897756480469302085975535940170245089647809348208877701479658328317778992251070796247863947148403646939739775710275230448355075639029548251794989003372488313366050171961999333268811214052558888401500633179106113678188791840847161075570009635453560229593636635720714557293814405411580800783518514295807969998499759464152975180441108578719263068594627134114723897624485534180440567566444469378769190223754612845693711321870674163395616658277846958874356160564502495493567984240276416453506409232896865668633919335620690534108902639987768227217644228272518984396669396855823226849467042569092246145495149148841151755139951261053331737698245561046807791612765235451327199804101851660787007590924192155712483479972880352472831381413750963168467814661451363642620060495554078645076365563673402382887650765999985667122683987524564204893422163799091634432878311096220051100091145262401062691275668161185937960439821064413303014635319886528004215618497007585620256274148905694473965220716577167378323547475009218451606064896222589871080071792138946904698521596462166245213908417435106351658034235207446588845676590050576166064058088960425222472929162962665641489962731728481717517886285697491216661408508419167641092278816029482911755515889230565224365247951986605761464756820219711168371338748647664298965201159519519886586207253663094244414850171916675710849780302885279089078703388408063728790421438687410760282495751974425274876548403400057144890463801609560146012389809318138709556509345813689150537750936007763048101668932171645332038920998630559556145768721190337278515385844310841511794460882979195505864465754279524037776053245761612359385069586954411522651377360836995279766349794940600192315080290403935012595802449707319039273728095611787156637549155701169784753009501952757551410590591945394169239582864459308711971101236031829024907441095488622702946237106734284832613436312134188741265528740333722629957357605523420755215162768703797675039582350586302454080909030447481190629161339319657605532053199216600329478898202371011515586887543194596422230259001301742042854121876948736134034121930959716105702151746643488124081319041366472377734085585414124833995403550018462220028107889788015085077377674226580686452391932274525183510801003346893866675212912289946391036746730625621205640547052433382253604973406070795154421982168916023893992945920827889899750963173288319257517877289549113163526521936050586316869978236998165301952421658206262464309963965831841203954316112734772339203420064551142480843810887496619919473744840424627039282799897951268946268854200046613459310972292547009545474214970899730512081490345937164657308500518789693797924609955234963046305469361696810959920610565296895795195884922936070412660027145856078145982931783564780894060754103584885647586590801950159518173484342640984539856942945722996573203196431462047368128340027538738245172669076763905820837633811401155859795894804510266770091456178052076793091045050193646022003534255119671897777737953517974765276624524138136942048873608045156675106903073267380531033676570889772429245445086429601659382561877477554478676940293560946359860387535832881736648508203758131044860135117656031070633950542282711330144626291880343332412297612142691447789432442383362631358585645992376923552893886750437252349284218963257701261312607121607428826547910384037187031003667166447271467240681230834504284997853526757749836897045637761613945022429505037291110788880724886325750210050845821052516076211380523039996980273425902698863302536171326945072423090637764369612781655917822475617088180547184691678614856626152651296967136006118877328798882880926142691220167837590972939616200564838273843536322765465733793110167183076271327956260275228512345759153936079571974369395401088430888502799408657500267195022681659412673923917337227999536776364117261572518556540807383729815473003624725510944359285429111966493487899785255683659905596945031419211843269896721073094892799314162265966366049449867979989672775206135726414060481725417206001163925357363946292223896496386301301700120903556404501168982886822885842237822623600285499431184505825149498928029395819191787296247036473050931013329501795447969194561764845517918444401132250967026461881603101614570459619096524934578314318755999554246476058438847437412404734154458163586328127381837555290618436542274962734243345136876886853175352791301529123852753030319927413770524737703136948895214921777157027679841755425727310378963608653285873771543025742137990112096846533725346434245087976487016747932376481072126090136966410193810611839383254717988203228431386497493109122150568524052017264350930608577089793960940647333851172860157951386098463427660220039165189857262654202164210261301245349059855214457713773976013335948329023964950191666849349699597392828196432340084705958140383461646133153119610547944714708798357303911924186584536124399871821812807078391572213044594483723667149410187012284021431374511041754795194564230059821712740231283403775796143267989262673283155149852260737574293192345117039861698296778095843491032735400599594161778502309974769163886999238397638592734667483596201593853996963600372054541184531056404761053389373528474072351457013766126122567044192999415584050149928249175831540765573335751680225286626087236920074807286201076378914480726152398291889996765197764072390623885116240154102001193592969681210614555503693025820080247676897740099009218034406983462246825039589875875727296105327227701008422139685722348158124606476209170147325456120205585832589338103246269784774961614429798899541218299442363028645238472062088286664951652434415934025738952311947847139834813910098248468717035434079925960945754268443645459225128934930150811311097468048720855706554203172725373716946666443840290788764345713481045267278235680642763922432797984384805669116304826458766232698761651220605253365081968768936162090250614531202041702007952272401070736130869867115145265347999668404648649946770109702155454583137115758688727897222775143613635737002147444197767664323955004618873857530831436272884284256131711086048325313852448498416259992487720431043271567209392577888407910497842901621242201321354057055964284159969170228306611627776819440082745680324646845590761451242045904212368409902130975074725831144079497016173953416828602898400521845464094897879336933471579644963247969014178790355776668648517396472038422695993794262426735256936089901462163220726291999912576873907827741392613962487307216824750354012691861603045676126858631051087332423010922351364624411550815981066359955093234592379772410323316703423888492462779514092047654288722725906149672996229922431669572113010984793842343901478477174067718183918264874834803762180597544017160361500469583931907131406451379951514606737005843260448071822261574959216771562502997971558706041824017973368276874848136187983573612602194741612821012482337525270973460828617972775916124135768545075696284513020593443431097977369810048672021767012994485986447081140564812661057091108024416513237144082322672004229333017789933231537053918773224250657331505623018518458868458358422320717544599548726200221826012613710159761827591734682400740403753772887460793745613490169161206772315974351708730717674334735196103398022636302181563197880524107839510287437563053333331218958393396156720642332246297522851110721924433818340935577045007790973257567741187449508706265779098563032831478416860587002126729475248047718663214249840429276318723004921201313539413332824846669255002940452588308702611226954605403340490258118614522904558607447734678716109837434480107432378314846363405164241349744886903708241029845494630331595930674322592796401436598814351929543954057363259750024248810378205791226202186573375174289844901961226340937575079230374707752406541016682664788490825818639342264837796116783249672317811464884778905808097263733826782197816196131902768585807513269262071671556507110424813280299634039032174519628348794544996115020020663238618231348725665245294377095905324038633545061766301957050599517442601462301657136218684949244962403157344242393125849899383443450095482992041454572818917345121913608529712600308955945585599042679898833403440242384098200505879825657900413255558552977176111342540665041500776910085665275636158837375595894363531244261955681510087365251463284476652432833150274277027138257224599785886727144730753488813147443177831413533602293983776015933589768782860017298354059708354901482374568530343272347611732647891437035959728985422720236261193173389988459762042033669184496264240680953469317636604879886847228367200201955162744211742545239700477359529587141930819435538658990604414930969605065770551049313432524301451019081010168308575581186267671918959948368574199000333740774272450387058264813742489354437086563069584196048762576991210286551449485475976847987789092180357345453406657430685983348001238589235407648412891036802960918170799837116538944582559687677222856179228879594038522188398666461567984520999480715413516209393456944071373155254681630969988753669718092218005222225283910708522510556994810379332150746504005781922356867174152991714125333698656519109544789142304070848403745517972112631793095454360863359893475806975894533395673753696352829596341577246891077825909564258076304416302429746925858330789808211782559120893304377953329746607376526224413316626815726649362448403366061723657340351508276366492622984667925739627282083706725348144614673315890200268754923864844241179174832181451412910653969111943297911746198590577790191984341552503352817771439983651278930480054259764690984674740402922378953290265524885383345665709353864818254562574445804605884726054804900128852539614967148395521020576210655981533618407645657478325946556898569684427906315909457278849180801101437140497716998306717440178941327669260988645052049076995797202161936810171103236253064533118224165009212503925957023609214606437029911106321716655699922148905696858774075949063989595108000524734153885464417845916899864390229582551718206378603486205860843720136985014033449330867607419469631959236952477660601434052344287177316121674266375492322374814642132030109238797776416012289306785149900118475431657543915092070343354106364560437368940914098804205219484662978419025518870436566743582284781823343103663294836821812365999740545218919064219235723861734609437834959578795037240352628443745854923508614347436483762415424724485172639343249427470881135611795115045678172237209027721867716349499555688265077732850318938044524849127774945760692938101668704713967295794729965744248270875431487848713456269565500591789163015745813024787947649060577343921278685292167186828046410567886778162966297568993133986641451483464178261916205582729329130514360251481045515758784997214102756423096073251672702604974732592015999458038047865574105875394982845609723693346503001147840400868578147581668073566726490242622454147535968151634451027640887602745303763394171659627428186048429331576749242950758163250978478949381619966230805968449176646909603742867337972606677390683166825892755016845028283807799481924685540434498923519615292513082529419559919557530136175963776041445390370026314922752578076395480231870314286402803088506292803452628821156714836887418642031348631095061712202392238936218255222206351083401277491354400543019952706820434457985141719589896633522138574389896171029941816239716421502084502695928951686423278920085552827320626919984673199554605416995146176493739051660756626156557922445779972344867223660494419898074075666938379382223519148069444372291194772697564488533513162625088788652069019599502267056144446813080959567606565958060968362608817507580777155645244766181457615047544753876901230853475993850688679540699215941993609462704449391423295027484037024171398081968569657865679645696921913880799839721700012562773927791763108114285798353590254976742077320720911093880382556413525840319176067857904044568324459610673594972334580599529281407636144061497409551084993179579348277690990533585953212281913976014218945022206240894788245834507482485185106487165328727157756784293161958839785933044271448437803243820943101681494632205204458793845125717103512700609470891044343326084010870996916717999832720213421448579629846996149849743179641268202394766412450421603141433589454877502480929553120755567011702763238915794955418299446053033025987107740849239996338123717834221467293326556412374672525177552558641406425103569744966280191976800829810661377996985909248233128798146588969976814532241577355815520009360275293632608970323736405400658696871505686799113259430097794768851945865321772130699957955085072597912034522573009706018728171865374430703871030752055901472813059190668363354661311105236479673119912358689577115639174652494278648394798036495711854517762015103265589507075393198849142355954675617094492990363727463795415639483325671009378297718999799998638932325308884526360327164059960766959080575545282269603938570161075338813575678720354737508985018010799459148136649188262352007728686105233240470484718484243856643061301243232920437416445488037168668960390284077944982981596205013164995326814024560443420777893150415365639975541692709665844142093335584061999308471427971956052415659839046849502884526361948080341780555131237653650474193394701012144603079896695098642744872069748293672180246241037495732559643407226240320708858878828762231711185732939148677825246719452043648087435923981726233198839434558973247056380392905781966449851962308478649237325571582115798083785884376249392564787120256288494530280305694302908488302493966240929553507039161810363233129916919459697335998506918367692593556748170865563442290175558002405907380052129068331000701002843923746045555164914344628043824082922269683070808227384090456228383681444048697492147559339734204167832751825787115186437466068618373316462668409564082931675719402014717304831354522152909983720873073746714504823773347221595331300979412100142781951253146937069315588503079427568335516416557701959230086969340717011714692749989876459965253967317889471834260845929792490408067514894152305497152297895009984340656250793354243268967978180283027445950383665556521608532868695233362380913669382015270909566374727750098958089758538156511698464024486450296139419398158051574825122962674672857570522233923232176733395515497373399839699955918215251508991940493703876009626984594787731057948030921084802948439815575642142934181215550751079586834252818659570096497247775004966877615567488695390978257809615042150755851487109727577438034602776300844469486914102148937484766867722683130566332102744374997642251233184182918385324823528681835418423714920576804191410964576690698659488914783776326654888186768856694842095574153925868598889625991893781950974396822513745679682396902446853027042465003241858940251612778377498866822912370953822739676800476999538974003222734182921080831207479648117668535731692893373183973609304069980788959424927634164952464360517836247699144508526911767220911115524806477072387456513301040262550797440830430262840896462341536968651406467409031451017476716797422018790272334135734906404705995205113060296651253057784077824777735783724716625694521593402500062875251703177000410541185648451939442321022426333425324301471321766710627833325033435846288877936642226107678960995553637733693299392087756310775348788994126395931733509558995257115132378938860132347626081725267215002054938176800216602701056331099287452592169233375909855201167288147394293820672195126711419718545118731925857105597274443826114944246435233985385260590216818390446934788128344389091433429483917447446567096165889493503667904574888559550203167655634346977478935040215346273708295650988693094545885839945317641159156966337443430248792844251408124784429424823763697458761129528109596269352676182437820630471812745280660384227945920437394736996064308806584799744716826105932863986845065494019860553742363824023427752203491140830683376299817958999988031078493476659693573158287126988920089904303682637885433850068332977560116837839066763286537358659857654308151142146584266401952383687832457294251734851807434950661282677108537616868718135971625423865455896151749884254696349447794087872189153397830741730844867915328555156573158090663093905555022269399090019490623778523167586975023548118552983024369029597375096284188897465906949206981557519856260301993734482131035905355788324499600954239570650028843489476753096494928760228576207876595092426041232239757466054132551155425932320205218004447405392852694763568832497713077967091234434635266878235551880258129850662195048628965849903707732723043495265151828824860711281843380941967804211463803724233748722557541081261700816635695216328032002986573262307754319827880227719150814165184185840700392232646802975577991646455360202227736596527608953698614383804035020920625727442489433479003801964744217492072087658637608611314957888918206469548847592310963923922599029990888356720228654355962624129526477681624614115111765857636884305187025049045817167756230267210400747682587262396461360731716313699162534474061304644419054021527206672780801787711063885852641180331287748861540917804391091728006667755047565634767744012083453061947523604984652368427352193786613243851326549897048160096059846109987718511662022690066058056542365543663103482330143726174638808381599994818677752522336246442737297199875090640170977534963041219318929949165182968950982260022815123848296344200552224573026168633016678851597893837532007357580047502156949382937558326790495461984358511474870242945499754247560872481832970492680088305519249190616445532504433430448128396514303010109604482247572311539635494325373127926612846294611244215232508012662125374224217930053784989747713798547634239030601127487781085275676380544013780544974202303801712570794923881082828720646463680294708636239418781786571776570102093845807635955281100577185252144067818536800904593553338693451681410325387972745429100548356077900848833766998580870914178551739543789461950262930489347808361683236576094923285776649974673008890070742917611568431273227135818448388280257103678378528941401899138976009124521582997773927840060279660641607943774248138587272808601823011062245569611012908784085086109044272400540837071114222036907095767558354143841630523295563500932133730624039514511365691634502714951714244352905972141080982984367035058345523781337974377634828283523101415131948046145307411295235635570762314553463150929360879483687355661305627483266846553316792534321590672088694669837181559984132716825662381387842316565113895414287973812392319903154398050571663443518991672555741528616071935597505779692065436107810057623571445094247867665335173601313841130371878472019101589176998474758583574095269536662981480753379455220200864929537840628850111139248069457424438072333002336843831467002122123919947665323228960652210592218870153628795035440803473609247121899420072794540919605873461073929458523828207866423777637185307896809748221001860369394872314028841534190855903689999075493637623721680262202259802842503608892341868997737598941898609405911665800906684845862970361154485125913032778951220995264081526784560970298280793573713517497474934627518159854234863203083848099172147931422209347261555169778584734555309924646269961959291075388043844522740965681601185114347676690274169824270964226687282347783602829042590981893286355732544021575363429966133309042477454366815618471739776586502982643557112069979156953862957826957450249312339849560713129613073511532218368399492257822643572957477773825809669647772346415675189619871419374919541010291196811581183194956644293006895359508799890402828320290933409556529608961169356155494262298505798529874828355861810593983994951711157017081210798135653489622332970605767438292329744537029799615943966917919812596863011210530334191272094778467663973631294230220955739461432259103760087917017298732994659504181814031624147742248869297446418669037098143404293419739341001663329519214370875608182225934282133656051363900991194117152481788864031372583328420069593755574492300832856481706908390422052493378727835320917108839738167222699676293913337011663764782045326709480701938459344504352024205096704053265955960153582582070010181815544258839017101100126031627710341430067451096983445670209604338702437423905256105945854587090513996894405051464509980440022364013831078352007496287936178567133779918949982442310633384542450113989168676827454188260584672937018297921931932430627665275594059893495191802136046810984063639804099195317969397408111391665381945957080714022151918517121514695203163202293148023158322698987092181032480545146571451692027658823657639472167862299448787974951669300735940065047076418360004600481233255827455619227842884338610143878118151927483953736570564572062716196193971944758286491187077008226086160176444898586444473049750987997800646425159181146814337016454674929010185172039737177491390406294503419225975170402022442460282091589995801502523681811793287103150548590904270236086624748915779349364851661220895864775824340987227286877734516912939688627136318504945016687809338244004760751351595335616021563649063136534865267362478375459823963947055958782249662633340746478191630360029092778025621515033939726285040582386100931017609762695498898102594019057385691040033377012717392848716740926425988674415695440333306336156104036020006886378853949947380404937096052794972520441860077459391768189964576586873306023584710705276953665180697485687999928728049701322331499181649952969025886876406946104847665135452730470907229561413068382610469512824901845917262914429172506437603604958446777652017816667904888305560891893794186896962372153367077006185079148114812930732288812489891372378991119402154016901301292868402790628498289228989218515079054795470747885066532498336378977034271313528132807614568457676892503435843270965905920510919210576149294510019381801047554512715396837635921490582934963970180803408243958407803181537641477433929489961840176122753391030705157508289710834286306325519986871391615811875034351533563832403025043119531268879589155086072835182551671133012728434525828547864225964474209955294878808964498069624625755493235962237204230529031326624490352877945526566508594915374464627616746722479597131020021913287343761657435452624580058314332988337800280914971968931266934771960316171401963380231576448378833441429533018306623391387441870071967239081932545514296343683319706427201144471455026269361781021489259332860566988574386865204011100249614747799511055514087816791138734613831438131966047287898261240480732878766451949531802121374136405237682802983793279269296448629751097553142600167064652597537668277563519716511229905057666761921926840238053501398502752012610234393964284862017132730028112579216138094859929041368442972999336349463376989860958740244391492892324227966293318210488537320125287922047681001130435890186840270188881410591905964198321765357203278439878066912369209735664050827146525209157395796060030138668933677640365315623497032739077499344895416248117480435940397891679465142575257415323031115077458401616953941414250837941203876350544408917613896888792381052896298947458004676676803631970932221529843130557347426952602661202174557245595699240918033597327799047233178415029690177205407357085055432388626376895422451197950050435072054677056287888375564161684606535506381663259677301542616469447665452325211349319332204089089206801119062573076911624197009349830508679282623430600425329643748015763412923579692093948129967366868498962945746386896588468900964830272056609659926944853314655049116335364727390920154250517462154713332944894040850143634016295961961163565891456289911362135877806592979399203229767394396448352503437614261868141270655699755600293998832647101491539333720119538987284794828518261705136063656284364326810724237743915247045978946054920644303580326667624134370998384435106418915621204515043224878947402231103483122577427896219285367867322882554615657580671948528325133977948579686589993537251669430116321622704536451928393920992094989625461095095079082228566243852420864421481419346171088686512299305917272283392723518521573491881139948398025364101286665317408826794483096443099670915479922115054657211692373548560288836158985827455471968623498687875416526510048225442439019524729313289063314308250176663002738038115030634307163055969454280193437974562714101449531728221039729901253889536230294887514544047030280355409328580692178797416357550652352139521569486437792055548316154948529728646094324149217679437549778700033773549823838763583809626060041942630694399671442116223644949825182686998143346026444996085742979341355010774435604080806722329025048695352800963697078153458820016439725215277896837937093417133121919513063319885714968525742533174798349553877422752078116810315908092681186704045887300662801661503252103249926038896614214193126797909380308866347696034091823829086171127020781620498652405386361626838422157492911668944047032503018547995418872182585209520208716241375496690383179707782802036675282027631599640297883000742727734710637508058663722851770305740788742969199180810806500925892131408314306656518074193587746817534322428493470756737031439197579612862507527646519470989568785163109108756134253402618294310732308282151730757992629748015288678350724738943643641647011454158270919374503328998575277562411476664289345539980274046174203420040845589363399468250787604590865355831343744372961147063452888928061845698414636800246143953488631355767841002549440732792410027511049884164533123225647080962161843983677630958212710384090417220852265644556540238281739462100866096962662027703426010539385425144282620571757141682128589552538184841615182109228667138243643882301434474567836788922435415906867608925224637936317026398587375063331628518379629121753896893740934731243480516013567449070456818115691183493354687458245005970086413965736619886476064819796685544808102356499324424133702419790724929173197971004570097398088741431960374545319438117346655244108041560598454230427899617341352835385525627785931629174339391176310284152628334641662583221187136670083504336420033247437095648531409501032048663270525521170404471786771184636719779960695697088189331104801236667749544352316822552185200756553323687063514748646736068641545189327272203363365796399578665586467877308429831161974657350185139376990229285688183965799625436994263709268589752841178787785557379806591643673266328857744871273454069238955983818295756700111355884247816050729807338972961002137278768951357040720128607243029954448929286341251584658772102500894150406321114318329428259891845594484052114200667596750654258891015535475647842338593074648462849778599784493208357637915392983715919602178740978478137161701646016267214691490806804800955941679468393653393912515486131640147009420820910741431622264740306390573028344201773438183247587500540982667494032186410362186828311928343285403469280473218011591401447331333917942640452427733945449630393617166802287314364991264959826771412069950053297860752897351424436107898969509773842116763618259882614064873265739738746297309564269797098662648316499266943790346667508599996844733048236380690255366898253653403377770965886037261602253927121057725963577967896872199156654550965798385011633601739461772120924650000711743348816589095302357104943091135405316586201831359095892418843506934880769399549331619810607551449342299673638999512024353129552864555692443492887035744048289530529832615953371979527489382091424024358331060955123718694114792917037527133485959822941301317701814162886974392445705076024735481866611752550225841007073933218394046163772698727834060931308698780106928370015461642340704350869686019054042822393053325617935639663525270453099733657118450960198584143457122745042181934602241498792387583584029337359928276615140099964975908257072023024703611704427950377298807235683854358870351800882838278658608438908163483392326476047152081531698798643014361700862379125619489126485141784926690272038008187790380428764485797172560358422020226396396705840555610895346503831005188336149544070217232572073154582413205727919534253132760949111372581254866228990483110967137845485276732772497359832742622613995846128702959977659026487760867272212181551551819519158693118393491980379016132115677813037413329481877654413713463209505290438900442459161791372561779931807024395326224077770051211696220845556944672469706110450397470049965376758876757342557349865721818682390343226492482779310065665225561828907618495134032702370258405721780008364372524912793971008045488349676249099647344573287513822448384385192875312599460938524008053739406415557975776431215541403362826422508548354792461538349450058480310295387250591893040829995507815637178229930146165293933025689315539974522700115762466847237483377334438676050605906945167228923677731636421259795459537659978448469381109630603626503048023431402238701892330949356104584421998442369941768222732859300849934207662597882691123346181273465905239152120678493247324912899804604299436344925685044004002529235527063346378848450046335263538400009841311775200913075513037882218608401072483517406646457583321904913553941245909378231046652783915243219887604653138732580447189080289016136379295212082577704161212201769265585566966133134415075540847338429238731263103319323192322965370041941996005314349172894627990283173816070724158125220146296562436380975203668602043739937270376364929891081833318269475782342597334878802636824408433709331956113604955305724447459568246970222307428444306813594969876572842020207863409680218189541517822826936641999946375807674053556512704468897504629677198164924886705648465285681901696038314854187823600680765612579259511006721786743636531975473282500806434177830652117219261381688839751106831564288380702872303190385301163568205452670639578990830159406923067979977426301614623987775870573497043978572673964770008806833694350556728829090186501192748712281522445315499999664133551020068294504581582917940826044583562325335581594125581993689462663097337513799491998889797896404157556285495224895516008766578781199599397644801741722872727688431316679166930701728719375608991619266563791609082323596464210291821820267034175515548001647478950373619031384664854776601719331864977920764132747628424139873817217205968683079367230255195321930422600257725562748614649956325456536717284389298304845666143601534150067587360975188418143995152550534162509950581407940254152120882678978824070646147445749432727605540937844937804032839906895469336896953044670154015600796770247766520546223885385005666028517652091862942084848703793018557918522797538976233597104483076049167153022346261496708830545669850077925629948971800266364818446667909077785967896346557396432206793171199339531174869274106642019497207079058978703779112136579202727471703793637687300908331005176870124008318575782693356948740105010926367260103341992413634849079810152179775149001448499820416561787393836949247230708325089583964342060444007422153567686858079713451004819910362309812781586270854276431584381787825428114580083546622336757562086058882776514552146184499575845548751341309512427796095390499998521290626663323703926388500602805389097952849759868283715210317403977322887029665756049000595719363874129628359366182778845785529083640424108225462029950659832395762664388506448873374275474148609839995019665855900077968688227413448545067162503041563360919807054563008539043537253021508094252709807685135933511530431847289538523198545592276616607925518890796506480010246914903542108950306302823013359817668289673200454631966675312083082831328892255559730201318557680114309709246758562550581235762090962475848491001044339586502475507301324322528471091837365071960029033816990911902997915526542581594695905802242136906336574650261505227664721815621897629505215253198511192095275093611616022219137975544811375512179379583619805382353733848326147340171915092172258267066767302574275363155989631658298597113300984124643777633110391570941854382173423581423785002594486418442619375009986276052912932388214266878361077606071176147311392583603032283401405765169470580993213240672919161901621123863347144041787737955700709558249640680666140312427055799964367598701726057512577556304840228355020759338395106960081816592634750948617774261367411990787006277857108523070796243319523790876664874908713491387143386618863202215259780697424352278783508438731040565108722803581158134152353298939448168931575925140569322504010217378721910135975138731856130252133015684931345757728564556706747056937427951618328785293853598760036903345068429491053697710892111172816580330300135481254930365043435030647931696382832243836532960162681713307979715631397436284271689328740408771304190446964092245556597085622101904604019334382248622151340657864951046747572745938761086679741531316176944794118672572394384916708955094866523329947540647899690091653449103792975585418563200248618895148720211916275122864446889292100516214628938042725680923159136455469916546797336978114465120351388408490550202218690951508526997726269038853671851403528858306722432455136964256368319359417586305033092805296631220699103710965523687599696795548735213291272612400398647194211215826229330640814072114117647452645747690812760252362655974750291285478839888241512361776985609952222127707778054250377680373970235944099665632430376260466449778355158423563142947940471570448570260685289821739097948192351287774480592014354669331120308593462532534447299012662793432298663396792230613861642996788541556227137490413521321335378794073908815334902164915466064209396289510456630333924985226804160465707785183747333149130874009742102613649694615313747724513531205913880956931914109361914556553427579801244771992086353000667416377694522869951566240782909366226231364478061797211236598629352663739642643418987832954885607960746831231358934441140090300233462334613444678101602731667901573987597115403208200805732840403737351361580249011642496557222579840283252936081924117449097758197914115937133564220067580954392601636893807155140603775627193182710698930914701055183051240614314362105760831633017180332574324038223243138030242026697693557963184941363552927105253702925303518282291644811628405110093355375683296351045790072726562570741866105076847643868736211553085783029328342247097548926741191614868170380062353637511733678713311682415328899592634270954610147126908625890498254154781191269714306939837478149331175248342026264678158737867598674907940777505666449762265005944549414470963102219067034298758891329697221198033788340896733254157026802833313851364750737702318230725656409048126456553841163373535774297187853731742212833510604958942992482425793023003275930012743361891021466399644345869769579746837399757221886838926465624527641763396679931997875353089100397816348532702794128280077144347384071463110975693489721824556091725881748568179513021178320534239567117710182640386006261857497338647797098518689796083744531108978580646939376985283365601947569498842933281656419826319738264581023755454248783138770712061844376125714584792703874556914044246037364419271072185985154821967049278675282354667948968237608401594740025108557996229677496676339883794245950605882293129603976543997277813090830961515616170915003204422295717947802305215489357601403272398610051290168614657218464503868349706065363584368053055318349293234049488472172014817539745970049376326590952276377861662418269460682490699918809531818586924560286631897826473099259920136081324083487824786611572563781772678665694642763498271080743956220270780868665999117612369717886740528908217309385789295407962318917066328772970788715089381590192687186739791150267741139460325347920632808534779180416750292234366412078009709723611309747180343216930349450909328209219756858252331310278648870580813189791825300142704071682134245249200397376547749144910351674813541015373486638429586117214544140195125382158175429408116270754513798990722988371542158728322755369635814898476549622927507079579205933587653638664991708196534871986212555312854391396758614906734290350371992756084585268447546228141714691667755917514558980069830859067188143225760419680443710996805475733228220662538499410275877800409210339299830422979319421754074997451035568739868634484502797814015105221030142488201928689680188116485960666369247155751288892945602154610477066419480673297869811354501340864016919428097526166373461132474368962598801373216423728383689397216656219157042252980341888987282979264366771438624217592597881825804879944581873108651835624804597048217507630100011887420929036274590696311431773628389883362004480371128754166987025756096970418852617788438617830388472072218470742689851865897439063624053760228098403172176266498602948004713464953013920504030560236860584770553475816927024689666773538262142918888598405605922206365317100161190492702434217624618369450701017930284615285556858055928286424230623472919170201766288953320093293694552417987923408019467837828823436503861612094523744596876525137853465414487708717695009357795624530081625809681800105345309621913890756789124480294362794193811899545360840942676906561971634643781288871535311209615813181258199278367723024468384801313684080935967919270904109271658723246526018663521717443304767788055638918001260320343539306280332555311210390659639574266310838070796154370513357674848653997189287160939859293723283913930021603108570826216996316638485823800518082117029634616281015496210921211810696376424467914195938555772426386100550458093787535148681248176419557544418218583209239669684280083050956433796554221298719343159190466947675234644850582970350178117589754921336230863583237598575865592583369441728780953519936058436629420691336009190668348069820830334113264391073351631511053969215896279538605418697243533519630598132091373064686337450624042437377747821883111111722201053790329205842371597801337022337708379216473802240125217246961764658931689683625037260224392489828910064066215941438183211201541039966406290774078348806254934709167144933277423697759729585584669709451995056437040165787085835615132554284188899048398793821357714148757322489073378014454398576853703349321246579033441699048396785039102559625046220635853951905209843972175464513964852448934092124357048356357650805941680712188312561700852599318809294515688903410101682110948379978671906426539907623908875943982886398110474431146565946739466748532176184848733914091129818832077444510159210026023243877711634782871917088860245137689336309263099925124382289547074209822590569955968848114572279584084205543324791299357340975358037306144672621278782761198173582175667485494795753847347979786349158558780704559954775822564554499925695639678223902033009074497454298602966692675690886500416315987690089445078310550248121978119567390426699208659660436768692839074795613505398035248562711164813531918003690493599266283315781189978861126165564267768807601250927167183373295340877688477607190352902585647394614477203390187776299705647773241530605724262900224618137571766464128434589619218632022232648292803450351884695905666070426506964669411665895605037300006114117818837534956506273845709630347460207341245013856639981198096044677230424426325549407904079121685890814471792190373437720604899975669149195382502640938103480138295182578069582685978861002512782914249932947248106870853894001672893363256126479377453901886981838806310767119791663556484913524612826605537073650790121498596408198005709180631895327118141731613367622895705046669034031350121417346429697473406052094199796816087443437922870785210787264475153964785567106164572833605064319782751035888246330753681337055571621986949018858309962300525480179803106468080416828058246313798864729910834204449780774118211338914951613125253851882062284599081059345602002039227547278419030982680050469106233036228325530667681814223502402763920724940320971048065455002402403805922266773090933925785486651583228099370361872978963737613353878425431278761816298855369856422506309408485672798422501345163012579905709197978942044386715904476758603220646879550914967674054297480041611108055007992931603245608564439350687809397205929059265861497133847493685459330900749932761834776559139985879628431560412482194096170433261384520971476439221401418890886338498986623852724025316522605151759472574936382602032977523438952568901699329601255977757858687528011365440350891361714956762702033214860308722073345112606286821369827924708185196190697704766289859594135919804283188677709829562487504466717572406702041451660038583537971234209010133088322267089065469544196233473689875076937204935822481073101060715670905022473734114378375611370928804919475138309485361212619693985370946467331978800119917984752555924677918077890598930725130978916846478089320240762638288338244612730286108302509286981493795457534397849164487457598261895251830827733752970668354945538757152111779189544645094084156595797010161881537460324674748800891665249872642266035128447715746537737200895637846106809314808001136350238119431742049262223960730491836619724915141910420455126273931944635422838819826881350156415279239760280808445847254001927190674514653058768328394044645417075344212901473784307358222769083381063449729832770599700004783216376775410970253267922649442019877449755421952056902858438119265883430303595153508267234274637325060102107956722740746499115503231044825770135083900654290689006097463746300164417158615144529708840869549693833813090998415387926084323136027627958340527538600415403158674651957383674771528731780325284990759155298419779721606924723938510471149406961792883267571362917833251339635014765887876614275800804096633577232093736068288771565964152327898631070656103359884243360812456074323386288980084074949378338741972722939818976765470999120625126526333581059617859868324840649869605836194037712222378600173146563709135019319256632874008549043443182903142174975197072950527307174400119138423762772920165430987453717423601133115612490029909530911980878737293355761817447473466878110820454416853175442347479293917804006795480653838810131752347885589768964898386602656729156459972463423247657249154460809550819153270843555002224210605954555443597941422764041558474032418472525343780724583230538437259316229643888425046049921490025032988639893648535876360292341609531266914330508909240016989182705134177989855812689959393689811493696361867972853984158878547043756393230332024902941865099967223245991255064962712891666241051180098668805388879769453021398048357022831703256462016365079316114439589315051943739701948733451335065264828048312834516694955166667482138957311221912782194532539937320323682395955521117492858231707559924058411155949490455653101987639663091903643683658692904918152107117648845742836231896649516820941920370610881370262658860630928854414139180957129214862145809599894129107111938143846255381277017400234473543377962661995234237464639004065530601394774685198614758352751264200022693745495140621323014152746552241079814928460390092007645259605835097569024055170407253275345904712523837050499880839204762964987301291104230420957640911031605774871119754710718954382613226934808856990278442291301175244429100940312141323874675246636196450861654858918616028012174356062866691536992269124198250306101299171485897558770640946484108537157270614684757862829020794090626334428640128114267114912666316018707219473828374139859267155872211877197397803286089612887537481696068687118124249031612132598216034479075305891225096680142398891548390174251793760695770371713963606873290579252314804226059165223460117679743172313225692814275146784413177761873802932304150064708623081561441969039489863232078998041568890780874422449947670097909272158078047108459490929414602117252422220345368308314901435255603816869154465454711669758311154321526325715327985283264979396706808136020821225951715963027703490992394675011873057825906703725281853725897742695514498507981106596460394584720372548966153288957381770161252705248379656865467960977145921315509434837192793699146583213786189553867805983569094469650671608936436989853901187834107719365565329284515079261703267889396449349730482662710980656153386966463961836408504390032495989394178199375248061649982554976864709672125749786993487489082422912886978515115965395993686895794179919140610999820365112128085102600552657447437780078906622226625625237007528908595857686547542147409951924417933769529593030627667150118441449558545757443285216567315945537340855433078103520071299199559876469546456179882134377111534870130554786124280484332239235825101724636927036382284261836079365418080360850679995258884969593858683544544474146949481801938617555118863663322407279445110905668730850710246647664804457849486322247250932757162526782410591898621523299415520474585936067590462695025960501901866591408660421839539609212696828758930420035456913286852038247429485144347574115910486991712674623232555090052020639858548254883057579214424095919785443418430846498597477576103898381203255516359104694426069328840693745279177410722572304604469846037322874939647157469814923431492615655409151605655698615811573975006275882013510223738240412781616016759746787242411242223817821442523851903312019366901768205394061473094770966892969761000196791222152057215130796623932339136798841051572821649601804574542831530797903556254494564094281566714984336139774215472310187582842109692000941246652631779869848245014725478073548138156108353374056215787737791459029940148079478440737994203992396586633020979170393547760645768192627993099201791371130973416886792511088383577676232800038903807160171931843171111431269062230682522022064980025578849218664105768843353071252444459134995841227226106102766089907915760922600423555893515274474574600346664014345518445809288871814224782772478405621126024047779890080373838976559445587067773306826957178371606001870891342671938876635078649262254644423224595984420168594160855952127055064738295116906185925334344294524075692298073512444597946600966182561243864599599491129870303570014384085569341664736631959076107237514653481874652289794008202476730903915605101499375708094033839769570074638757660037765897104897273463952706970174615416681667198471113100800669457813322208165558927498540364311010367759901811607022464192965343850905173444122468575326848089699514008129262355264162913361840567314353073910224462260799143824170256575547834821513708645941420018498582069744906745804155920932034645044770848380162840542043176008167029254022894257394661928920361126450958347738748965864604895157233150395216493659919588375223923666101318941286412087469520601429486768325978880335782613585007470929553612675183562196318661112003712060749317867489044726286297766961847396541752634156446200535830308577254565585081273536496357754035152787883742894747107649976643679671780801663509350972358131195790843778885435389463066500997600769346098652586153376807903855597675967051474169741594436173931538816521263243838558296051022160675378237858695651548794173369040478784027615040166325468275881666261156054957768184985604288561631537532209284525290904804834979733921512736141548977772106292939668393299136389867228409211574578117835888268432859359197992574912262813709545623739477662571526951687226503910530398138773342338427812282230555989321008353722036438808790371973483643200288705852344215706091365246557759965783324937147714455072321520757742931157240057001121910497031767672314518222573514824938126624885594373009385025184166201145586557289531257839461877676398471745502581875082457452940889673207672607433685735185318542315543321625255994361440988027021023909874210501641734251078378309332889141606861904763831851363820234174695544784891649221518554600247012641511612433033645729813530671736839498558469956356720117788107795071268394071175305810575054529664074720110803189528131967392485562253698508496883262741946740270718270325141336762257108969567658372303475943046604585386930607850346462359693751998225805640861708227693796687914947600813973289925079640333419296676815550141296553225607155640960174770346736053116223041267754935382493351642766381724326960361292964875559134629508427884572918452227949865626154805471006891778609434850655702864819860876259136638629111489041006799483130581546215656864487703150342873202839260857791999945839531739122936325289316327179755690561863520696790233166086626662557168360300403213074118659695135834759256487357597767946225725551724146479831942235619016620044058354042464571253202332626097491198501295592624098789669572199363265320808088806443201212352494217074501804270397938893993758984603816732005886870958370676550784783368916329451949505145245294590792284867313601654413956355752551332044696694546669341085473266313059714733591415790010185179123883627588585560519700058628874913433035138265514574052962269388090493461888571697396271626856316890338658098462951302607635170118337461006510676204223921273522559253993979346913884373164549583045072587090370290632511265960629220999431985851758350399513237831673241346208030904681631931640900271899463400492568204615929757331349074983114592902708256682340262736329162074548616973153648176409912210780781439757249974812799940678244409992794389150511672717872315294097988427762951049782887073324619079092332850861630950641020471328786636545193003425959855634278734238862860605655607575199642747084056546130682684420365057186649932686491161982678104833379360004386923197170015843967921663762234317201205758974882494796401446989259189573182019493510925287540266103890879737552860289513095768194471519052886229844303563825995598249412048533293230125438058495386057656926398870867185454681286239267796422694001382854176642999199014182103858590387738060507975636330450861925963810125626972817471517855565761342209701237202914820332309244827064838065633709322658769317766324547386583937344760261686788049325701643070696711622479146649513806522440675268161968527133905578838063436042354576287284708934706850060643139957263693318898993312894890631094547403109539299256300487951274853720667308831943477953462091339190767684680037924221691843139875024601605538528607529069144862986713091444264840918210344344679345055131968233284487791065017287455448363241444579352954826661361802544265380063383051636171079506088905691252919562859171515475252617045141509973822308558665606736361550611831554233069800711638412052631554312064492834393985876390755382608972703389214469644816867452950308104724852385255877907740783202415951306743641804711928099441304550264402060345662481324373733406342570326063265624596501637937798457627635689650242449287297936990375439284215072892683530123692442586569106353717950978267915776126582463122243664608752128450043980134221486307469765608890663715265094345032287785069968788283277706958978163304003911216495039122328399189687076207360699365353906973431849889820564891297223212272711027664363856985475448870858275054022916494989299512060041781359725453130896292929399948899222156993593192116550401665886556074369584876729886364463070411743125678984388814221863442035932508993416179366471197761405158430529397871400833198821677779110703512406035949302945855192354510108944005189574193285593987208387730597652089660179580894579640265279284653258085017744466988685151381063200187136686154804720741170086974754488346398224281436466295268977494829032170837078281749375417724885339121136462879202202683790630480969584347960069537409607285519238455094005006210771135763443668159480895745432680865168388142353921334249778679054479201623394831343916673737012559655603300841853284885757661714041097870069815619260222571239335745845163732090593316763103124638778258381832975956408372284438737334406738968748212437665851117625386858283516406882848912124959482391519833202773187747036301760029276469140982211524511772847467288667797071716559876672852630307636594524261107541841441271188111139493034063698394957112508214085747807882463505386707985126271576485511633687192372964988207390246498894851632050848984358992617489654095924021008360281125778446994236196934911032610015600776945244275967746160096672786390157454360766912388915473744804080984449104649018914821962170960560020118961131472297326801720606375230843466516845193628918234548875741126166597607627962464494857798200061979539734774358837948282595246382883675756768410188673482251004229286375341931454428988153198343920022198913120132932349851252559846955851739226985716500565817943828321242479653860568108812209214064978720117374161736616664044016710301085349378861386980208484338118492050117947877136350367071097837748397285240928908569014446803162822867852029817260431954548338710074485890321828490249424495036249219439977275553806279875292743954244974345037297581600310862128186092958413426000210254057008155205298920661125453911271113949779851080897861147171309018430687171944055242570925226578437090760061626848015930804806519987086770455892819315416432411963788244743829193710641180628350326332185796315714744911398848260032232976308138781674245841144495489874731683669700633124204133982941056046472385375280796106321232166603039367113037788877439408509677517845751369874865457773862430862432319237548457045865550076335236412710269476166485151335699822818272536051101810161074288413170227914600344445139008316137680891807737865772286439340463320437393008227011005943809130935752527186330477858877335508907184276793392251910739036223352262780582975381725289518326601497691025184495997348508899328744184156949781187901633488065015187063369181633290960181378375539092752797440157211606068476261958363159371975124160260809288007305329863081101138064251428299712935830864754865027830607500167189837418856299090945953390701704740813811037547658613949139939429231668228029667884551689059089553813347192510515242700009599589826063401092067316400043315514772659483252122115294844497992595544978127813390082934129948450570589571822950822114002260132671425023265508466085388145807316437663748534492860009904054543644335198124378124860694095358466598810619927536921041580833026495104448677938286594402646639348065586708441058265815212004664140964029516963619319801155365767764508533096825272747000735970738276691674582999083739120169198199609786788217043923592639785942158733434577710067020669551503823920359109901209429125792517167561525178754006967494910887649072445899115021203702016771551815355145689548252969113096004700256495465827249682273040748508373429524170671400533725802182080586094991927579191130762155123824051715805508915630445075751901926537431054009466050299429232444172176378234188237889017992228294921627177993536726251822800950294431820681559584088559534482969683354938020077843441473713251834649465564749172007151797828626817418802679691189261058271789234738398559826542089275704749246796024207044213476876305921159860019733652974858659706382687115320225153130003204517519886205247961283469167528789676599086638577667686762832214144756069740510078423692956532599974565692280757941960150128113767218716758194306795652572532514555262954112360882559110268356162580535943951363368701025997791713320927731718832124957199770504243617864901222827125929013346706900106600316704960579794564407633819520988831629406402521966386281929172280733112673793074672604492283503260101177137677411096683603696742181744981386011606155390643519361934294528891252201607787933757821193258498387998064215254443390992015437912457851087277845443635490600877279598881529891344322651654506953423815142520261922095686046056575157394245417239975408822804829816554719719738693363752933233372563190209123920131449320750311193927050185089570239154398507973263908332890397054633279430461939958545149209887549321799510923765969775760521980716533689731323905479811468281677932714387804640780833177536710676204918640878576468400056046613988452913524133109483031295886434860824403200156195972368456727019256581758049501367113541907159034636840117747244901815823199928323660205383800480649808181825680583411016002594612605849785466133305701203217961633092395542022229057537263030068617379743366915220957600645130901987683496148391282034165022622385685102387299941949357032141643784249127997262545905918675834865633015832175988166425878665262517170835089226506755420773563988052643296629379202033879562038378245258632693771038978610631544918080851676395655662488565808050479398976113378348749337297214474636053743857540941410930530917684716864073625832730870716314330616416834842544793660725367073785428620977613087264661938372005889187055345151805974221898716095431403137147576240182218570368376678909864046690667987205209345655728845861479340174654947457377104217511962994420873173438696641707275984937046947954878922790462144935124079682177624824044470801647588537668686908199353296802259839971547618184750286174945282956516313862281328208725096506617628573989885463766843679942654576754847234021211391241229830551099849231782237548116116149086024174072545915295949720439333147174084009504313967769208102298108426724873165380606863824276909670201299548661684410867287133662249947751847274034156809231374259296284603466678106360884587574876054070006140160250061774170379930690972174537342857948954182457965487543043582708296004484358733159216040839231951182370646870106716344330651410322964882588556299900128128171796022523087273632713062273250379881673185117316260625530401608036420852521851639807005475384823755153498804631644355506817557469959495290752072276006696167787787657110325362737814877455442731278044197760142846213398867254825333807940716641163499743941659706788990441042253690879280961773238819672736551269146773550089137638590951611983685763640877751367908931104551906296373684310883496304806918076938940828078242993174572313483066656929905545083624103709311984518962330403702252260155091041572005776182666242050795116536013902588753245927398517389014738951617238727940137104499782800354820781569178257761381800095470087334821275653353269058409302503955961315463508593393812146919804665409397808298623443709319400546134371472516081511834505319689819723666610721753257595622371236435814157828139135951439484291036358157571024910076959450137643655973894845236466851565046926115566559846655656219386969818526721569465852752867123496457205243550872579641278812639703189019280652597387877387602662740509496554863762959743723065066876747833518106634464278651801575013055725456376851113812148735191488537300730820136766348233647863650145647758222351797312763367319032387674771581095943748441634618866595150095120041524096708883844866574541464530878136341637427888099379262387123849889381645097092575021583944019592067638256896298361213961253475896555256107673451541435684473153195668349100411467103676827242079107768977338679144164262348687855912367656342636104733159834158065620267999724966413388533926594828975160420945681863669119092873201415092449185253811780090005692657477051251027470389634973842304892694523047780315246429326676759405392239193033015631101177367667630305447306003894263931797150955012915500861242816963955067865151055714328569889257001873474453836211400074859022761212193635496502245461202358701611740850138363986382163966038044335351562058116473809838480506911917838913608473212059205862961900931613902608542893135472914906612650042358233139504965618056744470545434957741929691889124291437483617745958230488407831321480209020684130412185410320147212143552677842427236679032461842556497074816099180091602845845617714784431241436491865034098912915883326350545728233999495453195233903351502160307615274752590416100419233540721601103502955331457893300006740490009171473170943802545843641619987887428242913924828675717061094136320160172598693232020828313180331460088058248998091555959645132811377806363114931258041467504008692695787396678726787325857803272513830576664607648892205329115145669774068306675711453323769935562893620034945712633205736381150564573484489204437829517986513283755995348517017531254517332404106043768990079296559027001405290021826654802717302111777819348055932083692596108318814765945479227166455093930926422072248148975081799613929954977145651687290640915043551999002634777448788708471956871901657648103652580929769691885441194636092301948536218157550845031694120594154210724942283517154398329286302096102631581637580726220234532556613662740021009725413739770722728410246124323225109116042354826175115414783783782848566605209301956033375002291927561784425154806359307459537093588279872957714732967813406460136921820993486758508502487173685450452427910986809707852442124691143747259117096254156336156566922280989502415049544723764632256300333439655771089514383461374762581834972125188046099603236096135480797602170536136996427595596142833222678694585120357540036218004917177892316092017067395724592345642641519245502263849599812140334540753744260078918906096581426362538254190167820723844734619184756688397149428699294829815666971006252092893804830979887673989526024754362627540647450409648963433087066024085062660977832528833866989057647250730232325395266706731269621181943529886444937035278632223380649540769848213694653868026874740289762308363811604793950553809763944525971996465059443273658709829343470385264933459867235006187102110248752357483681809871170558262796262726649741940932937067967240359755168896686272244808364997488205623796408066518549992555980890151735144805985160544746611792830756450544826421023348148781403376194800322152962568024465177462887023496979372163144128284221450317728252323945574412980288598196608960856457404184336088162913161470996949783009645761422202498804786733523650202376290947953929466753285441505516221914737716638079975632703441455962804663458632509911122386833297426045143019873447154972452076858557789984170595330673270377963981339680046614292839420866339602589630829183701574789805393201718274934290004072320976450405727730286409277106380594219281560663875989037244410292803996333465284666066785899602342222305998177982699025691535865441360930278645098156488703937505674314779212750144618292500800538821036634466642446159552294622195489069468710447556643908599986128408067252195017047058704000020721151597892891386752479892650465115861084454638330724237471681424978491040124963731173349153797742021951249731753880721626290374196028155097917529840738168308027163116580805025752213603524950911994164524001790797564927911523536681709682601247018603550023663623144192312024022736317484249968268333203336776144936028633989426642142255380635606530894504408830702660487695660465874520287739745463298944350554037254160055897176814636777020084689138015887835156695503707947938411037794204643651617540033401836023732892906663273926063465980759886294460467822935861767683100870825263938762003722832869136754099239911678396002139952620369982110655844437713281011429968719441074385385091252896594082473485614785345107294564156478972687722659371428569292857006712405595840440466906235769760930766762555432941930273597136799225940169786777192809017727212946792233399191287713635186918429879282887408463613608344428028252880363858263051826266176679899586974458977359489364950375970587570481693257321407613110377544906477497425288542556542707243292345298719612628242589313885701997308854471012156952808895672549371351509685494112718131124700179535057495528770516853822910945466904384495198250048219554319638470309647014989858575203574313393072896372081842151294820350190160053051706189526326625935333250651458079935070982518087463915054543334534144244255245620218061168862000565171532853630801250552794990847212973490533376751559512160321715495224203929740938262660473570790404797669783728299492265475902072690051980869972669783877329236685225628718645956409948080595510724945358353560724734402193115415244547841904742126998936197123142921498961513766332948710856973636861901779685861417079388533059797583899844240755608700124715359729625776720790416800714730406771198014608492659820212105189855188040927090905036447485165041067842651388175201078354175271338006712363445930251248204790955873588062036846974612603166676101928539220529979282621666311358155213732393180264592672788343716078245942037361022415026219536509533913001634000429691358981225990693973383819840834983074601766286672831419830685556920265457896179800521049776363959033408489058221539863693013766137950316826247692644833731665950855101877119099584369267501720794559968758223380660973951803742868200056633509465089012472848955727631642139785549785895473727395471347169582006624747444119674913171346538683205827738801315685019164726261289446449167855780314709903087802009473777744128616004983538676558201347874195472936973336904183480984345967397047898261718586013324643288075254051365816665080443672438386193612774660549606820487518219772359208780731280937747431743255299594735838121263212376496631417168210575417093665297349669116957822522512644999627332801956816327164125161373225644187857466606531325155249871956114117376208342882143036719310898580731360751219219338797876260113368376980077925680697082793600097070471944078106572586162428848704697056500615498575435534541744637780197676364886307192161320410253881837718234704963513340015475536418242599640723580758254226660322440958629168044090823673436952254908547252038070868385684720766536267673975383200451100514682420051367236065116916204959153537140530336881813562819988040298341371851967508396924254749936886680809738158834944663072845598578147384666968754542264465340758235296275555754279897079933678675614619011215473276127301825041896458142680345784053094662203610184052199285102416605788545860231506964842561787348701185359456004532360597159985655216935112455649034212922270630981938636329350523729261613306020469728495444469958432027777582115360796609514152726077804923665885252347122157600307787954875631026692746219735388076465495995472138577257773666502567729971296258254744774927537077382409155849560909205900868566849391024119250696287257265738513611431934197147674351909040576421823090444074064772012758035919591456443465372360505062069086321651624546327281375839101317222906380798387996370988088316558322751964477052081348682156902200981575850721054074722232900812391924161273528445096287811219640544217665902130458350579245076097605862611645992601553280683970514257888174887483533491110963398747467700038749348098582896991100870460149725853089223273076438248476295322894068959331441310555857349439934789417207862001447991960232914378194641907326412134753619872130274742637930602538034532588718265221785055984739094993467514840435569600003155143041781409929485638024209385080532741607822618449609897530485766810956094083678946043549276151223595932305838266981026107270453586074526072458642112755861634687005222996718163250135984052587106843099996202375908743417440396757545847584750778126162329853667689751891707151476780421409055592273523142528201448288898629573020620718924695250615262581332032261849723347104113369319850325322979818834464510055833826414473270256747561732207712010297261665829315802578363436865833806091699221668321792964872385462714061792148747841903691999667554744205232954333667225956386213736540002669134002270609880044220787948143642744774007821579465212415492737360955278640848103236787986684493440423635380784745367663429759902858493626156572767420164170732973935358539099196405813786177620239144509096785685797088643067576667136558750879960580282924178703653953146314414652325187964876821079276322182905186726269867804053499460019026191105579813153329415475675354883406920863627369871902762151386000421720632694143794873544986649668667428084489745130121082189892914144748684785943552632875814064459071834589472532651030743333273710527021106145755277886935048197059472439950785363580054165945307214293343836347828840982059400421960743909073786499642364169558174776922014903925501762166979583173549347033334629505781734686027992165608700097589063537055013288117841701188111905365167697429958907248856748976263403906535628699957426682025504353038055197647488479678608165452433004989269131178714607602938240109739273961578784351458161268138115292606036295689640702767739925587499780220641682192669780066138722575067047611228739386069988023820165847273772592158954303892984712292498289578917167975053832050061654183569207857739408778606727105982083465617573304237918827238860391748391428153989231447126245603394713499692076096651969273965765750333233895909480555873555094927681694902804598180555042497771300545688644374519562663098899397758119634301284460863454760124939836973205568730343384850912316182391897026079204195666722014424180844552538279197663547485963357271318300756202495278887854421882477919768015639479178082487345329296895738155879156928528449572332125535228832761256199277084294090249831550910742987640532523055302729992631843884308343705074094284475186270445040155180134055485759484961055912730130716246144359469687119105410469410085802721585008547742477246148998328604486001779819334610519039028588429841206925831448644867303114632609670127617284195387843306457083988622924861769707342240670668161704043300680177913481687883969825334146443903506580869282822581032429885291181208153811915741610430281184107598736049207026005983400555676047587035384144080226659396961583456170468180319076431721048585776035837655980699911493753287165632622120246901536793761232088632035830723987113409288360281809217321258953006738068475232037946087313488586235963002159308764820328584830741025888156584044571116083816934847063257710811186590037816843365347619092375452405156511052576302493092034284987812380833204002175804860326262724920501200664617589817573360944037528254128693768167910136882307817445156724014031159951182646996090767163042004348757178659176557668230071925637748663377475368494060377093444112524104365199963491371753655162322579958380070160401701187051375684616612207847813925987227508600492409154903611994474115344556119876642805961801906318465188484842788269980099063757688548872812352195121581319043547486769459896560595128790958436796720804938525198910571715481384916086844051788483290180403035812780627111741577873631158849323875944299006284309962330663926648308650831097647766051064104614664317426203882672192591151067696716913365021879435505659267677498385760861059909924538741121253723441536960103258396438326786799039734416349205672072531035106751592644201295600690640329368181306934378677294480842792547982203934312608002694782885282225971098702625910001686348868712159590491189352177484421172171088755575557004842841427625929430206288197470866742499606778895850920990776214806656973300758403170121194540290155373011399837929477497275812330219186969350803449623502846162675634712866374000000287529975004270983450328451437086553913242133803288365388353057248769049930203669435080941638651677374260167178110709094917664261649728896078392919356817874536036026163946152514681548664305856450141208845109266682231259768710889628907745224993862991322698213871869140500284072880625774326008495746687988149774702847192481878405945611190309092323812329736569160100509818565372285668638213750659144188061972196420753698279974454547747554303719248372536989575680236449396256488993961492118575192586673513995835614452496111244475521009783802297858316347102700602938137720491463095505034767461637788400902276309834024862119488493922517495654587641020161671363317996616645194454726251088308293843462886565938766626439803507675716804088995063008188236876795803811569155670418603842343633820078084853381773407271445891027090275301291611631105352686048953030579846611621162134854866718052821816153780583466905891693160107172791857733368051347685242208896652350549485925292756662468647726745253252010652535681384120179806371802291508743922844691546240721880186776110310658679899765034867575155689512892425349163844781764258529367968334461033428370895281591840739315089372069193131684879588020055197529592937291092182561331983491703154147412244256429805848464486313889276474342017068886730771627199661247824413178885996604689279481895417949224468928744603366468852490599260620093007853280632654889537212824198713611196591140940277197334156273044202852353508660777056266159746988959487175753812732778750785796308879942528503059435348741959865878937252606607293507983068262275366856459174021970918745148445540637359904326121624450697961096297666504021596513257697362381260577554389979492011497303847066271092074869092135399222397754513621555777179341663929993524527766743498988770167320122329492552208718970700228415656308936605582478252824852482194220238757495820989194570216756807128536669601505982002520712538165927981950576321195433720944514585713991727237735609166470176471348746563453993633102638060564409568668683980473190501707812263585876562154303464915602815961989361071476358799395177415629538048286384216005688382005910769038607632884583202145278166302469027429868683100799121107557601648589488054928018949174865332465976006527608700705459276751945245231480275622403556963962369598281470093911489207554284741348513587156819559824429045376468365380710550814549533340797304196988214548177850489648133526399178214005010709665666287669612550934784635360854450454576020021741687878591516055506961501180444822870669007016488944028298162247938559154068399902226420115837946766775043605457781473120612184177608557444635494440207216240498922424599055923715118700797513809724194933372205256174970887613400853522833351396955299890646054126021631352316412210479422294171555380388479461902744550194975183224612566480156037241107719891595408464089877913502916135354169299677371966716786120903960819810141414733297376728734193322237356326418358766930514360994036577322779505968589536911497094724708259776146902458032293325922292293218297009592616297813871526149423714739485731002471812788612775399364701356215139062400545997049428199804689940048596803147908261749181483678670203264863027975781099626322664992512459463397231782738944038120743431937764147750202051302555893516083963537192127686268060694628086477068996413115214245023547987375183441247243635134753930022894745524875754386737184002763823614504585672531359053325949369551391276456729809804425900045554868839555346613484609062975097996436447815728553253143562775837309143389998518595033387884016134799644263874221996799292965572681953049996594779980649054930837041138529799671497875463135889932513564293309453425824940680566644467423444343549728848328238323266413031575925619736997704176622332704232191071324238270273624905025992427027823006036503319704801802053958757591335821151043151816500624124021098925711793618937085891679968832621556048361500056570062786015382259776086177308566640831699146945798093250514584230611709966980438629937619513368418962492007094481321190128964402878464705402975731552649967977448990672875785218003423027302918012365549033151234289241183508445072571692910295235704924872862102281709045491909119934112770416428379156935199250743125758994713600420520533024236857845267223420455814581573247447780078854384326162119136575931190370376249599459141495958491729020240648657697877668462958562234237505438944057341687804183368278279296416165603309520672289119621361720783687613095271621927457398381634075055805273433519817428256858134432854891297897973214196381467797164925439445379723931380417991243103754080027697429415341215421654073257969589654302006692602228312533111720780463747884213584733575236501030761695022248322224003842921843188512716179831418179804886220504385351489703546478522180898845854602190898227624060989792886022687759880951866334016388165856620872395027602850098772939129397639115910458512176799670206187497560904088843235631073688412804283692612783574212059017143196723406239800327437599130252097911783441043427963005650045095114395448861441505981174484912803258728684067093976206321180764362976001266454288627809223928277183398246542103728901757674385985423392335588778443836072612901301912412071604675319954798842342435838247913672651837702289461456836403899538260374090404555421076732981967818298660625344588906092708211419720846531781481788175019654989988202902440806017539901183282168799968693366132940335202089463061995627162010120147323945038651315304453360466423608041149998857851925600643389685002423294455097191011451227256965662168987941616965574318947054912549405553903390281068686037276382253352473123629356035614730372768809663027597335580363198890214347138666299616905992629580217053855630050330974938047069814628885129962108023747001874368740955199713631906075459970217541631195465449504148356271689705770239646207004930340001042885836268586755047352313765865084308302883623861544012330993188291157163051659743873183339103562399691405166961690013048947567401185277239790089781332160613826982573715016666214089359674967465979029036208189810911162310434082140311961337846424825824027392547540683220231167484297917599972473845882145111633318510156860366480436735033572242796956730326606191898170946717332759786598647009489901148743571498316269711298405169463698126887881996757049327229670391792828262234686528721558256720657289822066261642933512756890312515026853462180723110656457392552794618778143115677229316777291259079466764319201995234805295718658288965752433293864496646331811552844664256724496487932101830194154493206840589679718620852179203919861861431796226953388926991265073410308293783927633037854299575970744100532849618630725812307580384487523831623440589384965634889234892746232140388533169566859925569555082922738374700746639587973128794728127530365314863238316744108970792859809065868699665696292945103819401078813977441901609706870598431565893705326166098312081175161256034567072488429083272397572298632913402660402727291964473144391073311256214598441279236443605172019706620109243062082303515021720392857440089028065091344695778956140602777439923487386116753910910950395573230484754131904979286708264304810181236625215344412456038170137483513528272388208185011642233593778738128645034000333951662014306350784162147782100647865604334717215124155925934026250782066479515861648547191003844832635263744103246986925088818597625813791950816724555907775655091887279349582366174381022103369084399091659137166152711859589252329344977348213611961856419468420057712482031604609035558653500067286739668926256492423666798347677108905138654073305212998223961865728149357309305171547885297819027781736662883789828898114658211625500943144079325243113846397327686351076600471629280972680009502697389679370200893599879731716323722280936968255964358037671817639087989177289903800926491816232560844216651570771780010966982588856571834517276931433100876905802253680582302283580738051052725041702503365571940924766747951109078972712466736667084113959641324308225882609490951440628586798757267969272006987821605586322522650103328507059362751479109817462845218588427212428628155885999087477053438264911918371219115354876504298892672092218140412849542428818462541564764923371305362432226093044006596999707508156429995347255396803528298242576073115746277036581503840023419816229631226980717406676579115324407110724390359733404722874708454076953710488788951881310862181280355847394520735226088265760187546585301251917366003556281204752791089808604562407545642320718686898878922179857994461953704679884054840155719338441433153057071608101069196686342841639193162510753708980583838495701658977410919421773193971654345038447072062445994338240021582972742089977202126033671251449211779962353701078427972245012269948055795263357392947762265869176799962526241447152203263949821858134998263299789251237496072765891354243662856630829074158535606904529001030452776056405467152337987921877115736489816847482743204225929246751811266984708554727030269988683802694631529220180590170149560484127851860219139102150997754983534494024566723553805418962020574666304920815336838502213862511830875813138685197293670546989559185539492910668292142348768389973657869623066962167294224020777566059302701220315754599081523863904865535539524626083268806395969192778526503303318516437846607208181059055311052990793947095948133881528519005664691856379703957143886870156281048405500123063026342031627325866960775221042057152594020129896390526832459100715459830292177572305975822129408746289547717969511953079168783713407752547813523334085804737424931988589609033732149052666206679358832003257743343251915992201095909756365678257601463970342329686416255326361021904432160593216988494837911152104835500787234293607459611302216392007031515713713024438074853059135551295531679283780148217144196195206371013028039656876661482395748919078869175201019115196528856489925864254131473208352882025635678917404232947237834516546259091289489940051300368266453926222767907257090337717835702041513775493896816188122594516130773582234650516936279152097441168404736875199176035795327888801542311486237663354771878985136851074853474546892146153827823764494063894235993633794907187327305996997102637378260049172103697449142239849077512644985218768513421714199706583129172773983654991207762227042313925309971131112023147533273018927963108302149343299627278843486074355956315056000811648575524722025361281311428895068447686748226618384452349208099747391545252576192239966366119739871344892545053228999973684224065383911050161436378997821296807681692649446269089304858896068404614004303356532209366759503078815603607283254800613654964876507364801770534964437876965435452958404258897947402659111260412441081907479051080745166114987380685900295284811276856418745677866814736016440557862059660904548822093883726093983889368359327705192666297616948452301297264097722498448715044163969305983204201760458133881005490629200606109594759889173524408776041500029300418348867849379112814612970212684524073924934866356313601198131276343321470092264652747163838111276780635873136598738954065822639617418627604865556049519497944205619936593354748161383776144809561076803323303161214958199266720865506754409060180613386805125071365983430939811625491255849152491562383110821964580031874881957485044788155286582674148729948992774139961671224952806321367827323102726193811794472478558403065054251213631450195349134714408099648223987951075523106959648764184324399992169630731871334709733346271400445642809585604826988686011327936929696237008028036644578574629405872107168916152783576419123612132388187393188342187165428782248308966121232657666164242992818122961297025165519842257331891086779018782240524250457837099898857052419607563220624304829519672237441482682001624754278594658835336317436570635419067701403141999722382962989236072245216804561399037377075343902360746392337930475202728867045640021435802721394828159141503376148583350209411654787333085906734089399810639786865371243860584575511581335962990155949335348880435586178350849246404458022805454240262563404429295407093183712335387700162069725342135975895102265511271814296664732043627173771130680071686779886117971335969335265846953864367800604310157855168263469451042315142102887439580139758973980368933523543136561863219079908488359179601113429941101982986605710210412022977443769181513918056242114717976159525681344713410730403779359274895108147058247636778918828506768829730016525479635438055168159086549523637451428846728538160310000370380118619518705296430334780501776574416699709158887819302253189698252153938938670215673593174057909864140771518561301556286283765826329397699167173763584371065059692257575845343628695622590145792834336757226164258265752062438332088989729064917886729546462969119811394097611665635591266952501249354255472385578381349923232703552757088013752264469651111385180212936029088496898779002948060687101056447797335398475914330670620362488535564420897719588415399303530806625809208366898993400442947098951800113344798103685460558715187621550556476698119748107886214689337854346797399888240977159639788481168398968036342419802223978222089439590931400073464175402957807033905241782387185482701416469201320779464354660073508784427914890515118686418622727819719923936552950008344432307565268776417793341360750240451716978598306425631076495244756596299529542399110860877082470106085299978013014453108150333757977512987613548436026327518582357660526758647416008061771585105092824497863410622198825883576264019691745505127070099716253107357930711707109773671642416952285874168927047509712590514792590024228963026874172303158551613399348989441635663478617569805220883293178669410451030296553109302042090582991904913556677832290402230244434264768497567397723884010665306578573086419765997325888941607771560253666298897709078561774590337606179099498928058897367892070957732572283080759443313026670707654049758787321928155529030958402434489793474244203022011787444926606842369485364615201496140824145098720471579257458494102163082469125119223978400448639350543210439298089571371532764774364937739668345382777215032108326904558110440491829871126868007850001241122443378496445489121829461127358153531962554555473266945051084606721664763542943409878532733256857404030212632817253454938945342894428718871169583475830977614884185508008776750436132913410316837378555087196808125907787914106743513771401304035276379671449424116937421508945089173370676103824593409981367018666067815128216878064910822226681470700199878719154154282966266012329163072262269336372934278673114032883328517501353358612029259564634873604623758427538308779452268818855763770682266151943676682251033637259591513868380292897340780340203191528611573082868736465921176684611018907259861954218949883814711647588797207691968101991083861814051778278524358106783392745093547934193049571192817419708697185703163225729709383165571347367519876739835467768103475594851500146469156911986171222951034772068235369077721923443215820643554564714385930116767853129091265573818005916005100270069190273416796690872340717140358646291518108749672723489625933482211700110114242411284994773210681218851630460919945861391043711474995412427245835357962408355589459143531014786969660190948778348235696879930579395164347300118591583708525851708613611420931232778234614528773579263057576118291400302194417002997842066266583057695590172507016728169111747641183684292515081608695250067907890129752003940948034952754842036894597551212464830451809988251124919679103297198976701348956372358962405531662945572990803181727144331652409974412736390998261326104296236799587302139925016273335645487221621000467044028177727093107527379386745962401641727290877993262678164661241704254348759503863733663926231766489704643138199352610913576752320519114514962627883086351779645309719255227796091361785769914337473655634022576319609558736623675205597498848154469835459744491781302533907519888735962037479616855919391160585566067343200801997962505147584318499941170147509670203220672415400290298538040575531314903031248643878050788409899616247186784199693301637542610200642862798140027102847553800379068423758504304875916543559467243309084400156901683424021478931080855510063104468192187517482147439103483683479481291709350672431436821899248196753778775800499309848742002953572829692833471547471208319788831775981896316902107045248590418215258688143769472047439904454952445451056006050724471410089295879033803058723702810617260297506006792948589788740086783706871395351972885660178028755587047647593879301968262593379661153920500885372621809907077527597769955209838292487290503018195354558736374608577829171053678643832977684421298958649199036208397593385003066355017621262287636110733171337021212299288834689760123610137553258173339944418193971231963382590993142779347443572842245264530567217346908603921358990569543812123889895913787710531133566392299110578186767509911614042375699274901839566583516165097054694785589675621708785652634645649448260262413223084039668986574765005107997260900985164091654662807217119148584020933085356995149505706542973051510657165571768233137418652024997468155120900295198933676831945077390385926549644007833853045944449691196167298617961661694228337406496755848958137575988673641271387670574392971587162066765005640387654403246912606961048559403465599667930512533360620491059557922824371801920988933931014054286006909803483083006359174978905426082888394837370858107421755105709149286761741361259780879813782870895416624236127951323918588790456251075656752892762983810208923642601509236994706972721171927615722440605034029588584948294836910692867542398637157071980892378159579029235143079027089852661143263410200194729447193287012901163290661838914410108528243493070612501137624450392545779353622455305542747113317296450971489362883880200890335413038908029957390668481670691216856129473822924347445343627965742816750448267646499221091094003042293132998285909527781512223740635386025206968818902742153246210435068086668207062125415734411528754517412936543186730031353395851139220567819200047310734651466347603104153647660984659166661412683529340830761106076982659107108414381582503879314611521763785545213957600786769788898081737204323777977976722134528934944871845166917366766201085998970401769907492359011353029794205694190558172067097801145028395959712124624244586373261437127063798311834134561950031723381726651819450991546818556379233234955889845591056832351675406481113609258344507443316454621631535771688935149192937586577291873335617146991609701315503942208515352967045333371177017964276543929908018105333398982399910041015976114710758192878861561110971927679843391645462192031869669574323199428283752359985548647783813801643601549754144067265384873364819997347029905374006554529197294995478263746354642503960109480408846120894369601284189882194072490523894844134424983487944613932596957670507657275985487927115063062883615300603406538218100643164214064383256535730218637539301121624099505209731987736689483053353843998069875725379780881672307575932778749631084113279113757895142034166131337520631221330976125273979508271196117190208717519182079088017260796739285886837048598240983444061834276594419003520515083234636441397055057087133430751739573009665584785563130329776267664212470113087531993056401387043560875706391449850096105955246394825907431035584061148389260349715412221559128933367099865874739417289650218346841138912160624113366817594548780056213106078959072763061051257849308221886507859237744721081696140396621460926941506626192310659244772339883894839058509600506066460005696283778245082452028601099506541224950304987349411069403000532821845185645760572076837826317124309546805356236568057139738685391404875050777662973874644162020159188517545719067924141349100908931195614544968134144433394920100788528715172543343931967377117819042638296286833921492525152059221682863028706429230030177357615108689142492666653082789094321751341889599740141775659134883641350723333726976120045626590098029289328932477375893531535576775212857798063034683453434660224617238020490344861014866782713412161545131805572301691151094027865857376059600750316494073040921392661017303688655366231395500985340307768886413387916590436196023286227242108231190877158376511218088745757411219680875645023659020599629194721394099374970640720070907177222732729854538645276956526363516776103695345753030911408061004030681590194039663876928798008884715291285492682889230365833678996347508145506398998742895214721171746106562363477214118282833415460528998044486309101856140467686321750181660413635097397640230070356521556996745799846964850716526326158231792530039853594702207430049223233661722158393639250832499921395955112530626663943905145225142062061851414638056749630998278747955062836104430798706923188321475072149523567171823388688307590444381463616725910112271981443055966125607585026783995627800056414969385744275699422768673846596588505188162537588841364038768422665304720689068705257409008676040976249409579382754652305844474118445902777595373749354659745523695207973314535133142439523119240251541029837035309711367079600655375941995619993568509264153546099870507499439308904129987288990374826845173067371315154757257552642058999736637956330581349081501825360856301054397325441799471152629329033645539435540649298368965440276730097941864339134437710123398959359309222725449878767955812200431265908819672524165635370723695644951411060763431461371002685266435483882171582603600345220085565449051023077985997005079116540870437660281873190496711382009329432299018378023397535078911927559947725100528573558487256210283234255273632130599352921709574179153139232146856921027362396259503399596165651964287287538292921236592833505444307667188282521856845520298968957493956127383564542871402012908219460579566522959321399005311766371378775375557293957029801367530995738739855109371754400935797118773517487668096039327342780359333989867731555700585375553415686352474060636298391084177554918316064524784100632201578183072555490268612994329975871525822316917305472171204601934967307369637605922025974927006440282344683909721018472877096186178870967231054431667929795594374451167460211447202699537444759974113880860882488703954289043172528847727618386960891824248720607209752670728933031389601609309888512037734946054950169209216706848328354614655859929619679591611295009490529877348081263901882628401827592087779188337337817975446565412797648263495355924277114731305553565273340487147371941544937151932669015614454845949619236203195105011419872251286132016116111632324447613872541209024392563118956807359164214448694940397030504684702204556353602850729569904907340508517878258382633565346039300309435442107599583297486776581390195027126516164103759540859255165080669727383674939573573508780336146172514086194821603399578174139971830742324152701945159771506761206170797876741997075698783385926469705218157429159601856278560617277695574494141437527348729748645349132432764812722033781027899790122692439589748098739369531446545583476462353943679597643730553379983649583286703260540563052644583251384726469398544468965111874267633172633321145447401938721763149278120549003245455565841471284159713424149489359512039507972476761271741001372053218571761432263697729954089869554658992152214001608913067476123044953842774559786832802651609814211808895196000578192870945324388690540407743425236997344722574264139158762672934881151223687837575303683383586076133684260224307830932812410685696971724268722504907450811979967043436381256314084198362289633987911083709006289260266586826361066544525022799229164512727855506834509169457927945921356207866312400516499468522020539865912341251974144451762873939854598773855703075312477360903038259634071864244684753785071714566055268766863370912186434182627474869820854017499843376840475783455348027935875552309015657605197203511588739121269852691022512349427492879908242263042756471203097581610327163176964205984999875545350343943320117786607354567723384152932864937477931090689522904025911436875925234633601830196363761994313583373870153265999389306087358502345043047658254608425186169654522944300415912484969993215811018070363252200130019289381480639688956589518649809735629375053918150797118787764882157015558576674630753230021343675309623866924652156506840031680571104752402078288414654683963824974878322079418869352445584176737737381914709148461676444133809507719913616237942361806508165495232289484227904932447493134462889521096606456448098826942765286541457184593372928811677603226662430315967863288849571587143168829912337359829417430443229676033811236182917114475037414533051670755883762965970290704506697983964610622076998752209861946673207525460896016912932620371089391002709248698615604466288545430989938162354346046797896618008844531391250059354956476801351014764757639561914572318105456544301550173589832085856001634408597489164228409425077755250770066666489294503357569475664536234434346164139742860823183624694419878837858359335249471133926884795041703168554831021154975574982362770130242282553888855805100431188705526580762139753844607452273488757241809241773825146255545365272680706348799390585821442299280392380301959547009652540042955048789349723150041314064704651960577283564185550839080712994193471813808371143408253146335611267486574787196662820988836415142432859495882012681181763143863831507873118363251083292168981982449176469602296016579839004974189929470825324790261202214514998365472621309558308513112907039641746866233755183938802190741963869841904488187102655639746221482222107263244768766892684289446449888597490681043966969033245731163527510181702528195494246049514556349233766208216915249079966463250942694032275818709921843806835654354247813355903444237791517109933705757716659870156175936075584813429598150731818606158432519956713887712953068838175520647230352542627174204182586739352622413183190075721151686807337907172937955395063855651132887583657381534435718618972141819429690337940624270501555007159156247245546923783581303907587369411963748245818505825355368415119104674966781153418626603304427043921697703260487290421283380131432503270148199875857197890821025894634563445483006691816041972725545717207494793478534744128180398532252269704678990357198414223617399301662243096560111039069237901061255031988055688523445240279353712596808130558781016092805294412520475183013497362780149829018855249463513017494176357104683826291047893329879559712361102606353727304872052288327294197286603411866348456044675917216001114335912523934400422826415433914259096679562733596647283961454309879159230625663318601666736097208462381838828746494386063732463163635178486558053239484308871170548867621401152715469741917380583193577902342192352109706694079604588138095394870970207232593980382194075551036313224001134745552658104263824399002694231474063445324708968703116646798594210941260110831241948743539515449917638704877885536204472361316840331004300032372459300482493783290803970093214176535282220586264050217045126042751627080373533299338778674678875905504457233380567348309796827858975765383402024151801057905351250903282619093723418692087264936304623136979308654561679947783914993687794461276715388203238601396288197312077314330005772597058643802048918618091451255282588160643763388563609699893653001972758416749585332171607617911254590169585195942739596180665879067227503652944373914499390356698306887471762764834168776608682425359671733213875243754917078351357242959859458870469905092889267525832048385647527935592164087937847852595238842446230546532421653749479829530291499187366677472791098561278668770342397449367079392765339586250167620055293663376678815981834785807494843859497272289379197700034595528474703528927128887869495180623497147463711585231789591800149189535792929585726228959754844238940861628609608884991126236407633047353662332381732646967183665807202809775478649650717971132213908241780878580685248382689246787720926933945955596521512251423977672277377567049957249877762232604766616599549996192471694996803624093456570520899674411011105992254270591885998591381805996875567635346428516653819030467584741434859167357787609500315696317711033153756983157162405351433629893950649408102448989372828962374378640424202531942325889214266849560373878500687547332514658585912780407021702410180466186465929780497667321767896792381949527463461654968598304546413069201009465158671636397641550206255045224588328491329173679504671199396016936533957675308809161714154850958726636204727494317915743724619442862028401687347400185764438889384692967172739117293055517494297008330302405270590812162638580706170208922763358930161751846010710843549700206103263169630686360105467316346244953286712411437948285151939328275674223713274459652620752052611943740574251882980849726748743233775032284122042118457446243782818025853753421362250630278422173989484747916628371441949612559785868743734533123514164322790528786889403291364465652631335723679196338456903968929500577568768096980659558453865821405535376172336493526328829189082115898960174788336196367287198050712850315026467739974607076271860975650656174466398294587912611027403666845301300330983602450372628475199229426453099510921012864903061810340923886565140185933219876529141706470440476724419132790975568890311892085877227800205818312268142614730216753146727353232498523745904918725229750430910945935159370625423842718485303013249839381850455930315812214957961539924240487263463087096488974742776247556005641747462264908939922976253505837478521379967079078314317574474727900397289294215697819438446795086279070192878600378154320190403494259773367160417915525444628478436063654140286359596029191929418171962312399714582023217574618454092432046008887632799438082592338544283557704828930055734138032498520242015633097426566757683166908067829151192475066374556514063298899098778591542761384930213195247896211452183883451894094088912395125556120386329165963331411899942631537461431978279580352626619831071275189593143565662845795208525592153889942843247341473603816667754822299098896206042031466530056981891289413833904260909846038894520271003936232226195541292798571418207460615026181778943899061847359536414789834102958236268722562472757209159719779343735659657841364960844317001724240236247320857763586069650676467965387912242595185808357757975437509652824273204205981851326772603803036046348240549454781259860283928811939462554626546432085148523624919606002651579175264050407835155152231390435666095168307691868722907334126703716247085501346695058325994993138618643847670792996329099834859978554853925893696836012348005857802540009853178895635909505056533724127074769392127857995846843588172809022923024369740496580401652795029293560434130065961908460086405267985485935353955955740414145585497822530292546878005749554678857060730213682444973609288843258605181410203606717991419198047502675231185512026352456014598707585564626031453740467273793234358799045904474265487007515012546485645316755637108945259660910226750055775351336412604977538646337058766644459640272720632306282660194438774311602289472418421740796544926282872677498135225498819773221023644959884835492684963126439628757621315173173366445043350312853606993746298275166007523900921272435527675107320853428000033963687604074839429110138676811988894254886096993403808380106083330815501326626470676977788803416617503830014611653988952756695063321619278140443952951141555369818325115228532957388031609789910589109713436977934757951059385510164929567423816748475944353175581743917831274286231241649122190506000187829877855897531045358306597448687922209883329845122675387897289404951742991627394354022625239155374333673082531413399357737175699974091344914618075684987613023238418784631712565342456153444594779599325280526170446903133917661132007156435229737454525564191570041003160813396163320229921082918201712610261708281611324018205976608047963217336655817874360049083767066984381204680560561771687749448507192662355691096726621027051289897348365055342416348068626577918303943118335591370564984082568737968652549947691646744916240249174132581299356579641545999921155824273900457254518676497264783694179196539652748574296477356153228056141484728831330770856519758217009367209709069413824145657031324731456078834791264277729555637805936534252849246855739401322868262745368354851053441836005268300736846748906508916436851893846582912203665072721033346606843873031940279168038118589496226888964324541931113719440234944550343201978805374360052468680066457150062331659095061385551126642878293779575505023873786108493166908392532766115247236779997399472440995335129131795913072032851072060653514951004539712002505283367042191657525820317220015805859667142426344045569752557614332638596208270007224523142743059255182666223232197524494768496374315667092884977090366122560496448909027925205937014287141201461323611538355215508552427030367292566065977049288843857948846855863755090157362545606941738078820248999527585958909092214384015798412449408846082335672718094602318828445466926978274326634806403283295568066982493790013893917885359436426727792779942503427862500613853223385594666879705081357800417160440400767506955660121055524932110380173216642463951505337297546180553096371566831343484244143451169590667379258911295972447595088019611298623558802203282007661817763283671040101711263384142420118588968996025658793955906714286992422607925858781883711826531416669690281176815319619891344148841845260226793173028531371091902629363806088507742450342999537640334991508805683110591021514576200033586162230274005658397326157999560818595105480456495519198138062919941402889735268232341564632279178376963538769123663780289112383552866516251359316006036554997535496900160122818168831308254936724439094512520508391665450885531724391738938582014981508288943223951904502189977661419476600994660626047198448576178072368834759996457464487017279315332143013284824133017719219491324436673460012140688264952799778773612934802476413873485441793349002843251453961500375291254076271928844323415784335186624184150682473077235174812956027805201902233814497319023481869725851963646012602074275364927255971992677938387016475156705564664969823538538023644414448280111031633525649648048844989528874049307336867372982419277949590219203262439790463711633742977236939666310403450124780568301977860709350984529642382427609875754158540728618785185683770055121011567002391496866218419619792677632001449320415688376069811900865825012033037911143006835413839827875242454008338243162993684720028815124961567121061194775717106087957993002020555929032556267818833536156531686569050887903119039010328483166327715268569267833597377399953807948078411014324806869217314458354998520124925059516622179817426159432621954544157913129685378586788359867669313749490572117330072368547402827952906945697821689491048047272308274273661302194268205205082895261085443496189605140173570966097355690012124074495608003724721720555794770282754085733199317661931247869801375238020267234200939921334839988369598049583220066592127278025584695398696281379827443181455979409129761607298727981061227522331234628498893275866829394604375336003750657917774749501720778368706786905809319263597438170592794692252784571051784257066988730228847756756206917404943960049048522383179813794589163945149175000086993846673366397427202008842001959006502881291893986486700523411796133554105740325178547536167866882249150224670798621229723261275773936591814190392367208977455713504659011249389332820361494363370901995255663679740505209368546368325319465019156000095035900118505955039814712873090112148230041416477330625533429295060713984588827228332359940890526735167333721161199265817576399275146469590333929399286575462188782369919549142240666661010029860721619811199837857754530788668372666636095223561970118784910858109520724929127311448109890107217514831431031462268102070139239824244555034818128606621641686163185349020000462040970970866532622799748892115309265954341608403043692793529819626859047519801168774902595032032275115080427649076371770235903990894634497610667361119711876482947059933691790567135037430914612316497127963836586022216567040739452489422120024336180772943871219579170218399297035229614854384972785116863963279398354450641295077803224452316075045830993549810509676145851184214604144946566962052299768377772391809233629270840069493408310566021755066122265326953025699774293802929504102019505318672753431123604596480034493309627792650333518749224276996020602380307399305491870693025455630864770629504809867107297756733806061698358337499423908893948567324722676370605370242393069665277133953650722071474079422242464154198683431278585200794889490768205839799885040250870270001850504412772391550684968383434064830716976597693538863949232168346152660879673444417603550043013685417292694156094516317537304669254799752876623478475741573732231791267968719918998693538724114951536907343308556219059548054844185672440448163142137990677127858632757347556483845383297134755411954394139227747046826997563400254111367568351705336317602803595587990149424364255035954319201656586486361748165728284324321654481922603195760585888689784550132281621312175394123640928388402140171720121000799589447558707883004236529585240451133107179898605162029224372032429926474794988529962376471087844295324811567430862449974536426913483821785698545875871137085053575444254837995406289138447150859054744225407863989181112964244314839388399312447422723381054221486685545382526642508856342818168414619546776104189390998990758139641033879280191236406249301071413224007954799595134773419792200305191026407850778570989485652528476610905047666682464607958170389487645911309464548261618228807412423497989333163961772850126474476073441340893097466339297719253706518609989783261335086464432422657690519502933520343667375743620739091712872480008396229924609313290902917806862416906164631599760146403278535333554298062972492447495947833429496337213139499306870771090040297568106016632109544416117808083816647351287775415489395627296682345606978839755682933784322613598494619530652657135947453144603734707987295268288393364889969077611264794693200362448741545573453618266399235591794253578768532707262504387816588775439772815491302123275028257718895905353253114647145785265448200320173134880634141369667943440100776673070269261268875225078371037242914559014152353633650090730639495618019092613591468581068181274123698388883665376432513610482021953447319885624474238665124846563302584617360038242836009651441150194315423412974363298193123072839473470922587788704267920406117826158834047589922554123638503261622148341063180672753952923303045763392162606603687031468976695809333581959140639316130319581638254397774296688036927426006548906480406548264803239468764418376454429005322555151996027415584168141972293958869251889070115585447197499718701687138142638816956615566416416921130742439978955873956160193861081191889644433457523850522640272897399290916335819876372208468734629195954290749668895764157866828425859270259990395795408136950709453367481093910353816665729348449848023132756626547440624347737578526920260124914128961430593583580373695786029885683330338867169988544812051486108212661452177923102035390645138374671758489436079504453025718084665364607141042287937203697702805729761294420707189644168941295742978749970071413990959261720900385403893995197901667157934761052197314885680348525838404224393635208402138098928569723945968844902253532858415595695388884314246374452649853309878699495428283114835198553467439624842617629648629772729397952500519359440091333120610325716818628868597838600601298637161567908189602543588622560354680994152465323033479660032060015711402627664743039336060538246190180914112413104794119017048566527355383933018831318946013919737743545089762724650456429002631855991404720371498117528118810158379705502509407728668740067674215373236014960781995298504998422638227856899891987588947485653196183816661585742584958344893301462074965523060566195329896664865530626739825302244438138557047381936773958712588260777190826046447651597726132600226413173493336161636232978059853877641902704098227540686225277625103794353652810442686960601369913899235126456809726061843003802382818192755411749049104622820513028030138370333639188937982555308967895619534156748383437148108121942495801377893710370858699771067999536437816434186328500317106472984105477294760406776823392964166886968739990164264522182197580678039557076382966441126009726344942165220146424288730582779598104501667290989765411470400512561871156115606460547444877217150612125939928501781725426036436777134133879358302592597749398693176647506745562766584772627934768369542242141817561292741660390270990570620198897111464265154546536881027706318538656739924601513530992044009774265341675568203771690164322817697081023007870436931895507022497956236943800625981607243581012450093524059046143468482931051468858932212243969532699835163992145080143661316258797274219742180833343914012386671380770747750280502572024928171903316265381827986549920736169690450768417846314353506403765216771004727322986350608829121252607616957011362178024528168662904808302210701307541597481013872655247677653881829143210993708969150506751799535733438859501064755478548893433554248564200308767128422123972682856993945720298273052485263222253369291861673867785257249583722565869640801099076210191019522404944338954097241140994359959361966470876576600874850151557543714434557390632409948372157121263545272487473192252195195974809184995662491113412956219410592340679975934421977530739213898574554830465176015304781214933192277512673639743307972524256462288115714197020395850231768420676321367873152018423804019502033187322949471630985758294045911413660653745384671744561686040542571645758558674909037807621178600919931020318942973758052017251054199465626891260272107610604816795282779488746218833043200324698076306932380070998606971504029945815991322411812585141705688211963158212303340693250388350736927092391847157056752893905752900455025291672209480723227017819918759530462970250871436998253687754196500149499183259650523186550849382067996564388755683599982427035834395065440161230723459419717176324609547105797684443862530276211359879667050058271280423904300208942899382662246940579616493859786041332640443202005384312499134183616420657876445818651128080105985771680476322616240631460080472199767906298776641012039186595767226874861123793130923016349369284200407119705772211544599765023635287668571375551595921826265587860153894347147628390121552129356365204643581591910599369720775349660632723607259577960428360397164902340801440966568072990897489567109047865405622065059424031687938212569593494741743603041543603183168258631187648357788221576143891883362454260459944090977023103530944578625672329982454787033365014986603582278743447394916119066853533364188573883871089157147988826499698385893291954926366119496890346369121926170242577375434784944464023213031707268037898390044276913653341890847226948997431808012240622625669863278597546056823423501846368111926617134022907121673310848499968563781969502332330023163900398233866061183491073336083747039694374164470481064912314748101638468460370368567947335109529814611010699378723344458580250437403337458358551648969281829049485277630256712817320221958948045526947768089672021430574238965007940959768921883955357715606664915800451874031472260384861581431301076767943957061767308652011836292257723856862526421670166357983300348804631172243821435677373039566732918262343824945794836399753644514828755050617932351487637796664974311094300998435856058505450251499267656105783761846186188817178073905513650167806130198547634036422546439272163992375846265248314078155768460694656866393951675606362337522941438588111385371865150388701630612345277990393182647941212630309395059869661632654027068764726718828179610701449152828690228156994569197932237229641373746968428089978083153459986378370554539790734455299799180342241277159874357052713377065081009818635850706657432695070307844840296832539682962138438136383073587919463238996261522778237515396653805427539318608102629594115994991286138592716511275941863997329559568255752258398209303644022815222340482430907533685312354394251046827371344584589829883748883941333203433717715198063045732959106135441153486896990164256176569912376965975189711659796516476961284619706611363599936436982109784316231113974441260421280669200420249295264390268092710805835597480312880994569409949353451810559302847323613462849926098306115632677529330943621291814066383660333366743330753291175131913613233179718391168422783069138251307702797026702070397789000473704143951598292948719266577828918170815130263581137305517008210194039241492629522513998089317955340905877017216184114932430222650730420756414945142491457995316858694703972982032285594694054407598377085216110272685626831650049309942912163428693922268221039594223756085859212377194475076696882144814140963673427482118309770278662417508457357211695024678396506360538217660384912244128621360418974674865218402606434121993524198590879977880345326775722680710096800349277686235943908237371652763474412724522583849683930465219470628457475445464569365983372083946415410494139024517595238532729923871518166623409767687334170754549326535590618797783666829253892544085851457262045595387318300902437125116747966240152565075056932851803800233604313492744946932708072565171057055939760315533931093285966994321391732256983039841151942779263285785292303643328609497016506898096843023941323221726073991896375459582003243815671838123036910799289594450773761969679895041690898743196029272831081646886629896942250864676040946077508845446028674924022295771711710496741272499437876912707380680229134651245574484987605577640585348752220113288389966888451944945236809381280016344611540774183405718870942094117219998924637072467450335225505059680710137506308185015289723048686641710060103582720848772138184653093667768074647158078831510776897592988028498832736791679031596277126867541949731297969515197403317551300752170075806439034832705771337754171363549864096218590239756873184854294027460908797326102894035714236463891056845685689172905824303715179716165547019577166892353334278848873234536326786268624547251207569309018368304222860648431858930246861203951467812629064176074551756837988361636381705551374761638731692812477458330589290990234240308736940197031366762029186953814169834262462048551983523105358752849421175355084216936472629438107551426850274412200111415871092632382330044551452907836923593971135925813816594726063755786041554847984894731538368741105119623255642839571808821918915388344589921382859506212263774553070200561222503974732472429369157918733167394438970952356767798294302619944809979352505939840787520051257414336362808016695957111147979490489138875394734823769696775656346838084388377304662793145428260570530269701510833060735056805876589678887850566421887205717860756970350714695907238233641309843084592272793368614483024217645426162908578581414130005674068186514307580978027024096886364721400635343414520650872813889602966458183033209088605431771784621981210371569825357006297104693695181856872913443873089317973899681364167797410037372666692432896762688722071667215226222067735259521300163449638949990564474083490176283623157246769796588868686423566016511792257837866555539024798539348463906702349023940348612858776120906387756930704091126841808896386326319864518306940106413068408268060575338149945163121682665711410030143682570129708110896610264849696658674077357710055648874648718826399574848607245034984257608520181230316340884911876698963357294767935347911431890110329080674354665145464127278437370551872955050437640601693387756766966759159404557900563209650873691882425567725291739606481812900166422496428951066840904327730666954691618049454730939419430032811726260553414175048416083605962042001299212303109912665951288006894047392420911277676152849703199715761496853483538408660049028616461534067316011894385491184320467397597613675973314635443300251367022780758788647962594278028846425503604599273623802422364332743285738271984180829837221445660095522228621200349338432457057050587388548126273530825895060987172264645812669529971680039272517096673076163442428240891773811326644591883155751782966481225430938986388234385592151040782928775786614755923940183130964645806512662557351542690526462627408395043515847436141908567435640444147392907236462084954590096714831608923081515393993444100915643109261924688087135202093799315307636621847165458331885357796377539161910342555801065293527649973143832854959709634347339394196994499409009228536990789579351221356621760481752127350963776035315316517167797627804104271410840795450121646328280426828770608493875807890419761779024138914295937792574966696681076886719365776136671560577964838707530778596860223762514466327173725168699295245303402011698820638593223277888679032841250657329226964705959167730018596044837224264227768086565734986730100992213532907887046536777990054792155446912180101524968893140128385545990292741942443901171623990913419374603690420968252890567660560064276311647664100035312951278905945077873340313293122290399667408361945816258532008940907593241169981427842303133742803404961378865151619562474410147432755951784399148543403567354170822641094899170309852204496503153628547018508520214472591942331507592284016597602999514464142186201545044060171280446062011732466920730331519828629306878599389770788277452312031016981812854138780517354634492339435001049831130050881648811444992158835029860813492029555968063196058177847566714131999481763423362585740014987428072662855841457489191916731008522210243651351328998046147063206183311676506149286686755999752696017487931458775973295282901732819221691021503211290916754063022513242049808552156403142538401826539275176788564675711191990155141040481319935981205834806856845324765051233791596713990416873298756980258453314864034062434038829332374959597411746935011812722455892227527500905392373422236427696486833213917699522546615680230036356799116424027134503502129506622678726330499397568293833433689166788599806517073974271960341010390595053807136287865966980708249253594470457478091262279123389442356794080270728720666656398042494656794956791096528956446015470068664694228077543078085517603577052861510099613148053928307008242301468399960589814920411496596442790032980624469885566083529159753733982465868513776419436109435465522314406905910178245457501485329460535558039575307235610836756398110350137011046130089689987943508435528606930473246338888736571241061926642364372722398182569971602727408882305914753207996584971660521223318993289565048265929022967172037140101476442885779619239350473903173416591219567130100197376590079485246061002018770971591051116901605329339143942490743212873493482043228020090165600687564667792119674720059697382688823397582930634423394976624820225088074755118220939707197271884059436774708693068737222095053621214166155632120687333697355048022277158997295601924438792402295349212599065071090800779567486808877993911195107515422290605441050862811857517766139467516435575341892264063868919869376173977121041045145678649357796098833666503973605656616483612186357394105327019691737594091602262538051701479245491440013820099552696524852838745837661368178160572067559829107537509141501413224343562939947977482648493103407120441555600243843534375274798321012447643078816746509995851500029796584774400376549121296885537997849251828994518510551322789264351912441262262540738607629520053150023193180814928058581372738355567785152742847652058124978455778795773798315679696199375252643066650871419706310348985566389750433414963768848434939500229431224666587179486873128282471375731428794198568791976508285030819980520302494114044679959030452556320258641027086937165100317779040781398623117982249713809839556579641414872032104351756295000888952788434045266450238727760486364108356309431743746886767685353688015057110212294545713352123499456657848755050478343171238509661403963120091212509706792206245149553811964823325846738750259419884343808864879523457007404504528136841854462812888736362938823199302785329310038438778069748168280035506460687610189973451156453950373353228913715567862746090013798454579109084303302915176370344045542762979415945187808143245169705297323446299156675547365509681911072113430914619555820062994764758541890122793464162691727030256173222932266140295530470890236946993812788678121860718895122413637831778764259131352082534907307481517427782144538159316174427208817310574590299690917690673558673599360220900940662065610713823559028102813783567307416810133581934069822913206015755013502967974446146928372231101911592592564318668485441548515006741028197773018427120316007390102523572534712630761045869311952777180404352572770851061374416719811223846672359972045535786385680751770419999259714231444270230414861978722610337260553338056380774979551392353858844432513271352954973685470513533693887830122456544323837153835021723133585161713118403579534061971539554898720488036919058896088511264155293787566380579835315473274390408576957199015759292991495478995376682350918910643080022510035746092278220231597984324874747371079111575433887463433991605568804605097344740777084063543450464872839096786402603926227757168504336558393096246124882562772593855352142745852877760494390869916714993561277890388242268065165741120950414211052661016089507235251047694376011290205472635279465325829279040938779106513638882273221107051661835548645131499316882796958972368045519114852360072344207649383445354266674294984326538995313521656131674253090604559298642521856034592138520498489396307531904896478758392610605970337675328771504863623680565070436246608605372865547204785400484311720748722343545586471906636401900266047285609888982419346704584353932813099933952444973872962125936894052830863643888813401791237790335373713324030474547430387880862523404973977741770165710431928006333821022974557752840589633781704892004532095231161333087795327718943253184717470846637695050933380598799943429565486114921205481509043437290871930182928538095440897919026712988319193344282640186541951543294409324360879954664073173247476357753758450448066109103052924955003245840674963132249572752600278473503864028557408970084860129234057597829352563652047537978844555120484615178810361622285279211839581216740476287449307590954165595216992291403192602703769048826662386398995972331500448643992241369373028095997254542664297328840082247258879694145857107970471858434374499510353261585556676810386388441460717743770705949558897692647303585080031002468968566511778477211871347009983026181103163883826061041797353177202115606861467493435244673781612729363412496826072958766723422677170256000713699608569980121368517096478951003555037395503796549868719196069014289559908617929898068225275214398557080639227814311680528257871951455686635230719331903204919005696008643212456549399169648431266915494417148971736125528922949974412152947961978002663780572304104424188422237906423265943767864434845220600601417446791334532934171581037152767549572157384556054314878225866437269116994849513941316961797113856112445459841972553934990537288291033878699551663644583057739007405209159043130011547371532274521391944635153396897327525944093707912886475846843829475319749979026967718455723126677667168427893348748312085547466942939167323560155007207921465839321164185701966486812385624853964311387895428450155158938434507137668648813277437481370443895440040480179003200103749943203704131971253583566251796657944647774500006126516386276269075220095849613147435921144058456110460615000626847402143856041758031607005855958608943709570658283095777951621086661571016414088270351622919982304190551536983878016595153549166793163546679429874386864226014656139415961130710300033603498957857898026160015794718001802287497017241745349184589494665575204325848388792582056931513257245697653964318051474183986635681063086090252321276751734500951715558862102796290341399014350889061704387603747817167724104631603342448810781818616337264279280486960168280083165359888885637523812038022647736611270864131658745408924730709186495087338894151704654759511845228468961775826382833255555743868681223779885127980676381681086452777418402182979263212828963560135142527912313990848745675491086292740125110095366583563257611436851353629234430946245798193728333010109601013745953865495670113129260033595754928271291706022707258019491676727761250542447907428118907345499466232178299887553820980834876280637440167793776852832061709279319034049145093329621999148519397628545448835413040281904248337252586565988579035772431674708018500081997753573510446269067661222924168968370079338000877264584711163696721696448095456169369129124009983715077122512004496348740094049409909567288827940495741881952815149364929705992152559625681290164898420977119621773967809117598527507324370523807681626401421575776691821826175238342873149020551280245314290878974343760007946548465726842532778267541852369374653339806185082627376699981707799913892715935027428657772121759479239613953397215431300550170433766743124038674355055440915789755881546607255407575875290440996180872794180461547691352208119780104907869918233155984240402457013113908116286881542317169396849533465780432369422760339955004587273899316585118307161558264935371965117577959611056169440675218569974106320913007585681624085058056785319179816263817818544060653938639843459616134099077320329294456445917477403681874056307439441470280684094061727729291284233545083491933909067372763996481607352377730050801085538587110629794755065838799861993339837792649923899566487276532952161032057740877443133386320852890444354785168352461256255701293778267671929462239628051820266383100600274956753614914863356077209077597586419378270383555540414901618471463020756341806985773006981632421640987205661841730145122566084442932403358513870442168086701739692492354828666381762194592839393512902050316269456819577852699000338754269397297450593290716533297131987929899551995728145623241580351267502195589357702838449925677919245340572908708927988773803097747956101169018041754746334380068275832348811087204323662833614572724949675544677230505148701170260788216811458744777918256439659215977664500020153980376145483589649194711421081659318737190761143366422361774741402206869059890256455431764725635717178010941025129900340696114919707801924065463768960416665611702792122620641855669587232180564582839956056722254387263384844792221804883389586767505434452097535800769448806759204642010235188376307954998615488572793956486796863364344074291023817235800283837288103567581738177466297888081804957628529362318063599180001528971586453610981818673115715624734253898005927191966666446740227016518881945522995818778356301069119142100302495737430850903707335193281357070979617345352526935502516371922182971135892353428352727885025360764329104491405229350577541741084665673614780307437069257141088230977213428370171148458191799899294436142661354544258225489551798988508021100262375958219389353895301095865656225544785425996168612719987319360991222406371171197999098045158674168435660875596529772957731902754816983989273272496625497785346030820983663880331169066102092276731901617904499247554991521078410556723825937888014778404531750535371651552760706399088658367596471428468837998877431751515236742917971828872572560137551618875436146017600866806262306502410290977013459963219528022777856198143782538353327449398506013454635484815806724653805341689050280633740908130558493576068256533233192864492154042419390583615670431791551066576784239908454189918575316373507707512168705912340987330038095511475692668062001941513171473931340652624207893014593281606506760848043379591254694793439437993109036838852034128372745839766559355220939613759334356435904911772883371725178826803227059828845518487860615742269609503434254366482080722888504248166160685450510943457688536353294839871192758885438385151545519002991463390796271886472484608818785482453972632664294711603146274078860945601855643946906139314936574219789052205762459593134139972430479246781448364519136603302059279617726889847706175093820134183896369468531403741578243392914901185231213787649414952596941019747119699518431468343271505210638722734601683134676563280178751546051545043942725428645578987575802270710180766737437157386944121315028343462662724171846166931050689977439135100477785662419969873265077352209198225560619443968910532352483886877096001719168217167054693816454531458900364078333773841544764345142473739906229617311467601570260439107203121143500066515018007793476300984576180139298137161633473297881899117870405010260014192429037516649154130557296824956210856182260043713308157773519337578232901789266961074305482384579407115376862703378908894196966514918210589967322319452371212353332589832685884374737652125249332764428686333744388941580402982901768907025440186682819312063271738802772608884079849284345476134189299214851784488724728460871036256143867480652553484403699229832967053162865953023302775602203737015075813584344432219086565261153109117115164157056876020619451361730401417800417056910796671257438925571111667818204726184210002542728004490359008871425141708861097634247990711963635347922015387970581224889102581781763355060271849215419135574566262322850504403215107053025626469752204878750644210376721850419471355305866464016968642480408309887340778842367159542084759817135686636918207558661831987072340238037740875890214136445440467819160260083993515874181305038475973332833641243112647869681299716789841481236610507329267457491185288345384677299854997256078334938162733944914550614350389355084788274075059469977204540115524007053480576708831172683615253016585496583336385803006414012608159163124670844641913857074618951177841900783581572816821543668132452077823954767257480129291135392749941395835445299841067390053911467782814886362718877953964708997213539950247342634904578119425941181554588192657687324347109062350057910976731650177012112948586277393258749657759652119770786685174698468672513770882772176114304647227411830608670658379923475811503337057478382909497357077109527538476217595812467627565565639747185837064579103167026937841975796524607749043453996038053445123816339381081040792361741221822005648305464053384205274161790781325151944623941633702021803579942901031027793461723919203404186590272481336931059913156336327399258220466012780936544796277259828210683858098321397650217077981282452328876723151638332811621722879656342918450684647917519543885977051159203478513868164049623855573134272298438264215955952737479752302638505251904717808747774564138913693553837229297766573310521176246613719699035879927238015100764340000565737043307291186451255362684498131154945772456968886405634106281142120707052723054919176910908028681313002027205919023007811050076093236120495405053674184382377624937012598876838107311172864665186476105439712076070053399045654215260410020300794139448342008803454879300601356039186946109741471307325474330829646389219576489086658695846037803675541883774040095827948105399228080291696944452729240773584008009007599954602326212619222983868926895610511816327395657020941319783478904617783519446401813615603544944252330321379252091314684878268611721756612813271927469897405793281264256655501124195550707509645173556127912719541514517919538816261477332050678048232959723188877236148354438144509046766106000304136070627852902391216859285444346463610908728766298533797592766063086344395731771160605477430844357481942273520351540902753188893014957689314462797479859924112779582578464225404141877753676277604870173321674482955676565765755938531286365331284200888013432195258101767584568003872388429813089295355032389328602175981726480232903976726292022836808799239078154426119097879364028203317007562448683703017408439969129436421287342846959482831304150842183858601599634505457105158591598507549678702068859565249441407613796308484421694934666041211590862915524537671217255883041420543825447352075130873909564952953233655855720363363040515505583981232177613369514920118490063612513856142252202891241591009697668426506562731229261801077876664369902816624578111402444443909803884568920658668971506133737435579080180284635807476075296390133144166293345325467631712088783412939313668784544486920087105293400054460147772861162822423137957522135340919737148338975661267077090207337344019612620666919810479763900958499696526025582687798773838712150350687311930964114324768683490841528847252601041568502975433567894355480918955672815260097069319538494323598636030491826821898488575016657499544869094741136613489735698127697303163861595444159795778657749552363562822322049975350981997451130094718629159249325147324299275236245149002641255379519878072186932596426533545893243688534729439294620790810406716090910014893028158652616994080583375013845589496599284490358126682838403384541896615629527577916600840065644239869448759434420995539323979777524597075923052701098899839205020343918992115704978251683527063998997242055983215880742108873933845645920331293128094629791500718313255239662129468260535763502176125090337739627948397982173365683508047622180947273833014726617650130616338758854279187719946265229749838915835686215653458330781437735393428157806289042366498672302024161860886735774204684546197994675415151784525420589390039527722462920632706065119122984382878645949167668977010697482806607661950524554401483321184182613244315969144298565892931232124969922062976471044990668998487969017698272029612742491616443178235284543102048196636562723176458217397459331717945416558288086333412486634158354117440220331954615853633790951752294261633863393718484829997558444454985410838048975246888677277631811494828569010609271197813114845810760416846408692439725989716274768320039279880934175694164402661298272421507883073093483773821638407154326119344370163835343908166218635441434881781696894126118509471501975453276611530188294098368378206320028000843261332220154360310049561350275981549339786716202383058250556516933818170754387679851897880145077792379745416939712973051499565077024774733483697791789046227890846623635027150497582095282951912892499152021766276656408458796663226537782748007496400307676747759362121342012401287071968515026159515154121923562492760819958199386913398868008689197330436114875533227050172430360213221465452843297959010368683077394769033871861604411761170870102050026477737548507572099420936701326147986292059857046118844614966207959721864682100642200486444920237815373727789582821822534451884864903246491168800602008037681471208766894826087463782807430515502280674164284429745616814679386717666767478331272277154785164471226570133286747580216703050331712446169557743875579868712212591378014475809072972522361704334341913874386772993439569260803016875844825542021249470843694872068346527234042838302281889846033109331230704806813159294386132952260399007057885880568008065894544094191779852346144272728599464248961850153732089701653471466727659103159295796107881218446796362722052815396672476408921688258202255786233693553334578496586898259198921993895379388189903519590582153018814854837679687987752466551539685318896889295935906019092448494477429321935608362244507090782312923745810183624272522145049113683202122758256899288304542388774197520016327030468499609663902847317261704907047795133874374372736330534817962203128318680873666217223716015811388861657547851252706245490905282383810260880098823658113399883579884122132616937647571830472783030977290013645695757158563448980285340106756285408878310715885808692539906663943267432687849723715550496626750475956176761333393384453523536662300476686010559763007999880444673012082994780535272464079057485617212675035735944412241465890193937717742500367722363943151443530805721435393969054189053577156204241195810519334095693199365509431467683871614982156351801048044405221250404237986603241274582535474313979801754397708070843587477721527092271292873062904079158434747303137739483791680983312503456067408438143566803429663810279481598475081382864296091560189270617921980012588545536769880141298103929641608577731782868217156788009620838421515855316615439764631652337465064254728062202421871069123256653661712241155948443207295011430931523186035533794908172676334366552004647428762955597582955968247076115429361664646493211658910139797002967092973073158536023580161514450935000466812993085251363130254969931160484648583083116649252562157491557806523844040295094164931864452452096298756032597582495144430353881250759581531577275887918096689224677417737078738714812711590577362878328252146583448689999422311831991192402404320698317563256862378072466747184400036003227772916852431475622304178487637217920516710126851413892295650279185145135019908133720366663014031319310640789800808037266490229591619580284179666008895230119608056131176063295256220596082050092463160716222407343127633253118040847672551980438051171868583682676626177715695446976025798555576894005056177749058464775994782656040004721907263645802299827692275553332853851084730018695394850190767401946769681311147486589564242442425747207196713614039107877857868425106457935861829246576469970435071354168099428326812336894717050910659004730538636845285240114687839753419767408983692659173681379342170421138885218764598456317545948666937290595011904111727854362739160804881714392594259683128105232864031876855372644488693786947498566434940826782137741437714867023386184193516925733098133916414125393836034208372253027753215894406601078806712625347464424220617119378520269792130845167411510871700148076120216714243652604317058116909099877873529547564062954153652102365699239074081934256561219614235931894600971955157365280213750301731053988554317194403334053506578913830824781795007375632175799749710552068117885098474468816741744398730279516969825845821082141414093319779283207098859173496224821159330030802775674325733673374889475111844749344590490331820930483633418648272842509284997603502148395794745346152385412746565028909655650904924862586044257998964298500908151723321225436986566630973843724856668377376510419437181859047015045842821553657821393769459055871649404020941222391557531955618415282979092719357407056562538535926282789762308967617440314683439828491485276794685038541107666068958557862256772934303861797237245870128749410586692626190109957216644502907119293992633845854407544559576437044149064899954044589284549500224869696195603540355367185954826670605791785757796392248508066017146456135587620624113976894065496927243567798947189781255087191491655102683154411431221324923659984216718294165710082131291481815244698659403752733548011009437195763145528121280521374016372964985088219937419854209367958180505951456650493186246343707242277447794528555014679591417248656060792207621805671509658083429666194902432448418885074565955137241134069840549958543998104685961197458959480888815066779627372289712398522966787405136915114974710302774044703101029442959041987622199994426900489104261755022271842958357096182494291128075952306038024442892661197216729019281569481502650424428647389710155744765416022235213557737899163108366740118826953301741294457046202616061200606956806804442661713216832323884978910280861175903058127979494172765626441106626418767792941114384883856481012564628837151452101504329438854455889983180189986990682999721220430787900466568427473934835921340035585396873673216031838184005301991074916553955582733507313807116963407083642994336540238297712753957121892848658974227879091012031031296446097473259791292883404387279926199797204755538738445516295832974553444167195058279048324433979063167228003951794487638590219167417503650899813795156037584634245775475437391456891019810379831553065199229783320325797966167768599518183303512657472271243109584105042557531650340908351707411094217056984361245642152881734543015480000451848602162623988835020871407692055256618477720826083957355689974169680920231252339777261241477008643005359362114964435837268665091157700589539935440842655155154124286033531470966286882556490120497504269384572766077619763640364755463388771707441651127602468283744668712954131317271050604181317972375797194941097927135436595719757090353832612931523518995167280527766807495012667859359052850266809158124853609551967300700906778784014446276312197317278090888072763383830569658165335863251395434125865984888347837803905437388541358550703703187998380601021869831258031909274035390306829267739461978879025665649215664895285575057514854547629255171038950259820442529976039072205091232090879935418919612567809049889324208191340858235890177207757833517101688348724477369284349980181741271934426409491259385941386729878093575617833023913926895582421235542266653104705452857088191208937817717703014669579269347355376465798862755152842792879268283339287324829674962374861883030573703779125061116430782162826986637491511799317407977245511974875616499314939637619418295112131363374519694082182614474480405953585698696240473308123846103945967028311583823546416405269188288200530531214174405259463735888485471809270552615383408830484244711287257039717486984220471323182160119692390801051987957382196321353605675313242669233889845442033597036907707876295945909457750686957137128324284045526281595983459811760616789214119482776571745551187658695428150694838959853592114445351044567862713126184639100986677264973875583767023929891156702674366215495607660120959890345996319962549170815084196401988059918331517963476244292960332482378557154509207573070305313583416692577373138081368356005686682301940169003197249174079703032481460753522777057682495542041712367133322387348307374465460308395897471652903228444500683724144163374893748341364104016616964947457605710537884463067921567484887763303612895133539361538224418897508735928914367405773521236055645144233227440271616440209759324046463518138006262150693838941139449770724778851154035880981983035581730428124954145572359517661805486213776689137438723479332199082731402102838654282576708471700827070050231128613022472071286719038291228736758500164103838206481372211047326239770485556225830194749642749532548375942505213004057103721526383565205598018237559789269226865934302761278194401513896894396801975208532873209105763199422411701690273267864346728556981752964341628196161235609205762233828553564667055808671511755880050312208696714236139444375833866661685528203955540327751765599533213956968424796771231614928672033756584326693162875442196284370784113303222010292932743989145472017613997421611547672349635901452577824597007051192542579408945062631535714213795687897852830941542878242963263574917948734904931879918975720995136777401364562787431815109844250256045516468825104854019207457833349412654447676993540168710232177078660543762088709737444692600112618806062921864816577607533437888677578775008756273837119331550548096509906527264443281530420544597754495614836852268748312177523188971003838654229759071183984736741743108767724654783952308815477671750725339113377340563694450404029768754786608024106293989315528195645408197354286083114658089187950651037921240925035952987642975760113181165312219826710998354777558716607343546242660673191622418793862715861144363603746878396989747390679438197089618024424632325026693960473556919975487463832613031867663451709995646879865808872248658664403191051786975503238757153747049767166768725522362526852544721239547110921401191877175642291318991139158427053124359589627443472950353162060452163290386556412945170662211519138585313895956668838788914757414363056211114941724081548418341243531831503675134411941127611460362681595680358298379947833741956005300785199733830418585098623057579890953929424499961896622789154667875880923500456779293659702784009509588370762744787700291138083344549151684196440508888436934147423296926723989074077551065383319282843385477099544778235290781449598826186103628208003112074372003975648271370830073302632154382421491020199188674105417700772272019006540138017032098360022333174565444376346982798076203152418915910525820112322608784142559265218902430530408310207534156110686156773992306122325451623892789624720060942553359900708989960364029530844814037832346213490361734806055636009950988804121381697614045957502335914403423221187160604723939670668466674038278613814291204262733431956084218868023758656647958416268071998149809305109091057288291307505153765952645743803318708784792353635227527749155406798995619206316507659457284727552898419198810388682887380443132220215123066086396835253165004280436497780380769498532420669478715107662269837615477282763868357375897833590371640610322714970195381495513309199491227982628684449179306722272983832482968261503368114675715740800807711687944636729866367947119697784296366392462071134840349817457268197967830936008069361685895521364907071079747174422911749864033193357077484270044927957670750778806213725261599737128689956230106180616545857911373786142382399485100529640703070787260488649355276987469620474848968238153851325210461723568710692254202201583843189313070447425347094283024486307207078309853096802973823943279045569768819456751665171096964734949664248880236498396231549695379159193464317075008191006646988456637098098644192485883946994358341237944758510286378623732924379117814597588073269233496511358794103222298180482562993697515083144790628560488463129630605328249105054308958032415073562291744078094521054612537931756200147617782090510747338215544044578129518202904956246343689154000320178485161797114457573917555386080492321331601189566792058732144776580512281617808230697658598440788043029763413539621281379279577081173209459318249318092287796217270439463973348172571065361451411355854556431286275505617285576755915949835087887377693785440030674463523511588435926909614083023862877280333691700368498241186064199653554531897393631023885308287418757104814819165566341156397248522267766096764359773303146830220676697059454108908310743095254565691162623700275999346846012048136565334596638500973793287352993604945382091997024400356321213036462049632490089426564510955775681807869628765473497632347568386397294041035635074204427863643512532268880387991791246583992276311008032253353248067598613158882855913875269614497344083539507190608006946034180526636078007127408462079256733930454625191259406984302492788425339466657003393037338392882303826256551491669496603486380393357280767575249149719970246619174495231930640373512999275067986212376939478950364799534066511318343554113056052265005092053439111781506919074585129029986236114111518140597533642927895577748521727172718447295204501350245136201279693095070524558782302897633777126473856894706115943900562802064657740086778485768837255474496642779787863660213615861924265925598770428118599698737576603768414407056804395396730691287983266059706688532212599894394105279183865145461419906700193385337103002007513471882309537853587902525206480738562665589777049678470704999219683909757511902477559693895196263294768626099190348303095175025980407880359395948168518022389720704299672071214586630674722495016903425593709364326747624454979648469007683878002252520340399372633025293507538447007821486181760147384855649174767043146512142660206699075812026891533736406807288110768270077737107771230706560045630769670006191168670143665988225518111418733509233368989546532928904721475852123836268240833061151115115842786134514924216967532017432710341274151847533097074675549307307475093509495151893463376925078336096062492300469488384474544262604779923135052218219090088470327227380613512030823171667964506055092707723813424894067573792483149876046629283070442890006700266996984213908708261298807829144233030227935461955923005508732317039457736051886075651607314493040201790056369672636876902179220652418192190031326721841163700985117262927764247908368867103902779836631747576218526864686769999589906918701996702858288885796075108427326628522459362757292949356394880901039616662743457111906999310582835612585861013316398954695203073518004153562901486802167776677404339493763349807788275346439367699339706124195479319208759579087123377580480105066095034253915514357432251542299922218897006531605226781738074928749339705518957476662191808541714590298118398138738133062195300073386931732320729443390034306360788819775752745641631332070906474045199415154346904434183170934986417796517232741124481091044622066330825692219597191780975361744686351202295209407625528302006651203281742877743062316543542738954821453833687724733584116717888947343459662068347141156128261935518968044535380543667295320774987379982331040796821248184944355510423229954972747244442445453813325837219834214026302727966623071649727641599790303522951301385455050048250543500113675843459653436717933165453053062405607218824327958660439000867025811857713182395399563946548524509483163786372104940446191501314995230427115699082571483248302250019720562699590863600818103877104610322826202174855891225228892126379035216577324091120057704364351449044769189779487908710290540378781300397564152618354736892681181908490167999726338136141876979662746581741221410195883314108281197834567762923330104819855000288981275164023070232990594743147313823115058736035201136260135302255492429574822815780672095238420770907074860794904735173648657051875392926070187379543717995641768957319226838847422156525472028456092992533372139360771814163551942576330716489036685140433219628923410466398976711344912916649159938441619124522757867022789147696373099811532537452234638375173061585505098715836870153114313887598001032831128912840664827857111329025516307731186686677789392464706398755567677850591782538950059658154924170220912675443120576293938203820981844674403865148933317391373618238181638831961671810827995479571924550144020779094512529468114457193821281269086656671000652865675401710224727720007135888658977627208767879447219197321502693852181038062035814340462983485536353390044751554284701509786001796316135350002772387602995519210561398106317380581307493004859088581537819602432928126702419001514539955437211993510041429496978956717475254825872847894003789234352531413382379762704931789466755965359302014887034632551578714909490890169549664436877270679827151863252320136988103531165484871256571811115104871238685437804403698158025596788762284845246898379992617232491840153274101806799953652672712203196434708373883882658197425710508114465587392963878437625646700959867387221617265844248783523187080478022493674498755728387799176992914429100213385481515180909589449866904484968020714810579306870373265937444694240026982836064424558312453578088677725022308909337533623695746986794700186947718362241958250629333336758792235947607682933533529769514803855568461262837525181914428610772776639001330248981289933450848611953995787504553415008141779402403406004201450609231735872575461689609146499723096285981872430304738082784775424917143350930016155399566456001347316351794554419904437395296123284801837565384067899304929812564566998229933461796843271796435041562665610114635380408841406669802537825590566208815998363961716330164842328078733063035324189350663499864516803825074803108826186595423849133241245002912546136385947706638576284824147570807508498889850213381493238037300413094740366204287305509279215656653586237151332034764728696941929767312587212879519112387429954471958547590277327694341238583192349241152224098908320235370764168275966467185906802055349831778958190689373783839323967645897632158084781242742512283294390564598424340762277974375169224841464940225896057341568365266918749468207720094885564069001863476342196795925535991235126863587628420784910636529477790674044371421505432918602782500379642629916920719560296001464685013784230817527893017811546363698429930866367385482372292038790645772886865166393041615423051177857750407543824044165659891678774574739798230735971243567905633857577411561860734615472183471185721160244571743320355446336607295414970567474205269173857350868698731986838302809743618358323459090751342656899940154976861618148725631880977281149774752675449816711801936287250872134208722729908792895776458838292239281082695629286275377058076938273579126275732464430810801180931054931482895513952524065682383795858143562120385085888402545169258047674158319229058189551375448478740840502775086015708697714859581418730921788541808268020924831474755316736155913710925503230040501297330354957811939972200850950608290586540905685960833320588861575568875666370663059170843311933694023161767680380906434880664593790869695377206791870523056452330469505194610678414111645843647717404481925476688671891096605592257110548468435935291121171938349982705609084227567780687328317726872986456739360176263014638486061438903877342154716712435116263712997393594467236587620108575869840381651108551532543960012828754283166864453113459822494708920291976103130989813568740946852646886555587977044804533272270011968359462231855123281727097373530433440538498602298301962421064223558886703504958926591208901150016222728240664980636213632505910892689469146944987546298789701684230306297786298552017190043655522218436429715521666232174301600251900679711555078065247653978371631139690023157010904091649671151985890142091531116781544424984631501271897468471918770354794769140606609113072750642448491072261270926783445378556724189978569660158616999713220369777572485180486703915826552713386425535584908170511738283104722500132575876764171316289581196983107366199570538465227754874757886472988764781174587556655278035388617958545027886616744171032985068921806365563190215482458111784840281888782490624658168667161778296043714667492888949690839729592252319520401919032013492210518041468330115196601675590680575255916639742192148057129961582658358693348956566043038252791601844682922736507749662947285611065306120820285223391427098362048419920663129934781449280051613624207970377896305079336344875221717244816990961656811480519865740960112703436879486724280321735782447063750093083093638113652994439913150209375461481454331044344336668400439773850074403029623195282957339165935904033161984894038809686805237229453421353774486601614862328204623393267204522793556783055543003363941262680616918843858398677895541001641852207021895895229182186129195428170570764289986274729926782958210864115608724884978402911637640528697320729808547052458752502774784550867542718142162229204085217382103399180820006838336105813656613018726040853893732569905273766250563726967028795279822562373815316528743832806299766415771199768866456663322441872621248550333071174459499614932203879026369164205481336926307542758838523800878115785761751966149727637281301507651570673769642304333024337457946089044212583102789160601142452604228857410170818237074205698257319260007715167543392449252282529795114420654968004172497245423573081925543688627940263358735050092253265095076309683289586277910197673858173787754080276457786399245814110020593801725177231373881969431613473858428965174270766693606027225277781828641994921381184147295123838407684039233759713147731744731430468212968565743105488459762300450559436261774106592653132971972564484380211425425132281385447166398569407659732645299267782845828481927864232432416470460267906500712403974991694568664620829963259211815630640488612212502515378328997854813004078920027602463997645286637349476701663089355805200401206040511873083587223640845775301156721129783084189947108842119856857454725498512180263991288513981494908971836782673229757053976525148053054944718557150013928642602553567066792350616527009786989963966242840215838242876999579406374087095471146411755900274304933851985410086881237326398877156721528158284115262889773812752527265992616876813630765816668436019447080013231494129058437581556530097442753849358392186776047733558291127191926409092830510643809539653972490639708983034523204775847808521797251405280391618798068382727593246496719400838442083777509351298552979937274759482136280715929061829272806379933642176252220949702475649929497828577575253646930427809099613879303840458838293093436739244529444581034485579858339702609248442174696460963776172134610794239311248646882503767971439221585922064770501210519991046457493832335273419695838072848148202375872261586990167457578777690232743810572724950363670240022560147681820953578359598226257243764101201097128708080558314567353799776328278482690090795275943893370213450219104347018464506832316825334317734110283871125795619026454777937545222434444306885188794170973363852692340407823794985356108655280721657224061137859665120902891455995689020476975920678330038278843548836066774381939384787408653648097298998726914658487654679596303858373997492501295451430408498946773903318420714234861288582717495060553117637247947688667784462698532264185072260343194706236752360300317170554650862014290181007706421112998577327142776740059679466774008907779482095999723408992134408473493366750111260939066479078220043310687269575371116243377323734902876711035690233587157689294119341868982869415004412903048796532825154817484256573874035996860999251790471509464015057045080222038260912389549296154359920075203298237902624307252495075081160661691764364852401622248260122904823930292081457424077407161969310440867369526720483325296387200113931851599360405177482811575221221388042574990114802865902504400427189272899962694892920477307467034734976679297341251234181333416594930109262013890903009461880224687862014430837391541310485098677375937206582904693090848849040182562853122790851705339457120638415682789834671015806617953969112003584418424649530769497621006059674041710895643037582354814510558034288302519959437876350077540174324008254186972880466531747217560997942130713567082662205710975369146040042647795522726199621784950649629260003975178101207392399095779532216425599245575632321434270562117415242012835492667531529955015880294664488231839304009188856220005697974305177810457232664569291451050179969958773598316298615651091131995872267542316689361391172920312924187214985785587879444576771823902835418535827034337849605669497271918104743620998563382482500384161553634162721181419336397254023835060681666704176961607189239464299102990853794140933354670613934332100406073145263311850751662067154801045352441852831070453599801973800965699161141778734120653538883271749154196817835091875190741238805165897054084753645419133031979677477231193398183952062733642993305035679068734161782305949745789070692713951173801887486172854696510976250595631886816108633829633629020928631995750358893735174572860381104583936229643011260520852519843340526654954174489779852065566084479936760708099260746408489334670483766750702328091849535969347766902843268474743516338783810245097751922340571074621450265920940879645574153807532331944476084324357668153679559818415341566126776150267475704307344431452209556077085748045679176224096412280223653813159288133900828823923694205510507951509287626512139975879092417622019103146634856497145968269734863276367224195329742854688320123364957014094153065252378624919542530182354150283836572851819206802918509972054044940316263910016044101768255282632843190981634883649183158119347356533114462368329106229001669644775825571142241555540542015737644937696146694507480109872073842164025748051191348415665571622972727044122937754927376312525370764537713340942234561101084147390176446571446308857162139903177437671164425374766715444866083442988930373738793958441398018735053753222811442874936307577354285953043450164232316866987147820888170936458205893641847170495448361509114486243514876594915298637023211138353474096699067885097427343105194286506948097560413267942934691133703580250283994798638569744899075726021166037523434539406046737297140957362308511399438230084971221107362150235559176964368425567481536774176741025639958496850647557600901419616208150896134598629236446953925519225127216279914303880297909282030713809506182717509920872962349812448326157023646143625740281555133427435374026856988802031416193386720795968750154468325853832814453857148419941440128161721330889463344528534973415351408421736846280729856316645476611991022245524764045149758671543012010109898700003354929446517559056028555586916097016297074933123540383184849557681906345805730903861385321968498932142194003079472349240971075504553404226573608972614793127658139422121344027056597480946856799852466213759017355597039889445975515778046891806210417179553956263274596378966675531788332318039956547529049048991905152029722604017708174984088609413707832746555539257641704030624517169496194519178088716378935430634330036427618708703747374649681530341118420943648618621401367855819550156970639271064469123301125926112196501919510319632311213626038787663884425224334383953176976811427592582497433950422373818766878681230483645589249522397674989439090069507776969581792013277780062214803736306972642505001987185037815357472692771567963295082253015948416257256750129212568002590579427495848035021981792449858608641142800083213345584180611379767044052857711431260334407224770040550568705613939676506981832276879751164641479653135181063989063757160219275540010533749160996356561249442625257359172227868177218661732906401780820264189694745877411450876319477155990494375037142075915225828450306290978890640710991639532278785397520729743314401062845248761697888870221463135414095777136046716381253251263168252568623848051615839831749337001710491291683317979314005345843640468206955049817851221961085035634454318150575251094343224737806908683504458070645804234824226654617305523129943851095833848842334065552153878663827219603839930025309581185246801140842758576052960959865788791813627641160576793998884288856577919970848248198749438418145653719866245682018180588337638676358832123914906778564511520855234766806541745674804234075289814671172962915510147840962771497093128656245465655231706840678657955484320731102041689442494977983437300465164458101127870988272755802108497246599652716748817420593822138783914399142119470679284536061789253424403812701722132433211663601449421189035483433446847979163375838948655622456483712894115857200259921942923701935673057413999430636871213137655384438634605758923127193012921989061930259463642946991055832398817378877824946267209270087892336280178974344638743675483750053736570536605976535121359443088493477562105209589841554807160102510038957987238866081491492950475387133551862856714487579612179576491259565059287102488954400348545033953663377434610181548472966785200074816084509928682500441062171717083324593278559455723421380957787449906686042502529414068741919851337621367765758947259993181125530701080771022540898221972438086962252628835057032333605577796028568839681669689952004990364932652168001291948260304351585813515151071076688093687081552607567390954892708757441478449177941308594212821101069325736228804769234266241087699991160390555800901497645240683148762751374784449076118874926731724547665428361714110967037739596934184372348324951561423082283445567912202401674934979894531632204907564543950630977606641129606046025091555942704178900608894528865594045672223030539955443781064036533521471502566288621474663791657332203586054095477329404640614757000579080515774385187986295849092691599434358372945914334455848931658368873096370866825526262556220424800259534263565502443305686282519625099445366176512493356524917523441433620431388526419812292328434084870531081114535483046469106711691214418423496743260605062895004573228811846199646092180577585623043674554372257116276818870269154838875913026721334268767030409003962627081761142036227868252114829421062437586593169334155005091881978729436178339942119376586544949039245109916004149729681164569656937935146608148325808490331008662375975825389652842413741917895916303929347864004522284010372485651625777462076195625885445694385643450541931571781439458776272783194186434833014771838426795913255060513648105361206252052248297973491932816337415563719979941516218025161339950004195602627868667900429885457404011577572474333831753166929027778508972196225077509383035782107462463549604787345103422066199906653993438607996279276313877958115044957329090245247558835094701565705241999724471883694114250343026392815534879142339634539198823141727507510908468593331276645304761117719073707773279163336496132750541806605015717428132905664608570840066229503279374610111390582430883591178888572327974755644541183977188538360659432316588847000752123153682287512895237075766499242669126216249706990868141689304136376605564274411682419638812177711061311751340357292107079349059428357400585151292434340991352288986877530909648442948097632998558996921630596004065553123898076200487612425855435545731797715133926682219853665853856204363024110278981829053848958737219876119408244384179931510534014763725908138979252257145543856530474734711024269498667438853628341928054571494892608504589105495983628213607716531310954697179700147079315685321061850191187987251126748045445085901751237420734789958467596792895207971921032335889114338974950908289169150221810124724727086954413270134091412598076662122419497550994441807066168827029497973144806659124067609448943230229294073820780101083535392466633600310664667789114703956300238368030460668593418270278814983781182928355822901713473861541704031508867860072117608728019648618139418615875618328028837361622935314512154146188870975085366052571159915783451718484940684696885554499603239111160183519535908864557378438861291946583698336596344615885121529924200314719004971511264335339877230224331074996495521692595213601139263518877084258666240226287564575103896277010210094164959155632089623106734784508750908968415244391621021139874475422385040804153933916362647273805301886599152837685338409415427563428535632057360348973670428954970332378141307100716511265970322040484300246875345920670093169050225570325953792788644637121486813316998300830168841558065409350666214742146101408831131740793116198445859099190758894243408673083110929431138884697569447549786252545764892055278602447976152602460706046785134965700072151505718009127535798320794217554437005054409210189884099499069614265347332718237458137780758987663999733642608522224727808664553898885688939140249023758334144361661394940755767037806834585953397902400737835615589485580057564718699889874685643989466593731084227318291305758020587263274552060930091347115264066609339305526965425785859606729850702986955159217154505192001929380412136799920260043780950973833211962772269406027508297474488595399865833390165222183300650771289033067021197164895308673558212220964928098538342431241313915748606700910226218354055910615364599348411693964931091829583010136417267960184135105887978771106385328826548165600172528420892406891312772126342209965871341114806657715336721950690512435019867642686308644269754956570429036529435159968782406912866050883064190064114167555305730507129826068813317630583320604219682401631884934685185507724839904677652017037507799646814085333464514284119181887193611296067466055057600858795907063720487527612609778358047509304626132868472998187322517433990813475611204827208226978512382920086592762195291499975433008894541559557640575540509559358012363525010057568725339926817564487138725137319577227849983857102985414610822859266388604680435906226573313491183113266613627103508748437303775575093349050874205218355162032971593649069472635248280745839190331568999889343374957149306264764980385323638674286519610901166788240682721081548059767786488061820610676340633200793980541897129883968582983131234641449235917729086400937720971025819799751936643755509882015701153105347833245320085681882460329657064137499515434385280066085703755475050989735458212705827997462243247309907175599200696060793720107518016087782464701358811118699685452885029995836358281202206238239202983240931931207966179387251505186766572686815324989111346800053424166266886319479792403890888321634735495089931722386801479253795220009897002304644197762083149284899996976247244683166236777839134777544553005394719024857084241561440873568525557781531865624604956685159388405829836530703478379024351826464844672724583942264937674250708926659722436963567746038565206482746576847104493257918956821974466653078382636129819695828497499432940636628834361695243640252675397829453729040344220544562667584566561003722185785105122911058907008224427546286989344381757920459038902746059469752421122133936929009890058845230956077000055722716137594856098157884474318824061854824936580128384992668514423187040731250251184479151112439141491104492900450140285358290991572223906100390323972689197377318449788772234823411202107876999379763618653385916278625222105305018053855123443165864729725514698607211585721094601630604994759505066322239616679536795077682594259250157864457027983482734312766667034799807201159357602070460648086062514857800780406918486410131358688506450459761778401792956242236706402163685385237452301612357899328498046311973223759216671550971311058555348190966395037124066809149481722698020527624965978488801103717309129930682052908583483427260262440359518385077120642068857646030967772119615381138532307005251387624999700115676375945029867402188384055615251020175088297385109220461876645992737428157904074507455847032727397546163170467509068811203449607734815767562521455563496792888238969349404062384437769972227235617497722502001867397751093143574960754570060551588161183824838819499301668284555030621741647575741172213006954036473850565850281595495379935971002985767393382019967841811511699577730026041815140149236150819507082327231910056535862753229845667428889712132433848208890704323410690710305877321337249996856050208460151044235834659889772245778033452440460127782715045964217897867183800326726878967098397504527149224655296272274120380011494604078844264672371504440858509731960803054790573781277748608326140352739740795850673640748591887830894338204396436240162855139682480698815337446714771260565302804904577034589652221457839395709597048582959216208117431900021849470925587391067836262464868318447510623849366585010166932486663992447065307447865060952984716204083264379483063468102875546907044276090463768096931608684657410326794356185858227424987549601893098059469629856422881872779725119500188789973595737975338797578815336433717896135803923062904627666316772497537217401157066944547962277812174212387831509006812323434758764673072059172292656138734934685947872645516220884986805045008379513716734761306970000324937745277501090304765335334232515285722982111858740986720437350405629161654260669836944834558250985682016852014681797473385179598524814734787928375589344130216625631000177717465695157252951524643215835605338572216566702826525749840553426656963234881743835146180537415310396418960515843733789220796126059754406016135095884302183192611847221696838295596130573414668561751269027304235247599791465387260612313659395027620345507763386962029581990525929250703085317154946671574843728144460440884264526817414156705352889324926308762737513801184071277722723400152207271720915188135204204861518586465657134412712215634989203779859531431977411108072332952784438901647730483701697423963294529384937304032122423222399388943819706991111435770610232190997573101400550374200450683100961314940237198558123887058188135304517526875019591466273987436162566507424413531059903670722305817883650447872132611170817706409325634590386813048007730729883363793251332669548169471677384056173659687443249703537025416092208104718653337373236077759475626985413305352651226219234775222603156963802695260737183783275845585510459599118705181612414501648134912472684070349492973999308940476621229459167424719963713445803450782583368308995816303610125976016728708291882970770748378068004171818152275684793743933222477494387292699123418649663305023897720193643406744034370849883968015269136907193632431049338574198532119354296840108269443974347394124893910907619904591940738554517525879933036469940090287172013725592363243481156092251009578522068237348599819482113435714303000027167191694867870013967321472785924668399462563242410657388015389018381109915885656521832523348073451957726265227769235000356315929562994158801610979834436303442131332822928013971921413057868976029536583767099358812921365815350609095390970735613362483801359457200873342458631549253687160008005241537929339194359322830508004121820192462961085539031065319373227557573121080532161691140474786228623226393906940144603790235369275999038967069335827329719756846901138455499084233767206503179825660038793913439958639649958915222791301376157507896406747021205526977989328913330497402863236567107572771050524507925176527145426841830681520525832028067981591817440077652904818917538222235326577534610601649369050390174919757108411680165116768027347770381844844641710977684927164042208399427826351213060753203230001345466233158555140298842038154108308341739291340097212902902000847631062529083386021981292693729832506249754889460712286920182286580452188529748418425954938057513731446688787523861037848685964259120428532704761084734083205101085959434443116774633536019660232586363161715562393913340388591653357617294624728853700130029456939682398744107962279231688232792018241943883058890212009240771073373658236255753611120629066870243032849974510357617499968155304434608234580969514237617013935633768829636425684770597937028991740296800241416312093660429402128699685057116059095842629123827175238070108306899212344503042586148090627189334386547935147409625050953457437196447832774878377686535583434053157043259822475413654881802074954664787215720049122598686454764125344806882732511924394824080051538045919850964601879551529682100251475625646736038225030122657954246907852652115302344445079149690885227946737680134652245392299169675589119226793537630563730964172382145133341791754089160851931016421243105751670198114132645630918031452729818011858557999754285436846012654596935916966502682578171360895457951894094899283420723919573669743502802372214734907769193606086014116955328679384198822570919074504678039597087766732782095554350258872835996667669707370138419219020658548215425490704648436870124640228806051249447812777258221740561643916628379058550677963228637529605358573469731159125416093370513781477722603861480503264896024481670857961281625453356454694834565588766292655464413758919629943894942861938313144551904950508384542620687825243848554281556123433539212277121868951890774052392072741524183345083761807622561143474545809923752793484587804155274273898670871817194674540346632418837245146130086535637405629627057421086977308269562158481785252648435143337471846565579090814711172363286056436619646563127783719697114912051563608767288793219043879323936206766111140870500753768467714753583982724010201388883251884428242265056738711439430740364743024068360520430998010096730642778266179859732566875954587438994191096705779224967798468552450808554896629568021451081509240028153410074606257733121470937135613710022977388500005865536043907695526168721491062513071761272005446276502969283151824547119483270185684408133491273684519371219873098658549131764134258011376413341655775266792092181629219360355662247248414047106106107054249368054198382737184088892547283966131355112417023746018986497440923210092567083707745701233973635455615383322395961225340110457111245074403973281986089751122631461841753354364786242923212553961506880088974990927559651114503788783385376682752406295139178284692507685662559291510115914623840901033182760703293644876932187695264508852833544902257697443227365809967029505172111100898336860170772722276694672722450786053716993710591819951866586139597626219517069984621945761316013385318098622067130577248782945414651824304241658180748906026378684256060272756470210990290283036427347662214644068676927406171934436703136929818183462806361704725867624194403492347750334539332839996354632955716844361956945577553612154989473417736742950313625274217755329407944649827012449103726929596007270315742809721872817297991860224192743969836094035860371596520750661021950991762634966490491758136729547856179511526688300363623064146801441858280386071240568703032197129171086496434055682851615630230410031418042861570972217460693616899908392699423304813718187861429330245008071268460415810004159454604544052584463292994820541717153067824103937680609154112992113106891657154169085416196109874326072895236767852566861455736829419302828291045689008108261880172188576888320965642415475895209478340591078397242350547301478417070444698613067371803649269410455016740094030945784303648946269149952371194571659298555475287309528994106967927431846056670584399306137112064903001150991965921719949574215218451719706104160506739508971573494026311992443202185422478161236500404260397965045962854378863090595175000616876297646541312079823015206315014554690329407395064088766140397839820047929178637092032289450547226282932902669197454797231275658408275000107450713898208000163127640070470308595307445805240819772931439727311075685675235109671433001605772259808350317827292181718757945170877091192809159736950223196312316437178275382461623658952133721318495844648851365765409795857914384729573981080868136352242763507125317621845268032844143535365275910426509419537533714994937387453991298476747143023579730042675916409644701340922427751880380009934976056474843386656411431061494488210805881254150751238033296632099249040385363941799495602300578135724646705406877909058941177232933916813857243507954290550958995799115053511109552650997107876261445309386938032976749619457802352735167359034053297941789150351024907945620253451936176210552696868801278496094920450601553541711782551106703282235057188354755123774844147240795218665238179783044358941038892305980086857267161785607576656243567527998983712181250386703514320140232608449196153382258176817326182672928927142722890080746798845347113908147181891450814710768053463061424622665828322048028135176215015881729187486307246893151330181320840489152754855556160920417583722640290110715065833749837811548618181985912766427369985437117211294501089089050978130859308690626007748075509912821779566187097597725384869213614046049667670391826611430483269516058999214264488974968517329277833075526861777427324130643707807227293360919036216528839265902592584426973039009304351263096696679547758805509848102907453259022540305306493306672859823452206555039436186085332783607073873051424726074701597152710839034808474541922238443452681905384710679401434777451589535299813483190487580262459635773317652375286033515392818248264502435759541731572891564628107738194351266112455449143139401595820440077319572107450075150815629950164197056097091144892432630652547338603908777335780483839997893735165785617981159375649507954462806128159914058321583463918722133490466870933855970217402319908535625582853316904954726267600861660389413416838503833004512622669863021495827045661466106954732014126560184198233327212843976923991180047571028737271857671324319074063405106388591968587298789573732188513307012525172805595344324291356970566174034842611253682955161504156921928672396146287680949392882881093021247041283957602040358753088716323814268106582744423430065309838719491990265729572707708147151672296525440081858730921887825795297734780763077804150416913177011688565611009616979220396199333151128964557439090663636177782091159641377219247524118234182807860859628099925410150773267349530938164487738193638012466397521488834996617072572467345977697699408191106586006416250058464644581092080658447376625980421816279433471709979347068479391372618656138339943329056610370637741980428884982262315511377167141014938873410596350775939480870165838205095542848800623023130465936092171041755042835567666549685008058614090559664891039919510931807939802203171933687725185137904745190231786586710537070031947322022682612187243295114286225279635584031987159230386541532662892262809535346991626693538778305372424627116774564353491326738608118607530128889289150281774832863860350353182826597287950486242930548159705245529823542224546411961652613579143178876914304009866298541104943346529864059524479174189048831238306080024850477993741101859686941468033610640050748814460338073806532542413379060692709000842362768199273268841896592941530971865014895954686231985402620100653684723001157090170128360942360411824055666497763590212506311475864859994204773701913885622696830967409697071537076308908274660847014601450353676976030138160884191759725725760790016958679305996455642183677468578748193873733806523027693058378257745563577742922588999803638369782640057809779873479029963026156873160078802042086209907831181671130431859549964860406009777231816675399635751585578627408066281181217589653327574459750646273497632757207485946180653532989160389429653459703301261680777121894236886451523848022953361729644893172168081162464096565646581351451471457596327868715756030328396503119714720148790660324302519437229154076119941763067154175338785243635023346680819041704308461471021628886557024984294533113257497656590950172218176534393502196039893950918654887791370346072843150861692343758463022835454561976149090535419353573391001663511819852712173734873342412980603853158669085644498203305300446271316260525842508228975126465985759689757560797718035298057678199496127924872011310148521070616341065873831240537531227468281209271939919476162170105225096041463830374785878878926438914484370527469874994153822637945113259846645217802009351844528948693587903332189042882012214879530394909159860734909371808110858013611901701729613107003972918515467539767828091935584636683209353129518893452150508618856797522603194947692005664141195381129976210773640613011017727896302701887515089916804961637832360978482882669433395499161826685104592899239144640913399385736769865127689844756227932217010928437651485474067735615483107795687592036499049689755912366124593093766074291392258825555816470153249782343838868709874629104851425950577230752779504559143334583949479015607808121167527938412294354851149577222790956486866564302128221356055766703498452872002165524629935519666943035735618678556860735655586242831595115919732314911711321853393413262781998464518302052257840556069666764389695982339087779502421415789582626358230039929162436930690194587834507105921545541334061288326580141963673870531586840183965137293927744097047871292087036583369399762103085816951413745348157906192050803065754297187709100599547528637161078030488164193128296797142713835025485516749191072140355853770199923911498058341052924394305909736399238775330924197365419301472541967571976124272085888962690138804112412437108438388625146791862838374174184081773702276457102007265794493666420741564050140219367153408041709915352669158041982683356565651208165000888040928154031716153719872122527719015576908675912692192676153762916444748410653017898868534794349106154309026912387696256718163556752517574718419605752986196794501487226200266187753813309128185815218680123588581026764228714285404439369063843347105787114864496636799944320906620822371376290548566572355112472279727113984581331920058810973745580035580721873459628086387379283226353869201015052217768579571476735818358552857362356417383026001036070631711601415789190769804929201190809955709470302257152557929853616631655190863738600423774679881474805125670893961341954135898904952085856515350674245568558535267184405227010609147979390682248906957808476071252824634737623469769728108198828956684776707936998337679206691367726666765932667819897209480889766804577011227499438276008213591599002134095815890600477938486851612908888081125267247607540465412773753208017017514848468049414719404331997134274445850634882444491024654017322202090129311573176251174856102384005049348918244796838415385254727299703427164046181867855004492006441178464054831291365646140167484410631964397199694139246138856517690656345030147105534212943818973595142986826801993692412956369531819380082861236004703158922382379137962615892639326648503470050692889626573869778539750720207313151527377929557502297628938446128386678449779140342906888866619972472477461926019572634242157832288661083150108400265345290247899796246557834470309979576016164182909368479998104219683722798475668650232679900341803184960098016628027918482262174269721220477471316655380343540194217498447632833777884748670486307808901046986577214455191585716736542603791533561627436977414973665476761889514898194685503816428979517434174994521608594025241320067818802685246000193419586643692343338012624141568320235980540663926551769158169610388581564628191955470626264203407672736550157093802821016921008991730680438718865353018359129398793345657312472953789971771953494754783112693922644935637145707663105722085443970618247358039962580049537543818712465766802862276504131683697727261764362079359585232207042274729368308553759483961409317392015554751030160150806612088343762575309475730890919019086290872466754720564243336680656831485555211540846865651988111563542533932272711740394407051646743405111931791199552780783471545307801212216259526977044043442325606358534796364340811017332984479708381029786860311788842283587035293662569922141964011378471476618594061507766947474732408496961932097131921249007491705041286068621722623832932186186444426849933918360854035620929754327368824652542597524008517393574111991185139435753613457433307438587506512642905791130639555886427956339605720086763123897916626934986554252925342212522047246275089044458076343832649714523531130414208972422460539044789797640966646308015815776031678617931175789022477758668077498439792972446140737353781667097631360602253104896053522769454843623250988716590614996949564783987498738066845923081750438617851049847708349937652972035551337269361506904322406372975867418393950344631002980313650448159219801286874392640475435817369063021145578036296572407953718152792410821672805281442971145140802591329625575851257428583821410221479937498052487630923316607675836189393238659402054669625510315030580701784838617869182469661960332436136104127106449686548209091456140459608379129738065260217998619454683688070055197242313702414452187595389280536508892464155883684703286948209096112652960866532209141366163167672377591099241386678759558447895064719409519667681482864922707532008339751613548258441744781562761646911031550984820563070114370558713309595858052047058869815446592839594819280663885795380672244749846733795988881530616216632624162177001214990869328261956453474627051678972516064941393942746944938301262825014920085960961373574822772551661477330550379622590146247582773806475918491185925251261310456788542901409735816793329297014741512404292298737554580716341050056000313335192076737120066693972134073001103840536926329236522378101862079442910046991751627292881757220294293698438762544957803994061046794987495126083729198283116436958664224017294015665785529226792567741009030136971213609500675318512440761420138461770408535002701611626058685539220074635104861170972348662527420377184069005681990144830908026627895112432020597546665926762553399703657079048927112052478282224731344951138633603804911433264902717380406548954182359609931544374439555401580335108497115745516975793325288929417545713087036966838922085008738958823044133162679083667457119402015225537241704995366040487314413921884341338391959210819778456212554591134339224971575646028179919912669327014847609185644497265868958719501793440954173035218816150801191226158084513756554149830936674656752048490256726969168627899377312000098345183163841967291391670707477854407451388080687885911935559866740511345132555917278134008906746936531172559358790885611651338329141711754732317165083474050978150423407787052829528982816067234650091952568713615843468362002700818399242119749585703036024104337574712240112933720519750331820791735234696378160826720065027757654417826826783767380884848609223357192395946617895501328981801929985906962646058710915803774946841683076978760011994794438208574103323607809101888118604802692383880541338557829716874651792608044102860929062465267553324858522788584992423761306622226939419776922987713753825006697399394103223252458610458266843419430896425341522368244486279504269002875541379529509021125282616559836264458576335380708871554466644198585461244075241718375758200235380241835573425249104325622991127709582262800524543260929089064463165686239465814880593041936598763597939575402530519616555080870664590548274456044515754274063135485709066835672880841211232100505597550364554798824760871992480283152961004031033715229122537960822805901539685825325738572596049134652965495888363268755489090790393781321274691752357464649896729044184776888969061625447207404136530007561265413924564898780716593297967540928089218572413005431308134990672815035999100299462154838888800095902800256076413268679866947400123569236658247902526278726639426293047196889076915821175970744348838408853072984021921242686618405373779503165726666113955888534716134140955682458679383775770047846183494653997449537752749014256010190375995574303857200332585482783330446157622917775029193540840026417280088926443280666873635145072113035654872800301126694716603714414478384064877253292815417248172673402979510600538343634111011842424306593375084663163558638243464967204796250463734783962733906677366378531193352056475819218717762506516655793176612693601846268127236803311708634333547000926929931237759801149626836273192736374628235557907721005688267962118595471957005646010605366151885783598006611958746583957383399865876912132439303345727278710844614882614561523253337909960745914805463404389977675573486950061220398433809995662789318281144222526540665511286354938501298172966950050751818355489815146526670290275398586349603399186959768933504334079953180641907205429885791461332460900257596496917832976355961623197915078953326504057584461667026257826322850750654905832991223506257068371105863691927924408073801451728241889545095846243276115023680858127808289754327281327349224003526772002714054159001688389228098742829679373755661194818610264280706252938441971255723530479423597646702728354602888515083005004513245455412492190882982767507368789568370375261850719973911362095034950509936867866939665556427315487931430580899080352864158965877208024115478196464300718693306123381158792149547522912680781817857031344635757165892048586606696214244006496512919897735718801667989448742401883290476975828249289291124173317870957295430968097364315473360877515082540478331530378176308022890612716326476002058201129529699561156628673792556305825102681612641901916217668314186904297846708301919953315256528547893506298033291481988094512558797531525225283075019843196260028186229688810862119218205630181928669984690644509018481585016021832495994800403813355823803308597884008409401327888415898481881369850499559283654068834627271112154455165879383430834284190565844770305901278185817321564945881283667495513149009975952573457474157727386008638168775840417126098311281200942869667120735141637664648074192323351889506528874009108375509656762195606580876470587850219192928507848216366578750882750920948888942372677686037274645998185908657612955775074984239287693458226765813688560408026097188607944026849764967872317292898954236058780418574121959225609504940713531374860525811924382769603629964953817588387504227777812973861890737488238017760478113126057658730013475340872228439964342351400686383396386719091131145301298623122997400403953954808016379967331860887580575302621048670766281133545175418003325070338494446919332453115107326273450512234476613670083108978075997023394458062651377643517588289170572802694876156590104662020156097889863227391869414952228673396293864869063487066044020870531818306431427458612566078143876551332428732910827180217165237298559859124455892361137801814419161636705019201066356478617165316840038585060607383097933354900079721520731129115085909036401538553845690729865165022968616623480549006425302340275995695361737513641017292927629250986455722811062361880326237704718371475084157718133090255892063770925226617423072764035413559292651495954778173213416018268626655878763615673285448038414446499003509887939457367895698880812147927778612142856289647955362151164581010906835218060930862947481591646166824909755210608643416571426068845327364146808875649871388390699352598451239112118265975134897511295041644929413799930569087396784289174400650000285885639729820760338930206647366123958601253357633217474254275031083390120750909823234718512494658270431400660862074965607826740015446454346529619092541344624510537888933382201335687891694093083803565034174777782247856238509033746732187127423712597080768268748672146039296082294581939699484993821477784589481770626766252987168672838242606276436630629531130224214900867820955573478060469560186090758632938950950250588847792910086456380281061814678689265498264837673058624930677657644534664038420992008903179455544453965730043799528527704444779631911115252644566392331648780879378291669161775197279331522250895864917908309691108933865153187515557790342832534671325461105887142236711652937390883900253953586188926378155588401692811570872691509016926033544367760901104984377066269023261707714284983674320493720113998777179680871747255852023975670605719613978610973365196320955704190090473597322482742517930440308253283355396421122820719358452381648876158979539013477576280724680520116096308168052308213401624607523890149353809799643264052895389940474493905352679687457516793474185572609827862227721131263402210233141407898715591207057105405993920395651514135519929126252324726991619729525160007566190411209711183606642241870871421947822038521625766233683327503524162480138434424035015695936694954729798340374489443719732727051829993555229513011576017929727611803450109524212714754937201993460974275954055657587443495129845288151038873370337685699020552027095214965732374047715695003352165661932956321466502200791353168817260552101580182458978483752900191769425442154067916450755049262766327701718605002635063861479874940792102351596920248447188485196426371552384192664458874579065624912190283464176873829257010253925072710593980856570538714802942261125319077146955364439839065709900676280989523464642209369776104912745909157894404221839805879474184929299183751453554109885685027095306062302485487091671607057846543699178272540557439286759133860127922421177951592791312632888039363286048422406194103079921531058417847115252698848278890898139246211766293662884743421402488353961654614918056036708593350921087241928896973375305147156631715574377614152491755889444847764548836137504269477304106980554078097965714713936003263652110546482772194794301740477026441584061969915528585915031954451307125173649324200613780490670294634675339082400746829890299007678635371057805251158982234243045418615752259757935913146349932626067268127709668329470027742637433663420140454461750006883708926931462177550971161219740035397679891500062723698101592694667528783539531511731811408505500643714074862344933541787054009772697938397298343848673826819992118432933319613777367860506823659185488521844853117774484964860310553041641058044047548547073087913139681336247816220761665303864978835068138617804156635498292103993188235010307450890665712346005755324256127949799620481347669219872734980219107016490346584753390777316246100465525988104974438049445438928001167741193391008537875726259927754238821991718376375786852787044154353653816309384845704280492420392126729755943990583864780880077887237566874289474873904007356142714267974438333943872196710457028426320361464558518759167636477851571450652355381554098770401943560588625866381315154042057978709975108485494186909054745558454979587587311798211887999789381919264755424327694413580123304577244326274725159508264475343065714001546151372855795181921084479447943010351654903801511386674466918914602253852702569581064818835836115234112827008526565381652349430618280777937376054271767388899145196075174986695067436377187934528441148993608758428350054804045213081606921477256849984712844607985680366721489418965634059501868467032977382433979087164372510662514225510691655207861200707835216124754980435415714290639682112544082152834258326687181582229673014643126974262383957128464901655481014584798901852128628807542536347846642106067859010622517532370288311289083901528265830229216542711678646874902246560217861542714840520303325208693332653687697626774909473223363163129313718457750715874220655896304488164511021579503301643810085645953239136775732873348092660345626867264732733571525547010663382939730389002561256757944650272102554245676527316877814298158979973037798696150197897688978000320811608394804931223297145298916852196455099210453579497340860998467766802210024947823030149470408880290529103860648365521002859630058621967784191061586179701138071286772323523086929355661003051439351734893561173579514097156516088898766959811256264256722927416649145463081734979219993899349005588113657328618264721226211772532102095063661716189164651603329313544233703588428748631096341035762182528325315989402169947374191637628157721852478812138146743521324576135632665167985614657748589319153313651010846738772597794493923858078266563807817833264855614184925184838084057693144857352982490336256526979460025005588800479756544495748207923590995695824300225902347489645628805243249048083575040132602191520717336446567820670152514879403775146640999821100540236720343561830114187290143182245284407467741520778954331212997592410512378058660044249663991461399171872028199042097705935864705925332328998731347615386054932142888148781560593397038188683885877661575317817681845379240100250711478498830058830068843752377199655459109656972073389346207410189404062668263634584346674236481074250358660445589463960209539240927189994516012843529072460290865596870867855823592565722356062246449770910880223185703498035271328141452677254843038868507569495551910178138072371069131544595692431707572747615351854670004512850240674284742928194368783187507850969595968817172105142063347084282141429623713911202425783891258281672906987294686237901309405227044081419692016945114372358149165883844423224526046264895905601749651929166534398239424152876552188304884215617772745477460773371205097304293814902996220097268754798693526195448821363699603808859408658890962022789341300734154297894966644418314963841388573043814244156438018853368912781556903402298543113993464650894428462013605919609353305513702675622664606123704868937989569134231338923162783884834646818756770176314363795610360013920785362914978958912501416041261956106266482983873940097330136124365355429138922393747432365694001361725599432541744978645140887330510556805077452308709277508363189376965623327477207328781571791163583188998534268573870479012822119054458028173250388097154382169772354339550650824401930701411303544064629926275650886383330322302916827313050317233430442356687888500625972734270468577162467764738865335968239048318075102266666293860650044265555467656865986921360917247005404756818230576680647044174516986513964903747357281035614933878518916296404837941193574957398201706315168284922047077943879073933651693561306396988388356599017297531933270174361953618020569266864027534836460709259688720430141792449061582418176990911453416032863106674573248191318572876289916837667157921825552968374176900328509520928050768019865679452350939922364168610205219083152509407723190808397442120078271454412460275078660383602053859151186465984316609716595956107950990118547951716786479039434189705679310112375121519982813743073641186833387397208016878548561279520849523077909094661229578934025535974772609611048855928564925555771441705745139002150080660705132126361449482584274318505542633025649861003853864837081587247879913860366291950159207031069551195967889942472567930247631612195778655321692015987996325083074647009454808764214520067360476261885990044742401716927579825067087118248666554682220911005723422015626848625686674947304442789995862495152591619332566207736572850508353921014275595629924609742485722892201880044735887459327280297250479719057610572020112592755981541388198815925295589889288000985328572486558803113165232559836685475089046198265447539550416226929875357369344501526663104979983438380713534798441822200001163797003431220106878151465480623590677135601160998302965085602807831418582937322163844873450694966711985696374721911379518152386958396377045535630664796665136133964942627124074313153542021640758993883310060162767351493413398366964176567146597519278364892786793138873602655803875904367455842017498665797852616315496407335471654919923610862601034483933752453634243128051914404776347489218281098684587236076359791463024855863234471987290820552002984027856116353885325961163407078227824483660198695426784449362051351316128841657632905749707989262399314945426709308616175246941777795794430728193362768283605806703954733233947664289246318942663192667864703438556252034582671142240492484712017705093113881059220287429356161599896954440977253378198211577551622224587962653278983915030576079022173133379069685249144558073077836402786764376722310164268631724089701036898231749771426380947824854354219559278091037367535259572116272748921222611525529768329760576621742316768627578313569255269366402834431330972629900705489330721621812735637529353585992035234306079898879816882365936348588233089432838475752596526250550771747875922062634926290637635039521633263268411685944977341016608364327630581460670956017772994299070653653657292893719941513693083415562731348300328769429664595761864277886782801368566336063277313705735960534200494974857416253924679579563611522146391350342004219386928979316839114264340196382226512113129415978083462607299536061202440765912827088474183015219639645453567279566497009077431618355918640654637438548367352474520885654418203589213599902902088420332988099292754928468183838543438337535553850785127154140402176593805192286273347569667021456562862327644784235934208679793688801489714716655710863496261380543104680597083375113094762056017257709818651459115861628669120893996723635102224391195484652604779638582396622229639559832711964235855895354443278707288518759478345188859447987471489456337762219892342963637087305235803822228389824703450392414004229874275803169881612750631225890870532653195415454079045356363014944457854801394206404505851588435394904121350972828998657876290389766321463343825545435416758641685658561380697871422829049288845973695917506574370298085700326336497429719921376390313969050157684017401100129953502549651299768746976491917594841720569910102381869558849932513079400607243677177859803000833302405919843451829669459547104095728473404706239829449622786195029772514151224642136302510546936055795617954564716185076994829236213294247260285902256718775717218473560257036259132915890318655930284099496138911626619072773194915677505903059227768630322128258475019112730610056833782962700205450136376490561118496558227121241321515631125226933981610435782739560174140922858821677022370016060436975651348829958398234957129329469779792625555035991181849751882026158457655894062837457729813773652902103494236631964983568497690063751746529440045560172409039756574693531214112928573504467509539284201446607658250720933118633071281511193431315628968336214590138637303367758409152480625805571645178235306223472898094777078926427781217909645046723576049798845442363806004368253628420675812024043701438655824818692981671682559448014573131928367145777331722055188340754714138814026914177195944540281072832857366963997390191316518661419781165293067719260343854092918242743838167809797526159175709443624074001730187663361645166776930363655614298010253097731137714935598599815020978841596060265173992676982498643052968866877509273470625294613226366269692941158380199703073824534335210815904082323707444023318632712096771346598317328584916234431937793188591458301197654958906224197896130581313027368375115627787834388646772495021452967441059275436044124580966306083275098080153737660225907754565246717369533810609790289989895056259482371280374674012180706909494883032747176322084675887855078497885907145819673299778903325558228570951631720282219849414966235222285149974861773722652659917953152799406822225220764693326799993630892390618941381831758186214714906689158114822419113738123401078435687903517060367178260321072124916303268070563591927901705442509195358553252372265405643506514511401352268315892873589851738022743916797040075994716873258527575904095834375778875670585683634516690065993415689159928124298843455152964754568923814242035198385663050004846820955701923021585272270428680328185854744719829603791551573876922548782959187115153714286065687001957144698611152282216763006286265842054193875277955157029508713796286103377353055652872235265040818997292499748135441016829189379742015516330327075722838884169319702251075731767128543137600255959424599680639394201132491082504323555689123947642683342861152621308378048250344550401393817401889935168445697600098565804174471442394391094452756555749558844240392665767048782588573211636042526415664710334033952607483599963216829716862710335510802510803070928281568336004812365897377617816405459978642941349328200911466747420575731931256971121070780491523597950719836493507534322792062952696600615397966771840749984114654701459705229131879642763093524891815863255329339329425987978053188605813750683389700117171526341311328073310896751373525674001824442907836049604967864891758129846102845859527918087704509789981958677529638872317868455646714438212849873722415161464094742774614152157993186838029743488810856559693215163687722014611892998966080492200697882320055709123068244287760716591870085558859078728413908787376049049254225001227367594806138903588606573386263939382395111993821078146972997870148790215145177682372095593887178372951204745275561509242168083717535140115420096797491686080302515681676833233653405370067007936947443636420226316493249495926083863705497864741391065790510530793902984303629883843662378224498263008208278483020741974117564755418243456620139598413013798808249779487566568527595618990932171156754015633416396067613601196725966233199747171625867387721559763505832772129344175679197332388867260491748256177555949727341582275722589918439888482959331012211304024285807712458390155548826301157503126880117232336792026559547354204303286897741196684527369226138632443625304282685086717005942468993830862240308341772407877256853417521556773837774049375862063962489677188299002147420470165700469954070911757658484107956132484982704611221265932544884354363110591695863889778576251383717401288130858127476937335744931800897713589180046085430539827429390617567090201625445999698702875467946288876422022441129042425886835809700781216785233009419823826803092749105732259792943055151250858017868022190904754578697376955051212606795624931528919611221030510794075995032302672125717753699134466004906177296318888181812680068820018466688001147844795844247084146427120621271567328179106748977220318398780576637700415314680679126678904226924252140533448882717027337133323118837426964395838398020272266882484748045674359781910992999329114591938580867093347047035057058721559635149750254118672051333882490418761850174742219325737886518900056532425609734077355561297511520343903372420446363179343399949148264503814249032017979501763832712827809502144832191028924203759563165347316955177323851243429168546258541717734377827476701332887551209602599430061456705576915230750692409692555115999264230808852641084041286688581004867423592992510034199691713363774988093093003224543798048120224984206528818735045167124971648427435049099946359517563110306858592038626043438553845993662407320391444807819670719331686187594743248633237296196691768932239627480161542340434192311342056762772428512897741226491362442415012979070456198433099055677764406555595558900594825448079565830640898782170468844870342349935884235339122190900450625861124512832938839791473267908629537032525989265825612684323277062022187832030729962068267493295600612570745326822134217324886874411113080677453906111115079670080864688664699006408023274444128456732177007701410793326039934686027749403447385427855297294438165528619685073798663236671341057935672599025931997082340978331636583204262879718053586265960825875170076787020691241111311283168648444416493541538477203585340775394636237250817206427864560119769620748543419328411525351696826783629381311866536131819905541916998508287579794605306374935064809979040208878840580106917121949050627166681352984314345772277615498317875197645980567794109693699941633950327197237750155133945135002700730896787191162855917923929577621412556054973975600303467508647398152857401392878574925891978148500995174229196429298246621849318321153901267531520880650349374959755576860514102278156015570110072251901874918255411922683506180643361130416589020709161246387768527447006044841593929742330921674987534592445826128362789708026254248821933229296105552203599907533047678021350508039798513085749378303201184745928591142510371743099705329442476970492525079107775993639317179983652025363009929692738400118037003467520077389252327319318113444889432995218006597494696478364994937361126695597899917190437129185401928689851453657864581218272615832300164566532057895706439419581310657356372869055302390293656867815427218227581907770263521286218072372199597466753078058682118774512058528337395622227051802495676017339906822484031285486309960118031662116527676480089502726104244875682246543365311008287042204884729241742681159059031622694262531920989891381455632678344708944857609097745463390154027935591335811941317028626585074542718359732294639909143047639391247302590257730369216471332987363767118888231174680425572680816485545073354695819544851842915152487507639179020961507455545941986223731112305369295571930545136541834981336696389179752898700020310710722589541220785889107514786319441653086699399684941774506754870154186117299119955384995205100089746300253510539291693395418348440034239420041378852655688318273075756454957298984204945685721632183136531050808870224627733679918863281483088393057951092865830147082339558440529336735268630802024791449361751053919733992781411256441658226094247297374611874409876789917912473727286463750488095605774044522810862891446701287090762519178362360402450049142073957178713674018927130694806901600238379960267245658080783004602840985820296110916577231640362421192819436039034167934771761391194756578756024418725124096507068848440889403436948063338166705647377327628585509229136904201604192650550068478998793976406874210016532345811627635413300785360865790332181899357966071695319449144688117512862506572401952682320205280304928829575945311373421864159942262231383312120986063065969744739423962090100409455152697411634408816459427439565334578458338333629670786138715952167604124740465302056829492236365990911047766113395567825469589322219486223488652281173829154630338484168736841690001688999917037892158191573132889072956274864750998658230466462647518458116299023351617522809628017323830146549464352026934221149113098238686881344951285439340857220418976263776192422938548034789341883530872457468058553055370316193509100843083909458181411061319069964448433259243652347552365207825364235406086697260216587342436150871392171475313910189605754568905237422661144310404411753157050619952886135373377577069006702010618230740262242205266275850257891007042608517622591362667105263522555566847637515449911487170485198261899031589950971819722456455212417025662576919802862029271281157902165668431286878985283032366968927978428767619358832275147615637096454359843243750675642948744852091187273371663395164291630699729700606653617340570789920591982019705316803881927248978410547901243892684278156894914205363448581086809847589441918747083801044791231314476798312863353922026015644098103048339935334453453805908472968268428169745149204383153952560645915712756682181011202219715701595050720632343704901099690722389679195097334362313884425999056628548669619862715918467266925872120689898330374817937805288224145592767161497658448358158286812945461735298026967122067633037010321381367957394842521126877894539817231540863971471558135019743495842275125795254557289716980671809450092906671242588711478813778481587397988462971633146361257394662388091979488595403123405025788469009940253692757021701393698821962986116608452106552909552315698280606812064962463654961789300213628116607900418627412480462978874221273339098159412918974471699327015014916999519631502372347311439686929849455047669500310451973394274208718060717659768938625759838417870460571717854754391603684513213969997258207073992272102833667000817175011720181021307364246642326755754736819170292594188488255937513167687998590411044993696735774067010179986853700876023393855543443751345244342998717179588930602907941420112522010627497326093221955230253430650600062831133620450641621319963618016211780531477708168736919058673354261278064841400627449449357281733550281917775409002369851924861276829964318858542166949589858910601497664671488463442796872721982751257808571847945376427902648371325162955388338729345536165958947488923371002014952028941727100224345564957397113599332813916859979187192156544740669794695014534601969181252675887374285443489521264876614869277896566148835252811500073259353319127262272197081458430004166730186883640722434639313712139492613251290979370663924725974633975917906088458315055145353735801019017172148989509567259976672316326108270765595971223585230893965017723486327991173369855705909594368468324324334682024789505304149595650172492428269379935733263332825147000940962617087737763854038902113608841165425256627800689283315183773421818724492005523247848428034959434316491893815335395831876599320797662129244483129313703848093439330062695334474012480815764665701292360571950600562466484895474409093875616565969565996956889542936949801589073302876280800502933675525683370405649555403296638014472789651374413908949368334638811763959913940523290768839851866367892086353675705364820626955931209557681293615755363336257688803143897091379876922969588522152687449054560179550890600028366794598412673272027902964613647374005062736718734307807367822999188228427837106226405801652454286675827638130570262729048674088889078604350609715798432472516894788465451976653747428210686452458340145551562249429843019274014656223526806708964946122242192319347915651579733731439149159895866583295581930849737293994591048659802745352443146668473407091773786463842358316970682494618250327140391037648956811878298191794334579115541535427341602580825147640013355244681582775706465742227183858710624775527569625729294288580370278674108522066544208567865340655095923671576037881897150905843910206299193205923956337410799011942692664045670361863831972144567522819066017845287234460432609867414883230964566438116669141892378152640446794895881244386697956426096095351043008289331165781242441557659300779802883094669358180390238139064575789028870724726970465500846142950242788691581926834897356835985858574750127644896274932568581367510299724855121360940434533461811702485740040275252292050030178469205900464753976804189287691228486941495809962894012731086711362485693909096475723195098426019254017045852720559032286846624303385635135226760951250041217285283179008539987559567198895367839223094452802502596764416825443281081359399043112978926180269124773093198506968955562543077608706395481931062536419385251757962629561931883693332839702916935197785444201017573686241691549842973083234886753061585606753526136919489186945442601305947653544001145497207061105456232277632598050299733431490385338934981095414116531130796800713237548444428262698459108537515350170743500237678043563105182573044801325540900145108421223032851176413770812681448279565384152541952424961845468810541638335198412002137065013929741540561133786032759755914258518383156945233503738414943489079482316748746785035932481999685615350844626035534335874551920902891779455461256175607819979710366888107945094823248063487696590062536907867144743976855458085760084573458348756885394778397789341429013215301583505661425351854515410845242897248677550206510985542749440240106113736131845725273788382823086889509282803772092098162566773456359495422549879431080283514065528134766239293298712272147069439923363287486396876557548350885820137198006845145454532074075158375280998502183355543533398919740915440391269072373606183820006831542415922968250788336867167235022434027901795674051047870426583668632852874018718117380121692215294294000012833511111855160210430372178331226891108815324532513234290086726527123287502623712222337402681623035551971976960619337483224134075221054347239942914378191287062319449671934030796519581828053442017976070844875140333200572541939009351136917406492311061141895381485589938748769792193075429049052026018621148637718065091514749352223369878970425209354066167804929117003362420390826662791140863765374344560483177994921848158782977654371510601597661218032854133826403574144686465876971196349811198429405540908942596180835308587598133690134667747036835257327498318828349458267854297773097167824093889124489357246715249059540886450958994296480195887154932496594874970659447842894666055185201299503961749691717697152219446652643209842486844795964842510395832023762601622452307921428483252523260255560138432188089490083841787085927655710439075423395617967360546788307480066681315346227103458088063006373971935766355836373026622910123143250984081254064568942917713162188949935782090168577293203945295271997776883238950527206423816026549267310983199894136568194767868645794798430133424575130629404007005510024451535635833355331645292620654329502292827817980717795968434447828519486816403073995180744170400895555297466249092804490529090685357048910605451567705677042754557585682530655955795839564138021705781453225933410504401011102695341208425084208333427565093153318845317758945962614339715446882055193207824227127870930837246679568282370023480907340029760122616766953055756187280423404480476321785470978058849671460410203617906270276304140845003680813426205443259616550853203281682157001595549940458086216887600560363838092744143303787084758177182942992053679226331564890835371933318737490985741670009144522671644594407371635897036561466115616305220248984242279748414432238531027670941686669155864978959519388122260877967433489402164586393072304178103560729756542909899851333071665776615317008962265595906352340996353519287812553790212846368048650427223588487961594781546307627707672006965404581904367417604449071410549981605784631230712839390022026475427459691869531653425333251385967917574120003149132032699613447079145099133069553854580177952387469415282823194954853548396297403111516872756501609631060499131356411053307823877972100876579933508098574037000190514222487322691887205254238342381265887316856762639214076905370971175135338612832994858745257291804074714674564817298532525323362557160881210522126340294597161160456997344045945573951023170878448102670216255495085771267763572899344576759772879871858588265754662276123674612221327296343978095949002328160049920374671154842477672521793753669325913090162454618318043664124169476693987870211662387187847314636145799210963095844848173929478212799431231169059568912504411220724472690708896105420876392758639829582672165904209661638044163768509912319318313506824241707082131735024209865980548691949029313871907565414672879977351619701066954440836546456095710240714982771462947760162374828026913375671626365833408738425372979066245864130416986813605437568303828301054702971980508322883765200216857669457058650079027089069968460370854726918056994011718023444647225451629518630546120818405834783715481769307854782327700864710460119301096699389546792406946470077277589786781577932165086547541002103020340052506569389663337176960364340488331708804132073727745766757551287567504542703686664300193114703197051191795826912930142246689622650466930612953138123239787523373109859164062327782020754959695737591932998985141279592543210422302991587890516763239590136410444487327617757006736859431430204100799156138482902956730056743732445867457314138825673773683291062431955242507597239953358131020571738357108551976502165990009034337839632547345753906283105184172383591059958856244142388242254978547932950631877254766182467698933955860784499286711284371619110176883647230978695109796752350184098256626957064184862230046301086234105289474167299931189158149384953880089957574877293265044066389545238137779373485513509763235516053766180506831846896349858310455526967411125686467712830994755822212063768943351616655867781565435259783563916821143109998248892866166430647560313426094318226909259601201992593478463222654655849947551628350454359675716375044195167784861074749092104405779741439207878138917064242833491453261352195408338098451224017716528852000492180245108557638058736083229011353575108238188343715707059450683871059627821038366638937881467843786604782491024897956560623283580374723611854924023225406607819779688689790365999472793668955044034391618137120969118354256443985608334986103837847826911886039297075407766575505423744790014187157786984108666022214564733363104403041782767266784310104814050237759081600008469098204773878295034468939963900053907506922252415009953415073968160290647865397153510960576293224571879234904121089075932449684557007302882574944035766185454407605003136417830054123855314954333900046486330948226448457183539854361172399803886455825094342536299777350791284431439390531110562954804325167743265959568972946181517996369297518613791619997800130580354418115223444785922725567573802952612130045221739779204158665060740264268191876938728403836700024362850163069038146275649411789986919587425686231410733322585267628007219091289553094965947133554329894026598343914692000189472772831862674779310146820156098274099907766948470218660663138942342664271207314128674107393068859417547910988307331002195585943221340992508848203300140754385049696980161785996013461104065390571395856375745870355996679655150033623142407999764995650693953534138597482422517139466744376988130480991048008092233493422882656668495020094631296873052536668152236620101329497888965406884924759443836800756276866223619365314249426836140530124465274582170636360914155825423983436467052725638051113889630003807097413478433913025698534979003969452977158061615419469158872430525794318614000339067796446539505781622620693247023742999807508317743682946347195627623540141513779550768088371060764567458034161091301562856209393274793316394435592177204246722823531911166467383532485413237643734463532558781334092042892790513584585075978620090612181706366473435381023629982505899122046014635050773216585329212478969985752690950739421185680561906958465125025730466333788740838214381255644110150295657209510267560144639230445343695714798048987393039572986624372335810823371084615396392963047897249483100153488531004460631345481334407321939150137362918426596889078406046889662296936414560088198204111384077523724533793520647345162929367086064734967634191933352366172624546772894665723436020940604698708396858702738626804416326681215582163183603877348530868775130022825457959674174446045193047407527771658266992535332811623808334034476781718476436083331203267817910522981727452033467361207947293583807304129343803834126535323302062387438233996584662465762066643159151309335200915851235023169761659377529368830411707540591975190169344477055476240368792242249696340800655951503128547904689154232374893634229946530891927549231653805268826501455668882810993879340705307368648540449162797203794721531557667867450953803855485409432494901671569518815184629396225028853159953170809096786693716970931617787466185837667943152040094315125104292076294770296006815406030053688453936964668226908111079573453970458778791855325252245303035621862209352101025822527643558086732251638762086450725460990432112585920992656593866594319448912392337186170486679797889781738197656272856714972409526478096504583298129129469928565995005814198868580258350318448457979869864398927742653532400492717090276467815964743428084432326879128649441237721655665958736507764071824491048057312143643081168600362374404670165087957127527887268226709826289269281054469251609490019787266465290451049790554754657972958357204925259223503122770635156825152516512853517726259298543384430398351579932222759687842169629720351673690097178626471150978181318249976111008099240569366543833172112890329280770737398933993980537868918113331143935248440264931463277246258399280122599190816746380066768070331950858014391338123573254137174270473146816079369382525786429337037801583689325559694382399698171980408578800681316722016027734039139102502503635585890830113691316925202136693027856969673445267700873687631204980907857214484837556103080281780517114964606838549972366541952087040239170114947791135514781772973905290537805196017578453726785863980788141416546833612269428819271629560199602399556797811896531172867436205740108409501435878607496928766835361942580337175347529793323541110967747702426341412273419651320268085995469758735361278236832466843754938318415170123319618563037100933642002939892487476827835776434717122514771349740774698082890434276824198249651024135441469442503381660246742202538674095557691587956493163097962851653300294716503392890283413613074006659660023819988802964217243971693507794782744736012591104766634649742139985161638698638811868119698145734861615979224082719367997306500579353590760866573942387869912703746560689973642105133717342163640503086429661695222488087057702137159914580819984638726901219764468292839541235171624979726300416329085017620817760402523742800391266778316771172168407459003467296668090696928336596126805534899437184194137625660801619078139717053741310096623725844340539397973739729211209097264266586637673166839278272612584892830393658223964507163806999798812946449990332471636713271850088868045042388685975189351990375308356194232330232818971807423290014056131123008967540987040553768186811433356708366965521847001005129965068067065542008440836682398666377584169687600344963594180184218209910177491918849547203779392377619665960483683353527780985138592806119103422985211258588224059677283100266003189071452828957981228204676062613998629916336006851354839221721598662803991763202619627143472744287076098696086110291839528141596059358861231237254405924998673377203110053940229612099468109820861062926447793796464404826703269603886063548504564662461310054805035207257019196222647933039540938943624798673346369446542075102972735246954908253221759444108274060046697642135783004855659676710352144073410596776161610144467227761255950926625812157314306405550231548508984311424595674049448472257739310391626128736321091349983852520084155414862647337818282137372151145348819514453978700056575636091237018458371034719792572476230179851567385450053962196762683440616402740432784877412143264168013882527523583672861636931468900717751588358016406151802615532020273481587730796107244338894301387154780299908019174683115650391996450761913798224634033788533902853716205565820341644387856225279515178382290096620559548932156120221408094769424693561122129845875029093819170787127819915974267917003969728217113696556725055844917447299627520049568258745237328552011165427375168050725018620459513795701814315233640902391042472213119416929051287957910013730816195635349141866770147513392146359919950523486510101450246459555701881636302847913673170470139877557286213611523457404397850671042231913380881103385123827715530759565342396751776413047397164875698355963844905023518907743902095674480574210439616003375985720523522068166075083404077855818916989771479597717839590460274175527494865853239757076156741198019174378834315939425799421437241454108600379115190755318861610105188333489778017576862005428703144975695198138304795343081559281805611665827778263854818042763698936580029091250498929435794634059148232954387821575360080114626558569559600110202882605144794356920564465056791979580824883094164216742614691084608474658899733727857089029906660694077015176246087741260585161739748915111182745292936551366839959000562957581177833944675915295931645366951045756402086924357101533808047910963138583969496307736223426017196584601095001803700685023109047812591236525646920059619363495080072773392769598463907379136697902731525655393889780709671584212737778961601355797393706287328418976844009548621365078275483004707121411541545033643530640991058319576813154903335773444390435352143867004089988230747794184793665568545125064721899672427629555809941684202224663983357026516269896878258798092117397199214208271971160584118883251073807467425591603749048695031417344623060830429219551092453561530134523320366302199153465137113263203216359072976198649800983178679847225614586373429278393625580503349411467314818220458169225737895805392645774048514172257869975212653556195309058626039768103313312759760249550985854804466015143812855732804184135903930308213606571650960642607510549801457302898763617571085013852984314510403030865652009830106388824927897102826970453972157653012377862947419831167990109358126013091443264048156081557481123596057756046305525786786245553504487186138694690942397378498869664769963791936215200302956842781481371194525121520885579632735184158553170958407595844275915466169496897507765225613170800650531548411760011563589734105681644115520996870058972649661178468676366467167427280350785063681759448115281522971319892422875661830968992669900726174717440117212219267046010281966252535582410697251765878468989989704166321131676795678895825587055926797711415222477406096627203272282700932130337622230495313926108113444328277955987966407770112580509578715785499855068616928781134472467343329025856831492720461341650393808333926789324500656805969764652463056209930298822188712587977967923342805337498882176147619538959579401372631174498350173695942522581151780541273296767594357657484833015459441493059199851926768040725776145497201267167055968715666401848802576282916081227605035566619128421733600926466238662506551550405414726864522256938339441434911237441578560029598780654771784985089907087697376306554232724598907005537492456103166890374916351067041464715242993734168760099294044351194573971171300242700836670290165474775598807433082369850192309087436980705676998850901700256563926068633938715722025985028132918026422242371266399144928619971279966061397086332392324897259719433325698429654980075977848899728423683556887498739545110785671564578444228032177501178850082987173515051042765947770427960301867248068889697407272418483114958458603283111689897973088893629537612952247800116294372041945790790641516490548647161616394772161250985725371322646384355978159280772009359144880738740294808696620996985391618939481753830002123894130446524459176536136808900276839440576160075958957111728322826351177902415236722673580759531288341688899493364343481076185837184953174053900233933579288539980546431116134713002595429636546024353538748633512265045063908487251947169569330812476877662375339041696148841373729554201793236278245538616133252527040432591212734212327623530780040017733028738780390229941762945699163096864168377516546058480164338056784304864856300046906202094810824487599094323794906381581818962376724403434551382081288487050593725974052350338259291320668416039165807635092365536860923993049713415163795439987989795629786630114415292166274379202385256713953680979390978526925676440102153731553231997788242491486464593756376333555711706875886953240811797959714590377362250024941669997728726358329586180678004341411041248984410608711512108603828923414120723039556106949255326544546801768317274933298908277696663152168790021689533142579258439409379831221550239296026329662395744151512924782166741663526447581683327882941937297582996233183305305954001871472836751632760114815306979054309700545075803009520328850905002285835482553911173108769563855873781479435130356536994508632721105554009652776960520568613177934006089426247247531861729893080381987694752499277654718935521286646440513696192769089046748638321712463425277969735924304083528690143955447758798151274814321263559623121511326258405447299432279394115205851027719055921132194166386556286237534283457798621865812297022894991377538899443803390021743512823628828539233882341122647401870243261105363777796537211923688971392457532580134086570643842700571812341425988889469014602574936318769884323025959699508764776356924402580523462754490967124132987287257013850543344042918044828053668841983821512811750326660585390927689604779620853329248228304019931911294112998025221980887147428639861666438349326997234830555877207145240832999577870234187947996197088748514340736495309196325458540914383777467147829787789173721091728226654824789678204385680610537732348895861276884892714975380293405106379391352058111605446300342082563261387215082899046640492889076525149941804418754504543731233409776085758332709284298933275707254550778690173439216519115549370256185324434592684447200662912627618271351849502896952263306810285946867507599961160036608921838674662282410811922758463794210475808986211341411024925269255094343901757132128445229317515856991000107654538687825185855228391342063729156729649881120889156925808672976849797508597840070330940452670868111709371874636664842605203782007784009183756714272184793840088064357717835942482692631929222802657846502857141999983628818664186835445122074620420261783868789964041418436776695516301551945472384598919676412766028485933539396214136490359297968104142374223347009282169987708436857469707572770985742011902661465082929376905436745788710654794524954420750876173299169743148499039327284483717509423074686017421252253345048906635751962752445079208421330273505686240630975923783749010329376136056767147908501796233377032609192089804919141383668986159984551661033501354343911776255479709410062581971541044519662223394390402251164316547718625359483401702721872775224055547924017685875091621909939343618753228106339585207815833770189624130575710329770244950142172252241375909912507089589204133060231234653452061827951836187406763318342965156640046962598063518081261090741999591624330002366511803292076146886723095870236065069500714475448989174664563055039594650139176330533404081637312934195795044942546789194820703018383525769413960271067522262232885070313033703851195571198895334363216906646009084906803370261651550554152644909711640522475585599804791027195605209902072742693580344959692133077930034572114218886669830105431008995522683933393166584882336095740727362193453327793747901945915122446372399739094943527663279516513238157273085009854600592174249995636151005249340384488439086965443575895150340037957750846564934014013186482161515467933530470964446014119813842466126801665461426908732276663790319636894827266489638004993307794743165536307719531230176905687353575214226885081597111388078482628323499268422124423459952267495506783191439519703765918199609021594358059453926392390187001889582883925027897254959261240811871407080441383879984861555641390656249926687105712378361398214123769331740230567429907490615115672902404686228806470457877809555526395660883890805814265463031327066485736465300689203622946345133446120818002534830278699458878689653621608931939614706888694887962175632704008764628176091962338379765180871573456062834811311923082062006024591293553189134764274667795227715796346132167261316572113450359216736530082218413364792836519826580563418241922340926118968188507541016504324967583632010058407000355251996475650140710355345579197281793342736662820256351640998108315923418868424689254139989738924004185915922294121684715065469094046007256345480530200730507051106862682027619906759349169934042860697996867206028358664272485263739002769771664191182150404445451244679176082019533498859144448551770501823632099332507125973954726302472948633613064005977590840226566578889309146876157004333144099152022842004029413674047395353732731632716155765328528385622479835119454678575653343693537305629890476443034070493682869882577892956836461605258505465498095145380558104410244717480869163033644745199734962027809251122984569388445516025297476245975786500751544452939824089934125911197274704658872896595160209997551487709029502159656457325927642738616651955916470561643326602923741857714835897961007085315751011032960726343253020829457182228574441278848791981087360203479157831212266557422822363854691397093297480732448203412152244078545664911175631006462973082870857376727848079440014722890736412409293906515057460332005903591383731328673647239475639731918485310662334457395024460786482829460539802687777199600403854430751091187186100236906514930413072659880968504166890570907434870754873208207938256753792124554814051266917771243604865306588107439811986008691774496529250938675239517847361282328219192122111094947755700158776978956155059918538666745356301897717850165030733668372404636638552097557983748079288853765538258183178908833499581496273694396410861207573149040823500900605794925919720981511566088303431239486909262435038997262922827212033757438666250965158211373712715262470489063132962260495714572123915147261833456941907578735598460120794977462229956977552128242406891100920848162496629875349767346221149575050792903915119264524966321081991750507232658506360250830630611715925676243359379803254516451354775225297098318459173835887812169671924149108533711671267728693864839229239566926528091679384808180149178158971417667109957330528440245334201958112189547574714504664668323301022788742778977006378809373233095079214840707895812034050848035047455096232537779089123535324483517839886756012497342478984758939006360254051400441369090944080509506684560331132073076704476071629711228078595876110958885575771431245119251774024336990885802218062352508237330720664434341284507114582422853537555012368601557476360894731763157757227035212751083395652306647719657441720534411369534906112380116970372540100993286304502620058772481311761681517786152462843811372977015438864720884263148297777134852087415893458196906682777613336607969312225400678413550669851880422166285387095508769640044600249957780029761716167884101425267692329347001902133079763649117428613866975491305251074557843100706788030862925675378872036862394642375892311556032347304837283817188396706850369467666164162046898686455425059785095666732405778286539454181738920788707979247048184494474104246158732423826509731070130032347660435174441973489934378268064622437013714277374133134507694464709221761826763142701093059790675873045220584297605778439008576756213070032192723021625674579811332042264766019309356080752006930679145219413327546285480772325766514857798174835325058827661407202296338765015728233708459671053305901607977962999363251999017625202757363754153629710633469875100220412720303947318255121083077180346968765339096648368531032929248306167835761396326849770622171304805270131629449124344740382551709150592618914466332496395062587919496184425749894560507664686720256876503604335330855878802792018877114041421217820468394401413223351477467384246710966683618282722614618227503022505682020965779017980380007080827294392247587871658521954946927409470963872483650650408605240266335468314803873015692248101906105131997438456733319556775034413060709840915479542876299468193247367328174200033689166092113859463414924598502747190932699337805648661940251493362939201727752562366248958370654551111793399633708510839788873707501923479625437150935491579695905500587785999693888936682213075507711507877436072239622211021342705979478379621706473571262224768649801950691165680393327275805579042355800821004969965168790224057710251092757727648517673223708307753575608607488034312943203300398141217331630628002438511372035606351373000241956256180620271207754721832190728051259010428513241803582752471578777957418251740978662189887694746744944340634618459598756368058756575758070333125588988370950092908459495981948926317549057949560664163841781901172560250901542628274374173595173515872815458195190470732443510237176559597439021428477430320472958760715892060041878044116941718360155258662838876160246992352679762832427442762915432617540353507724950581000051216473864753786262888300160662728778309983314754449527386205043224651009212117114863232347040059523001021694552516364420126182691585538706442079705165881556697650755999438401469346315899595772934696897050470952699128747779564102946297805719287781394620149362072899382679135996669111282591887052516346387512977121990646301348824626859941625098854910669407495629913964736128326094300116465813785114384659665867600246440934737341707768703782456845201191139695995714041247731029116951008441033533437870284117059972626253284070737564643347486406741234700078038638803601971580564389251114549279682140644320047358659784458325546439669528908177186385097482847612619344693104641860393608174702061705474385417739308708892599339477164587656462109740872607302139071776639499238138212432639193642527515892601495578718454905951978662508167284748428212242882129052823558175133331390013888123633618947187997533984925335448989173759754084612612028916256251254947366196562742690463113522890490480940122806081514691440123892954143610290233937622567431418118854528647450051924811741448571856719185601026215688903261684569818759828331824835501032676865869405826461119719931625328630523001900028712024428909067136496638208052762424288034448347694349059615182460097240634214999955144819105111465312446297466156479105098469749639107859765364456581956387089139205404356319180145658152446223970957791156596678085631151692565255173472611627308753651397958544650437152931856433527198265184443360034774142034214659146975516671237044440828454788327093465344366629880585370755615578498014701158222592477713762558585393845904352151332535654050433826552495252384709652813037331492028699500862245297931185367734247348985833396998667765626711799797951900082163937466823722362658092241403079373163192155396785481547287381747024271259990498220687647157626874793094503689000815383706749288116647957711676898489317805584434188303761682474251883102343783747931137169593172255418006241863789375372714965280210378269643622267357456467688597538498013487933316612013134057318471841880210385513616438736787395734780044241977741978919571553916463120097839500828879972250201308265701244827423248808605806054917698398722695267197526564334326503744489065023783320202103277255593014656659259310316695455369740693959758340103194708185645921336933104196725370976953550762285863278124573765175454969174817387529157911564029246992946257989493179869018076695560032118540478953105069525415271677904912294905960066115709457606273704792701868200887316521424558555458724551691937659895560675807169051007482470998719487512235667871857884018592538514520035359922104841848462389708915301147336265507004688835543608876130110506523948666727929168288488016953809586048190596996199723453644329770263849783803803025751766656933701185315038615969591108968053044403360960517363406254781223333003676183938514290215095284878852028245299854256603730466498434013199757118534945120695028298647178884048209840631704138800599738326153563444394586818073171127153650767057926857595598282003662967006704936414120632507587328359707490961186816500486782206076903338823143059341742366843276906457333526422595214704214762880671661517630069560485417038194393057194054754617180070189793312695395322305668149108481236688325271430651437714077074625978010448694162059107077744659960069132011740890185928068042737981883605939570348887469783287215890429686398224177100202398146921037979696982516059565156452109568737654117700855992249958214958258541312712715627726242204466512211699140099818353000607866354287434133468146279656883352704713734936147126107256706683449703918838552359706136918570544736154127117205136759574912575118359202846653080982449894837651089158261425784790346831753856889496788723139374027745955539555693272871917326959332089485802352011116135324923201518449876598204689171877832222654675198063691225950094569085167032363741865109658712699500477681336550881258311975864818983086572525164271944866498146199655482507247099801468147092008057657467426779669528076612658309749674203682832992135279346805157958509898643743726198656145096753017770727463952874056934620089933016493800952166764046295233995638389226513438999052634606136740390293912912559557837737983543077812824104333607647239693064226902463664577125002033485743483047456503477432195218285971493301372117943193843982618358030400694313396952101620626775305953415313553781753127764287979346571359255830683661259181711785809487260287113684924443302795958961740978427044696502163980509914446743323969899097844574769550956952914702698193773402877390051539463581679845050451055212321085184102478024181362428363710976843634073803472139213969477111197259797603007247991963262225411536104273642590398064315506903092382345944603529092803341642784812487967315364003013918960635662109472837888904227196980043802808905710348160461688940055071033428880701208559356335243938923647276917205134424206789813264947897832911258144268601430893967939956177250204634713477685193262370251254133737307981911624556085561649509574107357395765371005582878095173413445931726686475764596684436916205929533160770460244943680375795625217427529736661363157671117031401789323399503085923731226761878530543369321300725403178404872373126270711168278721380020504073013808647009904338711836228714148658610939945592517666107593489434228052735695112092583785547789029390200156859312977623137944763105866151248874676446304997810434676469557584445962548499961776283301821899735341860590472050703594689024641164900216877497770589320250108446515356466351423542297243311780319376850684973752464969979949818592554660967415416856585265118603606087071421077970667575364235611308420444734235772021318180032690227343886838978609135690183576690479330864445746352365999203172491687497419628646696325471289112784405448136249891462875473819264192699391802661005714528045032999871758121366953731588663580641936977895248403422391753808074643485480305273519839814313613868166298400623580360567456236488233430677240213670042903632767159519965629441147706795788228280307028710662814670316110925830105008086564569540741235721261712561243420938043685066679537240303642294488058423373658058051484242235520713158698179877480247672198947739107609258788018362585559479916089731387135100169765940143594056029717976408875458861642854106545524070831472180924905237626658008777829164073459060182701538075406873151836871881978878326429484888535210247950914089749214598464652374366434991578424985311778369525041701396519220461542454138952815498673536332041951735358247330816713559318550820833152743688437913881857726395925472151887125026920307732102122687409167045673321040888296771439779497200279416224540667652068701142085911013635718576986447375156771089399294851349025587039665678778167523320433283227512285256541137197055016679922406484515011304910602423134692819501903142031907934754902630280717281099266727302451073958949717135310360885991514947938635932251629650537288898420298959436399450261025439929017152041643375088516414323453940576848230596582558589646912155260900259056135506260453926534485024980343405720084933476066980866189804106474109842069553378485019010108511278681406514157364521746292164860154683902005891251708480029221022232997960601294718040442235316159779513877755942339530630016977900342279179167987781716746565977810483627466067777213723001565331274318321617940835879737091399154310225270413940071366126674187700860791582997717207316389773009502871704071512706704715164267815140600496189243472743413905206314581333710407927069765183508160509538209885127088240370858859742117325111286633454124868801768886170533399687291128417461293570734905715003248290824717954830920430887091637781781346714371742377014411250695175681613203712333047199003037193439767280165052517836824925728102584286830025342665887235899805220996348478317851988457905015664934628674525604647547359061645007719754721448909460750257927579166162634983506656868943167431195653353263706798370978781000310640201379980711747731364167062090020040866577943545311567993703755642235106350655761831301500102774936552693539798827518783199409797275952189936221108344824272585091030749944884070793722398410637911626723861971153654479020712223960545355164375035931456583132469571678742318704830349550711276390115207186636964109144740309875211432928602686523250620338855192792877480488798023858662021730902687522690119022801533992295550147007357932911117948796002383663293371377570816461112692921246946185571298905688419118626782497598687969622106009175036997621391552933103668438044136116274504088830326195886776554383812728826242811491024954985844938290738597252549619474671917743502318000522234419529086988064295069261952610673253261112261178655841436451866169905969345433989812706708463912172356398518001457607719226750066040053569285320564002849754407919445346978701359681637725046521910426175878021330665298550863084814513726340035367681887498477502887778316300334400145781282399496424789603173084273174685047333118977562866809919195524199277953527991976191975832483890744384021987155764804847568350600492708504591947086050335433251292440124705891262640370133080995167314147860749674249843703966819789592264397006135063667996890071458887524766404460362559425577757636065830004898017463101009452909186223043684760082102215382700591597189420812132107187619434106267255389157681922791092725425308963296431314030123924493657267655720957867198490491756859566836571960556386494547966588127596771761882833110926101495763604724368580093855208072730936865077460287821782832684361165044330132977424554645583451170141501601578696625275338363426209090245389372103991180110801117472131681883907501881943567163734180076107062008613868708625888849755304528477267905181152834084075909776537833275897770722606305482668096527045061790736224902234887199472910756821012286085904325748285317757211942271370609688969757026017099525325957848358353921683539360509154602614507632558852166096158160215574784776029432336233561343416477314417297792291556282863103000644948731292793305072053151985881382528774218509334599243853599820595206013203782129476411062953269509686688410465804507424322102664576979546622891360876700899836191153477933184370184900327838473184260853748955006606379804926940172640082766776550918812344094159493270646053899434325502087186264548941499296495591310435641990858401747938178666424648769096851966130964323880107938688363328954802730989274329595211378880689774559285382010138582253162156138259205766338144034214528246245237439154915221214834745377104217729560940868628742971652768697049597591751954814939324263147735288696682783636369913994756194777789618402260088899603207635404665269457206892547608285859427954535299429180942081555980103822856146024671098805737763133768991046899174673776698041481554395218537868480593459709871974627975234548756890991650191204615601425218636350227171129084782523949525725263810041986346791400595875714392476197713069562989362058105937437009642433264243613387786679095664828456832563898147559603513456114503950309066271127559982921235277925390563637014499499744646760565287177366836300265747236499956115602023122661296595453197823634610905713312429018224460613824428457954492169143554390963252572470405567490196177511837533203878731818451659116855717373389910732965681056542312779693050164691947575382257583942009539260290968160807720116259834156139301845980506153354070487873958116721632261499477189179865647514381549634597163545326567469661442447137996541941675207012356839982464154130244133846572245946958282333682845365891693369128053465218114468179559553314289203984758123747188382524075612156112211558710900134905361125566267383817779673182077950873924329021757681462712686092117203727679304280798606820801202676956147982849200358606239241550070500100587368461921837116512156528541032352389599411179836641127613856732833263694204551097947590029075461356358821859716995665439241337740758307488092902691779581567816599807970146820751174205512316280082077069123337934297280606265693601096143808217701157266719362938672111621878215463619021290661164333162594046172952579096047148309838252475835223047405054573663365063871890556361908685763988650526163151721152587217478334925290770245443570326660540918927984076116378608715406630143786422355433167990756314452797546855383011856898376841539488776019499509388095105332049547828111687635723812634106118382360666011847117924175672156246982782997263544653161323222181710784097478731799540218891193253007023601366751248851442945157754732538965543123309652312355413010825884528153769825071550321711539819535253593418345378294932863895820787830751807675288467393276875643657348681736034534243691809874074295840165845753552186624187896044555269480787317053829237024306160822805202518246323218013607978523382222860891922410334650907154294157125188284811158197704559673494135841078368660768119140911815895671229129160569372914554817354853185067542100131950850650956711914504234652702516604925005634474280662711276095618584381406806727842428586050241105268882667830911790118426148345355711933457573532962357085404930277308537468044309210058391682523264350452209848654087261602511413044132222840622301339578537131119271136761887716029352934050269987594290424908856347127762719302943594445935368123632076479322450590027331242613766193518718124662918245692764753863375000518750448977367449353709683654561534252105369942438539023580558527907309765842648181364856180604567162992361786176528007725703994296424836106159766277967298436199812131376054228669148258136109353887263187716450726694831608371280893577065576995493999551640548726797630282157786105611714065972715467474859447957686016571441272631003883154993172876908844575099178356958802220931276032358599177377041810165681880587953043640489476562714511630631773634835556197707679889305755451118247581682874037325612201604970313592614828084751107071227920166555241209895768762749820921235466271805559509819430788063277304583997791390682346264910968395230543491125883845262651456960050081573545540926883713556959782178696463347686616989957556677927107263671629276234502671469102099255717989888184424151771136862592463071856752097517315422389663276599782551143717936495086777734008060800852375714943528844117690834770442125254185653523270521157778944650321935641145912811545773815276149807475893572663806741842344197597931008806552330888139371423419872257357530911933763511334025927553248274929241226840964375644259505348584578903454194509382483165935673523666325492446263633904837862802702707887858042336409131547880242291991645455206719715321128029571201933480471480790374104423260205583251514012105256069005488950316111750466408560320508032633340713385066244750874316319696406727524549502945516320741236202304660860443732747692077029305715612086429134781350972759362337069617997198542733031819216873864934165847420825702840202503657856253720289262944747591714106442874225375741076611758607029730557691851412671659649996139410890990123160584551058098473395045113868008948978359040615147397911423692683237001219045590353926398115132469277084382357574534414810295626703329848519520460789219286135547502129318785854137808492183490515645224087293012534288336210960779503439508438667664437802038297700559787742149354479797786256562073917419597798163288682211466107644853124398431101733452193233196069001332276048346362787506101769681275673568820277764076027743839272445831962906676833159267232314692169280102870253747413501580545411462632023346409627126534654201013155201202047898170966012230206123727701511339836714369007972923543458253340361774438729770375188508699686649874058846076106448411275621665319407918985509895591214449341956436768144274453861332719866202249922270228627381452969248756277998160185988630997048448422565023126152805449409952260545531860826191645306974641280454951279366778382837116564906457842823716073203949853610619287308092892768822019695227688907323558176373574529741042707335810303827005127414342148129691072022823842333061262650737504484254494690689341533188944647942221549078242149609379428478211502405806329851653787008225585041015740448038843390912248837791950505430269247769437042481393159145223623448122391493965085330576208958998577761603775076263184340314028048729460604076539997025307934519341128054000230263125003887713665039128606920513295699337358711983643944586265385875407308640343919265760682139953736427512784739366203953909381618602339808209314995842403039112754503536781402981670278958074934072685966943620001086516004711648931736981041375641458578350630322249529206948865913025918770042583352385224473781229231617194482623030504742368101044226972126186657981234630895366366925240733308713587778041704261130674261450223663486946235377594845711436664054665837583581018427240541514819492990506376090825917124713033426938830836513073190612731779609184113721935350999781695275955663759869140667190941544071305714252474598969623919863306792221304206107234888440760702725048388577324261390058293607993241838666814983947755064611670410875399732199145326944892146615560439901733245154233091992189361971450697937795727278449090075257331878767800200353412683074974324889121075291370128190008082261298754322473842948289497167373590979253193249720076837371485690542050857579145787971179483784028621108278870880973510251361517920921467969946485242150304172532201811795366471976828848295411329950902155679049619800880423059430636614066753794739985224798020086870648729760723953441492774506941421623858032439090277960604544785478506253045089018398030360833713973486201842506723690095679330881108014126066674261556827243318058892070315364055952677698675059832568683127931821445504722095470977922306347943836899412357633920375989614085272728062795686762845405740591061148688585638509245076228851315923705728087012248327089377176753096363476981164491903255804937048728761494793735013354442138151143125389739571943865393410457402242808313807353335384701719739091251071883528287402178248983348096263002912946360168590121215812212294849995006965692582837802553839501205717277454359141719708071967223893184866129032538888248446491471053761438995015728186384632149007651266504327338986820181360469796382232245717090396250520068063378441343384157329656510278191696501405580346140196953435746112296103424576684323240226289627679451233583131441169315679862399256436078307923637669657313223768315987711691768357370017344880883031961346150491622901345093470012519582007670446750889389642059647830207278746873531461502489006822148726798369472912464002502283125415254618093437475851363446250484235661576777943720381355556511942126188579067073531402487594216395605134938903125604873685694979413436517453101900753309784320508337280001861235577018960758001345169191624730459262218905086627695342036631068863828738914022544009895889024383082423440821429813151083323703031236508268172007347438812463196863859264166600114518618039435478101589350855728836334827594464580940670622257795415084193867070947243349890449147977736548284252866320128487795807594569354150628251470732083223432516887420870914991299957727782843726814873968101796929324288665904888139369650739095534098790469827775182605088418396654575502167659293093427374584230286430047063134584716033434956217371805977859353119503566107513122096833860333547151748456589306909057788478357314534617134011365835529548922157475001764140676108419296546820361015299275204072179431070567198069637211421697940436887237968203352696583435203233141895574933742342967217733848414545688607030826345906162369405385123046546859566287725344450611100006688855950361348034591869459560978962169671787783592410785601639843295805675676832035611455460599139370234275671839475563473254482020074955800925674443319344109930535166169071219550681213787630050395103115962814870395599728120245282905673201090885123511547069992194914059295405439463441407741968465968725969231776430784539446973952686496483525239987601986221078898242109209048606950736918874691417073755644285388899349754312396134348106405154760707949943151299859831264266182447326357983080669680108184416377128368099924769593828625698845849732445816106871874040448796412806137011788524733800367009735341194130414675214372331216874268674027596666939411354806551848258550252605156902349335508345385967038312926031881246881392573832019664740126712008777542373050819769228629345549652397419753902798590585348131140727763881539223661671370617651608858762353361675554269056630813224897504355757819344609829927915697223257495271019327942604616534320636776948558179185100020065101022546233983582334074195288779338608795065734274235840960263041463763543566803614889953822070420663003763307198010621603846947861586776798768794214387327611745364736480816785498825306464175650753654502246049413852795166154900229834613027618017351290783396471219916052281823246721293327308112322305457281381116099371343144925427115312536992523638139996284396230479681389205351775262817615322662154661449968378994488562707978345585500355220986155535138922791407926292029937128100901752282822887711715833546143695800942025895430919096566671910823904826209384601792857468340666748364805663164357375147448116393147802707127059114786737278691926303098524084743699531653657187386363551057434115412859127086591205125563701319892962717280573659885902207042685275472684686216911037914762239960522288408891993952882126839307853459085376482072309174619429823891004847489479081672936370415792355928186318150294317264231916007456738396508454879916588958320806068710556322237254899181254266317908092032709440389223352418975383312180203756405617897286406212692103482888397656888773181759257453653654334560423132473057433067202688859969986458192852556990413658594828021653608062133260676928852616353860051449853317870413986098726896177676734151175004070407117620300016265165406772939241767679301278040226597756787981897322234818820471142316403820878873257997691072788546875453163033748639726632903543929860538258240664924011319580755575849056963834549232319972889501967661481996371268461320297891627049827538592333895801201465182369064643660320148904789153054495128715360340023488634182378147796442965487224879884041862785110989114443336743602561289408902087475701281567453878958285432692760524597861205411877941428759617122904429975291121225522365958201706109176687015612106964477544002017629079469749094021988981710918733729168910858349533668930923303675143670119271783019446129585676771436637910138890745740982914001067277104491642888915248155843130772446553946718803489209962141806401475193769735991867877842634651102842481661574939702511290729590759012731519331913070323172710381145358356214529359121833466333361975315705822728278407123724441105228118850658768674707051807755226081439803597801449432317265780042838332985579821811542666778632927430850714990732978411230052206650087891149765399196644177893679243740187888928252206262645737383306092543587435677534842491048752258421303195252010974720595759454978481026629911369529042091602576744907205074812049621542617715545905115062825741561639879033715547260502132466138229066346720560175693272048409903187249138854510866185216167440657530785640584331897388741081303985815988330277471596475999987908454870992000447571833541304305624456379591007138684479340868746493165386795037821510480697800209655858543472643331962078951610280831514739749363038982107885694246980495998494754992884803727707043619938984892559669142240592350749789740139303445802967729319732554858856536081333115453146583380711351560911996457632683433901691618514509250028875210802645994794697302005536398812343968832934123704394386636454800409507892551508040699270118625752738920870558881038926163475210871365672962284744630885951211036263372496719151641399873722763481017272583533734242907024399615960012014943673480142675853582607608360531500148368456048910862638070020661551406711306204741000027739055610099281074115139886429170919067285105411863032308808662710762347086941321921771201145588231693926591220965512020620740932335975915395495495678499927307610988542209863720857830040632198822822014071655837296875959212858969000745580186696257981756333216502766513136847638674010194360936362986984838414427465611698123257746114569431169139052738766676380057868003453840212222294825666102161061803372486914828242589347066829078134594446710988654902810101907552851754087289201184477164550965800938695743681917682221623438818296366048704594419430064601049558868962520036900198549308292432925769686166747783882811960241902641561098348769121612251740266050697142328161280253660430055892058444964041514026361651140640488361918109856965750954687317604979892486481201771967564392605868400048085289380575349788865376784783421063372262236052171594402002547819119931165413090829485113461750933889799613848495793225630838500646785515998568539746889012126327808492688134912407076401509802692973046546777900231240866681609181041654475782824742282119315652001326165760632972723301386135292575245596822391738307582548009567604730471616318707166533438417507370361277651571907677461697218282691743046399465316535794309984193681922012736140191356233454004134255257719740630427173304435231039653234100560226718372322190610156856069626774428600995265847107692615186075088875135220215502797515877092164308764894462928497763172744835028018018090466667554529100107439897267749421530347257527073228762084050834670925807028537313707198891959642744251753487889031950174561451851358243507673921316144994838403042145600639300001001637067082316173941176898736636875425000009360563171103308242357998843339319540885159515491715655814244980587440807992138781788939710111098213457573218762199957135767612293283938915355594345633317084893792180089495088724297399213530822257809865922618141978132330625533166157355771240975497568212915747154771215204303604789656691342007778613561355092139393073568486351594922781422063562587576425442456617772258730122727861947984370363626416553978106418917955447202477803089177235053598884640975155447442322850881476264364998990469828048975698468134931978968551681216260579466212849543020252497709889177032305796392774013988444501835132590624556624640406430029864457913886340018204870004561007997286292590084661392659370752233520361124058342160211938544615590851471462720056334682982533232280314619824152019556115331982678151624722911512027908674268642842201300671664808153952169459365232833676721224593146054044492501887096658129930316897634635763045595407908615101370938673855136054060132230842794607360025764719060546550921823773796046511295631540103959603924640419527944683025822015174815702727485520225487649495316557258767069861941159396633044387993819788701617921700852421304256930849498941149052485503919563296882782221920278602829191360700994867941789924497706644369378573561620583626863266612953732298528027235718682375193416155148241944415537723688825610276241208148627844108918855205448412856695787201511224383402717100111537722908665793012575269572864291421711377190823355200983646551268416624724548445483868038960165777247706831702359162926053834901862968478520803126032967817457104028357081356506388381645297244635070537634719605647077117689161846950677168934252710983060399213211869545159284463195474998885338874363060218765906642025733760649852150570640240160489080876228785923482791611793120483960489867859325805719560387166526157276147249864728501237503788763348855507030861227576710951455825448526803805777908685362008245809129607132284980918528121160227121137344652616819919168389048793368730708941917798415674549460670664347810037554259909454181215248522014123679055723371719889554157679550653370319253892145067722838333122379380397845100632015754517599638173995499876642037537869585470578440664608374108032911220394497214555260024378669357032994834337301056981269266330242262917449632139141617794686895314216915458260338128618705779619182051662744439443920680741511438957574008731845697363070217071326906272318174342536723415316424037047741699319617818489336125275986696467056343985910245757000011445166420514142356538082095745876583419061243867712980594416560447266194510422424135885594965891535809438390791442059159111348296355576468508720372401449198347621168265938218112953397668173560378385744583014328052405214524589809134109088314010270764082290365224323701333410243057345157858731647762689903992239536024639588110042486149214768088645387747453739483371616631020747211481106472480072049335868747925630157075260020167838996364047847532293880927473327436264136622598576491057912946516932449785940379675059263806581476210528771195207718545210985043000541634782643090461595748949699107689901937028257116638719131220754881516498097171826204586093079555487936608290344750594714045824301857567906215476679062543877833017709030470899491014462550260036325456673872700690831586578020453028020777695932529367184445540538156583884317281737756861514861341837732575219182674331042860810734494548190195997325549949193804317668620415926370448034966216234696023847908730925636164515892783007770643046359721492493512800469328295391242151663050289029626532314897506304364370455472872767045918115445356796836818537685056602035726910481473238398372349376150316399860497892264119539752479594226269623292840917028533974589521460216532733952241015598245525588607020428444990391538684521349074772627469161064182539869285309758901817537118022867664720323590882954300824497128011708685908522023686647782627338311631453904333141743109072961781821164646023402279714446561363520014363866662286938017852186797188891837298070720517044722503632800653999944771969901461851149537819566897889005566286991344076497508346813481862109121500694878123579920011513818629339825616238928191828533882677612490686682828719585759436369174466022236041058307653145170961964050916290583099647809658013345498339739555183065130691343027771003623479283594830738195114916335800699334479937161377446345674745858076733187546740077181181697485588615234578904232334819274158127874028879314858774060270683925970678655323439417589800338146258317844598408376065089432857000505724677762094351129480012295191594356765465247771392057022846737346240818497020232039270288930668534758137849956273447208115923354453565138264706445166156845647092591375477482384061239132324068833142719969162611593787698837190016657716837611121197715947489095452995167989114608634717456037007149991332456963851693178162651772669137670189510644733826020560646781206774317291321676669906422013081468315111013195901534249199998790785796130232028241113346725455922131197163790374410426825897674895905629210934479878343987499670946706355662687602124584667189933972005177062714507594509819201706987145406338059919983090411492396070722356904191848760646223348217524423071497423582999035642059861990174096234431118592300060647353610305724386049911111364669938881774064279084215402090255729424536702568670293365885400006848559726109770500114175792733023991503464025116109242267702126399749301477767806141344478381146887382835654430167651508183930619904226947094476102093156711871375421590904919425350862722316457655087165564282495072621587257695562141353531657384244374885764816197696560990960895994939655383750923496988610133833069262542889987500410318346136216087371367750342743914049061891500822845138021361808158623267397389206565390132446130702982610049052650905077248705036750177283884700665253824376120514343811451731183620298038321179196745039305654230593900986969066903971589265173435166488553623149792075514238484298615194541591086349330965194394056947650779546349016002539762406094928666341489982461346006144631204052475134725274327200129766425053904306314166208784129278397305197278445607178522246091330293685335329648440850742421795922076515314201414256604859288799759569952098453831701203717080427114944944963414109618609100076019367920363214185896259148820008349462840376554294798014226065464803952903292059267639021408969492059917579795655425046761187612282870142405860859191190759879212746494723595324437386521741535304435491960536250198791476186814379414654616217780192831834645163809573714219283070060837811961413796367445372910831716846718575449466906231627469126608424639664245879594512527437033942276790363037638798880969358475458117754017280281180006094155597753064634220347926847538006053226795455887131079221199600093655315645013660921743258922007136660828235330462852587511440747429305862519820320465433136083097616908794892458006556635076320400704158723356816258515150837546544277638691094366585057540985151504839886058407116098225104054811918635295728909276395033456589611816720668293067828772907881307161968294626010359234825091064412893240258444587175295722329274527029016565627211511031211860029343175969992489884263430178420243568827675397314068716803367450798713355146132363465196471063827999999465967431660637366238557249082580359765216433834321226027203358757557223726195286609529106829367493105401908262688006418751779844488136927643026608172391248805287420688906476920526514833934705095956879061833959189838287901588383987588721020326626473161377697225525089706623884065222581377307079743345132872570520948866082527033892792142411004376966616762774043336506486899419741550345289624221485367345412033106480646143349206850475505207428889359258756251493076538263799985378192013011276084434049656265816353999927926749625614685954557924375068282154010337540991996110748547908983009175252112951358086881982471010594292682058196594773076144571250993703034127326853020427944569751106005378491347937640554527434891810074015218846864413687702492336690822174113046876792202232845113077071382858041346240210659613327683894907286042229105444255652333455426664709562298075168523320173447610244981404759066127116761492817276535516830493119641568992535545991099886751241000839775003627513555243212396964326903632181647351390059293453894519098583862720128143411019232002942743761252306731391145272830437573179416934657068282539261502792424040514263823070623143521006949141327776323307282127964045734701393789482398637663073641263216901476101785307565201528063637161628699716019765571192234620887629934400781711824483119248347207033485612320815160536849566074813576470878196503186407918775922892381768804714058872195833150233689066357203590034304215719074749317357743752488472631374715870128765927931771704238687638779983955482267856978061561659152604175018745479223489325547601545734854722476264455686134157018198301348100854368159356029229753669969327993600496079804263604999992472663582883585723870364789764543645720969644008636860950880739037928901326104382662340441125958735656300924822025705317651980715914447169678449157110266535923963795507752290096079383845660640353854436506024609681793661198534491873460121621504335693697835724008341927379826431646942147040615416095547854534674397683775080637232172832736559378276513566908841418184085900063764911889919227247896597508079214769652871174834880044094461942470282977199252509602507143515997371180148158071556758756612614218698346167711214827767206994873513768353439570442067040498806438532945360962306874573616739544618305065793786814009303073076965640684439724851370885437410528919291921753358627281116137674709864789652416457934231669884554785147508206567834141589941239265791848113028439609929251850387487609751572932237867568661331980173592953164751411238391255855346295009935948207528307874966552598225167945830956661467869629368872804661884059214060757062042741430608032566068531546842308651384193772728654945769718588201089597972769908694759769402680703091655205324957603501985671921595125499051069112090735505469315351835653143377876081547882904554209282000919111504628069420598930639438481522251859485778310997080855576701297202881728588456558815310528606482023981934155135428206599125396387600108841129800795140268691860615021740146519224565491551506125483076407307656896337715468439500926520769932470741858641033816287155855315210325764093841405073945151107411766608045961812067912759577552541097774822136028987536553028784467764910371909551332815540025829707063686289253497711662524079649291543341419685838715357306333729623486609269584146125317465588421846423603843601693181542016407628933807867720713986987445617150777275476149128096027586865730824331952603028495661345512969887617013175974314238304804254280225189009365921565108118376865153723769103161133964323427364373535677238532865107664044405880652378336387481471895835853240909725630548673342542712230333623698559080409793955573883997085634757746221912367159882781409209537265136416827084358203828847137641460641374544043875410003065946008828341492362924650959055944030176942080029836339313512372833842808343190073999880352844854603637813323362002449307829079320871590026549770949575023643539606130818462259179794411080232597347383694259941540615225102703628972100747670003747066739474690703787757260542154902717300962897766373159815334769029575261676267517910378846643862228701599260847793808567199691182744957890435644038649434374440715268168935418107891069047262641263300234782352615337622010013474867872206310464577516315755416286223016932511135710545311253077490877833991999805860568113120180324159518490329008988330150605048946536995933104738084219736242906670991197540888688935442092451886317220579309545818281708851668838431495082674933770318160620933032150877826758313552626200578459540617670720073574013702584214335698948921710960038085017016321484163305287901406504086672218573702912946857592288108642645672284516726063204266690596084796922046538764146901726439286974780860453583348316279473031490657513178906114025166190320108130619757893640831202657686126905924384648307332044643544511730520917128618023920748946979189207543301670633408476554877405034106481309654255160228866640724311704532734371020779356023088044400259722912192025962352771129609895207391282320882763479536280041679478443567456512978300084781308888724188276603010817465889567468916696709089647447757533601840463115986076706895708545979705430627777332934711719255386041152895096309233989437346305538192343063210638778836525539409096625177991877295993457606234642946674686472213472334122465996937090938591998329294354365227949642411423418738336551939247707508155251671945238315127558789570563233929171102571742438621549799195060753534235685032932038065255941431693363117386977612555301455498169136502599192114436336451201649334508651369085666070101297215884869470189445610172714925363919253501966457789844266034112847795642865221276706171897393049918416242201937566005478990822642235882058135153918463767297098631356978007075538413257378847419825444600445743322761446706781011926115606262690962600336714122261374211442506549486548648330560640578794586071131631374615500692167081797525336769888787008992160409611268310180795513154932857498224264440007746546270936339228350731087439718981217154139891928794582470563458832443746838236816200019482813285286684590982368987491643603176281180954343735408842634153659598228295167320343604924411602383155486228916587180688855834347022364786837743637498031049864714184371555207417616639490275908266097602654455658972410024839429414656278392302553125819947070205070175271256403835579117602482856251847360340407273316044763987228115051033225656592817271697183011000673279547864413622601549263987626439704829217084035058268216040907953160742307762063237528657738945239317101635587809583835359516875658299177943068738741231474551771133010034219950944011044211297167094437447281504456919440691092658363079580678306327679908365579068764642125918026403616581436968065307798372861410960616690251707324731457736023561968770204552953363116680298465058989509039838990582635099193026381815142425783322792548931583466661509680527797971476447401712706734207085493098752569357244692837165834495295089288447492636640463078071632159098433641772774095442796032037089770555367467742811233191749994546290831005581669485460004033076521995191789266627142403720612524561800103513872881695386833306808513902401273762814116510532147890111538118702900617507247077568901707631646552974827420721133974044989298448529796164317757385486849954335826221175527053034607317609803485306258775416903087817483359219283957583205150903629670032615475959153766978479663612690230101519202304421749411581559581132655020091018891173257527152463195973551218060348216311366293521163763545324360657081854174501149923237186117374942615235591425059559002235285048111261396898300364059368989761373838122811806719386751677599863168780587965194830568041081760347086879612855749906842356008534078456323012810842597252551219080322848927986351624051385251343421573932524881402890108284241170038435403390514638653278287147352930041170372705801491733719479712658748454368802129664167763339398063260254069264454248711173637887475625918249215506597150134786550511931538496559644864860872033512185996484428584948987708217107665415472713336921647631271402392105028108295063640067356213092837162282863627927708679175137806686680022684745560456506470943503405616155079587262503006073060037429536446827378960408193496712292165437314388500074599263516046194749127308632204566609207482824808417388846923054148003671057109259865378677614903907306928180890830770440488695373694300348935251149008274708858942068707804388298323321386001634069192893533314361383953793952443144486610075730810798002666712906986172987252341422091557343682775818126461068591031184225027001031154217548520304466939790526966183666089653476911539236148044748538672255127149180537890975082106131906093377170061512804720784912478845341611552473455748288819023909461796474021877979520637774448114917247848835109184576312645577622076951614679148080070225066556215319055865451487905235532366552896586794347081378392848847381754793603600378010257504132923686630708397759602307349201491409606410653683405308940233305942737084686866206736605284861283115810298651675674680390526726762761854187824361750432755987326900293247931085296270824526464711206089109212255395086224628853810612922864041490593559187486929325522037080368690047425283679646668630784530829472819964371820796492799973610974447652159570803715380866553787097760590129738029383433734961354134903728337371238633340029985842982013640723894492502084013975558584923325377872030980270331801275726621562810128121735685131760859985574541758031527688521620023113397769378255371168132534773166783384016048171292515733762648256696867677046391336571579048172985870590646459227513317302392787092568450189269452284988299954946139485312231632250922790961067764279903299558918080083528295709789787479780353723409283700729285066142304737637594306673977840764781957045471999298388810071752424434878588917795381427608626351069876444023256580400215286358883221376662828805339344099901786732680048355011522596244398293291725832214155276930482830993063603783794580751960913339295122907979028532865258045689069457116788838245124478553245365957694939333356656926779396463675371879235165403991068283235880621186365818498813674368001232412667256190539085009184486932212126225909243976377637385326000361000906425133160094974328730138672142208686893074136753971352918260357390909558453312027328056368626534585592391600822873013255565585415457462229175165887327001284305433141055966929770690321963116590958125231237767285075703935993091107487657875062753543039572164862772831724950228321717016085089727067129071954165214638464987526614059262362577240731247060021656604549736477359129314126563885720552729460702892178580987988063221044422765593729375742117374657264568608230241945644652494794942618678456198575862286457743876548052947304357977495528275713845738737285987818415408497375190468221252100841473597357154780132586792781105677716536819066322084689387806111174839708386016907902101798188274327776419264317743072068866268197537662521932185598048829988483977364345118794315646251922617793342865075852377946927208617175025090780525431434407561721930324406273191243005192588555197196891070834150949687534319126163351494612368447370489597927100530830445162820788233777730647654975799886505088269093789444732259314165744858548764570406778636180999755774278082198805413702465639090503003884813730523981855369635862634376508653634912632037282110604244263176913289971369783179520006723415574574126412909208728877433246981283225891055017181529484378246257665516028651634737293618756307847609172335833127625949631525151445976802618233574607793884717634582434580060083209350399182038519088157899584097865870882108372174837241587563176510872729445255348126653762339266758329863883471390921747647370226386403089070433877027370895797894153033819686228895614297341789823387861577039006330346100275444270836452475534224081679449487005524828505521855074870311664675265174222287345724161449472661654097856777087122765304991438007911011944203251000549007147512746345131093705671361558905247011204279470517319581892499594621313712602837299789072664478382964126891793963297112930327230791381165812171146410011011856217133850930012514959994169572469951890286585713639139449847986795838831233427002382046343496892154648317696309752743394761587173260759805275738058753304739145516596574620225771661973149717192040133869756867150219022310746734534018740459301899126172272311369527332436819195400283575282543415380681965155072092240600626856748687325567211802032104577929264420891984838008868428070751541339045830572192223395334017509384600397032229587029906318568233931403601793707241244703741215460487125255562596057478947181791005077197812735308134286598628973167187088626545722775361417356639025020229042303485427042806228091378496012710452346840372340676733553134779938233163847326008853166569138999950191472042856318775814025059137514132512103293601559046493653364775480487313822221543832663626275628087075391794273107649132974841576858109137125860862248347298007553722422989571734289973803800771617562546957957913173975410121920829333469860280572244306278995325694020597714577269506011138816037082564071060933070236673022619382644093549157747391290325043791892906045645617183621087797305351776361144099318812542135617016126174761823383712556820305996089502315590005862713189758624249517571324234918489239407182108690700767803895220705814307265892316003336251578951999015330143383683929974469901661801160074527866819848110953479478728959182917447637506226365781283838299471139838854763821934676450391607238342138143338314610654466624278838306812443329694729982983740103996100695385963774471082217534701776576282556736750530436632720895482699982782930217726286230955762116554731163986316302285555205726122873775711662353098287082151986481397308443832628177550327911049626049020064688943676000799874728988859174600441698951074864010571272081314538526735690193092772221412663281486913415520966535705355104106926009746328896475524071783873831278114367622339741795544345795716686149296945780286205211583630849992747614999454845316475473531312385973992274136889849327853318630618264842572782636233713006571592944596018765388310648239945112801328627015296065694143012868008433444069836695319081641525497838939472692354086927137294685660232671988356326986338299675283922216185806817592649100991438087033680360721578357459696826659304534654508535853651700980433076831931013750404514755069557598306685504279919326311788345554767654751012128758958849406613029986937007346761284458930683181526297303879336993485889784646120915958478360348567767731514714700700415308582971767196944794118935304922015958568078730200794132203218663556879115946692979106835818933440483294613100620656013084073002932848115853203029516165800038267046011629788008052790832595178112831360687773756657844700694041491456798335277107170632353702710927557677348634214999856161851120473562010159851831346273901298074964583662374819584689243905685320583468828055501041179466570126758293054993028079968994215869081852995121725541109862446259448265631931525862626220463481776619495760228092254494661313738877043020615963055254064610893156624910303642532171453579845016385516121722419242596095607212096017280425623633129779843637331076885927029981959845617167352992767672202554218034084552835813263832723262856111205835522102755638833073696612626089252673616628318389573259957178589153685881901647269250007984647247843802265282359493535318858539063592297000245726452337002436184479002774433968261088359628480453390611127161220016584977027072045480653559542212637592838797885565044792173497428363058916050490783944047584801304509545503896991246315027354846660216387414356458260650120133182068952148801445800248463783772426434317730984078963926693945255178419180476633049769347448677687858981284413823515070436592612610504326117994002725091039746147927363015316146506620659584253689501014638043131337854227110117214141430176853403958809677826040223915800857039662194298288304804127546910877404594654400176840403799510232585878853013434278329072535541647917971286761016559996255441927658285167282677716946269518505652593710847072073349646931165398546446172110672891633596152801716250678159800422999864974390414393452049275047561314178197457520357510566392764527484736145813920202070051956040630010858354194603717381166348266368502491371830502894869647004736641011568286004022401530006323928113929606800215330908548243813033506521718900410103050610593152596285881645054946844660122454768672859387248368361860829338048636039851111915493020522343828373447845948686115605495076201009487816688552740230594316652546154594914860098037062805535048742706765485402493552624047737409803398031983862370569427827062663665914646315914133077502554131198938661774853644884270296011661321790974791507184552037281335422977472407255021861659197233770802732201046973791275754820546950713300812493250558266849489878777566466514401700551103296986497236756854327798363935216622926913776864231322588504661275294249930692432819469645496643366525851628337375879010281728284684128701801573627532783567794517796133029566484524691655342587661654159071014189804602503187523528898069779512145282837240989889790496272963050456285886943074555823486180923083452023882545695886999788148266714473748713893814466884488558257174287554952869545722116722932966815057067079770354757377521938809630168893909187942139346207154250183024835078310403982817300540681902142496327989502551353404183246889954098091434892159290554829600339125720777803472715717629085497151756455606544188953809073525237716026384020847195578979884629479454497320356133088479263796229173775190123991828169825031584660218805769198154343637499617180893129141938091614775799110602934703005212220150904705876904278172003034203971151758944108499610135638968384742187255971244963454161676841019796623905824990751261812664389806568650534125552750053294385962265559835414638505493005278084240093196229585069203944619828360459998270941182716533412450070566293894843741160034289960781779682307693744338553132457099118990526165410127813348805047354102493770276552909163022492259946159813266228034760507049623283966169454248130895906825496747763475557794565368622677803090769952913541222682847531382731834978549572465275716890011177600300633342383874871987941483877107371070098639356466375729446568984261641250574115308357472531815463410221723729660771826360568387165954077731995624829261459032552871830559992619999318740080738949445029133266104079604584146702008362924661426884328611531974485523490716053287951472506373359811991018383809942643118016905898326990382972607103202237445940505888555737225754740534004044466060041227686773497467949588885259365445281935993631708581879180470237691460245497834509346634717804159644495357688925396067384570292383481417787943363288938458151068510763328915865736359157580820572509221483122587942663832351887325625887307361586108936511986168518487781240596351034635027020675709559001598429410777701458302498149190772003779883757014455788242782922754427121387518654490995619933685465174995832958123310997489724191635198632280446932030929549702326968627464963384354687523169425875233936108398757903574834003506296575550797303968960783489399144026198962537626293546494877671450280821552774083810833987102172446608911191695325661069561011685276607424956196572560177530452389773206633334081916369387282328134757315382159857437985114685167886232515815775771904630360243116686828547129445083397038178420233272655569897325349671246124550440128594202413513099177440252624681366519531406132811667351445192578652053660684835757683455859022787199932170683493883128651823345256863849189968751871792397023527741869490409319065971671016450496853436350244770692568225069174837994135200804637253383557772083934625384091376785732153442584664407345575958950676463796842272422993177142986052258263639648473743985928179342600958470836365884264994200251855263781466549210469426681485822828893619396857996147385565340781949365095752972261783852516627518000439531302652688901087265213840016118867783740467121750577235132003925354162201461285470986109694391114377941026509734249996506802432898808606663407406620456679928520777313815315089257806968589477164292515397333307820320481567298331365384238982485341497960573518471518001637152531027436459630720983764821827713842937527960597681547103847610274403263893187300518689408151896723881910349160473921334401174803096501845696878589415001585110476364626406207257478712183069470422148093046485928869673101511954115124472417505277436991961425896788718330310856963499045603378223139950043086754254958838258171014437527791833519699192327293434128625753247476177086914226515187453814944042495792386721410195924844901417831545774142663802307857926340339848099902650907974307902089003448006310846979780500952400318726072410642560968647434967858185612970103275557370932313294864450580497174112409077536411404717481477220667445888714017742050708072717544271340520172408800687035042911790261208193258189647410564473824459784557774724676641418568230495250570918015409110839183083428140656759760485056297361441255939664867525465801567574190677922975655007429653741721530922943739077101830659030216803621446310619003787276134960230608340520438619734378391197105672062103564976069160651990109641789028475157255208929116406139678469940650821744545171600283137670586722517780694006988788534865758967855930712558422184476146124311948637778593468772913950430439889522071171994829932577496187797384587837003689035930076934833975720267955569022408232600537828588487775526526747836266496898573704617831339137762862896869353449249859204141426254729196356203321871098896242048748678395189300504642127367012249692871305105331600529125104605070475812744917678583844111646533449215678145871239791145089958516348293502494862500909184331422974184295357351156976701272565971596493581226675086383425464820992239135076733682871625827257531042084021751642304020622098861080522112133540700674015286276900141527671705696723336262690308491913906770393216772457163626678431465828333021349957940937526306741249400040793965612302773887665639924691094970527976820508557657927556253569090767036090368977607081398910445602016877232543893344079756858678853621249094969032143283234934813874723271567160227201914899826816099245010666964557162095158716908568482045119357608330376679964847348430255711543429793258217164912506636741839506102995488447377552768149788063853594582673578970468969333737287360053945205004274858358060737953849640606882160258619087322657455389045660114317929651637466087271067090282571517861901300506770149651216660068911706503050647767243329290467889531324362644952234718749562261522969383419630122155037901929125139180889925139647266708884403685246683984919918123781098737111895143920724310022038105386893929776409448716625432778902703732535450877650989211128028411378860803696366440649297252101321150760519593408283395759490859816016738793042618719185630289596305499036715481416236965116996148567097963318867982362154040122892905307671864215692722589386852032475365626229999570884882843935384536583143888740826044689154113618455250380269107004082780683134033689964688330403239839911223177968021763673668455386082787983491248404010282445305335485650561296549766105936269841362972111839324662464225548954612599705716161419115560846645228717183351199643353585704557329545609803627483727553599336371913235949239292448371566360591079487743538525354946677278284725615163102190281690875162267776527504032838109682577342133397087730115754030288253129867168071078446973288913929583462999223175053803146409350433134589733096869687814686868526136240584357824818887320927734793139580920556683098039706256286820535403123228559019335552563572970458337458389792145394835567652495463803606711369514584447345523706154010452236963044540615869407077926618264456252911484125349931874369823936214872700464506221460433149109434294027566401306546527516480879566289312356104943648098994423990932775408300370150372115996781502769118259194628336616433574160335474003087193943974055661912356548099199578312201097722530667206587903730756748935167972931053529985649190990403341867359867535324981458733564484543499502262679185919024801685627979227073004274246579496980198180243611435675352001576485026635357400798580525424583682440059671854819606623610227902848962105218136884841012003676663589678573229169036023665368601696241910736456325510926002404753208413195487807661887199164699542752070145306188892086704158518492593725631327003829363167348907422399013897153374314171311480159901204772432169461088406062195172993858715180609881835598758320516102563105602106818313067529881148264289709439213168895115128751303410943226403215012815599211586769793450421794897506415290576807435686621031351348244747044688581169234671833272802308629498929402775569913096885049071028884722063934614312470438701272996705500474412030009906033407379982633551937754697023533914927238136881655885776571719112963637012347170014046421897421941948019404122662682284770397748139977488886181280882908943169738353498182331385057115690476759811494751621870639814099727849492634027796878803104923821902126889131255953560135458183044508728461186877444191435123681848417039694916034803190712896736565367245065602032520781930937602295987908548199672980795402111254588599582286568685729532472192382308674677783792637532075077035900000578825397832675575259497434780633886351455295892583881683565862976033752164269687160553086923724571727085141424030820385236630955583641927955151127215349872196937374207484029782541943287900327997085130999031083938522935613941053093228311817434561670667056368831725706911512708319903487305393991344452614398027038984575709721282878170558863536466642764210471212306008750704494133042251430664673484174234864922525646022102480379051564357107512643764530193160893193204679217305197779380750214556959172067588693856782930538752593136017117400896597381532795163492537744216688840891122686291692745192876019101388645845664036768322555063153020084210283418348883980727399335114872703901374239793770547422520651096628523375272901497454921925559757056573553055724720313925696708684756473136582661098678145306477353316551782974826748933044037630664396184171015133909933669441253712690011792910057430208746470529026488844428856918154651548401101141442427252620155695319915077243179423167821952982605348883314007610159121322661542477399268973624802046753209312491234871662015207992311816658019225251516637067377790391440208030461151680361204608035186541047373483659272171093457902193931986632274068522374002819128226222942772853841811986724605809622468888019949479304962469382118123147230476356061473242846539934923785126086495016004186998511099577774443544133333812164913741516309093404791705359786442085729779258161369472335155903622025018766388588469374731203373195947391845067946209762987036358272264198712287662916057297285740533712674781905199924434310485416959398872020582216854655305706472425060340598916548344799268549352632186803465055073672976685117551074740183125310728988237248954559515014201456043184363393265505355663244715210205157808805904554832384646058718714438606856359608805288449351415453981106316848694014059108655261062022457561237464001599680878670991112921659674521575126010839348781009492811875966755685095115151041561897283682351801505079314511413255304278187103784913211675051977173288527801863138583308173063280701294084529997080381794299845277685921937979396553995973509960134492861867383073822118663539895449247069108035196608523817159909144325084642477061186341557715353392330616921935861669907006335321931439211615197720544622978559007666959637484459938724969271919210572015983073728338661416172261564521370572388822030838433791704323867470103061988206597430633769941958657497755247265508307723508094247947397272556393708558624156219825019164882880575238629453587865629731345838422011244660435541306753866336512089058981879922496781770394376267919907659397567125914748021062531984239300748192934687295693075075398940144361903534736093937321933609197443728985573689257116710973770575398739728151144398036521461698258991710252214280668647952068880131584111036629872055863302369911838457983765583875457677782773508161741161255834171782784234407648291329431814480325760354360547502050572138968441398144005439903036963106992985150727549912740398191622366169952438705903243660945790343252628847857832996107328882362275073676839834032081495084184498940041573055101919521622607080818982827700730775867883325124744692627416798860462197596007329076087336957224720862104563918632580111441547881295552494516563439677548674993594635697749490359882214384840579639139531651731357059654292298043513061114652063963194835395176086853305213025919679920252355225168857216272855305486016100035935524667881433276241106742041007973818273909480529551319062533755373377577537384496434923125651830051021495167936185012551840252265467643250509706342517950062653080776489285195089293192638001202384177627683491623037167848558616028590987688571332362322105114755349862223192817113477112003387143529899753311521456120121588397861649434474144193935304344100733355581727409130691828458206653006119960355477675573477787380760047121539654426622794427293341436626548957944725448990832953828191428259533090285644841927289674744453039247570729293285401447356284692047317121531551617148287895579061419419149363962778158486645101624335925258155163445266483748140484443278412662720317620877376447440793191883481104014290742469072338509194223813907756170538462095999678409050673622018972640357559390443904425620184244130806922014384423560637670104018624294816899694967836050808952592176458433740059709217284299967821622674478798753829428827688320858368882805341812271168617397958403892923161096753386770157598788933271171567576504694575726634355730096193668963621083942487139828857804636182222416753035049003622223409638121211509308970796911920972407632093489997862296801314748876693374762987218582498021079435752277922940818423775745347056634864470950901771658527313324366419740211137654708546854339388777375879192117992910166720044259408487869938270710170946673517642297921702512252829572386316689501249168798056956289003605383078447238378904539531464404011763883981001242912098436254149929637403217173761625278689722622807731648840729534963078802933198102030303143062545048030944155383740227411655631994718852839283190909765642620746453240461428883910960041224466328109972250989669210032071897880976280027315248533470705140820677891829715853219616191792193781146234527073716771695812473390478827609320538636543669243109338782050880085418680367938001809197384813338358568995648671438813629561453262139492142223475363420182846180976311214859600574168712257333915583525033237898585324587557045259329792713188471196096180216113028864740639702626448300169681568514806059004439744536516530529985453470408839742576732343611522338768983945214777140293731097894778738254851335389618119123476486121649991861603613616101369561696255079619647602627523589343176468967419038189659068023467757071344169253104956540069065692447846162917418778083400294729809589026426679779200610104500509569211616457052216160739892337838198518025116951083738171980794709900254868266586901177259257701081431033052002584576581659851251693862093152795409435657241368946434409176330337128291825184743624767886817669886267232047886903657755259605612298920008737400190299487360225759375809847329053986022035955310543295375247967962134519432772188981611729631986934902440000545595014879494053626735077964344104006093636676462602202568363395275566300742261550042783268366268565535717997167484770864366771206256606568414141865915855643962434995395542356507572867242471701924022123921694149972325554910513372414217497241605988789529625288843247267439249869860099271425326639340216799044380133556673625137920001372140519753635731688058848270588686759259242526024787184185685755825421941541220775191305519350672581085280079970968566269679332552106037628393782559177872105039570271998030680534294649469220603445855443644172468482910740517714412067636029079883612819291211119426184575781046780589673152291677714581936454312291951677149747777891669124602559387449723805129974184356443738691464033307250063641652374335975139692279541826001571690967704832126174408931938416336945254554901456626504118353335799019940332192142105283808750335435045559965414857826861584809892189795276335191813857551500342838347328659052246844774545803478173175562135859620927633568530641727295720835527764157521276510592923544376110706205436682360530075545337750254946513187393068426290464603855823842415057716800973214595664692673949972043007053117546593733778995434429966607337396922173524449828323927302664185404875905623044044317949696719265837291848351515658664248229699465875905869666468735020416458759426990889594079177612796057060732129885988905662321801054143747105648706386862479960779118988440339094434731048576537046770601530842204206561902643208455874479184819165615451530565178822460870823735157887080882613961853043445752412710101188091772637641647629254151100631891245401950505635037855339281757476440704943247644091665091070268793126010089547060212553717022328963090170352679880138344538520250033798097959313330744209311864322253415540095208931976158079125332218392254731254205246271258401556841740332790488404585292157804512228614369048422499352521254204447864175928944444149172916273867273199597082599483431462225559083034719434292474728053464187148523179436070418149236090272673057977313738379335798880518146253502342443450845413240372483384986580295532888618283409922196503392836249442783742354067534852358157685270022472653162974766995624828115113165169507505808441530713730028478792783579891100340839998740840726205075691349057626618384465843604978325023229536589204568374763762610880270976611218013366945142889573399298374604582847170728898799005095626102997620834927778517308418857184817021424480156228878198948322075887254123730765839795871184447957239013503078050153671469783817460967375254715373658598270949982334848883736634099648278452440984348229572767317991894929033778495745623091539346849395093880963612077962127121088718071866642385176990671435888863780876016142659379908878361109761070329568529323878328505659943368886704035722183027534190718912426708918824027220178468535976148342382972207137216230384191852740271962810764812744227520129834292611509409466621501406471987573969789992614090135681265265984355722316523416037660984554111724740007376079488320701786285531649406487508168306706359992153831851733636183595454911911542209377382924152459752192057793086843157541049999294031757146521921026777462566675024505566755148848116302337206805034983346275345467415770359034057944023541211176578236674385751701662147978749751539108447960602128277555492210931674367462084915695013745429548503866476878310789882373351262670148572132999548337124820522222396189847503277160945131832882357929626742574078927826506212504973904449452216308477906492584378175920989969719975283797152168772125627001923336957241300688571147756141899217711477344695342171354182643805575388489922094675714859920044898889032459462241863460027901599885574322519921950070061002308227171478248607311801779214559435299714305543430622169878271931734384046722174213487823685748812561943629593530859953755090061223125257181446114075195270623729165767687919705818104894937241683679484464746829371253726803239811208730427601832268870362849936626346283993650336432076134349184232875189768954992544033485697259777361037988277771304762434114960422964759825448532002689464292849688670440999890534182300305661001324602333924041181362740236098086589744769385829595386398280338389513272981587674385313106562340618222650908558995097219103852845968134842104279656007670617126402386224975673076773595399854835653253840382223171776168421818755612976676654807861221046234107414363495825455713578811356657235678489166859032199232450686883049215918879448568930423718049581611234132981205008233805397407734399362583843107197042075016461185986641680644401191140625569748666021504948247428093490756571793239624516325665088559169471480445026709614382481089208313217110889334233616808520919461971650574383565786321356154390782765890886913768262148720992034464672098751793172819914076049601837255008535774717957849178091938033868418336486662885189454707981780259150726166458177498355793984303489331377747148911707674151108380900992721519468357708496813479794644818979492795574515565211426884848674048314759315767427626530690759564711390087525700348998899942812724490085548341109524960531445009791612692305095654217086990368110145537090770666830472311135457592143014333534870572510468587861530029746652026666023766307337929339211941802207745553579744944926348520159593480876315860793326032688243681986150751890904474721687576561353240010313923890804673285023781400344776260256856471260264808779284392375061192427120697264030966703487712456184685811151037913890684550408533564419862237038993944979003574971115905131552799748190443786907602709615229163643278433262742514063135689513804329849188838129199827290518544122991926464834925506943554764999352828130801593995919144455475010075264896397558319409999954598960078620580699881295805853819949407767719769832149420862456494561770167800913884331600662350061981659399171720807098588746058884631121607841753370010712848295244132696024999148319461186256297413545740564763172090615167689128775371979781694121212735243492035273054205572382524805341765650188656338868898226805640961586433458993723335249707169181865305115795535344379109103779137113914447739857353564588581930079970793927459443074281497898626525367458949637398589394759268802503209923927006527725141252656170783938390725460129481755579102378612628325715647347164065193116384027378519508645120740890627816779124578650212104529815124598155381904132072388411462207239366958774391058276080316785071405434517818513195111288602474179273002770718132666920829908076786885991709265116763265757161924556514230535454082396662521164487160677441031629967218483049468036410919761805586076556670394318976095893647335218622443018668081543026898885920702452780868005099502982750039523453610121863724681630585548932046027749240869940429624684002988344862988104743701170556933129256343191600951817348462639718486694764520433445865844845925695180113008720880897553901752018868924111184145554142309221138556798576946564721254058631791087866612105256892431175422243298471533429359937783730232333061504831808207690475381916845895555586126517796941426818801773351754985361423750014975771823251059721694701916487144476421482338282834483781888452768393712945499371428590146223062998086757023846115831344670662787932770416875477037161401016916072241534915802737371018221713914097584147914840807921980166705549035498213285122317656812236699643703744834438167441058512172062328420124720828759837455059874579447769569134269423583057042350846259062611709427136654274082278332075018585056337516041702528170143734295075026201349624300421809306396080437588087442875954009745765398816840044799995561265570246863144239610972554233235035254653861164932731987074038929389753653111129541326921712033053011749242416875012111900024610991342643339244009671136132461639050656167369929283017817113432375622771074502684159302739629263802328875452294572523807092000776592979682267707465238742079273025638971144543182392683384485138658576274461789524845423802786298878059087906694364636658296460578442134039799786451903926444952090017026038686658817565630440195737106963555939463214940758268836892075020198351389553437159617379407926513816298330144262288808104233030544637274958582050513890289097395226512022328663027802944213752552192974330518786286137936590205886039329978228880335682968843974176883755715235448947840579328077100710662806064406962453871584787450733991389426716580856999845758287274326183901585083509770971001251791308873973359991996465066157285325540146641502526351402188004226722705948918938652730888776237654368598180987123539777433495677194557920146861673825925070799930199498851430830522316868534889953638499587999919936263985572719595178005078759938679727304710068169762251743082327981920270080467701766666065258753460843793678857232508971831411463037937063436767781182401067490317507857949583569550308195601655509611917559594248518407369657205115679149818103072564226751903779118745021659188158139865926369303705836790004870044128676417711683695091103983799781142147794547455357901179000810620886139381627801742085196406262682289985089164498342064028872983874441457971602667269477015735929621046354392349512602968054208210294697675448458503468593463702226179665507045719763590663321648798006353123043462440905938387474441931562132066428276163834277085946846883154698548929704276012434033915181936355781196122533178402525228745451009838799776251876528840703491858369755047591687480902981765304300355444957636086273278702850678298070267415272096622567799388831545520291977143903735095916461673351112277871207670424195400210099064085458052944058678856430594662238758172065670354606281477408542810037488917255429037511650951280439850152000095490560906305437257953263578766009376951458289493051657039520623905298199651428346845193995488760698680766080506539440940010929248285275855684609678642245806753959428960555568122459755523103080184437077835224045808986728214695857023077909796264881827668996695789531305008160217282541406245187110024356395677786702403245229450202009357959552126155237948832597024741874260633118035961457237914519741290472314297120131746735681808939592521940262590378533968233230760650326031876019470181085847754144158668229797258344166349404659067191987894344390243550138984098454853113005027307923751461933338709917153857354855173407009525431978542390727715831058235385273678051908556254195918070754653526531105910844249693767632823235620268116174560779304474647375989313991856096764447865610499692942277971764344429515099328183344789148621174053105975686527601033316974078186344161918255495714677562739445948371208701664459503534897585278486759294172149378041056902478212637465143525761329872502653135463453771882428122298086901315745727906757930764508912069958084815868439313405155719208368932164366821325820571652963782610024439465048980271303471069770426440158599790299285643683656315956611757811643442758252526658426489220393466579476487940019943372406410773552757830911161879571095043516358068915044680368499169309679199556963042952929815852837363653919980891235380165441738942676734890278775739485711415492116152077955968778520048579318730847498335110529007939125839416363315782741404303189850861161065010665120551617246823255411187595890757934020620662202806355697739006259298765925604448189491658469772179711198477201570928820040074786161997040380783756437794227646361314571194523022830549245810329633709660131224283948734845816880017289587521304370922520970136819186870770281148909138059725909136175735586693383257438603789205099641166974680875575845021555095000083263921281561751747473392104572722303259218561691249449956895899514635168894965675208921308581970407486752619668472378386210265147095564817198174961092611645202340106679561972108897786656974609249102491094066987505164828174923107547204028342335965049002379805865893450590487432904551717824762249953310646737867213506083194655942035554828772572051755794148518845509358646055325180673488461677017528727934038795215977777142576367910336199684797787044322274657915675177143573904391144993604914655022051031950364801180811211032319764400073558481531501533810858700510125932287927850782519904975244255257271284001460451079810493881392510611031811435348267240579500184372673137753623741073271868419153841141273159379546722908373737335121171349714801514505916373398411463281668301411599850468549989564594469511399743355258192832319474763163050961213881035533465604100766273425987654410625813740331477885314282024854452453985980539477052298090073506568482907557613405609850107591576427605818848081164289279357528499751472111446930706330409328054221555323413131251457731653178305771546450847457847381739625287853442300728105293493948802123521807046596780812748445488700847639233960582300195211735268203777947553468942136323437044129454493978639361804257602741484230421553857589998745345503793435416963640285376514801789804654137190235561077633961840823905372008965485949381982572917731302458457775780022474230038273054966948147221522686435278927559116666713501569699790597794082417198527039939372775515620410867347813286970169960075694594327512969630451108117038645476132061502268027630142418991995621536781851237691846631106078812110724795199822762787807529103334060021036953061906509952126429972685448266788564220937637015042789947753095671693578678172885380937669026068625276708758399565929732715130887556881671910537705205469029853816625115415894647625588165912643259732570388729421193290405521746021419102615361036680756525110607412715633804074965603572737043998290379125543243673230096337354806081091572679936471330610457423600350942775141898262267480685161461196390354400202709377003394781272488703362331982750069659734280475990561844199868848638606965569297655174325925937270759873173185924125868564280631847612961643650049542599565762472600712712582937991228693189536818693491264360934921267922702337487707794750872115625315638542185804618280795286038365270244992611160752749639209847998235618887900612282481820860380766030658069975064475325958719219194394109178371589726991910760573694164746678067960751707707584376521683622953994781082263611371295745279789126654744179988583215181655881381714534869254467270639791423816196759890297057994776407563827565991130217671198044721627221383415034264492929491687873940407770854955155737314490764923732324420772868709789206307067834624740836586576903086164885752462797558819361854406421054111474572294762453074209685608358315068313778482530870495545948128418530055985331827175528735905829293006591583463007451106559359920999721511208132078943358391615798576516888049693638340111028865365755252962002924239046276897058481454060430003207495988835977840608400566081923868859210720548906401831184257486390245602909657081392108761537192683179711246106059915723253199418657601588706869757059192510971217061106959871134154360170398781554042321704649017525566863547861579348758966218363466237840009176357902897618760745342432171761834736490983847593658798230359151716363526668339716994412204498620557779513158065474018699135331910885108272746240473468680578276857288784133061799928416803047144461580258862919463888181746598955614191943046375205074031606530235078261502059978953526275051547374211988413884936398686179361532349404422234554535494528370380036344796739052280605500695624702820976583310701918870333427778101498042429031174607670547126082662246585122938326703358097354006970517302801876735130775272219110626673589528449731499806915650157003695740104953537383669023072838256965988648524852492830115398660777149422418027267441670087339572674572657116418143551778419397054058417451145752358290431463446000039354723924167613200414205487527137483353917416662993477117718996928613764012104492014437676136223808238213090676031068156637876813968920106377485942113213409112011566111028546880801634159269620284748915410511161443584067575150659947382710455235297407293455439910537571860601503525310365479624409124698168124615780252415092423780610830849508621589173783706202548970707409712105571532446466185304284886154703666109692260478287272862870448378988535276158982429316383899376405536185916058060709586812252477690985086497727507416823259088946912468503780739935391923748473281118159612686579579082406750566235366938494203000265776065730911754716511177232789734645255220901069129406883293075754185361270663688475597436114426619135364720405745243549055073129519377328898953355691038764932218324183227933122102327147232876638897759864019803216273378554224083433480988068216650504720276254128553845949723770735529318367984778729567564211367088469343753413264281483885053979829191490175498347964346293392745467627461384296881261393547141361315925975172051379475711130247255649049701849673513805476880875164979851243045661942202931386966133034499923716650010157865678330459847718532091468675888189289786180479131054343685402250023604878861710013044468176972358807413303642471925736043504202421020857652796105299059797045240366023836483987987094598613563566296249606541732337449704843165922742160193640007769877216507969468459552750739166193435389151699436519503478958021796738419880820337232410873333503734969658446213087258950875237066996878864498638992483819555451258435450250455638972613078363413898469251629340013168062076750512614037130926355678077892580931552026524408793711583623604851629056807359316282255976221670628920103422787083972476865716735508133476155442599480753570509162647877741506550950365905591546292324941880397075956559470100997049899005733275820041097591320427550186851044389606627231524676189302498085004076076352285185051812580546340221380313696536479037406885819375708820667053818716657867592894218717273196799656978067909272370973220967630245878308920745249311945932475915465456512816187522721078999102253642220285946740305418090038728465943088210914207502216005880759748791143383749324322850506467961158004133528859388046411767480450363960829972903735551798494407156153512106216232867839554581773110167231371861785350498959269715485943421923007870209047706430622848246151686249416296563909090342029190305948040263478259482513635734695723202021201411798385294533589622594305043234330290921351057569640385681312242740985683156177306845286854781522359533463485560722882287144813626222481133369254758379247736348125496691863438973003603101867178945969033041698645812079646989153355626547916181938524550754245962330578609575542912080861286924106324933430722712735596978867468813903223373171811865428579437296045474528055897930573706851588552839044586450396323968088284323905624839200933392262485577970720509924406440197050659387070503992643927376071759615790037097757701262609104863847154226999364963453588622554938110660367999120431881612745462136722086487209165149376334966459902586479102272578955089620894987094265835020215630625609016463642779765030823574207805383907346431902758217315739341221235213038224902216809142898489553981221446193733026213934120801041401588087567523542328899460172245634137032313841492037626530557322755196758320600830562688227404527913452335096971480108085586663447921829487457586316671047688116620185750482957513916101395049168700558432553469810587050107522654298975359356709795943249096520701154109528828888483329804850810161080407288827569659148677111090216331014777632082021448577294311199207975376299175489289614144059550374116836648968891015550686707002960860317712074269513706899423433207357239821334057421658439830392054073847344953784037242155692304401578632812422171981976117558291410812878227613903288616400964550522885615071223564217035156039703288263797178718422877595149276839085853048165876226091871439953817954056205949893793209563360165919706366010245427136891558349816904979216103944840137808415756237379451290267102834016820460918551953342537262694028498200438633402021193037746056400526508410884403616092453295992282133435883007642878971154955318974006182761068065042477781428929458604390518549932943543154296433411267284479281479119318503707038178979064273319758538021335758238194447462905416931348439932260410337062941758196910942452205703818573016475215934043145747082758360519293770240220110418222224487221689444041666700850801220467310915658758181329756182391798913133563946143873104279203676562466750263449821056196313266122917924829161922848901246534059621757895594877684420703342230026710788277640786967948742690468915284158698378118811995758475931240990742334513910747135960476475573756344866241391053052114995645960782939072510322227675713392530001424329754312843753813417630725076210338158464775141867726011209403706312165613061034813616105299815809355052409946912134065326324663055041727584333999426514634825060339575530719271528636816543833184488847357428636425475399014617352359118390881996370580584907266476129905064216871872257073779353707102594430645577733141715345175644900970931265402405953300068421027613478729686112258463267116678462596543533186132211859098168933674299014149549749200293984820697434007670272264124619061233890851607784791270533233315202220171605444758215761485178829441825007474882211910237513623014578798780290760387209088478178392645064026509438828350955842446295769408343129192159249237587879012101073379107178190325630699228987471272474937358272534371824542300538205475693334342230523159897591690429682024269333547518851622153434084525507423238656168804285777619385521588469423448026124440218633095488346209231525566033550126832332262187978970632078368568135776158147912062508790193359617150528555235196642073208715215200362775211395875167649378841532419539834614922820089346543426021677094239866334478638868483231628075029631934454274258014136806067448018048102354225958845363899372929927991215818726344634055965360870397126431066735432806746612061509967371306925394231602611005081344028787327784313412951809660466786869219710296732120688159769018431740797417597510366247939308809750670092993558698291642305594781999217590376599842471016399585090243715652221348220149919256044524985522923511668150551847251690868506311527039040358984926797000564430133937901930137734981213895878099396474435597387067354085693433111691100307993814612440836525345551696445640915887032817966613610644089829991431740518146043418847929064809354166688234867459902664518369494362686379148346626375976007497484358936917600059775548025898937922091600799797067742578362415221197213392020622113359722662307817956788227801823137239960602063110733746555591489868274020038940958476689657146506492933807441394124345121867284733383966225808660160728626109533010167069324430983898507423284001926623360583844104686682373004873935298420527241069685300864344941262274794020897402649013859379462573194835486705617561466889758175101178448536385653418389476969408881228194490582097422990232299056773904643939983639911135984536196216381796610385341219445393166497816577913037173799839851172279673924705093588253973700952766828940257501854421819043756716046272776545972913374765468166952389692716961008113260198284757698557662436743653076578555840334740501614398600058036554193869629113426453305728547985956725035017685424647038223677737460074640478027673610465852613545847099830417795864051084250805469327121967347830269389255118035109243962155942813056004580741139505564064491357989730316506748910977313635948771118166060779958893611023854436023801276221260529762589618973392352158542797694125003659608542143810610688804015455451171968223884524597325516374305379644990036676256786284712306570498589400905215270037806125664637560505206446341633502479851837078418170147365825197871015984210277752702771949127913961005672040057752243865886136169712294436434696733214407649048898439711036130008262967071304240585912968161006032086255606137002426932058312156151913832972405865832358350957541449635409233081392534645133121275510959069566217578179509708305182119972074754938298188494473949712322590693739677075777604229302327209330905945391699116114989714302078771059073088534002738197096584961583997221496979902620522743168839803596003878505410885718106824648446342073771345443737436411050153630513478099643363240200410576883935499873201713429987983214949167142102946353663039252379671916480114624562706544533962499359990052367012174934889276082125901761448343062201977665079081485387510424312418695396940441650415512819844156416516369984883321569569420575294792238212232013657819779291866113928671795170289955568330227073529420799461334039116862761508629239589049033162717362874397812242458184185617623072832920415366233274407595890322297808043128278645216164059049899334253593141556087760424021737654044782799844308893015579794818252488163340186825185615646068721733802467746937248251857121053640393644436683025332345805119383994111989768483564901677324451092982664400147451284718036726020867175606622830305089089989890924752704575339489109542522933772978544438020519736541814914832069845334233355828441351486657523608090153309059934567421843725686821018256009711550313730737578322915268966787656148417895142328568055629608178856209109325766700245958762720246241641432782460329612202522431985504103978473067826888639728929192280070068888940658997129734325216440701919753138821600262662608498579560492454848197568884192907145983999334903488861925139701730051513487382383994974626814916562322353725642037464254093325779295255775127728722999119752986050481483295055823471963931725363523400296824748574819297548336246330872673181277487368644535800113167604653891697157963086746942710755878455332178039246569935868864156635925985291910328970195369886972587155284724152687280163710401626674210199120887010811698630610858795428636657339280200445120621642196988668495549417889917628878991831295763859928263630274271164113661005622876802595481847123815287190243122049113048531438803300970579222769013186697617551130068313152454611553539704255893210943338812399177655569356997594540184391113489442090200590874820581743234906752267804289312666688402776689243914768644398174528917054910114357214891359775133275757100432286083963689066505333953059061576994981128592997890157623930640879188064577444746100464877949691025139526330358210837780130257343409620543554164758883837892650931944369074053782126953554711509056908874421912844648334091956495605777295605953991786544710822618652072423166385305905957005868965351910686016261318008537601675587518120475738974299453779651799175360994807939930343709722626493153426253429657287728126348177773968811221068443359388738239792287461194110195033694480326983764387817689814091550079435601992010916806835406075013308944957658400545772614308082250516672199244487685688194758624264275895557134967194685409297384347453892804597200189906732138283075315757553487540694608456056475273036996982491870250473532547913989164826577827312348713972018699890542254258682439824552480066200121172990138416332018458068341477509031592120728448302925450951395626193493362995778660547448192059601780774261112400171787207802833896229561943210942363329870517446633557384093288690878393505861300131155329246637521231865896600700944422334287751391094825594657920319076012135151283741131358854774126724833389400670574936666644375624147636724687715945553331900045757723423045342749555423587390525352607928894493227046197544284045428480527335162920384490730254310304270780343972794358881162281871901853936322515834385074203869105875340535773592590806880706422252870650624742847893809083111954552093314673090521775327224674048866327067784411051696433775757438619430972770279696810208685408446429868641475003848309600989980582886436667633308255304222808177391277681686381022848745055226538703825023844738279508708092379888921211521475268752042033557744559049280067178000606818591675656614095025900466871686420629744409635367952405927154360884801914620283384966167945506563314236448789089908644492371233934613663647490526694581823959157768131976766784908843572333106754376952228257852552562312063607971140273883039653239188488547318366547889250771911717390331628176121164581883279850625862613113132996991609811095546622324871687047227788814752821123651321685886662066797867775307507874787555638127972751335290592708575656323240899749159705628549522235805641005203134091043444817439875987128280045480107223345742548784710535677000302607035973555107094995094682472374749996695887255180894672342726495708329951425641059595703664412477610783413643589546870155644235025772010604996493991756254907050154345728185401079066051897918537988778632579669757850623531306064595034851659940293425483198014683057599149102334416764532791187619257286957012122276911933773871764560435808170314123531682837776051145073403704717321339423792090842575486780470556676859584932081758403931964422265020342183024946177931485674707205387928724724710454253067596744335214347731033552322742095911618062240963610659722835086929038251181808439041867297674928739012077587469106047295920496325890753588184232641547767282396836179666069580943961006627442429561018262634250211486436911321066531506304596083193178767415884944459389661195085505651494843790354359783398286188610873994024003511263322094147035730699808557131708300758650687431583300053770417340766516400588630895420721087343163465717414201464305048600845440397051699811818616647561831847395797870417286837554705152329986213631605762464501911222266225173242809459348710696442789514240445934881640235824244461935392314024021177489815796681892252414756182738399649976400489510343403642450299329750491745863356452980467312022010989539355270559799238313615571904404075773881988207591761771884410165615250988549552014434308927044708320813717041902520202666154885819195520619995993624526587927803602492387765696753176415616583855829359540618507067108760943314133027120667493231104092496557945959312124789131689844765241551105797781790548200885769647819872225918243777298138834253749087124131449383966416775027822488587158159165020269747878894829466673049925292006251362685903004838739087985016993667201808414973059836971992890499536931197104627202019742070495879276037539882168630160743836148881740596156618011959066611488788592344366261586185739680684644297204220808909144443828481598926433702042107128150254933879304867055457433766450524044106642012144739731787370023113913766956464918339109808399418102308219255169500471724528292253572866549965961565307494322434220866387105982945268731124152560381283114948941006107573735689740535636365623160546767548294182079382632316349880934009989236589284311682845648341331043198434021038481518148375248779373735787146281947826850577380045831038754441036660844782050961863894409186571083969758135504737400316807298073304655575626940520214220658531898135284531152934326374009132603507679761994889055371781718792379303552389847816694591310343919850875534450660002548246048978512930598764787013971294632078214920801262776673167944855614630831592172100163894796334681879429906118944127338217969651872251354313088824449859720793218261845923234124012471280094172632858902995866229408716516947927988411508917310960167466543183120329606301778984979055246775935163089310280013994659963223532667767542951351224814758370870617914052986309585407755373279589303157128931974231606170156584542278395949679271602567463025144579528600659800135275700272403555388141246366161665259574683500176399630911431505810116654534048427252488343139281897091082658905764942174824524988372677300364237788661481033804868686110010508551670525450108857808407863288131427162850316811655282765937942266482120124461505064528270112482976415545457145166732717872034530623377896293096553841068706609509976517457799164877192997785024176165710765144896819514866170411661517885960860184584011627677064902538751588364259863712314973714974261152193829777417653598400601035124526364989584741564652590691374075095723914473091556824810455082391214756227433984054221433594074765147212702781767489285386755326520975130263350520887314976410990746204971268411296725665245806169035325644449546486462074618294679883060523506052848431327808283388286489449757872283349484258381432947359855031478253948235488956721356517761629868798114223790677883879983162461506133326178979933440349548882709556007552764185799999106998843059450641804978236564195330414827452366817715074513705024213934913839922486151474469165073745542718584319360850816841249801736832201533469943551833392319209050255085794939232557764815296581415671581180703951802357201447064978916398317210846821147616236295176977411672419273127956406092757198204325243231561409374649920634551085925598637438602939050575760422249925552312246770716380897375338407298047525285263941224661621229898297869018642307337193114205939084520872239415842563887504402711263414141931615980119004408125925772506645455520261265944379890359730875241264606092493208605056569971534355773205161871409296949187580238589529148962698504580234738788141020154753981173069865067349624158097031994056748625268067783108273671146123585882614317920114659157878378295826933744328291852119650907626721943845366786740075653693603210505663143662297357164329977883378197871691719651393592656453319992473858887959995737952213008332447840558869845343829807774801834431693487861967567516710564724113387839341939551442828487335264684751138569739822607712125888056752266400693678348497493890913536275099941977419972333837101568251314959030119536903616311172493220250147879249561847684827087610756518401721260068173419941981033539980748786848535098057517071383899842023515201850753755736706292425648640410612377625824084065868581185528519125870684995482820363196222987681321025390132831798175985863081597365646988445260605248073410536904492866607488314940442398260166360175838694233435250033806682375955524118431050228914179502219330340944777389997080266005411961216221486404004090834159981265638814095437656781365367299400404879237758251506010811510604847641099726096173374817749461401775896841595635336200843988709735885623836662939936609966902842843850282693333664593947339384079752318254847660027715240290393661505371355416135874584011089546335055596359920146549489432290992812442678604126931866949331600911503013150362987903488661071536554958161105271554626634611663255515756202725816212595121135468993493991022468589873111430558038720759193107128761414071441804674954103995445715537982971075514732456212337858221278964837449412353308428263164881462067741509779335466624652635423763174158738246164049789947449275629383944202248920038525474353790464115729541801422057787291617343281821081056289903501157214608270865821595531911176665198022705216333002871525388061167604200061880144364406890922943069055589192397124954307053570988209877218861686876185006388339638576591667223502847205212222390374677056815151658668979806957693253448289555489565864789699137788000240263255330758518899163856044982520340553039707642667970513906917173821245179559696737828455710303092139934461430043456203111177388859223072819144061103500053899490434144122436736726920906376013527830655529636915962103651755978211285997983600172319081307567800976876346690214014552093302478802077021506423513054835767135100351983291087268572390031936644210047235275614646703594364513275609830024822570464003534820945846718749234800370073629259359825739737685809327570398486626806611678834135958061043424641865390899083400742668380967200887976137851951760721366741928741313934909854200055802403743294377364010654721539098788699712029562137244424726812024292061358264471287603355695314021082326284004062286896780372330782507688055648603472952806797134691065823736722160114454848022210000863533831718723868776485403361790935328311862946099446863481298320240849866781251796080596810217866627112534527482260570062867536370789725540128219146716962961653584859951086154205404165079109630685723618781694918311893187735590552592283120277235291352451185939418912173777953781984102048452421133504055853472342871142291973408844075131458900628902351600613323197288310810845709245045050537327800583567969679250977588392258144080626457179343364966988357796289623874788341775494442196165382201140634266870125704075321171608489809542484264334478331560272428718461289968382006255655215409757566605162939540875437717623497315495141833836487590861297343331342447662397397398439454971066289545880285676311111028709537718284818352083537119397255972904579345672052891793152451652504418182932735987683164157879909544792631442012497296917822311595503498158605223151925615032641921016773765239057772075715211778978075733904434660142389885348752933639954397930184289949398584809611147736209998924552651451118774281189012623304751322811398318677287526190068305964155592587688214314326146948172653492503155630665526911175572805871201294481490551392133697149537376330712935330424660569530016653567625522888752908194855993341832394778666975355224144123199082630353550145110229330776965712856973486753821695583535780743830123601551090304730198930708358027028297160512895499008700577088406118455338228148184743862405694630967352464935109898471683971341761891928562513711776273531664245406266216554499231868440433626423866170658793623626114686062139269705453119040196029453470023674253688406168418874374336220162424656402138782719890838942781337977157718058140703077012466478364363160488751075440177066381523922106124220714830983562734164153453955646889400167748841970968595629379028489829345791835183997094353163524693687714786339804461197646524733026880450633709221326206920433114913788877850206352018613855680433670903314768289005920436393288796113746983558725014274113143154077380559611821203764250789674554763579740597961559187560787071252731718198268139851230280373331715163371572845609301108294957193017651450733887388563415500922196998994602615754023450068722052934759875450198438869899957464202752358127808497136517533371973989852612783387214941178603840154456052677032824666897563124016890771818192742251834233269913552908840924463223894283432931794623883706770832185995317058468549213098595979778272519316902532904811313147518881251896100145135181312701690609506513616111257229883690900003660117051656992702978903175315116152396313897671856105633560923738573684341328523865859453015524838273439910291030462565185386788585257277117433016593593151659888084596032212954526019706493433685308924589685009131605721714175566179149598344106961438214343045659765582046319359259700711355119463891894293939452516398721765266714843168896910704588165925646555164617939213257376794676439075166261455933204288727672245107816098352453407732024645883940468191068820894957877828163015024940735519722464029020301538927172497406953520683958918918424345162880721874132823349837066654214028670752748816969184812632849609539049680856298033219164333819520920727614439022971883214073699964582904846737029521383657018889204366469803813607209664441104415457579948874587634663064347525337424920086526367701638991513393496571303557014375478216846823605668351205341379394486877582448415374756556409079058287482102100494696235750828291960793342987890389988359087883503755979094769338163362485434679574260889606295016384566293045258624933798181811380471059406059847960812942431132871118303808854473400981363057825159858535163314307021581929765007886634402543985403187923586202777794621626418928711576316928444029241818793214718381405370641164874488756563130090187151112970310506187044253285420211005924408780638691713367900047655431512101650761800836692974992318911249398363360649170340630378730949105186629990022084115854325341298112063118196002331794011814880226283955821332889347546701365295640761468401840079352593093877103413547377079742750533381786426231142506629002090796232534628337199837726911604388331170394736945533326328129505814962058048782165368228430157420307997649390007559645279350020075570188774554020427610037181124127927457000609981693587506101864303181304535734266556509020929285297894814821841568887053405151222904359007756163939697871248624615599828706551792799974751965812041317070494836107614328385652178650538673737400600234780101228455281691240720879142828947848033573992754083912443757215509848141800594641627745235751196086328144638551285957380039566171875108323960284525210535474186897743127583942058415764366727332339245402435200026833923844613928289540814530431495461274726180332094560469413603778549242653880636121838559720147294439069867072960954901319042151318953997078841078516315022422318504949500700915081774300882969672322238063185028343646329143314209206870820704036462225873760004641462560859748834569247234343907432230286491098229240584753180955946593678554868785552308233782421217228347840330626808217439709615545196304895409256817929000786824185807063486046794521196126777696207952344344042253589265654816229636239166704153888503310433263565764902520180181271437673168582572853960200215368846026764947447240315603550053197807714979020242084809773684140748644421185750998343929909454741208818056113582406003323972874626855557687533031950701761317329897549088622845482075614978098716140119382908000828794464456167327710377709954106666437257646442690624423199943194408312405512485188378310946341579375927780325326476598455588896364128119000306332965104510686765430183201143967793387603956479622160424189624108266971805544759108834144555292647513823690204364678684899013027275711709673773772146256838294949526363581042480413340318400984642381138331655610735837594258454630105200541364946856461437348366126212191858599173893685687902305820084050284445955851421498342395159961199586736665433988861117031212441376209699759028737958119970323303862256248528013665268880758104384068052230035185194792102262373167213849254341749712654707202332679458013328019547416628421755069953502383271820343210202292128655986607155504001549382884123639088050383247457734172720285191968060954441288578709903884733489979791752959061519511210515609068395183993610707731686424652222026724455177879703013891026176655241102489510651860143810701186459471447921279142127680925776730784718637073121696456016372682190790427445867480965659606409108894314257710323164384261770298210921956851080085081573294763625938361900370856322212652787819312504417298803663494673182518028149391050196081980915564646185037951296237843202298724766721583359841029938446046350912605714646886375968317538379438745441488241990350290470011715803700307732848620895128797809167438213223620556132474630249433104720902745792472125802882828373496409249283225376367747840318576010518099578358211995952700915424951383494826288923516409156121662573512572096408253881719673005473690236942398796808431645359831180303964471170128930053039074366401459905771798372983686995157678996637502052099937055544697471227771455787690118140365480959588740918841355594661003764410169030901468535606900166828877573232696786246334515096164508848405653822066544768353407009392033395706054548346666109606136492527447320710263428101709984646888543405592870324464707375078916772135487906044713888809677765215369807320538375391424335801989192159003686261192799645617927544578574952822687757150673228815038194055377048336501431731948464013813753972278382247001026868924304689059644392014502484629128109386640009185249182355882156589079200503734736011440594181971214052313921398930566585907527873029285907856878147891493756873035276836628839508799221827751578922282872486326089955335585467566480507291893721498185888460162819370542449618860010667330223456598417264199487359091298147933083649460321523269826906399191172847058390098329102791166221744767089794322164051550816571332824102870203844675676133878959021989470137198145902393035822682517621932262252791674410476890399904935508133943094862921201102083452346292790160694748428447324174100783173257670647188956210669151487473193433425008762068611090922485118578523407204262707891802092561550065123915094333887242989170207337065421710790606267608642177727134390890524461915277971861912830307351628794245853925724201856343172268488818031587991556060378787120619810952741410763936069923030685564270094193128483357239831831026957207882932815179695535640944554162467184708859693091209050508842787101578577608855612659079052222456921990599439617995899715975344488950886279955267318631691008100362514731794802221986407585318043306710128529450406147469747467856797165193695933968687942519313751784524578367283922594001321036046709059294893898314493261885765740611995224528610182882647084495835510181222832988402209721137498552946230590581154941675869921016119858919841816912721109003339269790374542918950361718631464295636616544624349755834178111895849333446393176147782681597576713669425372631608496338926521351130811474327621348201271787450699862129482417331141673361437172049073398651767107346324962716863538384031327765529271311245687622253961674148623358714285122637483874684660531658600430630801414019204801881348425919965935344128694694630927543876434582789510351205756846367094776442978599624436447823300180188604638043453757624598376565119598903961184056076618378483081711258486089077541947393969348482464700066342112726664176813499603717952955305515563037858124359928904556005026895797717880817715664261349800034452160927466351910149072127077631991102387650126149639826025377219750479065911252017860689400518801015563253294454818014294037800464659205987414821501724723965575801633854773400353525582458466871922673950513973668685922577521427320312604482474850559190878982738563928882591751115135436089151576005700116785478717730078031810886458447952261310507822820998640266779500164470317137223451082122043569335742182934287528442150133970696063443387012282543419324018104614897339109859332464062917054841310330866743882056309665334895713649146089332670704216535315726925311021510131323650714954340710086915878114071729684776258581365814357354797202989293397090784367407892962394879042786370757592320998434238425772077757716114644652619272951034058992700472187633675010617362123078096429523713337849190723818065414487517164734112306346703008711295387168549457826407319128638800003245349494627948377147064170786906203382968367740261219866639233273761490353526970050633979035113347660102626471757444733653162906302811789901893478547620612470247082905153336621275250502204572957266431084908780093763947312774489116808626890123100891421322196676322875333557426631216714645955331844931504527588115256217134934301510531316230188023390434654082781727796433563465124961449979332809616638272910803432654363948527155450880589132132795295429296408034420845746708542487031078572999634603721999542774439181590335887347966131373642618252763154044156218909884669528929302361211201298791416688922966375592225375580279680154349117580341619879250880236342282964851774778236962989551447653798089249518740112316933397362679018139145355502678605051672564174328560676064403181455012874443694136299916894218010340751142809828582018081440418567977371154119913897665742049580079834491248054660379870909110768766484157890930461916079183337350353632297896631737347629601140162060952529274400413142201262174741281306123395643094457704194762160080008483732388206808716991178240097801724403266047047092220631591610080927851932744431780887817645657907906940342463852229200922515409581036495000386626128661977973479199299992299919813827062409496873571920203653970568608249386070470083749828857871842996305852003462052454656794639270884422834491707174198393594268238793261174350478730572832729232422964990967371125742416978281392738609840765596846754063376840927555014568755974498524661702414404389478935490387244886492723122533359833952315089949072729977307423943736822134466058419067559568410290334393882143320369756995121412757489818114249579021072335439848160156393549328076736093625531348675337119615463029749404943817931939039611332233475446130191189946861584617867525344246868020342729790802628288586903728476189399022280643405133739643555448414563462767309551902785171436845551727500331087285492978548981009064921425602895318993548134793698629052513768866017128294646024982921833709962271128340458191812121860113249206386594078539000048288945471000704865299450647474818120328224086893416356239364763938855222653180267230006788923168766782137532004742023030711672662702851097216037016043307245656250256486827499597314342778653028533537571086657287266711664150803473149359531443578831234378223529585874736464523669051320701016553823605655702851418858735762158510174036562080542240771879270488612313716358987155168425390022178817203672514503402547541971079991665738878684742023297347148633245994311298197197865713515081820710610314787341987406725807511771920771113941169631337591745042077756105155624215463627214375339738853185791714922355674426116290792847996549271539509045474382512441923826784103139514279445515285277161449415268564169925043744746025781587923101397898973942036370655197353112889442368174912688375650380007863304657756775075780376816952857362708589931134651924545735881949782929369244984060791039258138566568027200105114724380315829041181866942957362519163414730296840665302986899587578194842602758001848207471837533560040656268825869386034120241857898368805904204072405564206645619453329183298842527599033559302212464981461341634498826451364288861593156179288064889211251873061947992749792133799933638355353019508864369675439366133556552620874829960488919600314653782103820541905936516886680134975247658889529145843100375481568421438460103592762942110065259162519446430233345892964310139364058694277982100643852674400845041650820446072629855100602227572917842390058067864699406220026643680049190942550820601288341078140080549839010098500454959558533126447116834749351427032827729700680290924944626392630251913277447793830285844400845939025540016109802407349206748805960308521170885016391143613834729518422452881065635045375411138020833718091924120959737705991274350565583126906231056818014753664091829566199363746624400604281552167603139459780331542604877499855448514960071785099977543813099582255503278335745302210802590705332834202271156381061713342747137371412563250120661488899917495162150819169010616638299977923423852965768585571478609740588632154464147694711051738811896346007324664072408656204527593959928729237964349912537899435892797432117795644172653450497611609412558737717729113396085657313500009161954165434642697359957368692410670100884136005446052842347532342143085996525023959907211116326942219794498615228618965303317265072382205153950605709868462345377084910151070465873115309688707146396591385445300531825897562334948678827625276252257924535263878860917489158068493126739088417779107552049746297418101106446553875252313686903753455873271806983200949241066096907705141914701120402454262489780334588553323155283848329840931121832280013550543342548776337052577077790635887090945149284785978135967117150855480596675010409273542044042689296827912609084602763272408258518147001790792465116160975521868712170074502691765630482204280512605812161282944244590190530853812176379020124822523715487156164987245684035215920677415955801232129385181820201301878711413362796563302303778803393943998666085521726280449875683547428234470695829740680295600899654926853791344085314444899482102684934106624670110726168818401940151419110789786522176133516091485346757188974734316038504449749007385505284135677527367324332525631927616632061403305862054863682459109273287592251581951404290723947726041176495930146191424230901996921480989211170468782092614305935675579893071853596915137515415979337397955841532273188446267090762838872127062445570030926247354705896535986393673730289694298695919588281729061096576391179486081401892277182507221490215376946478631201165761989311762199665642043133730329830386875521230663064895259321335774914916174269516514888440049035105514877595600472050751648941967554927376793775994074269793531954597410104756487377636504118904173473325772799724920632165595337781670199636249899748219232878017162505828896334448742627662736253990464126241585862692015086867880809021958757933107095864858971678856661723669914780483381335272063594208820686058980592372742441623477561864360832102082948784660540102715783345883514533349751903627623678374126215254050125339280207546109063529175250323290895303685479596498403069613675528489241872180645521868903408216511952384496007181311262931404753659930257285629448661705665517303825292434985054368743817853791980174446805665474120976052476309545049673279711249453663584397207364094384852979529378835733632224504717756018790191064109202209892597169613030833868335621967907405231865744346174855837810575649660071905452772041991783473561201953693557539336528038553910944742260335297062739437511871038549857129865005637872347975911650273601240284872887885488207085112863767482522359127499633843740630489253268711105929494194245729343366862365531182035261193608774137464393053891309550718161827303278785914693437718881288553055115005434684174719765720820104493148363819178144781033582489165970868362380283518766173114692955380755973347406712423819333707282217230904398072785489040957822223201099944553629100033422337135863177539278950723608403372597420673900709902700889433334683200671817866278541815400745338008298371766374712140932889367800663434330790770836541064266704199694088247979294167413661884965135775736323440653931266940728583753685215814230433484490157043124707123574855490077255421688498863908314598656684350541766507033193129006655397071416095093775582943887939158416270456983315204935774888092515640775145013991818908857777957751112687794807317425449739993637757300912583414964449219056504109429875384218606663019239800204545896778624240393411169366674756285739494232281446442506586820672695519400800645176672657445265626384599479092448801531048593572723070662069635667327841528419308453818228743524770469290368535595105289448613200341727674368383156505152959228904534553134298000644177596694872916934037887114671366641753507438862459951616221567460953709885853341590924909814514487589596106182089797386035681241630530210937712541232888945095203451159982143416008149541233854270308153318566903617792477600153850330754476569318329421240186284369069752153536111401865642369480043278784221953832951304183507844220894320028744406250106459704262709988211988927258600239843673109901574302708862356827620368626317663004412382009798184751974709655244623648569692657608647715559282347621300113769139167316320934502880058852372158545647838643189951945193094018535666341981269977485800671594132706935406916419663763303206686358178961519633654697620606762150222365964257699281924231633062509267192483537402804440130058427448624551331104419420298829056554320039047144846826742375275664835327228120357709866068770289708768679343552388434791308742791617797603209217043264939466120403463543952463549963698274891665697984956577137244691943101355931968189748311462856083830665034007433505596436871565080888346681766581585617566304609526955989758765916867069207502561450473739847353735803550682382078583614460642541956986591610381087411515316308702888433888364030985704415121533088035125781173920566064377976706943758796001040615517185808009504034926505135092615358570641556205966213199326499806161014852828487276153682702462739144984751943388551832807121738761187997658447193035416548720697628950601506935461782367411649509191815283022206293295971503283440200829488365334768257005385818910767534859213295103692136935941853924051392996063462849665778959838773477683568120385783902926249185374851123924060842388673096770988346101766790510560832207752099528823747657121800912293473114096393014464081575170321124202440843360107403772033222727583803470129892473702931298407674383004997193934736128272911533506414576441621871498995214677855161060721776116524703287708854644427131399565879127915915458446296034983713228582358905795608676349814157701037943735467156666973026241940429847271023616193185241812101604100146680734157722673425622651024186373888695884790779531578401449447046185942838231397334198837343838700127044924434387027266827076263281686116365021112276571382945810560725522476864889239112003013879835836703436177159594180760947123757816805802804911144110252943964376137189317731998508685858315983278796556535249885825380505321430369862005406784288118315289775712243914156875678847822737661200314399172297561652213170680195127563839195575204693337125802860032565675502074598153324948525283314102821587599750826797565464944618217843535828678253390141101437614498702060580101724797321158919177196388379188513986405597082458099960978992975705411205780185693969789353820252034617151672692518700932467932442752501982133925825465512585898081304926202328276937351536997427495594645588422346105210549125091985579345470273959483828050937692648368891918614246252291314481137798907408502975386584803037192569305922495493764806169955789447779328640404839707322000454958154434006248288837704471859572638250672915023715545559153355114106881393917348370827833673398358823383244303679133108731199093041939330194355990579258490093231963417461529754371667120691376530626626107846937810956845303104798824816804703018497051581947495528760080960539761061857090539037191741551348316922477542864473214555304606676787971446317389893847880528062312875838103973232246329427620221124996078131572997276547869755489611766949218487165774138415080252691402905633302619372509145465810063078230854829542409247743391932609832172218394725395845896210021261641685395449571143197632427483259417447010489256107109028398857725696703678858946980625834225227325170217530323411889741216364696957988514182683421987841799130784230442788243681017573301081337317309525835082794964613728478172881089506814489963976148514551824493104259472810081281751056715999675517872188915050288346597253480517441952831463173208544196963891478010162498137888864497975981382391211793120655378675603232504047002606657860419641253991794093734742943523248094555278629965756401791130000225960576653847407823966064214079460875287205249085761125054920559499034632647433939869096733810935946093364591776521319524931109473692211151255211785003950277842652601634094779855621456762574839704066274305063802700078224429491750064998788161483284459397328601280271802178837621386371814536518167218261173570567752978008699543424886503526420847374728892897138142187359760267441300202644805160662677274548123575782809826756871537436823985423236129503229802986185005214579780815849244460107683616032789088151179475738296323504521374913626983868534528203232279318150203796307552898469398179474841251125353350849818574159169748900524045863533705656532790862726866209077513734925261387568104630357250435700917596699288182299861420154329644546150158745888793734501763349042960388796949363614025046620646158540847346298525767792310904566600255993845425676433088488211079159001368485689150633824755020834552909295897206539819633317970603396849541829607419084515247598723993151967667763733117056930462788904001797950892409893615184074921329451177462319191231488002166516685074429781791180329507739074931031740510629636760885770681378930173146580356681662683122146400636395799989049539266619338288881141578643297889900242620991645882125268226393855459656585511004072515675218375075013936105631452401775056609192148471998044455093131097589043881581914632656422477668010550535853594997728306854050624460264125570852381135611207793126639608342969991933679370117887594312909265379482275806126839609119308637016235779856999468696630206635259652440094836442278321810192429929115276207610697065915872782942259521572032955727260962820566380942155166313774308619135335688162349646384748778147511587690755095746753358157915771739034234897102677903354133250669896898202844806646172775802571952441781516533563021758808816831245430655559082379639280571899728484293434457106086624173087240184317109273956615381769218789578523613004416863718192460745679602096667505763863871357728824779353136988436788909293930819280636468473969852788834655258306685679985494842431948238296011362576769399345310975266378639501374254656841510004736929822509809487996781993314697557131634581676390257304343044339157897860238595047491681892090353092751713605716204268595296406280476328336502191006396575681427972406684226499563556772965311799265100807445677540585104492939004192756809534224332663877299944515412467188671281077937009105470710724666498413045605249301270551595497626492403896305012865424963172995787800929767476939391961393307918901063878041017310274339965193495025834516902356117328991572097128923786806427700647626167482469102857685419125268688923144637444151172922139099677252603387929103307345368902039000419316734287170624904824362330593209468149156186082660936836443208727423843620159361189422408208420222540190719111991134039609841320898661503399982552462039540676346839773332227967131050935784526598617486888282349209108034923605210695297463557906430963959416022051861064897547234666809242336427167736068390746663976587458561854280876666030022564965150468740887322578164793380373207340964503247983890170642630301890453931098165777725070261028593470970032870657779463867532245354848542986843873855849047379873986455217751008477848111308151250554100073895947104540375421220218610733228238252209794031668680894399006135092032189501505391553210400491463399270578728828012289427374310372016857672485722174132803244734811458503219281570335716272542206499828053684211882403551348476752318373060900480822878721105801826936471225057030828323349964009137562652570947133457443395497928213157655339639104966568527108397908160288729743120249115798102339115094451759179786713082950277422392183989436668097255817172968971827713425553018375896747939524788416359175100820721624518238381851033606443888076442626115415830570502489361215139580212066659129647203334772424840980579496904854634776167709918534113848636869370308535105100952278263431697986828115114361303514738739181854004691319766119171054455590549050764172301912285208097031464856074448461527922847298645376701368741819054833772974774058814998393497140836741246696310843224562806915032400678437292342569942053116075642915847395623064166308787032549272708675661740444969950408822222853297981458536962310908502391747880805665323845761671487938376878248940300464964292488628357217996116510951729788267859559334464882157712773222795820297353882327486385195966440862003064101603887255125683140127200624055659171820261692068958678324566681380768797551089974075798999703129895008397239229376410686558755201014813205882265229680384781559059812941415196342902346793174061986862220328108724294961719642081125443769648048817992880194098291765965825310068961729968042604808708834886254911695670385783305291196912668177122147433211998351856867575986481236859754938728905536180707821308405977825556059475688649665802819798765544678609185629377321175155027795910664372481303188826018507988895661019930457788904876280358429929869631892642431832005369518474651257100997443056843124006830742599906855032067803562896589969175566731445172833731823934789634900710133439157225903615998729686903541233195319739451871400859314558393085006387821893570723625693399992120726787815577440418484949517478164097696654397349284987944666971190192229242035059014403495358157828387739317932144508073810167531914338538887128836118785561366601735279874320952078905830978518271986330976013104769294030048015821128272762692469516173725387716867066276676304496717686854343800641318585032770252063271367772470837798431976938054784914470814257942071006176075226328888206321911978825474886293541090338467539575106414755039886578652878015483805848937495139651442849943650869728022696376700693607218632847965139880427221741993246370828168599379846957182741335760605413336016331818138700296523648890868379727547698393839325334373189049802856260801845219908318172531089688878937206363475569176642102357368168143372775342474756981546803060735259550843326974578848159062887746722140098759684217461063499421538955506427644131040491491473270974895882490434511850140657515682287244179971703235286250636060763659000400189922953948618975543417494233584821511985205684889217660370645007216370791142943278777557786055378232018692259796541138101914089911415523046774630341558209083661731708572770266804801480905020352328470141015460690010905239287812773904298224334008773109963949364208389775056071310102369060131568520869916849471504191484494603361879011895289720710160291465714257532453711938268390271098646400953740283203563847273267477248632597865349990829662478327612661769578866073028071371710673945913929127461287072081068204697983349183528855800196498604695349312006967718204740103317904880636620321807601232135319546378945506183732500483631885536673559919929586882730363332239155110225018218436330822998594726791166268108172919796451564669178727987073937742673703108305758519524218282366329794142756593548868161116953418228692810003051387930557394933797804930546137041696168884347288497240417831727767567654659682966195670257237609513422708630087509573485598330360386894410477510873197426975461194461228538662742699593014257115115189506133345319448874139233471051521072570309752085243553667431967377984683509256058942555146742783358937212735340689492076410117932886144042015307770998159214171329200169321555223335030234326516396152725756935335593871785178081181417628421375050304639924597312241637716937009008226026803995811351535903331186971488484245067697884067655699190732903579945293310399982326449746667581354558008324878108088428790296947740462482908395091215020959681492334612077768870246097246996825608142345176166939325904634397415368595184154834173699154606650741486259501027884196363133932701589086993312367653688917669071533443176063409355578586016557543282795046382237940017786492730463766486357135520091952822566242309203330571388582265403108247196928654526121642236092473160729618257012821413760427083310657181520864325957542255833035856705177056654052341844256738538844903014498460811025821206328388180451389264778168590962636666123757484632619560084206878896987798757082526804686462389260889538165235482940143912937110536727242818030052937974365680261312003314115531957854139758212617495560256593328233832589337310633198047287680590962834752168679794810830822197250034971778562169660848671785753001492572670927769351063445184846886640674715817901397504702919596542865495442956732303886028096156344503911418303173033753258853372795734608119996215438892885226786366585383611565311311898998716276098666120958529827464482756675498044366986396619588274157462888885275886927904906310071106235438656465259326318550314984002985212670306112201922595844179248634582115628515935558286786804741424602861560366918333384421997483136196634004171895129394363203751576465483485837538381375341914644849443661840386123334233902819210909628493609522355302097831319046660048609104984504066370557546603202901078404195031884570768520085037765868290994574251013391047505972051407018088533478091573194407945512114412081631599764905011100069005035832072127697048256623609730332213537098952003589981637136134361853874953937592887918090809389889241641818133282183240505278181159628222290118679135934186408146228170678567948405483628008483105314006898732508804622287902948826945504755271410748652663744338930244263528151204837300051096726176203448819408317697217491185258271200965423066626655608817257261429916925706936166406820023359495854230359595741483037588796263288799730654711365578063345788127226091469655526629678164641858913470004404899634808843586640014259595038826493218161874532673394634776580893905481286455594102928238590158542339050136558153307365103376803654372359760417225545013236803854826521740436792647929209518572330169129231101948800467410997709084611995543408665836743566282318390262461612860198632507400852040516324542739377216735879516582484621991903170876916814299333852662446159469349437241868315517775079424548789827962717911569309989707028153329444585204864877709631093593566982202996801069553566571597896066190621473736462243163552780140563933553655314328134907555609587395328532707400502900804821155626616840760712106357220700269456599949385536277398008784909181694180906578490998947865542750435145669277799290990570115437473573887934619717333108613745037878329278541982985675610234180359778072927711214958626216660134804055318975516514136237693546038384495731395891101606656111357346047951520663560792883233727491422252078525806735036800115810147511863755987184625866361908191632024576936218822203141326447361978132141452087328669167709676977203227615642696690777486950023104881222027725802530650752829329891126274636078365397252024835481285507439269990344724627006312036541065276195254824578614189344420046149666721419500209327633135247607949119734241425134717557790357831247899678229751758858039930064798393523957122124099711990607358455052719419843183019153516644085766156406770817141279967784094102651304822164296560415708554859557102603811522169061430248156410293386292376199027695448552955745514218351290584664274483931087600844554035694810278492471775475917300300422347109594423388281843105185543578380154641841876222249132300348247611753125029152307031382480646360554414872840928732081180878971752695170866290038662529015886875787271157216364994456218270592075010101144400744967484627963627557973267713766468438905258619623302185784678397422446887380965847006656009297548563784794741583864058851125953290817665103239422241416587587283670827930687843834920967097362735213785662111769821260248922996888953105263783823450720778683899316665393798280854967623058807871627496391599342572564249488314563065549867111759925907515427953839162931592807025162842625759128504847856208591984165558543164660300216722067967561973908760305899518111230125757042495476502986722320018526555369919620297233742459249777860068637212664672439771191721585300856429123895443662332958756718289445175197473455350812927577138746032233645101121986781514486271683590303934744088450817583416959252891874641700971118458596027261337331072532042755969281524469339798417257280199453867144932668022423395753566799864617589847498376940800863429347405037790962898189628533546421057693534590396424572353707823275349164046127935762568019435798566927245078540349870691986606337366643944867707542069251559850332465279373960236690146610509791881753293262614969664397916174078122243243549555920040336186840352286625906725331338218781251862878016649351241252350615475883000111368968741268167714723416772518919295041625109110549989494725390851594956126584650304667379696426998021896457483116549664670518056382938186971292373009427659744471034347976513540715421685263366995861337984512759940011648051115987844989934219045623899789827927754459537770886524641661587670967063078481188671333399084271750783968241014248561850650190125155337411593360421460351072925238600981501942410899111401935351829998594064388577831234021049038870485989905652108487021458891532504366655894845997934694307787284506296910350815044704445861126810443858145107847904099442152836124523803261276917649709533669350058174786785411053454469241266655975383350167774311885222565937299146468752791776316364020135701733979928606137055747611022094452269127593501312233772025033023876866964336563384115605770388794044725786102496241873505587007802019296874616399477544042037082744454622509766682892470608251086663685257495423111192096281390897521712363810213272094317956172802886443263498433240328811213668897728894100481884467448757521746132366356983343516834374120395028826722724484303356305366917322393528824231875040551934729670304130793496708325215101240721194793957256128590245820653394667090399914391162430060584715115410610483867345027140536555275981081994938337091098069407179631632126529060514739029707048046181377456782675726568673610339020667330826326499900719552459467564159117492632001176955643463626476168117130316318722760126937029160956341728258222039414148724847802028001709116918301907759751965279374782332803532716642947815427856053218704572259728994688455411281271592051442510037352887967814692468488499303213451289411790948028517371376232660897248377125671281053393465474581756596645374364024803721569277729124819177856164391205893554132659817209474953645520500676489386820804275936008896920591861539420737559855173650460092173180002942681925247854084403823283012404581714643699691579835634267180894235614695097157965909673052939438069486640915533237456617832991452388935731803640840463556706205703295557441157152928749046270035606988567439849759496657075961073508423943209727879974951623803298383877501011505120167585864070440864012303573353837138651669389590289011654930494724302745589226905226801706701636823073828660926578481343258122601195160555132172950221820734581385486361275308472987908890809118008957636534435735022651017319596147088340570163427874813845358656270079171835626262984335530582671386785785282998237207822515161973862885839933395551576953791372284998018579287767683806859005130305883804563449997737931935360821287957997908964994902652448630406507559475752453258416773070337310723963675767991299879341137330178322427945863190475213862053041163090238090618345045055848598314240231772670916355693026386385150229967273670566380866623681934848961172601689109728676929569077202858243768700190947061855413837879641690427213705228053587162225672843428988507400699607810283103889232989736830599607814502283232911526065292825417195755251198881027789943376360720220655088250154187222746907102543657069759947381758949374281869607522504856521828971715364849189337186583905488369887469014297207710604550033776985699724596452364826130780755414644286158486825673306931996807060874787814989179938610526772515939134435482618936038097102059687237501096188780224185124750070898854738114361238575060836811833561880054987399597396956505061298753367581224191745739052562553318047285570872245277433243016754917569765377275658815067482192975795436352977827271942766290234327470955999775362805603684989435819487006624799830183385295569360080685845451270552081717744910018961807058877055031736419610812695825593980083325006777103147386642529550538843825785953905287486844302131607272506825288838158247696363497670545113337737897305089607676267822632668289251295035604026102206049612442751245623215373103008124002900120078948779483971720195760358786171035629214923852029770303183607989087082467328742906704307990106191999251333094215425403518939865970249728072584322144517921368570657115770508501215590210428823930654906057225349293457543341614859800094462798270979233117746700484640961768313854730660185782314914171981595236519419060345537456004090099333467699267017461279245451161632877514246571326793427592221527181124088840750804034049813698306380256753329193444012209285775826533921931198556334208626490972662385548272512679449581341357092182410594708210031592814838788764282901430189565333864602470938118199307163993413363619574196980253057456442255137774975930378856418084712974247543402135609518040859737341107243730486993764418556436839978762332694150333977918101596728146887841102182178683347970304991431702233109040951372958777609281346993517456993765449269068458509354507213216057944322420340762141799548953728765146920514180820063027267588247263183167931879358505447823254915474326601072148718276476385683937491038414081050065631081971464966703730129193091112302448792989626597187075336724795145776513604890583646220366996362260461778775707893771284027483415577583883433799610451039933983303103233960891339142509383845801880693117755197756699552195311021223611833516658113687605347603487359782773246527368864961309762137510190713617929107976964889197886119774591730762448661832613841874294132021644930756041205750183871661344167983602353166515368576427409774712122175496247038595679513920079287074709495025434849877486563043599983280633857031155657201828021909252650254820986877243867184188168016824838942366023139990037153794027124455360738839393458034348223051027224076958384989099221853597438728035533373494485156122655250639692988152902287519756523399536247052679143118451309965184866933407657346003775035454789691521430003488667842747722959314747113022657754751020026406603783366428311552542780486358879786749323280118235450305969083994799620830069338276123523432809653075428914902316339843331258176224354387791222591412631273886396338683061598631708556800449912863614133883876142391047007305850548667993054591633844225797092978182514912363691785351589601213415295476534685372370731322549620690765489740675957985029231808602327818028668909145593775309505054208480482663462765945223703939251948885975176750702457835454708990075019588347769246692605128179702496665924378258287613970701698695135036401326565265810580148438125525465228844551991373356030495542526194938453196262757793373316633157905369346850389260225283829079980615484431652236774939074654814128654415535562627695452292474004483724115895371201197506083084614866644090150979764251983647241229459718189791593783544565912174571437876608644635082195461805889039929845807709273311388255888720901678370675180725667600690190281542068268665544723914826933792824782086137639966963715507931538357006498051370642147861915622438152509390045101815006992116581657538304748228516154718710422903259636912234029570876426868460982998230482218185427315178043079225202127032857724133548502835638894300576449377703274130061671917106588886985614797397144096053735717366768202933573099068654122314155140701815612130635120659319087219701160197999399653947786473114384019524147247265353318690257427141501569487243593594367697971739865420903460938963839156343686091309614059007018539847424172477011509802329440023888802553903935304026575723430372908506496587785010107305811612807232735137246750488400906825672663238457288799636794711749752917110403963308613458595600603793419048920743334558378669585562850624074694573914427928318086576347864370548004597889651990232714516932005810509014003824627202978058938799559868600171299473099099966119314349363806837068591941134091312942774138831835382641022366796087045432850993303218908112665209165990864476624402996518329832377639803664042044710883249665332372956734423740986081138051475797612206941881888643564803100276165942575596068547712816895344798061993266729183880609919744934362762859215861139204956209981400811070290759897310736642880988533747346633643027626197110373471343751759690972306487650657563402412722858209145629555720701145482212472549143096219418069483840994199927751682441393980804604901134144469676034013374674048103370780158975843967122238974565559493296054215391237498194935855250595733452638336761214201814390831866696584584938535532907136741548257768342383469863174031043159768367496292899756890456354003473836675686788143841935405781488368008133032614439141708168553730510588927266967409097303692394962424286359920795667538144637075005853673827309947031199741302393954416534120366313859881462555745529599940184595034272450540433286771223969958263090584208448430788512029098393805794258389083646479613591811031137078728834558050579893777384981109035385695929153363073788522274453140656329204457093440406722427257023773951440624151114865789776776740726770590597059799269997120716329448441973317264859542356893229429119016797090412848155886039461111139323610245941026899554149279803389483711032507774541732343058624623524634815022601679195097946801854261846111029338885201423399252699996312667274419439518141070292312690900371488595902884507642922990214659173636790181918373122338137622261044285916126107810370876338405931688861377305517666928473185607994570121030726305612297172720469488304381395180185607437692802876567831000785292229742877822563783271336150651428747953432099043268706005259842686981076087910317615441032590068097974268199938885496321179876844922173385555528790906553598987228484973532902490894545441749056942898306240182272981440974676384886011352043161886993756935861723529867842830972056105621808784160834643075211880777345009518287882913657818691412173994208723530242173577108950509193310072703320632997776998695267176528456295576281990461765251975532195360376182474627990683987142816895386040257831978493603597958652304200580346124866525183798985331582836262832734034486346147277213371974338750171680128405962681965226725079044595476083504663502552393224359570093545489100326576373159460260820943128297202897795975907765543077122570522834858580729222209987285882333405140197907704964990438441714384260016396673000051392184450485129660440787771507707395276642081800151725484340631802162871190209112079584359240088106000329981812017730292980429942219525684288206042406126532591057844429505647667279469685656596857096245644028367499206821601113240085862323313280694228406008364535262052760248409573510519174279635221378355699448825694612230556290512309925414040174480311593249525406928646488002263306899155893728822793272956992149574037946559407653966877388743902911516867516592811322049243859391169322826909643346494926795954529274483433532513711093726096418100702832360885979639232521287641047450964029808447077415298400505624744586944359491821270115173474432537841532983055688696241057315739504582524344704140423295701450511399501330990013686556922120852608321395754774879610846536332720695931765562887810572013425280196643379067284306246975021684280187162318692351798115403894473812080031921441108945452459509514934313969413863932942261139163312159358164080928982582106093534897342560213377803385353472944870384282300399640194540665553082841746931653043437064025650820189771594775299147492837873157402689104656825238446718612099705460267462566197684268358232922829406015899669719129947781171306850540007019494130583223938082769955928922956159968637353723533351590760291186729818575276966755862688548774333539023015979418096585818171590602850017003789849135086498094480293398227223803568735587795583323698279726124011733982610685258659316244950812900208809530818383597791124074973947822087312068505186435379015178995879852619972289962663649545907364956036173913605305638136121265034067569592297074845840152230388775242253653067736759465365727750866200441312536468934538797999662674386199743314180035534655027080764105178145681943331474363587608711811843004008362926136906685181126100015005877417040932223981895399448385535006645283410867771206394547362950155349222981880844245162936089736288415547406720995868595298029807275265287590826676471795580344469617765582001058304463937603124124245302496880370663696344104398910509769023377120429983694030776033609986381320583415192851524928995929747277579784314129361685390996421331651370108613840732301593730667989664847763767822906736941625492071528122815780439085769710422399980323860877405375282314587063016452037077971488555405331597628285629847456287123004961427943602283055351750874452979898978835778504980909377902007169265042303465731347696604595608129175036017212574844784164887487707433776555336926047711383990599395993451638951656032768379256989240197076036039964298675990809937164510305666796602168664773410982076571428904734029708131327687208083389553343824175677740349434882965633239045287548714125138412283297301225510806911557860316049829235986576240109030165597697357591726177741616014542301558346058179717588780127129578309627815986520510767291347233752862164894902075763737209036920186461754032595057132466008732276147487355607617514441701297401586012415989096001183334380712023848655003829234277176292542893042675025012528703400914812061523166700062062161812893565694446365967109433572596930321736513986187051301780100831095855981155009745499712725447117492273564138954916846360358484575920337864045902905613417521263990569003768899337176566227054735418038667692035360974220509890160416864500481051662280034961955016868097925235374016717903473766033324402394430866243803419844707062292811689608505302541293067002523183913938779264234036035976192656862611080141202703450293956292680434620076333174682409941563366689553904930552504466029031798634190526808844270196418367988591924506401474015739864480119595588583842423042100646910075060396948927955775717279252314087217372059438930767894014452763279452059053540085553919008510087326268977316899505728728483809807899088131068165571408486098954093455617537514652559711309016614475234949985167311540372469174368190231136081349705043159989253697816820525999038482305494160422252054615969369944566034657604161424361906291121951420176734832306673489064364946598287379659586955383097757861231487088063057037719021814663965683120605369740600820330008989680519589958372737892509050024497606117143402593787678072094503028032728253680597244996317968985747120654686032101138991244427507646699023307448320666560252814057313886344923740758004896902031021029303037209481341497122394455591539866294493215566469167311486935870996013997969654586783923967390592618550712443464218612231592417249642195091735363104841716686882740901700441476261990709133373190770174797844489122960105287004276854633309522028817095192511039535538106087793299174190930065250095356569074359824219709518974384836081721498791932628332529072466756549303544605585697299264127255574951003544335456960124661357020767100297204193128132408219552426191466699576642428626128765831931144173963781230926789646630559803525260458224616265646858043353699682950917102702419875647419502046261033075999814943181479526197726320461838209203082364902630798910893587939536675697898708442009024240416173089167212472854235724012643909334647652982557941498187860176440080182169407495349340462266059799792535218820962301785079210853632013438677290738182146785793819511032506591663249498910692696184294918026788889079920692222497383500153963481067481338120430096800306323055373382334545149861052699212480391100222965603718288839391454650599306111278408175818993881173105088316365718638190953599358636448137765538568040212665631992164174027115848687735857378914333797747381339496547181491824798890192755348713131932294513891847910513644459363430171309429689511159946066831236352949297459801038959172348140448599540553389430904308905756335073604963464341890453971402972377944497494744745403212591991109233231256508107000054892469431450338477995064179209752167942804010811182818964545648629013610110013961806513721506546199934505012138624546148097480534144950214938468838179373251663720218276999291382754102909742869002273166464597900243092246489625001444543533822623982069971931981323672338609600817003837716334532250861808820979760594836339413199376861193081558270571863607090586184883485720535405147675582257912516979994461170512963534454431780014116022694021043814957047381039352621708296413988827171444078993934949087958709863056173968964639596107295262555256660847126184605188134918122675464425058876364144909413108395741719285876696336480213116123249365756947753073885076900469242301642384651145923904688118176559317757299782010946108052090996204776796138056006728650541810276311115244337446095890246506220396448290087932120548040688242125421638130856555116250333879071698532777278653821961585184760370088993749537926472184798429361910362013733139759534375285447935945726798725657578704555868475400742080490474318939476300785555921056220327727846270094523168170447544688081009226597712946171657487638882047634469286730262692438947317993799335305233621693271291084357820171090994298801408967886991313557356012541745744569422821287469739877306613850136163246386997895487351802781419926853091339140931444769700139641087805162295330424339799812423364425159664912487393111132786414470293366497710864353531853546894664517196116381630441450620491348785802097503851370967595265054791703218500872349606148395668611982307552267134707865608954767907208986460285320639771064463824213613795908786692526847856988877514911431857642168917557498986355994079184811759438517895921285094582443670692354369089734623074290573961545782252730197366445947174193685715406554666727475877042026782507323540569530325026667000617068848324157338689392093439535333931475686867037607576939188816977687371292476755915418044330633950172966405078972058870225608503834705753939538347275444127169757352629989185668793086656423006022031031718051550875392554997001129949841297339619183703188987240690348504752611557282686526210797370410376322913603020741315967505083869643833595270115979806888859671983889329693247502802492671030694144902343996963931941834474023765825610625394333919457991144672553419828816933664025662559949745374959750154602926801761690180543352121272479124652832865057154480473511091621660207895380030818653553073034079048779301580171170268417789685333229018680952276801509106837608267498361991376117328921560516668750204703457708975846136383510287413327340578215017740175067536589084900100530251001243448264059371694664901052396767296704498309134381996677219220548758982278879726397619895455801784958560170249428096156919962385651816210309797881988253469690884961126720767575459643430934459989996542918892159934966980186733102102333200219183179886018332530219364769685754431513946142697101915913883280886956936841896131295673384070325566981344446234368049059438933378684515144147766007964675212887375804693171033374649047709669980785147173500201253153068245067797312344295597412395428514065045976948712040066238459988851179766658537310532910517489966632623074962392172281134817757122403151570984046396131757356141122451608763006632724707243430943421361067128481308019363495811058430753682766045270562637152116777569832979337746658434143380706292010879694144113991967471808105973572631283788229358385643641218295999435375022845878967800583067870611357612585678834530250500352971762452105237521816170207057623256598730057761958593502452359276865186459230806230311519047894935865074735636048681492608872963029201818384777964123456021981520741082196145292767335170715299213966237575691103011841709550015783722346778809361009042155634657731126034768096538666178477813960625304163080863169844830476975059373927439548701451833533737776984643722362384187290262764702592467604840056552815643118076471170778518136566639342038862890781526785120766011288737834851608007992051080691836372874987063171159610571655415310589645887148209023631421867550889060343894853390247586307314362403607454482039057525083406560937539174748449372121622346573283806450924388177814394821280504375747479142947233127112985546473350141326808151916811527005251407562747671079655336384771882415703010371730392818797767143584406903391324295744466621938913966286400379031619431334454852283576564334300893486220567269150625512419729336127881845273679277943563070592079454317785208656706627264013120717548155205047438752011067871539817928188690942099451524368861996480995057545398029631209862259207825389634618317925758838999084390303604995665403877435694625418720153483359755960982312692182625089291811347188813115801981534335382592949059518750842548792766176875618273953046167124334925958265618146850466433346842248602821449405339802330929214656406245837376095654943943503216918123293297477886009934401754822253401584393709187182279500628802110763831875634687570275436807596170596912749566886854742227631122188448213722881827939335168428249619957269572973355330833319549578362555128111859669969654587236884967214064086601785999777027025072304622821153390361453670368016462132046333250199906627051848313685012784843624516407370180347311261033739812894319399956205244730631711130963896592619230591840214356260769621427252459047974680749525769899282576945994660070742807915358494641226536495104736282690260554709690700361500953376097019290345504089367695690090208157940923474424057891605415786213357116372150575680907467620319940330508303088586926003447275575812584864659336401591221132248842194011470131940689780392087367103328756323013401225541199562127288242708194680856945768263376501254427240387257080336067348586448880394578270107435149593615395704840561777744641315107875742053490321998875630973557785698882708911846165501035834489232427859625558743675710042278210121297007205061353004090968667306182043054045586828272727102059456266281865580738352143832522004064142420352345425572723837595818526100147111486663106880220719007366758656059917136314300989733288348150565126485158221702270200322961201294373592970244092305266269294735390389365673678610630745305831152906291813835105813939749334546813853627222614675766657764217464696362860135431212355225945655412476602043642441341690214479252559912798355007025918100799247778125347206834146399198540179703196582951841703325012402023293148661441422745274325484226985186496801899568309595383663694842254528143123700266425876354741600415381346740393415496046272601493690801270158063134935085265570019744884208476192211880520785151080542671085467011734760853507019104843780103686792184338337078875316882613882173007863802056642993982267186924438517346605400769574769845012013885172322136512133544418996426663102193181651564661163784206507337575170965526510159321790108447840691523311879872112249216538730527063932599745570959492477924172525466435262822894763178901363117562274613894694102126814488573887181345726960037713050803602155421269624933220243019212202525957162531472917889633202535671725631956129527885501173576199770426901941355239391995650265701480865882343837439239219841324312322141297136902682184838721997945910699666878686094969068017370927105474386153331061019764970626665593768284092088655175055045945787327432633389428245301131713668747776875235589170640303251278546508495378288659111771129863070178177896217801155042330799646876140250542680129629224537398592058453667472631734925630605817230394319215823726532138219941789829967780919213380834913647981430351881374540110624347389874458017858446229561242892125436847382442985128547606645325637444719903779998804547335960451898916389098231059050462515868602023939907876237644476160751310552356636791590064067741242692763070580528314506627739447333143413904596583018523478374221835159533528717447154086017006255053303532509315232079214596887268889606678382988112049365589921225709214012843885340788469045194569838575548060113870662800403464385781299024317575405732345505664613614185906244655885859634734996650340934610460442347140405466313422980591649789597412165717047156360566831703838775356338256772495550946538398467856620349829602650660951968104093882520427845115072090667503405356645535851504677836404284751978091731769751125682304397043271406590362506075431750376092998166672236356992237465922147851459680102675576931089120538062114613918554100701451401351232741347720031609212499002678043929516805239122576215674981727155324904040815069331847492958800501754565742100727026898689780227489151698994161137349281610332711497009657814797103795709041542146973614875882791646213193104329951979674476006559263447082434535996196333447458424132148574344285130687108383289979907268948091193950398650739224351165953529234164836121758365420562021453178787111725664797852424566320303877778870927459705282892135870991422600645621704805916310363619132366716716437298975456163041757852211280927172036099557846261225492795574764609147733609790563268492617555722607886896964540966212461792784081808701214308113309829158845081185531649761160971656691573080513594252101558091246581481390447807243054916532132539252576487824020350311664451917930400536068636848285051656771876560502769381545146018422681997720118024066666726692610986877640479703412031447954248620506383634033395525131234745263901759933482018260287335735513105098935213433822460482128610360066888924950689209301887904322588313899055099347378125685634150239974363966905607732277152146281549619726553497709774658950266529219933335680888902729245787653373612438399836027240485647743549750740374277222228742184421442802328435859236189318397669949600507117105643768838946663176349429415119205151313838871182229923003748890124022417919027747797283718872514245425058510869747820735060180158023479180193323062292178634443013976990114558843515346816853092541203769877660385449943636947709372685349202688208048898867606895984211560417996736546487287841370716685051113123649023435966205005359675178560167951624690032365775454914245574410938777495884568284646271453159502719187273109916458716050321873353996456203906181764170961298683151047245916453728749122555028727132486542717119092104426671607675886937900212350556560337037551259841525467337431459376574842104752426998368780353596655139279170276985504069764712185139015217673490889859234782571088721060254631620568454181176597674689518395387807273795611630903376392650609861788206450527823057610400050168393474878265216983436543735255782980701938105865400682129117661087618364309677653098905651033966591401816200111270446506415050341864633559905839346286340947595708589444142476286158000088405157991183042399306308880630447571380271798571133656567239013786798511642934941675122497806577820483990195662203705007760079581679531423419815058609501459121697817091918204370199946075308583086281326101343692499561652518846289792083917187013661531425951029779092255600449378584049831156666248481131533353973787965710680259765687940664265110066241596797095026030774387866009648870218026604722746957211964318375706254532578185641967572552487073494956976561102250975144281389852619228707936633828225372425791822426259816003410605625145380797691726519570016708567571308212381968277154675243788547048530794259743533881763410407486696351464236428065215831248456412516053429731499948233441837007710865227884506145167585587694420930412565271390349666277792917278609297871390396443664860695076057761492164189288900584695672269653956776458371403415305545711946035380144349356460657306684646441792985646809128797681387565149071112516079164078773109117974008271008344398680604254626054044490535793297176585765506553568437402293268986973641166645087909657881107150600972610039162038826104875808765497675052895154201046287519417012761730313175584721174107851489979742825922886805094551472474821798360895996084877865394062250551952977306022184635014981915398133630741742253819438524866250467581904541907200406607778444650624118070329192248636988301118784349117579834130056034425373293469605424424977791599312246264480800674076767104198801505369432605978400374521162051108689672001004162767581740525299986644207681871948399221895823886071445732139379947905054676631320162346019520943577986596116087992882340631079622276848065211598004640387218970844610622453671650917839583484407755099819471244817150096539228218786301738897733596455163064492217787633030496980547847805991635737930303528762345057212237735164739452822903934342251095633326559113207704283898926998116843039645154525330480882069448794777363944677611114337923137217447650139846323210574336791493944099841915401602609358348416663055363121180603782814832382299384097542851592507801052767304675051080588379153287486850411387086642435520036328845785783677013523600453987417646467975085004333937430234472176860641666901757278056055286712145456694532728472864966825009209777886040828308563519864355247894726789665646097189642553054684658115428135786419284878415791277234908376890315937054836804982238319946183442970412376477969624814125019418729743957675636202215971682598537121317944179233434943284185121616688279319069345485345435416841075123768762647934665921286150912980492733099943865381678229057994152571128727770395193364665057318129521193047070437288813499875158970464464165941828447993683761785879108763687729413672972741954213760504186073724376618764683864659483461181407981813165140457342488632418240473351997207473892768473136354221848819524549206957565994593193835835232481421213668067059434025646586352284451396169096342496599983025903686962402838226948852722787746452506005657020222402768912461773240649430297701307278952809323435315326882509721445992444238551805627273759312458412594351816935203504271099770977613378888057326310861980852568003057320440634377422921692228210205835273833719569565746695126865883342776392492018328243322044347586977019246376885095573787068717517277574638278922015725834434853400844889061716416281958386487711772594035270521352287260489363896820533210979786833401649435898702150750332781406031346665007951742178073765664991823579869160025401184888293886386307479851604898058385376627815400829325152601163749919482719323537911741198415526665163871958428580976346268034452279986243319829491073135935466322848463093592156769719453665080804459019015542680385086560526478210304244584882963914792574698085462869074369509181655924771549041923475137945625149608692168514278684308367730584892496130072550440924202624336768196012649983195014113702042827848911685793826158427136912311542881669110262249877986207717909175179410745906875715232818569559693371710197490992701719715759895687848802056891073449010696616028344165177004872911982810397146464250318421627166315233923721321908913984179681759064208267634419684268715541513128850839234695401807469393637247214974927492661496755078536929250425813434429182548674247343450739377457721146088913380460556238359255189595576692357490588476897579188768840132731863429417743328351520108555956848514851792474852433588789700394698473935603244389626496432446596481974666348937062291570290537752302006459888202123722478081419278605855621519919400912105192048277589132207028209533655043818173252235911880625176378702215692012588582327199330806946485973254023625656611204348440102111037915924100736688203015161531708060706726264701891711719399979470568639909606410792731002598705614889580632460103614015650295408363213643267508248383759323958930320839971669304702902602019027574018883390730979963329178298662581605357572822764992737811888171760285484438312512874327258413294286165273802639857997200695233519773874808157372359109831383016814913650445687728757570367438695825222432369933945584223335424209514631009578020931506439371417861939062246662715154413559474782749243720646851800285191299421968493006979264514626062900568741622372995313839024230301649260570667606539154852278030530700736064885865475928758922567024628336720147391264588716675334508975041877811696972912086808942340093351985212759602477615152619429286753075433617500273626898617250382133946761945800642392616426486485691985175505503431404620076049406958260890190916320294394400991715889093080798734469680245229029871713840258098237116802575011393129935400407226957549426526892513162010865797100132311102226963556363279030595400026370863446393531532760762891556311026458091860702793748122324493253814774450243524564962060233449066419316872994966977829944244587516320881197359596066476220064001285187716106295656075539211462977681900732155132151614693866733769055991683382947309843612499697610879020321429916874171368777383125551506182175130875138236163425006952477338701469982119427153131277081934400135405695074880410284861145025875877081140210682256460427665190474371944106246540784328523539888688805830180350024256066590965674734003392916661387043213714192439084841681986993923770993653268775700272518037186148729466351869985453595166136832665923205733529313124783004929072369897533810941798722067944561064511760014233744503952640165087547951133567176842903686368149090063034776403337746366260492689513224348283200256290286567973558871689370231365075046787150180089333022757849181819452611853320980635706965864413321775072331063518315091376005639970696373722413225102174071578391026127485369024258779388546517743982798488684483664521192309530836706520822413111750656839570073551631040642635362203249974300942716015873562532890684321816978112736532019464263200721985771591471551563981406350676579058912441689611042480060152450327674055661016167624741318722068893328484042901636024625456926555935885020600883572408202834468182093854098896578152363434137552557645772321845810914126548150597703437308544586416225319033509162795737692128033643774303550100423585615655586795872626934083670469026063874902226543671128426410246592632133904264546673684385337081599814603280349841617577881569914461915410158251638791009423760887196648879064996277518198616980627908450125383293099235842277402268807939684638597270645187195658270538373594273214449370498545784978665595061278539810794058229859976847778253052136106442229181774070580600410266067207266809742635103235299739695351331296630901537777761875462463949575233031319998325014756694072826218553607618124757410441735898137299653449757684855496338908163271390128956176232986549078592984700901747457209393967239000166428665489650297194308090201460069901273039490076351240439789849010868764985235855590722692541560069303557940552448936484561584055574710012909007055789156880335486179331317918938791809982972555436169134498202453167608191041840122398030965862013421501010681055159864043023203846575856346004925396349935445422129787956518785103520588618914307941185646882904571650312824489081193583944244874518411047733880074670292460683590809775561683878874625056872533401390123063232339442548466340512664670034556783649527055326048681601954195455641538334454306363090482762134816425352757231289449243176306692348825206707157295064767861943897110765550703124614050337713339157899430939059271898594997584976757700965640246107105807518895069363783330410730072482686424231174114412976548723967217360121453116896517910557085633867986427080120071747389713445772862745737559662751192174927298621728353411724641222547162284679213633701389453234081221767721272734522419293009703335516216868967595745388671125835435536784758984327803618601580210418643706520956262455480877416307041587878679026995640779768354701895997668989695488634570322616514031831148268868331577073911327415398796655265255845180268516850891660662365094989465610810998364370909491511297398496637447945244804258687735304031230623348358133543889636727524255964092660317775055414755783925758416870486730973447130106540825944147433725634770779208139090482725637181232723328940893804344280901726027116894838590808690214100607767822010404625414841416169137586673845786651082777292466990133917736928607643894304610412824195698363556271114817724832593969547849390679098912914879145846170757641560535242189201254051215208613984298075436927906995969167315169347460484846168880028809495940353511886763744623091617832226982662131353293237846229634317689810854121320791644475065619519801976261261352697587898422388051698454759708976513011330746004197126873862014258923477398637528345329122767518625503226149835953567045145931720232258402494891010810485679337131511474623367092152433761805488952894748262994399932396160750190570990382052752249649997319989076781680325828423781525017992358690354167184438811590958701740798270901450555396783056483440105114413581696734610091620344525197840321617621603011517345015004605860049337345691462077971800182406876291684318474553817968039554055047201424872341615939641423913214681075005067264469050186885535235769208231513792485079318484112526164745416159483571339274496511860075796767941565124303987278457600519232281378642920074675813544416113016030368898397612235758418866650761838292954433979485929238481030489305997117265648640418718785906217910128422613998931802499831887094205483011459757451454932082573196534720023261477190994062462724647368248286146756145229072480866143598438080121280076738540589772024608684362351917714238274511856412470438466633145607247074831578816162033622992319368239944187857256187219073336129481841489964815589816068195111462850256081653056216264684010331755132691975547047319763693172111971121062704754221461727537626842889307410750220230393605232408730057615615283138268252827966123912501633896288562583793260979905164849124261216898266104630386659599735057345298617424459542044815141150697232831220318075016612733784176578201220277585449929384448204223032254821392376816231687007109099909869930447851518016848689109864752333414572160880476729982778523049158219555209140940262811415056227735221849755954831172381511430658228520229036265178895766314308422331906059115157633984556588816829194005942657641669869363212841278577219996437381405959905901267184315510374230137688296973239452466071237599758924268302683382920439333773831044354057238039464751247944266388714361392726747149810195316222889453749781740766160270880396806513065795192117871754967027338117873601025170487083540489798331095815641341226261840556180392750203870745460786986577435667103635817349276899622214489301968204040460701924749293786529940763935365291491189745673614893990397314375646610340596486995179483102026773650105466291701569362715948666933769099724108211362743714396936770715556264779885426830514217108393529548149492678591732735204298142785987265370643992417686229758777787140951799039861515502968945427819328185773031086961900401801809763821260922616191558320475293194497088783838506677358600154694550103305413778226443944048157119957393307904314792709032174687359878854012723602468989488994290681719116516719771923412783582987621819901109238181102713353095635290220746599313748659689660754310971938690916626452398338503103710900465930410206629002054245233797403140691555703350434315710576162489755577482647008805225438873258891550158847005490443727570159738907863764475282188802730104881766488893651554069024769581266147556456386076622801177460274522693664322960406782026575996308834778517070312056248865802617650886030424141507702944069209685617272232947951274352948124370083868346556037364192311844733724405547032440456049850558853601866891787939888201576974678657570373788820633744353231378604944642164130491807664232739245108693873118270109969083996874404406868638128274213441777793357155027182335133624665737564814015504299216460016452824330260676958396220895741845845013986688709683308250194383162562296159534616537363610469155551933247987311804177127693695114330368904086422777492241246700875753227703588112007643650372312556914579158990898798890149669386530111821469183105486106564281101414002755503709417922411076050867237169111688493800038862134517572774856761314533542428576054152125439399247750066838681681816461787979253108965414982949444919124527651341525612859295310078806117339426728192426092581425156456711540747410439924798486244964911714029852301830438064701184583098981712794308180958225021044861707134882909780607082509568670719967794232434408078034051027312777781907224363101766884642490599006757145118968112618893996395858387202920093635470654145721282822954566488983521230997950263546150528533624473609041122930456182392071663667846783770290483093255352018386356887519072678020040889730228968994118929787050797953673041371712614166899421742699185825602890774299300915614736747183671057016043050462093226431509805353597061473000459673191979154758965583789179361523638400624366221251897863337342463276779905212626360565416931194659353561846801389951020670809961187949560505636899464052614898359432486666546686088202263473953187990468134701242728789800863464509455348289373112069068273391109010323666472960986672423509858491804929235121459661688781311231015048170688026899656926722330657444500498686660818657107354984638805374804459358631887465754084342763893308187215444967636425078840481356169836376217572303347729066643461253763657809673586628828752812989094474746176268430905585603471366836996326640742480384451571287630697439345253345396743346197003256351153327062181784217336740085254913850678103057539744784561013942937924864353801139477148692675732254759554478258112250883234707379271662398232058470843548266688993786820925855958250985306636178059364445078226050528890582183096114716218138488045779672650410556135228704417338683963655304429856926386568235518844426570588596570396586704192327957313597326735568542609642568444360633013262430452981567470688567842488401623250730153500334373894545411348336591807704977050492480640144093354537747993002320671867522440955227262695213089498365173004649733658024848681018451197792935524221286342540010998269459660432034604850334192001963801307372626718206369134131071433080318919396295633869406440793166204766873379940123003768169564739813606883553507164636868774749191187849902458519654216456430898054078085587171037234118143212253315781470635592815790400113581376152157201272372585124040482144968716378224502049244316788737999945867434484502289563942943274063338391508801776415368790087975740122262500773832788480138152931345651679730174404646511154664299597053371200995501308538695421218967052175136237640865533228908005448180998916965572516327182561660622663902397495683598638458067801717764401034613304029078363104562494353215418674259821553825507708662730132228281203913846995699527965675290432296337351086149213060650954483653641335616302046018045643605451843238862212786235169595360677218343426831772343667638450646782037511601633328454060648957068465273058528689130174008357272362294947519052250021478848827271133496179176904148326312805417447110398330047707563612447380822219673651934139054465866104539801288506955188294583171611552534655086627469046134177484886145541414616846995677960741585553255532847096676655820016816649728973282700602322652436239730602679968797871722833825985371842236694599153674104521898527201392452491382806338126529500147788228221139239041145728505561968402479798932818450199107562358863963494511165235636811036753159448980728984174851410267765234456263767235819427052191221205738614589329898530747088629686043791247979709913955134889227515223511690251450505529073815397357631683035504763140738180127742997838862634717465722780984955701113731902622971204743447700561055596913950186312079640952811495778637860904158215217600841195527830502069255722247891866740905238776338144531134470753300690283074913077290024660731412463335133629041815516611267699698212892157293952990311823648050189511405977347145303809634043638981995233851662113567466671734563673333175356299532397150799885318929357904759704723139186507073911453669537199051108376188962656723151795806168875481367304441517382896575525672775596754338337472911444157720036168302259812258754362141727049722758946804089313214331444665343622419419095910932510824108400167858439092754852678883706496893544261757536543793591359409644860178520937899414742120606630464111945272392340738646133414460796951718824686069435955527328055779119711297158288690049658077329315263223361662520904706403819952434501432267778083905380486986329194240561899702922344272083614826316050182146569212405178411840098344174524209076945060906977672114728655577580724042401914135816316689948960166240272284688274068756217510322229027712301866220618491056736463323146202440065339927409712053473164201551477664741373869133379895543148350770637477746840280628312530177858267023978665566639924733094219916786845381437198895709718363199446478201446554386722652770895718312798737005569790722921422850044779122380530468098445752290516370253583718766559837373823179804806945446218696237485769298687906220905347119405919761025697332638105877016263963689161371471343470241206881888091949374840718661387021818957226922317972545015482907117553964873859693294034515822165910605173112947976320816211112633724325624043301275269999449180139798918858233958859633886797046681465489769855269719107330429710381744902253104246158624413651556869614888192717998811673521296008385404092783178534465932734520106741812528582312032918523373381166302812169970329739896730190051932792708556375479487608845829443348945124371231483622118052289048467700680707411964948760102151825873618183818681456876234361589092007324186578644113632337050968333499725765481450902000481236155811859132000508806603463766306936339860231188250290192244341170373937309181213298899096673296444025676388666132088622371399761772195747996858365807552761376738319953186006520115654724437006644309137737036490166361164906111427636718845881412480257963385826869730671563763627931848324234056071344127505181927947925398705394949136728957301309455609836271718133355550282169407245834715001478689097809280219667060057806956695698173424071421133979344120998872545156798547790957852607753571485144349156295133074494028689250999459924426955381128932824653863655986550439784253552617841582805467179094738033066845185143108988354356210281239912453887583340199810363552240762589556645752679453682192952672427405805616442264694806220141301825937545252982164968968779287017049279676032939818170407491337812417076954365663466781719597676621610696271767637803220866861415756625507893490261929587489966436430862941362328026292031181561040594939727341077791217962363028439893132803820526616310658794073039923816039251342180885398623788610204438179261320436965697104247677545935829243968289932677077731905044899825288649976281462434084590668987542610731771049841594217034170688019089412303090554229635766439248799558918901286262187763554157724154660101508309490756117472099470596738077133974811601731278285341346639239897545995914587610380396144874141599552792894896785817041464103321353334973227042484074902338644856001083493162724365786645350648528907520696424863723813868966894912271379695149595137819620424289081894560649986562567532902696983036888246990308190198780990201068650259627517601747550273094651688412851351380872947486375181913235342313804741300048965250723722269077139005965434779757749649883735842711966099129168586236416495937628935955017518661841144510055583815847468697729446992936420095398673772737393862419490413998866295250790431983838116036686221036017980567275737000545854927042728407846779831369672071160757721934292006509758441575686493840919259272081165728702086456291090712120175274852426974730328804004645855625283632644478284373463421255569125975786273344541759743477908589338734488925321969358376666593542349516652631465236361169512435554467966598598883832852768131840986382754077203910651491796484601883791529326364516313243787822534263943847512638224378539270236420050600363446073056967283916912476158677828775343141543964091039524437194062193941693180245283929077623482305915595929056977080067043283811664037913329663977609963667260838576922643144087219366198545544046817684832845809435870057897285621213139758374681915435592984182527753808321659205356038726507278873268252157723747499469484794622545116214067154948248231528997109051209916171172468252882549096520338722461845373821077052397708146131915757964130767625993953121936505277898137233899437428073754534854980555032957097995648911808391736575022071187839972462420521577780278775112277077489794315995221423653077553599384406047371529440894213989000944063340758739382843429365350722673867126575373590745214943471460209695943870845487513409040312180543547936951752970946155938398658992368775671381653229490477109435709562279351017211647605501105361049329059668989652511362910453346578315937376838217745971526769589755667591573620810864371025209529868612763794206948957834538633390056156973997430268808882381189277493728552362037629784171752174444214736514390297855044183194484784906857138155210078517324410860584251649801395203956079237094340869421632504141274012358052296310226363425605121756716576611503259585064189849763047089230663304473889610498656437064943050792956728646378254654041636523357533216425256362300979437617530487674747931067620392992909120775264659830213801063760896922656114192696885706727617575230649300698650923026577993699850702928371588957161629213335590357123964484821284364123713235688111984874602146220684965393134471237938023342085832456505979988443039320012392851618330665247073597913133969764395313452163130899539192721354259069985489836887374783238928754580015206985214163521219879929530468274198059720583159145767100163365750209984204913860984356945346844876607567029982181957507555669309461269519123980857448209943563124690707596672347037827491109309071899298271832212217251022009439877945113251707918386541337903965391424342579601730863790653124871083533738745073477847691457710694907139365729106464912067969154044801946158989587737481410624143969337655401245575728432411145384255518473433760941214635571046432731377554508440545540371590241705336238543535429175711569910432249587778786526006712965305597423652618135692065296626844263815234522851074775793085146328474829570115119385403758344828466491174951261470345577691379315312243493136350607751357782886105686631691854098757311162831289021339455242521053108380556151874986841791355003264036298657963236961218166480358400836655246860987613112596569157551986745066401096503571817157219319144717145850404236368441167090153744189779859512643786429385794681903524925464326433391967662192189934006674029278377339083043715190559769398825028491153029035473048078716925061273931652080711998629444682593422513484524299946262175559570403717102191826887521073991894028797941386459421791396788956316543861507589719162917607641472450002693883426414068415830081903836358097712426980142574973020162387870909423401623063089226001324824930171788329220748167576511619524415389053984868020420259255619829314993143626993333439185143094942835853140804186230925764085270099281036331931872001203231674677396925180707670083541549000355036903243844343446482539436881173459421969693636659214363137356331501846891946336289024072387989540364902714422819624172196674698976300002177262729215933233042738373040598124243105373843886860867823336411630740828452887862857178798161083804930042826544446189800693632827409789475060290114649900733376698838968752314580548446376880011285748540519086839119121659048464668739544027601850919152601410929407889469772217401822301256745571406308934828252491743029715145073633250503357027961269031874972967931541494503143580545717012923437008375517437036613791072129674288456457551563019460875697261618334325323544398244305502614747873637410194349944162213292931921530543773592329198534079436976182375676190431390322175637007316050441672436288453035364572596923767319346579282040118721506753234138484492690677788173030203254527027179038269974404425210100482902856261477139977075600212677420023611369743939758025877717516120217755194771858201841964416065531634165252150404328207446017468981913635847333576433863598552759659060088554187516415394889600037765800060754631529151116224775387838777800197333460807829734152176550270936146867464067311154028482489658985140302085350093349826180817366215051699870439887228624732038117793712068991948256394435628232666675590132016517195696965778191576729982920240961289778923433523721261730310490308264770737360531246617090270335922260498054362350434293940305939511088391852954342573874506025862988322721680808527700869353125367711996641215094155775592250011730947435891738617956683640180768901602060595008922922278549885062492666410975104178556002838522157257669735811705727911506568552199324381564788193412345201925178281687472717661637571419494625062461667312326478726152435171834415346175804989235981887553940636442143918687237003333007616689171193522550279458039019716989971062417049302835090561405667132110748412970376659481515025395230185070505645469781618979539592946273526737253012403123881682947911213639099441797816709494406936390232704735689531633976210360432397567974366439388578593352651835418279312159716594227464275261165575652003458338972266395992628393440835835661491457745998526922112539233922447880449156842863382711890001435592627382904229603368056216448556042723545453101825881782188543189487343181826043814369182822082895591684688433023581699062915404307428759231511794185936260269413032884324234131504074715583235626757336529953931298303212143103314682079469041920793479680521695693500591789740474865821372482804661557110031829401609519658055528487396106627025161887485359398464323565948410496325515800818174161014155410855972569346752550945703236796397961032786464626938062955349657623215523564384103404808528942344916383433892434007253619082359172096609373867750786133182308119156121132110138080111744791790884138522517703741138510960722288290159843932969149389349205267949122023257416786122089487384614075277734739315580266539147514636504775269299129888044842771488686452416935091499462627665619871244084328281991770453215658719326562634935302085056936893964189788662669476578522632802465327241488915024307742486137704151111835827749310779305932725643946564370358285828502322193731374458764815372221384133416935340640828821601073801549757628765800176657049254547335726010038940239427461909586862156916515341492456586993489642833133524233761474693066164863927487550738542257870745921427495902132898073894158490225770274945215058592759881235362098513830546211595287071555448179214721557127535301737020620810450278124469468179314910457037460464022038915206801450643164954246605910300388590843646417746159282012358846266232374448515582349154126388625956964312600829049134530368423346314393137157805748004725578278655856082337729923320377823156138239329151046974664778924012254164278214243686457442331775793250232240484228733636466620114257694572782098945914866401211741326697133312935247030293104957155425239187242163326469179769203944697642187469444608158425736019829115415655992455696167954161907289437702996451809824433682057492764472527842130295564771763220034536268013506792968032543890934285984758004255166241430459028154933370101060354305725114244054088410019635139487574763906541949242361740923513739602775291037443843335881219198247102522963803694558227000778826785650225704089106288523671302943248609993596347166295958481312313941611817769223222663625126235198034134699932964011747324764106873437901254084601985673871340751718928434806118508890800763718543420298075691938639158530292564726279303423323597067001743145335552503322131833037866404843475962487279759228098522147495477595262494249463089188767442992156560220421506625720531746030540132872398033990475657738421041220165702106894391308000254086659473555488087331560601903535097760227348975598788652749731234950400281199704879206953686690693399446408709074660942454768732172381950526283761596071331676054014019853638465851982688160440399187716332943178833228584751302710650226600615580825404632230645809975641769643851711794079775310458287172405660792499769152619875132494585307364888958585253558713500680643837781179820549257670353354100163319491395635589114721084395879116956703461543307443527640888388864606348946340532617360397817407651122836949569006203036723117229276200592539375138261621566447123885245247391389750553484233336198343487696222648659707074453757622698196005986815875142866580585107004576027771073858835997602280611932885573445404953782707936713896202740034726062691037596555304620973548595664955715596244972022017156356818667556775202130405866409241340848043979166889361080278332907014018646848577358489112680286296074084970283529469486029952271121345371642760777019242208397722336241833043685734193283510472092455798228335805641040276318699618199524516607539180636272210332825166233736530149348402799087933719826406487137709327577064876861456586854900350209799579904442667584735037712646479672594959759735930716494009855820350135445425862288932849603174299626741358010891721350969988017884481224579440662990227806821457731429308222699977866011362572012679805548693915668225558685013756069561568128486198797606979010328287147995151712808862628476649128457592245240592835252915334629097539975884245916263899449981882839383597829103867534566744970880818034187628159754512104614869203770780340054252386326907074168627754406833781990309604950935112191526672413671930526125108306373030771948517098804256092850378174617832879985530565871042523036932696958023171118770904112532801231095229947673042190626022701263194724689387295723490304188628195667493265076437115764285028785039504581180455383733233081490819113449393860065462037889376250753789864320515722941246631713780414276699730228013857582628065151567248594941907759667853202175891755269444411567761380223772905297513634152778900424935389476646874604106835740557408764166179577664120727854797589860519793403715649962548492979087206085390470311438862114992500678619068511876497380197153719153390370373629956026331075216177907163395627964927455976414638931439221087054689711684849482275194233479728747165804497372317023733836734362520765994068974320278896404709986956649639974493712380293172430182388772686143316463956203242142941490700691987776861943499329273036825407601210794232925954904927723232797891252335850597302106026730585695163405837415633602761591425011209573453587138539266588791996716108943941429587174122761339299625147781476846843011705305206985362692473139767793261635922962516432559750790803588248867896195557449611300018449503831671632802927408580557177394166725185652416429883535001595552847193794239087420019070507977857887791672562910486974306578741970580750427434316598547299496523977621519820483804818003563027613519627368391325109779471057444300558904560378034901434318032276185334710181860221547943011912850368854051853805064594166087055592554457379872954322550031179439652057404753904790331079936822891345396913651110526615621778966600666638479008744758528496734005527271979770908557445156330434163855858178532733247485080809468146134915101670101954210065614052359642485257869261079521851621051453685866274589276961750715690063332843122067045216102975516865375276077536647987694735397366459853893780100435079789513642190732410280927092841961006919147453497823543587733528845112015196308734268342103141056124310398681589411443596023522849695861212515128241590994088927795962594155887105523845918157194950832041092145613661540401533900304963695010673483559602758085412203495110618553535303740778478812080115267780600350179542379323497180817562930177099643636182418025838301208899701674199180474799266820590106783057548428813542594053343364767327076719806779509087036546438773002721182755230389688683076988392447517561384296915017172352694601841299383601909959680351583544327474642779833892683739327562439075915976253300607813610397150761124988470808494235010984166798421014451477824571396706126570608357576704011878991904968975501980493816157121088554815367177022045136292559414761474437555073931220170244690111041324793822278070604855095519233085552587831856934363083930363701566324978214400142546920925518153226635239843562810030281827930554191363313925346869210739495651312298971283459870639358745941173455178092084060043314246086783648320851075824506353819904511194016711768594886555029970480073755358177654940499074063748856611482706448461888984636036377108095262340567234375530924862275242059108965433596160971716650486982429663363590326660797834276616189763419037446799146428445186506808481452998245623386554215484381757504166381760070202140421541574562766189972270340733485971766892563061819709475388752294628776988353960671159086690461349710582292229798956142495524211179546941995870771759011906593236478461948654790956302930108083577310558610127751801210523135530346199706708344354543981130285362902260486420213620711607322816166858475430309069435341359017575514885486886914408009322247974919790382137351917382588951424261901101736713602459983643900423292339314278120285107626228568699809748580524803261611329893683059322713301413980715671856187686093012773819590155264301972506897105752462568798120009703485501426834588677532406544608019888197749827247278211451456280023858389638073247848148406843278670705335892143430177847776364382293630644984462703612086832174802086065501563347105401536030121935153817089825231719923983202776598468668378370829376561017929178914869915355859278073420095091012162859511353010673763869836497015362565350715395918765005376697577378733721849078194441311166678138084418616945569565124956128113441209932857834911547294027847609691853499228154357357312741119218004621879994230196031044627013353695559661810168508137077157179529209307278071116010920449263228576963079284369370567842044279482357940096281896333272321198146175200494432120902648263839546813464942543370925546509679636708697803242571742793332223555438459307923994558677184255441574891188140606398739932818513319437774693726935976855961520020294547318908729833479655902196451644699778293792020742837378824972917303136326994103965135148955483542732847801796649895436902239748849663624079168389684932357161141057119884831369195337450051075653352893709831227688941213418676524307618871607098499463942874994024304070118819685769430160882519473095432212009242239753922073755751217713950312711956331684828827205444116224611234720906569396781980914183457247090448243656853459368069390082897882857200696025584457066298120362344355014294312675039518249463543085261412713347833452183044337370754952366576077921235353893723553781606184514871253829191508866569779218429187564548221359865914528764175767383064981112972028498154938588062414315288061109399000549947525784964681936992316852596651535930645834990048177258147737856043794290151441809886449371197798093406829980711874665120152182388804329390758301709080634329598262979906765594830437254615513270443571727653459346320387604880163768544891619291114984082893803115540147934156222884667324406492682453744239791441946534251644966182480657328395812435857789667634658308141487940181992767682089013593408385503190261995416560391783145179827840713390226105705157882477118548427428786086884414954137383319552813409218262619305865320268459867893716907771948630894594771860490282058312128179712122937848006633692362251210042028764942905605438788328300478335846598422107797067553825926192514159448040293831279288895643956313468792531095032169643001314332182500414257506971790727892125121277737450342094637780996043646894055843585959958309437823990764362765730655671837295626535229467128773915609670483075692886181743985898754733046375223897283466068495782534675006965646456047451670905436382482129603836988178778027974137752305156205618851388291257554406021223868441471133028636028235760972000553772939955838646527298520270333499568533420112280950908119689988189933979401562990731030682782902929873518064697002720230556419170358157667462043127248188650739090367647187060178300031874310943601074485571681198232969720375552354479837644162277486539454635456994485424146085043869725969190463527389549093505958470080899805628543494815651591128368809754142079727023688820043612685640701026188897605818431278413043018933016027393826043792542694505863527553946130430630802927147706949057466693120226550759890804954300875977920446703739585402078213971539421509402643196647228256881317403094567590250880043609487491490377961876869122498626231422841269897131898373561187238260203397100565702410479129671064574658346074009799630634687677532937130329590808691822774985737668459912855545367378011995857489311034898538570229138998548480020526610956483653346768664680116376414322207191543826306214469389836121031461946679063342367791397637849095911731609800328677297759268037117802477164810263864991248853687183473100733048749035116606362739630677522716949355442732790622663778391086163885595229339448564561014761837900519573535820355409000668936482716348628246713772439737844900235832457347235305250927420911061789316388611928329634285076425207347991500183415461301960640241810767833703112536303241913578775268620682237114946885147296051877422006872853229431411491293804362323674412830359451800091363181697221294010472104682325150940705499392212359999912601164465663606662418641929327821574390890364230750657526011560161252766777007498363302641875174712213902393032332467447412895700183042827411809766463819317292827897662522411113424351010702217524777721008072167716721900765236657594406283754523934270599839737564047873691601968275835657012082136256019857716634134132395044188217759382233433224352453178686886626821155540772081922422433949881898948445760363233243935178811346605310156487681836674947354819085285562686456801095196255098090616765836555390301399152777623127241218616985057954203698972990700938655836869342802617357588630448876333517504660609136970204707068890486383090624053956741410362667296592237955041105407297122526985313002400025185583465935698786931132443502438995532033290939724445102384044136275478117341131976881376408746878634821931982655694989419373684056194749410496284047033622459146878554104719811660807627586440411815826896272997227902280279387546266673240216801530223920395642469864003038348599003717361108900008920861484807902509858508198461358792235741650578393634579320829471968120708640249262371578497172956973460667541016929452445204710275527959198569810201081505285620458723403435211841745880563918986978455157225147521128463018347183501924743173110126281247792522985584152067287884024825299947891056324846895385047515648212852975517357033440273330995448864332070088721372095594670584723091780414743721938756407102066407197490554552241424141835171055020807754336239948141262510950471718194549996708277836978455030317034352635250823748521197730609277034724711029173931158204772781758322428332324685857320201116986440343886198158334050997042111706835715542873957263364828143316223737937861361132986543184700477250625481408540691586986298939816400360551258133866828284219074620485822504847918882600688338773400242327476397917638867567392387624449784217454451239467346078792893396409636379426861131539155168645013129636908506561119407015892400578534594218616726408389949958235293299721532576613899405008108979814509408284626857244318019486493989103144912848531818639920980326041798635246959266941579136079013242078266514711900829541679657501496005913649748251140163133343968935568435272936905262169245888932756639380147181423720778190610343754881169522898394711363637744577750166674332847492497407784390683159969280398220859464652543052953544947169839524200373040449409828794731253549374326895482619385068822983483557204944091393235448711816139256166310857429888022170216321460763669393367131028718461121577259321091886253163184370598121623591782687268580995812576720121323983434126701598523634671455766461193417547878237499712602836144894349640578686223323413509814830960031710686891375485632635440872636387416483731903653972470884121600103757986027654397412480720912497792591787383237991292431808457011883343417730475517657565253918567941700007964337131586844320855801261867401613103182157192916540318612440094882195538182774473008891556249679392988216251177926682811308872182690656222550374962224854354122178951827603577529439256161027695222093361227104068716848244878358364791856811366485904133245786300515205357573189742014477370232967037033416236456896035298305016095792528309382551307999414432546608407640484324780186657919772222870195885139563246241285817698863084259766138148379981489759834702937247263916434627622004806624795915605154180828780485612638725972765003181031527760631101959130831856497472840217591453025541171863907954979765318752553362018467923313394246052010996438855722612300234267508625744128423817260511487162448865518454202898578685792649852316902100448157011819671282566184854975957352527124418843219916263649972189793567963528255337534441206628128607608677469779126823082207268165940154427727822214013317265499289672379222191901200777009024022716698933185256654579776555634028332735156915805740339653414942969841938529441997565898717706979134889615615282479316713117944858286572585382611012548066762294733313065254261269824705747912506319708951737369490521939353748156224672148869887592811290353473411027832515919761248861734105075705431957158550731147345998602067223938057272456928685445192435240397583444634839671142192487776756872580348953123618881828904635456214309527062259250529050718854053675284789491835124242661207590744095046482867047042046778717456105825625987088565975226053573547459458680478935273208751763775205039086783166630002950027469700237261262462752649999155129293236755482925934477119694859939254128484988292133094455311187201142796676301897054920483567911307050287910049369819307615990261264679187038731626991720366228650628702020465920027399857215250906316783003349724254329420123202314234650952393427431681762346482962243597145600837413055525781732683675657443929019478046953594016753935014607014502925906496046482195152869652422926206619628569741308641577878740011169471687015257554750734371427709108200922487496606138358252328323790546710286878118867315258000404788548865971462311304165963296708606342257082891999396421681922129118215503952766860945707266878711674027950623222553846561006303435654929791576396452077068947487072474694456244506539273798489499144908278177210393105916662674592139392230902281953940809506184399617911042809665231966375660868280485387483050516635498267735075313179460737169794865206897352636328748704351031201800326415830848689449353381826497984201262011762255725071233051850439108423388860008018098534214290183354066661748399630196361498047771092261815780516052116178443318615815355678227545271625335090780603359662970952656341242899999409915995897470774658387273880114265704540362157420986221914647413627313637801282791775561304016895821217568357259332579818943138911277123575343215194232407437137407911752742579060748288191442891580002903611074365549801357868186206953254437744430888303420967132419857309076136423085621381867319504107410451554619212252487672998872464330073025488007441267037005040710656060695021538135866855165131481405855447936386737770078337745867201210963649850489148575103673889077795672134776249565190486596287921481132786239758726601750294093126717066172724205931430700707275671501132379650764361732398678934473057958116082623751846305378867194874611990422677767347311801093361561197415162189294568200749845767508400324646880590779356244574716311829560797167837265216967927408411088680906656934991370686513794678034935929404748848565934968003881501683459324926665237041044094584875080142934657383667284596732055073704066761140254491184668632831626413779445790268419917466762594582310037943992725903917400805737091686206215846179759125154162844198283458423388648998857304732832858057405413315580860207476662844769697527271482283081816730093408907607218380563394506842237384583390294622734289128779203992103603106930293686747859294056319690410396982416140227882485212806595890928219567683509365442947881645619558597017592233699087150009170504332183907363478395609675664522330528725932959438230955213822049764397299157209724745946379654692036712595542009444341426615678438574279639374601873415697470440039933835100448669253959425384444406025321505231244920368888047510647663589582787785466240593856877478379173549021762711350044501800440034015250941798127040585903854678111023942195325893094466573695570583216376059574936241141061251957090328350000866826992404676371528850254222513395514786460088766754269264053955391490722146417874478320772481522372057170732639829235036287731282630653626331553677904584557069797748442568286423725295463661591975968329356552637145060698415814019570047410098600281955815813306656479980504635605190523425613518439051260736431004616904237424127598366710544660965481732503282970743485784147503662527465142625823582258744365535646776628826929265080984696143678309099089626520157216265198673296973586705812196432099169818823759891046905503794318953317936646273991260645787380735959681027987352398051732534771177114745923784565982669058242730433502545720387023371194694284959989188727634085028063338375708242166192153348828488556108079540708236369537912216658403349813142499290199214580982021385719548308145934774536755398339726961671125635156682121346196069945110334113148169868351839373288162065495154073013683191057198632181620389991772703326743734799292388117126221907354576333124610900264637136004581306272319293316562103506629533563531554419839971415170186656093958481919606215640565866888849833381830809731361828398367391461409598147226809171535966118993956211667013020603816410437633703371367612481216277699764772145669730696430379983589660521890523009035522056963013822054693032456421621925941693834595944187414298147454145790623255682338539565337341793022597987108731754812272480980394382283824584763942353347654061447644390999001849256792541594420188607587183612122714078693569424051565101625205983815079366704231418798015190245980784152523794079019955555416637481293845159262803065088779063900120853732837706142621098423654557620383578707204901012448330336679104171369409410785519364846337579177374196568611017626755432502418663249985501567099974880372110070428512813348028279187381909757513472892613276458845536945837582443850032288504026149933460593334245514985729728685304322113801694535337312324305460554588540594825541852959312617695448480469734457887553681842601687976940954486026982865989231925572447035680799444419474944857170390107726268756826348714025872950659577637003277432638863844612085991777290161780597775604020697174080504649879543549143856377723030392615865647423133685384946969116187178039919046101820675763569616833063283852471084481190739860431992469451386384129104560568647643274438208515467515284766889901762845832373254020097447710942552806193975904795275594041474003461055129500072375419530488092770878991644243703247412731485850964881627573478904440542495531527452559132190756667065475477490638812353279129821098255696029670362819765343483911759955948390033938344791824763210585866338944291303340846552296113594023741376590831497111606198719228539588021492065415580589697834699596359101780437398339887032413358101392532066586640538546847333858296638417686013931621501541011784140441382341546694683036996714759890279654884750042923321012630231126504519871960775922598248996766152403688466512987708844346321722365034358688212185520056986886047607862062861988265286324866984778253038661410900929588540545842272326020152003924438113009263443427014256199731084816837002167297351435795402214742092948860130809119236272891033370405864311930507845255960039333904239223949219209359599266256616881574767978947797885406547810382877540956943245132149335932741018451542782974343139047125651379957473909215802879704560240247839012236138002913409219167449619085985394772525849413553298019227769971591477887517581633777636016236245540102513842555180401576980789722428661800473245735844116710499644659115574765734678077063241136723869092886990187436102789240792360674694974499808823346725398808606330148556320561925493776973530105013105224143115980259504942656860162730856133007653130889224550366461448004460091717462104797388416217140400166402649393021424360398504080609499219973524775573444660949981938748547451739034697304504228745235338529550323641712884948936546398977306509124582933028850433652494751061872923294961843499780500857171592529114662317337310245608266208070960793621536901640450464457383625248888258404876798161377190658381006760164332843257330011759791303578245927282055463970551525309498623971551159563415153025834729787314407396444912167198645700879260783646545834928686199920882346087425000381577203457368494838886592846412524005098495256057116610674099202106200732895965914085445095096228442342736418110628683956912739512388672055858757329657370851784592732722440846813902486877145068145298414057109955499970648132260081240231459714593005732038576543887004547911978466429958102569343746917185952645353133123237019599509274893326922019394709281847444371115053679930248000125224387981348017538846804529148188006146822290069593923949358933583499042111825029903262907192585803840821416870480090536580392992376009021759702178989856822994874333491917344214999903196777716922370114644391685172767238112277266451460163578197704740954526355061827337421924182944541520733751207345958063527854260894712297256041746042333570939800290836555446056660198038742864182520867953952606347277495430708068853308339391461400509518221702022794377459008336651781362272230353429338265589088151404514217341735431840322184174043919520296563222168267523852610839801595317383815626373663800131432754897270660754073338232983289197410120737020064436164213136835337636208038003198494924654276763769748708641694237250445200820175957278884256391083427922477511768119278715779868197151731183648491082516853731540919414883540506488630086779209281013134971939412872049191170738936203238440248977567461231873161857059604746511167292147893254896246537040085488573513423033901231470473664728107335006554667707167680825216219560103766007406069756287359321370251675036445431806290291915444152958654558838005465297906427470823073093568851403322977387083276412500325674739940454568524419480916151723523846650295573738422677271378761012562828903810536367818531280287060416463520425515901979451394814524780662828789596537726296366921675243402935377598634016358755652436644575323973453722910647548756220680269271714387210334475714873713464779405536144643339012951138819822624860711969795278557589423122905759891726260285957355041035704479507785438266718707635388167570273794528731078677423798803648820158218302507152209670399799618142535207828843905229644553817515221145252353046702479997821901983356392848236217595384349995498279358163548940661715993441391032817611087791140910522852663874858782343221849208457356159777700991284866734434029384000794647578073633760484911266000677462120123864905491880903301528100257161913821496894898141264361077669960586455993502988790650867736682188098538627645884365972970925067098115863777263277497381564079294992884593247449619831382823194291003567327657409442127075908289371973892604623540361579182592974573976294083610889853822890710852170433632514395021068075627268074840677012935607848838830668630420103727052538225399869970461979720838437131930196677637396223739606638266846979556710191606541063487083814848512283202824410933092228979156687670559783840388383379884303610105436757330902336099088959378572359587505092822133232560401985689174797981059973826355084121643359096454793727131192707043003316961011937259519178678898736969800079128608158777842737135168771222081993862952648690278719257200748868399320893412029000328027220495317879068611389444841240522402700721211413299097663391450124784004891593102434247471467229539298986126591997239493927093012245244496516917741747014733401465866293081786578176177683531259852558886521864874802799332589543499963017999461109776734633415648108921989712440154379343563283700717844039473567429996201894834966297576671708542197359755618873467912757175625145662464985520898826667002026179791980865562240788007826596535781100856646617910786297037352316852546231953795781256062270308858526701846888451911169856778160039185554588031223097826362442197219140661558619840106518780152570515854382248915778031557379588334295065430530802309192186410182606886865513543402743465508651320058929614141704071419885034218217105288931475301807162762768329228422076393862113241351835886356236252197581985785227268828058026723903093069905636000995771513853234114247232227040303425211111509135542849656242224910082864291150184723356926992165560879842708879734038236789908240487559783269349878298763294881264851695977923650642840736305061535974156702176616815108916964194511942637305079499321267408847461558985485800751619004606334163141343364413533274504160229696525877511743773669936055936347030697245767543890374535857126097994993724890598793619835329566182142564846102321929461499441459678847532385321209164274703940231697647401145958572533208250034151663581773823478435011138367480823262662640790742787123940010787194097352038980175632369092925045187151048879649527503230661852202666440607616144776835129240915249713107335944866389110604387607015377366505372172932588795558941165375564598099579166770972206507765770921656994599722190653637154206697120695993420978058131833455594672604844777165020111789677787964846373309736595965371949822820722034141323032433118758684488467429841619115299238146703338205857800777720272710026678314701472318099575437022344365661525131343533108091915755502638186975957678691944466356245100042597054476187256680424718327304624456504874790130134964457410692279299122742187820647941601566211447458766028845387318022777924758508989989580843876620155997032604467806995916147522618756717345721898767306569658663294399506051404730443616193397159917226538914139691271634199715313056646752995710393046109521189305432106052427917913465337977751091393322711435010904378139640188804266391125911907442127274531581978506078210477860979648408890058940356767388529536487385805866270808696485880081469434469244564048439843747199587022061424487557240565881251721481850731185606433792391903333144264794791810144746052101633471679849233555902226702030495212227856292721305510544685603907897216311304615996141576477381347683945757595993311509093528356828794779411793687219016240211625017747185805116567504812730165180467035954990072471468093810226267522093977613776071222540232848849712615709026523962522829232359212419447751151687013540147784455447471388657630834079121996307956597932888449912442181030482075633409825952181050479135712622157624352678501495136356446150534021030895570194610440381046928972697133128304626424589327754266360055811883209431761699276840104754311029055616071847959134856574674706082825443047340893570983629316211569623021817739340318803514979841894229615721687870378734630077481117579003721589830729526641739217757052528698507951628123915776875799153812312566288293971897068508635107580545867712247106884184531051468519416601638519538106679865616894239827492596772962937239545165241315859478368777706791513499923338891513417864858196967309090174393476453423412813361905962571469644771227894373395002068627082011737084866616256418709974384319052252323411202679730944869336778175341563502077234954426712455618334526420402271465242064583646401968631005723711533225138451690712693900806110146508149481587887587773121695527307368447462601002903547389647453112320945125409082166345799022288079251706601561197235054369259304506196397730924061512164996652315909808872585011003367894632185906796886983653258054170666516231196869277800013517240727204548694117362868127862030159137438872405591233285043522048614703536729939315400476250013394687833490365882381335769946404531560716703521832973832103886805203065835884133906680627765732182952191523297094119254449140242617096753122138275507452449606001640963939756261590112768284316673987330866004012816654532967241577510125571898255711172076784102832321624029807136771357156039696443798943283210960832607785498320518407481969553539958040584480569419843049178364743091321392352899180274260507903209583178547682305620067228884514213822713702762426793071449805652994351736141531108927058409426221068475688274533438021887444182753265950775720327010614527167964400841788217541299895334567502704974399552200979913415278160803552380474473280442127122608506169240883013998942220095293924814199792396032043814607641177920666807367176950875647213370873509059795798024141709324615269828570386548028174705345257296576552517217338624247739054582817373205317051611932756662964310044152480946642487326307922412029921516963743636627109233017174813841798102554995300801401132901125232284369262556241451638865617140693495253326979522322076243314462944560983474205618709486285525287927121859687926039513854883523081778664238962673340579189040571718928052042339943597935151772037711310120450379416023494432418820417662965442091280515364032126418319373524339232858677052267300762994312560822553270307449654877823286454037988853620433658646183299511901061715988173866438736184887614369198771836411088509207854244200038545477821650992149128559912779488581323092035670025336943817496736194743817052073991085406520896746717357566494342428618372189404813267724675371937956072778091941748222426734154116316751609350143900128317527969363818005774981774454388675352360451765807329397015407158355852629646957906733638961417519461252186938404455232771988958889070776012944867908717922015736927453636358222558430000407349500554876489129471818249239876046273601815482413163963258672379412256693698401337909412095853689384484958481670202406487116292546326279787297171032635026049224592320330076583972973152271915021799353877009894790447085765017376036526819693351721764289795930413081897731802852786170150051844026916343854688911130031507632424155446659003074428590595548689530269166629767841407568879899830203675459981291539362879520641955112623579357198424447960716062868852888738386288948728091299739380443360389779433178063364735639672404460484400586110618449610675740431870310797174653875691662267038370052382050920870005949593471260762921136876047156198424079214468838749421904184651420151606705739077919014671391704206787653785070445615418166915050455710309941934083238629950017035502738099626892648284393347968632507400678385857907294682041896547988022051243369738248111421933603262404120824539715644173693455125765424162782280462986486137140013890304875507448234945400093613963868681090155896128055775015455240382507097186661538016452778860399138892125773964096405499380634929265483737630588271771173950084479021778968259430990139648421565102100609600479890871589370827562551287548016111630202381017949792927789196430825058471231457106729250469851247434483300306534461719867845813493764669070714190733381501119128200469640945580006580388678753411374692785031276034777143570860871740378695333631872100404334973120157004116277420076972677479568915878825315359362220811896554790825555674567310019608886656721472779654274807111929933252865424077800238294596708359856413967721750715894404545779928869685222198145764883591997707928284728975971161883339532124009294460111567009751061212957858076013262907035663392173365533989959455407376013963413761076341419316111078693434696520003797931872526622315333726019308229826063941040183212470430943198525111224104553402594200559393931994119039179384052909718024298368315016316901562702220273351440230659433375127519876602458248018007309049318134156659928440765081065937590574187847495347785694921494856678876422179287390775936123694793693730482145718391546096163771672967454269825132012008289978236968561953931458081590632500543285299668013081905630843518527810079530950608870907089592638612287457084474062173788048475824082304331259367559877722139502781847716766347770889366672336171834686185817941536983405629071133973266639551764364032407883756617965069799988081261798316056042064353689069757284283878720648760213159875784015041546594703315756902652033585639012510412297435479824480645049296368859287306480142771477892896555072095729353841452439011835719303596006567029444829435490362993111122398406252449447781184326934361885737642251670841407759511542036753747911562982790101238762240750613340438179719628256905903427737455510945942159195259855371021475723757143166154788912363252310473999722173561528114880094332246499133692109761968373275125762642049489723373906767632967014101659762830542443523019101318538564328354760699032453124371659229723596208811529275391283122250930646747059619212271414106198008438876711622705325292897584403751478004334280957395600485234540172291750714911443291098450858757670922550943519319772790012519047940310411768093345782710883177800410752110608525432993003684766341448518683147481497763129670428522157542206513428409203476716792187586624196514669526611149276327516582916558365756395042583994845616825141481727099864085786982106097876386543158954557942106236057207858496336789430511909093089844352818629740676845122542532598784814745654423305702687775773192439299065925200410806372381508028835899284238389241877401268670776362719390777014311147495324823661872604498066102178052110810406304874444882123997136674751251645941775809007381809166655708643019079280251705189760008120856199720189389162645404648213350371642533692147892834575550900039968957440284304720477243690628020055987832942297359808796300870363320770830947325397135132760163372671915598521597640034998353092327375963785772647764934110983578945210942084611310957890551585397305535949210635124729987317971208029296336945137262387221253526914246137520312304320547042281151227568526160415106466774188249823609726237770418450997020798791530128263103116586726787746672342981302065013527628353830336971009125242836813358478225938632740968489694653202071794117636648979764076321887890192110242621926352344809272977053063573932609900983347183906679151280445910642046726797105037707265237884577131318212969928174698127471139484490970847647063015655876186427840974451797399133823597998434448757775690781321200984647822386064498680471634917654332732081791838673248248417442131330910462796141583335855446477226744684315485348594355384358473890411133625854786773449660287373277362331295009077137147780044402027970760537886453635278995562372088116353341373838203542171621518942698490475208657107072961634854966524234706046560293924047025744985107181483744666197845097280319915845058336811400369287758075348039918337300729805559625228133840748017324119154497382296922388725145469139185187979210330729820049215883445263181451065784261033531656089342957875614108574668929502812281254120853601098247037112724215834592854172336659290470644308989962469548232838574756690013023221043295535500584046281029058716387111841563095294687822976007349696587579320975080728109246603079569875655279882220660569333135410896713830674772914766551343650439162777045623473890941207078116177066509003138525752585457644419475329563646445859255860628387416995681615336040341002497585911771201192418337024330505734936293911095541319025178456532037494839671554531065459696522642921764985026967852108463334406349579492059180314589031750977010009610890281859782283698686740780756125175104933644372972940587415178463550783500434381297698446412465437500733307595302810740382493483027798803475473125535057766655816044959491231648245212497317265093489375472336492380572366901588421592751896923824733150452275963306420695590845388333547563283534461039055798440629535935472255732274196731748887899381764261740026242633823279181021417550754603280352308723504136779492009733387337098168864644600310991650179961837229367379481604119532081191533732136685375141672182108877181883334894727537109430501021114172685567892715760050855611161602811623126725708749962163953366076139724302967593671906057042141200595230071016465981588067664659232362117662878874849319239922373580500629343389479868339621316092440534131240827825188493973808757889055838609745266131797896270249965858019951198184662824438584757316064004555838895035918459470749063453260867611401413577877132519781787772836001423313379411733025679211535459409195584489198590265223476869988396652590968028998017238221835840542856078153828636989461866903157083713675971380897487952544999911286656564578906882915402564594020245870666728935848551338956859748404256818494208185447618642929802100289707088139724313336207122196263536974072279317144233772803153963989998680755788210166647591044956901149412782606662529292892307072318252958967814225790388231260076337868234181681420276245410021566634680963394841647556547399615830580492047138578341802346094912436691193820355669593948448568503370424866826702796839623587404205171311044986824758575565338533498960995284053536185201190835422883407335131656500002089892147980830686644928244319927503282160750395016732593690786981712526829945883081913385687150133120548009183410125182207123783016544467107904852421813273381062317623553719899227491399175946585562595903429887757662128881788961835131450262451303378054965581464918918969206152793202242753032400398908227460297006993554483807492978724272979928412030733815459145153026075295796029666682263240048096167128336475469835501805691800824804362715285289609841423305769408085218872735013998518393456190492274272659145404636023961281277997427721796411294102201573294467453483432734207558088229097388627468804423736478828427591317784127928481171107152742833757257059961099530090364867166528065962273483295967232138625193508686748736452928667352791614030873518520720107024021174880526634369298503361717016814064606856087950287516226596850308094152394895798822933599057746910292212446285845821928016486497062302712214165416420752338142342745540510977939871230252934989412098864736974236589777940436448319322862600847215404585601653094411143855252999030532945859765471409779087105245435757000718032747454334842619101079875728244193846380304406449791687727921653937744061874467147557242703972966815526451918178833894543671031153754895212586481146143589717647860320554812787719312070681564281238517300520559639553675706638847855356312339042590162186200652873686824872846142680970906858804547130480104629051432475542954110884880553790880910255565616398583593378904423459477075213181695488597645811737354830670385032091619540904507323292892968614550133643184152619470451678510709898250138513582106867649684067593345964882025409815826072039852752847826898770308066000837121408293034953856879325299931277739961303228867566854206666482705495445680201028237877445168960171250328323744548037046379458958781713155249055846529237249846245497200002680424096912343001560062691283762513414980530718109806958310419665498755991108855007346680552940645158210106138005112702744753518934928275315591440124846955663942510682417284755058787629557528491418258035110887525367037365403541941866179754956490144802167315301256705385549955220099385048145296150853903633715336497417705337159968512972393847654048679014057112306367636091217418919224888588254033693015616988646429923896512718339273510987226774520439711837005813016444012648035263117876833577815787326075427500878495887489638451398088073056107439839631876005791122099785049059311870519488124628888635737245448281986656354975638037049213622837789251607673297618635283141179766623018649554553524068434227882488270431465930968088849715685186450129230065376170297013504145072946807708833784894853416184842373358632529560190726960739684345838276039232039186070362008832233587460770328990142794310455900335965852922109483492353654595791251616804527524842663388084919451296872126771726043901410959563046205898332157243294799885315376283877356195375149408289446172645873641104851332399755718475719118403639412503705948349957364746563991801865104885115112119520221073644706811923937317435138828384034569341952789900216446408512476339687945881856858879951263495346879218939044097167271338961608345799948064872870514426506096567741173225066427570363825864327158108620429034445183432874548759315808704203605896075212618630365202692869437981993495187851301263785083803120688062304821416538440236556979995568849226448671071190019596309324609122531021288408466745433452445149215716993431632665020114477835288006095390715499480834047671918162431138986297106744540163553464218579745844397146329668289729137575429219055837725227461610554792411413289250833459599402536635947761133842553452350574933753267344629931452128166212185978276830317354966494868139924761782097971847531176428454544952810314689478032747618906121845762251810730743862496871000253865000616765156339958805126996060970075825971360110138225121996130940405889469569901664266298335195974198388990498995281926247570938103745223480456263012281407355546342207690210246201112198193036134492688034120242642241579069156344828180078441368903710451314709754631174745810805554166520920524011010376912804638910821969359871295644979907033792709981355304902124575409846024006127084929348462891342468119165308393235953690597839044420572165787464061563514984888976263470858901656563041985513028564570053239566628380641127303196387460926793113242232818033438342388877712585067814363773675098696146752991359538051612826483975883941510125757745055296759141055657946503416298879798827931248504019313484745706359819607909707038479659176139023505478803000015290460474242056810718710317736618807353396324021309171025661150879766623965757155758415560637511510716920942050758043259396079798100954463192407475082465072509320819930236826623078475314900538277136020240351019949317718657181040729707975771108130610360666046247217556062475766261845791072939897478780880351572558247676438941364242535857326506615139586256369098976619587778409603852200462647675439754560240939066381280700274517718396362946559062815431294672668983840685464599264752358414978445929209780965773164357913019848098447367754745105532251583289244780869130132888265941752658887841264511007564632298103096182523466219766942993193276884859921843196456582236477356439417340805030366876701606104284982802096195703651269863509456446266051196676352829063853212517084467895804997491829868697519732413667641555478023910948832051375498048468672165894924419055236510681595809175627545210265034390521249388755723725983663274004627799410136489111225404319127446201078764312284325479568042148379420871328052195552639255611985741895137435012114337969858415220352373399833714834845194243151652036431868456223347978904795483899369511706247616919894924911459532575704527626231110771511820243414088904565604909577272913777259870335269611017060267400146276738864580739039483331907321733590780164470333330326497068534680119647504594188965384535376496295928060313142283469156078384769916369340414820856261104193240324147526591006464194202664375595908677525016735127696374926637769575043303258532086236595866015490574517233096978351046199612990763117697284635977130274146975150370893704267809649843787166720968672768151217979905668013529318318106024221355529108653366098265769965097809506686309851015327780883752109915480150963458802064523693346354276571419213992439620123230621958873389703948827409227678302106219530762974219162128592119644564309957039923689576118312986116427688798007844429693829872274668598637740513105462230962686557833384388649537462477757604831638293280996849293548464184080038817686577939714463108888728266589539687563100841636341102444473009623402405338436430925159156329993141325261711341808015942062494496307592409622848148939756728623646061396688338115388478214209408890843075384283431214820791711770047374399471123111865314636173702870066942371460725798814089121863711727371883808703762375748759314597193370917546222820300733509166384004998941519322071733861040764346036312752590272085384220404182941346494253919194086731551245401142055302823103232201165071639316056203166835068523353016378777848585184843631943450702440968955111543807480754300758321262871178328454983120982473366401386511724077037558535463984679223220582098952234795071949932701086902418741423707328724255199144252167266479320954948943102234975863998786209727129654553603867388950720133343309077413388056779998199341953755305853686318210273778411079694932600785974861953646184515721899653889257770801208789576350243510310485019412869906354188680727640782341950250311170409152792740186796021605889990708751563814852967568922653541478532760795232232280792661954293019049440822232931149240139777912115913894709335916358420771654507551718180463171947643988013604464743357361546195002556491964291823604678716096713792173088128014934484203272922776012255419132595582119916441775229391206612881622947778258070009602824209408288020697791592412825878186481410741321942537751586968540618432867090616153807041631513490685605600155483616366485690368372890692984443385611220630972618349428703610018240291570241722047195678168993402585829777897879328528319678970029911182809198668164970653808387340680747495806759677371571346645372108634022479219670723847968492974854639201342490860137728707407489163403556753118333831802133406712781790806076947096029982900732400972460252811458871577845842660235595261306493820967034438250700238237850438521035099704786120423721619580363489828001665312184523979844226485542430697982744202770726825244933320185819486536200386047975398958647800022594138126342737309398243316361928502860514438786308775323311832664847022171897418498077494985263723373814256211103248657862334226183601580377305052510105817055229454853264238529234126437099196190417547593387973072364615224497900143952943960688647307003022719437096949356494246172072090459867685885057212440088864599854473399522414227319646333424220799102049191130067091089122940768857268018882650021199988906728054154055290729676950184581911680819775487101888968686671159790796601231652689173136841016200754410503339436308241612175822185898086802235812158267299806661718529126965227516547857782781055725667422261304642053947796149313346791360446941502271317048149016635622827581444137783516002311425270982306951099912842931898169048477190600952627903517180361718140885261402585697599099577187686631511962252709907979708299395575166081015575261956296038137609000979652282205335804722863411287760316393877665577007568930010982755557553188403344725625050167644050851625332083684772814945207549183189597820840148298667120918508657759847641357442959989857598767972839665902875416001678854731152813110423791972006569474581242910112685110100032582341478647186648427640557216759935229686818952092876770992490688589315143803160505021716041258283148972193535328594656974728104051027519594361085157224657373205572352337884684438654957992314633800137828401048356716888607214171734764250028926543544233828131569145976383463760558714400065120362503328512408852606403479131002180540637437671795477316636153479292315781449568758971303696982453524095434205384842299370607291015376562952401666341506328225130171851771485767675617098452158637341685905860818115792378051016995088051570903224839935405823880060620628923043060745753243724988915407023180814790600318004562895351872287327054541558055627648906290226857528733431802318418280373532657073732062727400156786664004054342088274667308557113267873079295872853355903978708956167922496545517640599284977740905123099538744637121923724021319437232667776194475650078396383681364355948141184301091491318075072442020317982176606029857742731058705651507372776667030148235478280689964682844302521724132437167538807263650646805019840972058650792531611468473119711527874422057222979656658872278463140644328223508306085299146517315498822518712692029192919931474034508613225313473286723129296488340794535767287349238863212960008268117772252690862117252450326217674724246131963774283809112989721955394808851206649466647147938128083780777646063220335862909961907966435417248948320921215796203557373588291286408653466524273843851190740749045267710961052892077143915967508331160210662008805267000262838865643957971857275928491315121044132753701812627016291005039653489475440364774846255620608339107048259190008503081077648825823657623062769078325106080166761145698864427212399253960287281655552442558317633284327805995371456808775973597851724540206004843513112263170009355198083837134704900123481686485073683357582780879799857713927946653695955965150030484671726969656038446643292433696403167177236441567206373254016406698640248067146557925772255754175322647080726758354209749746256053263018840566747402608781902683124910247123813855254488215622065870319064167095950150163312754755254149687117385035246458683064224080906136097448452917715454198957640166790926949854884061189831950396119703423867663270904604009056928685157227764675200507554161421263963931386839245145745472991202567548373686144298354670768766411569157767574721896544746612063382200512659344063901973232080114405632538273157524312138314533592169732572045176231510032025311791670192920304655070443240488938740545192869629349230536544021570159705650576793180419440237651994760065155788256186464360492052317986603469475909849805716663529964312329927546608794491060673326654691409495162824653587867588339757030187886977058536834154537718701096202596683343266207980082409566340222827515019344707552328572924789816818759225873685900795824478194552779322978934920397913003443221602201175087484755341817748386282279766174460240142173027853135770162390288728818240141553341654372030385263628075652549443345630046790661414472635472310213233373250659341119271224503830828129428215570804121784203729718202190555015351843381082654872435501074640459333200016383167892514641920609400349891525067188403497597390114085506489274897871985309804753326441276390103094182260434294316302804642667294900533002116286741816642024421129173364880495620309786614539851586131153543367333075676339650795868464848055500694745721660289579889492626152731328397924816614271961658454209856698961662850453602927374517029742024653429031114790532099081021697612840699397327970211602454249709155842720726347228869204259617483521526180493239022348974213436368853674153082349167889598553166639617140429721827290339260356910333003997645752044139159538484411082748093983658680370389322297586343913792097423677304007588629620981782213960357204889505332137070471854535857614787645519766614318403661564336174910943313401820008288676539473771527361773828450145931181639597538544790748060542681995684785727208386698293585553755877071772570544571310503789890691253478329670955095660287502877207482322845505207686334076176856748826781865155564043936304486527861432416496659684704570952163328020534128462735960096219296268834392580199834411279538171260729617992492925415359969547564695745990198609241010107254317838719914194907882121893777767363078614496709101753817448289990662831293588085208812224158203776234221293621297449788351936522280392934555831368036446997497203106293578594629964191162983035283070691703506662055411169795522128300435177527851136184518949091836659931031164639935743114981821519037465345544621187015621206148439626385854539782271631609736315221852753601672176900947614677147292775421569857317602068287156730235400068076983604736124678684301897037778132279530237302637231835450997840398330773986942649257385372517849531071341996566125980320763845825446464386162585864956073302585604573832407440693643202522428656481207828394536893112546815916075481838893803548591519706872658633057800798822682810780073965271640947935161878644153538211133402333629060853075288926393930046744155105902245869806111054107392184000772671789700575281274354397101573583767506647203110420557843731145186674668567967620524919386637842315945849722870080825831438806271054097236167951867381328117669827773472372628356264166245672143118676791291943698077019667174326908682930510019643229734353590986259433282156455319678488318675437964852130342815637138961112699302281927772767634142960613507791762803498798498127292831096454032491082427803006609266608106575376776353169981294053730078522839093538264252031016327216677217663448579536469114182417396073814027599895795820920944664876308636340524523281637748121345800121244157875805456383824026554944805602498301911953300485472378201630336157487288851704251928590646967170266422709915693192610039721437483247755677199210012307963934598830415511169837500986455000169108519457022509488393928738893915012276819692828963553607570578629476679286217330168806112958048483816563195659693443888190709055567016490589469988297405930859092922594822078350114056085332743186325362366555728188100432464970619631035188927914449415699230699634738820663205870655947043874522730223296198425186460222893444516800618433243282681758841818171423033534247151462416930187116619054567795985731597178260579102965943392260442096312108893883187072375349800575498768568865299058825426287627279475322821465232493727620389466941658441823024940565663890312344735192826583788992102292501854456016286404896293216458555362845774604081747964920801728739846902611231712793667165952124234935663138068130440697452314068468832721852218921278341142301002017388686453296052948369101725228102762968116304556173021687979677929765234060146043826027352699088999671880410671627445646947852901717679548476241243350067732027034125795058279687712670491123058548135142666995952961855901197550292595674717898750622504390903576629015709309758657263080443994524824662528783775549780005664899848964876964255494831248441916862906869712719088522209306126978771899754314543916839569712725315460286208533968207908172331465239041137392289678638699817076834007535558203731976743554731830439556006057439443846905276126403330566486113054358641059763073839229757086142086794800408812425684985718406830792329981239116837772348888870935656360970522606206397896820947846794767052924039616934771959347089010465719373300941721586285692561339182422571582186832096188879773333176324881015684075761384695510740720135140572465459104860860186328649904963168445072062899770016078465031819772207203912763357754866739210188423026922861330249391264422040518294458088741668649178644688123034040526590455226459133639826358229030898437254579128618395354679079445727748801660419851244290284859004612395858557000513946240731880099914298232958310588166525014375032973146665089827653801351841913655911976425829278642854541571327119118880874955748437892557477932355451331458160389444571396641128455955378024309378449610430838928671487570212590171146243208123139083937044241449864842571378943670458163003955748141269283505463605604013355787811012490656803258818599301053155221252605497431344306827192811135447118709745529133076320428978839245774250376109563393526708911185619376880198074741820202616118670907715674602745609033920924981258455132460815198663960360142067927987224478962965121632525496979400289495536872842848534411243631173524158881815684854243105819713278504518485107976412501701577738626575751922428612468718809191874336178361796925017536484939511471977563007854936892313548164863652865386494679138136795611209594265763940274683922206215704993132513730328312535644998278642664207581829146514833853303704571262566965485079658029789409793189511811605046896490636285324775169821604787323067407029180481937334044843409384246932736822105080574752854681242679544712521442992677006656685234006659361954201162479132014439814618744222958580492605221077300618744123851943602056042341780654492198364416663283903377523830628362154411749994414088305418315862746376514532431038299367334179161609082565865257640131455053114842197498975752115958439139600925188693715429784399261704899526693424391718411782190894800321472055404988245031451092558987647862786663951482848908954944327892103015861715486140083624029004568433343277155714543647083574580494120760414538371345460556494677556317900730820162895326693972451474511781903385307197632164731882981293668605662374615939624103640213016757806081603734649818125037589144391941416788920614480514279617459019321741039731257185278451258621434116150082021580918600775679011139547834131722246779172723547778630401554285461876078784798252001003833858540850089001847424901598443895480638621480093364868952783193295608780020348994508933077463117783222029619780023782962171528981477092713722233471383050719106562047320834126335315498157480684333089435611663907525385123521459247620134252248569555388672530009880132266718601860802190488644931333118305579069628167888246276728107769912551286056312813697783388331918102599037017953898776089227610723344570068249880074075687440406826226930121636899619565096370324012634605797368299920958955237609979328571428565684922526718585091840266194331356791086687747034476300774102967662044483205938749475512390306730841085439211615379421190762271142662474322102201927995028407198796443787689705699552278707326604849758443403513012380965617112116002568711369512808125405948456303859898480714704349602124011215918789752623803951491322532430101566102936983912341526659874476726078904396549765210805736541848319827053261188943362425473150254391029566758955993734071132874779786779416718382375499184035652642738020032909151908178092702694825355639793353774402737859710117772505972125570450723641954087423442800053213222443629314258297220688511495693918289206443443934570929868163126222342572320185579411202243130438609391052987120910935825632599335287663767556436205332423452552492873192546283915449475220570513946015820111895406134460200362441790441793361942358803206630885382569557897467033722367785411983402268519958533110091042080771314612178749200201335436978400749826968889049835143607349297726281865742830139283510077753583446019443347211495226750863376185828946351541186914147338852182177240177676647807712005856242969122157888146568518432231919412206902747580413560660682956816975639414884067450099660794768463148922559810078085606623224425408180636162641164063545132471269475781728963614803016356438931520583717516089992970168769454620721077144463876164003353796614720823284358863747832211424775254632219774824254283309083776876202508167680656221809197414517359503907188187775164086018687475134345372667032354984331130493682874451414110544072806162641835199890430551005742180025648879169435322325752575145573659566362476834127819473277979007462217882032746941620701171114899909867402459703108385069002449650216580061057958340771570538621767435302556181634596196344106491715768058370692258760307609542174396566878695373447153420720851025800946345113317081002085556535491461442610023345649072533163839637381073720337678210214294792202170357050162423475310138349738419265007010208497404369841497992096283004486664880347397752645747784864930299240196343838356765556209202441071929534130627772145234151228927125596298297328915312071964653468493148462019024593474049397349470549296945590359354735253477863379279875958159405515236614401782662899657348776316295101166998020806515906624135282815849308353800042258319965143148605859420618796920152455484100623382725032548633101520056167029163361895836412008036885775146485690748864576080666348085916574930637272924985663456669838069183565614716848114793044640793885708486050224971586657269082169269570356997714661535745665283722833396088323897438152773405490678586969676824836766860452626258517460214249669964487687656644300011843735283611226692389795122355837475900480574628865578695610193450886652099139186892531553707352682068574873436696965034217535869581924444617007436605726664278204243675761657600162030672023719374734264340514795413101304943615815103771816819099989019877665624300272565035712780441856330195991875968629437145356206561675385924970870120818270606736901458575412114835951429117232511532562036069327719633903670731509959190738663248730252864302549314479579334898936389715891289054450436217038756512418309829946855173424584759670095637262669341739128243944587213828812026975512647067582950955546426313762795654354066436413086357895192666006244876360533196416126490275663159199212585661888819416910004856916354368576648395099374755556280987112676858182691523762972014793775233160882680388504083089624429326255720362533612892937743201438097318889836084132309011091218065143891636303449281216293211682418453931528799994768402006837213904166670852630612968665390164929954598866251735848638071260316579875675914157743837068038380926075475774187035840185547227023817072292926407636441434292207431345271031107876622008971694695393962440643940573902283530194370885926034820003247320101531000144511482144496157994922879512233184288271596838732950301090740988110064494963766137109034130235244792594773299658623601124971852306447251838449032839080750476526313802475121841323808011531069741030967986176681548684057162190792915872724145603147205592741038042249848044215682511793532603455485301481367909392218428759944943232699040300989791784930426766617380284651637905729856852060171461809982440580684421713832935066336307684931362313917574891469281703859511355415154493334738189212282479897576158628051387585551487775781707752388152724608130291188135240095595088058311953590094066161328473904541867608006258592523375587461869732106722045048737044070763001461282300486013721113248045393674161029532076248601133213249303060363451743384608164331198335519936398262200309333527169472367938419643512752056913343892209603542135561699173862842748768081503452433323849452005908696282031076587083477292209564969712987361142296681697824169647139852868905891245729643953627297008526655082581090178563776106535157722903713393439887843632703230510366708636167342524382715500712831082313951831878316447393901014009575787112911900122862924146919006134642934001469858104711736337442083309690086891690373696017370748567673507189376103587808846682818217977250729572624119631712315773517480199101378861726862674305250624300575063069980192451186688624077896636055053941540357121231961585909283745840916196204829399306052915941153958879353338790579916834359278787546540597943758362803634845673514285253682794137379155154153016918094312072224550185615603104211201225721673308102756364799976893487092995064560042459325719829858297677325152493188607471214005942084179921097249017862726145101045946371948884784092327336675121973095982832246703012006004428339495021295871429827397150774382123885439130976610953407584541845065883418330372263492149810615939483264438791479256220362675860664854944273833925102356959280048836135851655558558605223223456255882066898886610009748113325497357268064827402717028285198698354489668380565797204904808853448447582034977484375468272828150065129246250484342180749284651186948720014258291944138518915024695362223682786479713934531490669486968335023956104283665284126153693483909169822176362169834220491972095622674809197145304715234827592068321348604682901214260800594714455925489964393294831531870811936349015377348786446098915448441349351122260623621578771487700572515396828282453830975375191608746037539569709045304415896752360641446598966985886512806667438192014397846194560960765421568044120309381378193772464967899448607340837691293398680207034357832789468041979134328992562194350822792738636760877569880327522609457386645757783056314664817723334487813540418372149413601851737426351793607627882973305669718954491493308308902684930741911589938875944854325705330816112514428825774369098911477162182368996369738363097337916746221369147682807450025850464343814121252688919615936503398745141470929847858453509474735119866497380106830349246322981404114506460346682479387987094485260320342898729584005862637991999501622764876451238596363501014197863300319164628342556974815411707998781266660581045345042946109433875219982091803288843031663405043912590828198720580194688660231486607842792870817127177699981686068339588672566907557117511345479207216426075951997295425360603698286826075683973890581315359015664411157079179145907740063290344183011435636634342454150179561047181741515623261459994091272209689197499806283776289479904125723476507822566000691941759154913282468930390418443545311096624815820909566235224464457214935874490245688301281262221252497690828088751867522326178151743812259421885555584206013736856357286807187850710829383058457822522128568207681314193548799385020128605129096022166718800813509335497936263253441269829645783388891504780165980859031321929797158401983741962654729705938237858238535347522434918631279727886633939205086073813777668637300787910128480597119593062636802414849515380332954861693782656140193449389170568413765813441963869445432992639137641960668020878282741266347486761298771323416692306385314298477994769960882050077235850403955229269858339384826185478449969113757750057285898162216602355703638640496668100020493404828165719039721916297687137011973683404347725241463059878227288088095363380869268405387891096182997931321279971294952604389847977217039761090774803672960884337273865946075002675196245031890668261212159592798331574307571906747153574710126939085450856786107706584219397280046176475940629242652612984283475049728223011881550232389080671645002094873718935547650011711147696523076319036974546107408000862385432447785413293750619453983101160733133144822362530323095503282946997582467625166293466667045870213612885472875095694098196044173270228916390126455851023300108445883763424218474614387775144699330112659370089691475095078848602199477189347298061364955007446725971448375310883889968350088978689466407128501177098078228594485118249773141097515211756864290965038182553475074870401125249838689813907551901726827622041589408750536139854010740369509295949569714476041967185650792717592926554654775936213447590538866090794212524316105592153979454639618066193356366333135922838376420238207934718291977237047293950329832611318975383880016974860794454353627462177603272276584061462213204921143281400786946771576650309035617451240821013207241586262363757254030114074322102728146507577321903197784500281002367399444895331497450845811995577316691182834590441959962627784285938496434463210657400690203202420204460094581316105808571303475045979559880384084780272906224783790414947709380048899497574361139483013341453702215898745600556725138820811076577023563151154718825586716487343827634503946156344084627881525823461169547608231388260495849250873774868485869730226027953902587859350699483270291220050670520741520366370282549767258807208079957616013119455752498049316749262693802516978826238467743420811438795468388106638261395592287602320596246366709740634320970842245731635640286170601433723344797376922858726611372122197338557456157622895894593504643104697447366433205910125632541019765207529135909042289433001502643586398091393004704265304106093108676701196862209387649266380503869675462160687311575137975579482453140954911436149010644416196258573969266265386921648767526088186877726575567038250476059088312198523375364963930160576111411794826876886247435068005767345489093903341621039223843950101293291604548138324480297805129956498155096416188899821751819510232600710759064604074450348723139118799916820910780233720420959950755552092071469458842674049501768911976811393590027988747146803502700964422986655151387055444567909987668877061427510184699360681426903796117044917517488185317542450191025920292859495769462505005624862191788895861425905454331533242645907062117358118078194739400127285207664760418690210007796852089582619617332627106489840700890433888747819584758271520370513934214377392012680152687835264109185148772700057936776477811668743752380992391988769072397453445661222949844191313095210279824787821000268181779975846568285348777794356236974628393175428453062047473637699127304714820329466803533889734150619283406306244231605149729755440274959050630063009642556013965544047125813066166664503699752065795140632956329301590179370378042979020110077545240957746843297727694627767699593322411249572144456990102583060030565774839634177730838255510935660716621495387334353197131013961517234006353250688983107527388430251842642611195185608655131715543297579614553946320808888274492727303486065592858598759721828991040698987934097553939794234503487242414182970418291319226380477536876471544494097818348489439462901472447057895171121735143511534015925416724753003842042014141803069400424647449392988458828079441788022653881362708656499162813949275933585435872757847457781153659011876123039734616306060099059240741836377719752234589628340161656592940617337559716819720501665437763115922312048163153996934107448257244316511154149278109801935535005727267327245505730782516023984800428911354710329812911080024118831390229235891070566280022359154453501787475024973366183337645347328183824293307835316720068963112752164728638834207789600839697558340728652112384218614986526643646134259362302127024071853143050445501092647441566635728770847690227026378803949380115298479506189842971889389047024323164380262265893487565933195004403507061492807775552659176385436765425787479007781956913206038115340094745581698035423805972925660044511793888964404181846164714858575564085567508568083266057512427597367635135623044314467571717451883700346771138143087935536047356801831114025792038934856357314067890021814000364803800484830518951543306077521115939506970418657356868744685134846039950525190227588901485241315152171569490490575509723562211782602181016742016020126097224262915113907679222286010293773832518271951272529648043940591378788031993765052932287122381557512323618349595721950384752300929223002154155823212631754788571023625657724696413164496069674787836898060602858980194444071980747898016393340363257169004488895283228614157365506890739775884431717048155117039555023561993628431220208170173067654171478538026491700748142904688663645548858598044172716745060450909306028078061916004005756167242210733211806931851678687643285938284490314302605781115314757788775384279301064329636797655141152390951889926243117068416570815555002407920734675912132602442929301692260969482534233677953232308229043540656503213650798897851049895113385210741186206389599100046558828369108659966764490587615755424077676392706598547387066931233126778230932908101408099108830537759934850970092315732326697453691843366242457513196120737773163413034097495397187142970175492425019067287878749671682096733579449332526088980179427162757892708021182200957545392128905894985167297681146493020337973206518399781446851177947407239019402409489517027345506476354991200257362722874974245317811013050363345043103533990452780848660760286949496608357077129184834998236706917466066716122996595328782361081833824752104616757178425319786236681105379711168193021472557045617016134477637317012622656855199038810236202578229138635980812761826090108721061186120649938651439171741827449900922271847372292787148949618703716602753664605797431210191727897432998536082685089458785679976521792918551074929786074731305241494029605060173192726637957402402139318244567768890588199860581230368486892173944826740782308413544554246367050215807036028074923945973645846721156268083448528107666098102991160954908945986766757876442449966030815182229517415872708205227389147854435595840757751023449209162070780158284591322719386884155325574477020587325292745431319945272192509056709756285555761010145450005913081769672883417528945693064843111773022394052369193255949134218943466357687187815385163137020005416689509750183227783610419226795799981748900007167419204181988867553988804500305623836263434737934940822204460759644666063754026314081092016942964298418668689278516928239618216306619829245617073172844940243174392328906025023231364272980426114730591711092649615014478781480826240749573292181465774072306410807005000239849428520571937429101418842702946195978653403933443423247832693448365955514597736514933762813403904599024534259515022634156321732485571819315449812160746259821701505153491188868630126673049914476597927355265382881906706656210776778018191711499343002440978389712480837273036989910251858632420430513310191615494911149854924969742784350238617691871243218304996284511499808950563107107476594806069678255339757272277692152150758205183278968355992904650314176191612742947785401723360465593860035738184762545601499351023600689274993684027553992021989871281336645525956549181192233154225864522357633859394103163752594374676886201163687619640485991088510950682658228465775482993615629642231380716030113730679197580483328384929866527816832388420649045856971794608517326353275019870062830563474225376189857942769351348528275039505475920881884666825868228360564353914918479061233263311321446870532722274526978413539023870891050112830601114922627714328377923827269914755273031413474725413906980203242485336100868903578659740727432504849916335023238098426271970585943094439687426717928405237721472021002198722512497166496204234792632081756440712703507542906469261556398142346462280760363713670173302596728568944427161186935056007725837491584235515560133585168273159118294685046054430899775598644236609244324864599862828965461443031576243462965247467082053402341792532714501840316746993385642007138654515597084907612711703242952229671263436062759962170108021630340270896084397137011918013671999495924388596165402124363686952996936870931419967848031340830061227833137897255496523500834892569135534088174174534246512543793355354972372500175051375908973039474325270116151486608085788479921942054350051418943234885793296724051898271369042367957068193879483682334205236178510761745177533806228372027049322093135265803386603861448427307751768809672515515096999522584080285018558877062072296051340360449297222751237058067961539892938802941573213622943012160931004202656388471797065550596664751928164745463766084426600712866456619262879701600688100469662835262910133088646580257121724414144537420379318060902785559379296574419698347245858096151864453888965068410752766957177147676784677226002707202753010628727264669352397739380323461009404202626689860235967241096735597056658611542642709900572244561296011829944700470464593780212188861861406689834236471635486261435880532566648617845189343657158390115434575330184200023103129910675162830096941945324688322058814236941127734136222763415182960553516561591107026568775965879834447273069260882497454339295375888529881171823967982841852518674877584655678876205141906942217988530824115235635866249946864726114436366486590899632290675365671964991625107336846782755422452917465743470657984160207977372355446833136749796246280120641080619140104152520943377323811332457890634567680048528125932489164134526259303800819284468419595297549196736532135061661245154682937056079894503098140123058421624801416298392703210734555319873866442535930941215624337683032832629133909986485110928558700246466570915221065175278693601827280458715894177376940696290833441732265235920991640919609665209957550156092868400825379314576510165475489186678670282953849942936695470194480542354864851482108110555759276992855850377579155977942212702769298852577184705016874502323399585799071677819126468800053819117112446888542461546132421742095764432230666422463369076514798026186942169500079214004928759006527083564094413805264696686699910721254449150100514342384054507145751488957057829346661841278124498627853786544433062829764706991247905713175801373156835313501748615666873313565949408605196135988127134274766929405270874790122910234723071657754738869846097571854288915692718619374156593936720550138592702130406641061025297933774466319320030884088491592748672284389445910241987243718793506284961689636705455638947548147875225523812859654141024062513875403115004183079576575832797895466795293391935108006052485345950193684774924622053877560943827148319963200688460229208683933952704326479749058246239845594618166113090232470401258194968515901496581377331690539084528734036631260632123133385296521169504923015117949146413362192056283758828553725795365248647151124540227210207261710162866997297515150739635463937189924442252898837661644158456625203855313890003637491037594769329145169696057429631299533743017207755727794013785448643137891052954697653769141219874569061240623359715914024215024797683532993006727358638925563609145046500608362254685139218585742858894029740820266999767259166114149096592754932041894956207429955215980624288204693503941102722054705648820402907319723126162516033305846507236235367225679422527705647641129375757237526007280842497706131083042707579222631789105673816554631754962226129108793699232162455307497024357268145994043859683666120548605790063109325192399077432399946416528962397772476587682531556301778915360924703726852672719354930132511760329958374758530412564719333316969087565627587113241596816894317174950171176670876498642798385403386940196936869686252702599103429980528126427764597131768602922861297971289420958675524130367046544353555350481289970480064321501508612731312346682896550544028330142738606079981909709456614627495724006267345174365510908310672754668247768177529546791124125537394596028948619349232004900979845314675113472836207386750172296141176858345508818497713026723349139692670673097311603917447267474079779583754916961482000592015683874646206449268773188272815733087458050855094341328802487156262768882292718575343201582923047727684106769279003580970737684191166311248542399863582999708653484524495010116719835026846096442948636109543140985440316773886031057492731590585336472202615444623475467881166275417913022117492000086462590339018926234103454378116711902435405246819240856077455950087998510308526749689904117183174341148000582800626096781072007594032946022583074950409722624926403814478829550069998827788357110556851357161762879473936885525985943462682302719331546002523717565855357175317102256633932307611950835419217459483058246914250945668473065052991469672839783424365978910318379694669405050939981256718841933794669647331488986883107109355105186836322345144618354689341421876923371205414829321326216840625850904069745368383491504501287527413271696467369598873875934675936655139874573329242387500688060041917135704413420403974575807799647657672034365189945682315644609392605567039560542990372554374541293879936614726192475643624882742247902212041352559418603512017900346432847813856812073968848083462525573060699064458396042712294548360020988384571759484695280938457287287609787793866916509418845127386028318857502215194430558396627560946488214872314216917507634820806232996222702034992701816854168359888865679204887953663549117084970496794517225006833771273860661293159996094482706665988617985990042100960678465790223899080765502684049497604403534098803104252473819716807899054919432785648394744777610946293344678338614998113814886295699946393205718672192879140237541553480862223886854386577226916776326957235926310791884872125587474463211879713033769548289367857644252158145786660523298623149607531832105808908177224362173452644343530256290941975334163211068532940447116214084207903312780449122758863997772704508808004552667775876918564948294333638989107354068443016343669637953697284249426923304784701048716592495897105214841807116229482036273313523331695919023892214317725782186907610019581517954149474178497169591729042869488199188428248529709844421957166812251170745835987654161047409138318118891801000871337756545239396447519011236704445069871347764935548771971321188966433466463550596594715932065776143275792180492001599512759622369773958621997529392201694574284205177228470642331695438283791629468790858672985263200454718851069378273657806063819346051954805516738318605837830084795984078099130622100461839261788832000518158011892153901354304598541362664965764182376824981459083523966042822481737769723923040468626040684364236692594517741810875602694062030390535527969782908293099920082599753274302136809029861607455098224267937759801755800882553588714724724509870228781490551709069382865167529672431137814769687578735470732638152407426398194524025535944853604952599472330836521521002218440426071666422718859515280199519722749875254057614521628482529723578948046195401756279204163884622660705406257982818843459264592505011489113218339825687024925458020567166755165674215861272517965856627050095648507147549419820368100610178285688137760529217460411597882314519847320919706281070152880333830143587385552379058968704079732048753262961931206050364885792044411320863962225050809397096707910130237127518129391278985499721244455465134706012511860707853600369956987179988549828328108367209154510642239684943250968314608151737745767701248161664490873370846459836942439836650359014151307871788406303832644282293472783966359870308822940088361454651226260153063472049423651341156954688920953350565345119849237648039969809852486054361709107643538539744772892555858761817335492384628347486732236105387763879180654210212195448612881321567421050116615658188949565541705712323918939505544158679368185038756708311107611122427915304261703731027721798509956163531568655738081895813263386666200230852100739723546557173772105546774372308621645551462441813176404429227703443736159024727579015763543922063882468445988284884293188141919929852839917605736204898906918214997905131595108944814376391542352218405643359832414834241818503364455655103974110762905935014761677945468045231810350028536355208873573700423802833613214520523888307041326166236146362966190872645368871536329101886765685127777423570840178725840849065786473602313656122341673308568078614513512756859677221044256973228474629720203746422590891400840476686152916554096370896556981001248754242678724314380805658343897234430707328058786839679933912904058127049511684676067458370109578578363456515385633052464738008884095491734604570152648225723932936518940924645942952880106273111002015081221090991581500004526533396517251210453729292793575577295469512001624528101935055467048449309162089775833655133204000716243205690518937097708136789399895759924896150485780925474587847832414811473953017933197890531437610583619086797759494069152116611650605294130260688792408054109981807790954093874847213179362961257569933999951914006063013075429444041653927995808431672615093412134086873262094184544269717348759633725712670422606842082487685977820254483944032897242009788745263884301268848254032213144507449494134108870042602986211647337370097898038158559337736712003852408826256882294815592610989321382130168122629556053683528973060323153237832218547232161794814671760416294384137845016242599619642608610771867098018776498343379862987205265888958741224720252788789139011433761380709876493650731859441598615816813637531407901819169465084449643788609311407827923049983160560159469684062992290898950567982317139430750936071610845138645637138049982816397660903151841706041187551211437829582630277025425902340609281788104133217013445664574492938580767270523915903213859381263244127503373144095291277074898587201290691363470117527123792324565994294015026264797997536279312475955082207764647506373965341822749878571609851447681892436272857957764098395110258363485852048181395118743207734150950810479601174985154498317257678194744375662563333628908737402093707151368881875823948052593288137787339932551727926759816249392069762710038595542961181797489987092384524494035538565839070922998651478718936234104676164856351454316143946069689672046684106522172515932479013867212420362213333483323256490257820288268556702843694302644449637321356004714763854743998101587252278203963069335871524457360748406078632287221362255378839234535134748763007839800661917240862672701377583094490450626167203300995098778769600534899004081478253179858681274140313863433498858198405981748074678413090311040817022783430050919712579741856098576405979603623884630693080727632440876748874454449915669986447808868776740183066399663467114994628740016823284648570314021478541312560234658113084092196279229719302745365286477522655939532283367998943685715073584751993609156818960430278027344525728867736524666170343761422476480719118669244881234762165265029778374228803871451132138429886767283818463083522797883576863763121778667818395744375011990170126406191605308080533300666046982669305054258247324506845029769901440681220319778163747396422721155773971422758145612112397273327696968371378123835135288620036601456853889548824085321396601007495613865820915776561135303190908153536083049727376880064159644642418068928750867499034186592687634557991428686336570677329230851313730257124620036497346674580223907738295867455669696431332432503526625762136169503678404755598891964076877448786290041103524530227262177559330436403705388785248333200496076067241661409899226096906749047428372740290310401680895242397185694249267022119406612645986299892548762518308315592773849818377413818937442420886603995903406463770447188164172776431457658128261473528738545088369597488407705342899787849999447068463381282602799199588484118017647225439519458118799970063060762651952637700881532794539267750683853332528872518940108723089274271456170611998627643424976682036873003695392599824047527421421540944782507256806221820592424861023547113273310853660054126206251380546869599385979685128883566079482462292669615594777996006449234327026305777791007252323981617285656229536458337735480280234419816082765139615451032674290151182610912397512734136773047237515289229758922995520244246142880681410775462932046061880491550873972734750043216739836722898034618374690874240819336118830070949509751268900244267209589674275535439362661930769165475635498851314881120807209789513576910310070911454289809477174593839352833720795728559746159834409834720609709125263533308271501860303093631978888576019028643123098829465579726554832547112874737940083309393643674265523162288754635051845722772482942959334181049512210831787886222143996631800351495273698085861609472305219352855316501972350920892886500125899090299396518625429443859133437847757276750643648615057605698547013889418302342240854941467220341121002170150558873961954878562730918064146035368178586875809866361460599755451854637200045484643432180254275241275307821026767412433915886770962413647246285721486733122745845824218024978927587682062836633002389153621854542943533567065776905774250494911989401088021560547008493037531505073361043382629225040936554009759568740216255912384784408825542884488440497557949883018394082027681982825638926962507897411369128563991068031867933454659033382132487438379570821313426013803318409478564118502132756149802150208495559552596914746457110867287180959056451319307625113310747206491234129003322154123591648501016930177127301739707661591221683093131497030586220755294980972310762194743706305958907945734458058571910570161329143300602082570220146524678873089566011561066690757001294962036317864812395936611789401901527543091894025791641547655514124453045449131742185551442992443677166724188092052070196528091635498760816659316259198776982898904135099998679434073377469274783503795009741329155060301233560236425317718272526334924810371278295462550060908174269934698196147862855940197153380173757622816688801916615422034962462420169084692041429293411674301774985768728338073801059830728495979055812590031123803857427019472513773339197715149203463622341771222946283437529369055675368615602855386317333985502062222672994239610323148215383230094948158423494670372597534075201050250628487187008349154967075083315807107821691006600166981970477634298862611711868058273767372346840212779247917385882914777162750281549836688914639944340493439719958831106604842292448097617075996592122947444785419273352367994866292787004156472816579209337258993762764363857577105964484879171291471304877394267315515407826627811928847741644576292888764845828188271924794725460525537550824360986125017456600215820437886676910374004738248663279696606866072048558118214735184676093558032826216691351087988810668342683732407296044060451999814787172680144785506732127128812034353597339624322211838210927664590432712497205169758206059975980593483814209966761940485858418272219153024847678609682714281883911967341746974666548167336601614355645194274562407319216476564049500557164489641298503925001563227256303970649318651820125321657448609359337439751998610458557563089715145301701244847719634950368477480845163116457743623384999666120754353278597821592627401545567683336389206601532503642292810235552543480566233605056422406843179310024049292743883139999510011110006191048750477001207131086266527636951736961587811091570645979330180398605782118303338004159195817070668730800496884396194219593845696453817885682573249511079904412913934297251516644500543916731784491507703550375949889111308787808265027574506459238794489652755577013294583333691134876406954553135655164399829954504978801387768371352752821834896316999608226631535501510614330500763536543305695377168524691048718452435962168021092758055480190914745758275841897553226859658698817502997932219481006956876060202038749563490589778917848256465191640472114120087852639656472088409852906310701494575463893154215963710463199332808816495009674143707600862879788405868029782221867268295482882154024532058780764738382114290838991179876468555501230285754459677158561236717626679978981597608874624184734990089329362139137595652874210733585092946774076442805672025688529271643592091728764508956320797943296387590037269394774014438198944666000508229249980694692165197067436198069401004303485536057670269383764395366775124485870562473603565395688611444916487724721462784850572804760977025784442694170565338887030818746409851820424030615661125686213737434889765851581327845730819050139003053560452861031367751965939612292200907457265481437956992411158742948660250544458171212150168250088455862863370592427521294210493162688245418859385637013802862731345575255692728725354266054755623151512008716682740229271130836182167860423070903465879528408882843179386338605601035393983629864227582484741801982557700373926049561212108323338338265919191104812224878746089084911462577196001901925828310795822099665694870077224126549790771981231469291575953137750697524645452998099002193376406847745154100948429991127891400141097573092135143067885771646183591248111954743953628958347664319840370485754591449896494370726925502418948609411050349865499851339112174536601619180768213420501825813003207025310515278939595974213075535693643585534015091722495176915851533664240414067452682876849202199675840683741073479021775129219217595901775778935468942300822564383696530126865210821090928091146300991636497014840595672909776420855845587164797480104025973348524752538994975831855586322590133185186335460375948209128504236235760600146834694023864820952415037881632447480829465931288872414516605931852635502049980390353263070154277702946565243054909344952626239218745941631522013442218512555292568619155415251424800002110588830227049046012825317185641219882348590053333405278188217366749029044687961261960419460334951840449605669762850811220439167736318019486039118905525744496818424357329166451246915566290694462706555381419721385258154673406332701371145373051332598953783496717304860787501195912023950687009408904094270791319690284963710206917287052341096202800553356142486894863587238377272279871475688511462735982236327280834221780884275720510467969917602512822452448120100969616848745501284481262557924066538892907732142992744913656461459455180273578465412470076329393439443797221873083383677232474959514572962347796323568478501100980927775982641441969033053578448723920427851752922062002240498730257732574444414673987387051861696703818201218791850664298063481436624775427940706639065836495304426855729872704698285968821320772286816071368340696897444868096773452578781638847832125130961955584791605681336842854134944791397095722206414635867563545867579287920095992653868658756275867469625537212884780060487345217312540417790157466832271502422678626895917134254712970234212018506213308960296596479872701499378272321832862909623725971835003311132949841909243049057311981105337087983793803829127052025875439562990438093127184286863451817265255662735205416130649414408759413567652083076946130650842330087965479024898611003508598784220421024418267064580691521414430856286052975009351171199041608701730232026496146240277398288457622332128440576268377871600933743596472732478957035787822484237642820579570385413309449271876217481047022145350482475316488520416822783661930573921102935877461022944913610604296801557253551912865555656893532446850874275611525476206499942012314167741472241788655633888445112382824625741395874819841347402451725655594158014262863807772514189291154970881066782513550561672160244780441529186628774810319021940707294235566667234569926485717214671028201296592944723107835045695683173020831769571438769471601574636156713035657933175591424422405318921465457178731372057025443252751613431601091506322231059933275527272097869896345939406151280989727875000133923833653263162451387000756780656447121797872415096132515904575536288225625043257517283235595335938519668950934323732005998258451230523736741573483899160574897524678631734539345780602947821156455839578552930426248189050826610575996015434094956905371218441607191902202865217644652875944564090128893561295835215701569274395359381320857726000497803325180120933928722096361239254891662611744635563112204084133515087281380332944195943819137972707225135175121250874140854101460655027210760529605471617775118861712232250783782681663539039997581145555361403725822986994482639421976494565385724949510907770596381258728017669522901120566457396855837019304075584980325929460828109911904256956716506858648228212190069302164636086452277907861023249124741264422599171335785665853358706468089300161434476327440561107368669924741394207244316310152184319093839439188932667201489049577403478950736655908081458468866062393613733873233966100989958134168014701057154949757297067561273724766888503227888672186335861831205005469036631512261463321204792940179722786954660560956797349694239324399398842223831672682650677954083006790367376555648924197505511772330279735679550920273175651059425268424127784375278792263093560273168750833125287827533726389796862608335012127893017276282863988060240201354845554829695951324428373465699499049035935601916802110712820703425881785876911520619339355844071192797167084812980346078646883673265088059268638563979600090801690239717224743780095732001324876000493740959456809177425897546381105317958698738111270501166671579232239715597282154976909647158977213776640970120976104635762635963032960398984887995872068714649535306465235513606211204403075134094604596183660312444548840274796780140745374967704342635968797557514504843753037604487583075046418052875826026449785689615050167505527424800080631481676573595859748780926799858424728462305210743767813425401592845823757838103387152349028358248513767718111393621048641917892172923610559296941531841617925548044279063722022040905262724613590035161251891846383105862727133043795946922642158318011841116752204822396952025626983975242466876941392866395267479318796017578611980344373333074202731311607461602792949424424090771375495384864476396430550573642895876594511560089982058598154745669026666336729843844217051921651914480538952309313224778118931522572940785863663447073663977400802610141355174893457946162220660412321448279588093476317935143799319635378207597137462553161558032701165886477923769540046630734175429007191483399620372373748988265220232319061217864387190477610554377511368470530575703009161613527914736930670596493576044717010621667431061332162240035780066698095609230348075791963949871024901689746470708431843374149768420218376916298318858808664027204494277534420193776982177624315405119970323321866796030439104218101709919997792994809453710508230841211963647454163235597295290968545692319902948969636225821550811021406704854129681281004759260570718998726898131309179874388402942720229499385104140580999809135983420705690859749694484304186831736716926376656508187929892987733927736360539876295177051893665432743722371797010586838340691853462396189954254488905341606202074123166364602624506281461857157377181449705998304401235404835245889436225790712485109050748939620373281887499028560313246138865462735762552139268769366491157753402735669639855444250093705125256647209705024285452484685908035604116808868862102224133272157811806776554594362708313324559925750431480606982445684802438921637679025118092770458458545345302582815868947593997942427107633911049963396149058930085611243242761361601705229621776192936060895264386275475391680455385319454964427388479437950262078065982603846582658706989099620895993240845170431037625795093554363549675403507193107754611314332042299611320074952922637927161032017128956717307776730196378114603420761463745007494952237180787654039731426129964058874689892672403626401222601146674997082324039003520374411793724859462528432681146680033444453203328095481855210867175494544461853385498857937298604277792279641366626671612810261454093950982145377796233098239415676764503910855410295999241844384175165216605717563038164627737155786903729676034302637336560869856275843307898203674833670915244137034539883948941114962737454730632716235643808354768946263676580290570675293922358250046944675450482969529113483823728173427976567653674672235809583006276149516359210031013777027909369099164186117584746824387160786088096261719100484884542252079939204087303436528315770761491770282585408829261768145474572190520320316281019624230314717442340682070552351811104025569705107842583660004559720644208194512063880218983951598576757281182632899724554228368753418687317297828642962974669343573808390382678770425203168244592213941452146352737151361694650054709903317902706701292323969390931631954154242435144472250331287872300032518559371495494770375530174250622035144325340907472795802956595940815830336307525015190321301400809170998124857586002342759920558519216905614533411595997534849420021385388395477107516867439683919657520966724959348586545772002317355007263321426806125628726417413181275865407364074345174007333378839059718249752048575682588391716994810732295589579041656672785793539699729062667569951521648502936032866435323282032419187989324989110912075114227303585284834878272102910061811639174502451753970945499873390404881879882974651541405874948497035124863284487365233910660883069846409117386011265367534242875733395551802574306592725519848706889893151799176067166295754865124461761171759770467556884616640115594002838667758573958199513271289665758726600817054901682794518624256840345349352290020194699592709136355514518521200234575627784290264779121400224301103472065606984720223574509188106550400139621212196355266091904090861780383734204620061158426670467107967993243378095743329550367703029921147003332788901984542212029832847023871677127918252375260466129045199130280620501591200022400469493094230303125256279299533585564057067544089859772575374651478001794890948450263843300594968738102976396618971824115498662611464977144290082167819397907152324299710886776144004315103838532885907719337251055004920639508698779025927865302234397210122264779778580254164502997670793085268798639689335860917323767990298939472106761483910264561926703574217836254970045175819037249284760149222549610144372644628984487213772435891764118139363750719406123390818951615412858195154166056260602723156994378084777175933874558787905736131580100566355308821334325213009074726946552922148840242739229090503189358807005061624328114099153857585343218187144192442133986325380241842409999491711609622305700969025829504552314171272266665154716971618777291234731903924308510367686533732331158259395035038416283015368484998022475600486961475535600924180227994155544631113112655417017784943782562492603411919612130733556310834640034870361520404967949062920240197039086243479537350476347664890767438262018320438272448865214377174207864477180105204787173950521903932517256188551731405851202265764269745813952408700050094025231306235206738865807498708490185214294862093776298522068349260915801057686586173793798006977724052706514774332196883516336268375579292257213644246140589539537576927836005430787515508437696056055976010575710611065720778391055255677642413209741192650231495125263870732714812104078851347285418094514425740028773662820832100894503246417758289102981172540252751955750803282227693982344293486725446418834829388675960491658664626498746803054657386898791177024297326638629325165830475393181906754131845446080147306132122098956147329833197660572649474598102864768364021337542824552563703728660029520768336450502529407176873746160116249836462617706981373671184177684733379740753126043091141577686700494340701478127175954266972773568017363273676986866261897229980186362189260714230943438824498550299914273049777514790790366725775445836533155569440614444450992691647532851745015275940975224232679083797253326129007147154319172026401856538021708854469835218558786675227730048603127028192221462644420182029889368403393323327076576476659838583961886073426201251665443651910163209945163131310706575461485399380016008876765168385345527689570902307744391202232172826213033276085976387183493125916405933247769992496260812968757095785945422141618112306306674776808434182906338157042684751804686636007657820692564733489566399286411060789880159805638424951397944057010249547366481724680243425427992746229514589823568555782854200727850031206783580445884258000768425191422214988386911901115605782670693041918311498069358189253737871020057043231239315992315966080478873355157703062090896672138909152554613119466513414528932336178489415757655707420389702481686543397889684408905125264602033608279075848937646860292782747509581228973450558787779615491393452233315545152443589008193934939636140351339672942019437375694731227919780375079713509123642255072877220474340711739685537551784251923227420009240445791778829169014460958902345061196060844534187958986982759457809176167700406815533976638876115575674388423519856001664876809165532276190161085096867607118013652945212064342141861301155599117279371059624082897403157686366888966674596081356198201249960433766604391504222600430407750343220816900819294350375641366224894934413983337307029791485877400238726750200981571442538538966802622472539062068842972830482269991429994298902380863023698222202035316103265474253435201797647694080847900567372306855583538586344754637453542585908656049453806493280583402592211747384377301999381677401754510199834985605659054337601352161750786143014939618431293588461147786376935842390094152700666650411831808160873959763091139980895462007491055619205437875201447527516918004294120604334272991141790599958568038471847348250577806953554335404759420420453885356922800038595211637505838757543976358094026659579213790306595222269774118881677764043935099505254462612111283499602598747386297222095740282592673729194180693362834234355290705879980201507204214418366483143109417725544800026176070694248298815012973320262157718772970332109502495460242387861743565193854785574317491900451257935983141389828508645428336622257366222309184706081357604054198068649753372593305788820746536915929520463408373251820464629128627258966741237913418803633655527635164918966493196981824135455831081281988881415942929119841493898528079595303077924396284386067413073579462698000490824700209743434248958139636862353219425641947701242143123898753040901136337627060999576600175867144599600458247374071440250628883175897106073658094879454932477422561434688319673183759453618871004695884884624770515238540449224719692523141905336981561486573393656300757503890279556607829360600022142692445035725926838930435206892027076554927244099309199478569137199758204965324403920388011216629453428416416868909310447573454781356666943269185007831685403176913383832733155687500156810547048018628989769384709955857282869409362125362457782714849595932659705422856407674296676925473934696504661956935333600234297950911762656199598648712122056956344261631343834081217086760344222970222126082776455141274767466188999459093042243231539765271027381031494375452366833884348435204688052942484543453476283754900361597550101067006129820346569356076107420953157871244151300201342408088882626305454255603843405092607957653912313528370761386947157361060464807354382864641106962423112558557678193754025910936047202276182775365225146054812944905415089145299153561873917149969882629881608321626801793170689646115726212384928751721803146536330450793886926919836593147171388790261921315794241679116790272717085433711376260627515431906239835626836146360917936955006509451467676863771733744646911266389939027027207678751884541967566230983811262065066806552694719629218081889900691955705242772394458224054998900089887560523382856111940725749462708329670673164455210704103040547341802812999378798535613519009282524860714148100957069403456150200576545570293933152518559399785746676845372181239937219123182004348405492386225741534838062654099515210779929721018640879687022353902336037967525644432108692759138763071599349280282423720292751346312844719856979471869307452477710601719446951682078194843562922569784853362825822682099990194454493121325673131866956695633843963883988884262095416679944047207445548029393335295973575940112667538872673236722694061768479517219899423607052689204703015556390633108238113342662829933324535599502963475150950852510537471479532231835888040960742192231671564125499724847082858590969362467749479819426959528847477143550675656572736489780763534259315416850183905933538753129901161985408554356535281284093133876213304180269189961904540936338343229467963956607705173162336671554040795621501772453336026642006186787046675291090404163562264555416400519416235505491269601401425226325236161353710847711909111032837216699403741479225402562179738285548787891542520911698218006065890906367555879578692807307466100326872298085855057328347946977510373773131837252882720708882201244486558250147169304453401765085821754609808334527065015765169571705412166334292143596024899149604538183094192311119190180330153156279892133719147705181598878363227316095680234578482582565452839270040147997164403476292245441736665998205876799173317168464838396369947176258525557994127121006511799984797359557931105874650257658822760152149939576723952062967751960153845780901945434692147923078227605785732783310634574772465527272180567165907041982629496701233165537473591541357195580393125283122179702925298412581554388127794406847315025522485445751781168619714305010574217093851390877469237702126928978226587382568636479904524433657091957048372790505151848381256308177515201681835724291669564307472275654876102381622304618154724623763522815499721614304269701885337671990238428773945062437937180761405713092749483897002653024010752016952482149678616867479767756361739176733834182153969334758091930584232442409230942127336300085540153999470861796410860827867349490794724329545047499065724294214278188132839691376592054702557308471423997302887176731977334003386264647412513413195013261420962200701297164979043619874309161638718667319680191410849113211564829741410031305196233972439302030755445735745905349590340017422476407692279357907037691855601077263638373390206961881343636222143637592651355304354738292638701177240565156104358305802423291100707375518267325165346255146822523361947008997370278217913489554859714249274626824264086896715487688660370776797115906738543578489193727828439764152525312177801280807640367293287950110906220576121371379402539783019730420589277698121857497925752028796326962189812035037960467076293245855359640958335441584257430126294543889328374743609438323601106599122662999963015309203057688640256524759031393749563068961616215762667553599978655421924262483945643826375870033405656792492895443894534704372353333413878642879991134480296715263709073471106112878962837320942549915890016720038100933407747577953672599365046991793540002663584510145306623310352392671564411078770283901703040718783749944410897178249064695486846042304893258583833797607984937294817140264568743681183859151017969240325188024798690996654460359123421001462274814099769898564747533001246836518910525536450798016285173278381549398691366851573083133060541778817996828691353396603597418928020488121137081180046285097913318697619379132765002219084315020916510789324102704158889196397534080309764269306927201083435075138137451604233358871831947925293960930115934150578138039157557796056055040706776478830068011613063446266867972043665383891344191793783635240397294227101145247834366944252414189816444907997775999966601674830884208196612277225471797431293456812824645175594200096893698640253203581489657951069435463881855615551842406887307555998871571874363312275540509118003918379108050180265708913697033891402936952988963851684305448829841643859277763255565033686934742319259065209436748622590777622329474626515696005840887256122919312499322750792444259352267665317542858862985069375257655934307508016873700798228327666349379530681905949160019314507724805389797301307022542964196420529653708132543896791913369066919236492560358615886869924925714919575633927969551270184343448163416877956168575434294206064416148842942133801139093391344617701424635886675551701871568625000205764048690051732175520733591311581128182190027448893416407677390400561131605405044164257626238508094930534086223002475069355974254322782493776051082150125639362055107461850216160801866704082929981221376720410635343983866523105147522603227738490163978445378802776787983802717285787578886968191670025357116211659301698132270204909542481766767422068866512344731382627170602025938530899938877574341054526161051947086204909722910952646120030962146719913885312415579472232373879147023787297945827169503866718190982999787084576844071646787053202326043915184029759746806196058342818487913549249521570559918823803784757803651739208741160352438433993976355907362984368206688188956509141532244889257829045475602642845006479011361264533123337075048195938340059955326538251349634818514048182992701586559282472945699421508804203888636808040878409339229808480344192337724634304073934599433818077439286245468517375712304117037903878940160030064872609812631831444896291936295123034454119507503072232825631040290798308655790542187429458923176353713166364259490052047578411528556357741875097836152739842297474218128821257768712977603216329739352769820906710110325776373344594849408601445499631610636811175536877231720278815650766962283573661410853617213286725444350788068775398713987599739689603051558118946020229785218502174363542710460870048892696966380105886905848232013196674824519863689173595271326266620969701509125006958193546067713100219584232829355246858896528319029172906960507900526709184198027581913486401092782444965650599710267985960699316566588195418082135048019806849199558975066460047806218706089197004117463878071051114308559891721904013842609152253470986840494116018988830681852199855405036288260363828746532079428231831858512604641948339843311504117880850864921198401242518475371240202074613090669129468127307564329509383511994641431108469240593100399718074277942884709559656100013804418780463665803388727276009736542585370768167430668854944279346694816784669827652319913077747632835290727121970390434887140696599079989879604686393995420029181025614068379455861461968140507799956940384357526493626562571400877828937923499277376160121986154893266268614798544178855811590529913672225213291904692475610226462214760876303982875324502879579600412130647004494648357832359560423652987479871642412615555745914287443322590419203905346160668344367472688617296999150347566877071393226991893963945424875318841839856240363359246797843580811411548422486373747315537651744346693122543909330460885375440178349881653791755467577196935649065073042915967944023947115776196900630135845305991160494681391552876115776464206351615441674428893751464131590764244916039975325127957012138770651393200104699843292023643894558914268143995392838556037341195252051023892157135376867430751618261448667695347774799731272061578490762860178834162073701458222818314532849202888607417440556298272169026446857828491465638773254736028138305418123466115628995891012228319995136824114134796689803227316087773341008405799388425343081551562453012946670294839584766717153815270315895448594190856570126828279982562652668501897582413551202684729791309662841872630499510453455591413951643614785279370174976768487488870566657392972564065044839183274467817508235497049979151797193388463777257080215704238993623830929056733053958063563145321531371245501720621409380680165896251282234458703579161858635162235552399673161925359127581508098936147857702537862182524242627993466677668146699862697036069891304416252746191075870415596833954327039220631603959585007379711573993121173724188226458895503130600480214599778251018781593100754276038457580893698709587338228582609094399260783440566566206521552958884953627794731098646314957406744923297209916687931245143107368254418550133739189252903518052639567173986807624069542821283064373342229877931369611578497715151417041734063922276601565017822140034681718710228036840733906900299975506170960153264996440400577605233351498306564529841584014835322549107688052621695618131745782752714156777089396887927136781927740475945123131199539855324444927452237985039821256138785240897434714152301938500786924805207003404398617206472401009297079413898536094352028413302696991901464209669556610412679858031914773721438133710461485479765776694328407357303758033324822544404119940265761382346485245107140265780905858758053720805355407231273414542600117162925645739045690366082913488176338603659869131495159826787819049241869536685473510952199937655140035108799313775026015523569837360537853022334759784745303528835923352151622199616891827861391400730788634770416254559626238019522885431243972334364297399982477250160820992563672275161856093190280972529897641843043579476467900752013711078392963303364839308870942264687497585718023069817725490666196832133468243000005564122932197014084696675593710862464175582527404062814347914026354264076949755906617493898386090878128213227064102169934085592532783284392411661101674211412783351797735566388075032580535782472672540588760896346506822805648616242168525299934900374462393971805657702911211093325468378753868048242971852639541762819713560782221550922146367630584888770439996898787897195687432088033767355406355110126843329099368375070918064913403297748426569688263805620206319082992587012210062866901356097752191128855103064489465425848032559004279132213212124616467029464377576402804993734888497048168766731678924431495625704252475478857207482529210677473593581209882636978556552264238497370342168157172759129628158017986471969509905279175570412390158142009237375080060058961323917583532708359428648751288042185539765530426335075492718222304719023433300009349590190201156865227325613922371451485455114915104992175870694118326710104522512547197111604828182401933967620384005150066693650771215340901421862492546230666871904783981569374110325258623184348417100578887971289272992130896252545024574325831691896251136969210832441737621029722884358957346872904191973722954012940021122020345335923942180080397270250697073014672807768821199386255606334564755420026730804687554278731777435792449784643195175227954195921052908380658276510892642932004802312048355920818642066965407652380384673281337220048066507658504576924541876045998286440973515001870498605893027802741935094189523728337311984830505332953548320239801863966337258681827304273133063441562518697598726436507705121200753120514452204934389333988672320020615733170529089574140526142361493289824426266054271300359648364908121152356670503355336153454841071543841214301122564952353850937391808857197866826506648674373741986865527648473270163763749431174093089185386366731406940032246218074597708294055188854196740721655748565936958095422999186163666250928098417764740043960344694470013407882857682707765312530315831880088304923156808712751714201340261582191368882238746866549001062221172614529521098343882412169422712242775703845769866128434268675351508950949998211450443404538681391694881515263393428875553879674114935355045912047422756003482973451322398755855135445099470857401338182571268302918242635164556389347128444637379449782316084889981026766331373945179099658010387330448411019481791979375354222152425329824938008823131043067885367214027355802951246209440982156901047196666835524369363085450496622371476445690473251439072033357023849438076773156071219739350656411155020497946523876824237769237471630709792735680375085520559536912282258022075507145044554345856030708101628878415281212176343741089846952960000030796482243384824793605253823579194785495527484099593382316876134243787346424157835916589565538737583090831202047869072548268734139955803046001979496979929611605055390300306170188977244503927795756022649184368616775960892636682685243003933567483395597092333104872247176043965333338322522954764018376533738829662298701160233748028373529404499454943058839240207420220302899133043974493302071317749447286805769027268936779876893852928200028908983723244930247968408764490497895059166035155887925546692326897547464868561944241548039078751011342464810727589690512205202809492158259251746556391883497430164594066640214322750727626249617116132695567775662062070231765351835048971103978419213704489726537249383309052771610361519710323924495856282795395569762393038838143216664712315941925794763534548957532132942402460703667066809148236911892313633823089332932899243640936110894866787001680478348799749613294911766802539042355743269521996939245329664064730562169173619997533983831335683721530677792756995586552368125400916172171502659582575682700135801284671803587565532028132512172765194883629333904510561765986331701381431029655947158435803787156032427119201633665710186043072160813491208792818460164196203959246688725256661560243270926437117324194488753854531478917147020789063418946630096162862208720145845472329502609280087360109086348909302450643417186455902409643932220319109677120402281152187511934101259353388480255032374795744665696745715661059746300119724849748344515065884184950014344247088156649425721056322876980127041125299571510008722324560708124597215094446455473329134556502438406325204917621408226387448849633278458294141284268129502319882683513953186355969155250238850383834521341602897504017825007839063856923874565731004630960778072752585555286322018983745777249414990293482450595943951491023313824140621797850706035948898196146199540871651253921817435133962185801459391287250815605846738189102743860358073812597082706355453553129039924586918646484170618136190036111295625951591414275053047098048255126408903418691180714594686503413155109757416347727432899634669786658143886637441548231515228525890483802639132154401329754561733889199002985954583387681517411657961147547814922194183941243741095894255648724903153872432442312641253715464484533658993834716875670517414185517036804103621658247665821896238153904531636521497505970988015233756845250126792753419720508296332379871648523714172886377550716392072074881140645737857820956932842841474720893239707647371001519647314807798787082653425846482126599780614723446713618178451672430960385132384900908285508631854577743162584658156101488011743913129677663517637639201299475252309254283316865792381646147501522180062105586227459343870897524015616283978901020504035233582221820994763380714178208840868267050439770773798185458909642441048008766864350440085484844616217931219849853226237944873889593296888963376210349116736019770318472514680019398468052922090726785892790290022513859022532166548542255344420132863106014694497125904227797541932326253202201882538781160986872715161390725890473979633474078644878927353013915336271155306477369910488157016275509267886092348582387831279250738168310588317105826871034880909663317307082641440285163565733097181587104100415121912037523640084393252040942381482731278724765583937498368417642324620350757535084099211975516032228338699274879314944876401647899696752785939032078765601993372298544391608905585675336364847462714859962869987582737253604065485272615870215274327396693093217197132644548323069939872653271066541752975392273574877818810477745479693942638398551132946216867535767864567511508904157531402762279026051895802787455339339351268763709558874326499803862034005983326266574636815337872281997022785149298862890011984493625853858368167785756388208698976404225626504686656366612984045001954710475268610342923913021485008994406618665840679491817004669640754359076830090613300472394372165257986523576783239426876643261472134722191640928415291422535856584415833048523298003043396249878169514190248630722283076441978328734500067490054669327088206066863308156573909792076186556314690062848272334122822307233500252037900755969786202513677913213862026477307614539200034911181587637954984468918096671987749127175427659903932196322549066352487854104453587008118379593146850438104271099375184306926739287204728956999974204749263795710144310806027081429933660680796705388081110213504697754641191817584623406265275689643390295316391513543073501398499746874905499227497156443703309619026986111135892105115811093399200268232375521297780490698441940156451673867878664045337687584388381816669966662042176820726700495616242714899233271050676189433532225194305381505440841376898304127394849506188482092979822507203230864431705278765319266186939113328024364240198524280759483843479863699481376659751036421247901694487840862550898039964736967233296173363218757835183109420014038836020296633274860572436046716466107790895066793848824771215982814974002946825504193343025547607737486759517155966000586599568919070333038251981681013492363014026566186830249882363807402833400514550938030543910306201979662182430329995425553167586324090767867677325129455737294509562210922888983570796227674290465202534771596338090056637944827725252902759654790341911870131018027242908577390273921840924884238466197296600291571775808055413312745911536285276378097057773910654574861804832617322392123686849075613844593066498377210643350665351185301952839348734129700961133207099963178725714188284144483270740104637507972805341804588009304292927206481643516578108222561078727677477160036696657536252550708125860148135638577891626183784020559363065513755050436125620228997909609508609018130993375330260282432848501543565695914657456141687840325356545290251041549941018048926483303807576286547894034163547136381808453524255977554952810698150019470943339710990102716245368422780816636796308415067926118689037117319058157071011074897886388155137242235813858943614653972293716694379502907988883470027633603245189213949862819654506026330374207042391150508085628447357094856412448577770073589290896787931085649583826752638930229258321652451719810335040481189574250837762286325928593999343791636777305539671566581475850707257799361134664834076071093600568143063528242920591616173416037954805563635950024601288849100225015114178224834506613542519872459756861571635741088366633865477951884250626600797948483070479143026818835157645740315471070069266635029009399963709795145931162230999944526624570825359007605380904363308258236122494511284002264000647875604444226805517304130837105940432359508850221516070164342454813589141525382965437551973801626386563818156184018648894332861851225698774176799207753596170960308109791473854970008413956655937181852456249121503571172125585542617318642147018121912150978767313920639917317731679151874386216905790909226418608810124839229786157815025806721480564745525796604171890145211666038534412871238679476033759667767306369666468235301325598615127391776947250199677418602995279215316123395941977542121679383231001613028288222347909273881965382051785388819426353600723317435727976307446939428761585924724080538065306581613278551732977306188606121585449787736984894443982398950525445547537668766452207713702293894742658568292815454624430077361696564406060064591649155019241237371029299212261796578042746632743585253246719907102507319645878773430115847269151830881801048380415591541308134073606894296284928216283572675013312057153232617224235979417463064786229365710542067068915472421298961761022904288536184379061120948933224598740162544133413237754619906597417658208355210896563573387471052738966930720991599748194337773678242821804227537784320128089711907388874976659496927651154524534571203556321789183718025706214539500726493658661622693676665940844058063623185352329399770727283023621132719018543014050393463649082414560717077312115798376246627034434975833513162180219620817502409974612164671116613418650552846151971307632328012431848910238015989120188010487459804586344904744448902288677074498058380901598570301791372460700862770833135913433397488707533425784764068380653041315646586103442116907949471952194402429555748667816483111392925506180137668744182637416129813618732483639942110265383966870576398559034602344438155422133084954437807856076775614027000167550090140262838087443492260136497131981616347597988396780186773888542909675967078910963417483686246476026686175743974038739697037314029523331321447175182034017675060591468852073943855157766522677080925506758601644341175381589533569613977194013100769520107190162228788818015895228481335814584228270812227106933415143051305104734784295642837484549649027083348534654890280648948702859959176758397351052914450687422801027793676147284421839879186816998131173206751120060611583480845674670584858766869388736709195548080934218921366037244191876279252430524402409062922089013280783631040948342764485979913205401232712288442223455351273712479083298829033625109854264092928138852490254747536355983837200848686671055032375358167410030207474618158761626062203449753198428594999137373493157645416693123988804047645027527181245653339469334406729839473452036800616421315191337950881660065636016030242052312811076730002748224300280383006278215868034883893302093918417004033653982565607902664417471906802654900029410205181907756114672699807936493620103175804542661608222863679615643209819657852022479795524265742825450131503452856922858240405271866438858380901948057551372959045299653074834454779065810076725014662316588433859767178137798449683153329390426945146479685040690384461375630521663533289413467925086607316872684546058001305720312644578197055378595040391533508678398103163733320172520171243010931441458961165129382953133981621952482206135220475666615018798556999690469611085876704463677545722471136270765710871183617543973599613640453181955171044296565316944505740923405328944173973807905572573542402845302389953748679301230932126533616497794489645057870318778929532726414098818761400691394449950289670912804790606693292754194981535350638790205364145852186223561440897553493877951400356131769617056906542912473352405281788480966463676184807518860262608689422551778958461299148475387117194617745581333485918728918186581959071410544025043871739744332512299252592100317681802221716670920468273392129709588496665998103078626635721789811974833615221956156455626395720323247614860742871752924877185262595199906621661051382312151792694528830725640220239712148901614462375639857584654295128983908195825109647543357106146553766664871172645776735731848137274029617338950878084992625746225369088146524345369907120757128839508791284328655719698862609996563196949635087801560294105904742192684213108209484494144299533014641746970197679216447332308679938785613259831600797068532254416080916752989761367047449595497941015826203633876306393548949608364364109088011861370128686392913136185236804652394759832823204242172208407789246059487028316239696456340447892442862830284540796942134412055689353547161410026620872801442435582830834157593627389246429075312169898286302742818678645425913159838251383539638480715926999548773705869803336393633411255565405435756317650592358709279564068665406022572203778485511201801718047474985677798249399150879193732038392774179794839698668382490148891751853504106174315891612192065673534098618576452798203278449649970796134477473941952699828550517956432244839571006240292249694838629554868848059655088173111665023974725537215465054978444537695559574058511986984533692754561283757242344300526067819589824945778393691945269124422322019480512863861423195377369816486235117245051364462646983696184150242612161341973858558800142632787883603567737662956292349469261379274692759262227593829768327614789634836370617490531213257722354549715218769267699204494129145429307770197471765070961582900866696625512563503598034762977241020143687290509546328038515855578775609576446766338084603949679431630915424524505018422017998101091935874752862073664845504299888804906676310448879844701233097064595063729032286639697443002441252598042895206644002388265192832908538704346617904424233566582066700055440938073579875802059641847247752700002467177585846942520182803252098155805693504882487185370431385192672194980194053882780543234421100087650681624872078136125466005799271473568482721609431994771972280216144423698704755793580798155704728438743884170479612779494649738875296487039807293923812603558478893234065812022204317541837363877966995968535269779958420322848341326091902233362678356154097224389311133196612619847445292312694451476527512048440230848057384446540788890411395504718204393827506397858805281460562717010266463702539677136867297495919505819291104490225227073898179095258992507076649987457368375314833305535372462122502738555975453648305374866382501591405431436020517029431368907516753342170483834414812699628049690742397182728065788637136449472101790734999787969935071351638064197968208497372431353032576237209977701724948324995427313166117740882481518720099417283307097497158300865359796274656046471052153474254266500546905072010579753795206657914910427568144491259444712920462581879055041846318130719503737189604151869065201054975065415497903892555975263677776338414521146449260182226472864473684469353280098981753077659951696025634779311044893894350471652758716349501969288135040847504136745612298406069396126852136277741155174840508925284542326825055981587179173502802918148348563466340730011464866430024643707612496301290576746232806748763787020080090017030514858058595696405727616985777546281132734801640230989353060904982560975858288976635374084161526210558736536136463019755314910933122814148545193305506036115491331230478653306757276149045452901579523697436648015760818433258136626025745530629582563146285321979423457608209977932783554222310310205361621542012246190222167060121871911986361023486018474580609394841977192058300037553106561266151124353999443955590082030347536483623334810579514067849900315653158344087743545112200923511770500820543736467380564988714287107168411231146797010149588274662238874592805054763387636971755248028271021308958637240667126793696226086041713436430556984975688319866242013978877204228836049796370632180682998427843711288874526093527870123718395775160528215370437904464364839304520067843012831840638401288201925772758615785001079392211525771518502363129633746269752182182884362167103789723940440404438174647069625948926870325198913011740541148986492708728084876454573591188583779012694415309400768796418267181261306031277982641179499515344312683362922815652450922005704553137293134888813005602692777100890273554170175321723717862405439625359299790037069098875324019849826439451931767773876389676936519351176062152316360172373706100085775165137057347959500397833956587982768950258870108237499380404187925181520642999048781627908642120142470999622754417326296355135492332030492265473648760836059807198569696518619231601542991687135684225344987642012444624194021188037308788225136265574629161208521393472133947169471179808257826293800428686889712816532432201897470651497199933198569461302837208263540752530640146516536544424365755071796442957547326288880229444068989980332937607069333763088794769116322854898714356706643068377224536078219607946970776827272151597576186572609443646956913446676518783927318927178251014882529165653506215287292296464229898365408990038126019413007802199348356604862972795381293258957946931263740471008299846258702495741342911004840124631871505514757107205508416123031246652707187024705217712491979329549991972530035329773586741261587474945822583875848155746497553320915422381857610087624536664636293942480751029849735771287294259665059474986746563951979305650251772863590826534402132074927216539785138655891651139356047916852986618469303437392207158031988339650404108683978070707424979092342991658456828317248214828857176586895732456292821276370774910321410332488687198526229554379382136308656913535870136708161101050873102334389623433720501866269000695380921127032018640353249839193049445505095016441423960048045825693887647627979032076055460129434116707947213102765290243448791724007128082970944039614449154714452594646982839308781512369078717429234635576778105869013774194356530688808729555072319869527286547268528597594049564945488756508187301266656110588561953365230720778437900518646188238536818393710965030491583624791334106460443637591926042907919986072057642246251851786674579222857178277255290853269201816392169582562480316241708497968792507157895804287147102093825520351267550925067688686298027072313862110998371147578242385193193922915222123566867449969092601829311569597758328061267548541114920057449971388520797782638577292540376817672776042797914480380980356160796924632895352540082585367169572167640092486130026821566343520648933273071303497073153634371153188927634096681061137335099231392798463893018573787612546521206497686288772129337721155179175501312548355662976418238800581932286383135766558898459012025259570374807614770018613694461685063648030231776051724515583528454019472891271409208191596633389802634313136865742679430497480043062776882745564572246164415840388893353195508488051645078689606998942977500334899231930529360703936704987806250828728080293378169327724704387619122490560883818928151047983228343966401195654608855573047525017419236285281656849555545308207346903392475666145836358142396916826788398147721533882299621682535961762865958881310350014335127908488506864083478207280966226990061392393221340217816209699604212930737307622706041583247739218895993514050318021385655722598520318809706047715346860521079566531583460232309984640379432736170040015643694420219591136852950785457619335220105811004180010636302776307705453909734565169119799247424973558990525296497850437309395711622443326575919736679040578581758080500868786087462673703993069536449134801155250792616881816858595695076917742130399423393120899321839438559673738295329976224794097056280748856460357831389933044738700268451623919155358240834797906076693423719542756624494779402649860954831868817849521042049503020902610627027990509594657775432723891693219228077220296897463028187582887626783087220728846099497950499910692151518094582891262485631988355957451059443076154838620717998423502229871621204582761297145529144740963302666110384822788046075721367477630763004157276898307691843017931723420804250678841333546811696770077128600532810177738446598606599313595495878436576956133864686722885258335883308801875880494473205838219765782489084034039170158992606270657557754898612446331193700923731037845051802721320730065965863662869982661127065157332644240142203284996336954281922085171678423698758483141469031667307593156622956803834220473195276486130573178109871697239786127372323920478438636131563889834720270088767942839510518272639081958807009284597859748366667151555138245021232769552670073812971848379144168882601636021875852252606542107379348685056795856965114102210686005488882532117656884479352708423409298009943185303089515056593622008591773217257761279157589700375470952249482329009888288211412856509895187903628343201109581480368301903239894474986465515364122341783131963883616557734333142648936122856883139593250260417643023159077687141851958763416166715128681699559171642155954664701145477593384246050262950005943515468808940243898286408215576784804935810381566312190615774863434058993649592550625399034962145703045424895718266317609877820327263558256783217510363720125103171593649558613322986255138155202788104547226508752410167014384520252754142756089714229366990621215762050000928246853293162165021373459260609197113946373144193028462151982004610220380721771117079430616978027224792618788801279198089027265446313174776876907249277175445092680684952228366531347587167959008857370328489237856872209579908481484800236516364993678290792814811607198177050290788110528830673650010997135684566507979364984690108338815298467160955527329675767539940369086042190887953804931150509648765510423963129635157365566972605815252676487792633327210554824389150545496771787699578721156741134087131923129916551942098294636315695970945063059589578000176095304902815248395304972993132863845466446644045041122756884355512815943917931818556618182543140965925115036995221546107581191168942697708556852561160541190348022920566867450262997575837916920129377473945339314964581090229468128395265996737695007304495815165298057629030826010949855858566761233992864363806815656995221025458775787870965430688897795198839834910141209289737855447166357402963132228106668800698746493217955932222978577212799499525156068595427869800056215746692590507114143825615643739423898412483734798292732333387498221099888780716269652269801786057615379677825399665969673790428236686232195788256430895698533350162888204452673962561363648691068479486309654409835997527521304887205079345229048222487397094620424708854245825508272140519674912967388071851073852469285497758219479101858342974728197031249474462385989147473928152699750244247338245698154270387219000714668569986726194951586090090726192862348746879394734403474836268469881890128409912165238948021704123573704402075405688060194543853119729029970687508980456853795695632022752647699345003360100284321581318289671300167191580139058603704318335358031030561220456240524500782590188663946762190695886612440948850167766212732757575693793672804183888890197695196474006933858594653651997247412559153545078123571458371128215309160014712418343031852558007758413609258101085923394926612190101855379245792027255907552646998690939846479648117749000865886666407293409460984507961938531204490666824030825165411067143472381124168598140512605943974734470883274062209870138788125344874457629527074108885851591471609812536643278624043895758056319252691753273516528467425326900769561911212243030807434663172166797126213972769383278879303096358644475419185857899247121730397451892809208388725700173702331720499179016902870114180754046030822253375486406297603454042983856984488454069194773698327792184202007227949837239823487846676329981110445629339305981165339358423820629554465859261135272472441588866039782466705524315498229610134240977877289912391690115626208887623652311240859805470819706690962287582609799514834972914230889828521878097007488702931665265804924027275894631393816667914606811862019063667142135685451731418805171816766017563866301751938991885323764843210058017510136827648530269858535260093169822963934884477722725106221089341663581021634983122898768478754057165957307651893915944845915415317275379814422289052718148927907557676800554905669550375947930844672347630104494092949355519182509852429109340185499205830319348009642738418473148481748211309948440782468021814469785516144588231131799964825973516763515232069251303437547502825253456044446020094707293435049466609989204280302278248825212328729241960380888198603746922187793388458792614343498177771497245465736015700162407230143833797475964950889327357626929422429221371110612938005182102752001319653949098368385128383935212632496684669697005628899218335972675499769570538771098436999362414099634057296034896715121801208374867040422273186377745946897528351765460030312249571936165974090076176723724057519054177551282530738764598071881932363397707875569679763500770465780010898521948371365082006127735416856478328207916328479999361262785070401771349774065703161249021180875402157078695257118596723205361331229927840050575010820529592196080936477472787880149745040352016416998987586920240343799076009717910250753153766645819566998237513050474965705307651127414287084974563881040476980495133872461739468142933244280698336717761309199549421827979971124171854861950451098512170408578415894092409840551306678695365217296223191979684880671136952885164452719569593752475900446067682293794086426233375927871161718218359350761491876353133937101896767042532725030015761128032662435675081613154759928036807915801099561727363276381472845603478402289451773101047020483007785209647677362112804693829652557713844740874602430239191849892356270059912467746041352503554491932208363528890866905438513714518918713453168317814297885446348872219312003294724021415395248271618298328090659956388763182239224312358795375615622405500529172774360860976884156410320041424653962894437352753086434719936637255381671285776190034570696821650749542461014118688657939270522523331083765750478964172245867677116488536602642903998870492094998800810898406895945588678809306373828268982549163671938350693973208342756915021532755778507234122802452851140249046152119150401977576012390235307915836573713280570883764399024139903761402054087159634184694853792291207540515534276746121232322791324171764031709722092603421518044425894486998139076436936652673189222871855020215608086494466447518698752181028991545977017268528355653559066151360214775162399661172102445000834446011845621599086416984077883697142106435720807854338388836519902255145123548644355294107896035967153046653148981079404907569925563595528151111699393817305591044182399558549695634298485271993609899778844113697731868527002817892931498174822193681816480819207920681405031829428363525605975939863850232274849301342465901901939328015064069151084106606341598350718490484409063706206117090977767834280283411586330565016131014385646571130409587613182323651305495806069345665174372175484575160067350387318152335853863691798196177188130927424470262609647895248642252283892445501589512506317454008140173096063664849385651124010629092349384279798610005929651183698196442433613775277724643516285071717851938561196277918131525669524143640707361724198164244155539653818828937626255870827454350252799897231074621085790895653234217307180853831868278732291140155289253650632811135544217848026719077341763089703041832276164111388748544317191342318524324117000212264343727668044959352652434674381451539123009037340267724943144843215040557159316619153938421351970345429927457879060158565476551732679067208167940955574251625340678191789074568822050838110317087729711673173502958751519587583223139013267445870439573692056673362298720421024346858082000549798819185188461033661122552658701015133856792245583797090669059535549528561468786777724154637774365548990521592089844942767705571015709356185890620737016494999013468643732814680231886047574087282280751384832622594022470995341501990420699482538215870408297246361544071088449550110237218929817788957041234913293041795964328844355064464212692257668598014182834124070372433811101628187848017809867413527524171519675265955142144722242290795722993770278268536211855681418946255875833833345119867160933292546624417377746481806149549313936100135505775903029911181423657605700919702139505163931237542215827366378048709297777560987876938139791060186120277914142203549780385947562276515595330358355536373277667318071223778563527297569033235351685147094105112662497901124980777093460478843704957205688541573931198656216480100748100877697638522804449344012533397564884951432300083939743054193458432613940853305125264811883062131340277943011835333771189891019601073779359379817136185995560182779750558468677792317286820701529962249270705580731471802344935603394659286868159778403074862028801148921386678448094706418478191269058301568338520875833724214902333572306511474186109826159280483489066035335206642412881541503644808982339409209929580645077261600300543284396309305814544736960136125978470092075738203889325068920456335932392208709645018771535971207498216961282831412818643186254874093417766153688660314906328004755421608639490654159045608200396141002661059669621505437788884618083015976257462051372925897826848917212686018239693276903048059734878555529937288707667798709167109932908879836730164769405881775569927366411942345954156417135131571063205092511562837410847012908851722891747184125121133246292019598975511446691424682411082891043553936765953714196477414973241243418807228487497732930426087449445769106046496174311932410896971440421956203288911149566018496103211154022763441170289964846451690289060967176228295380589101754138227527834677747414976531190907872413871834120239895045305328291518566683754248781240252278760324379642355797962606235908737729260178683000126382423975615271760743964142395253980813587663042831422369944795552825350173367412927512579045768427186467859937783500597800710292863915514887088786239473183337705616104645539567860801544959407654228099209905853140361968169432633836130440908239192522621596927677220897398105612356925068155502238556328129857528434692323626703084999810291094355238371170009688782596491259414655643721107565462093942730562644969691458617686192138321604505519403033925726529168512768890013690100917181671305750336636591376577155031701113813463416035365756572308952743960120286664777621642796446744307608964096448324147311308695425325710727619952346651811589286515835494595014160174437371229097882559450750595628989226018914845412020649244079510872248993398859500174785371117689592073794706258651674898201104945724779939996320024436134249340105299468727848146643482723566687235815464394589362369532966040896195044807362120608923219319639637458474182587574672611862509962653796388607194534606090961909050149157140639111370253924164142528962458278661238233492949544486177907266867552125546483307855838334136906974630863148762873077273175474871244882404765602234611119417099855862503114415554683475603421912252381433398528593738516155960982322763081311670349329314657260113139443030392533587293408756327489843999823936673517494986436443595666073701359328519512663662174275354225925086289769819531706645323591346593531716487565304048310649904741933066049146875147904439866779013808510473831203849928167680640592885337623666338040924101159982104912963437708405716202683528063838700396606355598126930077232492232430980719897905067329048772119339284570087004959644712163528956864780512161256858596438578310678372610816946981037014692236828382397473858132510643274810810983027048957585237364358750440508324523362600851384035059284998910488593043719247451863192345009624742841252785247295769730223835101832784038642354258553827387673411314659373271885547615936764799489340284011177669629175765448234619747869835634546733605265025683119997986585905189900709300007796853426639326400763865390344017465085570594168498697031961317480471898171942227881584106686965389150448804437571940754544809947329875149388730961825450908140259927221756814153614875462351054481956682590742394609333226164927922856503770469485531621482191995882727019272620004820245244826460622673448583153723611134403456809198065460306084507705772292210990045440696244676477917247393309847804636270574093641359662442255224944282625086512026895815533357335150670682007432149404610686711975431733540845981267705996903160528975311139681463685286634621366690864479805153258569443135129685347403314612085019632741555442381110841024598022893757333114323682193850457709135666109384223465494762800813696385954257864790848767244951202187698277713488244840682462576294450705908476163130456251564410952096248049330957322574314637567939234781260476558179498452982852257616763106040360404507944693709695179844143808511463030985187739775770177749416674112426286319767743677199282373801731223554510733646760352865921162087593847830884451824616533599509542371248202905140085003920634539341649979313566434327673803374326508822826696212377980766357882089044961386668595784544636885674775518147079010706219165437458591116296300864168610924677593163770832426091391631129915060876497832530881088389378712178078925502665311032449358678942481679439706502488049592587929569756333421710897521426941157863966996522852207968414741436488473998377278385420060274740014645706951258023713233236564937702361140059642638315328731303661544151070807652413471216378975885553874840896858728895943128953081871134870511217708778146398426018030301091510597192531444899958632446148411716579824816960311945251743887622054360124902288322619033275555499198337533328879960232673960614419665332065013351420562171301737633283472313463972771844160582199102353430900477388016226332267400335389967663240877172792702080611881764094468543800239372712298428899045214391456553688817498671809622601126085110177900688802571346258134041310851877138955088135739803844402581659729055828130802816293157091904076230015093571491384856689160421181510539048655732031800537917445030494892190833414599397125104903159288839483027837103540906338180335180071296426316924831654064262304156782799169001488742904631699600054346325016127291872829122414954070628877507844582484903808056346431966713873504202818443966323687993349013682583788384138544040047698099247195594603668857663865501573130728319156824386127161248877633612441083795298731569380084193105245302485079773973280129618546397132008941122810135967287342039012845052423045020613584809918927031881507569536047384975201177724030725418156806190187362352901839856215205590850267578513322342137112292200430126893333247718162913219290036029277708036505685526965557002268173419202587555197977887036769641370477916526403974231284415424582881130567018833859739778210935597834912791440249235897476625774513581113511184453134885528722483396238431249266246603609925542212768820150651026188480741779408423316291571561038004954063100810556156871655506199205113459657427291627074951660096000127794202831973889791535468817899548203347769884593594617245431865948593798634177176832512668130697899638709040632682621823101061436486914889808823237217430156938782022872843318686174963380074815689853901464681413075407090831727555201874325204199502070904563523417961606767098929721041954425389266487777207381472323748322945458720189775370771693169351353145062309727491904016857476215768428424486930228657690435176501417446835007035309855479788180666804588222472461816352391790045724623995552827442225207084119806295205904107623332857403439783612069237406030555433399551017149781360111485545955265670080020215037087844814965593676836025205572494635200060299217994808309994683232103646441107503522474305612505919280390590722760226259381102343162855197392450430743257644815643242466025741428797228927801643131897954227211795133141259635881480701684706293066126497015934554473048762507906688547285222799742331810830902998670539277169147184549981486945087277823809828661544872376369344772909832271461671219325807601702061083418970610705335330087595023681514124144267653010678522016976846634682671745740117503481488873371245833712594283350625006895852117822748134275236737331732882874951421675756857314672975131870277168500604948018013567904287930877195697613831535291085997442380130838375522570042131073294694171914567899514274362781668082027097252009062170291920979418193564579403156536669664799160344659526511809713458776251226195239568397230903496325372259319968210866639065367896780607467723291154748629608871345836157957954745905515703912227371080618117127069339920654374541263873282257626577962098971494141258997831894245973569823722299868805882014398616769036874711733663508621709338419373246802267885141000815315126677871680363427659430785638950922374366562586073512311382308256017902080107193182128585001082393828722465751361608969993248433860912843978820114817547715262584450632836193312460673976445591151375610388822351310434939035548403706460404937148934868061964373061289273203298652904533265868560837910615493199082625812326894647804793324373539538496632970220592086691148091828296386419479582115941799236719938563073829773466683526816590229778106781318258673171199230775972633584272536285814944076252933968300764512508218850101508483746064993455756693111745080158502752637822422960237527991830713883266158223827532726991501240545919021666768828429136746691231424755713856326620090797935898047137277939367698009190097561546062775067817359333168778165981825528265994468070124346926248049385064624742686406776631004895686709661126171136169781906929449143576384610921801904801701043642554190375292191096459364345463014919659706622557458025346013421479691700308245690873850280635732249251303096862256703541898606735491525420025971568577331304028436936844841782742201510506474832202195921379859255990869096792353883651508818708056753327159314914533951657460176215128083989717309641002544548120073471693915530626265389384391379523244198547622201617873311218379576722073646470042368931880574441139284787539845742735514286392020601652562664539481459647180026482119526003577415811983396252758117366335396770963024700499443792574687507720249803545573995367030886938641971301218782645667107190011899242017054360025985273934921335403807971559203447748844836376075718924816769646211628651426835487067389593012353339399984636208217397721151377996060245016694184965358035197804934149520984576682863342688476247952320803800436010888715306439394017529984889473770289701259228035998300629155668099265616741663960400829655261602942270662897314375367080373462530826266686732748590961558083563228375318717490970979059270050828561812996300464321522211039159191528380388730585370341029936931679115790616766665910456259294462480367160362952912374710090654007522104719140181292965169336035317903002602797053167165493182578398700711871303026407378714752498076672130355081750258501325430799495715675925788569807155839238188593077435201184840298739681958636601377995748812214629039710539353462864028302337168643689808592748604129723341652237260614731266596478704314027825904592992972142372152956433091552319119727956423113903489050757728276269941457716367109844727305131315579006016829022913818386523350603751805283909892032192007408919233297497680742097883716301517432397249065368446047778941106975250603734284312145456032993340739486032332938441929112756788995241931003129038524529592923825188158961687825642652294975484556071484889749538141849799213634820352681123992532385705570770021007251074948523481846439263337072135253034498134029930086917367814694831542250443035575424936200986588806670237623105767975258202774743654535237665230805225846082126534614976214885975680128321024572544539302564929070561898837307813640273008329348703308048835968596666789678221547193886718717539508488232489152697750597107497530176376224976663877550533687680121935683843182041183510224337588169876676786516453295364257212605734794957705401590448404023813604644449625126586679406271122203051726417510505415123640672566768819861410827134023911943073975600990902430071908137977512202283114954403106654355543816237859846585236594994719749569582149717864082421807500993279677096764766158749184163771911106588266153324938525661272951483915118411936700804226099630482908215106706151866611748965790673058427759213941786051764815592925231086062353756012761019867625859562457112069839223599238805904645727677937089699955511273677469430684597469563826121980675400260494604957978904049224913987519541026670714108348098884517734121741187423782771088310188843346920569058044922607177314145422168234067314355333472620883612870778946404698236100891221863889041869233676618445408896066352691109942965477770378381832085247122359214052606829586082953223914462085778802102110878721695381476336256075666758047171184552261436503370870094118533618271824284910413707629723218720907358984070019568421701653417546434382155912942134749119910119684502229423070607593063794727970286079455083756851995360090737476222587539349309368498476201691279717378750641864281382264957751554653588216488534170190067241978583151519566103819520503822571021846435428124054465922235524110385600844264250615776133322329850561278207782884655443978788902861938209421380376474698894544016590353855184775368154085147612488354529139032217084834299612072320428749703042434511545179181243223625672424256578036228580411793747560372769015548837269494318963865870727854276377274081993873680868996724079219841263105092375556481202601385174697057668026613035013120945744840439962734257523425470416622536413820149491913228847410085080466701691044059398990750770440191103963092533634434337329360198943814511434890922472722468566833884210391452029640323717674744074865713252808754631072168472219574924739155033206558643438838043214333830721026325088594779869554906769083074761148497790038492300728523986227174554735760954344190242465877078414767698577501640783962179219214847013751681744156740960684446731617838992047364222056701224769950455279331169687721101797307313308579974536916820270704157752065709259585564223928646173302804716570132310275073111047603669709639096140263700658428378174610790468893814065010448916645754979407365189539610393086526387473307211770184550391149218477206997217547799340562056898966449409167250593105056857035533208984858228367612915332107231001969320945146949193709840401671848308574763133625826938305518798926251516822625123695661689612837994260937563167557103164187254935979294669834831863920739506542457819475660976164362437941366785331887611869157967206828424771524978582459293454552159372977057034536294312069191259399060896912991535425421295364663319432618103201579654527086999868632078589314634638051261820646115580915575165540919154379319860129764970838718712969992782153026454630772291220542463969593409499869561168096531488210394416773202612125114009140381689680982149882870746920134046331879138009760062935931105894609863076033986579619478626795743219329042992928787765602078070636758785466421993122402083407682316960986954277056242915324786451321214634837303425632740864151772444304268677630038811733328652384455172042811270158368272747582975090361643991836032153622400767716427780075511297286843386875519499416875555626776294912760689788223252078111398540302626571415189200331319709256872625900614872662947619211012802043096060486277514605402531577444550725739704323121005282820282018568744354614383923628251795563279602041813038859955612403401938529635373184154956264621140491534952908531619869974324298558638377264537978765569138420838420087372931202676190884627569542590294984048456539738902861819411577227513896058117992863474759182164769886520797504453781044441918331439681990566163510642351773186399833574488737298221428714826192837264118773349341911690898901403418638458676959023735480920922967122473365442875888948412448405136948329079803971717123932035954062098467334363756269343744198088154062475111673554517788120905340337868866754535470952969604888888839967029559266476693306479046724297142967678594028221556206897874404944230282306047763541075138580445461209217331318086963072125954115941213474335528187549911763517599565161164103510352254460245256814294060463629250120165624030777952446700697836615367137007222230754054850829300202595429360262207519080745623360690559190072460245312960321959678783701545508326160540127229514193750199865652296893690505632000746012614855854419294952048482596504271036268288222685386052566227701961066095106357377917799350045079886275046999626514678324716657040723950626078298894150833354258345228276482741447024909901522725723119827700653417597020407306905277344199923136703067336320430062644407374370707766756927731689047507367907743478524863891218749724299427609814241823023183640533210231851799783698801162121023403834140396937383099022888126994602588090624275757573210379571632971624604279782350599815771744797745445632938570588419457140353198778762457508341585530433964277585309331137338115562933136322072606987941416657539793703591465095812950540806831584137718502657847661995646880723408292072885685924025246273444627625191968252390714670503046759158898316851603632142284504984567465826775155509626512581102359852847823603720939743873507516752650421981480188447524291962337986439945383009153230159510148518367607629417155901246589997551146848311932119039398203357775516665676312615546441239459278435934486937811551104552095480042682560239864703289704672761882890489798749606069050780548877801884889855071181902664172766343736278795724452855388373597139002788513699982767001001898673679483867884635695343854743882624712207887610772256395984175409581415687459599948135891950850559349016533287147378716823700238233584173686972395385389591769104102347649166049149813139992208204608241692865454173723388788031371289953300858488880680727244583382760439139322884007495374434421902725697314107463471625385820804593499594026194197039796212193826461386845426063481229990189397295936618208126484426780649545304736994750887840926080614369272883126582637693673375644002170899809897906341988902103697713335029995986797874531639443589800294423364848264503477628928236904940356661031339892102270535204999988488454937877092317420065873469864391039748747379154385174899304828331936376635025819442323315653646300184883371751922542050740292449389282170595989344224768764567486438193944930501436017411989312877928303540787514923660531922815711714659787252554341837265943874171714362822031790482648525513978898378716932959737977362112243583597038149335772240540307734642859327596383993968708159939237607232869568811992191669817573442276750802469174531191577758756403687353030613061964443860740490773810675628413764893606802167817927891558585197199231467166923139201827417814639291278579225552085503785769500001458215448097017570170845155846286532088978609990276314036956290414713981950077834580657688782103065116165774247331163596125824311721236280917855876959828262444971265135433715151669248624526843830623476227721975803565200817125953749321894990408740949427323238340422756639998314083671191361488953801749976266942959535255897694093004761312367357885801781939250779038761249982786560052653500701783510814798143030476235441731730336135246327585722726707910166522382774875912799919338466882952946615505334273659688321394786919778390159598036739971908487963055703519764084916964723177223351844815322858883561230304929960847029179124372547379968661909134074326392326042953414078435158977088913659836681785565755471458144169674240504146403833362691496510821065229232405140333001093129672007651542556491768954676839845399118930865689353060741544467161106463995577987992313760212861065092018428267401171276523270887245645672586396089404216655098909331896420114664223940630627944937668398976378623049596088398196920768223003391783062104394682709843991826708528492124926584627757210416668007394477284339539371953668516311986390481627010367375596030679097808000801621571056836029925260632889273637255106117811786702790342520512378473661943340258652291541328232887560566076990079055936106339683543546421942572133522931016024448717389951283592775764649188083686892160023823413804129323387916825914272477553323414382658094063505936967517823198472534403652416741741006265674081879901916946752171694148749982707380616213065416668066029335288144100255472746063687958052219815859865031152435743797089260567255399539413200264321332489416773592016041474277527343681482099528548846598385013829567397909294294343518639499307264884782146243261572944385649409389462728079880093075236147279774673500758031606288932322260761814860584726612084182233548104558628756766190782420757976621887263446010583134370483723136575613429520092082931449901852545273277694283066520907997146795442484000915516407585329089101994410258616436024370657067454697597766204225443942263945593356099672350460496438454909481719724177633700910485097433102832600282425977062257909768077445022147948819114415524133065701343805249786609039939479428270607851474521296064015046431384536609090587205236039599679611448146923475600712611544909997936877967598729061093812285768349094887890702975783365816006529421978392808946824449289557127486061503727122384969659935676135327700895885043994493074713115345442143768999661232104774004856452861259459419931785391627146778434107243784311886958554188806442677332944825346914091467742808879747040369208004956191072466373074457950729535367848654939376316215047147118394549714019435408811498687119801872402493792183189314154793704305617550662595779034037829114224274349485193681418433356386414246044491409678014984991384812555592932784944736594326185033137667824055947375065640326176397665774980211082330945322030367905428720103498560538458412728233467703966978816558197712620464313041678907272526229994001408733018684933112320606634012116182969273615257521374138616778598195656986864269009202144436090349028194794577431946830569035026160481454743372200613695408529080672935028829917563731496188486766619316500553591255078575877182750784354176721303905281084828201192959634848759797614288381904260063933869333072747028441371181446309874702662155297853181269904693574232688333637847828315895689115904136714551836588151442889693961612740580071429317688897209751965691014867834259371424829185198665147695005405228066649572624006699975614921760389539539151660027516524046126471824632701494088021967440095659342373407720790388277949058262704323744584363185039198590013246999579461699406401234313966127113440223195034155615363444689036474773345758125744165412421576725072186649062166860756777471097471248354314270010823050165573992949865906753389062478870110272385703636211958797890318932875376166560469054201933669091983213431088426035261985295726313606423564142999992318304561709996472083063565675508145841658486920379775445595892451492764154175504063900350069512966466403825715090068713128584575190753932846539510737868158494785340255312407788326396611255099233855483560563240759138529926498917107676753963895527858380633181760724518595562315005297068956827581672216391614868504555282413828814135314228864650099995168762585104756023274882180037170248450716348087352688595135312025652719313493418591329150432906447572048285931568248188612573311305927775110685687431160838499749194666007768400348488863002536905000822823393561902222917939551520220560350754712758656429087802549454879872116249682749448173801155312706836206762364245033533612145182572268857736552900807139101898458158282350451470954954970145871862757631231319037521147072805703366940410081003149167441979546616722299586805363762549109590800737537096104969086108314915949939146846350971051933863071009887398505186213468312251401149761950715780441766514766466177675946571661187930085622842522385339800690943111534885699417613468301194019431460933909943449000742660456205583692472580155258950244357398102079343813240196530052433300069158819742269870170744023597198696526059364034799092721894749128403689125201723143033529225987921916284253109548473243833102659445767567367528330471318332503298081208506595819468699352276419720454133641613230089416072500977042083364511959514034464180679793196503881973204739397569561847823158408152406927950702709051872128341824066442062938872401536933456283700803116705193093809084728618174152638069126727328345665667150884904960516508862335643829330716732984130020522004970811390010306568284124516444101703179632055418038175653567111595183650928922132067631619043516003768116981571578066509232419111049842981752090816819419902079734572590952093065356882316206770695046604586334561462498282474127371297663140432288077105597588554507822845743241959815421075217241494661109949357313891523941025771416189388425342348330151660668360402289292684993612567475687542941318897578191925137575555835237755181000351607856726582291543956364744386904721244133542403266647797246484195171326195458290301537833603826279023687377899279985363078771257552237294616362041252950802814326813412554600365535278381656363743407280048966014511026082444114592531905044067689966451741574239864428447956363520656832322647491489899841940428448392772180812078493277564268335759925428063544883872598306800622662862645301697090519977111644483482311082296520921197948285151264086728371745820823397687604379446580529092623059756515386879378506871023913577907590605933171615421179769444059131327768657380784243445288691580574132755037814681120730624432848214095234142957492893108761589927206793916393867950077436116280080684355601985148367804828544319957050712257962224530710490956407986773022894608681369189940293048169865979753621021756672271195518122726522043953358101210058424355569304789242372837424925739491085987941320496301633182397960567871020261118941682016442338408481390150554121487414125378957695875598154808400113101879121775440514822763085578690241875118248478134880099075708453386298131501002909203821317650364072127801697160282788672395514623789352378886908155144010094797781255212875335973166809677225352768923622969029081120353362885599446914712399621871217371127018345418892233228899328411537389399853342123607024114620770656883228525009641180784182604433149923408266887020314525757579404302183403298248877432491131642785852702141790419121058210877878067571828299836135485444048860431701960960004484635908961229050593677603648635164645256599686374083143299695136678795639465803525144576271153712283538252580559276135630028453327381192979455621383011150388825450585349164655198994122729427400372323620845251174938382809795182254934470685252806741663678249709589775323803725233202893265045562388758617404393764571785819459329599673600986745022165333284427701663302088046529992615487491343937007725372941260327533651227935536647876671531752408062575137593837672510444850646425367834837514725080572445319490104742140905641591700728077005008699313299070196985660973740747581855271798148627803072911904852490143338330641990356766432577001446947204330988363581786038127331154444553075840938930883995369029023827970304187551590067148767186542586920392254639830813564268082387012992723921213455687152723939106919438670407990191083075619341995126543308720065422166044867876711148506952224127565389830810911683135816060595424856869989093288768674799058888812670054391551620944790106950222897039289102226964811789666022910448083935143694027498596908070770031236201555402007653530826251505981796076256309741355231895422146310939362626234856626926953460496477971181110250424252339281384640181834145277232973094412990898565195958915700727077193080814787914690989824075647395831559784472681248205584256614711350085692461153149877446929772294602129086144746715420710575010812772941882153705272125662948354548931355164951315722990370092167879640136155289417545076786603489305588642692856844251858961380002078578636370869749984609654985651761778155327885141717952112403113222212518633869947476017723704399834352372075410251996098114175098732532211227629431143004358315095331430792658584959589348161974259024683535066877656824379438554018451154610145855702475077011994879064082318415044018072168332977767372885780551116087284968898003907039673978207710524686311187553947486770577703642221380044620617328611093708052662034645613958625027072398251274822940390132590266148779325326875699867882467899498742616022075209531705309154698290293879241476514288231135181226018178959960423972919070674418559004859209879515924863528608215412082054755390034075062378675390091635471852374603273552889866892512128097480394633628740095124599003334370512668332482527724700188448785994982265106768577080174589917229954763536431107244880401961742878333565057082830305155600860019590527121292183130828132165783669198948008441171710463460640088422840006023745966490021115643050767934018577669673883359702060564868640635881099785360696366347253922487888174371039045909324258108214839963713805083480675409032271279941136769894293686324178346467322575344503580566048794740782453336863655622226357143517411321080607027978533472288960231544389571443025053037137128589703973345983661436889830105175340431355820910469952221685920502791299861454644958812569597137448026478937474619039433451782902352099901820812579814090162082527468595522520782823470706217882695889562296255510525508842884395786483236724241774528508076404384773310081349098629840350845574408914693526660845694303390896563357759341752526305757347086632117771724189589145652622556909634741445471598911816834995396002876219225092023254690192334223798021690751445271647772980026624699367379192617184675037437781047113695793590337327467381082939693812619505262011534538757676319323612194893034237487733123985375960643380964585690466004640045717553990587235627449987019086985670790835008767064000702394161320298806760812418912327767704066148152501245079655495551473177604666008110035460210783890566156046234879358777240461673557894701311918722342882048294960692261405928587327731329894198295351361876682436652970881976409684038126169183972360189655595490831416795098444578597660292844196936248115631174227308456369471259512979507355841790350948033313522417650831629882542404071394040890632383098576920063544436784967705808731215480677230934712105122624948133520130930118751389102932685426835507904144375601967265876644159494003920779912474293714840037774095713677429845419948946955966377374121562512105807374625205198736041115467947191190123067023596096613959064342671525472626030462746399569375971928698324034279055199744312212926888652065596137055707599398562118187875404809631978820560440607567025084833554784662559410580511205522782555992131205466487080234890957990855843607287443858597209677058223556167688716007836428154609837759065380137571463118946560888837638203376955821759215926736854385630743310713181034116345853623188075604958450881634791833291843949580558817737320747024550467580223116413951595197522490840754536094016224159946867536104300115073050623892432148421814815284773233785582130839521899262564464589995432988120526551931909204562803748437511992457514661421611825124926572673168343543308107905215392203691716211146613301236854151927918807308120525099485804336951343952479521359434978851651446545587685293103570255499426470091962977918070413676981836678918488268583057068670573170384632191309894126623432987209838520875375232347191419822995708255008400432743248646355342002757546059114278564509671348929954364594554950896557049613176425971835357530733687239158763656513554166264972023175114644312971814005842187952144655364626731141935865613941250281371719104952817282438329488152882980769699239148378375885095221492321895947284928912597245886297169590179121206291056195546152299771441036722734033688720787489369582409072459620667090701489122190480959379005382230692359689783901859201475495836422709730841501448801013619434318955576782735072037456508171328038999827350294168270036690551722017143591933215255870221389606932140982909591352814445365111622946257583527395901946747680069278792424486738559626923252166234715766897951935706448383928895327148153940788134020728216876755371087294472017097753798576196119140683109544646037549714676835992832494328531161747052806364002182787930926935447280862905576074232929887491793798242539610567236079133679319389864036753249401502908509629366812729005314015814545628409752581949525628042400453743784188985648202166666164845896349998116177435888195008189182297920135700164521716636106640603162102945883623352880303541332342828242724986409507726653769010334945882638590256810876744348680956649568964579616216446755460878267029293360207746006423286811063080296600493277220441196592470510358404475245852470733460729275576250752939987011038371583879452513884516839885069944212432502423436871846613247303309247893033799592938882738305311696488602621884215563130694806969551999482832901076857015409869192861600464795509264474797584788382110717745370144530895518626754232604809666191714461478852516580589118985861863124621073774855717927758329915322063027728791799320356440609910253401930016035781418885268292186385591979525954866595298798938016863521578951949376613783367865980465722092040403257533662368323221727482950425530865664365875391734560676022276184184090132877028092992526159005024343989668641482317162214822299325299990312919088583497507388491487559565552034081615226481290083748852744909042291789326394999569569024680380473803530851386399204448991841546473532056616802735551684595138208122474001536696984293731418443850035418731815874964015594392774313350326543821838515679589450729233951957948070813660944572127061119359804906327709051465764803863711640097288384425799458688195828436832884228762451536427965673212451583638007917593230333344079729264155895979063458522497869212835507387000842204944170533836778678053958770806060418843142029232780440488360893310971346745966860788973281271297624251811605202314814895781772848238606880811408662951905651477668865753905727418814985756095902009175471977496583009377642994164736709333527040317715919067729572827145155312128957409848953801376742570164310422044044175834730111492026129216640452448424857938457274083978999787094572566434462212927368050190358715147579641705953004570976122123676019005716500664202109162954772232645602255207111754066462282218419099033619934482610413264793677921009766885423904630415085890145137185391364475898037254554682467822258895378976289168889396663207819184480039822783590892320955964288504782169066182427266107362241720491805930776712209183907171874971327417301199860234332448520777215701889264823399985198604720385336804015253718064165818386060818888056663464331112429077410198392854532345043649682840249045430870784390740284656749280743185185262788384098087744865351135833480356882892249897054384068069018633218246352165526430968689930816678201355607254296343076973817430379607851435121092431668249226719679075759353322297937175794485921264955026057647046598923676526538973878011260788675046925810198502596649410067362421471420979783413603144073766588047513163872066306254267424807976650673556200957140185033537160734283871131396987708310266384503140836530153225421746954325097680006036713376434138713661845826516418981613813062806261548863886213940305373559467447016171529929058508288880822372561082879145927444917912160676197664862817247356680275395781656332734018097559617516441991238891590417717741510540055405556232049339896864997418058916470887523815246270976345849776343179663759417944351089508121146322438880419737544410583413050195852028790952065925661190160839952406758235703155591663167853587042507854569605566966336220256915845175447935308238746613014089732347276690138272108566140479138726057580075417485278215184504385967823649841426264177476599277704082774879047790236448105819288685265350828161689756071579591274527846885249321048104318619573938168387264578481306392594113929956460290123005146069391035060324335870870334445143437403833198782740231780655494790514647813272402401957275823294444672051156102413612713716314669819261293185000389775209989955210883637716422777710613817671789044886728338298752763452958226749222699776334328593142541247959040926834634731017466941198762017474794425725426771755565324225092582324776151803793229262425853841045668352136342909803603614443800746126444348662578837034970191024251470877699350309211707739173305049712209091815678190613441317424381147466692710746373394860558065544137799701912100023763460596166516473156624431703503168503289857197797610672537389714031750352768259489769624026541719488490816875359079223361194747984976632485339720521513820267650029572752472607271664084477802931231250673486472770278670554578632514706081167370544297137410850812298332531959660159759087087353093652621162258329639047204218427036360705245967394440983829153912140596208794890133115579746969224497532590932922164658707623271411184833845895237660769185111859186303028623283460410274351404711603721412046921146258457506816028732248634866539081924944414521295804238099334893546727397552832011738432945024642301986632613177042029491465017863871941466015787066965236820457337015655233245247814622302118219890356018989262026391583331601942486359995789636733183036554535972383847964834278808614329914512645198535161125915297774311144101612324704597868784138273215120813965498411701079527575084541925305167623977547052831154623686171750297815594165877058667003369433651618110750456680817184712181824617818004238149489205484225881927594010374292567578330996649998591880250540474775938082018067158693972354602892939100250467562726835134915964682191464491317515559860760544146570673144678196204315148736119633860684795526093878060265929952272946709108352921441096493824578451501241800312521271425071708818965304729143673473826175807247115920218688833552567919144345607659583192695885135535561441308141408840877896900431333161103423608872496296355832789443449553403168933180324923680564339863975152566902891927936990551671959457133718117861616385423113790106769235635685796587166084367907322357262488635376665898995914412831427387508888730024494762391365870962060922480866582113966708823496596467029206257788197204186996201518291057753204875073328755550646442859532248313733027604631096446907290875633293337737628310915682967990915942253472747941726453805715289128863457366306599404139144056346963561762510719117825335906758504489317293600151295563792641053849632671961794512857667531370910678636838023344730778148701297226459933588488285026079505108238282054155230476123841402991255150597043948859711404615779744646995331491002527315785343809308915006340132490497494137301665723082387542624690268708631488615389983425256907523258265849157008959557639684114920017001952346589365587697116449333710012558760952359818028405129862836026787935361508741342651201040674520498266395265136579053167155525161520025897768355750210710266363903831162728066009703567485939219003610730063148668946878787032816598398793429833655515388268612701191627952515334128790663451719111112825652196038293686906598819471705511132660297575371659437687717201234969221024985816663121869377076362638572992626428113953563581047270754846850472287723363513005919760498291739212948101597813998613459837056483535265482535055450111316180409136772807221865292613029144887760187083986486422038658033265738119151871269290887181751615213729426665363219848986360583564177254470377331383664661699083115478647598260330199288735056774443721263331785884132466880549545716696809028553153906118823417963716515886038829425634939367456399006251035285562092643836349909832673880062527217145627688449176573145761518001762114356229145075371093979395150677716161891268991130469991653945859274920187641221691272517897418482290452511348793538241182895074778595660017159026534438834304490235518785905942390184141360617272359939115940523878904554657760067980498041190858327172097352668442673623571693769692515643675171402788569186964169982178728414242946251051915462144120233857611380235743738640090248303916562747839616395601209316911730922034331728475543484076094894634656741131277628628731758271874199868135847434993473082440105241677416038436890331830746433916663589940938234552588362678910307543488848819881630792448473392705042719019628669115122889595694926748612670358555710025349320000875495371776134042632139584504890489960609959260168166820303346476822945514871733642469960664234965076457391145364253169588393176653074322928709615943188815649907358463060240043530543884665220436868806469559072504134884165013756866809578546604458435894123272945208631824589193457347850021845553533253152142328656853471205898716263660021794825946069399986088387316745820091273156301081324358939005525961762702508963552296009792967890227473932636489984583278101617044895424947522919997620668466810912480316866102596177107846561137055436416087671593887222529700824028768908255971352655531369464065733387327093072934180667789821705946748773027819902488524291933480541412642963853636164855213619645580770868139896206677654022239397105668147447526006694562159849712878167129405209910832832543653623556211376020055201138033020832794060070991080654837092639464676532220284098344689966166670624148212178760159829194850922868017765918275149392455584323062257911959627329843838034521517018676487939364343698589637084701722785476711738402498298644473792993815028758127232407794505015682607190830040467409031076040939217458064267654204228746356710162710254289661151992191020026652642838209899858300971969962435138103095862551062966903288306400219806136889704316765968186941019458996090468714952989207213107319437894954845218719688437369450387496021229285253634832630927669314263346902269226554056870904676206086495253769878925846701125210631170159457630700477808314722480509875249738257934229976780537491257895961135502602346569943407527705746175015520350345045693315005281435427054473317911364894721120838949458938976527141567948836094420464859421821475349274752232467000164920061888461455926658404943486262870834312879858293658178892854080080094704403775564508998341940714691987922773680464088557605898993811015146578373565677772259119010458592677422993187238616002240176155076778400343163472078023886643409421706310477112017216748256267662199857376530311220676351532120272678423396351446388065387321686174080911648593689948086906145637782228981665465170949500967057380766279209885653376869335329059779103990732469487608176341134859431091249621050154026677090229396386781086585990660656373520365508151866197495154147005513047602024013853520934317261268705262852090614771425169843495383503074080303697184327302460360547633167171229581176819401544660880317971660879838470802712668650042452895119971090619557101305431740711735111273490875328603980987686780882892112663506290501085201791498250339132519040758859077054039634931547793698630305168996257372789254605177780581442991168349928138045511377471463679718358529856455921217385848084259026251996578063428612366952837350034248486409105177574849060017834301254034062366104779273615880664861185240221602296677033432548010957200299071880814780760427616090347584667958658684017327005042026870847558839520764509416698136153621481533833346918098560153781413787238053949576199857493488958485502113688058537543004572339513955212539793232366183011781636277694844661467472136118049893183222879280428446164540415583680729073613022620535595692596480243684057788722559637913479423191047293931616452101429924980179731502648833223503185291623725797618779689543685177026564242926550227735285624351659193911439351934614171723675279215494598423388928468660057504408473099504717783801888198512614648246378920314600884649438328166819815347857206254462818137390665740862175441860148742316666906299748969041880367347207158566150384416114526669230895687998634989646652184994003977854251947835686655765963698099495238163394355254233904958265332633266493171805392772449817897630289469521102277891777187360348997192339936834308834654780150978447182025109026258339184263060963854212682078398468427691010856304797560406949942862767537028748988641234246781887768482306587963109860954659907830027471686405954554092124482781530254874611039202014510067666506813689882116706858384902439539465226673678836065992348566118761926704006520931857974427051584769839660908200558598803644130545604217040589253158190257952794304051692706091436429448290771398399657070755818999597197777720589354788383068433984889283354330675970503703027823926573524972767122240656975507722536195958381578367133227488876412305779704826380438125089799176258964442179747061901880355166685959189368737160918912949919376739926054743233059452664317412215344548143902902487411306358738764281573606353424771651563141683257734625333335896919689527311707375804086555522732571935675526225266777516092289919287120289517019581265366214018144931144114656754025425887110853605434657699886099488487290753689025900398542569959008288659493929495090157213332473704376296903107505465117841994120077057730266989121910883128802311138942416307050803301175706166074981584584753385180248303836857444865007727222123029607820077470591175305251756699461412810946050533488923507381045029557786267132373638425470962595080809922660303151081308141001596605707411061028638287134289348966385020136877727266370723140187497331426819278037729081070511725216964606734673984863613576300190976727860412529370044487352403652188187021544681082601229349417169232448644606912096682281993181435255233980558375179393791864588618814907231591285706773859713760709188325953802053446904995687261075638260630555306653225282766171056159157053536711368940159120063849357216732412644394875531692993267134000049673777572736158175998959145240616991156884181464278284164866217425493525819111438108498030342661584861361760248651155206819701086700348130006107885854217347508514566452714341297755543028575628694627561469896374946712525878978684607717124204133438082600559712475788206217525611524234978918464925289520093179625781137501227247117388958773776725750938538365014783446679504424930777508055863200352564459331725625609959725267849215302646633453725963173496689049628351243430765440340875150226385870863095822225717681731428694011173568643360529937105629967671155327839157493791773862370082453082192830547161427040134295409148050365031782407527367607974886253870904855683116965738273390094191263319484542598508852919253769507246326868255549712891194618561309617721608804879024791797871607282744142248424449052147911278630768097733375818881316315577578067996916067555809195226042746412785970110219636182770114821192518614360615118657145035685476223006351963159728736001612700029164658052278124895627471632173131594948692911997546268550680056128028772079579898771979216308486248652449765845780565578265162804463450839271822973650566483651408066983471045231462576478961957893651548382684833535983861366187373924068603735637758295650397284176720660023171319647147974085391432719484145583459559099954894528670195160203687327849405284305820247505194984646019890648207464965816112272469959495201661579225083493273987547450467195571560127146424508459626699782297071664671825446299911697338299007418052869796564371645824920268231328571227681305958690623788270151988449499570426535743391326535930559328898067950010715522958161124674546511862681320787639461738550299587949635845061040687581637364731622191652234533783358430679402078766639225749025001407724600066474576790600603303339818263584907284395057236553534163241722778431252746241794970383738116419313031495386961069344420964745285277529395582776937828077713722096219077058832961206895736630788735006224824031524132301014150349346261562138026012111586261060111364735904304063726578236338025238562982860376304176612291784066783032352828265042992995687463016039582429662424143030557597123491701373262906320342125284584389961635557685602913108352310852506049279484417446560937550836451363556145512426277755090567359510953003067654955491282587304000468114636699667706301577393269075926847893207347993705103157587386062800225928709358673150142428305391178424597492468400841619410997504324664314676121873277076278606894277765301796145696022346924097924199685414277721649702282903862172589823702453618684958381843553742452072530985837244111584914769117384027798731557036322549883212070266338996674106454096304902322352715280794330649599210198233534336740384201876140645532364490155824132568719169146846364075404874496956692158977883957449608298695369636205556285622016626012727709080253363629569782974955192354126680992337788199384152563232621205115905045260703047973028553036908359600942914632919618101365348141890982651127527388290380244344518983917156952265270054799204647814903672400825449174321634988895206162685267096188709610632598900998436235671733694624149708471226565944370862421317176614294473044058104760045156575378984856468480142176151674305318332681414300278029523567474983235864332968163889316387442730250758565228253953774183253999048217096912353860927703934007932045261168798593208824766592108052793038326098538360463426142199129771041162003459872550288817129496520612071107865559994738387991562149257773999113393776173804204112949729258417995198103139191919672547407365886286515008519131346511288836180977295574378009128691902101435569138554559353809570074576291296369225064210084830247952691080867115468572678767689826397062550599137881443915355248203298287942368276554083137237195477728553469003469544158229497779519357758901467160074606447620255599020605814558717972499108991529875171005739828684400872630019560656715234800142539622425235243809728042416245326941441681720436906468873266857852939514819181818132974428601363483585234040019271078266866167832178310734867673150118002968940879565478394336368928516959833078673153861399508111438699927827542548942382803067914563324418034766905247891181499118330441672121469704465762209302791788722247855397330091979474368717590642545750632002881739550231224045363450758083735701856663112587158931167197697646112146200529736927219455712885910707727503148023115455218016646241351535257545462840021951260806658067030383602261089191867207579981996587759314244159552369559199577989540860070252507241172345393960308471831929648325723777833528281784431394785996607399981284583484739014407322381863991995023015699153103630324398374855220301082877067366171350358813568067846468506667007601002533501910985328824154948124165850123318336322342646993387654834084371663176887963180652168896429807224994678665921873372394751290367702803030508249949334078752473897198135364287027783972052012771794354530374865863348004300631605594622460866279941286265483188738462029841841828654769556029175457921066821017566695250033792037601867895196803990522923589127887386863633998086118329727965624340393816822448894587052507857279813991087066852147865989035917865140586435933408655506534459666712154241160845609627727809590327036833637962408587026228280055410156563042228982702578511877782514290660630601431413314316389246806167200624773821681865415684425521889887400195127750141126644154419800412894683421311869310121434513944700321279425531048800352169925379648790781867236981497635680763654940686263444610216170047524994247784121027092974239070200468638819413142711765005494691029715315386123284749876351155033470113641501653499523765423717027686130423905612466343417047128975455643077862291941332652041566022161140597708825810188083880816605622948222184648682308695562994284023754859578499711028431802752451869900636055977796700811500957099163975927028926932485745445096448715253390852230747841470189303969803530293654679895141202194546163297798588274201065735978946403003578851707220749325823341179656098923265104680968616070853314090949238005156918990944592937668241882476329110487670663833057181108790166387376156260740925731837484143976948013452048343413184915520540334339873051391687085256234177549863292204964460642244967540639447285179307942136354403922468028999353683204628983451065302391769031356819062203852855699991892850243291781675862094562678823174377749600120299829835417425076054353963163466969378897997720689425322446065496932631062376497235199876439986554545035652887383575890640963007068222215257031198158620684130899853837620150613843557636019622623906019287691797203486727548983773951104131996890394685510485259428118209295929182454496852444038878374161431779706990695157809976025570296724092895438781368739338857779592717723130247601270364283143246941818367932961630802113041121412507652579809257599400118647143265867999448901200697476002474784261347430008661856382329951583581460782679075001496129868420315172881278290165369976329748971062450109223680163915574154218064270315098758873650418326638124235671873752923481316823572148734805895738764843118641479654155705473264519259479039556858112488901549921026994527465384644781757011729873497694089637663816898446873963849978028597657114274829473536326539875725295557642363988768074626368161386651281152511193118551654577365756474724037921297917135722944183303951626553892902527717152919117966185994341896733255980202361979280737988985332408171471718171380969906141973740006403889790797309507314196602781340394821831085401530319337547595200230521955920963691608989913331145242377501037582074349099008744169991488845723426176044987034042338104279940327239050484745550954267559863655568775130470038537612030237404480841868399928502336978106141288236172103113163441526472496918586492485930378455527713019979308237280640604009509737376939548366083177533223864800879659083896863831653732158526272560864903625826819313752953549249882751094239137710346332628874303890203601725564038745654055161775306232244000055866079113091600216681917071949185245075773252846093689212859553978815254020170584752357528066543278230400255493849633007815128491490555416325454865505850772071746570738753687391122503782799460668742271554049881715730932226967369102113486140931494348108675349229825469994741870473868828273268789152745689500492563650907711856291184473560047313375016591335777676563911413149620492681015901121528501220038751130732676723904862719078972485409149082381625886710461105555589930531236637411615221115218716087985328032251096729535386172132752610733422163413999916527350332880125641224298112589287144507206588247291883821387767168860404067488880831230651553725150514734481471622280194093892417662245086996491841807107981129439461574973460554502660245568505045669819635072169721033844673527199595618028676314808245617357437168036704856045360333254784022946509771112826476493374288751179060428349876108656294108544172440935908573102246651349905094592549129430919598205631115946097235243744295640373036938790067344034225503774189512024618240186610514476895153281979663954395584592508839516671191708926231570441685598797587157434636919669522642331548000113465117640961948257939362053019296902941517382925943414168243199887436340309213337613535286873838167296925819987308372323042467840363728664099692556461765270111566625668020896077810714383506670113371130402497194524470564411849686724452122217523314349885946287176148768132536259990032708320207967856115565091141842393190160617809843254987373661211545813832952526278465851152113284773129833395368416532557091312402221323702855244333945212406311062792417289982447577062542467015881841930363993911847209645938645695923489523031590496072579933451962728639244602437297463265554166423671813451385378294133949892612046387609173747884554371201497374453108468170085906055103716570731473302497182915553618944987262820325895641406829344985979719623154665382769387603603334038166921813522599398658271802481772492728452960378503511869251136929781792676471353282413080528179804228446201702803756258384325782840915334664164389734930217469255939167041369251266240055370434217729168495115886115017110304001132301750460027627268665435860215645347922434224658115473636410724485921048446362634637684973413939524368661916122874437231796615767328720208592084241905409718859149811994322011556471118789378173906411411790222474853864956304652800873130479680042967898347363909173837392205332173403638291283502825773523248233859524049341102071888176196084328160497022553210333044160888650850552213693972565397024813447943163243476913894025610239597644500274571916339112959355808959644666067956341701837842043378598050086021452760510888935177699748517939748858970809086430430012242877627716727069147994337164446185495222573649683881823243403734152575424285495602389828934043050344574055112928850980317733755780658009616899274624162795867251923564166129635434436908564357463129925773265778936542780828318098367343103723580719492463961148959979526261246745671897533087326579938661328223941106520187523698350965192288506720305784693439165915834468669322145195873659879668698632185655599595894701838441145386236750179494954293190019873264874803924892406857514777894300056329966074558809673106226580102270732874232427622313221743486372506925098535248481370834730377230204029437018579901220940311244146795190800272570082577698054023213166278573445473978940774455772563019087337735134029253478423047995539724371760535939922561824165835637716659261600987259085910565588995107106255370111984687376344010523132273211013369107215601642921477259492657301494577216151874187332891839962920464713947108722594953512073394412042593589738936887607513580343805327362565523757870206442510569399972647965711676449463952696165356287527688101723521559161218794019219823239686786461911893338886484507272589405781306900545300664522858446541069040652974399422676711710986272847712343172486239272308744195122601487615522943252958486941826200088124864333153378688883250410673654020783779366537884550856778419380635643037031402596414847793753569770477025451182593396572790468838155612679840537663325061907189353605191517049853300660650661455095346288390461721696506394692183501159241841439206483367341345184752084991438720322001286498514593522698590097208585395097850120598455915124089629043979301522741032300386399242359439461138436528278540697437662963827232415407007805504417223659956925421378323845944040954955426573689869707598478248901042786163504856347226716716196092770792961170105644812025545272270854702390445172884616003633542726437430746067863218319448844733937660707890046357407467429854730110225895739059077581383043295050706789380412170816313178682117134639761649667458322529960819892838471485912542312255753705267806884622763966156829461135147481921273903651269925333621798159387266801356710672716646895139058185681277827989061319068505991417062152759607781055874024866023882022624123786879569300459235082367231114233103945958126557353156003998427064447232866010362147480942472642420939106211432873376678963001081088600643166257440370941076724253037355076872587697631329136459145374799313720950422419117075252103869247553643262328682565792705506432579108176863378549682737931936277208967228178552498013677002009710305858257593156511057454167489936006535538454771767332938344177887730653532938171348607358012296522464346223875325885644128776189334825218464610101099567323622429149364854053408013054144209656599406400435130595533698113576157921882767874643366746334363019712915292569607064863369535321062707562874699371928848546059863767343929735294572618004116128464591088813163332883171116522514218306900357359678549720807882791951441275037662650986154256887724195370078633977270893928842875778159940095005891045036074873390415284571278976418159636418910405275722749658613181769839136803079440815270956920667840952334976319908601609948781272197553814888583237029460809830753211508986496807903107288892138327236934587317071299795936384217159677623947729334098609611507133393013942787211829309258050588047848100071078393617840662252382156160710741790690061754655217896604382065056848499290775643325174176351884707169285774900268894117313639730205549401873279650175732908025010866353666789750823297086913172347849452375887095431403997739693918580754122695397493759511369467152255658594101597896179033902984805459474666050959991080455666427883615774975863469126978839425303361704498980946558076989560748472902530020303016832421185946934316129395645594939488635432492532844969527174519795444827572510156296312456362430924441702498442110385370314792119182198299352014682741243383592616065684705543869117571910003630562975264530197468343943176306356507177160970492195681010583966395932104052107698612031123897088836642090407889890323839551014866479208403777835428709578433825302947576887756505948328007102317459727675478302097490624674974654093494661324224023269517851239823595213858800077941237727158840275391689184984674047109704666690959884731678270975901002569552790461675947854030010064553036691382276555690882216563763671716674301206546647530325353687504854248941602063857932092520010020835129759926965427383556138802972690236056187553179801083813425298485085944993522936141141168040560335838897310973767045979332942826567600775589573838518730409838861654652706259775361115228727292625579306178818682953558189212144204317629475442059920746359641759001630214670296616783098739603730706262621349479082401720982159165753199360999653991833475022086899451666335453807557114131979735945040907110755355627580539648833249544321061271017013724309170371827604523312580900804427294029696740250052617784018306648063376648387296614728159896148199362070708973288176594182814233727881393252240396981087662621841523164951098061990563548285623166971709586952332048750953922936174010188933561660597614596512139684854279976925089513586377541412683541429104795104881117532758087989499486603376377066213991729904361595504101436698144039739566612019852794059192176992875252984747877051229628912143070942287378732517896553688739475207285519008542341285201693560330562258287378518725615055318085122753675000671692331755686206898646782187947216925851816200901061699071766460639172022596103527819957024364084621555210652054198167600211578984693312098617514776233209593069735806942587191854953838666627698383660727295953018039357432072480630311245053612302431888507568414778754863321875925885432189992078117941926567412410537054264634811380350770434208074394700439694076141993067492417582702840722736857322239285493815523152457495171485061743643588961657342695850464731200501120031627103287993478604627651270323753442210440060459667373327963025873320382174693733422982715133356854365537489737540754178226960729490181862543623966657883799737511007707819646116077617850400356299881872496315628716831353553352654577977176379286405743803811521460901651409535292522408544079677369811883547185393471082423100754239756101322346502508011247386645607487425021791451710587516226927370601516007899710172806416583479638210656683960513801039888741329982286083760766193841740158093287663001020648229074789849469115918955247107398950447834099374422671754021680438898113256413183897172451014527418923486562961340504431205485765954084725793443112585905667451094356899891505476952052430177607059656509194044786396939117110884708736533620613827419419169267950667043959368441173239456321665541422340700116581504639919163676949204168682013722689261650651787697041161468658333135224415609685664515838056192753844499202279604279610600283507140416237599106125888673683608698677008980243200952577171510189178995927659668360340006302900140103323256424753058566828867688158645890735910396935828174361941294255574324556316603228772791715724849083241581800463690012526970882459923865048948076168744454831514580807032643372710202387053895988455792839599995702820678782854279613828186641299986750399704031200523455118868289050770827341855752114264188881782859097324737939326893023141483571737365270612423096416605048319005401932168141890310392862854426982216928552144168801590565725847046727448402489869500512795587135701329567096641235579316006018407235644037163323252123498562355515912359438092533120498472644885623919792521053623905995628648822965744131383173775921360317274153948466956531062852430738431780574424793653681452155141851505798684084213514303172828828872154980158429351692901233846945731395784949744915473532118897908163642719317680369232784452054602507217619558681257806571616733596252811226726225891272095966369940113538228856534164126156363386707939126107240543563709341403955185982324725602753133322851715909911047031943387755510417438715703746659363585821457245554093840489845243408234208627962166302335043405383292253663002764536071130913865411190673603111443650804758615977301265859352240079147889069455791233797537807555179969305502279327347809472237360108417267928887611159756577754965386385910846312588519459489011633056680831015321435242853892021991925413265477032589041518247731659023107059978161497626212711482634187538802773986413739166154596311053148615274645380762956825146414288473293098570659250089713365401007472926689859278573601850879961194216122637694105265244682197020497752967684426707010585316833805431160446871002197953901225201207246952506447409909725193493482095722818069112572877035491900061613333023473025546637161505009317139525146034714671797543355482341380177537687542563410861989707427857754439958343101721866422494626235257699939107795904146797788491173764267416346531748744685192851856515757005429358943774299833165668938867588825357150518862549763371479086237477538661697759013037063798088800549623829481237060902035831036976709210543557689908494887615874416708608862382029272421253162074758377795877337483643912777401516592635232726833184173789942136747444074788773394599647285941000850656994919328769668200617187749371228154807520093760284920039656324553459470434014061353782773410645937456009223483511520650354408988766152186186987168081556946399909967325350074066606225274830899670365675000351019883292005746027203188274458303659641252261200231963273792802817608193562879636339017911891941513629021389859522277402694795753741705930505447257776120597625377443969040494524907916159635112859238487461290856023530904235237009933248953275560654316547935950582244955265377951230828256362020655567692234170406871075755033505125401919150033575958379299923517798288078237570817849011397197646487816751918844717714945914275330378571231547558431240227292673889267487732142146597406037606110665367380607176777627628318848582777513775303641455683700972674815640268675512099285868019804923952768577059526116080341084495845847710710674045742683267349152379025952322332474860660997943494138117910599128066164906898107117583349510482317965575621726521943130772309706369248175387773716410016269027176591695304355183369535954643839660418552565165769990388290789579025682820924294509516945090260401063671317152503750738780058656360622065770319628399998972347731639087017034712800233416699404293171157098475832842721790270153811590016502634222459749891200811953359260979764018776732794915359522180301994867092557748931001862667234837036315511475421873331556678971858445720486239073032550523454936100789387839693195266602431002344596461226184385885827148643638702083268002613218958040954406504509415879296139804310881504369500354100279059207535058847864598498277283529384587416537381470758275899598411465856548156269768197466325128298050241415316588028660406900858188030094665891412232404655152345004055980118866458829855232576505956560276011788575523386557726365554909280542868551405056962505430812805416345430624219343509881542425220810798426491658920262012465120265525778886985416571799491382684892540016874004606319772738210633402989898483703561329171791493995784750002014626760479680483835366544569591495030372601511051089292879588238874795962343733099873565027900002893662790339179303106970743160848284817765429810261888465167693835938903687359246623868099002489181107156764341983101481612005706636871100338464587487186653542958227573616631612439302041510144142396386340572164939861569472400848707274114759924695828711013490789605789653618153028266555006362210013418888424962674279954519998720576650870781341164069106416806718405797252715564059921015748972997306364537872211794099976328379474312121721663927215576875578610521845217703756792468388268934158885450432064056755550807807686623422451368742194895293216937157159169564000226644521305804713563201570425303933631421701253892756848739470722778160961297350350131268236115339464344527404186076679789937077748586611479768409106385845889901663399465572700028983282444820851332946844501580791684567132899590399483733725632001952545511890500309392108498084495506054142729718254833847103915491322971489661045147666277163858805486147186773602579989523558784770627709243287348120474285438126643967893579202046707316634801327412839212572462150457889225572604635132636306463369365008084493394074645514061718263586850801023088937533802612227170611251911952013189423738674645386614848915955417705316754547695085608708340283195487783364897971413806348065267977978017408804964908033209639687529123692285961775479778821825353886341918549090143755042938528406347185423698249097453009587801768873814005035050878734648269039796482848406804133798756121469696507942114658202596172902483439402941799604823710766039509670946295501403094327605496551806137635875444339863616210576348430152091954141604222318983883906473139819217976179586781727680816092397927079921110240013589362518655813765258213138643146592116573309972108415743995289688205253467738363480108732109638137943154933242659840525340111092617073083914380054222106467710692342847493917736729816091130767082407451209117679906825586356057217243701343087739381178567671078661251673379889742411035896201994080868361953817546327145171921411121439847816809309545942782631755311012803399278395115664944790419305330550302079242907023374856324970814164072180736830494073145880075462581818010793034822626629399917150875788865721041539917445397505102339370823909957326737167449585466098330100006480057670238551338219626604670056546899088572280084937327998618623863913296236173714240636412029628162851774327534485798541791940162962012367882732560002767968834603458586413178637961415384925207250288638315859800678316462467419134017032323115319308428401162412399539042867438565617081899282233187599954496581185908769926618407427947752468811205465306072286764829731896151043091124984301077646211216194669646142681785311681648505742738013118495039921367694270460652791972441007435994499138423576914647031990675276999507056056139847484698427989871101625682457012305663868053237701870587365489716710975320567784702496044221327375579404105091132659488073310113388067084864971909327313554905946224242292529934066060002755970094648516576758960208310515687444634990839821688634752603839962738495824749670955175645462833195246476468996415661793175847131296694341033175317691634797794076758748099947854164773435919230112251310941171680611154182917081545007222295100154328405281418541071827796286363465970294542799494432241680310385573433531968871952894344308903592469397644093984105534413123848287986598201849677565057304516251777480947836199493490663305734983577835650685945447367838365624715939734635872495608937469108275022414323178186948916353813357560862273710350538608186217307895181475248359956488071016842970506535988851173914772082255581131744384096030540884560621006108967278768786759070768434231426350498395542363822644788675024615333039256928355917283279394054550272335998379148827100810536029521270523790542920914174526411214813601415926390657959616657676949567260154349801055769058049457558303487537648210978776378907100476898313412704229100132750966476727444682277442266720219430204250533028110426643081968042264595289878657374028197164665644179849625079587588190879374226357028395405056920404787186296614335353111353864265012415002099385056080097972272320472602250176850796638865976805826935658525855109459010642163806007364335080397336155347091625301566634849621310172060677452802890480730341864034455695836887814856322025543709530614028742443166196453918046584618045639569972740623720574005510479469510441352160935508655008344568283517286567549395059601369874109692873450231024513638808310940313662751378224245922042423448868062628247604777812336696551343054510263121942460630632422108560377726277084345883891496837258020587979089082942870410654015518392110525464342896127774591263314652696847439692035537978567313381486453654662026842817587588257405497266172543945605208721071745232907024366399294014242590102082154059504774521263048682385623611931051415565254492865802405387791219391054316407328074020554972527237010829591068248136298418348783766717616555322379509739307487965179544136157942257407047194935003024199211164750103362381747339443740888651555567794603790872384851061368991521705523127702935866537169026202656641970999211006805333555101820644529514466546873284484813595473708774855793081168557071806583369571004608788740011231952351231872004543248421843811284311980873214903595643685004861555495530142624507856144692811176585041118463853091120590457425194842458062048688125871399621499530149615114478235283853182670506086854320724225397446892422158266356471927258285913222966697977084554661110274002482867794284668921659901891981161399447368257860412089493354786124139372296310147724023350908281771803869394662600278588105881673019103131871788724618001192612768988673149933658005238350355933977339420122157037332379431159904141667767482456958457033231397496792240027941455120605567062611799764295346781793440403214502161868061232770139462073807034294374264894604374478073496784447338837559236763283813814041428545161604987163297381871668040425087516781119332751550862029500946979213961994922590847579449389505256005042859899793207289105936778046104283495427966683574644136140688527731552857099133899098682877631573725851876665444654498806396545642405613289829666601949320592170123856244250347601807706320257022979341612131404909530297627160437331150550587269590918639971975145476057849707746125248948404125469483943190875514214316031826624264131493744213923186779647078338214275807313599954919532862159446990461404413493256111769958955336385604421282288306035569122143655803187323865437071162138275486473045028298005395943026670130293354224138361218549848456629871625160156214829155867283203846191855267201938785978760705943210348321438328664917951915681167009958409901017215310904218198431326028699824375915271045637828665266979062661778515493763081131450058187301189632522228796833095790875886788112501669349437142885149118087275234554375883607775141478160210393236687701430722710813612649171660018545729806505870421699556351784668928362297874875564032607381078905809452421985865648108440155231889356069664465675157313507921100805392717816010713819506192467454215294116105042200943312847669771778213122138406497705450705347147184507329746798398906825869307647450718163862595922417194112752497475689998290316768194402371028970086931792160144248228054388676113785231679266164362201660724336340067669440283900091621456061525445004499803840682125194730043591103055582751544914904849261524520662565437646671847763621704795213673049432201113382794947363616420528524992132254424980259633707092860529592690068338563414099692870782968640737955207663029349121604366028524474374613500900553276793860763903353914616019916384116060585910722793524514389148522180153659782807885222070007636859259438365414207282130646944715987386297911967281920055887228492533976760792786858940982661081078233289600928610391557618072317308447597783778655575595519287725462716420889845532677909981465042034304067493177775295508743326434576049114753946084045398769535306372641780197024106169672266371411240415220525021762078234133502319268012695803537830331725142801742827212800322010916507696954556679831817974673336942237834110157736346066697041243532571452266845976508187290414292704610242123578338390031059363909150853809883273912778261946311067698747415465152001753848303407139578170976170576993697303063930839805211004156781657099501994055389880639522509312632020752264596650337778356144196032191656973376705641397192222916491691244686956457697177895420538062938301840536968345650625790091038074727595170585787723911160462498490978099191779357780301720838646060135776552143545283812454199604202501648982677455650922122774063534624399658439791350776223942077694233073592949316777973728877533568017994895530087168655501983735444485155424491877552354525640460576722846122764630199939731121795825663275205013020153718289331705767651791974928849072756611071657898787383832413897009453509720850035712747147291273371385520251788258197568024764358041989989137341398462008671466574713402685948571414721010026419657375643227988249526976767388155665071843134285150460208869638226143155521356429973479128759686562986045016785502048221519675631198840892825013345351773975554687670932069433159783017084429412519408357759484128380830114082939857101912454276184676413887210001930189270166624006235897612083049100449330104063612011801426629020083668308176595574080500858342196280708033008146181900120771082371189581206745889006945232174496901190346700045471329376775678942836515467974806937702222507716310862147734930479559664117907352669214478617267866829790003314126253922249407667206345020654929772500920986705857100103335035927239055274525632304155658872234557022374807154797615635558282833490626909853002869396824570397212797616210299787241120939396879206461232654650605132030611885659076171264586090797277874846250982212725549651587809149532937953741074184351958862255641987469816396826669369117651264843038951407935778784275876249940492862611145727097160771873610942025543048095263328989654272189836907913512903730975455818683747547287210151798885933468209218177523409413868183376037305302039097884988345605441149408938563109927988061478123090540425279493416141964449750903711931763393183803782131168681257888000048692228478628355440015849147313746851225294123084532036490541168173431568660764970694233601208545641873059539553505039279515461138075622589598751503535865416604605307705300682494083662474739425503021392080039618761319644297226604389178256225931564389802930680232938503735946322486751545990658280132799147118009313460779952833686719582434317129411628693355887546313513894151523617921766596970987810004556609726461993043259761396948787505724504163510683110572078978316653490938123324262089512548205651922457714668454122479326379195046066126725738441193237485308797439866798446458057067161972331235060382402812581516990706348999568621429165212287938448563685207183409711478678750892026286726055915625006072475820472592887053406205680511248345507655822317733806219628240314600110503690195048412850885971597426377063452381971112803085483988907144310441306650123884384621859261304042635271605263177675484256842364045204051846956108096794677161111471844102145242103614952920575133835755301956399618467958394818797456613610297471471503606777358633365695346378557530451190186362208486883770376308776536697455486360513579126838246138560936093106147338649407363235393752844244054510862790867685022669566104372081008552508861724325850498292887736924644620313811276239575582400629562536062207299189572152232428837121503527339566625425527236291651804243658844368566647033944635594375117217357177170224632324838223226804002269895214542087850991690328614296260622812759512418178925715945311966163410106197447833468202552798788735955097512503782834548822824902134106777879716938484791498846115713483340903640535501251166908291394406408735029291695655004610829142060234535563879856743692554882231479188840806589980406891181529839445086525777442406492249160277534617118007679395052650909436278577270413446724557907975760955241364781327353938357750197793807211494128589189539973117295687906635977638923329367957735389363500245315202330729635946897722087279376734223644627735276074266031245530683759189474131643014277121173546032988953977122215813956577844496299072122082258535376318520869695381414592643241032626886861867081093722747188001641585009570197453204350482678620251847301191535228022124574826442618987965386803500527988054239996740169357556960329709519858388439507951320401429125894531957538976240493153655301445991154660508241705658220754598903996683209155653207156832001351001510874030711751450303378864527586999959951064695497633073757672673512634701433262848032139062518404811355206925789349177671456373136618564952823560903548077421539688137066353098627161856421166544736987980126203390471548768264578337181750974011038422968622601240182500379608923139771437476943682117281458246370522102664919565097075556800739345859423467621050983113167116636703327598707839860788525467204724397403562328592520483584810569942180101431730325830274637593402362407985800869594629857395125434119270904069885218650713559254542808632335180238607083813534959988208368126846889939517731026018484330319562037977089446368666561888049254229071808899727140939210044221694602196815757664507263753489078722532988690509970524769515785957628551126117357402505297856416036337661222841999777077998758631667439695272515987311228500576254433250790987992007933679817479906248644359470460710767027104777306344420520777669049659175491896340119082804425433074159953090799334973024356620771564796853262528546918560693782625884060070047151092556407473451310098977987279075793061965465875695660380497599383438941698149971145401891659206811798840478415388964263114656172284228887806031725966788888261697127566246395865422239412912160489135938498888321802406614094611262189972249647755905581991535410768718213414151670950701000579090320260320922202353690259756121278041057528798500336452799609134740097966542855711352695007712022462771643969045847187575479121576051802199933391724745665202862735273277826743005180167118254527501225472221026862972631774613436938397728349544976845988596518504375080672054809610617522848392684445226139054327292543644802814275648281349200372548276283961403610129305083179910389755926196069804855854293940817897745854438331495458359260081524390789624912104491193711783622810704636423145948780667337136599374220461831640462031162214683854821524012282152543739251401112234376448969473035163544812664635107589115186803630572411432902250685663721008617682463419904916637018901788824607684227282159091815845698055564370053258356926232968872468967370624935773159831349527129758027703263788567498177005418627279346341512074497636177527025626877583583559504831588806643916929019574612618286508393229253805605157429210291023195932536204561880915829716671974090503338221966369617954743235984298756824567742763634160394076244293858664633420242403103250151431795244169060145186577790186967388158058679781472075483863094006138182352163614676392808402216402736763189351085990818177106392325566548220411471449476649923268665909658435206474275886799281528847474388228899063992977083384236905727492461392811619558388224431103911423416448215939835962351248536832731585906939287551543456320290075444317690640144035226049541162001070126053631273866427554625254878167853653410967906968017073330887405446466552180304944913705508875803218752575086435525047103300668082177740180537400328684852893117885986056838678657386867976849470361960996045886436658536719245470897707106030949702553876285088953151001936287676179221782413563861379273251825302011120385488805025830475054275661472536379645438067158116727787155611119240566134937746556038508294713811054707278310245367588624851450428543016492733529180915843533911375233346949711049170598033208161578092796488469341931022055446102420078437694180151981225355783299178536164487848358765661051763000072626453506964459652685650958211356262748940195392145592239836719769671760610470457983183264635641277414563011119178489486296685386651283812678514347511169561190214939293123512917817514273631718908848311413878135392937653916367372797683659337409208159570051333954552636747212997733018943166337465831009767989111150945947497558214503751003268133408279366072969675276006380991144079602176443637358477093089414854052773950395769086848798553803897627816571848061269790652539585348187314593882167816551979655889031559923834904866455282222173787227079808817205087431395539884577610040463673347298068779775163023914343435553815927120594626400914119503143990012693368235377569655720791397105998694028728083726373466564381547855311464534703877252880036157362994303824521876888153265584844606623801771173770195613012825526762680113208626039182724390796169641462206004854364394600094196258685218909616406477970066220706384711971985814815821138535487893360640488115605387773571901636138069707074163886139205137140528609900114213796037510719532867783399947145159056509773076543081783092873098299299433199912304694314958144413647836341142159141007385275932276373909257047005277992418780252798457556249723559686093974305291570096034852277395344937548118876274041519556588907550182269966155113714482532724444677789242445170502062972996138251477428100362442605502021242125031933418302202935162352541012871950292659785493242038291717405648712902606780388022773244637825535502735375070147913901970870983951783112875648598371681755381594166260969261663314468862235854213798817554496060764287629732241487141210201185040924734255627524773805821754698695072180116140378996831209733033649061749882590606528233059322891976468128441265160837072331730030792784914156098303015792781940479168075279371131330324271122611865112758198109975420247034894665355264644335121622652617526962532071881979969939380412975019196943715727927435772322633997826820735259358596280947744222602416515076626504929620041378499143132296227181511317759927696643434195647628247282665505514221700155497852262765097355527007509651503696639887233321496137254709827276298113961447470972794981581126771450502423727569708988705356107683202315453844377927476839374645233150549931530433535157786329486787211555578827700676111175040527109836882704369361688666254625633824324896260072749124651891558302748215478745881073484689474672664800765669938434143701970505353331695236846712968013548615852503639846885619977083841045375177626097973770067729019557970641076042076647389803738228064122448069754780416095657476430071990209462868534006159277514704474161869735520502976105107853992492288440799216557819863842350014113146674050898432789692170760369997683206701326103513447998114693631924670698428072939511356342976355879749638646595278262649660444300415886017325675812105014248110192158490773394962163890766426038265087734060418279559430111570566993630692923431213919334280187388235031439775306505218299218242078074244306699014435669517666052713343857687367423850423712601618983345112024586060750974262253689471683162387156312446289625864238029788627629704453776481212945252012671471051758420946356115545140079636602586047411312020485768258966595416938765910454291229960392960245627423777827105434826370549887003742388921363805116835512927198448682870764793369333842578857556070510760586396832177629987057587699308757558829214401116711168306076494346365254160491495439167431156741102162519806636630143908173768403379673322893601931513484598120926751163662604675166759240663249655255000237359233939159857960587074805284645723470270162266666681371604614622560005923145020328306524539205843390155429951282089663710351816590509485592908032238373250592180248053421371169324037730699308832992771139983101872741731041489680818931602401167687661587147301573893103338984676089146002351541330996177366354234070918437860910993000334580532235572239625581736000144041985240819396434510600838024586068956660543357545658470308143596709617205422730197410700608568900326207277782720330412840576415413600250771667088858091215538869493961994036916115458300227459359037938796951075804185075916132416620383209849996711068980755630436796221912050141700111493303430708555852741282675128894258711716459954797527846859928272459391492944390366789920698240559210331737797171273739495664196292134566333570432580108853644091307764937581606728720556832964344157193371838935735226311333158836218377947733400769787579712863537118812235744691864035915587946844898925825360864438178742127942192809588260809638560845716024669732783601158108986149152880725205984996556112665503825657856017350684338874930401434820773593087454762211360832654739778189000021494855485498214467340980407199129832760429510907651670231651854835985935066979767817489551679635752097685587770654661379837648173247045388084523630332390530188054579903455872479450758009476696669020952104229137067456357935445098842325486756239865886303876639764452206891911273544364662188596763153018424392069624633528469196915542332802897760639366046176743180728167320365246101726419235384956208289251450540628494217093320995167871935394436398066825186056138808714071542449514421029050746935379476666644749669001616757921509512054637327586338006085981642253712539357124818753745375547089209588906393062650357102524201459768657571487680224622947683223140633322659839698267990148045563663038556898365425657984853837577413928973736661418104970626436523437379610830274579547551879961080909131097616747282763581906708243864144448284642831543646286241624070830439450572367162360077310653670367518955122553969392537792569975786578663013435541218501908279540992139109116625731230978659030398393514909409235538693102706667390870688904971816198379318625934946073588225140684268093530939253087687615187638831914906937716936513515486269039207704501472863306828515051120719753468433818608001539661094437794592465401747575437556283703297681295804216452399536219591190099130049019711153246487063164640772397991378776978294707366475982192498521987451435877131709700735103192126328587638122655509424210989747687765022776008479452376241943965541144520471537397022063442644370840872979490437312945764024413948842516736309540582626517787917541686421066408618434432421309074970139612559561779064938832097431108524172444909708705140393499258273593398828078754374302103175199821293810001021028394053594892535624916974357482936555089532145239514607905960208492065147123253239273012177289883594033434435639078942835122704478516523910201832532060100478258851057634871970035989434807946515962029500332443456839032320327247799470236212023151778351567278567796641499879328649723656313214132080920677661147580809907255637030322575502037764242004401160138717115696375944200316292111619404312869878317051969848142417081501074339392439663668004284621276715354862938404502777051536251070620208994695658961549821653537374602316391694824667191815348574470360196825994825794875406946206273197780594397516748318355320144105392653619400763775937843972676142022955204959917453162963652868322656820950597605131222291115502560743218774666639665889846999357115712566413517183578694414966125597582263533387239102473394343820058621885234208083568430160155851032961506832829203132384534826639696276809006746907686808323964553518951955900554609277025531673756817324372976704339769695689334816545512167768311958602335726857943203077666124358520582043857358820590496700833373410830995300598312185794347064229462477197401162691100774578290106640140097533273322711841632407759063339580133197040953054551099720173995865197105214892666948774867376104277786657583079399528090831690029152199868820246372183830595815898923193421557437154615610713903510254597996811648956840188543294581738340814671493752786818737261675586887310367665355401759827428565626336651517323403517846268413317901193353565024738163488216529716438149613879199790625041634863164107124357011431823236059911897261510741787872428546128587006336051449322840244649864264288097636570064338300561274843303969062176120620127838243387556617341575388172092772844458934764633439569997628561000575010837516063215934175919997168083810718175141971619888900591436559194506268347772918429227740057885207957998366640006512952867776610079362064173616567958627257087718364139712483130631479336625294985176012343009063328629718846266690210965459094245675256821439833474397723493013496189780281987988782732825154833957190929612836865249267159158845274231032813495079861702579909634276153604584644060627736888732071620885327793876756536832650084187145949638930388193077232905232509841790610691588492989412258285416122001801794098092018884212618296859849754063074588530243235187987542620385711295575483631278239415022245639959676268658044430019836039797144191872484361951625118991903024020378167957665574031902609705067928459664587737567661206276998090700826605982088315794649983374842021421123491911078635793609693352303990435062582985766096089231366331521857329632549814831086878368440281569368232396563083626148911022930869388791615476541843238410393681804413591132759798790403428454614251039212642044594373198877883665599649076212481953857109303361231140341319448042511771226207802776143279297827240600989642791343127297812107766139839286488202553004692403212004147531278635797940784547995804458399909827268950767324770878477235597625096681755726750649747953921600734902479671111376894347661918147382852767107398065001878975430584494451375062729643659909046068226468796097885829299236329036275728741785419935551229300190541135557366607203211550425973711191667769061234186732422860896969798369088443743181411688703671535527336514387021109211632457827877699001704613070264194446880532027132336508730531450646787429040757678792460958165113386511866150231213760399492440479883257167255973732863156876440367131470740146426553444424138460506332703175317758599909059714641620192399245478369494653367471564790938604425921182912563762210447338727134995739000989619578723230134816225303773045900550822694680326659571078732757807720046685806992814605281728227994209242824637949047731457591578033851098636955717171794454037529265887685991836122770395126637622401164748971386329793093120867917244537857737100505034514115702088759155360885687895749732114572993092196992362440859133665002891189506070305064799498561531456348618281607637606935443590197695442328764926282462558844858330369370746053266481806275000919568962855818171598255264739993480095183007746797743198806256275278866084907937698492906532288853932580024476609854895217152409591335377098033448607755560144779750197376490641145470100066179965214952551712334328679140992430826384020550541307848077667794158060530995623331116229460379217410512772966272449457624917293283125107293987346540849318291984418963112877145968691326674834815221370904473677250161604132978027001745219885644541017027437483151590829477588841006921832996604036514132012471991701183854644920057531523324021774302884864755109933258869511057056581742679119316110723754174485901173611253622331249415113890366092909209423510942253482629454135270466204264805937350184640601643625305551399362610199704039909995758949869596316220378913144982061347436301534052936334088068378346442063053516309803682009150638901929814341071328396538904161703227232280933830191967353644879643279587379948926520104159004716573317550696937263679926384860783844152419877241177299647746347295855118967279388364372518157256360132605266896633582636908127189855301106906887863912904947643360197813318795462369380866677937931701035378638799326380366620481477764013033739452338175321859794074632776782079260293442000824488193154255176006641192816538355773503363821056660301623699976812538396486659858605212207936530840947741042594218558046461316624890093270941034412847535984740428217934275855746477031207399820953002031119107536821312025461847330195001043702314324799079209024425038344264547329968989913011101791570234698769795792120270708699364650813924969847507433832301024792955080449736629201900693492393877774110323043510202157892970549674896455491797133649418792952379190936777138548086626058780620803782273300130793201152883060213031525982334134631546659273452464245715920171451404390533914786400796696509322119679273764759368638386096662117433909485119106037099329031079353674220993620391469623298858381611851501269996844442969383865400975165981719448780546175885167672134832075861338880652068554064326372220155887119152948467635643266044091075238766682736522501889257144863227052094455232116294552981244002920731600430318156453974831190116081628805382373407018741938018365306729206528468008966254099402166189236651020333701083064215885876051189534218367261277805046381331859845478622024157979819681068307645440178274321886591336749731395763543472842002840869323099534737630444572694267659077476222608831618603415707041621121778110265969294268596477304528379085816838953664547712778114660522194899725578473101856670819063478275444759968280755453038691430332623233415835408680304040754967058420783473160373138438737536712792357710695372285455534268459664226625158933580712940048475407742698188390249783011664539289004704378813537176496993652276912395563113464744170094317018888003602281628065870687117315320818051945508677765765958319140314049168852098713719022202572942412755277763866687320721462486469306005789100913273160572019512903121382391238705905389185348192383781316564306943199840590956059468440062239114064761669414622431439629707510155020063710889098309769704092163625959085481321768800764446226138411962702144398699395413965425729299987546976828760521229830723774533853770880369577797116831681004883527871749861629111894154709439382679345447043700982126716174874198195512369233682812321579672048872613828525497993890080579484389960766635211230870507149982592638441802860669053244394965903837439201422090179327230078435261559030255945711882345341060905803453261966618169682272863725326987699666276825029652380368035775910098672976614293550284930668428206252336956955407430373422488026721453208344568605726265271208174207383962697369100197295087284531477531447606222175312793056492433266240191032233376715200286680306475911756003676719116686975707170998335738553989260215865730613550480619359510385986531133325023308798787004958196481558542146013481251638457972292053648586368888598599096251129872921379484603999118036854551348621892428520796975778851754361583203307797717352389752363346968629231289742802621565908493003839929327173467860235527921083855780583075849133979572593460940542325092224392649234947395015637481280939356973535923253596269857886121110425293723894517568074471201125432576300482451518484297307341288390779107925639931576639918483843449869390499748770950278192335628765674559925146806108335687851085169175214586217596980916310544096613716881899094954238863524423237676465246224665849893303497084868169877089114706800827045512954846609335329661702125555464346867842648306287118927562443576840574342448697116102855791714741101499504235462432735642972924801352118221444369096321221277355917556530664503505596847365122904294941398006057090722354954914116083715658943339791838575928832172128949954859956070646314969068385035015121666965804299897558088244236552027218348362882218198696481989481584734311136422898571087934042912089062597141766895294667941980532164297553140172418277120715362365589025200286781000660164597886701747303828256389448693487381422964818948377309624060474103163947632283018862483933991557850088486542259294425443926200158676212824149111080132645667799659386008293211511288451498948828491557179330608914248199376001452376311300232524668034027934763119477888931186194680666842330730198324209440852613231780798738267662715262458635771912396286821571805958666508557376738150056317421411692409955122046622155245080822072211830125190287489741803867057731518531712813049980700667816975578996732440505016762294590856410207593516778464054803458661022149339660933160266655899159786168408556977146538477283884656290293214271729491206386980635293070499731279519072800380866092264723075137441841071798065860657252842741115491837399412314718971942275324598437421812915141131814141580217585630385350335091881624403623256258409863826037453855342787792894699132702300083002597275002011913774703713360006719182137397728052463622458388901338741626503833283695663596150973196189808750272323053105739029990512486296476527358158910024553381254812032883820684895328162422739292085023089013997260155292557046823993726674444837568282247266789049116330959127225462029220016656647040479567787833191201869940751978795370125232317295659203239197772718643570415456337371197032040016651415927296730478099413732477455094903988667182822012462901285635847124484232673927221149653065680087739929693631515222750362084857980220216492473644080784323255048761231144221360898364791792564210234238312762979135937588401706376789273585692457370883017413568112300785201831124698703908712560665797003902207712550530092430505356699471886796756544211700553524416089391849910130089951421650615803721738850120510845592974685373533590608008810796089933127424617873072883465966646634371574421236988749307352594932326883824809368391233445119429503729871945781889325963851298650421506363572856285070538307798261794892240181524105001996568633702684752817358633784620066838842626285699720200133144101988257432625024106791207591241893468863784023260705823095640093736705880485923093568151173757734604652035305795595811954113016280454244404515924645996900230284526185607455115795472504982394627850301573158364696533772976642864212543549057251349312240186706399834192706838462716064010256405868001958140484174230761356497894936776185778863294199056935523255583436969584250033851491490624119576345261905941831829502607009780466912771331993045883491965669829268424519415012215967816792285280475457542681358407947983085496059607310785507770519771811837497383500086395285044325940433605741023812127006179136935638691166870684914772930817524842528441219946664716938405023064220847734224529085485893738127792446967890539758647299096198927715018836054973421688350535595219642797206386350664349073384717093674815129344815443613749336273788324746481897424330735573627321989989514099735521245925126266478782324303244478737682575362613978691075567340658186187796386659377975256658908792309049441230126110811714228454599495884346011256783772148675194426145741481723930279445372117488207768602418934589816053864715495895020849427962694115683912806055830286535069097925778517840744132934316516906518930594517285987861369366084495870622427659639811396863458352106818832245558651950421280398877205785039741374731393657114918601778495812993327299405996377134520960502107823981064678476070542048822022407700326979379264763146587307848681568500128999629167989083109724960397302534110406169566622817365254014255915588881608829652573133026314240464901681970791778903952278865415071076999740904754217751948575308120794718963204771622640469382637189644833857914715384210211148058582266635848284360836565050784354160436761732408087507956304555882359501393889513226021967666037142138873087183856927602663511745057097290743713852373825384898821791562691331406023302065528310959205742804246788865549660640927416315743183033881332693624506149495813919301024713072945948127351087424716107762278857099697821476273846667217363514011464226660567037103635191955608419667691335930979040932272123221742043313520945653791714686000144838417926411305128899869729468200857124916951005682340805487173045734397181240165290079427946576540594748035716251677895422062004596935998632699169569425306279031686238287870834552741764445305495001986947672357679949960369869859003356431737329395364665473514201072234514876805129300543987110347811895845237583454836512399169717174554369262736900252162939293025133657307610768975193602190857710028013749672023973082199028545422076485629019636738928021867895438763961043506494287288048450047447523722507425011940870506011331516410793487122389959973183528734893135722685769287249057775345627080880240641627381188741112454687977166132049734979281968061714805871634731055469912339476000730890793348943133109029741914591525635371791301800627510417958944821431863751003338223707024659431640099529980633815997675800747407421172348707330814995880621850014099258035263655673211600575916833923879092443082587541110966392770863306764241143322474101901875183512798259685744619862992218958895803523953089806216285157441432490255091812221592359221323500247237506195612934199329049251961689611467901679304886724796889556664165481277560904339543839422131823782433456440200574119663114469622723192705262739818133637133179351156325239894422862116694728932571410907910894260467156569837147102445711372884772404159674175666326618481125594521090253551599749151891892968795402799879099490017119924785088713440159293019304666706203278236905658299260473541748651461849179831706377224734410196973500799537563122217217099578492371022087305608909008620915388845984141630105725059048956000945207833832008063066395619603664472034829743322304678758968860858140552268700857912653489756339006791163233795837012040877574243388736465368231848045246056378562703852904075423700121410311926770178966547271879742433099678787691177214796584206395881743463436885359729605992348922605797171029869190636231930631685544710038772064218662647738265177002868808615835973097446159653925880609235619374486497395646473399497483127254649275108600406539328523634138584086262096166312036751874831784847221229985114388841950353405762868964853871091561491196673494990658553117111514559629688848311371662625427898498897526193504261901539918653668673959930372306365588780612116213527575364897596955226209078292469640621009150443322871593665857935266092123475685042127887912584417853173849064605700987914917085131291935280469340001225275189423999773323905675216304631405155523032182115671003510142110509020813552081853208939421149990261322421325142854914044275755572059204216441643987265226645403804659397260144184624051666952735385141352616062757188615573086107380826331491636222274087884160073356094426800300956331291249770597361576413667742995116797476806933526966819051454073738976396837098929414633269645876003172007318288326763808125306133727571778900879986322628621776358916622148978429559338021146808867826497548665102344088235594772482539617176331868576173370693932884550101787320028111213866262471819519066341332412743010455080697659021536516793541993646103963612983876926239804699012163218305824199697648979368115318870915321383777625267840057415418522719639101179137555727946496436235059503581709829738016757265819299167527511516935509243281595211849912933269117012728053063879396920600979597768721332512313139854584725832847472532287084094323271262528798558491465328040193549927823693567333473740176837454009940268254660252145503713283424921520746489940951826974342542180371866050573593090217029497774134963994421561678494947386088758483224177677050645738128924485886815692661527533584897921285550695759155393690836011677198699945102886346862822388646284174302826003067731379999820667528230856262546141839630708435762640376887790463140249707986268685081473406305125192749477699315785658777274440658317517624679024574270093143622386960967900425654447913657803540021614930409100650985909053947227098038273485712086129609940372324646479736893655787525282561084707787016512502438283917762474848919037772462415889789628676445875858076901650555757039845574501076380290046860427492272305896047420638732836823919549776362139946805658447522238646875999767159510152785917105614642546632763346881868930315708715862495626026674284575448934714439795946812475527685381079998366999787667108227681616502028336364960650663228413080915744946086515114343710017679775528232189772495313938949028835802932413950537620597607295226424262113844880140357256771106267636188889426185925234158769486176021955963219751798718705661509141064803898360809734904132526477335433656439157749164454645439056062170233547382448283170986161024774482317766946088094403321779432369640043932306237195968280672076794654205052663167964445671969774155799668954846782831968766835410810527147784455404971418669687176744066734681191910650376335293744057781405252637789015099843536809014499454863036749492495729298099616439849923226761368444751091918922591332052671237708557712963593602210538051572441045017268020780502053280435691636723989038636494179412533729318244167828705044998242604948632887187754165318242851896431901582016989280875403747612792662783675687194743898022099531719310424029472103689580395023850865335951454197676009451980604008817693049784373398394376208767102983133640371204459026302487610045609560796256265406520635012354196361854806297644074161930448610013520242063010195535100802001194636821733086139641312033695536886408941146499991623264886742796510291102564931237388989534522945267084991194562489902492293743491066543158232791129139824963824457734506862962728581043497916883634842250861883858952004234398970832587424771228261554705112290850443134978141206759243734074253465711159682311222400306777173054693202486718509299846420857558212282622327309313795773561755160596215072933282497447282961776100763772990652970028334886854056731761036806495414989084498238262144699054295593094379251969011552991851968407052983359528976538287161614810987181478050314871286210875606419944310692941805680129855624268756086585517683773770032549355487878537675383050437334797105501139386572232287393034351099641727703688881646760982261700651693818426233484676792631503442959184489863590028183155717858004463271363884367132741225832160942308913555137633850432179820836203241768155803981252727726895052368341873961970608770662693908950373052290180966501369296501217027895834876737822564925100650200935737693343923658240135744851705931394545526550076002360171766628405035982401322595829100969800565389032611682114509458936987786149417702939172002700107611115105919614201265021736538190859524730035230746122693131071358314801788439860301453761375058678843569311540069883954062739200147637456330316162749777187374966640737409279220983801716647979669769272563797873573231837021239705314055900595352062835605625961158786063999942517822122458867150933900455833844903785252569858774950098105166293852685291215668510935454653922932995353091813429590715917770731173702678464364085546697861245268782796574166089481084016519000141998584630191079720267505623487276190331142590098520658251734756400193124320251150713767670519201476644067502566932500209762693576782209410221820882210006125280540606578254967444112457543154186404285463885679734864176673285272533267190342805745007523751680478096215754689080003791217628820182328216633017392946468065054462355216184931963386039961950583761825780680824692112857626337394997866802076081276316351810947695826214965153073062760569394342823965305247780779952890131660459532043265381118946173836602519434346695732690164867208181338186806259398521652766413715148616715214455571757837186343725555636236610088918060855021906533476642595338339905666009701070643389086122764571764575063564178280340412887990803002278881460624668679764000020635458941574494554314802985597668867399581616471753265900035138641054487061534117681118969222568571043070724109893645922482020433030904673627204900904279838254926924542042076963701207822793112810066732034078249449174929964105436511856790312856319629726552166734924804611343544885796182990417591996843952411300838658912042941226312905414134344127364892056165101180164132559939935078570293158219662163806182789976988223842287975352766603770566084410697114524413700088360172900625547262020055262180942835315768010008396594622605662780688639663881155421819427696031794602601449363273278574135067551133858222283503883341689355069516827064553931713600372748613207017572042469769513604914630115270722684565454618792070109116362975664016495586811660830154122623555570535650049319533105431153590258077235257911962387336366245874220525633198756254442534769551599030493062963203580870764023711279893717667236989493138701455162771714623243800541398671269169212294129952819534978606280728852387511255459363546830289338299384907227404616714425496343845215779468378744337299813437060151156794157173331069293266584701102418320846858390824229031271202651228751203878882128686992980235090475017743352892963857907378362027194029681639409263807283432291544197368507927055491273906741868189743217384198730248191319702871049265825916002469180049167603319109913165948151424634987609016786370766660328988946016059527979494419158186635013349518716250284168743473513203121877401022196384098480618974769479365911505303521497901871360680090560655751564429811892243975067197773349435221004311330519142519014311288783149551263728753997965515634581900484545489581636335818818736878044144243301418789582551667680309665632427012205816749964988500636892015693118376213032902372156768862166626687855445256074607893791389350483749100626164340968621350965210928504049231470041719672015490953589337027183227328451542343428280235967373354579727945283896863062314024099542703721893519259436581801318648173519084630114680078924158690608757079804072030382898284970742205428540095144091226808779309604231934436197165138547392795161719903006741116156562978660103243432525352424911857000016984088968024828445055147485990170443568534601696627863570700679052923936453986208051090333025906151370162719881276316818794441413058449112377904080791637660211600861368658405066322995683621888293449860553010208799460335165124035955397573327007543392449806592681127285441027542513925433195460262741320519203521239354353684150660116969319022858185312724556830539114920221501464751947808289285763959541229818227311439544412952905405426804050657646900378092038868893680432284726410228897430045386891017716897851055684577278658636798677446726050739711062871419017057652843466772459408493017479911241890530280082080490841878262965013137968677515311286721065088901683638641061431986489244799980341933319908689779639456613613432206963375699151825237266766662130909524186269123824246165133513266656562389360987695459170024982789006890902636946059548280184751601765398489886147103451165603300292614058118718534831742566862113035906737710782032074885968816650139369581731330801458741739126146855985863780540820929182755581383823935335863436792056715300412204227869393037347053454089518381710651753318793913010710125464216321144014731843445746195379259935386501674338258511208672816995521818940445808124433846301843349969814353262232648380751395669003071059413103696396801318801449136606464329131100660903322487943613089858284957426554434473475447133482279941894785858053223962686642814429739124127279021479191653158373057531042099184347270945633589156056600239296970672700305586003310758607043800718781953459437648245866146911624106357473745349832168431820100167490514948181238883119563907808959860766872977057814204652368681407382970471736744440297255700135340696850066844413004332552445365111326388399953817505672543786077223401247155796267813957722096261270677599903588438430652629259721684192048978952149142643814484033351643130982940536241099668910531703840911880239651493343550448272834118337737882392018835105161259963819952467128151591470930873319307142555261957577931049702625007275328260743687865884213101572472057216504012146999745832398394182395680114839494405467584307375442775150856089386772032195505697936638916866681450434835726130955186116790233599465372488772567156793522185030806938655826857999373248573256756735428670472913813742706124486391490375133931099873648716971988493736770977401409849850195786554254047636428801403350632641786245609725033666102253259694414488286887124248197468035421301625367821953773547584041496318317543819940661518730236157087853015628244865803881323501893931606813437884507406741319648826354396738289798278786087159828164797446577718143090529614140240028954515033627881149791877346192242534532242882010075057605601607280882501902471733867293441242409347031892229092176653728951256267167745602822567473485261865284195045289371905751614523453977092779363075045722996245490928486867958245737052381730975786001382688780144546615488353711516962011771708608932258604317228646841829102754695972443513607144565904463790122428855734244274419261372176816664337733927377706859466689785445909745704111454696458515556131449978048000371863920981763558951058769832346795710531499836574245115977871725835441196671148031171402003418282870141121824953946692978632840455413652921620651098246990462678137727856956624316314454431739724263711153355329332672060449825236478395282602822034844174079117075734437279124134232117554340863268943353399039380093073947387345521896724705860807649409202397507011701465611988625180349054745561677159712763745304427374011831449695632299171425248062786134588441093453343464370909735690404662965040793720848095942924874317502699379282878670164586937595029891383656496834039150905147379125952453416893285904896878654286895511789795349161365127337874507280455329977723015838910367588116094397489428502894092763724135102233229650805294815424023516204067335017728939732132578307968039670049595084883865830921402099170045928339940426241357105306649598563985109462355867395386969300117343167103814654067216062897466477722605735297459247837030466156564460655616945390409029276122611560051940407810550552824188588809586616735170684705281180307691279656501704578793006691631797318943420888107028699300213103985903019289240837434704120924514624836691401403455383023409015804170339369323280719518006671769061870774236714618313605070793346956286875823068039896665437244140549237288200336191970292812751802366704146695673368682676559839398464395673509234773031761999215609590760855563154711058913549443203415061185554067697509230597683200876566557547595674439463812631739671546875153689264844134701782391069067837713236118649924150471589370994000557756861196213445571149623719572698841752262433332509799147478067854146609934858613046346031698534412024972094605669979814377141941177608591685493906354527718313555583571166126481374893047776621358363843708811884194873978536563052209093361978940935320504387033019218192443315559941583938678038124075789263725068144180418889397758555039995454534388343863946410977664704915977744304392556125762214428990509389955301806394443258105754582312180649382654717594563203427031844087224001140029243658720682018814672211059952310097946385014383987817561499864380019240029339186532808734855793663824216981803122222510562147789012096316015726480513735319958345292771367528892338184156028804362383479286595971571030724650257609283045327658581725716725464531192402719620910008109179629585601199683661497118890644009483871505691857742092678870393350968933402172457886509576886025960994864760340479214269772221144896174497930748917126254639411878962087734535421318432701287852342580098135666426021533422316284826567812646284100661885388053505970077549518136484436063363341524417286774803172853431299297964732955214585533803754820468081327108791477097818433795285069300408344427686404076426979119323686456820202714328873276634006323275816562734796054263114194882922737144093895758544098562146193690936846002237776302172483517575640809167627284688887840371171414341223211407491155378331761170559808071553055764240869337890575582485868685798355997429333656489973439065470885718553598664724377764297398149254486810643496316983719343736174980860684223014568276218521421841677571978034679862401848135779018454624858395978562329284144911224227310394003565142662243494362683794071819659425393157110069654079592977108008720004520540948931271354181448030824892906896954993490882041893221754194389963780375411338134017702225302403255786760999104304818620482230260773069521099672831763817568701989051018783601482544358267727109391773412328692231504152880383944866884006817123694939907479901476484211241677951816380668825922259374231440206925185640098015112702876597347412906030642473170750783478817464907659322184839748232283838604975050148953449107863602097454055023023648442118849694975708410724865683264875128487521598421875633754786539769852652982998546714561272449163152712999759045585884285832475089644935321343208888512658148320501877531052704337638465663469186954812492937453773450773986887379820672331689058464707966753054814256329042226887751941189421974143272994234345537494394158282421015745535598147561702150339270213665533661495647946142209098437647394207127679834573017101665684184326149608027949680287502626127635551803803601158270966651114672565601270223183908052495919744624593657306070095845967542584261263452427212768514986623623826176057407179682210619362027836804140081328861577662137356080510323508066857411538878429928470039631823907474146513542594208210429413730589384611889904420295646856641802577203732865021887688811587928341537942787401180138365112192057049179836027222260188647774155445388364128060453790391002645699770020875208810557225492538820067709486718400404792714444148139246321250746541329758423562623202010293669272658878186389156253816001572628419259315606312410536316690191846637911303067670007135868108976279148323251671669367067230660703219534713048310771139398711844345667052704515942278791792639066365837068373347494695696353516590252017744917958732561229724794695507028010603092940753175347709423550603379297592098429574569260683805138205232602086075719141881569564760740787850889531031585940896863508072042304443945386923546160419582200420041833088150659362995383156543360616054874181584023785910238276523307207183341364081432097085325299708315644116808754377142403956369924447228342252970326626316116341617557209626298008621302107806563786015022382462622172195287415972298795458318743523825318324045407469607257047664224262890755299129724728954297716303515705754692478448686810506575485585860683683314225138223171092203809704728427628761328892074350205288982961078925825112737362906102395408320548281008718853539780662161480376843781590194966964584823423663338328470927990836353448287413852035977798292570252445022102330581119222791890192129537680152050147791613373472985220143213583389813450258778814590482706572987289825389871646023834226660029440903362043501449893925478153179025203438062034844534921108280464832864566758419663071753598459189603977212052271121303308709518741656927623768443848014333771895189937865950153007099344994175723559537821282654400502481219968881528197663423986259497887261399319743225025312192795638107178273560459716781562202357882348248570807270074669482731091251214189734767171179324262724814496029858543158767460416458059282236844057952487159350793621810404945963801580352954584145698863717972313916373830424136106545069171441542465920460071276062324173531037693271506935268017906242035370355047952144494995998697217530088866300203486001748782398708157617137029360954976083679087592757210527076390959869157784747125534345017968579645485744193742868087707210385409354746400632140035026760143482466650925446930437100128442869059236464221024226538413748498364681755194849750416357539122014846563262768406823368874320264157694580719758341765367393467167757228295460272461809421010281909690560556053830927559685313893440584020775972596786576631862615454140882370868823807638511937781155896803519312883984405865788976969124239500138505353884207184526383448191010344541268413020967040380903794866513373052880966668531067345560800460787996900759897373864232352066637251269453732262178929557768951093543080971151423770671983954947928162630121447438607497237010572322798063170419763565067227491349480182801270034031943715051638921790100662878628164019951120575922171503095826449352836201954534457881582607322273021603428158560456522935597283778122538529789267314519504188006077031986726831282158257957206515675669017191561566229737757663286643748022828388277450813966469462014535408377851622206957884617393480347755944471897903625049903437153794212454777510105122576033844006739891628095409508825370354436918664921711636909387104932540276056762858058262083240051858443899757571587547055696033536947305854825449627171120486631716784501898608782475305988270523200307885391994276204883432871281871025635726935619540694759499387226219379051399177106041869895581894195995499782883375905179315687120929796412381694739070523216308513655879658089073349523929062623312627443562320448644072973251334149400688002904944754754243203051045342452454593999124977985679555341504347560898663892432041420315272047232549989766001253150304464266136890683664444235509055553526010965260214188426076396345986631933522128265830157348264356945895804422145259258336955752668595525675534350893665270599289757481368416984113681055391021691563130794946088893027404378954959929372917994849546704485600745847014707767106244063660432153908070045499703609762641386044058633346240852052066294798117847978415124268435248499916999180816034598333500243020415827485544580338024531651391996955702638051778265665603116162245554146632784560242449779782497831996547613461456122132683207695438195922549766684916332929143896948791039660487593606973089012183028008723304771105440589591779174060232448331399578921824575598180140658365358769896519662516589528417303789764604783701904209284671555016250719589090663357309650764806182977341835981992944497283220601833435301196816688521328794485282170745871494631135437161922466854074896131439425099743395927017870787944103030041016229449725954932042907821403075261210663259485293321239851304154495481635604039264302444956627194036678055660264842813696868946174149592652641781602789689570948516827286977416207798325424101974777231665007714277131474134215314380775953313429640119303613098186134351484180567703470255144927754327749907796703732833687520906483529296252223551107953898131492891008419391226445145419988262344563138835109354208608672178554439557648405438649226448765382427542879096814479240674028213087208112502547283123886939512494730716791846214989810656095672950406929175900303500111432421552738796256243262605498084969943801522331763087725172983782830639222559168956063115422447823879995659767222900876211465619796406881518399181098733888825296514701305141990725783218361393453912019303877517710888171445111106420160253007896489062640017038805109823630363470181351731722005908160857104044333637481975359958218980901011331025368154717331483270875627657370224399901750129364126284785925368731580749766770934196569706780159482627436320530790230274078255137063089613130290142278019976076944465160277452057707015184458406722908887901396085360868991607458567070762908035635995868749624450289625155925732454852592836733543869530896660447338703184707433055938352077769356381615559054845341074264671505309363003462453378398797300192811455325864257708590158633469669414092324158764616755286599427945299045611836471507020951905334906999987530295684450583693147031982528016614583105284929247838598955230802085675914169539725051792461403745235341460446923430426354061409753315594484860922660367040618923031420936241100435077770414289018186539645960851899401725086586038257485408724232324204730011232981543799547177764871197680743112767020165271625675377492691029039979560682195559279365846440632659831914802781245399935513218436898992071582248584971539737688087887500107139622720312016203839129710589321251101555297109096759115652053918590924662540211761162642847287028138798789306940584995649176628290403607354601367366512458777772679831196456016243873915096736889545775469715320644556945949175528187473471375249782080695815067458167298313352700105115255633353456248910065267755767656615676573081331639494135443141114425726955608460308536980527471470589276674105576628611421224654992531813322075834627848386071453034843154569580834815734174807406494829585251760309052473894212653025165679419334513283160921530607824344836192715743817297984045426556563809180756504782821377437638206678793489852221189841009637033974817908652182629424788329315676725729745597097029648060227503551441803923007183373581001961564871158339022918004254577009534032608160824336347060140158377540135251461002974816689138903581811640762770219737871548995556003459978591098817604536555756476584688251779885548467296598284142395862686415541829395672501787149439843189663724603981108423035448156231993913784559822782463556699491515559885596703791237465320550604331343289294743582702827979224927184405978036867171850250170928131596864042188781077610333561547510965459262209908772427025142726923680577431625768438117957997066549860694471827774711521352211767045282014488320955862877693554982097890453636309617151099554454554640677930766010840238979313688652177271126848018260584021173501891695346401456945242182823762957934475037709088005002732179727523890704920500630013551965654162691646114140991068712221001935664433675952169406793182905705378932717347691252903689264172709189314441533316353432038532213131071684571551501365222035363095722052351664999942705466120196730999346901151312239763946797044473685000726890612487683261060349145279106413585034140618629714690582312162341517461770532480447137705862574896284078502165690661566149066263974085207495138348918014984742311006075652796973480026451191671346560862637739180984751473324379665548007897489079908087881352245819113278696601960140915808015587167454394482248455898052424792300030958589282190084304025709308808768705160966265492707847570772127733941285069013790047656450583055695799506812301533547326248597940593968174519844674520443556955681332670855742073364045365119196863273158214392455524232674051156817441877057965735550294559701471513916570629592179347170178998952004711919264415422346876260408853690547905213253427250497604902972672842317689640852056311613718229037846414816661343466526476249631510388769890153370583518285838887147089286863012992692270139015765863650344672901964440583345301867778895460138902705712261723911718339477051084857544331947031627799342824105022547743310757254545147763891674116389575713313094139575613918353540680564691427153060125860892019369848225761412821232536463812988429216635246425537251695708050512574309125250490453866867038503856156586297323730645664679615978407119399725535933355327872265066897768268838951722517180086174909317797188023954850093107947163657595017172992570877118033246030333353145734849535894072372471131150772768246409248438647084242877796282425628953170967209967747036995411134019882949373990778157438732567404518661605525493583897341884529790616469219359680509496075610425441719401447525507253783967860579436657125687895796253362181601305055774028564957359189509639373795079427363051465232510366411176461753458313151052465371363457259012275192876947342499708492333687676163594530513894663464987809692968140772529471021784392136556611102176197952058783779823390186687494632681046452975015162490158574876229075441185063574816755886861457420449241163468484699629095360636869916769358183734853604701044021661764219419217329087930863359177984020881625966227573090384107318042935745327731382970456083340182177207184218443785449451835717799366820037137629510878724157417533147475129036525377458540654894849031696134038732483977233890600256102346759114135231359575803643839662341106693725633876979657515639466309188075661373720397290148734649468744888821955566763490220427505511241327746046257923963866516759182316713245778562404789781610986449282812442305762278450585559828324645757826069716063640279122197641347245824183709645969381071403117686826690108192377127179475308436649480498299105776179311642850486997270548324878060504210932318354248556618247725591709694125004769655066136208307484805171498451303753132497340428916375367049954421839944001300841001302293084178632448446462747511055230833744772572378393336654159888833161340165580120861916696415882417833485448795762239158731823118541380984600536866990495854695602226445310778500988043663001233539047606187678736363745531213886005636731472718795313585508512271754144660420344288391706228581352975158960663121947552801376945309442751081250082609603377772018514953879167337459200971440908485185827059483400653708529764991987911890282693990937063951205436340312578824608177372095389889539601457850737789463698995900878151592217624409922147847204946387092798276379166806087351906523657932369148520637328001442197210212034341625113949880797684523335126085694082160969091391113849088337623282014938139263044968287143920487960135214839866953376056297695790168253903394772000948022273540590280834609098602545539199062819545684634821288227552828998021890535700572794982034428689767255403609206346880892837887576590798129883827874239184795517713331310626551243889144321199235621076394954254773769854716287570231216350807865094951983704393123741027798628931465115289963025542565291269895241285904628020169292511922280812956630693044308070635906308918609069914066875102029275737350449411740573133037637400061767995710705976669147144904202557520330883345448313086358786020862669966971556434739398243364292213587986399849604771199379900745974593873037850160110982196241851447482521427271681986125531731475755912272910343350953752000472089898433457279186917674734161499333001605489981850394561279684001153179237001964690647407734478464200118955451892158052938126879578295953111582165054537426421053379972878464659049191767074896677957662719663944130386540412226670939411926526343193550840809448915882392334628382256085358612421134509537519403834045970680146451722194307308494859330916567554590840114106377647457538689823322700283602404838214011556354706725339088038365014575454570144298935109989003151221183570722787400175137354892538211363927805003437383162836488083421418337570630041800204721413981469253621484754997986785561688689077338326446903091817887271158925632163387680137700156165810084176751866183389417984479203575021315794457060126581980550140266044974027475872669136175175270853605581881228103377111913375801325415893437129063335679067719365879805886339495622533609860236336937049608224669651472635210904515495530550149671029919565434172906346035267061109763190690311971855014276137636434883195267205208734538081232132854620199291731907184411598222627098976901515501866055352585782214449547052472857810672007468481328697167483904950250759163694630735683447976075125268904895480576738560441234525872105528236761352495618854179675855257896025754779604112909683636464569723944668397063406352431594683239724288828987196768893190904214406530801676659236556743947236107678130458722708852561858244782663077745495189944592430093935077064928676395351391647232294404569154723120637080755728072134371681800067761970958182500847993821988971700477308473551798283271742537802999421409105050571685644603900085900028958173195471759150432168887380052530015462755505278212933713082082180833996700978509489448764178334421916237845369936026494985010138102350510740315565444064219378818441686294836476471447624393457644955265426457009756048092007216967318091179213508370602778986379247919110476225891804244912324559911434562711428438844832923111318980636641292997875748780858084232881744291624648692250284061692495234031268932903901973966271461745874323815032227564250353181421066824966749031266008552757627413113212913720837466722186038276822708481813384183745172227423289007005667967324615210721082193773549714548515629219522679845216273904089121021257148600633752394772508947934118119861436852768164226067089828359527742847407222138082619444036705148554554596018457214873775387540309974823898697516467181248395823165414434778150117423225357348324026669595169166088869130319651228994287820105460326105403074876270114476786285160075503737573236323317400684582795433025961429705369203816797504073189384914076197363588127594021556535685264220398692911685123893093204522636053196739918914228605792987342678282962805862784399705019048268416587669531956516941790549565199898640687073614748890111838246199190458836645083253686191372454799975610524116302692756050397581464918748538322791276552716559110821559325804113560698845631700183042747360221890326830974535292523018112733402434541420707497837340190225266715822867563297091948836949159182883927823418249361005305892563677139002462845077969171105704095042744387278727116614840004503171908123570331471643637935446065937649961237155288008286135920533433984229906498791675949255064581926894473259119659676461185793698609557388390692800671992546136337169979682405549099377203590888829114507794532411001059229530181631583862382700581067331787996655454738826091118459692500466191075919001847104105062990379008138263501005125795480098315905970124721961860018074369200596234511626437493235299257955036340042349630193896074957440152784233425618789209895812112092555619673323850853515889945321727543607874067015931300368405249379844424880677832597715255094076764514933707696972659149763797814595803133486270855766579168378120935544454222286984849140587167042447536778967247075852189637406781076783971238174099438062061905286685871713517376897243733956088687118383397529541308910589254439146682867962449271979797790485789264887899122256964702856470416617849638147783647766088274891024731322161760228653246833322552606671295871442697155150541510737383694704926886454115877796183361151575849242333700157387193895004729385095130082180424659813947977936335592227799162802692171189110268714366651667509825131102157967571816491579888772956373909460954824833279512975291788480810501235242482322569176018604471535936324544913884383809293426050895517254925821336391806961555972070440160145773209885021003390767930329912713452167665135031642400778431364772153666218522276444985139537699071226420872415760091803115841440623316164633491360591337762427505554292380311874755410722202591108649109040443681989106338791339527960848658574308416121471690970466127471879928059244476025862233127465501665520245386871091446295743950889732738295585605639060619362965541150026133734048400628164158021022757879483442442574771849106018529145465228019059946431333524235381123198468276938976315195196470056456804295306304209487640586250955282293226969946591891228563574983603046592719260450106910880811588226772363386494846674590160708879903035081934289559468843745959301073304845532554566747320247648155845755025669679975048489280409394448582601161105143243170552676515681380038799827770702212872348832609240410857907379341804531139535695009861294852904611713939443658973864048148661478685683212463880307332652420856204127033059570843038782700639771675461408936576344701481816442765444142506806369420353842481225226564026253412605767556664516868244658038874995817506545251475900515525194253289386974546196866991771524817582023408922868782732055716859610650697253963842645279606551102390142260542134284531405939907194004126169125337692686994881317522710662029972307835883948343620959179751647553712731018109761133508668821090334390278874762113528975384977531032929602206959308743826863893907604714447184564085380396346336364101010204156818269408767136693428946993113508896934871416874148981294554456695271987878605497599326898652534140839540565143578573884756822662465173331718231486945613303121627629999004578767507199484682361403409082358962356618075777401018265234340532216443461424080981409103638568400535209709184726867126263928484437404066379705856490853065053641412083265820006434961933985668795324015785153513966568237500572953004105380415941351091469004513530846635405844976354753470561902467986351361184566264980776883447745672333253462380397167460839892006216651846035005017901055489349041039549917132473641576643548649375201345002889517388779436305337403437873994296435181311304761583494913516718730716787973208761139732239631559295149377047450756201221724258548269435249336295173084402333178320978181168364935730789626924592674086672956353390602864186773047758417378745978930121900098288477781697179174736208309868161890039789298808389541122170786039890564969068921571163394328614307193673839166960221145139045918541572404286137542417925807366824059179003986083145893836730651409635544243348882111214065445275784230046495788381956657230164274190670154400297472697143289019853998925148167179444394604809431996153447790655481238807502405390810945900279881322244351195227705914333947121857015628003449697668810144740186471199446974787227155674205177880643010292457760617759164232479592926610616891392364995573770684274371594153246974721954234224972062193130415461994018030177317308927953620672544255599989472693240500966876966944479709873080369694946435392430109339546099659089665457793202918244983909702789207420969546587726894652509619972930079615663937517317685484112087391278586041886441969151654807419142086397883099209148121096124548681646359355618882026293729172456051858980216071776889927819650663289141087805307644572070018942999208657973104624650809033758303546814670084426047067494405021485294525654834799240119908420427186732881303085941789303755199701242907391570036855607458579937263959559116543157928367453590233308747756189023890514984075801722364316517601878259953759567641861527609589452900832404500557928163977335280605400461426104555632035979014551013442107954389428675392257685377802187791583843144815623944784533369167068660799269073257638744456277133346141153230407892863775360698245297847281271997618310012710517855205330500482794632564446898987121822929541431429094256452196226720563429896487194606649720191707901953820179581175723857230587774842179632569846870732062362925082819246844256010045920786375187898862694737826093596347512071486884409976602113479270795050796098490171140898000686277653413250649105985003158567541426004794090379979517032947212045233882614426989750446018921200613148345870764138409581460603068978638579807051162488084346022622797667538060672502496939978829449999367898724981741359880450565822115082172970165055808419638031404236925074567325501235980335936197197610773868391964777257516964430269812364918609463257291685877766458696213268946315963912235781705922448601924970968953565769281602014358235407578737871645124165718899791866213053038567510869161965686873290318509741378747853060909762506253082359587787438500510876043528627854270195552674630935814281683244409473001784698826842261143545178433103494575835220745457317373410682859788140012379049030474199992749119201978929406306238116208514034877473986607069279236306806464768011017632829494805925420369528665440361395172798668969738658410208227386337352916083460373069369495305269078786642673282553417068462926108181056228993875271092063025877195303389740016452479649648768447473548797103312685352470286694300195704064340180053932509139499993574187141549157126153214625857137248316836530205560007570686074685095928169212900438002778275677017079298212944351161713517521295424203986831008794602312503218195362331553083534049818717056688001025622478999589431450023728853829416149097773070014956054479799880692854961001338886820854477340753903633744243258956428661531636939173875918037261050599063710223750108493494707182748952685058322954949174119795570913688616101547925793670811084963267495741051397136797076060425652232341373043439449420734783691668184620318303235342089692338436744492535703235991892286986553546170951516203376887350868613520001044978730489350444795781247534216657288573439163029678353600352047282598557399591899759565348900984133097483511519461921704109662086379234105630533979881152897994254334186728244935456843166570967894695893923150646605503430011113311576573840501597631187221725104918985506855910881742784013956566245848593188311255657551717075732299080466363362678917110759909672774319198396549987725535124406336898752598759631528070299119014966727427833853197077873453161714754513088475317543026692868935590188985954386579553421115103588930035323039329694926406235731770420088954467312806488087307186900339357094938515688011311875634467191843282409970014203652022197907908264285717366453455447321572560595383799457128091771230467706176422556223857097269692642720617954611522802379241506517559988817129592672709616588776327259088028988676745629730149258883720160076159236965644052682728428667286986449793127922532872844378706994946414535604402369399380875576876583457002087497403763564474747621492975093835629200380982334627848178461431224723258547076119976177522064517146413073805285272079544386139872113499775769653300127494140402554840207709730778309113298600923700260583889605626844311877375934151920932040215606395533793140764182655242508087834390861663267421994741740958656950986760366058447402507668701764643261908144861972928699268817293138043002196904942855724154054022107150758855853202397222963761498633043557588959860810172502934763210627893491973497397110563106758533567992775025358134769645112689697622119934162149383891376424742222692291947104502932656094957738003067664517831791891864265672552264258836687691357916166461327776818671910233787366092058521641433595561322006712741232425718207582768986499627094559071643015947227681713154297905955864621211729916737943471403696763957151887013859690520897081033607826169686110182148425356773808289873873846488605148126090906361518881583911081159135654023938085557871176389542045960625304541417483689718347641982890350580466247798109713513405422637334796170780648056925566582440709119446863110168116294694961717003616701053135525154184325472496866291352303532219791002880724140006833459720874129934515610497245573655413412844038999909259008039757241263326724896034603990452045994334080245890119814410801587066915569536619246698361934604969279029094199225743125502219972404796770347165670799389811026107378318393664102478984368850212388743677077174673685619245785855229395768174127082463156962169487105295094614606084802187189292286292099863822374044729415701792273029653870262546664042829812490626878502044562329245867768124780372991617217426400739576570668568864932443060686131673412819333847645309611075970064252106229633787634825439691146013889134829264436170396474491541148610133005387541560467429793858829549369182660567319859416643376614680652090429651627525646268300237339564260439172321207025296988641231609701723989751242528661121977587999646096201047620207747542558920282998790123634284943985449002784942836059095738335786607480804800537189462288341555162182138905996840070278253524581667246175761532842539649745016819570782143729317774109500594792005720143724357083289194740920866705666216759738264263961504440690330175408798083226471899461839259926314457373475815689597280507447412981885639079051155298104566577714590221905235679035496118971281749802871582284910868091978716907489301558270642711612593990713766948487984471768949623406116298983631542459381089832356506944867559487020800241506116722487106232605063535785171945139972740994312706205738302209182190735236512605363256450963094096733769551637443136779010421545639898065454480063292756526213234483052370770109176785015343609663945064238330689204059247659313564077666015913360086962434390671282268306649966436222401317872831884544828656807215886817785248963086599399845870716252486896272171685231831091719802218675813327562107913928285218063084360812399114020596731408131190414168909298651454600369513876191212515088729223006783338321235431360060142485328176431782975909165368356286060730954107016376743429714234959001878560748497327777995030840199417130926560450071752087122463673551276751539242279825913518397897328439289256680913935548985657301606637808293284462917706780625957643411946763948162652124499985449413950764330066775861288374230835901076747542042130508730539892990080968245253478411335708695846035515101380645377064000204403897968811566920480241057644943578650802963899930714966187063903830370600246556079132213364230616052025922450225938231579571826661449545625511145139656454870499387160335645572910999118590561474684434402275978291019142864761358029744242582588831861646136937622929873134305740791312755691232950693535055321980233012714966339830075876403672646237293449923789941622446410185120101019675051555900101810830728423385219764238476877570380739411202836559304907281878979780131028725387268741565928962152089012476096809079723157398423131582413373061306103316550716159471543627066020875242379810309873340614380668860432482491141140340912340425755232020904752402413572636547517226113068902456193108054967095288487097552563825121538036883636707564670240755782276812476115390269923704593123175376904687620648201508782648743443614491065732114602045539859423922623916058865168306973834077094492944838518494751480069374772918969265936210354261380876097028016383199116790002632352305365922078385809671649886891779358685552177181779634878966942166406492449933227842761525800770390666313079152628181681554706680347442250298119649681941366850198663067124432753241924778290787317362439406686818328574775278832888207289668620142785251728711180113331023983127781747698427184775781149396236086815415107899764480006545890052295484003454831800555002550660051451091938983341837630082856501716540760782744664989122633147183647174952089550872846719956908062614956130351468096203193020572682421251207814022073424487805712488422760528983886055786544630452064590584325780058043595608468255034568722427544265898414425748661174952610545136028772839239569364017341860401349236918279090600431075054626652917907560427623944045492385646742602782305196067385313832344003657958531947475716155119528828213005205407872692253911081285054778785951113283712870037611187426490220853790941327693484961476845588524565713253852255153982386530954211452277133491982419542066158779690972114822356929942077449255203481230408605231998163872225418233322724672993665194297122195391484920394666454876583083545094298989736266418690523231560971825876692760005043170292865425931051556979855235991502858462613169819755961638881375025324435890911352011151198557346888493002027058667851348709066372494693391698054681062965034391147455225930807649258508593866102958888148583302569386034942376924523119463052869427086206061545127852717913724483984049590525331874906365876358132001450527258893682038864904039371465316423025938660238366225418036572639305989257269652384979298961669691744979906926574728424921405980409421502571212972266616336112148468845069902546201458198799679013553054768826944838279466939431061100125204115329437185462048690493835348194646972010369423727114043796420273249309658421154135062249413599760878789029345019728128531349529372160694763491178532541740401735075471117380331327814665198955560102659311140060148570669378034854731424136217311157519717433999718796679901716315343488397555485391675916449113329828132002255851528796662649767854195745320827988551650498432310335570217511707754309571333854977283138049639127438814649067932865835996872277116847233464879983942490629351466997391730406237099932974464203896301962684133062388692125985928585944709578757287681006217147710875988059361144802370458127763055416417726867653023603125535312612822818926491915336028645469882042080405248510065802111051360550037908792697817659054971038506750505950220838477569144515944181815521948143305208405512476576043020091089835307562035939456185913239839662821498994144399384126173774697987669035325973566496382795819259648613763664397869289569713709139786966921141163756990963121336066765740328010672938459040223138495860923452626986768114955152647094230790765584490682839172152609779022306095228760869790195284242438822806730660607822367383208695823495488368717877326028159504539975058724706500839011982718269786526529936429751708636367876608463177467572546004649149817363198107596748188317438821643568492312234368265924014568498750305468632002850313819946565735218019050377921450668257324906537426245244844164903777087098064940325024971521951893829982180514019219020115043880414062146196381219636798015532635600673216725177385616287468227203480467373572233844940445640803453012392972390805665583241951862843675007976446821789818073933095536276961309898272950153487863549383176303495401096382031980198099497915284814012620627764328124704049671584359217110979116693098553179966848609833418687610459782232060122268538866390347303705299841188098907774475261384236111063560353113844851862004603240692076218258794786648574796226264984977557329711494252471627944815624984743273302964737854512451688742057645199141610355413659029164487102132703810355379190440101102635957991337740022891420765419262209250233221747197948426634205603635234726887386019006711012369128108263395104973863640417979333137812993200914241386121999381252879311812826269802052238340186707473500535387814313247642421157748958778962610564611642073591392264472884637974938693962156865721529885203320362536972672620080574563122175627893305347085826002118681246026688166790437220800592801834736965608328856344189867027509049981209592432545267787802693332802785172865245235838177426632039364198733788386846035610099996208249087905003004070695740509058995613921552598010894466946539887948552778896730076095018682712025579983670082574452969692776586602691547002836240280300116769772279212462875457491707333469386303380415691522270358446486263546739645879392122539037071030540139592120052972214813389310120543960377904414676745882480768780076089000138468051653587896139780460244569750129993665917054403056106572067406562890877271328281618848825466310420533348540617172146771894680310394772196891839445963255935326584422694715159208652110364011815733741705572034038490390663246575219916836798448425992055194085652907970311760541951186005755507015018148468691526289195201283820502371971097903857607359749259645504447781402416703655578542256789164998786794586284547051314231156031683273725002960174392185286680372506921851759924765839395541607074553707685074358590474746191464020783170473719190311529755706395349028682774882288871708124867549418089910720228879613552820054239873868242910003172366989328944544122403925208112998130472907836667748115817931714700466992576216059383391564572279808694097209660913895546279694739949935160260822728426106477739933925945183618405155148743792722161363870114446395898873864740940902243952255381259478090830877844490948969319131289560245479805122537171925360919562788463836900840216570763446380457646225447634527409641278789028071058139935682750668567670037054628622009493243160724971103010135741067585215235498457849386524641697683099532929783272825981411764396919869293671985278529302497922784832836346127668152420665841161657080266950076966781903154218202428511843503767059510135972709795410643116196303897246720234320248686538540256369947894652750731637107858130926821687215823334963927207582445237253850563341295028894401389559046048849759861659971655142092558932338472354112239068670047876337024326497226932445055879129096648182229044158388546116822867190410970981026808774490415866263563675606344623902458234550084957676750173767606825812401442765941155714979598869390353096447082595396017687292022523737996922486639965901071491631281428999935742176923507802404926964259040786928075034107919069214449655078609666701380986139068584293715347885489605692804957548439829400627576105567032317475495305572253717141277981211138257603797247343939321482439867261705051236555093366124002553969205025163418769404721323665543573965593216639244048580104991088896630260073935997349558826154903522770764048392082629359640502292952847068096915765881420997991170202370563189744894643430003878862137657755591717484780999266730503118128908743917184386587857112806554993078446107411223794558939657504955390310540267213559402197835551999467281884743383221026573762296584603553675099026319918889040480293216946550252660686288310043611313438567193193730665720694838221387695474967259147154461758551196046802611657987923562624388293552246625619869482720203637154898464942294869630243472956622777115360712443849590590426493604375331841408842650547762390864213658038761919085880945121673705062699675505811195221754604927054498666399344553596745743007794440788091229755665025630190916143094390637759520223169622602191031323190319368404041051230100593390073266676577061153252276812313505419116274339012978223035922767017599263442408401565514304710257335222212500830002029054300312525065490032401581182812879040710453480788850233982890349977793761241188007118723637582312082732085893164076598964526643787687309366399993648071629133491334625306600146795797985374004586505081202715385554096603422472599824780836369209065820820058123244285304535929900221979646826744306658292639072103097734495810120930397121710465916638809844237814281169908605425461190665409388509589793188781256291291964707397867449022529991223654830064774797869364401745798565810425254046946601158335397214798316262946298357864577466283054983966096932076760804027960715616595402778229305593242566032101812665417599114443207396312166579250016204406127228350183759366986368524564822088677352810938156250352706823801520843969095409296860741717148330807036145657149463430650795363346592292929854010787076198399621317614371199743724806972358293080780829855005788655765021427107958216868163736462052152746130635820112554141723788347655765042049055622748048769510465686432070996382638022250909847148916189483953360990228614604725560609062673823837018767348113847041876891486912730935172870435132379503372554130906616575276671499777092326535022614972137437109880168993563553555542743639090576217747221902226160224391231928849233970871806874721125247120600341052089215917766489052809514673010360423825161734790081112464471764017189169992492063863958372325443303182533641394405528041348874240238085472720695180714889226809332269748633705403437428687232114312309768843203938132805035673364695484748060680730221948608339936934511423739231173216810733629550809399807926819385962290867763104129442821237152448201811122792091354534673578412565058581673945787060350587594311701974393791308097601715736329967223690022860765370920052090040452559505955981879453173701473606685874057876636430375228609896839733846255860460990895320810340462481667008731023473840176912220572482952675337975656853747397119451531627004215744543406644043654508740690928504875730506152478966125556843917576273422620916707959923766203657617617256158761993243215353684596930556990135163573674747190599232108579253726727852077246990557297121507563490504415141838596626404668695082040226276542545664417858147791380935173643431904886607304196753473237371277323637417917926662087278166018945827755212410255328319039453718586345632726802716865129124924563412730006852143007202740566095246140748979693220116852653285092420312264353719717363136003964990397449208437109000113758720990142090396315441735585429028052997821351267865412912543360357262450649769929324777808890816495472284750649059469880542511549533035796473365609878973596360700643768082034054288842051897353493518893810030371892352890126032679747733458633375787653724291226221364116960222145435260495035060218621275524645311440222219260485322352765137477240806345606169835815495929502960199093455709668867494113431576413588077282942305456611228931382755114752169332293525613825621600498825272912379131115476558718162698250383929902314909589139386401990710761100670082402111959444256737171109965729362331303978635999553192489615622295411249562428423070788776881128416022262309708313424087726605653713706477354708579371209026757972237519000573027004081526354266981728674233871604063264586256441711205694311046754641945029214571361345935464699821778028222668199782761374492350676255971906648974006881085028441557492147063744421651623584582097893727682570880742324423256796686393481028492932591424704626183147393051109259578025125715477193060794603041572822612196992343966321271645154946752029584295258936136585298786403195493291886543400078526388064904269090012773012287823309485217379661046695980159191566023853513335448319010637526772509341342177807703362258791281265582996014782256705576347216171317822341608392291617104712557870272449919139732152043216457833640764111414333465113518916670814347903157932008369531799151149077637101808525481885716231734536720918901473564171602510633409348785292103826204157895154138730990554355564775155642376835505123941668383509384268263356076259078041329505096508988177740243493053241412622662045188764202608091109897557076869188217299345317296026364768315596274826796936374605178482594875707903623069227566939960348942455842657721254301636537914776153839541211897182040130253475074201360858787829554366978370334520527218345031152877511689542109924550436315542666804006062946402499971795666814576180331111286442560170508167179094576573261593311881216328889924101494582844210664103174538169458933051170091585482585237875619394676514833868670110418831957300593137096942589106862629701899893306399673110608434218055716820437928640014049935848586446247405904798434115938979395661007935187455511385489815509987200306794513881008950331777138221250361284726409786244926332240932308943107283167653782471284099005041990303429218778260548332944292093353299974293815810534685319048262880960997384964028574706020496376381191231724330869733161992221562684102772054355447890942979192810178444543937694531723867021488776856996877914802274962488824321568494125359926223064581841650038726660094053690606298511316141559602602655621790377817548202408854353946982135817464657405916361553482730136074826651632491113686967269100318964532591972200858237587049807782857515292776057079357091697867002586882950443123289452607648180449820785893542507798597964080709145492302578804892584345770308314515214978347403365417043776252052234910585293434047810055634861101656674155079674652551907635788938584969302409020086597268164562587384045197163913457416067303376910780339376902238432634685344077506959726136108012136558223866992310844098692904935453633592237560936365403537060364156211691281986197818360697504250228624346705569893731749907158831413471196754715338498914509254894148092660538742767587342971034867554797191799990545446163304560802279488332685206534687711659433424730341358013061738361908378035576683088817757085871592032274655698861529057713326294626049107117725431562774739716724347689528571641332215165812850228472214860102731517296495651807620220162004336340240542346319656010089726917482442997518865270661884631521795048739196903425180882034882918126352853166419205840339022162476072672691016108401183818848676630319339200416237061584599070269599423629509980476558831813291567725567655564877372573066754968191595666838397960544621009133292234611131592523874478132509342647030639930250612936093362766569079361745165626189770849542431898983073405235979866013724046290215690350376108960961633655599828769120874511879491550908202571093706820015341589028317733496495290350522325498496472424969702879782237121284406130698493762520920811481251228179353000673856955544109434217979557314588778777489532823516726864736873370387192532001501039992864200505006006750304113475080546720229043807248010091682217759776348213722057240800384970917419304017295283646109474214636349508498728126430170166579627525834541017547634459432878525012312349584022940351986281292286292889619996930326057640865330506738802655305920709289265142278815933748793834267719167278131920992898929970560147437688853740420491993328705605343743234928151138811766278705704974254082858472097792457126155975625449047344099812631790356423830629283596393417737353721375673333274969642458435411307637454029688812754949208510530915901832229384306312027908572020712222757579875924620172519072690703152913599180116960952400851206741715191750178786283085683394534937592686774340602178737312999670443400449507642697258989052902379740766582193398141105127395876979008927030806327797079097587217368398212150100084645804741737528983636290316431163705044437087859087204029687618410935638951091024316327471032003642077499401219645164945352596728948074202906235957182663564919477349609360541835803379788723884585478477462754046510017552067201894811614030413004450078064467965513064847880153442948036095398919753689010385789216278025464663704661846784198692266779196191428309217214235709965317221749212861292762522585441566611104069493516977565449799390234151345733165958122387570011936091216621758727368733565504640321793723983011113061517755400976488150337002482825056252359567423823980632956280262009904280087745712037071262936106206462153755747478604831111691446103646256321464358185569538371566966276489752827657976367338347565377201925495810728526632168451930475270354202491598514982209111476566353316172957231752242567267683033298529090090432945157096654085726794254671702026978670289814547012532560018775827232628360417836712124692126394806961350149205736156078249562634920682979017832446482777009141067939926999039775579970151102301270710608965344454603793488986906543344517882542085611558300345150495820233220871433968301509153078782655042806497163162686450807861671472961348102503056755788573001848492605649853721459728536494893385604727924053555585558753085760736658632541733042747572181813431767586713067522495882934226830399507049962886146305525829133627469899701116151342644742158090815317034635726838481583150190847253946703081024331793711719489201341336378013118378938386644162276268859065554116576245840322498232143823126147925078766856323223777677075432318558369172283189642435483147672368390033193331223127918302589181180384720215224904176921468189758991672416958325595648279202336783449552919084597241828063700079917721972964583505535141551282169850914505289546917514889782408052474151273413433294420785955666422891523932821067297238506693208605219671724937858629027095422214616098024231339847422920998765672773897072587532021573931353804574441298556977065757207380402208903840785169201014993267889528476815008665667218078260857606277375367960587822790146884246274787993140555197585053403841591491345666149380211965605850200047090456692579123861294667333587862470471844304441754920170010259655250730128175216874840074059317222205993868934747196056661286641363787380793820382645796245288904315279560396856483021847151327450886666254956135656136612327434654126848938512151105039914259445940125641626399040121642898527629019390152409037965378949350003205233103819718036217363137125948767192223682327971757424753764537001558627403988828008467237850822796205518673649193782421066601724864974904135224331441674931417229354735211338753545284764232570865912607886447484360278237177202814485799053139356319872009971408436992215127617634589813807869089905028270236657356690579059088273835548249121013057166968143469218199678625331797929357446618289113301892900162763883839872770690551930510032659207966868981319597998575922660477974491914156820051024231206172859553161711672270254297395105655967793037551219418382397107897944065199830735481472801942572957315778745047905562990816553339701842638881682856252610240061173044027038157724686936417015029250339741562756102202547670447934826546886708272813263968821645069810682433721669556767155818439629935316052306605101254065619493853201611576235996139183612161904452967831092576242731969625725841812127910430260468176920624714245763592365327112866079421296718468271887029027568270810014293290787382814001876478648148459505152159522135681007851658388077305667230230296732689166354722220972268901751213737947650295579885444404659979345690356935543144757525004932789229815668623032043591868259732254950656657853314965784695721097590714298373161233353541720049452097296827428613422942417295292580680451878064003569445641384714565128530173446103303672263426604424013217301299988076526976542677403710280450221865318886536264464104731803269013849443314442168385719937731851060021822747127055576663748452540528642886757877347210170949759595842586917276242021635054378520012820081943938758368480528772313460478003632503515537296294567182958808009551811114020213612961048157390762504705472509614133840257929904852511843582366095570094659522970838512359879882493875064286943366384790376879211028971372332684955298206931315578391610621382871131279637394523925300236380428790141630616916866532229482134785909125350670488883913555787885625037463750995591155300741279552780891441761312801194811538883826410808147855083393404831473995038432516066634391938759852667673961259415366232033091908689250731830449266290046270951924892815679201240182081281900957570553403345608870016332244330395765428656337023890815187457209328558062650253864709936194850954720099464171246549591085156865077549497298460894100367203991374206929056362337997684572953045443851486175823592972530711675535871406359993245319054469443374347401444082880875903240258325057072519573048035884644505835562493508586573370849936751263938466544399883717014661876157052332557032924482243998748420292485526869323533239488904856783390137559888026005393798340503589779524711781920857654657772782236888590843807748074370299715540301945322352513148125527767262400106238902219490634549860021760179997277436761453844641508853919301553932637829954856339151849761853452887902804863555991470373744270015170907034746929363946133400558016813918347552798732856041791625364000647162915997427213671047031477070785839530328927285344245981348709344256724310484430050157197277823159429382591111548240344653530248348373510484557411374483175838890234767293614449230983516373132927273388584434920469649902859190297640797942538252033156685935786404942225717625446697117816421674364255118811743402029950093084791162190664280379946357170733705828319939568452407639385325159297655429584482122710191824489125842888395804058482205850856644411935662123689432920693078255420607868289060494852183061699160658497898029514244446542463559376777527685391183261085727591191168001427563610008541940889604392654435074048157163300262503992636113827218730505179580951661004125920478150743868775147053996571282247634973862714088590938102255643610412626451579040606315569561101053713290777197243941624559923244530061842078738887874478062658425911103928543432334494514494336398466879298825008681069888926412393133735156062358652098780150037604197449703455416891407760037968384859322637608629160584940657022135290624252281499831890105118947678612464684548931423406917703157228321808015664560224424293302323425190895694855268403180413671658658434193765150088641964211882620387773870916043301391162022615027156103666211803788901758492343440272126407766428691842435159257234485985311961184555944642199181394397770116954107497967693675795483721313445769183810273480901752306051522694982840941850565573997237814325853582170714976747500243346531354777049696159983176289521622634443755708256301704907215611602493236290080889695148488434301734692064181984566956717805492158792480001211751791648013897620676880544086004946027176137613400076120844672639825294109265750391769853147562851020349556602969483858645332461624211874997221683664272785921309648285957324250598888573989534647088738392522219845130077445162685721926344066916680963113739313915229865503313110498487895592576607582982155183533420888587072861382837516204192874032534508960996235909924419059023025846695960851353384965372470643447751125631999968011134002258446441604421752570912350385549787277383445325610218106217205079462222338785707348787735950085167114816573591648286943195530865699143250410699752387770659144066102799735653358433505286676954355466222342947978577748900464821408880624050768835708795910277330961488091491411118470252261939467355325918527553619068946572598342440595511470494079899487988283295150688666932587907764264408387015343926052186794300928649023734707304370414961559362476871864617767699880914115418676528669210930387796887936823897845830165048814772786426824061362908443933159387741632834451925997082608206880343974832100477498982122326105021718328576089069342881221204005466065806743542665776302228601970662427121099789835065303122990476582142026158023484713141238101591033191975479518030882274875594143778280033448025749259304800639432006884458268343100371223210415254074937957604898390001859537920501364697139359850492268260368215971314679419460670673418997974436173949035897332911049826206523159652750040947316067446293420600190151489734524257733914700884432824124875492967353540101428042834202997473947402444517427466900561634749055748450738707760919119210827276747941452947942733811443308731438685374632854352775294109601470349624169456420783690884885538627714855626272238873583704799842862465281915579363080272900816907127464891850731831551427188870985150159534568495409459640418274313199336376854897354610869184222882693676910427967524816991081906102749163148390864085582236354153336825652591863598036216500472222132403052247295914379314268804956551194057449010855214939441233725329137015309316628976788838005649969634670747478037038512896691164351692908155398933131946282065361740505072689093758806454444572285566584201026236791107576401637382377630638330349063185151550636575935700474001193731372572284799559685228723029681659892688084209975902613189888268137085432578057511335974796460247293067050753495031696370972766277372322529814387540477608449911628721033320048742920010352001765226946329133528881689756014011431191092796042509107447979930713213722402715879097787120048713747611939987305098820526455292023475422672229951969476417277015335486509213447742447214417910325399249801171860403797975548629993462650851207836734767774490744755096721961581606729183398042911107807906035925227480954989406157388952981391370654034316747989043039470418689915557166801661824329740618564926256542561604644892763300057850387345488215457313297268890041718842871909878101858643154044483464943850796150419843592524988510291610805351520006408197522182439339488130229148328230574678252188695638298945223676595459525689953344331910310680188243106040988660344553176507460320371719116746626212497902957815195991813263960860492654282179432392474953784017069726337956741060087433738505231987450039199321586011132629937526352789434979974278134308037291328109187033350298942243136306497901431213757372386345451705917546385686001443030250505502048233517416784248093948191298247620633317049887102939229217598778183158049020695691655406211474874357318561371384169996691243784085967873530500239483138518923986014261391882393051000690436920859726973320042504718928180888699944821804949361428827619840283414380630373427799929844293176233363312688862472243784320139175062143707778055220266339860109103627145042700359133547997659022182088124274997866586348648916187645196831075664812727283631983617473811044954333509244981293086505944979671745960904444326351536292670754482241481573316854688964726183865504047403129467608117300811220860216438469387471999693762438055602606339239246023859824100387660815650885464313907571568458640859498955339697272579351493080329484518838554988956029660304468379601005038401415940175286750092330300076506860846133650819722456391389318633181062428875217834002639695432880284171332786348964462161729467901455137471944306341429455478307797935076242731748978800138754885136102733454212662538583027909397755481806012057839145683919302485200294363327833506721567021435291057080479321326822920425631558586953257804198503125285290639958767798098149215129488133500278230112398662057311657654937180358381900119524750787369898652184979219842640859275940634803090632408899465639445280471499767297348006102864787383387832677448473099803861222373396466315509880229978352541595423772732111857998080168486344695641788649490607129926936292082355015930592166011267718355710142140188719250814732916997341212382367082099540452010690167586483343177081261731720170380521495204079788493822140732925114311750568856639814548629653473467442068053490227527873146142369833755494061286334106243882294903259646615119851645892612224209875238263389632221355435962914026843353740127365269976896829696783527511480435251738258871125226922227611572663139539401406502232942745060636464526991481141256464128102390726566203432998704456018914358486031949736854261399046440125959856484545481453095703200416424719420275506858945721972922006375572890276344860908638932432571872319773542734877082313928913013132025969514938757541733357363757675458758509741907564088937075232656605640770751311809786034608035440169727652480874560340937813240450445186120193860055578618446239079876977492552116635094482343470421197160142970343647029168444859123531440961976152376335599138162415602556913608341667969263537082150355528228205655782602124999139278931839815435444577665939355816747180442274989903981808598287228487307702922166022679230257611240313822871802195040315748776147573503748448917039950061854329238194804517136950308475792492068070549430355092541217761296080434772147806636104962324188939015928315654251448674902038768124618597034970608004775729619109606732196925756788482194767554989591068443394728354075292816977755643489555604568893178860895271982061759893376736353411887915012766530106783229269398863429553432710121797687715434928155816970370751802382148765691416084996004355147470390297957297312550604964259542396040852378622053869294979841455666141228605613619178476821816064046084697449939322225846669858037258913151325336168257190412029277325920942231823002760775689340230089589243426625675540495175697460598404912649244116502027727089200561921072647546661357281345135689574213180529118374321780938177107069532196384160412058615805169470790627766529518999640198020164030389548277148413706860401003396386367908867302257735685742826924427327485754194197154650842763689150378162802548194236405023994927107826752774452915998352538570138358629169108079297962246891153363435715717213569912132749394886520932010233972179728909403785625449528016919168960039928004633529057495632018763155202237253183620591482281527213370487269965785859994640260252022579399532005743390353824758232448284819498587941438515595407193007856303995087049600535469323042511290753349769577519812675965426629151608289137759131710572652596453394065303821905465079659567580493527742463830140101954975298043183788989759754627116049834473476787270239776508400196922658430855332205737657137975226072496745117625960511551033628033350069334041651719939698313465103122215114466141222374670066055165338643708715745682157479482451857227917169000224332126897694951841972072815804616263142913512692039112384256478718936614640648142344144376275926842993747429478721736352175192548547641289572726988173025472279450271803031564406777164488249861943718273920311539775347841312567444753050540493941058041590141821886589004063870148883009206176095503328188884970468106099472673962979071924927008985577226760507108978410425141664030080344337600459173839316038351100537982883648834290142824267216497412729146837484351932311981912366888269305897925702608988060156645638357157244045930940081925435203516392690672409066140016300074791287053865611307035199906014444095139772835103337081121290751407896410707132227684036705817708756765028222727059736494541559622806887352123894501425481011670617454940571513219574239982648164985177149646845916713545243741165856431610928810719197615251884648484270414076061940343250307230234555782140480319618475911506586477860566682443614190586708328259616600424502130205921187263761217257881967365162224149196236659271368565794284433450134247817654710405008952929882767625731926837194674658070745137326634690579828844066501348896105701795719549493686272424063102522229490359886371423528799481852977188508412718473991408566293794031771297372197955919496343208255639975395815553125900127805307824888531977279821367742628883950293244643766604619637778206752137583396734614973335538597763981112504873041900347875202325976607206714917984288695165377519791068544449180310071275377837367526306527414728761005563924475606390816146113300695419716724688130308069753123555403902762294410594737215108244758131633240748238793141290535577896773788427166666895835570546788531393472587941323080549668216025442346489211449398811079486967060595909617048004653707044856275358750586309356384190935483908209860823492199818747682937233904473025702442057929372459042871810401513276401881129878237046493849818979078954964438124799674009453173758377463939282121926890742410115079243059540341488182632542996492755494614352846060980987192528205773560027566518868553957447842336310589763109952742532536446039668627362186501050056517424822510465727001224248145099368997450406057180985884094496785836283449223683046312776038016537828151853079391898375034278505371994768517214246151005904832661013362428129906113818594793528532572326029139490194898543568082034493600259968405546759046522231792040942709998783385974653232773241718336573751030575695494808520801986725139176048980661163512968057745361822020058935486733889310438654128204639118769254936735855416232222094934298043817176876852687576893707263205828949833329985750607080756408239569234782878366498510804519125652679831011311256237536487723319509145618575653004162697798149751649886819695182914040534643762710546101796727960605599180860906731587151652120228504703616553270629483212141645570685880190948071541246479991222854919232522315496997666931654321037570285576451827783600070219013979116872771150232251311101431208428870278273181025905235834833188931826757789972383871341826002191770529654705490368491437084407779593349116515860091814470098643225374163738031506558591739563322835724682024703562089959362620658563598900220670244130842349004766027089279813790098322322070706267193204744550982180301262355603737790742550911706940967737591770587320590710309260805149943659715879465760418825693717255394229082772600734131707486641086256068396397864455090602784388716050608561302861252884133418001078686196999777641579743668161845528069217935197411257617518436787487423953463011021833725704415197629892797471840735688409718734148544513840791925387535841813097302746579566414521425729364895522150490841956013276986834698216065813766996137231497272713505295605180682886097935136396893100802456998637043730227587739881606617330246950274469106357781614662879556464948582300747971656935660131478290101286119239295847832163121294577007081745860939222781320102762202813570842941345863228042083468508283936592542027703102990582911629944662904699947096224678863120133349597823441879163310684864207829564744718849115253878046784338096976482961350861284243118394478825936428079818402873991132033582930092022282241837121240527880147517192907133775480689773477890474156231540091058630821562495646708321639106180017707363591234580302980463193172252826313323890939855900771737825176665749606070989859032616119720848470067224719935616366917699857567085501007589918999519728748787163830401129027789295648072739708312337040034752518308489015594245084619067472742967333407404366083380424196505751597087517089138326339051173928171136197225401200004403103849376647600202970835970622675120072111601749493335828401167704600095490730362958702936490227536232987535494878851657209908735559009418709416886547628724383452151865279292281724537616073873929750264726281147569843732366602318049987282349916903178340780995736217723266333074898593663664372679660172906338427928714465159490728645105379987519225273096815031722550358125629350962994419809878673241526726539304662106867395113961433295392037494006858743159128619080408841178872298431980914559667703814902857809855846179301518179696115917515641006835824401488250315222579988931387858014481412370357251560586201124283694076263941696536502466995690391155015620037448597071475821320831515519940608889718772823816020807014296726364896215210943076448288557287178153128078910360224999521919145828370746946318731541149837504233911694362125355292068316672939384773958923834557580487909638603102517685737741454844654476302162856014861424414089058700779982897223727419790506763542391784709618453680031934977238207021476710689101959698624078783462018906565911443764766088996107857032101059773359388229065010043276139137632859924035749249116766386624615054087877716324150456550435472089999676420628584000542758228887618515600720840499801380493284339994124421734230110058364173757742465851445556036892506628235295796204298586413986839204611120420911348559853393895066419698044746397265384856482028026760852788475017048307950747162166405591851474493111117329041830001633225035986914412684447687652481598960041468254077190181112594024330771702498509659848150982688271337429962440965915720672549669817767508559918692143421587134671260478677147748552590534791820383980425738677440867417454835794060889528094483617539213471164545068727206859204219072934595396200621640755680408267254768149880008131044257524419021829573446975673872850790568326936866871344809154614589251110470280005211612931308542877453721413209569453836155237038350142360583485409365086189182612069341860337906436382420636396966612151077859862729263169074265332691449802771550175044575395793123020102750704356770285578037243755779691016009935444703100930252178886854869739643213992184537091317693872130338853349668314182092966613411687840661129287821397733641477901400227801808333768542851319555132816231889910107457032182869323739418739175725376802210112272880594724975312246569672059158729444954660043440758362417809883803693449225383966224986622492974094109644246744792334489956125571822663372359080993362922261708684883691401783380104075556782736585784264947022298050789755218232852299072828895921812841243236596616040045163547973360416649087910364265131764930406005143105165645506243854810933918284226879790667413471647749874823425066689539844035717955682621302105504758377759998098670414611822957273941251075371694178846978975599703199136724113436292847234347972812817164925666263963333886711161663230394925534222844273263513279326781977662333309403237943324959059740362434000879702683943156108736481787402460158453416579387674385147769544771432125514413284549888706571414827082597167347017573741887631051988380544888171987876691291526221893899690710525002706099303495367388044928961430885090251714276780470743691897312959292272156645038444673436231119747357879486817521343556039590708005776421276183182342231623151752500967646607737378840671282546570677096808331263069727977870737803428411505976449143421962907041928722539312607583569329906415783044683967160035676618028237799261816381616040419226345403036240980949007944795954828518312709660099148385613228480315949335163496232431017551129055734495761696825476666039344231904946709648043547424617537079999853814459618772978551701152398711705030449277204937182672210930407150298845523927042504294552509769215619347266220783114674346186024159013635283196641667121759623161744752253979746651870084037889839815013687719565728979123753166244347984071451864935322234564868562128951407057807963380487273046907822803036057257465886367003055740022286258444314875673295395645783577427119034831223013767671581032747341873975608870883943465731008872327168057499703063917317575846268042492023681431672765035868667026476944807558478571958094726411976474792079280013076174439348960298777211264842422405583137943830327604581305041801601196503537275387178518751125829284688415635425230772178239786818953567352722111767898953866803974759090284981646212377015331664857858392758090121022718181595397289241556792362142261571483466593606777819521801397048229773572210806812743268581662857704221096947638789939325856356924737529045032738352416459063531176029391577572940903153068440477775109034269932477702279933034291477572362558240917620009438930199428087878707915606974972463920076405787996783550165372752281533988799034813620517699499112999446856927651710505418109862490056474687960681433356007527746766275371688249609394194275421424024778881789922592628548887227232675843882799736797437913730364534464187747564645946575160680268777140647816087873708290666183925039346960823614391817197504361264914741239793597005544906719497548463742754327356550314742377446847308194363278058174138746166794614903983908302397764866955109967575453469221440611195164955788316824707636980793097969083215317349440798772034600488563085999363225425449450936447452472422618037368317584679865849799732600825433755710130674307978732171873168250426371176418268934620530501283519845638384821342203905269466930278618594520188439559057811511317990940066883801570020903649981933220526439795994078178248839560757606460156765790630733308792716747227276190159083006249273135670000201225857094252267928056169991009524079626405174545796809200178676400183569176802930498054443202352404717527851287721398301189000218244342903598315352952321251589586267640351430233704097072535044980152587838160806756397202536410608394053663834492390112877777532713404340213768044385892314545455291471425688699663258601808278585697199797003001734271098765141901620853730122053108451849842622748296440826648156371146855738956985794855494340678325098118581804281756975349149488820494202339083444315880162870534400168318975692865445294659286581959715934716862380497460946270355236584679814741417348589048303105304080379270654304019045824594509982415510678053335472934378342632350997861420344297149404714504018220511766175775644300383500877998920029943473486230012132075449373049456364932300959881299713914481533079454212512464583101148164003563175711845532077474491035835816663590682195274180470500219849919039845409286846643993804047953675744212309988357286026755231317439093778295487254852842600554114953463122859563705170141604784510470727428138818967381364236599732502327215288625689661431503899457229956138155579912503066795146215583624473879934187049451226191515728315729558598709579813606854913239282634207378791832476407247899897892501971346764221412348001887264429724038368637723389164894117473755066426252403806619852045979619129421918031443196914817451927429882224607979938839992019360109640589798392317251928525586082409783860365976514222505333709793917354321277382511944346007278142745153058780364176174227796454111441204006150685364224886226508050620308849018586319030175344538271287929684758440641076512442675477710787101708192631589301053878373034978857650568744369908334621488903715370814497427927593057478326549676485554016161996801670603159823464723968659507557377689937742201476052508132277357707880386024709148694663433631620969824883902554682275794122440431746558705320334411791468613613366926249431080612676006788483811411598939507416819410472409697555896368305109954759831315812154751353386289740793924984011388540430554634703507249418248750995611625154924917766654590335782126193506327311904227747235527303241221782771129105344659037974459303686154411502354825161255954938153897429597323729481632184561099610236401809462147763095299597235559829390150608255819677553613070907873853281376529844881420586624284483077388092706347116752124177062602159807807094983029657936747493023974521069392357605936767735331414450690485187607364167557185232824319674918811039862147764677521034339517440296542850380816296818024058200613867921341513528091614878782253128393563401535118507262394833035162052316922732327348567337851631317246549634760482000443482474504424861300848799323834649998341329091050405733445283023629658243444655311520145394342704483736256161615564766705650149478282036448488085991814054309031559772699598924147225275228297865043342421164275614876411839530529901177062961707778235305906835236858909529149431633534354903052003263991525437697616356991413250530085017161700804576919906703286597309347721918809286813660977615353411633009582839132381524340100013815397587609366759208898868254759823380283674899090283252182795678958089731146962444369512010698743547530210212974691010438137610080792319882717396015035955937440261566407065090296874263911028827528526895488950660227613046497942760782090265833457457723158001486595274827215755434165126543310639714724450659297807752077521343275929087218046607912683771846792098695610472612434227998791092855537319002052612676212081533002392768681094421143201675171395273138766947845499682689806679203075025898067245054718104997753664671615816525640911754773838105518617267590514227223004922538210229971054779583385572243494531263606978689348110474221194398414087876588329850391270840813241061775549637523488807085093026160399933866840537732989060706003590536781375063711061048847891524958781410181056436130798796916005979368299302744013611405692978651792971178656361401106988843652072613634675971682746843595431513236093879845520082549074910241297659778826155634062800617697807609515620610602333205738956865304645836964586211857280206040312976840266347987336890325185524426419907388576955367534973585633224297982778646452962413708127021458584612081464660974829932311182661218044841554634758936801237674390712794545127072099113093390304002747251643130530610319598798160665058424578529995159291223509585397853221193749803948257570498158703583068959222871123462761566538772134638565416051234311984296383354222398338631374015582116382820132144118807722352341108748935337100048115851934632984042307401677900908557956005992637579159448419976082364865306823603358764276876344082161767665897479965993180070698514144046191936406235157188270235541787386079297864521087191277664947101813459851743928368000548533251689576860542731341589822707005527920945217653511195284993674142507171175714389803989991212950932501286646549332031072757816349277544805313434410559377710621250470889228160830280097625385985276922495286654185908411217216834740030890309215705471977957888650609929605763606906693805838939586505254132940134330151422817793713349633657443672966630802060114236693454600736108069747046099668073365341044984702882429425767034050688916704501982309865469891932321152733789615635198393998929448784633287930939386214896478456863062254727520077331405210618852895982995828885692937240153581777583172319646772755006027946402608180074031591519996415056180888081530031493625880008334806224187854732692326049473669548047791221608233958777598779502506025128685121032369821522524888513823466248287022084832595374025920986309343771433156690994013368426957450757852536577794823025731686279738530957782333921900807172649064594971149910155323231935732802746546693933328415773334020558079753778533725131997005167253969013286117142381581332543539314529818897075677516466684333884744298940732773775654820776642869517333294024408180611778610791825063422703041015800101862666829868189043023809172694078947477388878942786004433457719208952863195613372328760997954949896719219466230365795829442081819363823933711736436866118348674248276433498065338588356317459529502653074873030685167138716948962374052882550104488005475421907466481123403558915606628023631001868737886057614018166728441984263847369148893635882165134492077792348336242298605541280349996456868568934463185744237439130287811928131402606400096860796418210023279886857091505374592305324845026397587441607783036101715931536133561891388825277860368835189252617610516307595433396968158182920566913597602391987393196899290158598623459198525539004847408257127025984517631221150455825189459216827388248049092149285602790168821989218284005683472409711313336523133925439859819551755917569260105349130907432166705684233734279969125829236046355788844833594438765292528317906797777149215383721153560360953660567335177050334334763876413378002610091310265154908590974058330040962353495670523591961210849886055730719273860274133834668229431965051826554144683809206747405661432261992330809367513323047738741004202761045080990669814512307290822480997909320677454245941538579182126486221548597684475561101143638659122053397577558580708885692483315784629268543075309973063122388537930703741066845848508794997614407249721014798820613399144237605604800472159479673234931489354829111189623981461672067666570239821756856706349025305915459602385934313120256337292371632417423195530891380850215300873487976099117280000746070805311691905093237836720398669167836154074336825233867417372740137142673499039025849957646471925759070224510247283599906012935366247683485750161091545514624664314053584905764385075695880300703065194828100206770612312454308144912690262753206898861680697161977221341761202610546618017185320148802147871392433895379055847217757677624648314348023280845831303573832644431879643833289773323168826950945313559759432931836981061874250000956498101980287482905209695325569747170486903328532658036766821770004969047791521901545408720288654540845944369487414924151285060608772509321329947834758422468456665695777819936232196382759948053959379796679401774843741780604496603652486897530125607611585770860705883854112363241344581945227912836324036571827471895416458182889681525695594280498774230426284596398180683441257201756996932599860470954718083970453396223652041992151847177710426119985935704624477288785210307909279453093359775745889799361475948593498704880347268492560294655082205012509442228954169244401625665923135014631241371111976902391019403142038616288183659534985889047722049835622390962176155352458608788777906839145579585291756824379339237473364313366989424545612567334501990629635110371318561136940874482259746044477101261761465318723272694120479502602680478270891508145658531685885360943841473512124474994328063654924940906963885194342650257023353005976072729736682038120733240063850833427892541382050363146785530881040709683158868736251858621429029533658356695792898879244441733022371208177581594783048669877563069627912387744991980038023421344964195530296510527533638887697723941108693901649347187562775009171563833176731704103950430799071066810105455290728031766154018618242827558135923298432329712101865123463381328965753104877663984545668349802614851360585679622315170464480937980236010802216490234968687380796175497808065131359271335370725096131883949664618539122345614227477120533664933232547186007322902195201673503549159977388081277232640138605623090464255516522822905237311839239821015318880133574315456130928812020242847953716564539842212290756116795398319072300248923276590270879255664828432750821777341822074187603870362668041074142433751532553988125391463345709499892799438802288504289089249800097771266764240878572120497119278253967356925861635392135578277567247463220832847500802965346435380134698914053567592137524593184582269999265841903328132227563872801291736926110535273522351608027146591805406621187931112222703901975779678624362330320795335306989584633266937455014944533768587805393106642244014837115842110223172971667192556965396848269106869942138234460012717886865039107464831515869762712860395240680816392547696998889505691766644962082351814944437871136845277809420690920580294104913119108460800546993272363589299292441550789185907860714771554859595101182603731227722907711548763449558890088629661056863361416832597271224113128118947785793182151915338315631801850428243688222314515696482261349585355322646268892064688953631091592263878376008355647195514799205256790993410880200082499515042834062848035542398823242957662203817726377747229324978727336698055750059409500888575558056764220696961827701157486245637061110501823536769573352165645790640735885547865787615628314082278467916029012035573441551274889807755514442447087847885662990121046576232756596822909564573159905604184404089598886378186372140390069303449128824525686197621707181059029791775183121618043411531732951387200596357141891275726914123405944389953073061506449489664340216612741001563122620217729611366350085967897905114588758053222168171309153457207557613501233503912388901941408538006755303874625923667887040825978046351554417543786484177014589587876973666954876107060827553307490579023909476975732715745598696161882842526899705374848792695530769678395543250720752623175714633096747538432862948382624192230839077062092486480443937092530230719743764489478574484575521225955577175018074185247869881449931897639593127933926449063971696125161616576620406253905882213970822468500680546050184537663975881735796916594147118970477122523428986556708372325165320727480635338556197728708688149188210927176628045274076754044061713018285246758771063353535079867817634948899456825597970530512249419678469772039498830884087543527016883322707899051294693436517396106541508404705024457963502301326047792577246365345243851632199393428137340237281248835618569575208741544565703218144104459775900396937551012974600501788264078646718969697201159784877731568671545803578989523669473793395841962219660601276449316448340343753022709024829522930598729958283732483254546004481245712817643059866101418874979279000755457628707235425182273330829791611715399867562355469543242081454440002768163172749568652551863937845560556559712658544236316888955805930878204064751580879396175952284221915617480028379822042446459660294451584125840891037431478818165217129666308263769714860280466008662303632369941529650430236754706613415680874731531121193903396394163078549813337126549261797303499837314666407025043392118363732533651896965507220003930585240213161096183311371917334468622830349412947499044656748724912521320228777072438994644281549297905561306567451910792287436446160899080641608719961781592246847614583849173886215975237604000777854536686281810036314103491009670755143124558643933195448760121708469982618363831221363290709526254283341433209500309127889103681133401981189506217416769039270758322548243050250402546920641343956148195008407192436979976480128545139481722627150184272793562856867516463543049664001670819680078899702720961726837391353945201386158730411216738770564697537897391422716641826878985899529852657035963582029446826922469686232275253657161250092303248958425689298541996053401927730220905641027504198822596685926157337386679417476555714219093424474202348749204032382898297564838541063047422313441977003132975296887432332473594022041379706446366124942092647926517616400136367681137683149445868867089611363144065382308684489005650014538860987167574852221115711556745373349861838824907649786142638590990609602659043865112391198241908628772144738972908753609792212565804302342841392489888844202269013798360728774712564263873209824403757934799881454581788131457213533333427216840603606376757892025738092448541592302460541068682474288215274359997602297651893279022404026323611084479928476273917406626675055645086174473431734266369119031286467842407481450166773570317237667089289003983808444995644255475031068287349268840991203767222355301331433806460164232110050708977709197694157320235576622820925720194853418756082805089374459810281959309052758212129036797298936552883497864646210191647083434493797111129661498494997749449655958911091578100733327979053567494411482957236172678188460073334312752458572236812522020696389640784463064427177912424058328295764637882440632072342542132422388455577984638290257058828676026435601396163026104038537064261875914061362313881590928483184287032726429551272053067671626939659140680619197497970397254122917190694324332909911909168174419503146584046816791296503508169165280899847458384435329036161497183607218464935658871661189174314535696427900802967296415587093577432803164344630378093028780604395482822288301119542607595706433329448558314344822319705411164767579280378971109939458263806807928370723189612805219297164371713381763506264515315719743826308266996546082965450004471325902288321099426215120526932081025145964292731384052098833673709962399060781482652584090505895313291028408768975306289690288280002361644327750448921678047127538666140929760715396176871143581145887879101203277835457877586168174887225379037785232906779109105939308245559160945269848985620439920891432768648545581461402260262367273243939572245192425488162589600151893528011312313935681951023329445180103580647594395576984723512943135805494221136612932450148773102959232389659301045752820704560490813560515043898021343224908228624804695274915722369308469326889375149452179585980510069563231676459802549528539424525056451158288016240309006128681712829509263546477136559796577826815828483646515217182967884206268618263185675560831663042567460555963175503573283330587751696222389342226075951955543278946055452401193196107512656130365484814632255793025821083232651311238975750190097016444599060478020421944755833665883172368024374984510470302147192720524300735235978976408271416617144260225308665105762996487269055126250487953331375826391891180322534705856050859202369955326523095923102454433511846895849750118059018360966954200366635561936740192483117146363900352977556244516654069927120784772472683237615140069188034864631055723050428147353659993177516266557428582058713006110287980711486254286987129672317069458275828702128908113857502488870182614861826727201610128435247364076360739095032685503557027249743973836185021057192886580202934428973516280704457688406658865028347935975921339224922821914592373947523289811808885588552437611778636102991183115780432627437508458149427777601268167564483557468281961679888858587353248218386690869140280021585764345647700681006904586244468394356744929133409080517179976642529849839557839456132065523835933624876370368079105517004387965559720156938033247083392962913503995880759091599061644689914890912869599279744212584623752617781588941160777297551611213128067485180886154721841751564410086585634306739889322782530113035250267093994363345746034849441789879627187520739204813713979118468209687577237503787157007983248178788569908369976717237889721956421734833102983092109904608152040626869530782801551885926238773568141645600562543734302218283814366253000514317831685700602239076494107282472247666549534844196116741509747131067991330518617631227982930764909949866288071483534370833259577753459826755689321833429586201564877357620939489395240381877795154088972767473577962262324736123291535514726510488005196824409673513651350782307715807793172706013599087682696912817993839847125337351229254182294441639240368158574334468578690282926811312824081089304396773110179960692282091862331525862210991346901834053736423985487677592143460482775831005672050489625700881020537349772277837043526324011845223072841767105981724739035874822094347638895345043947408754142821243823139631322893277599667257192409672066644430803615877435923070505507987564185726542580285861506038909426726584819616207811237335796397987294929230838673939393428633405542159542860002546844849129637004931036593101501924930554091391639358055330910047026569034917365553150017085255302977388155886551118793709733169887119761494567253306546915341641184882101105057620166186166789888489427500234439961511450223896291015875361768850384051962910434797655959338650578915172899592658794942682044972816503913865118575415679475388342765875603034479548157124329203918790459533385609454171507928904902226652956913178289854185645204494488807066576767243645179757028657096345167855019478645298569121916059951888992686869653684646661823261068778401387945995297599235947515351621148825896214699494763966717384546894311305624765892639773470071831992630551996617471672625210486917912267306451946826351667357005260052196189382902347243765558419630716467892131530852588609430607866657053959712122082445245238179972155769595409046853657038053391679000607246060576606801262874044802689681031155173228797799333920922519008519616348500089919557875817217459801744360710794491022527434597612043614401863276792977487272189694224756770348424277028562107508753519036054864265827885789148314410372008773998446359067926031074408803388435677413398558078860104687397942209660602895228747555747761709241733954976484939974255662665949740372986792211577279804698927421088235376961991506106046038869073889266737621685736471366229987768567036599502383351428868735168305569747888122082703182400263297361507290661860202683805203585156288042277170126435293953764080125547792651888870319779339618010612128263500177880115798809752985426363882298050659023424507712768924160417020482101558612641158256037105246401211966829598569771588022368369341274914274319816315324641240472355873435139045908202225831861669721281611554971995725837983579029735010744184847475406744810601447791201195563068915361900776723360867772512236253975592325168506046046960459606924709072179316836795754050544164222771231721890932136133752477581351418927380627508492753530658326443400268681273702788745547596346935729893047352744985688526252845168777486423855728406583987564258002100014063276296849566153629214944780043113381425531484910748577522307025559375444974229573296470386950426211362242020001910966179824136157967506518514716304146784683488366314838205871402989163086342112941893275978600052715461816227698763897711506660735787733801497827572458277546354633990895207485038223403266790070552131185860309956888157642090546136480672681896535233672587017544702356476122583302204867494254267276571647174204333330724315100216416858277947676142911800416122844232040322083498015911286521818736038990997553740585929588641978001051336014319503844502644361453707209942438437562513093858780398873831719121971215562675318188072419909243325091578139321973075470923482213795573878111722518383465502540096853673000418305226237558710742575561983424997451113253516057690321020931553044867918745619327032993669177483928295418653219907310294671518315077539088905539059763725880427359888226443860593785368330367485210498179162061216908030127394348009428404522632782638982272954553560119618095713740660634483541237932112264687954645897055137183879978966932671047548482609587137482934011489113477692131557907191540824631988166280956991701521248971894224148611394413268466104726818997493779659180591178888227431750239386933139109646685746951223076103005790348596107135416323164102891281242114794868338996241264693284317788859348371665131619267041739107663167205299391993149193468338372883810065033779620470446996245829170842116598847254421946708087559264782025792107222565928657469619642214225315971975594328904434859450819559607322321883073419240650116452581981714119325010536546567362400309721056546662041286251776504984232183620924604454597122700621640681353685484770906954850289137274757428771140758252038511515235565130685027474087163379761749438178980740547874522356798861802945938138931616757700632467471230135100226932219342441482614431505592454821546752076517662475468673092583204888773748879459822343910293908774619288262133033415783562957379934316677004550353439761946183473245405068636819083734199465122655175341065163202918758861089065899959366343728907392156801184683912246698117973585848235338351063548190581035295062301950838862027473762375728219059160573264046931852096916789015374797572790991104669272007867860645818072944064436138698395017370740499208905905307799434488973182735377866270870649696165533325350559441980428471860822951549858344554904589025334903621302463517172257251326047352169373736516242404006953584350748240311129708980437346810688398556500717872620726066376943502786152077576179044888061490630340431179684013337972801714880324363723093726785260703783346526890055938875170470505615844672859014446727980813636986394968190451424366443531938442996770103013166695868259109980075449525738193787977429452697250331458873822362230158401452664129750509820388360284092413277791338165009200600410180799755431825175807372990721048259939636139161787448799503803746702441224288541972881615502098672613489474864219016512140028906325143115997491570957388169536479127347933075193385534568640829188763048290481292199818790275379561514990852144255824532143400157388346507539140129674135146746622833194193229783225715568670609069010288731699028814756715744053670244359954774007271137886401777401451001262184134770140332903324379487539200912804167139565499782866278357587981114693303647014685160546088260991492507613411599717325015194161009593719814539574170439019386065916313481388571022952415598540972309282762224634070116993247880081583043447958772004356987602257465455364791435197906155477188416735877636469214387964106014983341190430110753222741997801129890998861664268494459951588508802308433414944000669761063212059853782579572377857425474501857168937954483693694272271183260565006508427457037337760616379237823215711787841834498719828257542230587368011236961339323116688595489198524193640216535372999097412270658908980182191566644137307499543164616757421652599137280475542752525159021997729407329959646271895155410027600648046786946690243089157629897820748687087092708871374080269313003119542911555744756911049035900939761344548114640146544910718765962527251841084480763726247152872239945754312435740935669787283879497900437793768633751715767575078889080441033126852931519553410466674051934798407118770023156499972987211453403666861819111079075808557040514851966507689306815272223828858645463298245344643601700910695200645887198238615365072083792144540485411288613384547055316412615163973494936352992531898797042514710788027734367640468760137295683643975286331660831402317712751306936958311131534538565872184528931673173435273453978419288489913212807357514467518530181321749408429122907114499534687720520374436358823139745294439516642640197012516681627581099295082276885444964432901431200521497598464761316621578954358645444172191709246939996254962213016447214828995850244069556878106212666279769535158375618134432329704975377054134615355055509866779324996196434548930687002097873249728014586439306562213263779875164135807980688076081523569192491431776641617701154524687748878460676351748267880156182538205815987032815112762714190717582872289491732990199462284633136238388996574735553050688112529774726270137034754388927999161598880461751688489221814868051532323632319690374232184993126862288075521847481815356598764376920670952456708798771289486587210596071419292136969891938006929305148328035526234333407539806684226702180487739203759578102243641059362474946909836845458179160691849273208282601397052326423123524043386247554663949248225894340036676981039609364311613067478775807655277758507956051209979051949218999654890440072968133266897437995407614644037626875477763298287743556672897293281623624238124085062668907886560895996913017823450582895161670621612669476232686166687209891755153801258729292292297384172227258695849147116073425584743504733943203221308894263644290900114286413763851786679356828730973027448756771668491344523212615727878555549738684698078233575370362951219051888652546458566883250438991208023146356006611453274652372804541931482516567855695747774883646862513358964497721722567560550308078081750034098854590641040682796612009044083813984455999672408473174792709459815461683120272878822316438188327956848566448231563874132422886078234854940081271813176111713154901902279218766975676738603362551078424233071348951015238255625042852871484331572077304885345592899530629227689331609824384165039245799112925724972844025444087887975825451993373902848293405529183569757192368039220431394204971029216132072944225120334548669987692399769754864181398524249871771318948387695590920364344891610833734695193519290258402261151161239699711760261656005807545782471935618491091981454426896290734642992517397743094576647572180596547744637050098189407128115292458019692987530097140599720981016450800036359970805260916934430672216446364446541601925251894178769533033704611089828210996509411377707894456378132064336245610985699375136883049965166259672495354527717211022001219868137865163577890754504595366232793423484994433838515530778642481707025084056837496268666397814426077420363663413851346938911250766419220645349691541461136978993478168830237178027139557801089424506197907575421139423440419307558947167928464168531665252125476639137884873051001931731195537219669542614938094158468533497815439568433264609053993160153194111921692483350317796140363344149434305556042188261282193172641278524690846861935607639358447257902953472108024106596254675217770546724798463906313495216208314895983348061378677605111330999476747306293841669937313878762049962158983681255770118090340824997518950865786901632523683906001124901227642236384612839492449873374769947008483508226644201304684700603906088692280358669647846707800954261713345692684118394531450884854844539738572243593750492325488364682476605088605112088805126420742960658164742461667680740288657293493566920536391492876181826893516695999798431351092662652267551885718243391441544065214317875705521162994123225532364586205917906516854835021720135980788942274732583538321491630112590413974206548608366575720687327924650030897745045600080997646114097494784581261209326670405631864387238418666863659903071746604518819201737606247475743993835375542887709157224107659047793209338320222831391344914862903741770699388645174027036339067170357174201780713246937739848519831314555578618637096285604783112554451928992344586198611210440135743812623876041889927536019391634051839366549238979153473069456932419757394126533955485361504801254016139459193229723209596539377601065298434003018648115480644657021601603013636494138665729387571145187761387464322258768336131662933183744083158148477706351247151134425253096280105621413293580435671776741772659275214833293919838964228650152437766710565935640012389925069880737611952293736564010265698939495389483837171767448970934477607580413149969261361621118956707382990066649970938951090888667018858287149441879762675114901077273632232831641749134502858393657163106407263222950476334667916121655114603009860234041532822583969920376927276364153567152088818236892085315970456496563182465676517752878245715498529631036033557279347581042429657868891538935873088947945932383783462920162941653594079847589332898462215751563069055354634549127492576099944749178814379403505263760118633698468266410897408220219209143704721742165867849664320506583465953855834390068880934749948269029082324369404832653779214177282807678527069597357782496976150794054796589173493829675359839047209330133223396537900300248669503064932161098730313221799188579746584897134896793094662749119704505322715635006051408574371852645479431562866011241690326979253151152257190118168901193781143003668527199642875830315452590038156759497232907396186199736951256743361426809267144326915202506744503281360895072301565877795548560619565622528302562743432591624547640200803765306577637409290125146011198175130621155910511798926372263209953227320608778931251485555266239856621290955778531870158427141519386157663215896622241957459393049016716887994877768993572097391413846635014831183117337415110163947383799483440204700140264621864850033370312255012580467926844511442346687844835059821522385012286008998651833587580580976731755610508497279161542454235349736870866832317589291430018010174223071673343979564981919918948190417276458411518530400189258445175696845159068229392790225182182162569061355504245696688426060647185973190014785544880521719415709406510450612377011827064856002610605656922241550774875292879341444336278631511275486206775564528801287580900878853164729223188212444135982246464110725975184392398558297840889729391039667683280265717324176888389985642535851594343058442995746788040427245456732911177992526707748585784821169361424356462352711723535823921287515244795491139333882587579955663508578918592035212644881272053510879922224022649144431848637069420308312276383632275066306635388515998514545839884070798496221335926540797308572456813535491250596600029544246283753187820017525501050516890337262728465985125517226501910285040000387485155241346175899428483453147097528731064101947440678967312663538642243091092241275210737120973997794762916242966388391004493892483912258634564813985807603532435045974894035630056819614805641992355871919416701863697867744107764922257334730127396307855092005599705680520294858423568470500192240223695325991933742369521285775635807633575431649954598710735548394762205526105666126214556292991969147899316968512566109770868840237374513873359253635150396654118347903015129984654061242706985115799050774091010655717788065454634903566747402525611043803599329231481231372205111743346041575242107845444747377043026945423193217213875405995768342855265093799056113933374595890039033558983575760849989239574350018058327035667486819258749254131348316307058754206605723156492442200230113833068774847439205703201056666045267788518594347072748136122345754232628923207372029750520166309670426361676452070205417273281633168672576410342507387565010040155638835119324441802487232450554236836577537518603597750298328675184729503040553191159908325905617209494591705579389711430473025638366161535958403722343715432799787007837309629974606107041800597223129364139060365745360831683937472615975706300104602485175423227549068727864527545865573181707619384534624944519949453394010815236539424282800353990139314100347063130166333793735880141791557501372533707940866696642658518704929256013934827459390031692566045572919897583934182107933518902319180518411052846109082848589020083227245144513676337333367340981792397500817081882893448043594381399744482742154475977936499125682039350447276262723583722211600712801369384007457517760666251212678785550908601231378027262416833714280259220979440713675668858845590842296452523631970049215446577718316262813497857508188012485480358512107435870561081326430991852896936334715327853916252441693440286941793613465349124699244418715926697272146608579221143002368948277247610296842393967755730625971934014683610443783618457272704145311097916720117431894235180864111959211810064104146069374541825054636938263774703699913401047036384291096619684200882890539456880031090349696274595430494171092958769123855051387277335175270825007901108052063502782932399714441247936661577862172468509452023644949255761408265093334191419642895341173198829717243723126424036631301140420218764791479202438419344826424404482444751541330960260903258584077435858182334764656848071672600157009065397828502559113028060007376838148874722348815171493758054339830760364389838122109411964429312730612944061819331630246882121552756596497429066780134297329740289394283096964493360695306787549852646121374492894353953099574200352543811282860417398813174886441837247715647494840062091468263546272866081225030832950549755726176833926663345636402198645589012861835597256364461718051882139999753714907146960838081396945262526919806236500328674394646420825344655274009450428794717463063799015905777842917737421848373838632191825262200753606324492615172091408319085384850908277647395422817501264632640481603597934900470336657566970399269865768222771446665201923547483957964338027364961875359288532530755022798801706638391304710800808304621042324339313778261912394567511650127815199952166002196374162319414832511838341839454582811912221439307053636176841088965080881336597746088426521367189871874440758318410002591962991090990367330066770816907926368880395394855797033899161857111615730107393959694636956704760852450974856332518684806442234481420640655962050094184974399693161063601988051988642005968804544092194874521652576993550204539385374543358029843098773930926835834461881895919525510936513797459283581744067610317350689434402639096429417802676724475606966190020609948247406863018088245154647593736530152301285156757932557408712233738274818466076472344632788355247778207986310014185668148725231813248135629248677854313156188438648143160615691913398277019981561907589574458781532358184367578828543939849863964372140450078081870788642260342769623978688497302095920401476761319425767651321661984929314012985739033059990387343309639529065271667508961096236747391606468795832236980859666899647216285085143929823201494956636907059645931855157762603789963308408226224940918574708922500872506215938293998140706796356389345513337801639355615775277307002744033304810533568660779388125013678904184552528391774777163629374156431457496510789254748846781916163009787212005114543386147381119829466413138567074229358842337031423556624420757439922333285025505076183794774385470365545842202231009881989374450315169314290685924343807860019917780846372594406462216256863804991203096418509081354358182185828929151548850613632865300000737651282220311772333602025638566104144866436944316775602209253086275950014930167893330679206793996724919690822420553011186981759359251028465790739913392407139344441954580238569185872612518334848311492474009609063239522643426906553024832816479878510702560491340139160768670759051374211037726539004407748360241889124541158501319483907521012406121348715268776144141958697441969188482340317251907193607846147601751009462578999049483755850063673717807300422893256624036876282239389749877631885585808284574197180982930880556903670007882384714986463032877566153084686023060086754764944738823274657546074062526193584891685744953454912812582716958623508816275138881500195322682479158720898597785661853010530820397621770437761753221784879601773084052763519965562195091874516387509254979940049285630254752101550556676315479251567793858351902384778262644784461972452763182889506531551813604162624492593498011509102610633423023177812329330150910437004178790122008006264567336124221581692446401602781641099741271861682162779048703161973977848346935708053339082117380909734381179498997687168741352372614717166710474051024423969506757925979178051527619313306691311631952369477658373763024420999814243592807980844134616395797740658727466274801675481615365756218781727657697122887404618756134446498613811549589615031717301661020505031749472165356781959727986376298199884215903280779328614171373750505102361734963827397042065598337517408499065178860740685810249186247927862258990153279728588809324532163947846037413077771465278438878752829402305413096351341131566426145543610460044501734919811250064399895047960210075481705009257906082410229447896380727808412954900810070283833687986569059136221360710523399364270094722456951489971036883394845955187192293946559070320599298828150978421167501449001383590666044592830520245802642665076839858779700135607675990524560543518937865749417910472689027619211534696190774714206750470944723499899253857315904118553934919568317573507641957355984709652710965907215686873961079143250140561190184648423180520740106207164038091981535730871319682086688863281757014714923400699481627625160008770454365145336034403834693037137379544398075620311243013320902975218219668108076654763928806144391141396816000967293225628729939350558687370220400898168475245842238794437600339089451197241176441953152916180496123348559772701890897657278035009160394509660384477586208085098813863427653458054223351307577343085871281612835292162911051433598371523623898186169855830673359426533799462039981299658408947222451578680067129552813324657179304630476330699749891246510650856736883975116508955015954520506228053322981083142848365151479046860234426396088705510275562748666620383919406419634977924666097037229157498267430913193449800540047546627884620823597903625052692596260627390351593029549055030257332413970917215120408302149867665926843445844288560067547598071153875817292280455765413042369416909754088087589329818649203052052976558955277690540373676861307597143504340798760280171428642633386951072413786082513443951978685182133847336345624565521543312570006512020887563435075321146794662665075480163765643013203710535753810551048489521145242180021837098873909740438213444243370429848819994496459794841869504559106499207468437417957271654797562689654266993957628573639721639130205373644444234423304343275709568729946265838400260451852836379992126873718467337257410822103142067621942068228884475561516372608225654139959994619719950691632145738236269628269938958420970664198422451174020188033159095982964542026835838363949098827993791645637663714962153055910052350901673585219023693957422505132465488385453790133821578768636123843210320254497139423470864513281281167737474185874206630932264209707038716413937788092873403903064252084538318603238634354894803953478053137347371101108466990926090085379556700675245511544181435349186619519402371326622420824234770918570142383997721152592921236933570568899690370341168381907921409754180405638690919723455491400158592638778217772200229083105187315413021273444555325974177333166770051400496600988150951548202557440852810866916053871335864649294026066825109797230252185607412244577083918473772675305904941433735894381456837431649435347304225536665319561985144154421903727384407968268556485514374254567271962449749756609116541776641877757863012421291506364279040385199669972780940817173844932239357635286716023344463377549399640426634236962854477443551097686200985225298947839411586937747310287311303627330930946146426464566482421451733141691469657633391278673877562826853149992691932627311366505606097894817462576592973998520122018244860856157862398022330701483929872987723849358970177936574034978543946437194501890958815571561914426254892433631252738275234910622787648753127413247580294714656121823381669273084777889751469136899056704730886371006768889609950136214808423953818429937640941924261128582819949102542537830911952698849216040936311535116500688023336767544010604572636089032589234768782176198075462503624794675855285878983583371563611682774772090754106982536913425410659522442615009698812691549487792266031848358161341760923274249591554823023516314900958549204237287404737126641847533120990528396915690100408349484664045600145341796455182463846737384641540707280024548003952143707136033140422418736279204187229050770283295940459961436542275715261967228029558143000672782128870698450329010729597104966372010326489487383716394635058630409688055356091115436955318846495667370745336645735180237842415565571907735916412138438021854272934162535713537241881559103325918272564914754927447692755897362160137844530409440582719292044992517426969885116604771354676473036118720948311135278712768808542499714163760885368084869077939406107122441386713499699271369676297523523693506994987941411414503645041734894957371208143534872369005855827773841401207482093721528734627409387863293956768195073378646573719946565637767272743339806815456113723795457771045391106454266306436368698931861686292199236890712495773492694320465611870366225905288070237732467018154541448205709016806370500443628075546661697041576065845586393339747010593547236066284027157957392824457797437473683115922441801816991878553459040216449747296589996192999737523715010152522770983759349463229117873810969652400298958978911152833675395123341629812484489321077583358416854234357413742667701682581583648311561264610791916018001391379836466693665409620704123621351107655996460350719961072182710283624740181711105911152739237015837949447916613286470350636966035419739899298854770318089659779484824456131227807491653834200525361117639776146355450762574309935796052805692830974774707452486857372532846905185887938410041809323061901038676746692174114474402269142369884443554595477429320340359207732178395155724396100498412208971253335119524751561923001298144597274926337527139883125089680974095233637680149100619614318954280548709547448115171220062651737900055561859356723135771205260340229220978101109037869813728465718979725578168349138374786660097537598371142642814491590843474767297078687070786920339818402673494772499992322800313847340943015414826060927158663054871071501949290590738392103944846100209961976500681147700513226573104410360531442543111985980380675667663827539231286269713461718125424453188617729968891964032991021192704558543411799822854394940491902141377592281198101107665394945007085078474148083152098417439288163736595305846075596038498895883606812821214730773987749396549968609230202142742266305756986016813347325911884537082305269532398923657367959768316894931264332413352320430350510591731792518943024359397900199515015907112313619523619142332371286750815498069579093675436007852715736325622142825901628260169359928418431935491724433163276078176985604913570283482360819499143352424176903448403072306773080410870342933128879476577200734271528137777443415367841837385292167068347089506995040418503460160880439933035784556987100413640040328176974870315635067731638424728190728298530289853792861675617916572523403235626924955472836650386683899218350726949084618627596478995938355346326898555886333414080925068648413284783848337279022936870604595123123582355052114760614468943623283610080764208219443342711076685851217045682841470635082635008849872596583598317484875670903466088701648558079307860248362134103874888500362512686691668896786032974725287893225006394626535005645615259143524500612918697533054120607160388595173716969638586965865805289092388643400193300269076208986752798793701751938070460342232735573129473877897864536367238758967364891020550319103424216439346705925702093590971578840638343917799402226211675136062510975269742752597267139244817292821109684778976443169995667439056191327605272532053444042916091936731886153279876786267571096818687568461774336751489168242659761149937604703157401913346168682886425485465161320784261443470363081713769632657603940870506465725221694228808456316157123028236815385444877230876082765137635272474406661767932734565724383690647271301461541826862535344609670580940764361467212282104875915615383145444458801373273003017059790674665618379617413730876260003560431006275296096543512199254736413056778412475605658036946622001718248885524760893545176352152982973676624031235405047263449081589132753794885113222864494571299140224759661448301781115854966857899937635353844736058293937046577561315821463526211110948803959747970247831586008265351730600311428093862953282316230314119035717270548198618549446128517211532999418251127013504343819764534098026817993961823063638590120982006671313794527722017872458585783729805874727379276420991221263249765594112247226753221101372298345191140997523674601836146448133867452142428634726059375958796018624214212772020261307901559268132348950042362307836630273917521183752794686761978029014174206141835905929882544657859413488041442721237141629537841260286917687261574659793867063953976358626617607946396681502223107022376663292663150727987994859014134191505492166599485045367361411702757744734062462317578021570895901887494569830962015684099704875124230983211215815218147628987469317994643887707236570344402918749597602083563120005398980057073579024148149117368964377086216285024806260073252461920222651311063170599310651969573471806981164432540080555269026502059661464321927666515357698900137185122574267018999921458942622171775211966225293097343565196257923055939466367255616213451568475102544554995053283358661177610400155993731405765709531272064419487609780985563538140231279146284618203263070700269947023075052941054088330723749383803425049480563239148240979437797489520883248339845988021310714928975969023206146098103338328159863816328288877957812964055088204625496825613464869716348700274392046412775682845598358709895143741736809149095047425711055393110790631753722833211865805321085728091265899718911057379433158711059898131887854992902089915010217706694911977237697265163970175887930947489928867041550413872571760500593327090245538400834180829486513759309732110025012682529556356524875064638535572742471807722516549370150435057234754977907459651823515730956753351631876928602504204386101331015737489785416955851274717156575382436232143121974952567635220899450905980338802166762358051699111309921310239913445652569883001632277395808114639688453036267126951125657850991831307153103810089901105252483460708482186405984764570630559856857058821291296881879797812667046262380751487441439606405074737612396359020680181878613516170576293564091847276312703268020445793121092579494968699466215027812269729685249535409694931001395360460152921849769166136119786328134647195281358160082682511208797445672132112511782985768220086643895809625344796623947272512791961056058578371349966775761574302163614124398648303618237325831902882553023085678436253155991135644326674741045563240759007718982597621724975606095511893305254245883587438626066943548501412077048627790579567502774733127249971394797122936080341267804220483379489113757332651092291203834752884294424296743988043757381006711527918329098479149391804960075794041963832415839521316417813631935701016076011862627828016251971088025418881668957960297711470577077011713570424908629813224933239182292923220694403113713341471047635189192229454468283502066813334118114263473051147753717689178846668868999307346743724640275856490598436146118211686118721172073892330463183229915692905281304541351951770116618161332177426257168399647912377145185593178010295651219365624240475901124628555347320881909331439299702207272097617336912511629015541487680164323780945469184223163430554758074942885718099949064858976093002978901665842349051008988523016915141945767209290888822547604497707117436929102816267794644757716370355680615246807245820484818078868836574162138628699262039138126782975002580529101678922027429813083283563282045206181545413169407077624976035761002390507772900174430352586225823612026276646712166142578836608048671386545639683081581510620508088715707909216484385943535827689903602807719945332432180302327281038401471083816504072110727201720137631115376607461547980573807302145183779720552032368298890885333680067152582812514626383162311616149908750830641949377082571671525234708805693994097539673206185596049411664797395042148406841265086417184586347650377411156951649992417449006496410839154044827131464521702270868127264673086431377297455600468547731842293566702216634407896646315908778846050603348385684762560946717477817196672065527317502270152283202134346584097992021264094940316957444691780179256532004808154357562748482048312466551877555896281533130312734791244995231628672424323061566107909335715928189972937015384372890159777821281298353149822202935065793965438391786221457605287313468704564121903184478506666160474952017641950774934181005193916641806050429755609579540940725420742333736393553372602428931443551583025194693552662343239183737999406158129493199448261403922024594010646436350199594613541093496951345031379209203723747800710117044301044441607617200742328045564122700418209549428052493754383864885498137026887375421884785712193967721528749384949313403183314299990356907403343319637342446242006236770027972467923423871527845676836724806415701597385921939820391640649943196720921434054167212485117587805661039649217537389373658784366583437742601572897839342800873979309298682149418860521210666847680424892117728849937688120149048945431720703058877200019498508271230824653725671493255189565724394526636203633256361538912352585439929357688084911948838553982635733879147485125722785836414504350563002791885642377642630673209982967438075795967688590904905542435581412667938372491208456475784887739306601765170127578591316152352573637832136017353752938121489039664998740229673314835344130263486830377181609622260929882989814080352463772585172133842959568616908528049769404380488275219243768011542514651309586456446048280970663919936267820003216441789707717487673036048806009055782756404082458978645455320230516843240198632714357411355667123462281715569852062944907420985787933624868661285960068645419456405061939040879044759757977093135344694858726985169918848976116198380788315259569403571686975285307444183739051439897108784011516928852954483432656333699260713638637998903622448104478757704710496755683400835906402113485065177968597089412574612524597170960168535133703247666098451493436046222663841172438857673543231994954689568842234415541185046788279575039848413558985242556156693619087180537464770266880446535260045766673725173669972410758937694219804334806119483993511650010446518773403124966210983751314900385912937223052279195355628626644184059020419802945592886346262443796326941894598188594682736104208318318344321595616172979427453312366195787237999514716189435112729385504339517449698520519887415289351527492111280588952835151632993441335440041053545566750965224621905334247881409050726468305000081105325232889500097307362447088195913928108678340795516370560028320698746135036446987463321457369048464186217412369463848826718387678077673010532566236748442515128683035324358124633628216398429381671980257848712917778237749826430641047354764010437965753583101009014634325686409265734808669098722658438274421334116651886303435742633005045416517839777509751694927568961580791705388529368973890130680620662644683577980837297807258532581595436914031416994694567017685376278740946479725851466677540914219919207764299636167000888880570685636608585529860972558280036261268048409834018569613169283953454437509124292753774853186899453557144572472048753919604030603746355586515033765799821450589846678922215260385141240187377019218149659842355668879905970173363442191430686306871585789927285426656720565348980234881249023529527690444497583106904486302131765581750566762270574864931238569672614240798815751059542958978850444465226825022156814916782109595263740601510877067671336688956797016577245709641656099398952031737247441432808751990433977048240278006739491676482969167452764143448662492649111574017730146112833458903192417685290411006936297421958491562629224981175737021051073802723681302682501492576100312643667450538330079814055378884790712996208725443968221227787992187971425465221584884224528736244847291438430038220914191041466063226561875976805461788613788087533657022442225375565313230672702717452112367889160411843228658686844640096996429534159362487957106487170792940563507131287334804672000615483129702217556752503000877364256231014888237906673978906904455359896406523492610698502225259449974151501274772086843627429729098038192497622841131921835644106765427783495904306653105811551699614366799226631308666286613115383439342518575815254152821530703088316199750876961260488835497196732862339390173223965050439161255323393280486414041167006138363218716536573547172319800927089813679840692442084226943766895424325126919983143541393594720070953456182157066346370917324671698832619592263900755619359810772477848911663753977238708495375419917908924693028175176154862639791966464868546561244291150074306570718243741241741560427699388810790409751488390669130321532218191347458881298118256104058811953795872064248305960176278265260854723029314266598756961440057124640503339398869500017673238976191854495723192588286253069420846077361973161947619723245430907826769839808535500279641222598921129948910473669327140397115020359196999689347003534801716521947331364168184660687074056843895061454258127659152120179965971525234591298510501428969249542114980767198471083653583680999863335661930998990324007875164580726540305040200314522975994134902514082023895752766421791875003377389069089038572950180378242471467642359054647655236216262045631584390269973911759872559579826155291620401874898933922956496891869897926360083988990461006184554739552546428299540640565479628164880697555561502499243736498404788857019615415937442197815860190077286323934587333412414400660865471011836500617444568526674734979101590031099268382484936676941489555141723213559463624879953739910278294003065356825331538344166139131423179943924656350720578903513952226795532859467332779211971024666972478723505994816116371554431982185950963028260779920000256931179943414601655234593473252736468675398920144722641545260230197655614295156335585568287875485456760920331383248342813448507397193630104385967436841541034199414026944440795200161622336832073221486847395110965322443481302743889050672132602314625185478407069400371145871414948840762377249574301205204778908661176251911253522754452664153162342059633785371933862096157334015953411559976854400121138692266816967523952750310309739845462742770728137904647517789419266442551691945902045119044058493183839701233886298977664942550363181242970847827057800378949189233321103562182563772169600424562378873311345942130146289197130060834054838364299360286573989421969401623064291683549833575335367157710984513859740923756188855915968456712613959657670774042947173374575278601550177027347177896982777938137775864543868719768174369555929135652440512139110448042454152393648851967301593808176250864023584453597069533275262884798588293967714877459030993570687430883649937676485075166703280857374837774686225395317054710058252321497103822790429156661985651582720815213377580077724052022913853614613815097135175921027717255812151363932836205047930910754113090445619723871939500535181173316411742014033483718196283095350861522058302947434609533132250225886002862107923217402305813303100029871030016630429642795813191481065841151790204802759945792421832082022895449928128518995540893480315942247965573492235840713026656371431066017961238781610743279731746662391568313562111351816045664392593663225732316060507644892305937893351229180640973869537744545085209287207745169493118207470087331624471323635787257809980421472387436867283879162702296339876759209056604782261052922488357243754638136505968658002961780170700389945178942857915542687828962153725095380052863470834704749471278810975469868282019086526473682772970956094149628306964010788114774333646213877202812247785498408993530585211731673449872603213452052592239633127808474734711829134114129067148754104770445458207848833063066427845193924132479950241083818492712049818461457828141837388467035425338861746987706250617720120254051531167685241866655344814630551251585999316154854332945199480935815696619945393395984090996052245707296255676907326634129664267612906542583950646176094255299025363747153707905352726005935908150532384843205057599451767862329191474813416891250434401131185725208794451035540367481774811783937551245794532151136185736711568782274422054266445336265331347814228692452979876184837962014336462749144237318989118271659990280390214226233868033257132150634292757384343066156071323395148465345269349563148359512055398012725976889105647868510644134085345615362874264613832730597668895412557335298807106395598004596051191437392606205843230523259894081730089322883064143914100798782439641409787325455759338188312963687955877827166690097347239224348949650261611774513376507948950771226642588613077607069328184402104132681458856061590290379144229136393745453203796877343064217832515675307785771661407829237316491653548905914138543108764756886951822177767526682647270133510727812892222380651226874340798240701526987317418436343929379530781270634253351306003344204141551833139526751428815995974543270844859142007126473034670670427248476415689663224706419465471550473196943743183687438426018982917517706295015060786118583913180449460905778266800963982573228747365227657269513142536977486456913423657726532747125943306867132981872807125961160458475629197885571159405360570431809996377490043023470376631645163239054415174885288241307699530959348930352000232004861593531191328962535785448993259357485528799161956567121512131962146661243659581796230626576825642178489296772113336672482130245792483804688493912374798915360794647172721333576255339767957305239310244628195193300520213090129542844215653217778576445056589512586829274307201454771123687643618808753074049285674274292410015888491454880258839051816264018761215871409753299096853677314868101374319916206328979950243173524380455038238318837128253487002619212892762821190269744905797818809169893634039669078910657221758215335463966441901923640747002180162317265939114277242843126850909977428728621198842620096306199333189235936090027157014588515266564144873330269258655846332286947521226391748775728958678751061171631193103888731313700576203559420214155875599400028602267637080125959341459283677543969956667572000873699180673674761105117509495334091745312664599641009402723425040704935631645704961647910960699391497459632171474492347379796951361627555147141340905032077638991494792368980828020495429211159487063702821848107472312140196131862875520654861907623901476004621731532539315170879123509778157986265393839135673461924359506475495847655818094358130543367323851945496687943788405794283635752843511319888637999871642774686664302541628532525421599681482918307680380921900303854240381252164158347116791350984322823204266291717320933346959444303504832150069763858518100760847611626061670817543040155491980749835819972946047382836384118952067353242454405854296593641331434044686622831567488672966076647024675329490353494273378691985126855112825540356809154117515846198550034625400459626425098323179166592601916327597929105468076425900327379558254045406018440886427905734829797249289894290968880203630943420287544506159277476590555842446352856469429318555807539833636574322979884534047630457496501766366008039488863401267117403667554187248409555583205578479082521184754010658679365133974584130823696693938927468195974702143246375241136549487624914751733252958367092417693961076417506475323294593910144364602560003894595624086089306391206919150741792198438322295623227912123227914028970882385404533709803111000067570458477693837681954658280393048257223836533591119529989276861460317555593649936090286364696563100864794689668058537986199852790682463491007115298750492338055763030313766942150827119737844108215248292656081333982924842480577911832047498465086607526392794554432031911026961785030476787543397985030468655665194290157254403730210104210175153578546295096362314263169217417627763118141011272159631291799476972939837749637850909904372342124851487411331252125567803038447477429924538740431456141731236362526697123569267420475901593900588723054660287942974629088539283573700783592659645651465838661941412271186053381780128135656074165192294873275397832120111752446783693891923383659095062299503561830829054879091994136641496135231443556581555036431457033695581715352352956330753537157769444459752282234510041405620830963597761257877345156551999461040636611555405015236013131080286909081590851113493311979877782075657616860776613100116672179251249041321857403676906401791043337272040617596787921113578095759474712729180469908853118709398236907955346181507918842465105101643031145970233948382868699771987359484602396653457505913521887692007698633630038973559855949270516381634249529549228459355974166867748060291777562810884056109833056955675751321624443230720892753504487452817062728188780021027681816454856692000369423641013012929657838670682599049488621965522106248772994520373758231700030202066354900419916996699643524549245530886360030500678937223055114049916980737620061963579118586823313078652269372665925722392286708122469893882465405911725050461138100152833145311055901374044396548441602922541642391972301625194280400545094326293779838195039862984659687198577625848456272261288546355415566703293346435053906059184645729988323373773209518349434016097193029234538807379678968223886416484215674553877875871449568484069978117835903520508905283713392137182403335568398565125161436080204090819109445629707986353560512253036587968662515705839719554244143764982612096457890703195060892948673236324782981301020128713799215211803159304040557972801213603583132145002985751030223745856996437720827147951195230096580725230647889686986128448495960863157347058397213465281124435069122714453320889227297233909257158699456335452136780445695992918168522861818908200466394792503934215737574752803551394138627830571103462634729603980421461273933445359621268559663897075210306495931004490239935062587693471721961731561496163817958300770963428518502222084941004300762601385480556429504817195068926226632607961515815147148620943359272008967257176556381568797706760534776552174518517637182326971303909327602698967938077920435494018160734056819347116017864510375710901043475022265020056572697654885825864815248914692773655019475274103830008248646851296581024712621040818793776082919656155210545177506243305580015256603488942005104231297547646680387272160143254104404344525290615544090902600106199316737821652818211295583773019303769496508042925285501456988264427438902308204857856493536857945547865921819521731487519949786137466640072921021438218669039299649262709968369940848863087437547240363503485618133481027084513102477416123693049540850813766806927359238455077549389542177628528446933678808497538646648736498995166553931661696425392893135308948907125238342114083578537742047476571174057538659885458172652163376377884230742767581334190162505341415973306990415110802152893233862322572269358387214163538912066626258796396491746606626942856681328186476473268840709034870096099559949816881609689574310259550473324756535021880602296339575224420289143161734433882252991411331218468688311136390806491720087360338077926295384084962885639724963777488442377777706221402048229828193248156522364298404684608776527762977280147875634223525902227548246822804661873307968919560925588887425012168851071141815061157868429137441196226042130775514714083938261939598450958966066659258936245796233634373588303421877173670572563514507759695810040762563488309615357021551085133542431925711672181950702935001373279704925973353559467592247287897460646489929476788661536057253026900202037995411599759148572651898223134228599690138379705716204267656010050935031745258069826424258761861236716796189794439382118766849173684354312177151475831069569087491166403838767681341741814019139245165065749363411338068950144602225669994880232955964763111210744755084727360358831353982168797656909343526642526778750845325468917254777517564435692288266508281943133330473655027288949857231606570952822661830183332365221463738115678591429063664825997607870153551840143924494402436857799350397272821552297981353940260857064405523204102207919131786410910952775015849175479612677797983833329871846042229631004248538004034489587545115560272465891316922858575787974284349619289924519189291576048709804531475475521973612698145433758474740383633481774076987492804690700441304233432889991803639407073421994152283036834633310293333236533985006642644726829482691834967633071136419621134393687587249185430171537491222800173948802254834271526776565996845920694840765699620723549668104237843363777045729387183783579222356225919035507151680460227193688732089329739948872286865049422095502750732453146419195615341615598158144668548867723013909586058404653667534625577307430038561379216506770480512291692559227661997893813845015018526935017289156337128524343369842617336711216427175250893572910536356171794482880846163271428034270886726848016454943362608099430551145533209999411856276509361512256557159818634277380720782723541367412275007247134096443133116115511066317141065250478475472967675003252035718579755811870394499916633223155441205729173824069367098695261442860191459586657621187483220296683832748437920146629148879746477239410399749526616415836926226459461883458439643475531207091393723194137872524807359979386414222886800472220147195595556743957607917745389969170430699822819788662494191625748870692161673858589910323020183961929725049868205439931005140820376016494427267811522528100691362534226640366319919898052391986341145400688380446871382425459711063013041599981781878008239985659842158877869190659236291596600710224985163048685432943686267713821246785329876318501414292762807525545009683547680643214547854327386510463114824400319914331620647117183421253002985470901292489486692171334102731908735542117301033702082042170115828041523017146001685789939087821973415333530934700447673989212302495645876655665612326804587514186564525346227351982267683688113700618961342533495836569210197539710319969036117229452532310308434604384881207877040196436471457257982232589698285491502822637765024112530859255385727519025497767036253995349063754585964516133865855210410885863619401706946378329700853224330763773402132686540071793527305215657382469632229994594186580167107264329649018395594951881540370005265224848951066304483808233241472901681728508108803557757132143836988692316540432219964377991431450203095479417333485446838851388766543769767325284136216563334333041033482287809411941144342342642262640429713147579513893581854140118823785784506162483951571785755444298092983873950883627681869886498248501746103890552428429489885745217877940229413935426924181861714466376578055209004428035857399531690594236463394223810263215787568676228062262686047086602308156226283053116382990518772163720724038404530631088823609887821397288154213840631263869788631682349087300007101105707105552354637187082777043575511698712599145225964770278962516638863574267601413273660797899176203224522615212013138012974699264148546022040210933426984195721665939451163259477459650057624025370713707985977378013772355177404470631272490461025677325287929978763494308768428438856166874619977397760963004989112516543037988772091893294391025132899977180234382514812175818106348235931406945318185705198148726430709687040857741635628771123841923640318729517413993440430839005731769324021267443353112328190186226615796013696632619953479041739690982986631163343115893460642243848395050297150426901919161665715366290881034484332929333360797460856470464468528727812529752485038340570927260079104883144585708561924994880636309222593209111554255782217050094238283138467618276167466586000516335128602576330504589175505093126811792294093378156177276027395302515689248725214846949358060330080201360723968007630903211724659582852317766922413730987446972453853811477023369021119335357231529468770460208140110730764038928618206873468582079969202987070757866862527842845885113911812514941346414831954676854798377719885480888666269453238160834073995347289917216722257246783706080417191426655373901009946014425555358206911023268125278744196338938198958054537005339025414180579734415933246408730408942198043579455360389695622269955877538678080695746607491168634528936929443961106981089080480124832475857671929862251180375057341001689792929188243203917929669293050385074473612736419328019616868544002590452907595090303082580836450584921978704709026827267455239815356892790451556663234626993987172926445253248510314827879358198357124163313466805567715968948899246350559142433066049500341680040867157206455871401475446470234162606616217610427408789703811152436458978539350902391082371438871292748904603910350803858096109928065559395676069129249698912384646807122184857939178267256751544965931368926138432738789412409065639162860234035091943062757491691420006591000446622185005850962737728609624601716335333890934425472780155258737531220546625129033311380883441766245745671143737949489599118093387068700314955545704651822581559357654757399361287272402106415741989829046082133878792416283127393588024582098205003508862758709333482597126193978607371188554257486737666277238107007014077308637625890079602852411473358778441522860577621994944988031154018154094460509116917572278704568828400436919457675883067593712386643293986802918321273088045364959921623475666143104419631899702325383302958753561197016465573351728472058553103867591170854442839234615655307004437068407924807244188473483728453578394690807143463247204914110016045624487488643111423229853296673726212817534390151467823151848311245375748753277093253107594785632099103741441865662936752746312073183932496159665680430782862244745318419711945633256451036559814473072121964616366321344215802189625108521951221707895140609928283370412221937710905623807268902877511635677277812314036222270863917918749939643206027393581340093035508238995738714103316959446831343321971583961160180974508834718607669889579788920795631944528262833488225207502269230997225498777165130151079222437337059662565090002966333632683704014739943608766271650759759441872492919434237492929599211951861227364610535210287362799151705854785199943243194012806080697313090827955961278896104337857130921730226593984164298307904828920137087874260451848236610452366387243102691079162406234782614770174910491547418862918011004276132315283477276680624123729254787939451727841871587591439143472836385056973240811465948727779567585386155994803380524267714163412293402084522377457359233714135033828129436545468898908180095091184565757050806858280848558862680840138268023855172597104552230399029939426537639083914088175564435369369450413873867434178300028048288745597119845688295396523929740777725130551234901245353972060482545775074784276811562187619681366115100518520027397522346029963130692773891372791016229656794541145199394261269403101687606963544998311432213748202138952666233345417744268153785281132818247539143751212779988731895006165915635860452129181135710403369174918327144155582183272335202769001942811049732956258516736495243103888779354148399626976391033741535816692305092996274139778757530667206065256708482887324829465756225573419874950365099606084267032009625696816776737037079393346794188855700826805237971106475304930234909931826622255182688144177194470756797707313793096157214620446419971224172432409217928356154912069784836540523559985139122854464008019766019999640616934127948282425591664384627531485260919131927793223856438927123736465141900505797442383963794184932401288022218596107666540977308406883659044412080890605797384727297976760474837937642453658409421919296672581185780097882641776616963022012799876070573315700236830052036626911015160062005893862274291848290718300995313903761380090151322827359139926376067373405843161737110585617121120322131159021894531430686706542862942393117869712966955498003816314748236846300875858777250323066138348168259431082164953353519733342459909324213439346489388243470225223339016928087756547442231816677556291027103366795753652889326267942682893244280358198398301291498704295391060369644553922742019876123330871098567151039900581574200368939033720400494979279447319852044150537261072039699203494752344205802267763350136716998612832240827118051226557791586560077428262041620252832771057339240505519188910189561608927383975186851316751447764493994372476464039882345026712571041148819320434144411049032238592540064944920884454982757542299464964383534854741975178206903348845784068017654380295922453541262071962819246461955186812437835775393843045283424184161936218749080939117507435556693400507415915569725130615099485973526440145674265647423513920560964975118660047985676134154285469778746924749085023914636567135756824421991317398082603610924818763409791516391254310276660237867058905698701422835340271845514946505160739272036441748544779115549208042039082266874651607131692638139637563963131221495201358141825474206488928397025860404805118517367072477111678367928084310271066895431733306934901105018590621166665335680956225259423627950443396356134867851965720035180555163284597369158837427655781071416442683165241814546248817158720655588169217965237438519008127701140262130237501228783416956816281909653456578522750636959349948253645245482520142707619068277895057581971947555780629368828535750444000933376197753546183300727985253909859216770466181673067658198592873835339019908008194209176982240185342502941755510103620092396276294802283454160912117066446578178753410771521199762301504533471429063090236999529620441177621596990407606776015106203648079689344428177164676639971791153326008764312325022635675698044793603847671315571281342854229003857677747863237290420917543295670909575624044439608763347770603188854646827177625320426768938557112334433838190901835880291033920814297891941989611907445593669855205993151613101895443785576708806309853938509271322504609612810463816083443556365217315386156779546480758698658991978269041435632960204464890373344224191544121166587211405487460476819373478075990307232309803379883338883048894793632008603567666330934321782703839571442838917478314258813852206387377107962038172838387742156452978612324188322681932293093006297535058462920735560445453143489590045167621403146391039408833564689827490880725272292745253011758261970628928533701048994536016888936028009443411017782958793323031111588033054453781131493481270257574605975935625076276459274461299582614083728661407206434129097058454256057012033150527699820681029957782228881446941937530993890575279663027285481411323527796642582096907361796347786923536173239177752750637993915763654102087944560803373708153199731688019628324404846648136449895138818832304839909086437283291899100378198492137574123300128052851177190981164270165415259265855818226010566630305570527205520102781971511372127355402328367586691914236050937604898573912955228662300582336560222409602849929049449600615874265836765864284920487617930305321516978518209151217122345363081870478772027571680050684498066163717493589825542479248741780532382348784410093384921278796278507930098999711507517851813842317837945308906573087844802410905820136025848486863458823904502904237643269085027718277725567935524538168688493403951198025362888498446905993538973954322115600583185515888074423346800877602720122194857400770210339596404247245802039729512201014279203583896958958790879372182898504109593426239638921043686812776670145794594825471812984543574184183557124196768628819773400399564115368640155606625412853026943157971252789377822460937216009444010085877510432130112690506077003108683047329810550079131307486091394808122079647928999722925318474450707087110508493479519241717660727851668397619705649208935655109934249175939477645595644737946040066431751302209500919788430469466576780917997729484510587667456244072942036787454886422451734602228748428042561294009776960840038954843231476672089983889479517623012152677515419046672858016480224844490258710780902532617195251085853172107773328707522992511122558696241183571099557800942319228762014238773925439437536716815951253103254353025695665282887144370210734864950010198576079596582554197891908815930468499437959248444274677756971708321421771813517723521727544253726283086187057277854102225395960411836196013122060650281864441991991081365506206189784208950126646748172804918670361658362786639580630802837661448488018099381211786609433866700088435912922164045577596563204474013351371084579559072491054652050480151715615029424542566461777597409043149072072767519415509602631137399698311254778929711724599302157247944030844872151089664717659725080603612644509574507599354096384006476399498017476362040956551404634556684626628841455733784672269155040584640760626998723513496538940393686737277346387951404759539527864595526750713998651404348148288962039554256757469681414871270292903721583895273612388598512279180817718737835310168870596066893578047293733283137501847766788881811198236195138165692738598449380969002734210902259870483424169302496435854533513485361746067508015508198158701836451365444543358735744343057845989070212314904818363286581077251335812367502475128227258818917317885663769453673875574261857709227120423820701543630177278661426948717011820994481604709870465645011011477038693468981797373514045296774063112611213046349896515091667884280564577707218883051320504458725289782769716420887282849807098295422576570465514483551632525549717863835937472094648317432650790390073793985199166927326436486213669698050143046172876799084975689744993403324018798215546004442512098939402875757909968280954993050106889041445083179168427745534365642620696951221415902345216428886874480536250890514597275638385108871079315694900146882686101016635153748070503395690544746924196214823092052200363072747739473398241075742107542258990069581645624343347598855805020592767526136123038685773778863762173926405713302774899242023685254822331084665163698694300099861947571091019908126612429223208790914563158706003186124944533602272897087486934321105968286557770184760206482146339599236822741716154604400663088641440167429709522846563917857729449243540284615376798981991816387896693600033449081671046475071982238815602109219970363186639019160626054159892243116387763520361592958760671734363189594399343038683354890325492530386802185841393001979546503435148939037531568962408913668589358749713657974932877239811480020882727651810203992969985302771225744437593961053427746249313020368128536747463969625076426301540413972220934711507804036482192332351136497333146324579585654465810277083183458118048067054869347053036928336915147787992065911370009520650952942468428394574884845029743272238175207494561104905400293043610579043008904940282257371600070045909105726946006604755686295075706251259175864038563179218367624916017643478987569502796593011793707384280939438853377877417985180436666563892350780130787428043411264690219506158830099336954605449102670198008352734834241186580957049138026750233625629437567011389041940103690605948128257792947069057642446529352879717744231581465304729658536814057330214152271694385582952834866773654121826033964873565228445400316741185458452712318777914432655707434278486871892300308258166870925477703915759181682127892802549928317521669630064493342420005448245648901299514770321402673895878048790667536240166199079721750290271940051106221642729517288117474608098471192332018813436363180175103386408073885772001021547943971274125413466802600172131805583375655987515252619787988266714544254436630770798995040604491279994907476359533693238034555056430065142085408680232181810686708612488141509977312801763905722493827573159992702546346216296730244369435581815704866337717190090360751087934902471040095202946869789588895134452984863907591333625920511638619948388104689257685539580246093820235492611066904637129444642522307900179503602096521116321385145159620132351126042926652387916778560504353232542708653715352703521737689908467251785356276073333520495683518927007468349606654457385586743446539195459857280860572699782410232563607570086426145459723403276469614914954082672014793561713004938007722620230309268630375690308420482169404103624712032153374695900679945900787481590559006515407205573704427472504773054775034646041736115248456448549403697893951817933740172729986860161228776991926197680186595030985690183987673462149236821240159464117937089038804718358338773266525586864643968310467019557774827953059993632826965246966228418939711724619633162884936457630723409114661505231195181663598606408254527109224833772382137879148720808873170093556614196975750622340779330686756411662779790108960091782269055553986230877033494616300548141324338821094312929416814968780427448509472241477329427226029678936905464969286180156792626588845987117569249612617072867985664553436820268879221555145429951775978231911512743538684380238986273338359337634318370619141204512577628804357094959138038372125845529984840128632163678502847888961065127669256022758921247836848543892376287565418159351936213701502628245050732881873316819046091840000775206962358937781420574722012095004450450010453249179893599873672340585149646386971035199690052949540615558160700482417193040178677294271180517914789243066991905190116194913209426818339744605159874756550517257370805132608010681669313416684006618330388220322955459818318431020645292467520013395174777770478156951004757302311310242997098415468639948231406066984632495685983944211487690791516709008641530033869047172350685822561363568069195983414993112774608841494166802815184341586774137722721076419267059161786642803296105852534721201742323749826498632361154800932355857758035952037866633954116272824396353384268640392304355155085617897024540888445734621993213279096946266566370303656920443199339704446916694045014184572879301610233351901846502103497814112579084682334810622002579639564341789359934545259543420667050438331211802818817935421461271908443577422247101913984528081239606652564070528938602927923453302534169055637718513830951145836732878647820323004664678293044554418969303119924113962088648204679827483151536956240030547977837423282846947648870416850824536603487381125695467480590220127625801956273272496677928563245653451476919873635190811971139228368502446481742113662163719016692995307872251151923632835505399886511117361937256032823261842833056091015159807973611020929819948024039175114441386300220297700332014668360132517798484205190093143561180520194483476036679037377599908369591406780982277982362361490925027724197195308641083294756160459947218985745702780216283169076656217901332239000474928697432314824985912678227508459222712891255969379798067992443814026961609683148132813200109400994351064740943420372295389202327764497558055649450129782022184766592811165016048120732805201990767985690430731037394013409434678524991013880133199142919661361353251165199530822257613348855562589992449019791573819027520735356283177837310268183828474023340132191116587416279444527978726083897705681210698019661268705024317439328739448281567941576929097410517473662079857740421871427950897480715482047174617891075796837586120851173154456179872818103947606292720708372171306870235857086512834503852843952526382072783479088575734814723453547145639164542966644518095179778008647035076681693172472359102201336746040730834017017442811087917734820765249769878324360640295367084822200373809079345395465928227575859021427914180201326487213298443536791308162569686966615798281893654927069199547324004211139549428005698270032696920146225347438935874696726170247428479859948045749984735979835045538870754624790136214013927333408442638241802957706859223940813295022906788160139870619690807173046675875469971455868276961521700048819258157701527073831248294583149383726912045798620017953571888104879929996719856885126468841246534658864635658432486950490579578624760934459314730665748650470876204463160817736569887745749078354078504533633654591320676171452593491617361630701048981460292356195131432333970629631994037860872172419260700487855612746198049427561111652686792604861722207079668026099996150864817412978253180410036178133875744813134089341968038301198866161649368358680978315023238353161587583493381378314945405254320548292008420579923180712141300556373112825209331932500304569140671188038940007730431251035244765860059307334620759546906854077099924960655228898667291501250644816776351316183971925162989501082915089088628828407229185092336501486610807316222204595601628591047179156709790525037182487870618159450455972922793653548053254170852500274666400333143533336790385160423293942652637341813300408815657404265348239095296824106274546473143255619501773719495114629159523466933845219679408863304382601250817370301065322048059701586961701353070049556476738358101162649347052762351040255759359599963344993313528399951856676357880361599780259316908961906005214360542326270643202757101606770928689524182376974985547254940969747722363740312990685838964366095803494326164577317968750811604340598363339531369111784681455929560789805104598505990546938169075967317805445849645767955192121137530491216316920685209834422263134501165421376688803636512974576090858075455315882327799281031753847026459990927706882928385492475570605850271727688772881108101002843029332330979282653728667840610462830602661930161184833576703038695488439985758671260495963785736999588347933383043286594289219283482308489835683703647732962297924277817952060192944678398393410706974932683028015515791626060648855293120614218540650463921305468142041754503061746724526067442362629665843698484725677105601614185076883895181934975913651124999010058188807549100456603542883399650277442211362401909642604577659611503411189757360449993907547663928135656334987226230388328097328876450832833525927049301696082321785463077685635947248349756061594510976906159947077481482650878573664369721922412544808653251960980885056846718817541886423371335970011088531931358670322154906564750639656440515967167553808585997897930975392747687187116007171726338701906709020107895820105670896556111818996961594924257784466246207958123993020880952362368235405598581824090164980746369733610574369560604621734482471922258820523693643462273677310896530863674979752529994899015183859492531076170012650729022147610508341437224206547038166059281750658798215089633996898181132781834850253134620763151115362989343026678994744139216678301302749730430198133988281709931679700969816441371478270074373460256217593609011956124715259094286615993907339135227222570156947246510742521063836496633882293687821071023447851785587534158223282418008179649177788059069484452518471342382883026310832559904221491423914838707819508461001632366066155852750144558489660183555663272537986145945945165119913903520337764888860846989332970064702169550617137257258990655339648779603662503620514219714649590434926483161539316595640639811020966734642517005672409171318429158804516888037865367128507209927466671278318394176860567095440322122399375026353484865750570186582512033718458741571382935522229093302421579907219670476656814314508700694734421792978080485065144110065631790774266054377888171920608759262985816704190313171590170721180191672007162390312052582188156623664919524349332549309617853148518034221955604616446511651265275194735797233287479471291778021809757457135930817028287932093836086519541987653128932827375733772575082268080249282112379196221694767684430822031322796665516996361167195917164395512850733353551916104442559247809147423006464705271833822901535198758948733159498087130856294221323452018669206516088570579422716602204808312139147984388733793348224931228458788793276069772110505336966997516523729275061231851016758486307228815863917899172735323849385790504881327254628684769913467212685951860999032412053534497742276253958490675700768563666764803357623911461706487720773065485962695814478631598941493133291099946772994190329143110838406590129524086661122240477539483757506985808763948424736516033209753443534207697000466709076314115635082785360427402271766652597511559666031121883668849793146677936013479848261600110619496979465698817438337758134864309327247646301317765514279901741892835680484464022710664443694234049882586713490259508235715313496872148412161233769155991445248317747477583426011337258379334011811984755436434245708467251475242527462509022412595394232437960914705885564316620113723779765079701394176674836240811765546186601562072134972630016927847544993521290959076706807483840545179165921995205402058470316611645526896619664705684745293534773136776917591754109253537101879940985485019696151370431258312904705771516966748829834760603843121300915990304439261821537559939984364408212852705564686636288791294918564393415460917992339832114126138558798063013615293681168033939632618785002255461300491548150648388416158026480904166007027073221281855951420906591404983318957558987857494748435497961848874313006476479388840305500025553334303523305067463446724202448777322620392584454962497337634967430678673065831427012770248368657929847338431254350746326906894444653316392108702284455950057899992668553067839233542693539216764747808722210398849185146903580307224158922929537827667709016374176967574138819901865661293882490077876031897443120768469321647280374816987197409691633014592362441804883005066532748568206660452515096866795102203846400218482575192091759767486676783174407527005319061697683780795290148077335496584144318736878316974627291151259130639924977735003337786225406935208183035008489445675633131355675336203609827228194014105987651130270487926748932307214310710200823241424244859339214082156239384480246822055355099479144014086166430917434817784559732939284860330458001202899497059495430086173708786023873676418532517298872830588117401761049666821283746559258287320339887574848731018710812457826959401918768247077246152911273709691981444214369237657092705852532296845652132607209695522964888958963464588279192295278914192635387360300338436551478491117693372495561190791236495475382566518437424727919923837189514154529847552171210665699127258530190213899869925942470440308634048320966780250153587617298349969954186256578576106314265975333617748823192623531016494151902572792822606820305483273904152156689502483280472911400654830488129167347599907671959078924339556041967029176150127331419892874638066142570750362521941775908886334304967761676767490995152005886961877667736865840613166373946662522885886110377488769607796496273902241460270568762954920763487880447748641442329324019698730565161780405328163780182084908967509121565977572596383624734755732379919323791503617099562136002639634374990388618320001061913459180766444716361777293686307387520421186293777230390668451863053568213428105374636944626073985823587230955412188073412160258380069335487433615245320797688486016997829736357598519317211785394787482447184585876288072056116250601583428481308845757752757902852329116544770095020335002787107714740014387207976218504142603031596144626742268057258042228104439955715512566290553343626075204500884832126232197695363732805913981680806090747862583914082620450718162306672353479587540301840209992233035016188034138276367728703229116711801828023051079327795536367421911948692881454206438041095854316305843783963938804537473765947401841264068890265133157550161858220637347726762807108606552624518697567898784675846463561655425586905690712135915273969984457341381031418966478312700894137086341496758503114150533568311548234536889400275318610364397105002572793185516759665227472551549572228951621255044064660466299930495105836903161872423212058431752117658084161755311925246233047245771275588230541264926805462834024604249029861964907132691409827997265513051836747279800580280601468009281240896158341678699496640399942675020071588090498631240039976043345592155974252105312216144711420243074395177120016158779302373557834118143017783969435801210767387859353980922553640180814752018717356169287958450963680017317701931678056470424652563809270557883215947295271908495848154781826692265003375803766769952709490023207827715335352346101671095029073667978605072239601081220792961612025301376082139716525428428095834444838164856016371411836834073160973518162482775291222166588229970535751719093437018602510524175523617420629276622975540199557310220974853046059191493894620892751241670940735864692566582274642982569097787434881528321913567667459305344556588078627503570472310691995178493746836578956656764985618833945471736015813823053292024432610610035690494146280241276022054919382956107907058540288224636916408742430637121042880063143437735046038206305145167149646122522968768168508772553344617719113828022394981410859775654643334344994366513553728764586717591055293228790314137043573117723928666049391961739945595588021373323874329995639245038390651841208255744193423345179501984157322992926035775688547063224510658686788277129847376306053850173021022822990174933381254819072701868774280486902240506896845747938521050261831969756956638105642421873318607363701219979262120525858100526440269819464225855631867505188403011024051649486229633748895391757410253031125513604019585336040986427029523435614229956848650195050524232216437962718700388016358864180962311996828637360969484657016119998627803204287357796765752942506213391211721001016196628054696204592428310422999966522959444522150238077346418266546166484268850873953185623114228789398323380331008886185437233423879258340658354001457362012897591330332046641302882257316315039668342413933070337987071891070651554636996802452767659530399353457161674426731880208007872640240416169268871499778973000777814868770846853460437472454854450421399502460482795868719659974978010243260415053811996985062094010248042448042716272554349533356105647746989642176282931034354494881017866698353869681415605458812982030775704758969393108339141198960941080254218941737728728541280861416845501120507638042751411111398504365570196445537233918570778644013874200253781459115643327588182850452355602574646990771726546910716232123092325362907158087527902223473144221223758133225045726233926777675646363621041383855662379916489198770244236749122864993634672763347622470469107705293650581425384357241441886906735161427231013963295278462260940127104741226924965168545624637740012698918630085325489324441201805053229041015662628725757614495874482161726238717646544461189539687862841637883899266989815489584304255216642587787452442344934905715546403977959039340283518960198335974998833123260188443725338696024646423687067754951634144586480293612334126499086583095548518265404096078808972690165571423847893319947721702714920028762085423748763038064419296010976728895715116114650222853798236265037839160109472627802584800188480701895317680865652990243072745232083885539936305266285248548092023368945262511490909695455470039496536032965901455332355143506550741202455217714415834864797890278440763689233261219030601418800687162219516793494431090144408483151158173916278442892926430612755629433091734211194777276299307046449600228547359790590383012657295745961339448228547368241850522322238056083887952512688603743313014685067200314320720168026596498114769630907082461698001816884864282435074754075468654604479380064788895284921354487405501480406532571546416755328229189438527481757788301909928308074387341516030162185036032663815139797483826296710060915461938764883614673949143139195940868241581177207460698897400149280403274844722674575962185329134281517464113512614991721587902208217666800748195308334622734519950929785679071509729467081284327167986063288265398101935774540783905256720716019386160822289055278840895449879503017946149197255279942688313810096147173577970996959457898671609011329864972632602476849659436293935416766178758141181071777152093156009150604837727247743087785922259810678561666206215303700415223631994433872040484961023117563682005111111030385573300523123986071814127223662779441291149521018556247930888947553055470086091210488982295631784027543873746327586278513834646691708245081523708160740238437513400425014752415358560852384319789286978815053547269667061952417839430338522365437081155333297466930673079243255861732063607243974460269981608566738078729039225580178200600036019607714728690855475210963543269664665029337873669538337084653235352446251125621808902558939557298225418467831194015744786484215654422462733916494558429147380517751000749628485974697034789740209938874427733694416368461040010614302381263326669247126583981942688292583861998853403899656896373481492930382377050355089435389815269535042574683923393524287812301522690161700613746950144655968277271514935049627719658016370689494932046762728652709349241206670964172998998348448465594297649930894598279053232220468075255148208766376206668144468474611020123601958427551930569065603222973816002266592172489137623524953890028065073890730554643224794882379739201732908502398129730344477006928325238933929702063656584899338806842405940903302131790902140949872721817756375425387399324610763732160895850582046697162449499935662695438130909950268926328167629863738093798092866368286812346248923823605033298833900073167004146622663516198251772045151835912886069882500845367317129909831434847383930063647752886148272178678624254459015383228383679947816408478887904089589885564918308970808340769184533206664573684565837723252969975900458124791668685150019754607098695618431376315176612687582447993750192940246606107867240936169394631562586315966220586495547535815471957461483901303908882696939661404298545306563419805780482224094176672427901719952394724222738906409647213401348525939597923052240829542438330453247920927557227868417522787723573537859953546674684142723131731313792348619443105266192869619059128425743276400180501358189679467321950438745300437157588432601324971474824291901171883207621586442871306910126775452185102261735322052686531515145993279289990858554876459312526416562786433105424498206933448201964241491794088607671219290169313473442560050928193970539505612516171702835145422377032090756463855368882641940739988642029336506106796898983864302111422183054581657230578991457628097945720799650809563872502341041931946214969370690123762661597501888237219131256648725080236049659104551896125177749350011161945725513079711735739037303333048700813091370075232392123379147113340660800834091055979713476420554643856415388269121821042207211718233509427174632175410781990605365043480663573011647300079552834296955839303542371075143276476217807031033545567508680614634152870818015852509933586747556195321111712059811713114726549975437015474315787547331443050557619074235874085597276816787372430878655140527507436893362876765685803855345285342476177925402022557651155503512812070240919691808588385003925697054083579531338329279124733995397824356908053972028130740551139940916876874589625567969276538958250712676919129313080123872038228614402925155899192600344894995507393097132087053296474614998536252553692785700331405876047157850761213832309861596269299495806724154194865030447802730162221542299890810335297908222647967080304586600132582356652474268828732657111916191448059966561004990374490289858689839301117120188036830047863167023451344201134066934043885548210250500792263269727731993054974775060926873689712591570908167100969663796502729275608010881352066683951848188013371157555179574313188719837053551938673878609593493725780871600837384942529243193438132960052734752141766148564432237969987799207982381545585555345699640398624128149850086294691094302726936011867184544389988835790376587502959611747042713523464749140917585833151097810334235889327777327584335884408786185564111959017267740828599270012534972006217334221281323048991623516387100188580669685583081390969214841622834901209561281817503535075668843778014649589001438706254124562001349707747349050434481339778084782386848616828110239043147017348684098912151442775510141536419702360194157283976434102398741969047216637658531945452195903349378800476381300997884585280613922387592942081546543373678872357664399238482093856380482657262489015301282889886130547959170289910800587080898224718884876883019724841706293847140294331195760294072860826385269235875507202888339686942633380998829661606791241437438721918624295347741826112708739718975834859481426984679936259882852905386394556956819662976102624946947427064957358747799529573564276730135950329543393784888163034658132402904722017138781499002549991782238714838374214195460400883869435244465151015394868301997106293571823112244482533937826125126872487885144273004833176713793569806432639150073141615215321537861168315825475960396024107127224608603098182715033454631458458141202061922559858922786542439690781310878594707383467105832825813466878996132279219893431317875602985350555597388768599602140573143442439601418343224231064877489647740419153581021446991039359326312621749813734988053068562574352663292925671573342050803159232596205154165953874155651407629241223049416559395273809505673273178261509113026854252218552812790473008735934119646296488168640755744712712215286482841027829086062572760106445959055510525218361893978248489637864503298295207463646460698278677228879166631424055253703615320268618562984999127358120235997783841315858203708705135090584855472995248426617812324916057255947570833700524913029118201765161625428091671575182733077104064034150387247265734154600384860153877540505756618119636081698814135064638290917823891525664884532788766915225798663840264896682428885384421792954851415134916070196188590092865492218774114069299045346558438182312687921282780173229826572735040795543254541858336154987744810665532926829053925115378583716931617212058434966940769510717967538453236868503562420266491185318120582257959192503088002951283922195350935941705820731624700843509304703753290815505876236316590029398830541814447945192219245836098918839783145668762796628332293120203028696337318762179592346505978314603084762283678607883664166199470440710889407122310188979273648627437578862570190788548541400135976107872249690181000646473718775375477095801606452872420376000972875658492391474790970389133839942803481152198376883297775249515495467017574922072819934055648499048594013270343861257950072540068577717559829251573342150499756494052887419917284183703921233120734677596443003120766199234301207428787920880932338030611772231163203751878888680583447339531929750909833987604547101788623267937312822954679902303708000086282391041497567020283424628204780407325099780489282892283361870370294986878618593946125510337964554680828971472002170564229429156895667065744054345201347062685982163302637726729637187594216278714805298345383328756123388651478087376356008315703606241143659671757948469456396054055920256125346199881456138393625951918104275668002023410955578043131299288965969024149919306738772094911324470024731444341335514130476513445206781014639073162201473396486908740292927364115567759496965024457589265698916612168826682273182713824201162791228211645674416143996059327085149713777007238406272467846412882444324752120559749903839006690837570729400532178409107654852000979634318992050010256949232022253519777048082137382072800702060106714581206639090807897173528871323564673922550775225433827487861120692630793826007388545110505396663361101010560356195209542636632275174833174560850190461174949569803599780024228695993691209782354554173164160446978952395052500471890059505094460842642657417168965865897204362913769916290571710420443626036546488520358982841252451827075871037718881317431912930613790450987371224761355843509055480398740304451550121155397932292055647119223344435298247620406997389213149978462241969745365493587672008237676877589876126271679823324171000555406005627499788073377673690048737951854222233627734934479340902917892497037991642358279886423697418128113748621784448536650207402087924403985173317789921039082362818784261941369166040740170914651722116970522428879584673798396570272621124255994501312995941381117066182940349709052224341954723277556020864849249581747548516435984933899657039131706916005508259192369923357228166989077293366503704430481705906181234090637728278796763524246843126288229200559715995993410779556575054480019839039719349184514113599016857864687838404152628280662970988485173189339096126166419277072170443866557502994658380826942135577329654050182366147029146067426162013568539000205425924437355635561829460392697759976846608415813926634342442521096017695642959612791150025934403346194916489507281700368083570071076893748752249183313519488933130166261568981080001867079565028810400071670596389265412256401066614817605250284959984024229885713237435601456510953279410262617030069831681022729481934561763103897914706158604411629287905403645653600404146325118701232666805330537726641035448013522910809577702486164159488656138779208191392076485498988370985969855256903907216903041301941410520372529293184779328949311112962941345411041535376208903468635579094964038232456140096025864239670877579881408330152775321474659300161522534659719996047692498471494493124755863658355399407093754766417749178334542297356098518183456547069078527316579752811680155119158868296381576794412160564138439775190379281592163459252294493649423504505926679323583239230646039049845466004568491919246905896449035273869150985034044968795197665641591233302342528974629536717529706128454005865252729089804638604730283936275104943389592107950971065464594019206444989007251132257700376428193064456754929251217184750287107370873605232762122737316447992680354554146044374065110978738585396804236241329456991298630867298510254267139752022430450322127447512820201607606996116385597418553541716087480018024989052518832517015705266893969658983789139183746619760147369798255964942912000755369345270273211202173866353280711027620037923781376902093463703122368229126586847108376411835044144795061888551420989106722937274321564842109609488559477297084204877736746937309140655231370621752246136080458371623024698735940022075205568824721181731215819677692190948391885797237035076718084053244890748441717555730049154330361692823208522976612163044330868921362917664078778435584311088459633760546981284423990186371810695829721782556571670964417577112356406570233836233070723822686283062993791794792228448454734882992768030321738751956986127096404797203804966019652684221566175469397365767647411298991974697485892875982178607103891714195685113844032794467390463322051210983554430393787083925014854091292938078027424453106875871770060787933186967188488123320188661567738676744843278339916551973796549697687814970665849920882378894394016571045770372957579435778551360463808907448482219007546352112017186353068994104097679365386577361417312362419247637753346179438429870441990097827536884195822824000128655610562727473575978025346325658210799952188627367236706705676926183667032213136992108632287351731645756735726375254674569426746893911869751928889347425686862876761061414461162361806012914626984089989006582725748491687808589055668806271478891619375686921754894923285412367536890589674041728592061336691769561527426904587225419226612505459584846084443713958064459298515420288786421185757110203902405811705809825598567266179624813854370137731617693460182586458869741377342543956747960244419697971191210954375982283539059556665081000458538028002220000489312271828485847349310419904159584070532147411599841777875587147655239969694179383118458789625451102454957265680453247556162683245045112160763043327459379916135118353779309577943360633910847010271007803603414308194866068242357273108164353221004849247237187776072838814889019603338673247235709220159488