PREME/G/MU447001

0113154804532512252645124872227264623431120071786194748725513635670205054809586586707487235085445197219682955481412531881863401014191978832581543766060805114956439315720563954323007255057721293069672362206500071683093715792255519294434110096955572623942406384381011589528102600130213882989617252318861576953771607657923220587692801448375341830632225129791433909784005850324256982460540175554000244916814417562156921004279842360374992133098120076782497566778460372371612496173208455367970041669485972481404391697279526622195039164273109989413747750416240082440195548949771683283643767195644780137424028654337453129872784758849282018006977508674800099657340719481199724715679746882037766707274499503196340053550890635500023437217832466970350476967150001587469405132529976952413315027242060777895159108212319043989780723928475351159475600432440305868905987872467341605127005567904801425028999080971844702679071790389522105285597258931168768995837782418863699955064478817713267715198692994962944985584520693850700090018679336823530232341236735995729452751763768974869343360868325607890042739942157074636641104924266307064433359544310341279296039748997874403299674448152754856615934036122964811459731871180681708495477109879486917624040505697734757438212735756974964781991219191518556721505079766018534694056635470653984438995865380977070867510593829040593723121443560824911087916003028970660613438542745759903473912372763859106140653079942083478870579354775481262834432174344294025707963932871733213520814484912329355404075120128793877004305856493405221393713622999338905356824928336013423378013679659057473715035533533744006110383832378076962895104671557282099693042389230787671229577275048712206574595678352384837540430444380120517313829350695356806653812697924342013288165700548654652377265656758891787496646548059398417201557124180521152766439694983882018555658362930604861037764635234256342158519681682540055696730930328872012898463930432023270771018971984025843569105850858201004094278994403403586332027395680152563701159541602750167773381189590453200603846631590569850858363067326551222696053873741899430501582275115026236680672082349366602773225039488447914673844718939887077862263895084140575803149514931817399582983063738529327416475289797937673371406602425170373757972250983568259268663230608934698719031782151359533526661176399494217885165415070872429126874488714579662596147714661942882953646577107399155746095319312724595394916579222163373798941923169885211424744209799678329782232886102987617045126308134529392723584811369571923971383747089363020880156586916191308314987307375811226219991817168372674191305371149374112568434860546499844655255408879813264542588059787927055433055156671709753976274529296159947089458800823296019175997759348854679783257173629558962669199385820489175801699572589745029855537251886007452948958832891991978636976598195687884621665579077788278148993880373088339503987333806641796871737732642865601123393338699901642963057492598414826471923839778908365976212478549377230893697797888781002179470833668311028386406167804177003364591147425725665805365690641816408140190568686161330411028265822045479299744581699422339474212980104236224572136339400103938716185664477474128323164832998819699063121848094364739666501407694152408139659195214059894774137955521232066213489550356338124240487909637843599290908952629025541868973937733432490794286248271690325863403716629650717342691468438445592961143792759259326925805880055837526686784749314607192408211152334815621865589745588210771928519754340196293671639782765057811663945981202144465614689257307195917478212271307603639940672249718354837995165821372556565439861908743552602819155910585578340430052223866272820500907930102821229112429762349892271728533612372804571511378213308225078459837346710918758915217566407214665084044472888695425289175026236947201517907048621888452686250424165976264074274421252708895341281306323245692770849025458567256842385253687000707535418550002702629020681846401655674335876636442224059770025173726744203461219180003926121478071323264742522177713724885617595954673159050687787745176926081619996972090867892982749153490929578707591628660932249901102635360200234203862533320673134806936357475623476932060881297328949061571257727839286767234029245271166039312384541263273854585237307178546811788643873556235536942245180005828511612450373539371286259807094164166441271050447202555976257913558545999212618769873817777576332862812419481110204907410165671474282865499383526129801076600287400985867845047994097084600892867123230828093092144449773988409694297927036559577071420582393404844984040238547276307071799252743741637063069662163247383863450081423463730737288551052353114344492565218881069173619407009555475844163618329052365256125226506329147363930553286435421589701790437015891688561037967485639608319791197381780677726246069698121945387912435741552008839511711151776582886178204092201747757210750486281415599925113457861723768854259847874312019002910510990266991230091663029045668039654694953109555031967823990022492728186072387666768888000084489106589533932384110554720911359698727782091410353912122234711295952533400584584389601931188534537403274276509348756356204862353556285946459972690582301607217407899749807038173724205205868363693884626206870784818861788990118196963984221766040937842668988247187743970068190826050236040038110296590460500459489126240535180696856768766742557664388840477915678106071616688249597575619435293816404555132601322014323918325668394950244257743942680208319370349211341149867517619014351501414071639846696498672568222070863481253453533577277797729218080893230023525686157303743948111881268184175097710902847737091872904662368657118610600969716954603188540444532467031830849406003372349397291857130987642313117507576284771560980313192247652873266899675370165104626881457108990931642087974066382144904532894952345034754601864195025676953734274802583406820563693818442962610969233434773017824249045679358829484853035221881111260981454476174353511992816423268973363829921381258558506704427266935455536244998316162626724630357776325240418097733555864399286798648387658802627476793167169177047839686898772506206058632234631685184509171379454775716835146109726733388040952104124393964138984839583477446166929381541508958121754321895944139714306636309571641441519019092739387809890854552448364396721160568670121523462429930664055981008947875055592622038680215983108833263682322788046498425122139891225071261083501000697116801804301667744359340099484862413213852840129881507944850158260281957916450654420336634618072779646918313043927990394795054035271567791669148013148393838108843122871996268198380854414538798663867997715880841116258574227619088276682867962094640237397626063482485728813505323054100246060177011749273397776270766503037929850115627701180972416868746042676021524243013038183914473299936405292629418942794234199925837874230835921080270815993930805634658177904105918834786420946504572545636906082699075412674213421029037923698568868031404846199092500020337354610446208068201026263008641059462364277025089031508157533974426675586262585815793394869552887994369736049743327496417006923959600994756508206792511292230211083223988247230381781260243101544829396759492658376328512844764880387788530381066467142046315827800060872358240249023002441854135583756684003056241451740284179886026121018174469191239875138684988345082798683209567195527602170693593687055243846545743717911747307686095296761908096031555430540653780498721368228274464614636270130706891920069359288418714208995534449808495605383823064995073000052518781932055978292295008680456816437126487897198524503015834109404029376524522400557834179277811247674878706785922284951365793143013385231837562664359661197312083239948221999389641358042500722604695626366539390973373714348370186792722248602020508710446611958425360238910602998737220698800639425896114603024443043196255320559133613062217364004547937798692040008891493720459515962919435554303161709378785554120044814942068393216746737278870349154665907944637160976655553955097077053129142142855740875301912382807272572268490953884292193737924914072733336722891116040507948298134913962480302290539174492613896338697177971535101241464326742811815697827354334952298390148157903309427132884351459671087909344404878024814482451351360866058770239416604173900742220793612729236072531331540606136834174389746186844153132760798949030628240417779786759460374377219869799371659194975079299652074884489975298688752836317591212431557807195643465884775736159056111883223940076385961862611135816610462217380770218818145145033955935909881448072587577725114687787816174584919134986255938142458947996231246269269893753825000967194964451684765572529164102019413554706944588922434984865911883941632130696059270252499507553408107188277019038249569424792517306305949283437877960126905909229051469287703082769496841966437404156400401527282119421666155372302020324368078076090087262251607209627969175721528336926148088963208517491972905490279811411340003885565754803903512584457664760152013331538408776039754272211154193915432174489394276766010593943615238576406178019640597953461369243202598174002433977030776429076729872908085137716046691097823291622363929225794636873904497758097476398682138996282995048726123800932062063828895160138585821575993035125572924542899371303000432990215697221207756933853735482789889391337595698012096672333050223282156625378438620673236530983853614987664186387468219098479786019342450136371032511633986366487072697884873309885735021561886049920197314990538146923730355616805955396807385541459034588061409569565193044502838313559443215706308652335079029785853398474466133967513424347637172609860692323702955377537484021446123294680575490905246312991407667538896319378000111384995432267299706004849087544713801207086852757359503248337838923494410330821825628487247583902868860580222913996586823720284341575215418234601406094002493121341799504255170659577698607323693488258158881693663590878812443224017440551373816507163667831043209588724996811169786098395464461229933303898415578173118923915943840041466297720279573313652348821738608111900259998264728087138591051798871254280114045316827062845071479376772659613109932676279721741287606712849519596918093427010929689432227812302172600899755306925166387790143397802091422970816595566022105258896306017479355402278986944473484048413557601264477825765569786124693401200230579110395654389999064681389399328066993249210903428898198164098724791741103391904957866179653373710657882698750081969386317904496004760398018943902429411520544357163998972346897813354569618409198558064022760195768495668875700812118609221681015584007107602348077723076502186882445970549351263365925058840103506446044131265499443388765141510693267599275911936957031977521595495580763048608831167392602918043501392426513758089228596466032659228872496667690343159776420887307466460157283310498182821307929431172490090893637911907889220418504616196369422800832778018216591290949595056821946808710998453579785254610876055637232517062005740977552138613721338621881726833519860896184200233543713086108560631764907861026225864827503037051801094551682450596963505064358334419219295245785061887680365387092029832763088938202423201560217828560899553633975142467910318386072106504241052979849780404964480559165775186134002262352591843527973270472798788498595376463916457161225423627857735902480331310110348439946935974806723905448959164826468099378383549653403404908269786277959869843881145333385222802878929002964650814508531325872766205367431425722590131658750318440923356109540508928631033173039325082513600892784493000839602872760254090891575972176331633358013332839425065310999097103306693165305879594401432823492643784227181462432485546387667332384342954674094274084808423710815194949135593704101186417075691105538162723931824850938356684179666005740044392109210200792149289153617196889579471049208730324581303443896653133254277955705564097015068124424873134950636269127461165124972829000015489592169093409991756490717322510637494181796316828440487823247696622578058443632172175643484481273738514652097087660669593691961673030359816556270549367920144321856705060590488434869459561257237716538679360236533930129696315458531882157832398764482942300891412876511506361453223831836584748667928828498068111177949306399966589397551358817567113108717428949769376187688968457277522384540882412028640404507051335318565256733900157319460363693244564402301703617490157027064361471148722694067282957442948832727735379840852116195992004314385574979061571977374181724699526474253237263043028516979814647706432151255404798255094473931166112301449050662578515057988809830138059847294222054622213804824496573227882922545511809071529250545457194098020367723087312932168515714216938238529268152626938093855355046531239235538443330824717773217495395674609090227562514609422452807905519615866743540988592862635689845431419093413000421166940096942523193487576893562540493939486639864512980035565972186075325378582311579827463416969505532699349783562780082588111620438267294853951530551555780087721787294290118502471130444438872225072548719508415194339152681982956653835623858066555418023629261502408345279555388096792170442428945163657962419313399828064052485936508100234859567097799584849063684508923930124074939175012497035954403660328297636134126993638684796820910885149071496727269771565142587378966179698419578711491833363085950428372007416169481698763438353743568668348682288481964759843887966450598061014175876742266173465041114424085321088509223582729117020441126994899406043219824282603015278635551310512964337947672447714544592675769260383345779352794379431378615951417152096165549460537072052949423891156265753268064091904264321364591339462811848571485223162811029130193498873484482496280186339823711789572223727420484938236406093415043868790918295143662262305203174596274367611999402876261853145565172238040659206392514065110996771033293694532051555957575366553564390307679866609281602444186256308287873183093713453924863353804550844980249357758717276325289696460540738822246768621535193401413500213942665734121203062063107107805937969406418598745053585687639749551660691097474253343466161578226710640317626862781050755963491999189678284960541682472357920438164432430107421689311235593470158873907659066834648896072278545650454965607070933613774563402878932846763558398821129704080909057959541620532325619744541949811348392092737710033069794735693380423963381943958715411940013652030689125756459701512257342295079019608312453954333232022542338745195943638336990954728531214359922998686278350615790075744537990952975808610869203168969427857290201309403822935974088997784925193328739637085205792712113354775577819301750373320638360215119059159092447831926928378180296141670153616778477800380899689063196253693151075397584929886719470791326585797989100318679773315617578375701064186554676136986966322182477281030963692162029179706855988656266923302773893318082951159245315866276183908742920429961923744563663334011061524130160775732007767745560872062830575675553657702150804585871957750425097941083987512701561000058512200229189604828044505276888786706325181903200710013805455926683312630636034898784173230630064652738351415167861793712197340915861497557733993236551206017844893526489044717478901681417827790826662104058023804182205287724618057686658527018031116006523813499100919373420302701611026596239027548425362020753768953714765919713953618415612514893196167055918302832052829043639028089383604551111776088480555406537971389775126811653922614000284938832701799392764846540875348265607149322344177356371280921119216797276408321466533624684844417362388905303956454794789721527327938503076582622801316671077703963301255997659662896778754274581613507175299159139265784640040440135364339574863464058506132145295087244867510915980897547348589476865046347916617758827903871023522241263599906275617111898354110241877659338823832101421096089441992375585979098312567155603759210526827998337078644786169991737357666575330798669800861463904249862552531026612585143206659206871831753070089138687125743509674079557696891741540202986567694535031067935908012329291899291219696351989058980323245569947479255027328505009773897262369016589610406642057230361013882371741932966991145773700994762903808468264368961251908994360008264710846273015805475577233843256755388601030012936934499968351612259323501663118292951920484041815853225095250164322448538581487285740890499203992716815323350814222192970059900062290312334994048997994404032041370435204386472257390552524932373992296053982931534763414268334335094585361747045024727247700114396472068615632687066826247640477562712721793927493834388268991308370611158434516465287939236556125813057901145031566971001815264320673565032722295240342011619889596006989897579183517933357249835134314150787697863695927750777512199327105493445779977782115551830420102649978460699714349979421536169549851303715873283128516894120426884370438590171181981174080868619416196975798574965314524795616418687850791936470236264404411254188524687580301330740844366799192263101787626916038133357091668206361596374303086677886442973637307050289767445733602734575505492150323142103658500723406225589395079483149979767582876265677415057302013093884284967408702114881477137736000696086509578857177590635361313014878337952006102267462010926641549746748703514468955853400073807892444278609401041920448795068641082296901077130015880813230515023743862682733872772405570122133884632954784707114756194125553602894544096672672062920063147860754625019664476778275809714405298141371130678295646344056682315894079695017057535964532934661129253620784021310755262694003990588924293506641032621834414033524081968083877256677866658899787077100925177228621389006344212549955698829516763901047044073897326075719732547633126905658150246813680118853708899282531341823912100422493263135584020358475657237843952427412851608685617147595897801025478466061560177046202708758010666586372031874979934091731510137937565056985785743577986352009036563055199153300085870916512806273346143485258694560437470918010885369577874897438384261609526889557627314904117197469565061729725279011075358568205135068094863080415075614249681929714062288696464424288277140364207791677166242022100265405500592353708856090875056049434878304501099955178598922590174903163635511217206287789035649140779581253838015760268704926752716468327026474474739621867882604955695001423843518855330714476277032472250978985189631307299255965053612567907545863776144952340941637306454171538411808025718787978923509742381990782409411089449898185002466941457849176129552950706710710775827133101900829904131541851190863968002595070597400535119395185404718052081612721778393734844106054392991686139500373748680062174255371468747165083155588490259177801307269966634724835262505951671173636128045037673349160023209039386699550989020542151505145177029217624318817339105966561697176719550639364395762540464060020031837206069984260825007731213081904178281198887410038512351858269911884824911984492456296263205435714125663788900323043765297783212823765095256452059563989717244602320049787357255965844680244280811750011047962824169259740860689466802124710095355752558277961965594988624779885152766448497737864086835476829092130985756557487968353954420891244570888814237208300430824338407947761042445116881413115993470474662584237755960659788374134517848818553250316388293560443992435131460212481314737508527894647159855995650188534079741256518925337398147964733432637023469079446480519715838792968711044603752582589760393897180256916613286014995929682713187072946766384782469404790325368697692799818076741681842782738483892265657301340460157284919591806116070423272550120362497437615785683042678975391080445076487982267735459879257846190439950849577443164203072475060121989845699302622368140722556721225230931298153124459888861967213242628597422560862260379306090605333574969442589754230127387642021700582478904180082607167867568816710332067049217468341760310718492136561711513915457228189740349393502964383153817877333480972180290849393556785253581810231045364201584081993482515047814309434991678066892527158027532160515525143266460328602185320057090710162861829049806840980905753898295077232264455035486433588568677195976536977570334430964450349474441652572862022888799609325101036263480606310440450919613174680508977221231172927815731332264135720781158658462310959491999086181229593918015469092585675864580783147051152782547327406227967786394066290289262618057865678251134879521548951987170616596067174853696659779676504652570057350364856147873468324525567326954849557678056750473091778170478368101273630486154766769322800477699903605839851859563326142474688146277098927371948700163833304078746229930628314312824299409948451946538859221185448093327966015106190849244797765623363390725651094994426086245904460892812083696594699874342483185778013862428969657582168488726290646519442873289691574509247895450401674528417234458160984713082019519300918760570056949997142873440396968867034577417440349951730441485034265873713024892208055121127919802907629740100768390415043349476623318503594214230850857020631098689597693648626410998570973096038481644632582527565148351714933423396418404507289155520123392603142662285572119333217478654288148504689822647273396410779216059706350465657278745214710834943292210933689235553988792318043787954640774667704140804952148514512074504249592845951407242383512324245784560036890466839309250230231538640442338432909641488509265252023788631506784581120700720705767498551385621655011385031152440934817805923142073384567797621741287720273283676653431768961628044589086045394214764721373668043535812702873562882311996019642364792127739334906128724630097086402964781427258368953124487117446781871227809298548701541070080046445620094842322503458112076970103997372548071364352033272123473546486949794965668972601426636060870081943292445430770569157738705689873315165603727857543368345524698700987301882315349227027244232269174926508307692088119478825840240092763922751858251346822479682091339260869429666694686690871405816789857961813412841368012652381446750836114020581463315428298320797201118931038871783593306985039976803506356822123456962716369574861130745779255909098560890259444501913818841879917969400734359799832398545482271654037929273274226654449473467686696063994084799127849100447288251895447135007513804804396282603773342583565599559467128386403876125622257740806195839884517585861505910909565305456076860298735637260741065597963795228892760168490353213746621846284844331458207829262556662116159605340697767114566945497390675338669618628560032935159874661820629090893499396121717498027082962962490734029555204817816910380258086440612729286146539904390238843193613991606256842989804205505360301734384153548112984080224245156891121345351161851785893840733031402330558336986458092471996599823142642144279960109863552182893008743432141632061727748248891966454944327637999097661158115900589428589804976282472024636254840884961137247537775395142789792736618649759705921341007967106003291794303258781032343923604672764916756458892834249368914870847584441703359639136997869756684928925907300939920909016223109775640449928179293892113193914578639142609452603405836429273457234140754886399007582692760351048616596894049379831150099551788753091767435390670908484292028614413746493002912111433076804655331987387603035351241164459579788129306236356020652882345902910896601131868971727851670161429266061558352351427022970034746410333211017962528339566760052495128229800320758317892693896130689823198492111604869264331909229419161379140097366743015368181833570005395899715188576566493365675420407886905324804908099291905002201975683907067641210595722849415304664202074512626538137492673369350190737105209716167699767373894023937369966103136823749197078890595320768634360802278384118268004302400898761393798666228560545188666668314967003557886338438846230819782638247299523129889115423508997323635929403225242752385325625989908715751868448505934777334144914924086764119955637339510862256963817855139145487666836790320480446664730499950382123813557178385362709016096259771027691130765546333348525073886353110755635094251532463082251989271349688768505489965470348761489646137768353413145624154670080095199807434309696871571050372446202182859052128805490664879180197775572479559454217378829946027477876479409757817553105214813962299457374174008651661550996891932561287482648785290106707397738047422835889330603290549786515233834228510338691706643093468727442851579425891276211644170091926263932566069886314989113964291120481590902619781193145247890314215560192877381058400276902368510485203581852788025183591140272067123499391919998599748903044593422376554762509911559545370243655780593707572319126539485083662605748635321344342085165562129700535942084027102801391331807268509618818476393984470117857169724860840244434536962777993679368475422884602837560202207994176425927524671655147481594061703194569070931971587978918810582800034295515650201654118138084162990134276496525549819285725798558102807075707641144321185145980538024305804280252452547229101893611399715502823589731730279289159289371874233139143075898257604206943080274637460745509576794041100264337300010076873354769126030979778897428484180037006988553866703733893682725112487699849353917388247342678306413897368394542258249223577302731243464897712773204554315064074221525578239310465784938457479352425937952631494137664924839017525320463469062348767289978799987592961479741186346262827687446137013473715865027938161835120447179126701926091618925019065444096622823605282669757065030304894747403087027641616511661919657980383337379894250206595124522475508927906984405113628541971683596076605999734904391191173519749800275237740192485390246826673146907773290199052284194515746596002829679886668949743339409129550631484619321204367415700881048779810195508409911957337002243114718050656627177183782775811714903658220955962966316499922677683285512042237216804534397358492775550163737745907607826098769925344864581481485999682676495267292830784867669678430375998811973718282233333889386928132056473935044109460347356610281288563732491664750007415654746675849099398853253347116268713754898934753617225861607211484073304735652052480171230000811996847827937834698555337364030041313375286367091121672784309005194637565830397758523386620532136008874414587147944648486831475775651667545567059881178295373765578058716640299594478039221558192120558313885787828469746589131443310502632913868431087587750181417074519545419153975998108575666064419677656398115695615238908718547853145826005104390967364439583107190316252312118341020187330178173694618999472031782656139328215078404807555501264021936508100031020643282279449757920166626032620756954620853145444667024093700526329934400012042957695262340980526109100496296400710050159402003936954373205392691777584981799112797126845568828605925736386285619015724295186983924291381256270931637308081079716319781288865997015812834198172696417831597867314825227289986860614029801036931175029705238656176427534894570677822356288111501164727695990420441802039321399255102923601888927414486596692357210594580918036179769751792950360297396814703392998822156100253253804210352335660156602503796294012818726563878349064375034996936730425993506589178438853363763835770742023069211419190958212819682017846832718875725797978911965434969735477346676948614533029830710542613434550146755797079306765243950798383136564042040766509063519636370912568916132658440370202849732166945546476603974271178051083338026521525355121194592273157754327680375904720367204948350729079796433772003745243732853569404814695365527089288895116668741260198157126318679872924210257870137494263723752988861542342988123188972687075648899400907348839197290603625536696596572731233400833330118726337101267032357503038599219121876479665589574371338158428303529909813211187117436622681286394014899144363847577622770379503949099129195258909204110297682812576122108360716438583283596267042030425931397241380861248194434183487408382649202005823853815965196382719068656624705971949998342744072635480649377063179653187524712485963937872160875827567800785978260988017770871475671356816628394006766303299274617597840214940374067504799820864329374776364698569741559578571991373790682436200128229862754054150807603705687056485197894663171859098613494227396120107653204825906724706864304201328797200373509744914910523634379265979699545220975366447305103722922553544537658654696515186725603123884690728853579015966191738704736004940282431669126650273768126741039272636514573042050489289374274758048448381188539815597071618620319074119301850227924407569188064532262988321518700159394056953432165616127133168275508954127245570128288483672305007630303218273424926364200753997341149432168487421626023474804857466238979836917354353041970646558853013097836064749080142687253432708911265073196816593786813044697638460330768264804522242915725778279529205212637254804668015673351660371222838809869326709476290319959461005062468944138191576628895665706615768345356882104423952151955188169782035142108545398803130746512156977876842675987937552929328922443330954863848468910546406049830383817891906648946139458622989686121196735834716198588530695828165271335754463324893337027467236565069466066737321409912876554835797478221776243938580041940794572600894210201055665400367984643047875689018420533511957020970655472893541789583440300693629198386234325425848575137494325043965635393198137423557574618341501001308411025279648216401536113882532448622680147399943277083639647998539569143594204936872492775440017316487528252232329503092642697611854643596492426058569247564280641835827853293923778718692651145209057502656217734942593686133474619582980226927995379531426779724035776037136813001622332746791078288652876532060662398738992482608038015500409354941143644538849487305025602478354996899067035248094207873436980968465134466732093029754896088339187426764170794822731483527321206588004581044056610793680022932848035587035645563124837435224590847319976060468027153750596209690088350345738478854545143599644028417149244886729359805768396682584194906345209337483608820300707261017883104079248301665735938752264581750146338771346868768007387048682844239123277718093594688916058259565129306241372255780641582333464334099482071238181435833032093019594749077708005716757093904272013092120389132156360059319518724586726462729449454643029960062324317466617951578921678579439028985998640700354550733417420009455386273171750224952317379912642882766013968921058715411786153257281139031978879106823007155885799591364807329264361520884377684354705812446953022014691209439170743829259139943060042966544123993824205971283944392579028791134237318863839774303065299434209741434738195927668571692114229159277012587443951870542980145509307869425628091351345799491592155343094448698229383222818164204250007807488806984309015423932911023040687602369688412722738266782626403361295154661403010626399421336357041280742729253498713304540956987360454097558042490389222133169674573728511332261476679422652075853165531885359043415672042012977522364502338749156072014698865807052583325482428083399341804684425455291382342738303514024312258400812689337270271525423928206750102172328652260231817567701538622794203771397863309201996919600451382520629472134102165856849557945376348139222325049864700148101541311798336967320421396721694362058122356650385794357834368341701303793592781235198342928777510230502422507808381715394596656451426414941297020811765945438481198385802619225133683096126026440060357616444830170111018646531139445266975777204061795176536830898968936192413121197060274477951789391778004099799845807114314763799558900959285300339152645344618924235533919665581864489015651651921410781694772073008299423186537695348190010909677729049467669468107535270443894196457764549235802177341917052048414858578064557836238003653328989718466058321540875813143851895173725165465246444327374450184219085550620145898032970026131432087430180382397471168647699115232847443242277869114143156209894359824789910287813468744296410042786215130841925694309487595329538720542996756546170918514050125318193818654869794840900167348766215794185114887362372537111680797879503383709939680815938668773232921263799991285462699799854122382358983635623001877050286109351680834736363611590566511630407649143458392862341359503981878033803576086293862075478354298954650154298484065311491693531139437428061123857426521819755389879174202096929733806484743012677868862979991731952350663843473809880929548911991858169540310764638865885158675897517996553724590905601427341920217251185948436785652166515396586738265815089550053701041015637734274863354395275865637602531852114864580160344200791647341225282580121633318410731178055503408650281199829544016028201304509504857196820734961316312548239333764235665093547845724262085204107926898348280904081222583245869905157513515192715765773950213537929693386005131565736515808572063057444299418208468187363062995660760256077901208745395166652066816799463105700341125511533796411721347185770704096956141691051532907938262121139610547273446387315363799898284749139341674252631199572120707812662126979264308810919822588440497418476577503141510162775549976825919018274408374891978250465060472544619862231335853373730749196297168030941174937247261317955115495001362749806395076562259066561668928348697107320941875981596266143763561491628433869340535943542159219749235296847179009296572121340087048449911173180905700383209842184364184449156244158651046437256128741555127787549891642426306760182302843366931702766926441760674593987641066955349186062836225643295855037853805954837705670135424872043153430661132477874797421988760845943434938284412914841659618389522799060055707273144131913928499044144965679397892773047194541487216277204116872085250072650352587377527796798773686264015990764531918727388123660224749500139782916524951610038648838383051086496325190485404556144227235499480080470934434400247907898332720969995188267469111415643159959127682399973465489904365873025619824615330864494027046494505484044005492286022654118688722729831152518922130445986299996084116873526908852384620256536404771789426336715275523738818916652352335754124281043782786782742161599134261915573210838774033229310188892496424700336126694999071030877920395194565704123666379736747816839085193148632953289399450531196025019314287899743107248554181694441905161590016981201416222826898319003980335927114336809025342377817450514750322423607299200308441377281877345531773294117146948008703253634607542215365729900600213385209857120642393503337850676541542274182012913393219165782406839669486825509314144167459202112937375248940654693490626552764937349388762295328035511510491131390039007613155859970981613718479274687257951908904287339578759944359791867873533955089860244196218410968493308034025971239393439665368967264335043344444715484709401295429095165202124401191247631332815913619551615027796137514321073978411770943262006064668072417758264602713787869805845554078047136538444871656731282156371062278234866049747001724808913916237075465761263854639072764878187449144401538664826389148129299137612875372620957796990751600632697676019069446166949399348739085293712739289934236630427621587583642033398646562981884800564199938781958387103028026686946683200622935139581319779989961202430135034378853749925966267395095550853411031875132471615734261797239583135095559102875278870553486396602234589883936631899845287990322596187475175825555391686197742109043440484064682825133593794458427626718027938443969832036305763165753714597871771056789654522849639705938459693078683539618162704726616104941330803955327356670754684991631611233995184736149480224872996602512008844876586809088338576253498851112801696131329415174476961864729321746074620191976628501245662094637126652753828490304854842458481550187528388222319740702806293831217725548150357990983729232773633989133182377407510497059651985003331032388427715102622610693250507159717972142542373602918414977297559928120576892700398556064869957472795338769480820370330282333406087219933922953653431038692526240893444611848853237910408896246724635813854670585160264892907011060732160011340025708654265673798705360490504368388076486343742961507564841634114056308915528636625717518583654377881544529609541654069209852104449977533314442455417398984803546056752725758704219224116917985043109564799505724026831986340478045704485099326166425818698914677437543442035890008806812343634587491160186550932675866665942184394292517669755703493134926714385165939349653280226912744639014307084122761847849740868672005095999774953222519313497399087575677502412168578847766762042642401346561853327822606801716279881630349354254812423366021718095147282344985056849318604437892354855043420153781182762155965838722625716401734291458054997055555199866632683994720927301397076148001583441241627233948542538377952213630082026241807332511046538722658595245852799686502418817640300387570266923396059025355276622058190975310654883848664376449048852218493070204283928272894274796804263968858418241692518172008684826687345462486115255315898148683012692793087465180223317421804028572565681037827195335413594137357166359265196925134653939010439819448024070368935092666446713634864783194202799451895394533290081316252630814457360605611359268387653524016014450764137478624120037261982832855926407841724457655978266733675750313042852469920139045431956738871608599194718721366520255758284009606782620456682252785993437441395783872139398149670227645247571699900388508498654878426638670288325430728310568524611886311195355642385489573842250317815914203939136202325484744773752013837596490534662782709987359182363771726098042939535770561777951544912417957226406830278735746850439422916182013501750709348667114410574291316927357482640222067386690780008190350609633236289636167246667213846972637854356994219163163711442709965306984499191152730182632193308739568522413890056822857601288106564657163079066925106849540031381403842694541575383943920870745802172892082337822441149991794955213820858379229550076305794176255169028063876455279914552864549972498387067785650094754704972038163603132286363899029847843228183901418292399464909686661395730294030546393349625474472565772010715764885005758274193439373545733604961321057530510044497001870040352574616828239369609255578327601757499530854266871011999366933341985363750025477827888487926185948290786170276700152429052418602363509588461249141332090085624759881219225714506737587684929995264652996172319151601418692852214724525127531076429530988396263268459370871233664961563258029012572373081869159937412820602422935291581191809977691478741305373042360815145731934921937461070099323955036457554963351519666107092439352244084902806639453175535376141759841861813463332070566739398848840858383941134979426299406478921137252389624665809218302816055196204574100411205941060189533723966382449922620134230819378054242960712629965501618384385884686999293943416386757294614141970547070456705591523658048898077857266536086554851963329358035383536827372575122161599084412953238755297620369025582935637603962868926827051632912746539752898620948714270478452352744309758824452692729744651732129295474844755689251512916200380803709984864098443489946565107309512521694894479139394575286784154339781857466238382272091920049918806194588822355644766938330859124795155898737004790480526032494943222987338202301102337356380711910292112588364664575346118567302625643157990578632933294991974440145304577308832711232492593431727861318543965096367463203569105981280765496150545030663874264422345274443282553878463641280011105952237894214562081733190787715137248953460181721007029307796529037960974538317653558502620467404098882649328103320901428796783232190904820996491712694620530952100889847798361110500436611977764276177296543546691562580063940640485967262188730292387371228336741675886614347060978335341945271031304449067476991121193458728166936714505040464763333669207802679184323405747440342342639976724880471383115511789446625428255051344465381623291276283678075655513320115037369995542730563036870940692385360957130691145923701256170926042228758950037946477302667323862888488694852641717709264385494004751881412014318129126843399692828041229364510594810112002035059165024833882296292732158657918952744718776905177910065842964021468732794027705816764680581464979825074228109297738739834113497088922778799759800814812865180208043453724892122584533737133795883262985436419491797050316059434371819648463701447468545746575854602203769836938508612269898527136735842902872264051501862670994408788002635840015937919049877089837565153284667806664830185015186856608604750011026355713243314895394466494191799240023052853737894651760288643597566406988400972984283738991802275800486464539655489361492618017740152213120832905821519090417142812779862548914111265644694974813070750878006315567218353757394534802978619158862623174003802169763572820891759892186689145727023125845847491947102336977169761795540635000885812695676557434176554297804832915910388680401460106851509992013676084876373099163933164980716949047044146043722806013430097117205838740699180528012173433832016483244809661353647469379704200006864583574113192277099529786818138151668343536758234453665185714007943418090520630179282855753613917681259643673263982679126109360766387429108030071109245377646024543905945930720689374126394045441519657577309191606589063045885982232771853983041846173519940966804768512508521477872112533262802223987273621994564637839486246600248013181158499801802615184133880045388383075105747911909136170870903364389042197200133117716917446482980646477045340492993142666740076968170694591744091427425763540892352635515259821225755368713191642724751966870209130827499765954115618893222729987984431814881542901517666479906491085111314013045950425067460369618115033714073947725645919464597837854406242571835299235350337108029229129077670562796633222959802007914512665311386088720600292033381467077627456972844282269919605795903283508944944187322100603735343471234670873475993113583378125871128522257792320016861852042114582405068263351744256317814048792436775030257820699577631132835507252204688242142841348200257006848876294932431843292224339285044583980789198131521343557997144795514626459273465842626335674363014585726929064806895208681013953140291686933256166294595241608343009238301798127418156691801084114082940742132404557694093927777280756583630662684850370139160251814999604214306831000427045235717602816137397506331290025582223080327703956586642790113318819630331657881448437332289327385037875223885715578340532946378642918909636945948003289165512714363477662461510002897187683580736833613814162192248845365569328554796026692690981296660004065676181309747674133946173665248828818862925066558532681883921772361168988641836366348989556093255169086807659515510090136700695532373892705086324376273594603160900787089347602216059718577212041612162755656167568744711389437396466026167361543890258995095048212478418575293144223856550765860740381825564961617827370651281535902334474100383837483755911483991066000908250365344356586258342441821623242586601321265563934676380221704082548834548175428249948192937321385271173651475933621635151098752542703373192044552459324342712537466463952008438894421053376496959109512161935917491813950754177353605302468484583065571699351072727053131846500950098352976823080806541178485903326565612897669695481880493001381559577614290900072197604650831666912195503715921152593070592572996502609597051672522470731958275099193411495691739565270716774788338380265810646397035655637306190536196442829908196869753413339084877978807615635175261436057772769931306129436437750920940101338890901782429440009833054945579811793815283092609063995853384058566105346164262058141227733208864538190049954318060819810365523846689351943380951394960873808153573230941517689407844032905271735389343310158080840093656586498920501682477188730360240564059821944642540099998090559290371339876884390057597627875164650512346635792367896947791794333659246720025918478519797943283652011527150961424592540132825854264736801329422242474672492391234834359711514716637222199776547920638611691350355002136725902322575902874487955970651675764060354932530582663690063108524644225097722033726063292507151478256095816908305432863578481679829583316409835255337197188027174823534651592069179932882445169892070701439919815451925035468538104781055871110373367295441948434578538777172269286304722002149648887427562266801036964633084022349948152720393059654561317983359786155939797059425203429908038560796810109938825897405367502695255664802302379814405767848485106828881424310227630656394153909750480999870883000946892791655934596971538619582296836959560596467600596197879049206723095694142358576301270909706483397276298435097125411012149397943199432768418335277289314612993540492228150065597877292097062559802859435391222528218403791521682720050336855390020470404369016390468271958461274766897823921516804536506143414846814509381544871784518479657988475203008775771651635968183263565734869419584018801232277809289997246357927335455062481115441472100869625246690826264500891135463059514009861173702459653305217651267320527105632339838008950899797341258413134061157005630033850386587858767899836453718656597770498445312466318160217998298478794320358320441641764090182389650543976325582172636775949675088278321079739695785238061661375457756184293443822243669403464135123223887839569546735048885720826087704811614959858713356699260832731379112095912047323518764877152453184708683939808327245522250577119485687012682389321893605517847391767981708088514043067190132397351390990151370527333912193900734703902750050310972186479876555877056160426809204612726494458552388005270039923118036351237117164128537462432596958415749445846683777452927548844034721510969828669836368119731370859938102074871379211633716256984629546393414549293601978817199539161249780094266678036231054925525142049710963245502703115821908451126689645069105796418741845165416967145392876814761709330713343128020330345900113382004555763412360705627132520067656854428701244899483831254681934532433152560388076614654623226259547821221537433671972229384578842935410994545004655402814995836109555251292981021363202168997252539693086448337101655842538448154985514772356250075152340242506183762221135264979308828079801343769484942684202820182515069977942358498497227602270477669827916792559141349986519997370139667683738869725352510791032777547501930402213914354718120891907058001735018507971635985695918498242023136107466029931951263873497920968809609469561830246602948678900521327117711849282517441680430766721973813041697511039562669454723451162385875922744038365132857249669841703823110996987317869160853740594036840890016539487877945494828259498908869424555689621625189653097052847336508431061175925304057773919140211898668220314892207000474747230582140548978771710606046662548756021973325135969947098450811828657809924647852781101608085599585071062002914369134770681363603088248262136840802367358978984801255209523267882596462496663610219741778216177701606351688325686176769836530841842317855822056607447277395059429903979834064000092486474741554592838324990931556216014961000947013270553116527166019178270567702508167574919673422396843471082422383890694249015580208086069281181859102669165296595977085951010809852464058251537490584982849119712102421415802524928463980427005147740422367933975740525658360824946580225135026203574267838934438788922154640729179594457102747909942346988840584628448052792740323524351648271966844451146745998343683282230960363001678540712816145728903108385991627558060728923230139989142093467130223766920561037131646183413276114322420011263541940349052406704538706643354594671264927890389277890487993030962080348032109637423280055196281940957412676947170338319416986953715530986202983614692675052833291196657854778791098064737272234964290614304979255612023515556939884687963408756110904491441745643432529870375921903859520395928844182293206188904057925385431910361275439373695933577769355891230489324042107045394392371060799869187606803340128206907832401570782065725537611774203523220690565366881530536141111190423587463712937566326012794219207390757774753983393668116998941667473925240344470237249548121438773452119741391092451959422250409716524234249801029213123812683721721475016752211634834509807625223112703061466661616379772308626632863735714860302919168259854011912587346855879345252002876049912980892436798966916078026173763103337484808972901355457683348870574490797730181242476102299063554754902998989987448172904411343961046747480122631936124050669707181415193965772615264715611550164870387923906241808970999885135069920888765945549914957679457169861688669218461533666261294634156645911085632721201527060530128287472235381572950947594821550388414594202958168031014111574542211599748052884618794393187266627011732553938999557980282257877529887277951021324947094267896662218330003065833771599991211431693972380186860698975011686141299862749653933400431659352189203515716467816645521871726820115699434740619709204654561346817896006083685663047943370220389584423150154157204862138003282171888266440639369553799096324695972685114010112822633480806419452893006882590205108614072383499542153940500479769199157300563176566895383999841478792897965609554873909793446315272084356555312491158515405356273263962696117810533740269650716666599396451231465024946210095802079423235130887269916233984730819618677056191261035104813321565518868775206726676739184953056259062332827605909844666867940548326471459906871904018472745765487140905387413950138395350398010990704922210253179844932843793225654307134793847910484266437275113861261903281841284269741067762860733902913144021393475870304630543184110898006716798687884848899245312739399253931364108211635889480492700196162460700960205472231843360595143678676436263287125695277719743343100293136951386716801191077505867420411907432103364645731913187065904514520082198923862551976681202253702186646423942958446000041534763729989090205877545372050614464848831881748852615431941557072251401014150443307706090409083675997842626988009455582514213577108625449725524841698005565972060290303825399188436485372599557235246202286508277655940403584897463613287668388361843907754587583053716809975732080016191071808564173300510825913871210700544738062745114116631357420873703899094815882378805877361744372147097573189231641527746346018097449310092291334368764175100688918391935360130292155314260038857887006613376980774219393410421461160134446096920672074621106578065869360467017860212409434606994749586841235837527211276265870497892627667848187267717125387092224595749052738782743656145562892069010649457380785040430714401607038438140096344512793533432012716866312701857519113849882976931185926430291346082427907412809747966931179141314753851094647675629627272958434371029057893229171927724875616156254768163574820909681964371168196841401534258061760141061919682522466377860732020274654817105901772170265905597083537714337180505691758268976436458617867162072620899483705140014167365692711714709700837811079856482489780599923124991069128642001964571093019782189263833828478586163770875019761010829830557807340160869535363169738111204083520116912387799608357683124360302130543301873689820961729891539022048142865769854541797682580460630843223409500279801844328276732809423799980390956574086033280451481175680553500559480269609053154653398880258903857894544839941549380686465785075822230677785992565547511449862521294533770577782775418413591051548718653848511420688546377622644144149542799308249048438514551986406219988480379462554355717333366157370771625445036683307284418433525704253199472629364684823208531739052896313062501428172864083575079495194522540860060393926925181615053826859296993164931772151908083809405679204834604535133653634216032451373947768415760973506258328618895394756660048180742430696599781641867179116902793381407949560823826952931105537453660156869345850925053678916590994216797149599285162244481125315443889356305302930808734417423178072503710255618552527842785427540799861340959750522636788729176231831166224389033001580248835059298759003507014876965731830788392237963526344454040090169363129167350081609488529405338562257229609857519377858027654170166110034003168467048584034043768107109002955422109489876367103281246723925727734840990983043678385610350242176786257871984573036918224222422134361364963011207754130618692658089289777823524792528697023289784141342766008917653950426961140527559465172909486439502765251972640922366674783003793161055225244874730191897511834219918524103380873343460069254786371853710396040779838400303554363702785824902709287018017992906199402437361987030845969212944071741855604805757826142458803416281686883663556752561992186467021401052775375724322814544458044352373070639211676118153884323511614152876195863755250379386663339862657317659234931669330664001061292651725884512365936116488354337837550768009448557079240211340664081499625285480679651730348882196237933394588020410285297791427889488422057403440753511761353258453639552019619272435050493406381677262298830876104227869094280497703481501995471857718074836977377043904081685185610590168775793629574175225101025262233759947442280566409933565690355146523014196837553485465935794346916641695947151538907449030504947298829362041452466143820276868347607492154115770545646128959997042413197790992022598924906000051684561165768090266872205000860401218293090195478716532047428117780553483212326897307764561384290864079067037576278412080173926276337805874592809625268245729520004530191186079840146069971401698788107113229530264963857498553798116934548551572460066311003247799934483835441367199951322566323895778497385937890909193038933204330854052167260588770504030147846954115371559647009743696775994245388289783741018971777137313991450632882905062548531398745862388303754806894385784374655625116105301085125356743909953027177957060869298296569222442620131688623692539620634872815394588439035611199142237299442632031923096841943950942212180706335608039561178362929659975801002362733077440380609594232143082914379385197993219675701572225800062771385453702834275312993924240517343018630970081993450062192434972055376319848244848784562130834881468171376147274650108683525186262650432916106218713096347946344238146737152587826595215243510455219397548149191842464086493713023887971071722747246421977843523985633697815887755421856322135078609224764701529806191384643384725117142299761889623104940245433002404732740344437198534065011478489124757709644695824073295723520157434042447747706958814404031386814265857232846500858143627596316050372042445913945925929068796900539441030349218717861967002379942922469017714745327782107182438267635786449383614486282744856078101498980064848910343586513393034226166438659830412171389240384420945593076440621391921404100582451832248576859848509031729394293769231517239928518139933713210580208659724458475963793272153955161656372830468853619049075019644110155570770571539967772922601898323916039043282595956048456143410617071342197499294028616931524539880876156109027884994725951322975231670514378648383032050171538747532102120430040685503112689506749859909150248112753357511256770807679142613062521341168011512034389655557247120422047691584266879877909416771910083840761732210870931227037460395376715748663507257500085997603738949230996022481751634919713418030578978051885969238741050169731356265867787706202849817564615724438843882786533500883333158483316590055059221305421966588374565763947900233089350759335894561767677824108112860232494068283349744230329611849271222077915331526547093834350538803050733495951633843836228005496471335553535266064591842041662741175197597703764133283387222084437479518651526745106985075516807173490593428249814396068569700283067479216496401455367669285483171012327945837597087767487615637937458360588044438208406984139431952450849870289580461521803437936587165588773830148760879692535704279757397006493945642870555762472815321283095133470763052536642970089708071568772200088104061981904115980909993350854599188233867602815788963444742867860247287742673146004273313651557929510589050649759763380948238611028733930788954199035719984073796296125637361822975748920805288077483311295517201637962429350957581475977572560514202249429183428498599572670982607421865471683693987090452859748998238874927050742452822514179723901618069659437941007724409498639232882991855779411059167589464459291391944887220987160547129895951325489117956184459625153872487260820966208991048306478397055289768475571599697343661377912560033489633689003971814672625726792210866169447922629291991164591612935594761804672894786258840486403443442718542377888536821582775221678916458678257692045308168508533726191325443976869801268661315855953350473566415737269943648440591998530399570957791917349997703752144014619128599506036752197594930252815994739849312506540930363081357553093523707028038645725909871743701883867716729581434025044131992382603681167504468648045567865157671829315748723688831023498031704248391536337592636059472936985115486319725687643496279353994115065165160205526932975231389771348005070468216636599671484117208740781125235748807599947168749320388882562654751287318500475811613875484772878363164799741502079691671063106594651807459208473052590187795267262558543470046240760220649658834627460328375361850118162956867740828512403161936395230945846397819974777825538478924292448487960427417254584303170294144980956121966628190720681230541302561724353949146932023756027309069682034429866265169339630925941134083185482089416717038958308502644417607963583821813159241522803194353952543616053584860280414670020507701746788891450149021864990845941314141058239670095813114252521239989002690148198764785359689317043051056029346718001852106103198244881890173604412542666129581050655906175702559269011105122211167843179384868317097763588987218343305074092045443128332428951813118592304951454575883553167803181756840127107844308673419889729661593739514665037419405793095918115949224868873152043138927006412912042365513523902429884793823617694227637574465436224501693877082073507818501115095818976717135861290455865760350020391916577348146508682623417356230724664314589667304060897667900768402004665953041015718118143745106983626229417420451799367363633244786984161467870794431738504143482245416347054859658401209511483044441109807147362716294438069571880057452244728630827996886781438970804584415887475148914717665485889104003111075126592878850660026960413941431613350260057033694037696343767072093527017619520950211429690889815957232626478199605861341357500942230741576220343651553082121839300375007055586086161672099666072194168896423943591538404803528569882630782108201842454036460006218064852388108973246175915533633042983713844096482331832462382767380293357959259753581259421618296659975466512841654232621506691169071777952830585787185906604343393779639027663212059456112550167591884714584392889657431843532888682523055273274048514617411016026958979689949918529729102444059325445489413962387873826817423436536707391097272016393530839517274715704187256656087695493407456078811297915393134280330792562476626070666425104409954327127201473141018518749545948247665782848379930588954096033617776769624469353078815745652108709903140704624226234713261008670867150099617032815876565561682893046036479704652460057301935457563491595034736146057815964799452696040087933376527945371924635271426666837103741889090577977009335222351094825007972584799738443308358337376530382693971524778633383993799248604020389229295123063059386306789083908607984095300887162232534335428093335154684001029411471068843048504425416119085245681644789167545560997728973658711547297377846075357675384247634086159910998551620685487441222806369046805847492810527678550404576454823309380588686927934875985636125717712481807955292759146747007160940295043570120728241885296930264492681454946389340731474161517169581120620029960738673144516348205851518026547155178894153713140496138405965610915638608229945835350648572961729420278553412066250357360951940982302852504922807128191716376388301594769845250289525019786362151696692706722610986577387374534425666076853326989974190237774584018879542143645194056185711534166883314654384308353412637486987968450934435098218599960547200977231521560263839435964484056034858720011946969083652054925793798325127227533387966916813726307842520396870537146645347583507795237109499852431232083167129781109947074909895947998467759735335894244786265432434795352563919310287816507674093939684041190417418568249615727186582681490319867755522723116465097440615632012833453497131433297641139965663227336875721639490192702442597431170396912019390671167827235479670889177632800763389734674618418007490293529827228977240637409125443697889300010495796742187604483667373564028961984508517737610010365259649499556321442947974968825186160278281843819064082819642791981218183889154278461636785505423218262946235711598266812283777266405961244842129140602953141444276009251616224016721427955379171930359808675938906691861029360688571973285837578430445828629327963471413571481052660532066283745196926518065188059018736355311821816551140991111776947407176533048917053707203084119813758515582901781107056376003203958820421207737223749998935797101591424736293641710912815027050760142783591724822113044937467181436917099513445517524853543072154069497172245925129642133824048614781310204655103119751730720408296652087011628104300764414329578349933780957631277003445570042664208586039583786774753665744612599581777376652525980623397726980549085859304763608611591281868195312409202883879292472631448856530773380585465764960696933254794356225514892584754484775658831431468585491640717925352247556447779066337883766684554115107455512780745371968855470937687320713140069696584617851020963300678521480745757908455904689649798335396857345380896073839459602217839703641152532208560749620912638964685020874340109680076093292786510459086311503112640702470408483849218395593494650937777574822618510228897567542344210557186471948305491802966913128874896872484679549535672167468955702723786983397479353899948235167063691781941281563637033598789255962559430913668457165656401827012705031218897966460481888995767803786873738107371029345895891283090025886469524850905287274680080403667831348074404666021420772707782879651876337571393254526727871938318386057048916119415084817726830334194895364406404987760420504887009476065830065782548869484523717464851421075537732449820932404165849986923032333827656172512994918531512575624255459538024797062193198332026337160720126866459873600955638525696880034131998331309477258870524785035087114663194494796015178516468889897114296867259442421155635126770693126494428618457057363458072638435742708534365853852501733767304596141198956575669189658514612564978987193525000338044647761153470010633490583558735166974450073030667593684355797816860276038089263651255864066957853446395676224889521533492124831897980130581885948840030836173854210636962252539698124252589738231278302650138052276415185313691585191286265859662328223292573043414403973172725073379075102739872384799349838459270242595661109568312526489890726049914104707114733792779634942962668228964082218413453069012958301441629915152799201739031029983513237077411233603956086361157812494240048127149855387363578224558752125335962208106743800422095048647520860375699572451586761590866275295534051928484162207005484880943654905997920992511164895892290079299041210974784823753509611777219268176007336043222568022384321009405880507586924704268508161942711222562454870399001016557332903582448140707874831261757621972060517544548104277664184412425572708214776913327970604102130590963834541799478916896164837090352652523200654151056305302299722227523679258513587956066909526423002419713642983293172467637203026270682998597110707513603573589604818696676699055861287740510017158594758278057278110569669475284678556738166276239740087074929651530098915971042664394110900386088422310525846249844991764501077567024105792228937702169650891339020516853926740593140948960116193032807165572188092895564625422447331857640696660272206839316542370952000240421921031002847961949371385385862975729461928865474942732840601403851682390473574123963711202301717939109108345231474421898714161785064818503931092973735354207166440796990240679125897562746616825341096747421951222120042124002896691980172555421171910091992646881738197591059001780935682473060162560639270503530854083079755087879334141432925731085405984301174353517528613443764072657524422207793738997993164021383429681734294340162912496915746128840922551039988799969610441799051424427810878495573943801477148632787821347004889582078533026460887433682772588362347420882088857763130446193047175225722892985482235146108836026418969008208551045058058786888410590468335827743844253492068890531028244732991427502693974384132539979136268479735589128053662324669498704504151693639233790934896867958133879894556835536409092789222072505911316502985264172556644751422691286008240415212688997967301945355808743714398710771230843415859506481740915274288201276001851089131716816375814343052119981330228576442997904786433313547591543134272045354791060296692562060260680885663013082250617640176402450333059563447806535371956572986923530987361059963187122776800339065283667087704491507459004184456653470544490086757788774485018983103018519101265781827451448401255318079052780114690514994035116103306921059556114852128085885977588529383018538274478502988985219268667644715469809142105023343587854879383509024942138962207005534600154864240008086828992292299392656908773886473732359065741004020892967055694261783576541139260183882455657390750689347549772222179840859212891767655686905754537243557033590876444304569279319509550393196140532949764550778566853955902405649045825967150315407672860783386438953592373400116705532289002158969292812540664018479117440346441951055803189077423327990722588407991883450228147744670231411910403626875674117551052109708109020371168249950367096562625870297168568899736970198994036203070778841331427417124398271646687420638375759867434535155511183653685657531985986530892050117704938262890478073802416236764820416528663702746448002460026592741667458021319798955195826477043715366240593681346386045519545885738597909485093088703765091625895064744240144147516029927608981552646896456717583184745041210146031203200913988014853227519550951061488975791926115067764871167470375112008623551923127363187490932414439402395551000123409281512619246804862657301873473636747157684887634335440065705719760623708403334654561638252631036211753794547832188482541439212281243478348566296147001083669717167984710892397516374453303424384957996847166786390336761081347943023024396537219319716395301222688124824956561942619003836638351576910502963065629015436444848343927427234209978672655100915105364758411857891711964143754287732402968117756927048253324387006025090518625702632962614525251845694619433484419321937293003851868020778546758667533137965231502844666965005618199285559970158055845113071289363379588129589135604352315541649282487951464975206950229979804336087746093806200316315847212890642238762351338987875973724684413164505390364722053475931969898040085939169859859174163426638429535213125468032713223773969286316229173346931473950558877171701101474281993887275468063886514795687484468380799973234178430647155263897068460504411737103711801343380420474342470477961130175472704867706468713808327850646947051017419586188452497352033791474981566664820443409494226121132617071625055783146150092259561055372992332785015852876596809059049079128904738091660338161465807679282792137484604907128522600090488812004689491295595789087192965601155321815830718248812012781431742767342599612710427004786588451696266579242820061029300515823509364399038124524621343300837606873918210666898879591312473300581374836342949504565383639553056059900519357171495295089879932398388297628690035990549544216834051347696181796617971871775807166806723075356795442925031572432180597024544733471640210109356789010184057021479317741175517587518073990426604458293583187906258285112859187350410452432649498911795142431107050514336984430831387097872858552072865490615338637277950729657379459149913533731750139038413799412096240337009993683483913084757695119995733629197391278420283398648747443932708129689830016939217848088496176209325767956192813823988898724358059910927104453230868166348337017113301378672302915413842040159822247486482630695400656720608364211006643096409963393228597426848519547276920373412741752023884355020010100025162870207191575891961192214287902760848086905391862197431900737331865218537379583735433438990095804760131357519792185243492807680888790253404607140018568667093619673470333395771729712692540358445981077278264557367519898828912031507925107024819733745854493933588988924413715707967383001484370640026659784401347274706236234519497112375401041427300739154623330025644460248830673421546626858238177022524598690604446046679746204630503472061953311095931156272509096753099268218177863179123561342513881898188950707986453047210495972304570446942997112581409108090190778824784053222973733756727025370118892009712891539561946333581689955950119231183812254304444864658919962103697600862869433677388157414667065070825559987340043860164619127478864666725332778501509453419694152225972547407605243178528444819386253712869156505301247261436581767476090468247456931262336787539275315789390332198483731427221467189782903090502246881569616270201761355305093062402665216609931811186491213444751033595798542903491104122242175630978292601155552897052629965613777091863069054792977517686580436271393665569447568002975563385393272253372758908141074415217664621000709090742560748020677726857877912739220961183481545017333876077925678279847711178701739177849905298769628745632713478940870617539568800969166814334443595029666720174621212922882475037348611245700479222156518034240335180423123530776535480304946898438981674229214706101090649765787896285490331001540627916077794015367330288984140047064277713546163293233390080572322363447208013152475592718269005959569681166137262600728625536124442571969927135031498488786398819263777941137688602936489723856453763999250972422422023810689691454624066618915338608484791613278456112788641695878661216965794443222469596306294745242420606348337397638549500582959142061582993629733479933445060725249563916143960386061177411855451417134855689304735420882672532930968396799557022412286744254053918628636081048063642972747294094703917418005992660565410664398472531221828681934018842202563507655187979663813670981886310705097764072053201984595165493298367554347592867086380130776608506905625018021288683667046610280653433563286814887958304199355708359739500375012684360112694972474246909853324368764265314662175017524308514629459988678130698691700704272983200566033168918610852608343567113661365799210309912929314588203735538927192373625129231429202244832190931313042941315779102630927823716180291193248087419990333483940740716517690353401330817145092302081303171674350426728506723709274241665099865654799112628846401486221735646680565142072808321684333772646321930079474033999976987551348200567466810801636928005166947662731160294145146920122154682941109703365234076434072305126864231852627805129684911798056489521788969307869585902550230166720713261463715642084135691908169578863528687249523376214223392401213156180807650742768629918994823336782916675301734817846293031692187971923715964113531758019253638034644462306788339707971959973049438787371383250954987199981558143292773180934138388365096789881948051320346939322818782654401492092932903232810112574613436545482113101724330959656380355562766080837300723753586390229508266037735775583502671724534502907490830376883697981818346109817587996639407758258912412769460639196477428894068618504607523012605336343859079415881980757645907665664970885965064269867758408139480902817749690720591337723455838721172775931618112659775897695904836799090576620069212800524578664947318214733042196552682805933133568238821622622536639575401118301333441948606860726590281154655475570295150970257523034832847217661574737772697938171344829928492548138928861648529974338671793792623294759168323811091262220162956016585606004394622581099123384704132816162455238340813179750131508072635494742363187224092683624914996099032812491813304582433203058831807836659376062217348349930618134991964186195137318899069797322653768776092237709476991252094360542543103049063979132418980154426911667737980229084885311903477708258923286036674157850567875040233034701744617948034536302505581715169572478414125293248880616792731832865529089010240852439566590928992973635904960546368519332291149481464358817015175875838017753742422714714423874631316863710586480342991247654918462330369082239766569131244856589804208274523635771132921137622133938920643349639830342280967559999649104794165709771411430740345386192485574842408960332979750228607616144422506940176606865360611438513244961040602823596079594075934942972229177437862695158264029656784083343776182865327879246203348002540356434001745709047422762244598983268749544477057727580573214158032846943475653554435865242676748369636158116403984152582619928049578341211148877014485976570405613736583973176107003208239781188180765099560420678427375375062271459628081368000432219897173404997620450380513617695805164707456778689033795907183463216137513706211333029233321573887437597039828011707231906528459972157599708487972388218160482282878221825584433349846378817809602565582633164187167305973545424565477676969385742245987024899888984585129117145370118174873732236753820309516055430308861402273196210349598833352421906652164440810389733158139094305482975957235311086037451903378926357847673883436242162388128680256767463780164262114420658085115524214823732294461606634735589344817407531373682604178963618546996674949764656283930861613747536155346940552449147497540647431596897887013213830835059663808714795425120943354544919122088799853816436113996635154361875596850975824195707351236609190741392235003044687458487799379594680121431129317767420622460809937419269455891974519507412678963086076187336780058444807955365699917262674031161145252966797083503233881491730446706184720866789460234025471925547761593857239396028900941694558672834535678387108611479080548210546488675794188562959168538017474245788843245957184780128527256155028759163119926838932130727347155149567285816484102351152238779079180894660940446273502503121352321090232362305257275241857485136615120282236861290105587095879432193586599970212894991558869764769460081877774946654864775358937108898694307651676570707313004405365625693295080609592796317445504735291437409469342282558298175493688025641178475970926490107399923009555980236733425979973313967758748110816703684923253451510168731470182912626276190658732773128270811621576835686552020489630917422395832452180930057994244746205907421969958975137091543215277426414360327237610283729038783648755612539697113166298145631660292022523620817995951202419861679400002976820419306437369616890008573617069543498402332941284271497762328153760860657384035368830973671099096660361359132001938140654415817394695655191403012144532081726551707093494018062184964023686432743874350730291281137461112523451487242589359145655552799688563186901437127280679290727843198364841148862243907308646580588386384966786880265574527302592823288495247890962367413549938739013911140641658541336267595975339279092685865523958643081033612970171901639511353410794658151666091630640329316389026048239654690969836483975443851612438275175916817787744951686773912267298018834795522390062122415663542818937621594739915492516726712560341320686437658446856930599274349026816163621229543124758204016860999193981652956720340466623152321747263593776722792813270305136009357170199326379695377551730215288326945458232376226059263573396777767983957216479409235098215215041096535296466941792635461415656274520407471539610115488640491942002412586366998079194042332461010500443264135305870464903012672669837755603550495774017637494170414519988327026190978004968054318138697486939578751076245505778161533515784407650729340022180637529254898910221707755370269491376223954225677572951979324011546718176458510621047483302187621840580736365446162977364636101585457275446762636361052286477174088157822346233038422747852205584813105722959845915536213396680455587106476117995417379446234659952651814799243303062170999139715277787963746106257438430484811434754799492654593085960633798240258864258974980063130917326593221109116065120885165652560906351785053583743336883332643168715208943716483961474323347264847774693785614594628223879147725079610088529494838167874123466684390370567759251160921614697041074822856968129151778274534782316514436737511599543404172806126146319413405839827482683314823535135626505432536956459126741395753693939624535166801772037188880623533860539589065542223812199604626255659167915512039859089501646558012016417326573378403092611839049418468249108610570939240620149634873834637463842955343466209928704706994183798052977812713535110469521721294649385550047501834006899953128677906542044924171572290207313439413681748073291952826533420557081131264870827287816799151775903174054543193108629964101410618975083869789959786334183554423468694882987445860558058193327205069267351290763265432845009199453549457187939030913401678254938493067488699249625619033453247908129959105035482195577380652687735632190945234520934667824009977123690203638774503309503658290168234065162539636830812068783762353395060024667083225703836255270183528370744066882167753355773318270320652332315364948588871309115780891164007132106708558587252910705161949812661565341055679482504059470257156065894427495399537974940077992969147795890420835721454585451430082401501609931268588535720550352051125627400739772536595216246463193331294133776516605826599826362047147384629861593532627528085483813023487528299262365849811876675282219512506020321232506582198111140869142905597535221997113831940646935320730708302332517977741382383905183220868911662502146805213436516420564727199345881218498975770372311077929865105996406790048488619697707523826817206534106863049136819817760858956293207609373754280436311364186975993510767753099465861833791728302401504198282459039557531465768770224697247337009561248094885632386659511459300419566162836986322253601469941618125392024604493980765901720531263555705743338075104609701865161987350284955915046082232313415316100333815006721129042790462771930753678267244634311464762704919777893127657383621020807741639415364302552295401485503692698208326427877985256908489057335879529906361506659444538800243531935988274766389156312030194346278697992532411348175746506509950229597697822876603456031413983554105592132714385129862608117790941903650482093519757393418225460618443021196765687186714803046554229866621085668824315296556282619461656813437198638588125369522728359768169938651192705497082445693371517206278690287738159393937650337446688573298809731632298085053180758611266667272701628940236075541975340385660356275653448550353328902323337708430471768736438268316902898172380312640141288557202675671252739994032946990815254188129642317152826410274330024175368962828670036875183780239209115263244096862936250313388608051213809044748305136183049076548371846754930431448745254846090664638517201069570040237659254210530630932598152074559969645902336107812542268478668282808534772654211445091173553333639029268307837542779732116375618654328260566879034720660689138841087755980861457960317489154700723234792304678227516469727187336030860694443684706288686248496022423036879546477677269112176332434696718751510232353967286181925273141274767747135658763380644197914949158073407574873392202956339452832707407343123407359688466423186942620806156470230444304769563968063669758120119328617909298185055595526358623713614990333609089584666252168198498163164068017855125966230817181284777966118657652945938669452184895911102092753614837899126260893169819031511928748361181323224863057882272385184934639100121443738036182151250125354390365982331275030043658062589561962701765463717816938245421160194981537188221534530302454037769472557736178659732733589736823448509726788408576388492966393738391055616821326643788098632075551605051252392207510556035441067409491756897084645831441482049835207860657739039552506855815918112452095596904182747161662355695887933264539112270497224974011621792894541853825793309777684684325529987334019261931909168573611011973343178058204027126534517217010892120950139631834672005993629402108364767428247382312800414951526620153216442142702171409034454804975255251271878997435321836949241278441235903755127447240484029111563038492160073723069340324360618978986230032954730682351925060457491981777372852036132488052422200820351407903813839817544114401777982706916281878857559148180786386055311378857393504236310364146875939404309713334375813141239727844252991718415502842213547343348723327492272942058646189953967114911363751983673821404462739906638542523528824977806485217292273860622489758611766421050843828703557027902326171449367404037619748749646257123755085988435668321627092092471590169597475435143528732437603937646159628053728259211748463016345634748028912292336859583182641798613395790877644180387962115094554374475925511122144930872973722154546046156421799887803777651032958214629544881946291631536308131825607015525802744239635345893075375135206623103569937206289054397245791730993676410928953623267876130713934590984805775269359266455540728159269275772136565360413077672389386199146551193264620995780254186673183808042075953855476500761478625853766106318964099861829847094606425168681851544364533329586462974655052601005216635092497130614722125443246376098358131726880841705325061302561451105436431096224202820127411066153305427143524029153867071850566418553724195059686490821416795206831511940746979927620571606278327583419914824178961377138134351861812721266695831263403799218793657047897243216623125337292119761543569070123322040107692573411844281996733926726123333754977962772451513127612604910479156052777849094362864886848622311673129076540632081445727476045263272283490306224153970120747361947336041872865038999847626520529457802538638562817339157846405857672353070111912486405398760891930571736178030467527309373746782945577487898670190971548370714536885935978830259125194827919640441277855411642379317007476864468451798034785849358672784078129737587971063077899381769697243081304965407556857648085586054594558038399641952086666959394206635084096445234337721026286143761957201896622787421675119353221942652658473018344538630797615043494790332700592821366671678097149284541845780691750333954004052371624270989813265177990229745162444462146314771802113575651121782848475093182436301418497928813718160906883285840533628583567410046534432419432019056771941898665742958182276091897788717991506801584334444919647675089091809124633602130508998712142034942798621516533336551965980721048503816093429400630922454020641544860812178343216109387524462681511576973924973463981718910365916310140083851778893002946205515758219207038767469353935579632863726259104725640108459356889058315471829053819508860164106191304960333765272323662987928278955356228185265344729720247387796806314202297626453967429299347650801627837234916577502978089444138686418992206272182938847093848899639254817130740231568584561717841699311364852802696302053405340915891348405085945627621229620398097513026674343713143250650462153007390323347530162019490530601225766180732065915653839627342887728533269673091590810573932478610440786534374216835709161063041118137471615827840238229656901652326416329304227165992073309694743454051582652650923791186192848599298434257254570984628046010875481099278161622566164832969705736494652172225346378266365393723317173757964728483653068088453628570396497381851246689191346101223706494011444051504529778459002413282170515178238305665964114669436683482257425555043061990124849598342028486879111116997493287179585545812793008735499553633247511509974513542324414469321379628082331092375848024876436838812492446764156417438112900263184486759886619617487404680874341695342392273456986468699828570267797445511688638021842427094039453652886060535643803662640242374862045560363011047370636506977876874605274739996410752983164921456554681813651849122082234540294094183066829587580076533548072038197850902996105496420095860250855803046506155805602250586801863147207525426905030294680250225027847744403427595001648206469573008459288790097996033661655286194498571375030795893250450018886841658322941259120466466138841623434632179611947793836308899846310700767004009902450914514491938629169361178767466866550741580020033083030267554321745738593405933615014861387301096223906366644405761800635959781950429072616792046813307945141025537545810305265244232294196285025207119522908883992878941036831852452529353881677242630672677144284577806464387653381356541114818172754955217318627912209727884419096094331816265088397745165905185034293475742024913372247769158678081636622864776903078990581245112668445230915639404700927751449582776027740397994796472478138909533311139717867815452814840303359136105075732723104908826487458921255711328667140824484269732135355345157838050271348724637712551177671973322379543883039247205352647195401565233288651132968713624138192278878976854787448050065854469212800459823476910181936777424294449273901270975852409080578467133886459869179162993544558468215860780238482666830166315197876911611297839857705098751722594985384034453977812440717396412047909524301102680632311080049353273786301092921082429784419579538736966631482581818419369272410943363768789783716442943449488722922372200799873820652198702323762219673427665345096162836297253168438421539201938232811087845711979601333004441825969834004380467838647128451084059306508728232424274617335787686277258916096779869794707024263679772983248830374493721742824910767439960925580035919088843681115864454855026656005845143197830333284013381438978242736931886826657502630356250702932071048493748414922547971120017494645709767756367355941261458386871556339971183907198652780101363941155368878208894276052186994817368096769644868136961798014998260406587920055423213949100495958015429858116359664878639219007562368562233444444265734145979431099065994920948375616624761838040710367257917738661213712115984543931645184235196847016255480423081027064348478565417357355023954725764204310856602350880513740836796077333108685459422288665508653629877858337723865825269721018755989275987241617683660636886827421670947303199228493739882521342668091928564164527164917448055500684281044711086811245261040163311847697141727573736055578569283211962020344216261828360077824030630042378726733047085940054908496923927127015116411400660061307199952713151974106638952249704610114630526409222676735719439561287459648216269010269336768442163267955155299865739993991265078287754339737076471847974098602600969420630085036198263892277646721429304764901608141526203580381912594845008511862741371541583158548612509571632339452342238831746081185285041930128861115415467013236528988025121270947693350700642796536852100146713768038664410531744854830567216462291470587617824486352412140917706127139641226752747334120834992456959017445667197984285268276337039592778972945868715946842693483241821344707804202472244847775976178192864732692166417284965152846245828026056948280930417688984019777372518590176809475670315120515537577229252513860959782497593104606857607696753921292591255477450178451208703236774152213563065063860988533030610854854949450138749856196835361582352819940524531187987230527116488477127084511743185286159384079385749168852913097277018340163962187351799809853993630560428291046626256199795720648627811663078814301185002347861727643077269839483515252529069676244127169404137754835464065949906509553111685045846600997515744445582240674477370829998475188914051295132155450615490828082095664342903801835590958527047817935165085540794226983698400635628156578248814317440270235431754201842723480640186721598684766236158410883155386137687300022979819787391467525282366988365013008690150461358929355319020851642571342059658184020666492276678225849886111363225831365794345042092069751833640224888666117836910026631878883355787447596164717116483743831282273195990668641543173814830347752009782278039014378558454412934048627925500428481918837829636799593775289239951902108921254222631145605886681189422918490788650335642389807640243699959392577243869036232848315932834079774146659050649820155269946823580759744446585920860550924333553203030646859643290023466178965810911659409083296161229581767995349829793597627753478092528077595901827486538912051797759536453615299536498923788528832687423859389240746988096707798233497188366687290178013311395654781236056633863278773792204871842212372915585816727501988986660264561361569554513506111443344917956516839106671015919755032803757135506617482695593786043098065574085069199070443657190569429072924668975875517843653741468786586634663433602412448066466204306569799721425781236799756250534989041801045899911045357265840429573491337279551838182510987271130598680703536610116917005995204142929905216112650800889890320716156992558838580668606369107527067492979079012126011525092784471795430232374589050392179612968294327903107454294988437275786801690489587703562599856864445109590858313546098426181357709733662700897522879208858311291124247234133615277635915092521445346834308102378156106870644036497831858418683676950547929383372013175854121579992907485184983167492773680372482713817061382156572583961165582962173123965660237097157988343034532688035170689764935790609850907712547665720818831897779083735204008299281089421352947275246362663452589259092278174371830394200895002493107104200579204495985579514183619942563173342539769730759651371886234500487596529219917970547350551201396659384783855624179223606711796033347757831171803448360265082316486750597425369524779993673853212901124944116843382452446944309108655941725400118433836910250401457759909026036133242643492674798682959582943239457033249139791006926773084573524486199658797019378973368947831019444555039094368667310448666313288819727817739197175844218163727152376699068449167154417319323631424922343901891402124586407912380091829391813360060005477129256851063725361740223365509845576647347207850725359259923387777326883369350539874287430599541934704796206855028542271180504409577062647945598014337747883929381569847998357612033241249818499888279394951883654244394178710691251592483732161097866078401929622245985840078550966354890964645427361337644363583254568651543063896056567121360853751922324959432499242043175160347995116049665975756172329971707688730512225483192390229248311404295890349414509022788459395932080719755628565917886648650487086439692405853850817106684474796526925943581329973924038581826633164978575525527223719596297211298500633170796983300313125059062488174410699198173238883151581457266477961381364247315329430504638348454556265622201785706065174262572085265715044704689985502136251648948487234256056575748476369076902167573287086863186686965389273512764125440857322706373923045969178584821183606079517033667132075625032592665173815136423069344293714841496040768955418222462276241855982697978742950313490613623763214559578639092801365928402941038505052594471133658789526904619110325771016184766519911828177437300548428427180849836667461425314788360390430709029660963023926046633645558066518435662060976605071129593040313505710995467694239608121346953565970008743793743836934406945956273754458540163316148408245580878637597390104707132801296491179756468914282487841806933527689216846412444778058086869987662122445877398637818104298182744340611247152556826398742136598844776083240069411868914364858831930231241329845818732716149358761399675934945514416045185669831975373386015721898872726307918377757469739200313682968010119492536860598907403556814422932535867635954437481627600845308622899868869656978888707645786274887154118628349863189230906915588775189279666249163755404159378530517027348985215707906032089279993894385977775326961698141954530648386548416439545512411760469908072518602868966772213635160893790365735461543563978924797246752649675090203822348848275133470515511772969418863972434453482004233936846697889983484100778043178756889906823802360067504126215939160558460197612407834030752198312650689202538903229156016858440771564206283585012830543513124319355715193755511966913540032631573868285418860350369150142261496107370922421716588237822503298917696316778456385935218630418636194333096599350403944660792253487755704665043454323525862760410461378277831403223785592960577354096810931282051195910416029271464396595186890692568476722186285525746150741938910240108252125531389084701643822258657122200517273238748716755234863680510927744355992378997212504242802545494439460805772320993981086935899615341895493081601632862779221089628993095368573110103613405502151000724774307832381169699609932972016444926355369090344114943284468022120679442924402841132464218660765781026994844586267873210128866943554619218152681298641317163013311277698957010025784872697312811963635846053145736302282527879777367277276698840397633992703728238677757490683383874997042925031615896738285991873033973601404182900221527770721307911887209815149522185133933390333961426704437151597768858812516996862009173399626308503705705497109030876901977636372003993043588882570496409977782663986739050718263025052079577013626402926529219447223503803707252001247792296998283751525072771901506873268175803842547986035907630731952293538524582430597659106719717962196994616854321405599451388321187825516991402926212591760840265705424628301226270335552985936676055380116000909383458715628400320748456138579045343825684052058612589915937283744125414241791958503402839893342686127722859329931002766824958132526967650231692124922684083916890637100128405834707024435256659075432146429634867951895221105997069763202773051543891063654928955567093683725903368135204622500507094627304337522498883693135364236676338179899359958908520493831074747788721745738639107428544863781218118760752494145730955976852208581842730691676680838103356542895959415933835290176001128659654817447198443774878487284852334766085575272365466723670372282038854566979059700695763842707995818812946515850594305575306892247094792497408462829516230220591594269704434069234736782093046767772048221474794949102029555527968593101350060070351745089436281146194511253370298956981302366347646762704382345051845356170472233862478932585677420645475551995369388991949671460442178398396486406080737848177165437562264681103887718137256460000035256576104433413267584879965987199810761843903718425351613849169078859138656510598181065882842743719646777350400218678825921493983786627910188966885469533024560262530318372809882340567808832271713562745987799245324477543623838228456105930305206956349409590613931624414372581087302502218660624614628111880959393024946872461982895518564890962121015197611394249531579568172843654166522292722969879334423807426892572917035075966768010285602195721704220786012963309501387709027798754763791056451400068996092996717893207809546675033050316136449239473467043635129297887412875174445415866534496218804000790436546840544647174361778005601198657057297565417788370457887948112884223062904279466931545151235812310065803291012957161355516355788601656704236807290121675926839092712198889875824216099558615831366685136407766598069698424535334319096069144921789958252388293073633719468509993921324483740977413059245230114438361213559395133895566255519683764736277520559555428362808420538486442132700481409505288884856570454434927449387120485577449011850688498819005626549133834347378118125328589225141257587374366698037546933624353770873296000361523588638039238335010987324912271708673137064013848868498063066013282520318122153900210491906589679257460565385593035726907880441169304004212290688038080304164299118548904781486487503839021440345239948922409889112562947581778535776988497173928510674911277010700248586897335374859973227662919331732219291524701172387666529462509075820401146781524086551256975706313121437850211111078274280864224212514690704485863672771878302839971702691858757192520604765443083801355328894122074773380217891704771160222968603204195317276168414234540942695282389798504647382728735242057315333881601916095929910954247403385273347714392862842367337543296155157437588896887000415681648560143494707858365265958682352943171569168136501252358869852535700232880375100907894361550644023098165900344078501327637775589354012023215393601065704248059168674815875763437657184539745039209971203623287487631642666836499829083122079478180643384884107187714704534705109475719225856076372334958611890389074286137662931461964463725740324266057285235582790753425956668904936558174671764867612801203054996864479251861908591351110953923044418338990232158650043442326586262538748591550626822631535758898023068296790437551256806983500964772895988057887208187485900283113007496048158569754845817836616835706767868203062235689431581625564601198250236680023288322870229344514201049156879822649370207236266592891366396447954673898084051836149809959942399208729548303698036802373173508030198630642522462130492396806728253395166953897569484408996562112453247364808835793288768667449225290821714904349518226675663049295842968338041847398032189019207045126158081489473312072761988554972354964345166317854657404335731941231212873005299157223166727563891388291824767147246218173388561437339681571041040446466466773073536728346051887340373492469553028259050098453786212857507501654489723643738402720484708040941722004285169456616540997283826549758634915410848843114245854365061869900476370760560783625745857341457805294217680314461736008691174526474590184326996491620305800665049709478137990330406687256496722722293042192931374591749699026810926669706558796842289120194499349015930412350295316340203598502523464764575440665600051131273197020530885307024797953775204090670994092358125159380179068563935916908322581167014786509618597611104519175671311061425604056003147210257275443535920684869600095823012070536742015050960756905754780109280924137334541420048155750325957368934407537396171565641956304179545885740293837889775334326422192661378212904446920292552152707200270986434865486408048145483195455139697952763553016224050718238231012828507688998632333738221213498109830482334106589866529674352190262362986342525555120591145367080224338706839375884488672623341263357259601819425938261580022533976069384682716525339464725784419704601444194795293608073290366170960098949312406344052033719992618563191226963207107003549419813564702696684315556450396769284679272091686072513904493352031298760167793758568088251148613613687525001633690929927915089427502371636746212723248320824158072594727268252599529199176683511003694053139860639386645806913808239868784054533996325409407454654734167608941399746027976788153644660780924931368819666153987623449685488598557356749529198601745152331412678725424761447319910410089849302638659577282652400742676169619191938451652524378557984164904891490691527776064767643119793645248250406443452070809271887758918616913633732832007225181652035696007924502817648299671563078314989821059557431224176249008055435518054622343016017731442477092457150590223451713489033963197852763560449480131279575908442928656959291667658200505800155313995908522140616300475141891622701848758101451799972164232972056178502689655851673456071418727938591348411284128498114278806163136331516695634283512024490741567393478166411126743184121531930399659826629444591258415082012632985720328287849485405419947454856049012003429251691913971963823577655087876119831010273473706155372755111969633491467213207470038706947344813003426341992624999056512181911663341765446320914945158140612693558547063611360984518239629748110129563851070009068726068569552094672084972630175721001150408205062535365573323827525778753257124130249935205559956279655580507293143622766613842703558199308970786225660796360208766044236083597190146173307948762509612477901366789859571269621059264306685552139029010595394754079541838485976887476780836816263241729874673777551370853043231993811778190063814400481855592958592752776876004738918785096108426612806643486025791279385171013052438587884205462678254937831851552832619693754469511964245465764112410093208166000773468602294509305445030265058536897390762860147590066790614960453138933372660250023396949777410765728176551523358790093002993239572050227188513079757753237417540125286814657272398685698860550762074372538851515182352818737163791168603672938868901145504919225055080264686520478836585152968153780045507489502613169644333285843505006238057130891584048086396006350886305641135553684319666037749961852128616405712596115667502972052647126748150616756483584471663668893204970565152350124288953783897185214185979908274142745114177618629191454198090295172110923904207770441282094408558246065408322432519426916491258557345178035519977915213778575951641331759440933010280029357240846707775642360315411331111469598085679464947148657534157539432271954538641454706964880082845871907775198429019937744126657829045039037171105201051011072041352455414272438541975390038610043763721311827811146658757059445944631941644098361650178554488338840266258388435149213327972609751157481350600246050926767875878981442382633594628639732144919491004158596973602021261867480394463891850199941576530919078765023591061807740580019206990952758844521688347306237847187521288987671968163190312348515818453153553391476278741425410483429094531951556552793572305261839655548450070716891787975884797177374218721406559078749101333704120568620146635318718734399288343417710192642125082575122658412532055782045737641104351950782021148786156710011550393800031344755351827605049934490177599683956598138398443559787388113639621893841797627968349163238674830532322739409869444142631197563311770635353297182816762912904127198715647660061974531059937851650037359297030687515886529572070318797671771816183069831935149174324926110882424669915202185859457722870492571245447844639182562507485134114876678232963873105393438745776462688110652485912997403155052579270037365319681126657678545326869406758813472877100213686324052753521210441879426919863930334670415941931822995662028160572789881239448720933232919380373448187802493065003101377086877809774400473286365522149013157263798496441835668677085836629512720117908911733295644997346639148210068037003118155336691380469459159420119428810678358696361702926090684604074605513862680193161741480795739235733366600649703888498124699062577938206034846291716203033521218936798881780860075486506419231446117961853484076625475968613140899401597508700135756775899424825673310998845526413247954355951024581548124842854032673367613085976548970833228593303959706044663892214030291592359496836215103379278837166242265555331158286187573095761828843084195086008827762889093060461536024710818765780353872536266040127441458197590381942912906800684302995988404470970864288203035818437826657546239659168576723281026139044518272359414973436610484288560104315209348432149104293275044560194083063975567045473871534681190453349010386709921788292275030356542508651876998027590729465754086725176123496620912354793271576550782763256528938774567144059320081021238748788888918976417150006346955466249207721719051446652211345532317962844214841553764207213881128850536006482486586634130906004314685598553546020099066240197671237226495157643106656328203687671500811082232200602334402076202337200800802811905932182514664486084780610279883171811369058808176192552502295304021591715769891349168923029676951238592950061538401896247677088624734616785622377759268424716093140860417654746690488553767987095141653820611971805644467661723583541014552311891520222358653931443081873984031936537127652247672107727293262462877236934768944951996124404108914804389550358610069343100975672110504960694888567222788158357647036316524568145408270413611666593802147483079207520617952589750653626384773979333257247737327121784911640194531920243720734285108849287198722498030864072012512922120711362205166177742924309381945544397731597675217865865910507845781034851470323047999326944038414653749969573303979548009635583398307706642060411832772213728015167428849841351184830947533707701187033048009030152727030004619229047072354873976196710527654522269773289785716943523918432356747598113592088003856986765249153502607134026952613153598183327542986455452100208253710062951343880427865438809233410083433545717797733609728374712816139505619772625771770588745375704579967535904889115582285276602265636941723153966344784341667803279002681149009958158102055931453878956939089885740864869320071683711348298910110776887754678383153908262014533421597585193959707989446604545412336097787253833670176277501815559434744399474613866742276322086744779191719343931528253106517313695774995440639609268148195441709182163831134529645990537676335589690396728397111086088211786343160702030772586867747234642723717989645832150373142907437169749181123116466886113959627105228200994114334696763453771363059055835316079923681443895098816931515391993293659918607835966436968003789638104742828241462618992664060417322260378090375552742743984533234675103378542500027402576025593176246802633127253904039609322987366687519925001350342416241224226613170773150721017248433417411481512380171437219634549056426984713846391379869905144187160651406356917360614478445863325573445170448653036760345749353950715868956575003621052028447282404532612181008364304913572733602192725712737598680103519799551759492870472649654124916729893163514980471187768828564315459713021217358491724417519253422618013229225511639596348634648130165115790966451824572891842477528584436341641730237390929486840074547612229164364643606042991976904968509847090119240604873560234831968985889214402866212391924952779519689913968717639711876227215908016459403038739749267510590714438927102917506753063398222320356141948641483788181180823867136011190070348496621035863338818233504585719808395431376465733733731892995107395414576421591570249270995701227273558821584019118567562736173097212228557972741323312576273095436624537856592962943406814389783408927082365115192067862178217583972629698812464655285641567390724118426224543084903119414597582148246879512374452847267803992137973414426042935128724112075296406742201666787635403772935435591657178283363435470780659451408269312183766562390080661458127073841754660761327403757664937482239595783978997019617467957304608749274445438706490866444107004473089256638440413429912374339061634373046350451775647085569427681230470106896544137109515022733562793899533213762039411056107607321918406435360184126052765884674853316996090630407491119783954030725141788142365792676179275245290896942931323887383120225877047140884393719088258959197212393640059905139690701953986118918931097584014231669726815128277167009323276902088043553494007202082508291971965561864330126618536896908366227458240745709748169901408267311531412407641715533913431578048328932942220859041735447137436212333418541057383992989758646113381032647541524841091325151719183154598737196534585274223491547772444808467727945610836921493940196314139962471300673358309794716207192158683335682920813477551724458487316873208022215403019884077310155309445028597069217976907463523764505386527401658045135454709449252425486186223863955732581198513986834176023277797856079332167875692105550956100827534419442469093531496790540707040395706907043404230254920482389897652543042015434495898256839513859894138317480487917770910011340893945181367215192982853757754930577388139627161288179578638999260721212209944391318707684761417047192076021794198276549662008208405551607388310127243386677053908610955977069991499018932173756790688589438176705281341349935439522939103579709345387203767673447362528603161562563258325779565105702036988873006526709604289405782426128081081296361366922571414336307328210711902519743174653732587201192511754320873330919335575408028193229780675534243819092263862441672142358443311433929759735432504775711657460894891315378750515281781560114914666490434875422016493326928181129158424994368167991005885937644206999040322594722124113675905268945639361632262747381681288787737995472767501432587096342912098751156359227519333887605684428170436115634544759579716899638429312238210821395601745928499047910709087994394918135683493462943806641093501727162086913683957806213295412806431398054258537192676482194182523991118394147437542911393594581128627054128299935149904536337134414486415951659978903252916767548443157218822075051407812309235680914734239682182428963683475241835386794303388339784253404874812789754274201830334070643898663854495328385876892721238857893081170217937450639942863801287103969291496580894982811160287239588580186504514794237294368209635072854326670999898036316174676837118829452309016549046955642429790464926836422130184681010377803248461683285418390592434371121526659529515494854479123312676693412190425710973682420838835494055598574250646381470676379024445666760987574964846680948093040414950913423479318192057496507036663808020189270987557015920161265237171769699825490932766093012475950723527245925371874364698521451201072536319408786951206821133793839413633462124081955896145060143890605839093095338935501321376245078873931321761693481189152354304032878322734845624000805301856241660342828363995351032773463180089452583614055036745185386610261437912659150427502709854725166826747166463794010916766575428416982184891490852345572100172314034815614898102547966201336329734814266596932038151108986348073131067773068628239434789420077135735699136745950161027608730378595098797945440741303586623927511163404961958420611011549788785812311771681740291628823401287182463127149299023256845111293849353576231966914514819012115828058108582863929690692828452656447951168883164844746704538492741251893459432051679155937577560612517225829703815055707991264895566324263199349224235477471755757337005957544783144546828142869386241331566687325447868318127386202917296396954293685393702661109369486958699146914241474237198117233439921616004837607614397344558053544891983214839399099041874958420868690845351980411795236224126331906189941930457503988241655112123783697719906244979696079587577155555843515197499587436764909798742375828055860897633135694019402431519294730924815792322263233756592866888343069315524682303672562720400962067648785116272215989932452922108914060576099442300475163566926401511058510112325904539274146348656834683716639621137471529716739395140439233862470126209738713293329996845987324032010526942665238202739496063037366522583695438547341456342209504380460819362771440136131742419538731256277055517512880629725966185506698282797740596255406091592838531441946588603948136617427783400416647181852114145806675283438855880340803373953377470423404208436029363936238120876628349403074248704776547491474033757970279811345061740188833502989531437915444647070886260965651410446671335364742580982135369446595173573290356197111395539098392414601451366301002429957887060756519184595690355445503020082966780263291032179394743464428245397085030755348346661647077091333099152230391418100995826602174075710022954755394409300206178585655217819634254228648429572315662738381874521936529650668094459410257075077559159565914060074047013833872840495502064979456775538972793799646393520005170439741465991300634186526545818726319971713288876336920788386926805061080017810055642142784930809321214771389419100319339093650951056893562519264657201764116765086365443616423734155470754004984099958869358143365783577840651735633006231186056617474402409316664849208462705098342222664572976089383786070987448971742763061093229923489467131162241270324182128896016220901157690102911498137926458322611270332201340133837342855622741342372854391580936145248935048609226317979156168734991488782557392538309455764553584793781406347942258024641112542004561192032257257251348616688922412099852267503222951121304748439661980551655595835774860883559661630157563412146593071942950648098049920541213915456789772622906992201550361884935317410352057529366735766141641219650475809333869044859670177462356725037366307360660692861527435288134843340548540671572000453621723353850910616199243492672911246206635098235503926962546853828330571125163463237975612778911930494486553056153587981094213677825471835995344652439743631033059926240558810208621892311776773204833631463708271355925561711312573265267808665332145860402115137312956592713939452478764609976240527361755748324838648368827575138694572434148692138912631296048601084355897343665393992073028795439876532045933081432937187122839808789802883768367075220161263165279136951397293167621656352384081762414880243158443278908632702798656362606411875149272255829995256661885497138727922505987179693668194186071319943871830657070465368947455687321230576154215636395193447445047984419392534157963720786346773508040551757722421313078791108683232936701373814289026177614522370938134721858513782053348791302322351570068931247712994414459883145618174967818834027117424083141588722714974161849093085185258866329906409357201935325166252503001015381469285368572280121106824565858583196511300863196179619497048131504020387095547829570655025852714304501542902363671793165553886128624766896048780286665593481845406803020115975571103163737244793650446546832955459737916022190368660405856991654363329921881749043625642978531329051038136449173576477775668586982362895958481332590312545590071131594235628349372807510181331391491730608857330355123619124468303404877250882293598381513201604885017919624387159322061107479013286598501183255855517062397909301571731907064485906222693885467450549225726821130775604758040490573284206073029453469939389228960820288685712567174857818637705826275853221925619355753659886323648754060749033139782542149944505228093201094451106715986655002884098558157062894171274947947255331834882555650212988506549433595633406385413317305194496261401274448419725107464191475381345561039603589701774651678029368647756664409927630984890060156370391535096204687105512384339939444462809683990275584218003347351103767541118908180525060614564648104971637174125982815228379871756111372478916981790806266223685704602414148970231101852788808785205757212854072846510122961358513169875572919060383849438399985572997858156884115532211720846559496619967114321547653723935397156701996113911016804099911057760500564563796075304209776408647056570879077641900564233835653156146520106906702762776334823376813756623513896111327191573371303648012609467064668226623355046169671716726691822879253542056982269661973933325959026367770937724424657523781175537132657790237449704714641591651185425564961778922562169630882720980826510024362832308479873517194802292812284959834069587133896200797324029144716184374616237919838185060133110689188552418278516011464590910088921641454943536218810213463988352553986275205434317404388668653345075361976208106973773715057016077579802262498382282147900977820362529763312887906224401873689263793103400451094185702606836324568390791742796937771961219147901403389053420327558659097808480930400995735177188425600302354209183138469899666652374230636810442186285863593854025011347502257152099898855370300905867013441660531828649695929106626484527721963647830494270959875189133029208558938597312118628737325736878774757105334941196476540269020149509077704338173937565877004635207615576837726419594463966686075762277723770930881511910408585925262044782369840080293087754232483165954838006097229574455634268883924736613285514382829670704908408830140313795549214253134781082313339492590955835584543954016992197473381645849103216733431519078516807644480024937949244180798126301035931886886554479487354606382286703437081497089300144495085258592368308756320525891266231456319274067438617210398641253666340742801861460890817098412357736716874043847057408578383397811104479867008973510060971736070567985226084183544165859070800662676551439981986187555907847401457164982709134027848706264483489896434872128874383434266177462659446984209300496485091637427258703403196341806534193761932788002359969377877370328524299455779263594800339073857797499516836969297320519095156913370309088903674305806803623242169529225118407539566698507139628687413795582567491592686138277065454767179024491194762826989718783674554977662976257681966008105413927335540011877940444676313637062319560691963189852033506130293841715964769184811169513425353059302589215366910016244304715442412522729699986089961584357910652652862530392394509351767194683452509950481046459782475086245690043799774714728884630898049914972240991419350729587410568805070817070835162741785017518906403610001147533545209707717527259126615562844016743430439537608614357799242758037937051090352117896095504153777712526442778703925920377016186243725849383471928239115373644494383795219372990680795706699912661703814353964998116052271578712232539407285586701937970559368497773262763357470987858243550237600831691650507281370467198062964506815314560711786448413794126145437656316198999998581334428821363567717514497608399009963569692402063038960017769995410169935540812801567239060673035770068001457372736386538383937328379601261810622810487583560373486328884228868620361459859033693491913794207422176999804799118908426958352338331926115394035329063354098218582088585368807419602767097294628624385112263129002058327063636732269063511316807620212066913458828188127787812119041451894919858101667783433862348207231920364380864360323545916526641656576691265603540057850284369801875206849844743455237562487754843354083245959058956289442090247155801000893523874405629579051746226321084689017364739185848428542880075270480223797016672206731673115309436129321654666837465338021575788827559243341025036801042523664301448111052071962925851524004921188920392523252819880038490017000566876401805258126585980591903719065002792928569471364165691817434668935921576984970431347824852857873258488261277578838589029027321444458131428454643730115232399461571014125347852338012985829992328272059926232944503497877680268284682905188283006158762380964060029090679530621349396064377744454217705415626398048137012001880650266845321274519773078157627335558822755513238602839265005603881391458078950839926655236152533861340879529548388353537719682113121338216764784415044089363781409692610158778909889889850795201274081104416243721841831616523418692608439160023910804923425756812632764819001855449377680178699151759362378040583887050417388394182139352387429171844923909081676728720182990169666784449412255032641861693489092397422537576130266309269423245107582283305825138910688053525847252799514646382009877296482243283475062939130103548122801675008966006947871308542796350498248878208228200778467291661526531976336126342972270887719224589431970268333685203993072427968262137798083833077387914624256528929630092243584436908508971304858489558212910552106768603041764059936262454308881514722870087217498722993955332261972929078359524813963596913718684452624407843381036655099948883765711158179377048816102762008276876930285785748486259608198538630124358789571632657751359302224556370301545148036894504395163677665053882547539059184661328527413962829135210227335754830541896594350265071263290723301081050493042674812474135554383271016053471831805685993943922994909545343055014492297577772437700020173922376639237230819960062506469995727712745328303962416285560044721472082407625613046497275442807422689089920302085304352745050113380788143493449568597238340930373888573087819026484666265115768901198899090308598413220904538376184167717278345205485238344612809508168732869108008175800519914238338395608967818546759729442285660296256112072881368498552620210294769822305552391290735302738075646235251990956378043517648017880227353054588952606598502865973721572442052509710961858678666818150725194909186445216606962520234993844748762812816642085056880072057630398247526353057735736481181348091902724475376649527061952491907092272980831813401403347148599943032079059025865208035725561182584054389961972701212169721157864492951650217860049022428328285493516224747786720755096175087873433629446338292429992859390398250765858684630178771839984154733878043263050306506094784495591513079891606492575345354833253050167176336500126418767670149845838468573365411612619723682206551759098288086692102627613074175001453498348973403752887264939984340721310011902823130971198963182044289812864356811285118108367729922347017921181347568935656321689559798872470028095659886625776813005200125136914078232608783449677492153622668737683764145601866571379550417330164637732264031480891721070585246543365192520020454341402935409853787223127168869539327408923864611611128327985654808435700512449889258079835192662550678378419753338472990853832497994645348584195789711381361976795404897028559367603311202459505328355918708353548438308540011716794965576824003778429659237472110442148746150003763761650022752009926049956813869129556044808698542759500243302896773606268779339997819310273140597613466068597698410376349411017644370948149740451608362932881553548498580464450080953383755090038174162778032116698242784127471314869853299720871047826008745425113057933994689414778614247233028030968229322414019684811281137031470861420011515467178578608381641040099272925997829254722932420239324932451147196782983403662809037075095114932532462133633810003394292698612719213899696778668975211504447781555760333833385635188813303762174524808552734532797749688625413196964167466805606070450835397969532425639985661095115437921942307870416114018109247762908234184769738718218227035604005903326597150084207479831145035223310453124336756677182651530776710716372797110855537326017376736336408466952012410062536247162335619925732758288000164320218218034059008074105577835130082401156901389429516140932115499977823042604015331078278439268975461607498698679982616343336478022152719529247363306331321626188011126522684277574185738332598841335007640545629084546205348058476685949201693973300028997540128233734522467016994482609763517673026669887812431053119654588210115591818675410789499400877375168826039474730291323591890848059072938785144765014572735903686124829351613307361903725978412394565614065836943811200412235078742441986254896863889393994733500864748749865921966811681484827682115792150480202470112183673923019998050997591207887643129313456335784285019106482015706460225902630093963607002487291064159211214060110631206565017155911731448852665146168369578175353001441830232528877607577326460119413629102966365897899010221109117626750081493556896368181260223359828360682261606422075402208466373990397345597832381927748055135110233276626866892917034464320638092944557619662454798313618968682020031635461350311633750521882237518535698731382659965156140513847666169154241402276124794022037132744947209520026190904817618912428335947803184256819033528674366851349288426417757437657055813585101390193536843674860221281858026188239785971149455265603086999891634331937031761976448075923889615221231083025059580006877731564098869986551057214598426774877701692662537359211931034622045393508733412043094854381508483018651056569489729616541554275291394349820535709050479592060573217517712029192781824436921088044397241168677139192230487479605835500913636567853417842335222715933787163789061173120977256222526216417067629892713816576189497544637085386670498966962731920226817891754118012964783484512809361569211318387286438821501888865279061350546553172642058122881473153842829402393960840894016682334946720981912962302648767389401942804237490348039750076124125147081966850118649601423718148761374825539066502896917045804341085653172442714208778455270408943943077763577297189222635447335332851872510291114150090425877345350795690369212138515664282057973689806755565062556228929556024371072350359007047865679873480591911529215252375940507927780048723827265383506426557142133837289125686144932633690742442098588520972982911746096108926859962225478134785808785149633527812902366013274471806188859215565323827150124539574413237149778917882069143367775658229437806806537694725366961285313753893621941293821033665115663523085294534457469255880203982065334236869566190800939917611032838654631466148776263951218858125218609733042499314151708989042270369116208339640546625221869913230152477342868868156081443724209384293347146661230094015972322344341896607539245716550115417909567008809304804721744809711435788840227590185581453170270568757518831560926118575305053426599932384835435668880508266290851209523486713148806067756681371081849843198272800983007759832763833280363606624844086077099865923389360493105080492849463945480363365264262381939491643737593183660758582241329596346315990384666766141816319330982936495486458740804569833249789676746874900782386234054317510955135267559720201097963773190767876293888309185944433052449506280438900706249328593376485565409910139088403990958382639217234606640553265221361759581981500553369772460995433924785650974137528926794374959217613578165676887005160945983379801572759636299976881119689738757552599304161670296732651305789705251612100478286983989789400345106780467530255547591592191140611132865179338377789282058793797568330814753344994619252223434522280976488454490867088231606028445446278343677298779254616801827037512778107581497430035504114667111260081448199436181675505192548625525066041248768667386697509594836467356317769273361610267890092813393902545134395329801367936089145987955979192867918859996013249974349469877124876050053712629660179903050227563750493658629516265623408181310489447524538835971082541037295646740529724557885902112783567795216610565660082333410331736000986853230028456442570642238926225520578168423983127369155718336385945954668659170187529167576666822455025574181437006259351540398976650223901996114967509058821246636076407582011315462918787414076485296702217394194227337515732536378777003282208676197958250333816927208850821531659300675871007652842879877709681276262089750139868274238829141589087875342483039899596421930187422115002748134629897282898416628943325598393181514881731410182506855363392828210874484999232036326406331325156073035219670432176395735532939026630289770123798248101497307449085548374290884930560433396861477673161434238864184538655528216062681443011733881116166121412948581143600891707705167856559635938368461611833251487669200729099342044643921464247506570939326609233417800813834578700958157054083558290729373615549017824897466689516778404322379613499771100402909657921043826229428137020292831946175813615181484474135274260965015162250964792709809136679515311283787183192182025789401930332423456237350651892936047930470007465098207005399047388644976055780928665434710690394815775362361073537991430576163465004387400415146205879397378077109947317525713169722045431388518570634768888840071189559444018310133529551442650456047637058830622995224412346204853909510081696083527182007186302481285661549326332470196782100310180605671140766478669965593360510425481228369216592353337665437666389895256465635030797698747630155340436123621327281187529868627823268127616201833686813121482917715546269564699554347097041179844693495204590867771554516015443384479424418061624157066566298190689103666516596931015193173926581168341211352221151725100861320811151119240516226853111303134146110025486448347042747201719279065778136828344963076740699943428798710208133386150010786639951788459745282458291473824337055075266640908402052442989421592514194347700480662334276196967180554164290181437382236359156017102340025346074838287390054068429949097189348257084263121693945030553671913532418410352375416093027047371602055034811712109271562423000611213201442823939109389008049632962118112701968778089267109576971184681138748479923895222249465446847857667248561658282485457042893386768937282986608782184265678550967718400222111798935570160753203182997383346391903120705635740945105352855803627789639961738628322164818068588173767488843184951434130099241315736085146441907860457592319969758664513347537973772947962858629249280846848184212228078646451674534078608238726616959773551038833697586671992994318109303008320382965120530071306262248639573604099974999819986022772811506244833893604556899960640524203267195991602592995596549176746315175489501707646260900054527945403831885004022223107315207352716753687392871727827821553942017036067742675946665098822071388426931928097647174120856215519374674100371932267777970428924761501372074409795434869820059542434372716351423997059353965655940711154874699172284884069303609372968622099558427464384725068514294325932452256526357174345326991161741474126609746217639351518585773257553138066206348532624210038033802980592746633773552749296107846232184311415127980042631947954149837403924479322205808246121656768107310973817334416844831110527755835509396170081120572006985578521483333946722415101750830719856307615899740467873588900376614273383814792354539368395292329338823433800219649790763476130075541898650992581214125806830089006005109277910474133863092691054808898069961638192396325280702835274070222919254511949024067590735870623210047436151827873635352413036207703945116840110215497698126811975171990842848244825998593650695311741774733307067081238718328836685773157333350585208984400170432555631257412460916632985690308034252082695132324728972352013405317784497687907013891912536175917892152373644778891595058611381841864041406460016318775811755402448585383275009940389348446093245414857574277780263601522561328206957610786529983555480042510234843403156493442936991537974899105189941777957075735981317721665600249379439996196856783148542867441110387927393357006397839606638540295507264853595524261619040695411319289062423965605746511870499187195733938606672924329558662589153382056724606736671933588255298121879917302582087251179708657507980436227774574763852751557910342920002979340069914802560932958354867275794059278905132138516390483306689666257178120083158009850686591269612964364690301032725333072243307389057727924417152228928492511737585244258962412566985094887861863871086701553631715779709034281679117234360990589097973075188949783251874569532482585196358995057604862285197724897374914894496751794498709060524402206546672615879587235137371978931657800850578333979850787972674378949621222697205653263013856453052692635096071571453702902258308876341842838293698436151098032094660210855558905859772839563642173416727270364695156818476374290315486798701507561565704981740772406832030786714532937205454511904068379038449220313963747696139815691812399286379659425618705374359736678277453349750944165908578263721286721280331226397646379638888800664258832966729974173252346878779560891418829630470241835882220916602794206064501353240481405645127215271232831168155454856574079456855295249359711167299684494652495108172032027817323918474989051762441182529662790459891725386912375941465917629734412526560322648242534724813767026968862049771837075828417982124861830089313757558796560550412951242327109246628377392132365494189393486036327198305607249402463794964627796740362424201679786388581086532720800559286725181071323681735665480286235102987018423189073445581706132352005662083722674670523873486817762283475818386999315867541922601109352693321534511521866568714897165238869664176663494196076885177876303361181582433133321414739283222628754867203732229444357039377132684111163024903635917783787512756350817886901721362196063009482628523146600397556262996130949695546141636327488895852477769243355839048519473537273174292080295142026066205986107659441391958416654062669188827148722721115007607721289041819340486896252957120509193519286500290249081502355063661451448685140718908641050055153966272341225401872637858813698295366608994716830642877888146737496119718078152237033563063478489813947532472086460042040206150540085493636535752053229479744285002975951329607000661150161060114246996441874414804819783458502312547952286299958797461986247057523790866427158055574632819741622068008404943418253136375643060633144206206321579041673621567480278844791946612878153401378542955706942028510030965091393149822022899942082731401357931917604425532088157226131529557597867209852053048602452846863030407883891992228665989207102058835582810251825265381553800619369123726768141909954005372818193170518928924808162238198401115547604345187304337296474387367502492222017360668612577892966203084936062020463551801215575443769958743933855641145338450544081099104223898109431290447097765958566434347393150705130551289732847159080488991295443934562910994585291924117655461543895174773658473091417728828239129805929445727419123306655503138632791145266771462739511886408163526232295944027755343177726464176352370889294167928841393258647813547791745284780170287906843175436197166839785621749122306161390208979047297953814124633843031264911190437881015056554581988021553923039122342622938865424905398574536448224215101027511529880901508096645816409791997421771048937522691151967486836197412295377479171595844185931412206330505856671107769986650583240032332510385709048672028900814035629758038781361598301057960687536713820542390771581952998089933926161446611201370559829844443464545065132842778784811344777858006012003591599495445328530488347441479101799317126642606098414993882620252827968019906023720401060651301148181173036083727638164036248938680743288262194812626024925852542885308554900804855341347565856469453871992175836255602706263258174838715014957479286059896242055820676731811558483819396812839572712103241005512168303926558056299777106541887499162289099264818629899980000592290063007250643331525165302288325153405637496816953663185874856065709065824197917028387186981530472702077650750468895266900747850197613732056725869003771668378180168170639027259747995655411753312088860620765137458044828079751990582957933987187101480722057345160746325608851994758058244124807738268502556843653399853905348876022151942992315325529721441504352723265070865370258745222247997558387338196607442270691099252919401854512812295477549738095444218282436819687008413287192355335391751377915274813551219718060324045886137290413740913371297910604440791676192860790979637258647183093638000898169907167922743510979964943006317447354703575952196961513447695093174615985444733045173938863467725759325661048312793995125437108913422867225776591879467018033846570722577909693651263967916922825555367606807267144880688153063141997572835862818442924061001619906325613118738071743322432327077365714164149720473799517013442850798668780725468892265413151323374894474863942214111831177736281711919537004725850867382040389479077350259203843119330820324129901243846496297788984794930498245854011865701138733773520705164516245969919601821145950756250408730083191554763905528839147801446774219498562467535979738593663509874583666881180464124120026086597198955110887590811248043015585203835512834884311306085683678048732082439118401416597895976409248069152999683809565949540747067287885519605094307217048327587017944442475860226283108140756750022947065810289947679912498688819353740494305628846473383325205179296114036683051411975290197543021109651594824908313182046432260304254512155754486189728054264889551453458027022170148849951710710909245139258223067899462579513314874292533022993016743024806443649335876229646005690976612120392302193314060779043644977074219694970765140116200171834608806959420773693547552539913979611022997621852610827928168965494315824306538741667043923403499472060923779278793757453419888215642043284568535111479667823534786157919660795374051353660007763993648181062205171160137586215444203929565845071931634471950018672556550601360912842250883580140509788385758795796328898787666649272189806929940783036274350954321258258789061170589625630899854108575870084411285347152914686052004787271671183259046380592025857552587711486766011134160917913878652479601756586758546798228478321934362929310011857572548873286281383509043172591875881961059131469111000602057701028691889442569320181881202506565733806599105429519291075274852879935218968586594017325888771461746372613497647669944597779295060232919179178468824914303132802457453577391354039883379617794696827737533674325363844019544987284920592699438269105645541190296520800203896270501778854974557481899404707422705773125373989062866848109940061132959795910096373254713975375728816360741786364510541848581001972523849270166227293061199167483569373536368364864014734932549485734272110654129814966673119758001553746153032421182407675276453213194141990182274246441396571532542825595138018197785203037919949549409581677090612816709039246359205806251949413949020156593897197235239149998698666463452255443197394240537105162878043805609312477875108098870660813868287936118528964031246416182854175735898358854842864887779794155722510232211831758899915494848793632532242556749761915003121178495870982049825064498096625105134898005207447406108609344459298049506565294187072757631794098584691268949670535772234940289211198788804967208393651415486770521634058907831302329318220139386862185735354893825822018766484725704291145339163905535967463897991488595581295847787314578539205919729382566029058897682787685350806535890411658055852540937100825050480553037564188676621460166943981512182286906577616823115005333682931294566118974545914260916128151557332183219603144775582145247203982232727782451004933934526637336713906798242882045554238553844529528811276037995801757182630683814502333862199421092229173948346317240239585251940288452301558442989143737440080819361921761308843121059560905082418041844738383044348414720898606605133900577158870524403006635170075216713387168143386501757517606291822447095531448368220057987308416737551601544578515085445856979491042459227876474682711584472866936029631857164797036424974987492112709908441889822457757534012154704555355455148090908151130925487272193608439711628448912908848078862917001447875070612479321141274981737367166955167406166762467761511204488775837018171414802432313680568655063784891622855779504224911211445275167314716155691521775426033626160023873462200166970868729887355329457231015260104441620625284085647316032267368681980999050953377402853756355282481978645384517642364589921985181075304598172500953031045593926731770519078265007418743677121848205216066454275105898502777367496904704171246400568366808739555763055401277993640018997301934209067503234556837100596784806135135368148376556435080926223121577958684305400039359916083024502922314232632016894579086077600178148080729603087114936070035661304200489274566138342613194498280816471491721192897663701669251828399137196308611192406569656078670610372238784869069394234643922154572977556831450940892908040483470005300965508939319344898650849650499675908929813775572380579889980232749581878508433658728546478053692144603663850257462448953845659891283608569747428919548695330163583965342749386534422425315512984063506441853665981815875742845158836457658989035123530072065913961366546382899537757805308312955314208893430433654224285307404110283480474964421841685794072341990344490423763410239534929676724594242936433334338053453619898636265558793107014368442955711945013263142486159196864995917093867600249392119252127754727994387261252817069864718763226137212404167852393614342406359071096927073132467819607489821158189735181440432942964439476214328679069119567516440748236992390546007848121402134008545608103038038864432613868579960195282453983161050786885905214391499178380602694521624238080004375574080243046256412436973521231226307600740938453195228813430258335127956027875318122374483917706962459387961099327430238400662442208183848890643717094308293754281580814283868982106839989591582813423389269264443003681664305839828346772441208383782930672938138485360730045161244006640447544889517200978501619572985414788205689046252904986222403198844890182650090877197128314039935417705893878307581377357465631732866858341752992692314249700708117296356759448400167705532526981025510748800581902110860728276525987099596219487990289825875534177483153225165868849154111917580253335318390223120039347963917493113698797480165833778408764017063429528167010885750009890445339669227094773906970668917446223197927712839845614784147547268360279571166282580659165879704522469915313537309028599591752054611264329460424266294907536689663545605515998959351553248350166642467769962379882788004906948112923685688935283819983176742087723840244494875486901764348653827283309375168984325480719057738588602875059565315332875763275135380643126124326257420241964933369415459289726787339689169433960232229293584555552720116980635800480327856793094581080700551515306731690361965902368276160649728039833706083041496963179397244501980824700140476509447631581665522078625129098973085349352943014539513006448969036249750995866966245940306129231514190224445540849296291235008220670474116762873470923793864035863099666944885184877524169597345102939950049261240080813010296464976134774530409985320835880699776362909888980712540519115058397908311509453159670512381707829624639647811901394226128507368134397663441068126797547168623308012142374034494168013970545903240573608926687301570528686769603520881458893226782798209960464827353569852396735341055783872025619320941967975530408553957249130365380501712654615455559233421555195048243491969614648387879197266984663339246497005694492535095308031479985599557883282984796190706691792802761643060590475234978526026974533219504914190001730884921964216368705355033916044406877106351189169517048031639166014307602313846459847001631081303233236554605993753463722098139204092151857704837066429018266987131824991835947809674572415835999852187612504406941968524708503711368110190184446877510071021340530076388197398262952922943846110205916579215573941744985977862268401743739451001637261394544490124593055993723599780913469233696629567771185263660701078430918998623608587892366593038279386574511652092985427409789522747034428642913774587080940708189474590869099523732351016167952692029907471473691868863507079427547107440136752972744560577799901065246412425996013203528678807818494089510969421397242773910973104712914136239320458863432488217653190287404398363824427116115935039642024916312629979545749015299108995776390242997390107882867538020658497337665746629848538822925603057825744275675611871515454246007596003453394379526728756548882017520514434034699546209963460055096723053644455222537680706845450304384253128595414812370090989754296891453099042409600684500183021826817371634703587665260766157727179035510047040321244671621662281447250768716676981633699417017577741251025422703768481219050557005496953346894568196782168018906102773319449811396399852548766202109771349883415769548586937026313821874578927648649993465375097676516809367054082598509325630545112568819721613724854649018177294959560499911196058263693545713864138477389804931612199127302156995251113767829757779116884820658141657549498967622344088339325157764518043811289326015340706536474845293434166952967027382175716028670885289992380529973145382967818256758915675284187468493614812469859262175152115420904186112116174394916095099838745099047391574059330190118015891933760579207669269449536679504687291387671044524558252077767053529976324466442570417923087236331748555276601334167227166175536137999340550506177261257085333782479681794405527909508328682791067522482820624958014915013988322120697428580892941246532764244932659868085554577621755653089673534776595757406115811495999430997595244847756849876995438430551473449271699078653318018582346163515107702302985168227372517056808102336240850604239289230413149970014437710903745984355941435423582787142830240379398719483689546871447386586190902548574226844765500346629318252170765317522121245935563981257958907119605071565977046536148996333734559780474471980338013910339355415354026458462284732545202909143877723008813000910930278283005094321460391387504147663966631909327076921387344646842155770996760830846351219808760948421606877097607837352148768184135801546149834703857477089021449186308266413014369844801919321079621887493270998280055941949924276597236365972310567440066511220939399952203898418520061262648908982963733773968440328617505427058687425055238273254284992689723988986340935255256532384736553531865444188421235164296851786236373508158221083945406256564430506704617362869189211659973531006530058791093113604492362431618413180500585981570684873975867335721718537859124958949104541689221291746638832067707505853194758400481266524588076411732665171129238192288437364723500898557915817811435239368875565123766770982389727187933757557629408073314486761327962948185940462715388266092020339744024932128418020384441290823011449967115535595658697859968766033873593962238327238914638664057195226966829892082969120073749094765067427015519760138047636991912985061245735284521094087827933985186628858976891365893605837683638046091882586859952070183024831967871508850454475173490475561867112528284648392764472425561803986353286539572747498490247144296156525616792913255318230368294936667118246669254675516863712057172447377317844165188388780146320910550047134826423438721235090616174840707652707888550588405522249445655423763168639293120389305151596529277904243567476274414867072045270547480843943639322886800296938473063679106648348394783644913588028770251097070693974388251181876684002791039452036210247642535990885678950109776911782205610361657391659954382843997481882902251942583379248337941676215520658131692445412464308555924396651423375429679501411017288552484784219715876003460918816599042498609422711465752356600571560103979162280258357019978629968433539848582651797633410756743743510376004869125154156892668404106151208336039697093068073246753321471155922744484927762750012422388980465855065642010654543226716371503861412243320047671857185269120817814771820302857904412950040680043652514262806313744045775126667736030120529994861794037537535093258039097673113803474261473251489408541491032507239520019258047503574712909232259376722132311031752663699378045504586532628810857810573864167290919698544555020234615553047177049672789085317695479485597783515160986761379264989832220991802445427074196934868986550550894874033053974115564892391692054036825295033204938948484386762909760024580932144745941158875825075185689369500607601382404704422662611234012060944312898477489429124449587442479437779535150138687314164480431406285283440998849179623912570833801941432394707032252200665064455495111672863430641462432378378377235127722359385862214373298159864497279919436867653517697582381673876265426394390523855037997099323997191245122132619227022109752853481180706843840470316466542637186927776094527808563689830036444058118758640609534358478261055197545056126345940906615798127298776979944018100574817703616314629604506647520226261967492783731564262616382221656547651504007398931223103871613864835114904226429678829560621513730902627285794143816440083028310050635699094023556962829255585318417763492163626039957138866950663397837230926117587836762340657032207808368160049907712140291725200294912683140848820595132324459447213087549395447169546711823279288694933255360344466143251125048549203858103676777070372018887569055539701565561615076147235698581388260886387779568461004419351698963474988922964422168645645567429972354734679701630365362249771255170101165359701591664681232901826772286501600872793590240049592392442301630695063145753942551135301060906858713641942490420646294777485949065235857431621883754147403817190224585353605905353923691942911368905427327217659936562438504044066423164468905997522403795407962950774209980292337444844198711144652919720730215950135431026401727334166034610940388831914836521853916090991778237974395477237501414681643298880459941447744326568312447296120731235994090682839770711271181224735526532148086532656868945920839751253704782885946316950988362939295091214972580415992332085910977824291971755020212189388635176408667773043569764419317855695968266125838315103159926749411882812852095789516478594296777708759877019174488751469998807534819635168975015013753205481235781858094247765734586913967894395910692669105187136167051269672727022383456325716628283710498884238234785455340773126315847008466897633188647692270976723284553958607086676974717266228223915361046242812119866924705095545398684401982540935912353193427162925842502328491509301328883351958124054121130360847798088942905900951952692810438136190711000625826365779598448489379124478090308443436218013884359854189156281562279644264283524281567303413061430541383306888685717074841462403311868339720084845538960028595169137894389697600028202682270664223137052299848484757997692321577018524098892522740493377246874498729033780449315929519758863818674745676664480335331163574310530097733346896836713407108255332225012065860515093548459007411400002119112870600900626209470443816916383676407659337946490995179379208345434494424245285368718474699426840266310521304237306638156984597349185764984112371872866785307917299804841525019501437453133183961984147999292298786379552464801854176487908729721293759158369347257162181642411467978033861106729578155316387264637491891113054143315450847740742797321781496573403485306467590364031634688859311252096784483542239195670681872521067411372067565183512291823687795697042528162888930279271120461983085264361997146454856973703872555134075632255578531670141981822558532361248023055066915545838018920474638986529372688447209069018798132649882661668694847871343227218257290289512175467950044202859468792224730492699921358138692793492082052075549152975708616220340047244692428447169291055407571109314187746252453023218317076112418876327149467506781539782769334991108344505714560831508146354457426455903443241135156170588081729086885098713214801101253730216153918112067665502076839862493303823236261766862568516486920783240997045650583978760861454557933801286072994432598693569681926784640286534211544680622023775584622454905855514142079628580938147259581972479433170797813924015526873132053495866750704490833232307843500797833554556449952204987773411665312077415832829890507665529334787221347861626236624147473710955626752566033084651343306618110092080857555903760431802804095283381574330955116066790829141602521469535177758098348523913812236133398432418611837641254253964949456030323620565094772883689003994780468044206129739613298049159048813558983431928335013959190990504248550550350066670659782700178099080294353221252341004373683025572559817546491678275360651201722678020025265047372141100707410306512642722639393140954855247082044913034856077179592091956921237416480133443558068442168516630718192965210883305412615756928082825096801331014417062117347307899594298476283914030511801779965109581844614828566690745075041899455017601945447363199730205367993269111928808572079138130414310777969958432255062177689859329350425742076283313905908776846355418201164994640444104040887154863984453244011420255239058718058864530850614783431196120609583794162923973792553740969158672892290150736870884995703835466746356520767607349361529076322626723290315036874795124623902392312676784486048823763222216941642155054493421853539444832504188117927916057190532383326113606644046664117757698533443049339002810320102318348784759355976319598275181057576964834214709569257351900566142782371883799775075432069010849072039402056620026685899839585359881005735075322950899903246384064975621220447415420597940455129461572971622467511328633989337503482820176964216676114248119350548623381828820988835981420846954761862008257206644374037965402489152398386875833718925116190574930185392523719527462126607557733108564322135582662749754387054466795568236067494385222650923141788291724039338646263065969180156191930822532346692864030356452775589034355534517039206264813789687603919035255718106309977151155187403339987558928546498937236076391229413062980333164154211113472671743827625561529548439505943439511254232199181656868979878329877396270515473054329045077366018184828958581328091070895983404037800392392741245422075044701011614557283870843122009623625496185346412802463894284788533282426238015984309372469684785686049539223246318369543418609957876172520564088994642251415856251151104479978305129942290294862436985154618147760376438141804290452393220943189785244176847932356153671670866980395794584446325031550731269271808888026008942100828626745310833032698732630552420618579146532056964222711931655126707896899548521368280372435422872307340295299590364704408873637201784394798083140350498511862265111154992706008419213588310009018945548372044467623664856786198518150276169976103277294850951724333194596127294032816443117541494128282218867052101392320357957895056561043938417418777536037149157694247676764089056776141850028853263944581994368413185417104492864307563165061021934528206178461767929139817875002585693275608430531014343057989187995475752226450301001908608963519136036907878411822372854026215744345335457690568230909410129993132329719843706417784907155366900360770724096901045218919389514052844449093114435635537982883975155532790408746513380501728593063373573481914892608471224715926990166109596963654819297234016948547524287216832611786272031646652378596754903136256730390882967041396493464702663795667305704700163955785850579212562624856013780974293942518491505788019232156185376564226090031014393506884941033027428167505755865756479365799366107285939248313585635680575525339589739510861200023633999770832087544865179448690985859464398736207133640368442593823125017420417976848168411432002008441406864934155478806931887317799127226088030144779376556279513444667193283962916850078484723923044707056176807629779050726623784598631059288736762885273577330059109454484588703914020315981009579130518207554128875934634920581131068549111742496842230857329652364822277356657194613007461440543343775028916547687287305882303001923620377769876004697965339647123177618053397338409680445373159666303348361077021767793337233177685590608975823411811605066922418193539961157137477724161582634937472100628270362001494175443352451927893587227131219841691102161078029572504534469280821384575910799143671846585064288919359428063844329168994344152059970984954525485434722954809098985265239759378873854454494986056185566793495834934129143488941086995017342043010962374532581448664274500001557742941084559335998994250987299790354273336934138146001023707694154067232494697846724182267773421592550756062594542373820018177913863848207735922819980004017961423163556173116179998413729877232891835683928000511881188011701420057361966035123580826198911510538121369503161113426654836302607006655055932460030384083008393117085750139905522315813875227792346921560639842186014401224637810388407456642700649246557737187033675025290828845366991441205330685058265133645115589360213981101476181363918904617677268737184673638925843977683311610513122157055233572300825146610664358495078365032110594431129446842441732130069066443326991008788317016790907193073816119748199714349079596278030264871804279386498040694201138153689069211649124310069154563396303854516511985823368033063318136421427702754581436291097143977675450026849019249881976290595136325444777066588836475547441425485097454757767697480257504552485314245796100547199799545984480202002074581646568648361811915037911567940555121606517955087244733197555454698348473220428889144435328031654305711221068942883094121640839230252892471490630153649406255696575065700270149889873027912023865785451511263955075987910212090976589219280953483432435894750230999419962752095993495147658830483396610590368839924740462229314248581048322277885270206550499637993095635525926321543838975413442124886078854605950880937769734706069364749085984756143426375906714628940108038724565218499312848069413039738822129517554676060530442116254331690363911602321677654453600820364696587585722460541756267655544497447176708814362372931748704437368381116245596231797401795626124062152594711087780785668000947393706985856631676145917299544540030082457983000100929778998734449628439343689487427664677674129995868904197689838873940308540064408980636617132132194341033174219963494713506895833149499146197482103130479954968038629071316531155012140834459819743788058724762602315746246686110762953468016799056326706903177513893384163915029523654131074607095808765044845703432724572192986724921648587032564979802589424120696465067865136798993518668949149540062800330325268699508658188158951512558946931202895145977886075197869612747608781262880183021455674362519839358049417189367932819140152393485562031279667743083980485650244922356565304590071721347016091236799548139007022939259779769452798052006025110376209466664741889436081259369713382099666218686046475874529504274553957135899223453236014867997770011001573625816564951377392124976382789663134265611347523488424594910122827562615116927017360494993305932604475208014638530690569598982645542061766582028883142273250745049779800602869663939901094900118789969244998527330660572881370938554678934377649534455665172672664204225917834661455620973909495368934952535601624005426597957127871427161705385524076770974122063660864037612031547978188411029362584680440348625974844104748883972076799294063903991345322203923808052645552302579645762393086279435575092189922900975426107411230109945139581812632659019661102472666682762189303440004836489659566016775632849904528740331477362135890164927605501838526441532595438553106527588811210156603550931939587430461551274222452485544510229024597626381785093902377464596972023320406543001682679278415469108665026721484090165771099275219011776083098462961112743323064568538357700368947932174517185149234283865273754757716672463714242118845340367778640075378182942868884379440302415464868533427523268897957890718068577932985540280373971471654260639669750146714150140534890744362236845296456158259343341361224307734939675315065233433594089329236500754038488516496699212914748770809905784262081562354359394718731641322962930347664285222619263104465497383403488461606561950579909239622429392409924796626103310050546934283592058559027131994951660791185549106083042163000027796363672340374362359569232255052407103504200469407885005744085624309253573495776639748581423584406781770277745731698510403650454630301939413207363675079140725007256960435943086227552510040528303334087690105447502427220008134929796829736437978140308611346957902919566293554922317067354584849062358823337862656295391313821403335878825924807538750550957428155234331674496866413952486453732332079524591168740758799025499165528102901378289971513812216988080655233728933589290645259475159768793010445566094737231226046919140163757218028655905442201773462252536383389295668174169398465796571854135885837330244769919244940611046600210765766123592447168670418746330081122954566407233641217629080643922098376415342130088591694069238624609097778546462037078243571832384031877003736256262667981792244784855700302125313185434946189312677500138685601094494690140212855841095368035971825737116475224838953070715642090687166376560362366970723636686697378231149834495988229243449633982026266043004331712615055920461668398302732743344808658168890570985288308679048434374305107757315940493494586260744692792627450026623395331579545046034698013907464905257240423412869891882379987686284584885389456730607223956531956232641699372566464420612753901855775255852904235061084054326910524687323059531595179810579631008475700592001243116917615589841149882791142094379415571602701714391726778484449748527858522255529377844190733537261961640478753260578671353146763766608652965947768453009449947946692432252449143978380244575693084735151673368992432021272715733597311635482830156680701223858180824914665880058591767664337410866867715270956654186427831825875072980601222376667267196859831138984218208899699233667776426592056839141704704548654685412765682257912726913760219248989175310611203134579459954255247025653200145229328224541335503402280553498798951992860127825996145050959563087368871213724398003616216309731952189147157306952459986307528963078803075814138350805732202370760417845591079345587301290025917344364272792903359921052308066403389942713313122156990403790893506329099957652690148926724360558507986923227336813649461981063182853656154480009655495477706345307600585826458314611269515401802415137862011751979303025148696924396875984778335994779352917129036980822810883988200316094345102849226771831775137102006844270192925592475832217014171809902138253927249082477522446690070229076759888924253972123169440929579211704609279080653388626719844353925688383440413593055061268178707643232780294032452136166410738746494170872977757718710883230267491375143861688144435418732905784009824065172669830591666033286260533052838829419839878200687279358966634482169172630671856769766481243208101568511550442991258135606803591117157776687626048255365122006233118062169315657443062322197742276119749911699852543166481728313467014859406932840871921092108911148070939147506226533360660336477428586786862291749209197343504803088700095399742614783181348162028614160227484308635859248616028929310611403800780687046906028645339045467103311765545280240348031941152068719978322122991198127173912594170952455269245965852548808077596744929606561407326496099026498871768998893042745354731779117475303096993294664136607928452781579752821325215084714441376177685767275322171127469659052829255312582215317173301640178077065147354828020664611278557812630872476628751827203518595771755616643122066065376381298775123627477607992297982256056300367960477524413544744126944736944829124560891740519995964040952352604652317216686004105529456052176010899297936590234945869890613815736168504176530481072052559029403376249646314630150174199017236961384306673325531909439676182302009775691710355812069342706436631304202642845065504674466936694160870627337788966791071707672577024918076530218668833533405962166135001933332528365544429558074254786435299549938236549815016676955029068001225873139876087503081732589530951971618887601163541008724308834300153405965093540064451493997224838251296465144234560218478427092358421292542596299411308159825870919382007265508913608392808904964486179811923196929502835399045265644450843422692533648558439912382360764935825484671901149762726059224162048283765774587384124438689705029978405301442641928418100391562165142378276076138506738895069396260834061860337946035869917118513722898490867043065009379330610209858200122911843212936591388659313971087621813486285132982128447057620506106873344220017988272769762138389855319450747883633660391261894165660927340254004628531873781102490802024167199240620159900301262467178352197007708864419051510309179336376717306052626329655843186587646572649028310051563409484553242637456140730434390876887403319837714045679160595238722688979992095586234034076449428487636329725330745981099308270164634885430761769474439173087097879761740748338167449900570684999971062299788501633321323403111248788567399991688542675994279058335082260369085339531549738176461577521060406925896112909006363897940681055363007913015238285117715111664442672837447173910222618270166654842625237460136357598366476522316995796243265976347034561257876167400457305762232184408626654318353197050578849966796213797693456002441314805336933406292759749493156750613328686672793211961347423880530027488925735256002661252659282672040277159442511092802269839513369268674697159782377844524350802641560147573611542120792216330134143760014699364329613612460419324429168357432241387440043277676409720209230830573886626467056741533968603690476662160142236194230142429137194198508892945623629223081002470571833737063597221023692140078893280442156218536920788134595895902753022833853246698551384075912935336331382946732537427469383814709088602179126123749504170331288478931033181204336122181531607144892991198872716899339217764336327365576898711865608814222716428685356543448956313703457700710343206039038990793064676552103765099615434827824125171064095088559907873484833766307888811335993550952836232536184079126833805109132933537322174341700657538734821210500655366490442759396147899863479290689790836239811334843909812248851355882289934115703363439982275006838100942498360711719828889788020469019898641413596574966393252991292507372280210108010536785591820875159963164013848528777082899410303987224085838664311419043222884821024678157472964828495072025459789183333562202493813307969464666367856421049723362655144011045417819528878727214611301880216222376348683421661767627312917929713236074933805978069355804174898883836177590620392668824354958326220763693815012770349967034456136046572822631844618189973624695785317656377466285578559759925263006975093837521405725974833585864215279705727449430601644551416919182064818322930937116054228513169903743437404735157878265705728580509472335638047443588067719850545106570450081482679378814523919631925414170880209962501267063423139485856607124570662467405161866291579614162036149596900702691933820303631453154898451175221381015473874824516244207740220350756368327532730159147067653428987764095987020369232823199229508068790897986046877294306976472923808496573156338250964311607502691570290102655211743264235100051449684399378762946480676162899892696871539568478966064407814192153048650569497538420437299465354935729214623360230758245769909265130039362632698231136208815586070413607281192354595810871150274377788203807004653165716873758998330192206006983638271630780865473687406361502225738263522124520266499481610463703977136675767119279689293822822726258041308354293846859647710743726584282902110096597598511262310308165435810934699116460839968483719098313569952714136656794850345950957027766609973981075122482694356283477170055333555806342067795464556149239940253726156887046771253375088094360401335453870059793256415619717431223504197782378784013051424818171359354662630714777240725410247986117379019786799005056738438756221162624965642539527994586520260093064259693801640463626000306064604704039824481093112503804177164419366467767370708273214684867874625031591653911477542049330304643038838923546304901679068188661914964712451056057267252424173295537754275305026374111431893609279047674869325254610394235441293003905074195014355261391082409045217199771974135944721294015627240153044206873457500007857629045677735867101695336280304119879181402040855392563959107851743214751088270831097464443982047064479099746251812147208230254752019216454476240582468673959245358089405299480302729982980621134425603302114874910721683680554880685090334970385531758221964555788661180314028539587476962184739144881165704822488298059191006797346073686298942523633835751847370501508514787603670094153244366103292907576757144173103389963267106528986750347437233689281611938892391990889964538375807680160147344867556177533966051090161214822897699716009390700700905749349829163887356896988449935189185375611507894097378809161188214010227116358892731710727079799693940208238914921911544510011910517364614501575490680893598607617654646010434397637881771394541075113825482613420590031878951887025934772857056150045701365577357921356212864558900576179895351944441970912285042501809993892472373946909184613340731709329230630623771721017539475122875805774503093151866284984646961063924988160312473618924364707613313232420583713018066827643034842110698854928479526924652330407444125851941153396179925851757327295630239293428438123955483839779185022401104949542936116106619308210655844903592190797871834337652969956785449435711606587484313226727208512633609619667183159624036933163372397978564114965846815001469204442260603643317728703025385130725177542622267157923057338157913436365076830705195101931494612524983060498503839698831877596737072184007705627578324294602719403336749370389564677809976827040549951996157903718768907183463191336352798381518008384513479906583815487156376555824132373263700654760200307104763813552576183600871434374795707192242155213307710503400727650565511871382709563091062408667092156409515574994615816738409273469840942684967540580601654534781812862721305030754276737075958689207086642865861578036229682790818977851219405221887801455226537402767675424626384226341794409164300294669658381673347923437821974265493679876953058166478068994028269059007926270323227094866068879210211040705067679001406403677297641080616758804710107005380494910253715170685241814340058326735559167287703598960494162192839846505053511351598281101642583696388107929273973454285963295037983571471138762058455408928845219131903078141695084742439384973863140954242828499412661004796630069390461690684074849851119921228166507717991982708949383599674034846776385462820583725295040280758062008596534912612518570329848011800762264020620356003369521978841151829051790487524228828636057767537997019019378251227273817289966570796395513954091952994453803478265943626639285688466087148876877243280662543442871629765848828148774989463919054780871180944554204328060156598806660680075910202825232745577240135757798130149445039295226678647833621505203804890158377403685674418273795861471931209945539867040123468659493989904966888384836728769346981651303872462534665780718759549718050844670833815870627769859001140210686717721872256389807309971388338288119974157623072669288550477959488959991080537093810316014975567752076832846041702020258547851011340427704552490330469655331199320512099702737772814891384331473880304885920987393036680427042038485039122350497874081226922345025564659588551426622076514389980922044122997559744850568906960389999153643913467155325158841017340432734265332588737111198576306789203142957127486319039423587522576668959968953562709846216358456849765601258373178005448001218519457413120399850671454263960697733282251046346631265173275783100816634995119828814656904331845550448105285738626768900490109890234926884885123496367218884061715503845912196003003774409197846913593984740191026348601725496896903103325380187995598800564554711543004650026812868169886981529239158309347883736561672930907745917019983787918055418165125595682840574693512258258671735687820979802461008309506799582002260337759124589666544853295956105901528811471457065527836979662637371208825604691543336163891315073435622479897886808967035417965738639875307973367587795497994587146676111919358602899004212327235894877581788610316726304049272019163978911584997709323076122591402916390921643771484018863057553975021222510855440025627977655774736956402081108235368676873836806824199311324159782437787483520858432873630645802021564873231317756717683941443030910307715147321553071275239059231525446900021495249537175518436351573626057988130179809456429777601363157436145612470028413179263879098828413577789550657491806537176124535906326324395019476381727180080385718954139651983289069361998723967955538489578828839485905604802414364306366350695326624854863287998621920920537038144855855631717088834247394745151052636022790839326902921221925445266046889228961100379456603185641672001777122127983169848271367593814376400809880909500335965954497016840068312391207357894718646508658644810704439443578391041869966020847293111884268286630727159133547512670815648953643394848971140361998211875761135199071866520814006702003674725897132777015518780822797590468068301669924455129247483400345874066724625514674079741762392751187132672909064475784181805790127327128672709759438954805244900509190397532429819268634737014028453608153909534543811021844659821884501563236695129685084734949548147144240365235316729853347115017870511093727581829718334470012117788204834973118840737207062920450721214432453564964015360658828614479933383344982303240898231578382497430528522630310106100215102051072268989636690238826928937855517581379962318790027445547652873233105979935965269821743260840032554465673706659054125814873853744853317874833706745869269993528115103418731760510068635277729339230240935802685815583974740235709805708891769749305649015195987854968448745026027211907056871366167077213090573901627931353899100705178960917767521741863916441613594273025937061378897746379076499209754200639734655175038389646536170220237583782576259935273723976754563638694145762480231388944191800546874729145968765969495096236139036852800783655998758264882224953677760160202015076228572702680841585876190218688043854405449437145933229400849683259113807004886512657523222929983958189237777681314588039106315858825882432103853423513446261488710401613101075683636676697916808303464228210440376841513030773798217652777667828639482118367238834931632491822132969413483622941090269298010598948161342382623340573743471966420018516877622583129382257029767775714073226374529034583749474692072174209912749467400867480181438887966166312562876173286290073686390405342439566755147893558028389006193787528944459352415437763308550939100924922057563185062935064460567923588825135334230463447012146490821162352117427676462043187578920272288029716817191364628554801314011598263798080174846857101686134968551792108866633363330523290163116027966850433024466928807564394363315436565301988075230069122503340007213204852259811150894291245452757746761350591565079238980347847419549169983531337882941745830798855898802207556435178593954052237837951562625203513337002077160957916269204184930486391611010028361918413260556421986864069338870367734896919759659730180270642902522148385483968481434569703289888802042924379619754302541144151128925481946607508381609730245019290147740668141576104535502470090842737708852601378773067201177973865114313527598014792133954040856612014576560580338417390643491158035906583466015523515050894254052347907637156485017155398404573769255121681057363824506725013192893253885890327671449014307898138209521841794335283457685870110831263684161385483050318538200223185740634813437023529728544119458664511308329845172008296586641226985677849725226312665492391723962526009352654677460788790528622322473793841420256390830332416367404963978312459391059749083218301998501103154309378878335644075864772618074908070850997281836199747946312370842297213662779681718693812692764465848057641357861201641560031904348437116140524362393118435123281120963033220817478460222622563958572923970830937818817046432266587149128029456449373871217515500885725526487995845829506743826319992752456923702872334239094047447012627245506653216489396271207507253085591888289561308841317483816235763210232596871937717071876285224601673230647552833792759062096732554857077393856375003207338599912290352983607090278013566649745998116885535588627637741430772245381514630273292256084730395043395419950007865102753027808404534308851549038037877235364670791244872196036967132561046600522564668718776061642360947188112699953546588501851061775753630804372487988938629052579351423322204227472885317478375943665186783482269375210109186261310927470531198631707883159751879748807605097682155460617127962990778457078521098364961574906794363863548253745227015982264360808610342947177242423705514081302586255966157995625789222780858801248431205617214662905650998801393330383460630438236267533406604112926738288417683342594083133216720841766948749304090827017112994098252295406841254908980834312996426469519308779491718803835484974427790336136741902992724645647424135606548229249903279405289073063170475204792558902399043202497145957337398807285420576657832179991193048590357356032192769108706160104337872370961927919928972112911690827502518731312332807259450953361844977168811943435341197242489085815364674335885716963333443984211197112946936627666226476415169432146356829741843532585801170145085823393676625169096541173707064300185467324799963487758086914981234812761626505622414413328420185777751542385798355492572364855872481589364105732211538371112051713259216848451509285605020699288267182423709442470240193207467534195720787665347552747889074074634141241789620370325762275906838120420210313814459335621109846554700966464939674411932531253031366755791594655174502768884583581770706650815383987800720017379833310300679352323336117268878805422008340501699586645822777622989837412755659574976947194831043564354990003444682698153171449034088203458670744982498533685312134389718390147754204210727410793529183020364005467385379123688728795091851259476560914247839867681898071113813932198321368890963190471289643620329254767270768863841541571883525783912221120970008526708252468996492864994015984528496346724847654918743214845943562749453983192304571700403061294741765100724479276469546550962990458824897915314446548157364318730322467733337909676672502119382344533140072351143387742348301862639253879266731760058791377262168704106580570221678854095922640410137059540397611419917188447501334046341433462377420404981587955090891478519398996071602415167406976571594110642920061171103779201744684543069814754803408742700931623120649772398903278427097865645862652436360519421585401899814454976140207422725908145440683380562372236101901434345283355460046699024804881087910372972590284406997653582998861875012353859907068953410651598326961821739744584542267164772233306137059945003030682411715064901717565111441504554919810267679980999178209714106356834489137459680968193763703069661169568513189930872940177540052426256087172309029483231555501162740157001542507524972810074062640688183521896120188539205730833851183366035837749955096073415532184972411201373709378641368189934308194077752211272312737121568863363002237905790558610488263676201348490412037529705416080053827264883404479882350993812657291927293373039641959377533391038002583876520254742495543397319679291746964170589217286011506515952854462599778560707534215132230521759831266726062317343995550667512858960318304382681477250830314671694676239003477866860242942719046722211433969513428301957813971881085038848093179852888839102136301397806320770192736789703795896783692167478010887741332513690563576121451499211833732926240925613302053191142939835621087412657316707875973363159914081855432385457007692332921783167085607144191853800972691267521682367272530117264109336630734618167341858505101052389760480736624687916017801530967360707820545484662366058358354194524654322022540316373069968544779066328765332632785073985419694332727606071076996282372382573140795123627634748175149021556648817338141880635838235002564574831733211555223609229808770562040225542530502602696431860157756797077645972238552306230142445918342310584866901087401400907657241298756406860190775978907117851431506668704176197748027411360683945713439457163967937332868824023716271454887656041005488886099910005989562326974310703058116010682291665192574141223117672190728269029108814368097640526880308112983245398052658870740894347025058572600090647487173827684906571882380538955535322827668204855671732598096343560490424874911581412961581140742642260697812855627680153379018513399224719056392689574547390424723512520732647957125269134687490735287956889735024200461521985154673310195187841185825747252328984198295733836312872268177970073054964901226316847301146270173873636955758873393946741362072062901807797289274226111879578224274183259109129797963784272787715809879809446663315183543457948622927447494217088100196048529094669116429937796001469204560119732741675217722422568317138331309624285810785495390725833762235479551992896127782857499567759428010964598126806849956553554532188668592837061963219499573173031331491993505517035222792674121719604796814691184960668368752807946596080843725071242190848959415463560702841283382403540747778959902226387159904817910631799812415449569204809437911955230034469473209392370668301486805206407472175388069232722188392292902036229745910056826985427991131300487768905257727762885048532496322253901211220900558559989720156404899242492202777847252904256533243949131343077305452392591567050643433483810596634717788141779479514697336401855324342899521080484350185836077804936574112133737558283285991453505527830256642467339533509428576874587022730450024917025673436677014620313223271069790026334263734730036320068208142944254421608542834448998975253308720341579976905941507307340713153372813133554150331279908377309505032571346426154747475279426452213008945361433813280025400586665403129226469866316741953279607387023411244286708317001893889321371844729409158898774930235910954651053170298629542840981663802250426161130075632857824480474687108451221192696001548631117369855452292490284503582154195627580505829102045558899531639596723317856747546780429197294653220346110776104434624895596046367515489840486038746567660230264616251538707165813973187535594897631541093489941612911494148966204241755131957626582145916075598673682778788623817308307800574158413056243777549287422274461657675701654963888945687625506348330660543195809934339582235886184248900087715726042726141712502820694449379736882490992610627632160296651556993989029704326606746856460351115605033488517778235302370626158885752033656287438323818466525045432992248165919745885070213405105738405722022465108637509745361168717495042590607957950213578225772892283718026664527571885255057568311251574496900294103843936611399382757486574836154557433563826378243012307905012329986405745371992605960606744025420782062803884994523349844174316499624232712888086513812570915017056612573269103585549846017658040762936010195260419077116618364741694903190212108021487183840867102206799570048324575163658749735053187033468522282627861950686203147878764444142248474617675929104735686754727435150118756662698864952635979656874187716824395718520476882189986728738024321827215021332244539945645129136783099501369049060295424508702100429065277091088842708244615723159655972754035605931525268548135771590391266723292390425879577769263978263394711508371210735586066440048758391770702378211017705003398285721772941838893707962448797016174145054535329242996675880841016547229891586987875537629967065323310799686596497425786261238316766820823617798267384024719325915378289535334875103144271830180828304034272639560947567903108232772677297992477337854221195750478227248823098086483561964756879393789505190035736237001690768333932043492733212188741372640183635713964131849379728655330030354540649552705060396128224453988120791246913181072654861462502573416092101805109113185063896801590255656419102968420271003682065010601049683724602645893327853426509275433836481162386981252657077879699476440130118770202210144633165841769749761226994043091315593739523163127962393797240280868556805020378001202790357323462603002672586651472783201675383818967422812053710810624294487924277965404188957067990585062062613625754454874912071954986565567885933073213357942482159502718044761694306168997080456385036231837094309805049701920635970132400190854627376864002624753143483900985850650745279168211557655201150110685295492281008133239076784489847773122855088190853758550341452308428587314546441808472660649368471117127170879024114844789709484941490883448991289573309704959154364275981814892709907040852242192907377278114567364685146942227310712362560485968236380805230520302302208902190221629382536575741937592449542740173322964918160065127812275815070141210902205311535910749010516787306023548357608881652447183479806284066035606819334478869234912612579578422139348492599163874512959485060786850326190419701293619204300116355528378305536523602708800487348734609101990552342117416114517210505314729878829522571218984793647581817442191337795633916132336196201403842073433742562839624048954848838322367034266397076932623894730227428137932619568482524831303387385006391375339245902948650084469212426830247431276419037099843597405972076674420941252127559657793669528240095192159435788338675709172289366023278584301365533122128229026409083006416766299449285156491583588320418821993343531030697105529473033465863662700804514376628056502857948011740669436283692940837365029719849519059024587253889808513866643640288516064684927622419656051112666333941189213653413197870627318760406095414443878766755836317254489403271837003754762515118306592052528843712868987584638426348489709003556575525231608133176783537778241570199206045423917888478034580627938356908532081165030690097662849205007536737693837792833895370762737915595779908998886924714682533075658549516180706237757768145491628321987028059736652750280076728124160609778084434797078684384491935410564429548667760890428868574362577175608188745924390719815378240448291929647866893511705308142867800443332617934955132807258937571444298721995096696556285392765754899240507679885597895491569994578162585197548621580609459016327428836263475398794193794731274244485765321514128626571784738438830309169907342168471174581299520819154711458191490193141018384843429714826319686930399978984692779358507364674152957695179363117047974534665365436117131045010876405527109622763130667584757129259118957665611569119681150836574852810311099689131441689018032003110425594366410855770799833910102175841053096919071574199820140517466916184349329287511703190258077999886375948698452659338613529288490191000299299857633627524694839342282463454144724240358012287066124407488054916386857513363734559103793086785593756074605499455518134397159673652859868807205110882365831803746536513275363704832733424237351325709437073164294202176618986998931602963386809752330180945185991266883654967286219685599829985795764728081708052908107745131568138913400858610759648416750008233553925151140870022954438648840887631439436969994699388671276661357442398975777749722162309455639634214753321749608241511399658749974194742596136016234223956794182666527936022368949952522053945324987776474478957677288024865784798884829774583390357668080041124416486031066449753190730088288795971374452576185749253700196292384533112064161142040739918444762218817144794139121140581491168457761317236816255331263351801599731153685320627349504374690612693945873422212588912343120510746052184953900224524509230104476187952682431495932731711781811367994555483511804987819445808295998919118946295355656104655909446562531100349403825933896227531644841893405315610506376123492787944828532383371754450615149320781978797368650978068145391226708589710298287014774210597444811331227396775861942977080011296392267832621941671787889876148719545847759205709184470473511004197682351072054854570096926774066357323173032137442075614015095388622862051123314788652522936275118274203623051755240403931441799870958358069028419787761859231949196993002761489196618351684853843274888365844799261439543804422732179773108142836098074237959991405576831910205202645931191973059202267406021017004568339237767756954172698783640509365265419925995513199698344442507850987739811459229681033275293991159357969653149416409113554076085046627070557384785029563961032577825711383728801579995887420189560391767679774490459299319656665514226663579887471627505297360695964720141736074831637729751182983920040043666249851357842412575268740447830842883866484089280546554462421508628341783175334271474809152071333448173646846880923919206747712674181039688517545765993356966045800630218975692050220087008793271853265523544441744454084137628159978953053885864573071305586891646561472484758684006320916093704107539046545744102097185502540481310868137404608515121222334940432252702672124987491715665044756786300439155417814564762533436790953467209400840450305918355745675450417229364883745984405992844224870147003322194182983440034291051794623639427787985018776063960142390723483562430232062490406686674162788021974758549970454953156839294962847255695963991401457192660171838261986641380923718284017609036606400005283637643310111735965199150135174802619700425353795099694658783597029982804968674633503271742894472935524936312751607302148829119650397923997619604689053151442709419014745275298692187568261437827677047326424378342052464077417151682833702228029259546351001192361868613110907351000692796676875747502891185656404486814470157291517394269439605047794164614370097126620126693617571496997140240872932012190508277696399225555116668015732002572790863798755090589211871551268697622954108576688502681189438753754571202717819352560992475707152117893058786032062341284306601069788333113569431389094925803044367579632971940880065012851581394689812099904872359689806650456772780535742076693129723576058497113190677089173916369695973254163211773205419496007659012125288854565018182164522114320519833193703319613789160323821608400011207690091716489187294467829043590685417345010344625405669039102210483412787034947648001022979974714780889389339707877425192753160538836609492710576177115530884208897142154914313431520126362550065175669826492180001752277270689040688374369720701235116406303092642889204986273079377498638948464509989436853162038856992719684151683256181272381281360853948624719216128484846763107356597902468610272909556034235370160317879810696178279807844379985776658567687884309049394445250080432433179809893106045511058213054007902854495205784506431040370098375138940948294783975705456726583950649146391760341764774142012456587913105894018999082421014181561881201104579112393757022362976243600126574839026138827629502103882757992918641802809544022431378029559487689790238162680561359544830271306168535570662932169199346314800174027119644791104554653665075817485894982165040028043982125281942410220414717040004258538362891471146555273667234565754768945085309668095637745646164569318909259041354183887399229323425305322644513183730831245090345553966542425769215425124016667626104663301256375266475624630933729667184859864389696482852807398733150197234388098511340476632851499301154691800898472930516041120312424789585468647968584644741485242859444675190003359152176597994493843513934133387946042657319623182946349825685803970722549522755263256935005435479449459328294187384529282978562928703685100259556878034098963093733380159756727158704779562801995217865577933187399253892735417860031883426106196221296670757824183115473824057180662612332151203743946163300986496110159878439465250918063776358500517308841918019269485816914116515562890563847756993902385963988801916968948748692810938975362122798849130741622368762563058258855282172424949129275392985002204591919981015303493778543346815992275185844534717046665680067902691767825076645787064157479046833120805373045183110990116966859125322581505403822731157891661102847156649217473751915058255269856691731102361771067333925689064351622092957355188294784016694933392483812004703201172846961258553497230964877485373327251286234809011499711351098234256307658939464168207398684999155166667582783569412219569379642297500447449202795674658792559617680509803214743281449155220296194212434834203196084945444537935574911936477707332567773246294291296780152910655924088868487588446841590451418063528898120262559983227813874596133596217762285258683851887894795495971581692419868328130541313819840269080253642828523442330195747447916404217776958812179738716136609916476666609852810274068968368483068178728206786577737957727307565797448308637577454221125284261153280135960306874543674427206811807442958175704659363609267207128300701921879167158999727801564136686409712291212863715805973901346252685834008083081605822742918999918515227583044809733359234238310089747975852274749163620080592849903714472603747369923807814873090825153405264903446696199886519912224841351852700012944640235854731682177359995858985281219198626566202443858810673727623270974196334300465028550012497365449166805107984752719081535797967020333459002121171285596147253714983969626250072840283969241618816974527548001974007654648459320167384344012259908588182359115719050205698286819283652859270474366098217756427417253340724944513775997359074188974929093595583383680940708700971053289744900072480329645551021170912424466304308698212396863903407601707921311563871206718042528149537157371548237874310471893382255761096099982823465156939039042617072408416929826841306891624432877085008776412117208680490073674979029565362205880301733568654817518419463687302525659227864953782818561281027932561755498492401046764716796714667627024992956908474397819638545189655571363319800621825998673969684205607738650927802683972589191837330792316147325927195625084010580177870075424497022707901428880461427850535344784078716716428738011930643584170130388673784619279709581318524156717506439411000911284203842215450967890322537457563849158769101264282273779617205346786856819013142018825496923828124994019606955103945366841142264010131978549666555961647748846838379892616492188444640261208404616590140371014474545064800161173672249583060630756155298789179500615132252611041688537397789327725135043007569686922214569140467027967020000060162927949018192546795853755231322354169259737983622377167255847625155945857786664388993164908157276197685243400126680856265893335768101754478071753236742333468012722057713090833700648838603898000165782734855519748877492413021570837884189737126838790527455515303286308781240714274480197963263387070210091355162868307938287790821232126694605377855188521953264134572528138016789595098127949217930292993753054598258288491877420759878862440123733322274277857063086430541417528179807502720373186372334722599893757898963704641278698185181495960217194023296510632304607741674818818568302282946088819855945595687572060083120189482089965285734275660666334115189910639876861106244220091086801288863742499421427235433806325189462906779459917322201019650731485142570033104974573618737053258257188543985617346781077669161997740426025993803608752851548949395911135231045509406002116732507693763920358090321634143037363114648839300732308920320166616888228703983089095963707845018773754878507001672709279299455089381854982642372277534770207411434090081662913183466248343459252594736125644784791007815956776368368890518653005193584289403652335894637082661779250579438161153095100833098414553193310178520900314016121152781369804899680090369317225412951085862001762145189896598799905180739930778237443903352709240593588443704957433630067956227688050259868303928868003330798176776603771932466111853836465033552766613819849067757798616817773002459185531402048420436986933506814258835605188400955948334190137888772700576295731461567186235097502737837810374591981048003537760981418795569525053457685174409667251413497596246126874524038257579389599833119786006356629821357613264978621885860713891262516014001941823605359163069611042608296355732043824819670567639044074417905439832378079236741572220307915669317423092219790648502166642382313571365040134748037343463372404977834532590787822615060486484880019733476809943839108218669380188303661562628246559544011505891499139389847875151293781980390486511571778596342535217914373126132064753800036268718398532057894110580658101616653456565915774469439633304855005788471368090049457297622977539245383055407191126577918382208375597865895048606651021136244431479660798211610788354674906083430848330572480547365763507664709975145740580709916935843324537852532657707463213031503223238640461635351924799477078720274683063262489998416863018517846063868956318256215591193465798732113425602915700785549652378731604470915173849627283909501013241577273862422961636275591268419355935326165494808147448500571215386903378797168142311711017479189811514167463994074491416957787725054206060851882636305496815221117118384432569934989181657522920009007280900600829866340259404810499848970079524357894921416786364568075695191046530865724886676690358576658374747859661863030531763094569173150856822793235934934023846777415567703833243627818393875128135551654468847797136996281485152121825652058266845415147541445897196822222391518432289958927231244265139729971524708072403942562878020547493001299230514506140136224775155776076145741955770514191912944561912193935240040904829158989956043451405563458600631755355079037109653542825008154796178094580437096090814534577749889295269535834373010029437417181828008644650766502446716503519417090523296422197026077486029283096888344736361425350648262927915562854920350735135160158246820102377063637243656338260094121215399708170646474376096012974133021139081936111068980497490687449921090393063204964076864265505864839363059690654917852354146402740613879970242078960490904118894643722295471946433311788918588288546350593762952293355006878920455569992538875473701358835802185635777742763181130630765597704375274353168697862357358267097095528649443905670409294280133108750362651446762052098243013276059513713106121995182637069838152965738085564315223472337759931502419617867384247917644951423055477758469967402510908401539650285323120026422716720971475970004965272918912422632258795608643150263785160200903251131816059841284886375916204751706907637612946990061154231357220547388592917694318245790108709145232090719540030614539306952074983468703962203072096965950854720915787004098502841653459855889819215010668595363676477920470457439047500444983243164193270269766695088851439360386090543960101686755792128585476660921777775955186997077103464591689133656245115118811471533137278885869845802585840889359409908694747377100453650981897916985977819022840984425140910499858653099397428284294992620082115005601654809644338368319831029123259798803331982660626435822555592549709930867092257568591640408523218017273075003294662733395487236944909989113230996414584136438172110154852243109127874128587925893683559553680430833755945397418693003378761585664900218944244571184661597815467727973981744599779495591993726251449683265161670218321651487260341642355481959266976468687313568492708768767807383540368187466234358336305022403623656426354775333799580518740052365674090911493310113271794106200058221053819552726319483618361734639642732846130771151004083954159995535891904767060360404718467392604780579876210613476393777382581558060691151300110237402350282178620637201772282314496437753803505502324914759747765838071619241725247608794685655377431620611371039695158934769875970629602403516153943557014061508752354250595191990033844334910629657879659078814079547238200268452207240668863030526318488273966461451801575584047671694938993574577845666144609799481160811391405512791710517025067207648549502438614385253860957372423642668528787425139586851150308075188355383541341648348746039814486120733257978732172963381195413429169338107693012816015048728666411995098302054653361551929543988813042740879376728162766591023342596097282864958254106803962249655894740345015592406194085837646299787179476312761566397243852773719473946212924629133400414269593364427422390051220588004407319767012738000212557387242939317423272312081149852068610463746408508360833384975018879917457615010246054316674518503601947255883544546193234425736480351017999101865518767139274049790905153460724695647982864240111230915460299226083189091045586172934591551688993023636680130543796098667101256917152260401052542598309433953852147913522100481015187232684119656093129532340475260932450495336847718040111585434070699459199339055530214541178404965059021890393693660355441815857272271952397326706353178038645289108210804488912454946383175500128607881497483930964866257795469476312610373408262941260282609326976385147561345041727315351096365368958647149756198158010024623067433164796953299581038639088888784772489398097021041443154182582745082109298027070122504097993145622291190151387039054663392448448163874133363223362262719330472704965287861493237750169014750096117273057343751824495281373376041606471081489276317884065258583488049325067371221968884108572962523831499172371627347134170514643610337171456883131223088988869171234394987135687311185418791916079157477393003485135255273534740461137315914999042488679730240652318206366388062234345701026122476951702278610456796053592985018955997589198977397016302606746456754666294217958789894402050013178351040831053400616418968735922727162991790023194301953898826537281455347984502077068068800117761022157812833076368760754527278014064263833952324327051958967463255465485595029370528480249522920382135066366997703003241653492032265846681653148750554536225183621886556455736764794629476209779832302832413994439258683977014983933180595962272093402165484309635130976993369115564953902147888879244451829742566455064244776885075380597830194469636839744033794662704881600211326114650321981367610806154594842887768333553971631414250571411194107043183849717544742527729937420707599414930297144414109601115756558111611777802422989361941523320274231945232722377478342099750941852882357553270216641600211435001331735472286820550725630723952684339709396450200021829277997268383624706005660718985109824969156885776376985401545087325486387347740290612283563284873932355798879578288736151260772113587342965672063661263105814583468891743965996515412187316975045196721689729078935171019062060892087024650908000927063356564083858449700105242978076108827348992122435587247365927108442475785170724014952235900804159180862987006340314118431139929626928619704384072764987061998266836751285677379481304340751764483157063010032457192802187432053816590522692915296096170207250638587960234134741142353644373252291670841264188195520031911519267856955777303305875541703754487444118888534387814928480448265601151981447522916314062718659662046832686835790714725733845020319257528732395102083102949261384038319064977733647885369100176022758190877002929290996746712563689356819053520494125759737099248491281139353298710847787340287337161716583784304090576313095275595522045258333031727404396674132113173739899344039535274152660372862951611411648308201643449410378860184671902078468952954482490543932266947508802034105735285449847677738597371893520131718516921242952234033112660540075333086178801516260137996650114909985196377946321606449932448641655036512933973637021763204870403180058136554127394489936176078701275239285212561419447607694523457248653826175490126329407514408455234040222955295211170870567452713959501511244194970247026027789460654418990162606174606383742993674535301471265914809440881996935135260223405035313328064081163708210593607900898576222281341145259754110273038131681128433331053868110127781618901300669111322839415179756042347244875018629367008494306848893788797944457806325594428301992330583847736880334404162037275115993256860108124519278995748886405974520804884235675352877336769785165723177062147299656017316980110698564919754217424798991118132911146290074807930248623187320214524538997833392737854484761092470769489434538313740469574173594495632340244712937222272746102635375615139072493860303792736897480119968028357565464245419682338015855895933971676089505233068324566907689704665659256970492767966947881299842195535784079944506436903332184569199267434515504517017510685069036484041899163992515025275408970981995272983120275876713122960728643872379302007550883586690875100821374166296427397614900141938835976744109345167452720533958779741865895190963380595164015056757741011062383944975565010590773596926285590031607178101303754097146580931586757805214803627603177151214641571463627501776647152400459417060247133642307481806045655249194690422879947490654749936993912297500408836905156561162430962072388538748931718746018482690306755973997804611562441236633309919107670868022638302391746374519501231254362420772816159396786952127108005491837377677237822048099568556779108570464886868484704466042592425742358513686439492703179603079943933195577643894675894072726436984183206741451310493148366814337525705703103982119663452244435203058119914662655912870430831375449063466482149355575104440432863435241633335483372775465664377514536900939483341512469123545400025583932989449566903408554940453386575398761451160637604892846931420293564062181801636242869610225991228600585796813413367736984612883128193663695389572968503835712818662121955264810707968826324080710988548562691059903001862526208992235394227225624126436096983287109086971034397549263096443257067505621826642861932463767826713986754012502120599956068824954457754678182618054808561910122836709503781287097907499156467484247900379500349160375382818095405033169150286209103582758759086340057604641059933387151979571712846600548856334158614996361206350318150697623921126495011507732551232813439531160020145309439100314681612262252312646849921629648173655778147228129126477245400371338352825830057981368308007495920897002092147718634989311307550754227719658631442641431842660715107046208244180470119154980780317713270933679537561224575807368245260230546634234582326115866571280999311723783551913727062657789490548212412155990113965010248995523977568243442661302662908842824941017171511438668418961515817138028071749831565719415452481691664475307159712766336452025629626465343919119912343502157433707599843272280936386187965023645711262002122996593889791433677640808554718351838571759762691377173661886859131027204230025891808880592318110430235682847148910830466202976264931054524034951650848818372896554038768923313042805881433483931399010832368173596194117515819933017946247771583093593876849351439324434222525486153529924238262108400876650680466186146318570416082463304772051052096565207824997288541882318244537411021359717189596549508005914193723389785754596373004595259427897928456304831962817486526142585869406503091290482293392396710294995310588125624544795594178944215016351079328032612997172860836160267748325945909502230193955642409531432884633976292994873286358043376396351185181981671989463184008015631986665739073998603567898085073475897394104369880935723796598621301652697247640098011361046727836973335758505813430383519752217785670133818584138811790511575938205631206270912865683080994573030177687225137043775301992636154598179952503543954510278941030696016441464061854480741271493228641125227739330373994806348526946255668549316018604410137484401797659447810998020343122380881230734898596929480551701845874644702506726377526048794934916470706990113745934924280618246636814257018517704455628977640927099948411233724494061924771635678124821041894640751046754122381773339470047780640133848065446688659527325107673607978940442407662724909841521150204918057801444486392054618902885016213868863594032176502465226367638776463807177005378383479998078236879438709410121999607340263598554682797488499833008676994360475488460242468709297000316675445963322863535265081296905305530215334168584678747736004949198060665229985774412419352017117217881921408554077210253928051922010830483591879113641005422579450069266858875948552045177220051190666679237856194898222949725632525673856258372247231137450000940058800168735927818830787778520777769438792967071821032768488884792750154014347385179597354104815507210038965637571202349896532804464293422376148384413880694624637043856877736462050871937610959489256570711777644593923461054451040225508626729857086385225032419619635567143412579141629343036855465069888466350512406489844267751194674090699903660147507567657945921536683652691225772705023201316320755111422991614372797740977538273833089958823389912391742800989398678109639867643293778056846403797342398228348577005070587740127007089317854654594560094354986983006909632415747041437553988157389924987687529101695901959532927571578126434373751526972205446194870332215109528324126686786672504111254535604726416232767056355651449651564428677012318962703191764652661152230172512275055486054859139373009191613846371753690698965153272362247376326578572520784058780633507972669647096318884075888605529005987378241802087963305095785293548369718000844146350933152850131063599459751198686656736002283462663498016836437294872097367545349835088581183238457656467710603187141866701422835907919760824362013718769984349393441179602073936366529759997665950936817606785043075894232288442587199087977452195870038859862132286005463407773627038050751329499906647046388483000967740823075561464896409877352614739965293572637576448789364771871390084618879671336419045516969859370327825876868621439518442567752433957274166064313017964650374052448239260291908651569759450826686972300387800880820033226795590980024166194005359607869287667562300736887050646878736801000924573690431212116228024957978536245381380813734446864809577119423503591805071903497036398266304581491836307664077910995259083178889798552398620157919120267632552782756048846676946531348297191526927686924765090956280359747120204139278394334639687352550953445314831649719854246220087634468538569267827716663582177053764549289238802048501058511955003333792387191497560962907637347859289033899590315768443306535655873662312486075250075817359331380141452103954446093157486332547918959021581561319575614494878800842563934959948896717114259442016910548415170368902746050404225669777829444238590537764677012371812399487993125759471694645687265976141066461724460823591537722433159049838118506116802309381993185062782457043334019177314353833092917262118622330563135131604986722043888706605941658771161337736378093883427239055380498816890646595908470443927158815539353028317300330415346997521536387605219270047101487939664638212462799368738801764409270402258192583667593835847376835166470907801177067735355142050745871464321140932941561864903408008646017888803276857243720263924294661227532321294375398615315532832849934073606580531684944718494062915083228500042615758755105092865438681653857112392244112434821629289276797462698081428030376988308646453487082286842715727812338153649144079422614375782415219369629283911167939761494115299591330358857084044555062128388745739451051862080911275041042275944784849587392024954669843591326384023752922599309620498852638053707554043214354682422449372857923365921459314190620812458793386743331658330699105351239288467226761620658003340530716222579174048001194258302678709295691381336804846567906734228296720815518338019163488493806999617019165478343194245842453064811097296801141808687385858219029201537745262186451518179605641480329910969110479067769219220682238591875891466302368801389813170282502624183111608467520398156285967401540564217330816061264945948529249287274144443254447263081485523975747143071931306390234121992748661221184222818753967038762947834479097604908734662535914016009816423874669884414303532004903843519843999155237599854992040885921176671377532203107824518512438573771321763283313352232148701162158622998364745990895366217414231573763559142361771059798777389860086252091998080726833694360816644530157896709409087023488172880424859280370181324583219862841423666937054827972378638293233874072969497625687432713158383612195821880610660394220088181757345953055762853066934404044390941100691923582482252895946925096408940273215897452101472219394126974032559346493610555230617918016280756057756969509471837570385802717162772379543939662537979689528397483106796324169661610068688291011705858408619333868808953440237451134228736703536878371914973288094196891561071783106387585675302096122598654993213228023220400536487793188318905555452847804872865552100260383358007894148350469591927241142447547054120921415093892127207914969125397022576648129475630761737435316247451459070811384426257092035195040809411992977411140734693554709397889085083160670300835493717309038523050009801563168509476068911785464133511688859263627343471570563048128791699204392904291994754220578586278849351326084169703410231152352361964892629139818074632926266173488662150825880098650498802341359993574218794664384791397590911551917901008832725529717126502459911263541251605415266837395052923563074484545290715599309626686771323872409893091278950810365581038835277362057997994518809108580498600720012537682848350350550862164386171018256737167142698211508228750538675492760754927709628774889499166471777487701416571391903591854025886161682413407796289253526690454520944208102583825035185009556807299310185289125728348092368387045872940481327485018330539365786843994918916250218307351316804939436247525895786243129119819107037691276836084181385035998169525248175039093330414116166735717403215226459767627480323378813491731976532053957436205378798331672726412093819851561570715879589212667378649127664417051526857943289665712149258584920281688934027837619058997368532999836090057284132073427849321596601585927473068776078785238800147714379387869516233042771470820206128269867938798883457866510312128256481421217960797000424496638297038015727656447665394835598646035827127523294074521457191271711539605776831397837590144213136703235344508634828030289984014912894645951005714436831287508393782991767454713261883951998874125849431976115405094633998436228771155280199042548838163510122538754262048010161128099520529357277466897764579893390529838892997952638633958792827644562898534748344361994241440608666935257614266170450632902057000832313491827003675530628443021104464812690555510441058286518834107380329250643061204730863595135500582278332019934381314089052843097172664875015030665100221297782478607621950346908147368134255723267555524550091772178723705268683593089040950443854283558140854025737997874607704971042611819320970057905372415355117720002347934387307607924642113567064088376373674284145681315119002819630201707883375652625619688208262841272948874669739131761466367011025751959034256291957862064448766473866198168171836354259588178941030668179336850843759712420780784235991618805562877282441311875456564418924082250675994902509053192226354991271701870672480399659739501292198565719549954248474200126744657801398289654260679405492730978778712124401304450538493573402033867818000555637851358937913902601820463365052028232454494419962912199406235217394541531010833961094759233156913295725116282165419099300901994767044170958684174940326959607111343302022634618727803765348354280013269369798316851518166939783963371309385394875006196215539746755409147194088915775832486383652367019712542866513830467178931273014236283137037459725932774375051585408018787903485574605862397901974347527901552109217518623462706603344767636976282100958997549650384816871232399475243449748531508945112091613603331763596991940366709174947593189567919200087081638289777532535502098157010624588487281154657844464650386167976376233777407663168033139470652980545161990613910116093674690934468960814646169278286244004718910274859533001068360363789677910676253133082401882305489570442372642359677437292533510775870329629406842216151633859572841858284628272754187495309522868058909139905761165818932788462928611837015665791893991528025256887844206411716357793435199911291206445220061150524793845196346823835941059969744736048246306619909595966261887250702936211294171100116996032696543759572215027648078116853445172992002370500105081638798052876988762172806377488049340469055749754582198280576993369193039767773777971835514516317448175710561331398497114708735528942781625861527117583422447307126861262114048851070950592702372163280663424822828208160602729345322286708838423059112148461116097331777631691608242485701625207788359512310792050230226322020761298430897357494481467734215326987496995554694795438861128101445706003361144879037105690038354659243465813955615102920929766141641715061561669056505576899528289078612859339902827439845307580433650792712254252607364122821461999743995987570115939453318180519855144974921580377601574423834407736161384704254670073664242465896407492514026524593997535900740639417048524106390576015893399217242279279353649752964786061275053459203428226813303405108347921106279622844715661286740138184643327634985923344811625965216012188377664371581500727989280526320568526531498086393575353659171588044529158733885118446301410228975547607987750275416179290641596335245051116393301423434739441862567699906814773683637448825537449206349256341963511725313973395007005092006819429878253005367090633102768073403731083071375622654493105957937376821580749913995587805003014238764379555408003404575393840128160762086254738277045748586872691979920429215191134159800783375314566696697886154227942673742052798139605132762447370879055192455284235769592346229804190407240324927550411037451502447794962250072610083954798661084625993514243685831426512235055717820909775727703884020756815236444044587512774745116692257612098868222900011900104519252085595153060721879679977960989958483472708460755487487712364656737189683714292042284717358666680024206516500859109919523644182999248077815902288355862662625699766062049696443789132155961053434537953002665270127922886343372018799246860601879904664405974498835151486815321328213119131213405493459589792237024544657024722468100764979086978425447655314075287287495164563920791938206798076829826446383735424767020772428966311135201874079335408380904061538373911783609864383788882480608129074248981845501303342245030792683077751896093401196527930000205058452789202031872044324940672545019173071554300354202617665413689090566766350141871428389131639839853302333552634935028881152895315970077597689182599723355084055511653873670717186138450640194115950194248560937211918435256557523435890923568777215291992668483742871824913900362770782996116426910895143912875234745275701205839092500241593967066899011722768562639026471995258597890344645544384975971813604299380178139807225840834077584021155629534790927267926779613120494673298490348393076020169334491542750308630428618313618220902787976538802151483868779263899836119186996202227890014812475422860387227723039674975800999351653525604617166695162794038994243614220357531323588766231940283161157805219850912857863567851307634032724560898451054653583686405039797217763604690968907449185720377807496597409582263987247892403141098401885021278382130866230901261816372833420086275106776136781687947753763053454316042967854355083632575167490407607414352764044951464188100278921618000808916342511047861891249220713835631425076221558699716819894038555696753390990822727007820486473463367797019303083044486025184321868003081270319720326868390909407062726816120894666127892815387520403252900047964473036926990231521647270038821172532320163695468763870740650008115725649767882605773495306049010490113987074634827009266350125854263720290672622094970908243184317196694869332988874802801417869434410886256924292153152967413480307320229132214904285993182392264900410762671349681239965479546042353686728163578098125326151339583320304659158692063207150851440113565438999912556979486337208870109961145030142252477724788910132261196648293821040088441093033823464273338652047060574263815980868469813403165474991119220398158540735487880592925306725600212862794636575865240054072036288310059488227193461381957191582440586093066520673577229609340276984231016113939407325238438278493143030453590330019501911023903642212061312683826616456172760054444951112105422601212685077462954298783541142945507332287372018951424105469631302384977846392569157866274652450415426237776003044988199178019995637923960420774419056233998686301983128765977167366035184226918735191631986905181827903786033018869067882072756513517345668294415405946703965994004056596838089721023730711991321975204787882898216898800705482412214580818078107593279341769232938322384954174587945994752831325592989014050148146074204520863357260725780652135923405592803234437712214786680275492484410414537774729740298216480756233024268496371422726027068842991327930087807696530553663867374062924106660837758985419594569073682531354995446168395131605899797549196860541506710460460910298068680347714667772726519459365349094509151557777346297453411141947193958161144702962005332488866285407023739837704490479977724787308344641346173380560309714076039410817065414885526516597557478290495458301277586176002638067862194773268598993744279007463346822285317706347166760644760962635121980662243684600052796874474949956661722020560036679809508010539776797153087216839395810837983158406037536985673433169066853103961145023715414689629686135151950172576347272758645296199969847167410131950691233478934245258057119367662584404727572483799446745251506772296507246117651478335595774122489910008107950362224530510023129721229695819521596260729481445188680878213323252690928713735338131563434529357456231755701821341587357764747722240694796069418554064533682924231064533001875013432376660457323918381604320341111559829364977486151335395907599432945825751219712040362683238964722786184346682312823619569070213408155361328055807355057241599593317243925525991995344975746398513745590621777958371691777235795426163181072526985844964906954620590396974559754697617952359740885371113142787852239740732710325338361575255816539069729518547673238678601834189417471837170733865847362601840708474780403919436296645309762882242565163438469477216798631189535203102201655123298497854505832897995940346705772476627942948639381162490152361437695462408197586606007174235631965156487865951127869238356566531643685367832810028793039099466822691263739397963821416132952126017894581625897498138813971195730661716990293743471490216339174459534816389920541722905815295929767727604109816490693509419375270628879391489987406592311480696936844516151683012467271563677367927283204670479226762900038132748066102430266322041968487320399922338132562914054368814827480265080402124804105013755176714057302332723902631309653847984689076116557212446214959753754345978045400722281750605156793041848047555694567070418588132492733055956144759246949440292508471444460413857819957852283882864982917886567998272588763442134426978826079422387600837099641661734457326701949598329894776647906549924233786094741292121715915980722643998178220117966536604739989435713210507985385695326066923563331682609798044343326121189160138357989054448593846512930418878327053874046716345178473226305492704513527875500795981063167502668142381990448531012401746257846072670300337467494196897608758933434261306963723447567607454787781210822198633052893537083633470629348306123753656087942683811438730371699075313144345152587311797249711814094397455924215071880481379172700697812807876650217834064389777534459486815219435265918884864559868713253713182711799637781076643010214361813118392668171159038096254298438082123721886434689544423267661414979467562158175869984466399723175414703463307119649752511465861602909510804482262296561802633236655991715366931872574133277633266502704961848849077118587222209966555457528431210311718094639499519826681234007834186144159950154436451563809896808507653554176379321191189947378215309309037092335320917628860297921937954440935259171016007198124381004792225593670011497279749380759411889516101868777498103434847127020736301378923213378428178643159454841393967041555038728536642011725174271058019846688566726180397190767265334604053389807327710724374119513502586523429296503993115478305658672119582492363751354943260956091224364419882766402965529014454499386820369974303385695260526272389858210641288291211317701167571282076753231950370262642921775947680658122808800058962125487257594029496036525958920772301324800328492392279154659058973033768433473690076817733948475805999838891868751761590932290825781005141017925402449959472967499816719016581715660343151483588614268884312255154590340111697046514611642581201102367491567789036724941066179189275941145614439275078320580474569120039301192351328479020027450347131949560159763830422396322919084279316428632725880463383991294542559153784883724107805511190101230604046579200164520082322389787452761860345989813727250933703893453026405171349104238233377192873469039845452016020069847068007081910241362305447507436242491060460663407598374681426549730181369109563562381318615443082865482324509667962028888324943859925228137932264712072666241678093983060049748468540510710949344593452178349408718916564241050779264886055676323712912446937453236065720986767995284399242103788242217269674519178235409004124167133790800229263555073795651486735334516891291383200985423570685298328717878340451857174221515840056900731596673261870110608161177573499874132725983580464728304427036566370539787573071340850911916534525646757361651092736527020509266969407812870717310177878405649368716884582738513877903742831107437667662729446479822506873016512909221693240049254576538204202828137930898848315597115856462016093199877079504495422715908359824014169905325333286679794634542982000599001760903845361822830908931076330073378203560278134414591096729793388172769909778760747890510459305392408259140395658502469904310958559460685505524110310593257521343363952109293114729907949109147118580982313631230217603654030936969317523429847007730773112806899227673165967170802233776886438295029102322015003960955789740909311342633842248686625830967951784491035337648992367754388342749263132122639639418411812382260505255593831847677948932527111239278759927508457566664298700787142838360736804875579194596396744406387814817429119367796596590669956085693074940141534857203061753880760096417733471831907303051478120093835694089993190293965729770605758245522700395076907033876029113848766898952966143072898558329218026184836180122068258604867735018928538864927711490707399959628718886946047468033668665415054196280030178380173526706801083663519682050022519457822800910372537716872248283053434146663120772209234991097360244537293925313076897645887988699860177244755899488299870832101606389282363060505293595101142445247277493806272612781891906627151856585238502392527142118990883350685255697152433449202021044519054555451555245672839260016595684655388996538973724007603537703715384875497786960163441945395945580199970257604311671836120289000708382320549082331847164700609881934103617668936760038556171090983516265687108425545883570240194231949746059327272395050326837774868402032170968552420398200489220495567482616283154525929838027196416516275427829322759975786269568755088287006600700550674694835167684263679934863798952900086661901551164572629491888658676898744205794209671631433976103473308477520269540663677525901100790007613236693388169320819789746215149003272764698182193904725715967371027155975358494940765680566936023394494370798057549327080733925475266055030433509560102675808976539237856298289169228660469488588287555766759771053708292879679480649937188293428720264080680112727541096513021718713539313332221252305174702527516486336807132516087724428334266739379215178442090153194372018404808653309827491626841913061927627246699560456152905451708361109000584109832427438833615422281891043450131514711046171967291829290423430639199613907561446626526105142092189999402153731547372961968238834351169380070310427552090626860500395079576364345134402986026596349275607095051955749656254412895740461154226447679380921689713114653162811064682283187540574065157238525945758455283240230280130977504242003769672494873720403229116013845158559271288863968822264926138566832257117110962665073708147519725017966049405883542293353462131278449304659643901818476604962228647174900156916376800107888399968764760289238507238447705285989961140146462102038918517393292563225219722334773876622088327081050554184571262718592214331240675981252878210896423226134285163457629544524787414420280300258251405249348308615974586565377481495680714468278992387696553807388616107679982541200736661929407863132998026296814409103686891659835736850978806685095357212624732714920704659100246400125608149613603660257756525728319756666638104043729768504010275404747919600894905888480639241232485887702526200892060799664036903510454325759712847121671128500941122341517055673053960485296620360733496299376620190101505506950307279471993967721568149828728004675368754920852462006135545290320894735272173995027819242494928168569148730958253356041340980918834037250691636727727936912230846247394967228968997930572690811915503587096236797238998091833181738674677925803410724332088131288496457239249101427459960185246527411407394941970271620054761086578911763534154175477190465572270146705154648318126332504118911827986585686615299639660529849393728474977018356987837747384674449561729259082697089292105998559087420291039438988923840247278701144781536824826422466316298202396673696121707975072383552569599846914531728078195974448118321698764760654021523875026492278291029310372568091691042334018920810588511623279412601328310660515957042082737336831250447863521368088597860706503507752313109609770209614602753074852770336492215009582313623560740121512066552284847961260524386667873025225200274109761100001215855128661374060939596614563350870926742335190631698449383181164723579810387398318657022688221467374935050636885341018014133245542432046496092577805315812070051568304980780246662173742270414154850950678093392817324288241650066639322401397910843544014420698771117933799498003115430396697670905232477782120167961659758664280436326268088774159581013478598167881941242124713186248677936401967385589964403571703265457343687190957247297634805117429565620547979657706274417816696890899343740799619340736174467990022076163537392695534156390325848650470042502424542762187022281434718110971789253339577035751060290666844945878459949115459314853206668302377273432315299519528145650670499433933224067336815918466148105265679605308571378612417021555152948089200744039911866899907695035012492893931641924929092766209677002107331700453983679461340842946955773107158119368182965072132860741640930367562483333179556073369452286986699636882381162486444429077953140790573315993018999682189007937195584403244171432977665877605602160438259432355485430502791456679726911667856407665299504167458644318623713991471589769146965765739840374869169620216917156008856669959231819571348847706770524913905201649033482421196506421052001119164224762664767805654134619952691671372643811427243775661443822002447559615378205020874613040701703804445433743019506421276640899082513722900377403980483770899037508056510291931957847475886889729209109973363122044602657283522801316670095153050441752267991590611124992557208366364814565185947484208327418789472660684358114882546968160345752313406971728081959867727487666170284079796792362940155540528478775991840585731980657464443908593454964767713383320120776457398338248014247006644582428816656858538113467204032740941029782906137758696016945892044584836816186489045086996438295402041371711865434890131560258397751714943349513666556507160038613141845366080598054638076096901093322599563869926449100884515483237738999871255549300458321742686382897074451593615512828447572311272949831190495321946901719653763381475120214506087970100665411166975960204686492802133452051857015541781669100092545821177816039672514806813915512829533315050508282658295439689893193831736944323857408327957325769857383007604640616410128603060771369895096327305534271400014045770491877990838762733081895572760807097286965529758046173498243736369996064667704457208720382796377103748270287088560805837394639263950677818919575911217319367152139807777596782380856389234127978044635599987888422261718462285588620061625986468157950284285747573126197835104976735326312340440948924084328890286914593877874750987441050589553793711477993350669951295521569875384567475888640572167277462968767315641956072423433667853506302435284295726768268809724271033140168560401791489057553158958124714474789989204943247811897666393364999081064885731457120834751768440277956497419845961834026836442498625033035038443708089502809288670780713716802836638074641106850722218715894532700281543197098217124325634135281182972168231944659656985531829640570697472663620293940456601683347454063765206275347475220035089446535895866638822699764446973704106981282806048980250241274852283495062519549352502027452417854427247748270576470236696894488407758964722533540297442533357472677214847244506479480807033421773815725031590653972636654300311557478104664393131875615560039940926186728724997525171371843177189856706782416350806149403336417632553666960969778182586098197502899358200249971991257314574184267898493459896056755581867520606148507864136727595103491128212033496461673125874339917568656259931973721197142874865278788764485780241536595687991362019435147895297445014771807999520884257114820167261308628177544773306836281100136670069431369475202119836827570417102032178760879249728236088314121409258908535521110181583162888628944967968714653393844011009263797306550166403991526328975042815488787367278564393233108016004337658513246962373606715927998862448485877424701371992902416521859521428712328347203326181285023952428629219091655164139224131711263470232540753218462021329127976809289630369632981662712089918903938989506007406774910100348680732529823709943048370516040867784786068758719842671109629420312596234087917322373573542239389127829164822292462185631361439358937908641174837067998549968782340655096922508060767981863480916008112055584694189664352757361454782529346593590868714515395268171791200567185794169557628141879508320955440985709875296384523583185618276022476027550700750267566814783380862576757268208038500782507536471041091079827972186523288413403143603938171807023328291462086529161959515641220905812694971509154773853070225438596904878530124580846411954189968939606274595577492683705789561870876992061034570816641628582470502073644883990055950661947359356294105608436194195309795133136816216110262347138988476345095549869388702225944341573995049839857464555748085840815403100710278696274607777414023930197014349695908990876464126718916589489197801874030862819035301835593100743191188273649560342019110421607450001122665635588853008917812048456280173741363865836727763807682882494464518980644548959631472615465048804172671878682059541636129903105981278613760088847549822012074298071075515851531509057048201210323040819559146478553249567266992440990534613412716570653851889456787558160827948626541315311633172388621475698458626441029337154633850072874131418083236219350988822640878835866256061243085711852003349000824432653376625938755795116593165278165559376194360387206910453886239285501525998222281455254902778170681249022101668347794244620198530013356252063694597157577899032649043674025996361959311137767377990366901682045026029946332807917136745495498278267765078777333353788658085394071080255625390712043781657417428231616377429473378299572164626602422692014852379729411899361054255622113632722516333831135060960166941810605062240698036700713336269694142034374990041079329200537625064030135350407522829984444964148371761678761792423716081020490781982950816285331517288651843039369770311063275134473835347905670742858007292758753253869037431085766924541980169894922109815028602350095671302220899878435802811247874195755007104608349226399315754375902823160042345010561212118329465471271489229879165629945873444262022779962011830935837433432871462579358102165024537156881328175551605106021851090472640873272201734745005861926757145917911054843774331631251534458889166289067052846331781362307849754167330636638461321426230385869360895735168401928444773111807362093563503050917948946201058768719656928505633629318744974520414271598370972814814957150661959234845425628478298771560560211185074978113376578222411408141319054472601599698034482524149814120499198094621873299490925772478572240760868107496776135716248723018976070285461879092584592222524972184568365848100166598684165633300651543277238891615628525040422319958751183024453268415198325575466421337606342837713310993890009456871097995092408985402841802008611309545792894079633323866130472491293886707196766324085520565306299902907585609094351690644962508062011658936084469445443154210854732583073866635098996708808241052369323953712265144121596872208034437058079226040120599757106272083594175077557420679252623668462404840864381488305212067823048382443248825281667357541396818508723731346366506272979072986859631535791581958397106563116982135963576985031188937467243600735210021423210986025921370183358584904217349961101738184992955015450095272243985089622485763789053880992703355399367437033801372681946548552157825440840014184723602907240024668094076719665522800293266575119354716983601827037133483308666847665628526155976440413155736468768917184271249086519650920120815340211728572850554246247776047883520371861859568004633704548995174902240008984312187137089867302812009950408234139175787468543092801043911817755920691806595901674805316399731005288433888213371957830867858909301166493775239685539973881020150982191088537340071731038546558576886444325051065750834519361635800986764308920127219898490701802678736340787947075711381709302912057680836096306318785602952887525136943664443752180058703514382352173171458872571740124120486577213836396959922669751742016473114261959618768608084483618437841205257802249891663345658310689954694608700685661235695916213502118562724049845554322451626341893034210099443146231960863379051514242113789479972727067797859371601738476239651160226768617334713013915752523323360794874685381069289648049801147225508861933942407589631288116228041473837906926687471951090747393984794818367651792387434973162820052250037498980168723298870030924299632849074595665418637919945822227411258968245573532103040357041077730025575491783565348787607915371905819053867693404954559326242444606713896889086653353848852920818488098381764815980623706011892381451475909705129151558993295285838315242887088465989593467949033089840513631923731767638889631859636477223638478638122475827606487258062784766174477566495215266052043940027097657743326479076849303021333011960111927214432227683826541104955190180415835819073899277760102286471537721756565013785623713374377426914831754062168183341369519962298909711615596245184606447653904084720769290134441551334861715004007714413760114219219562095048431965454238939889852152834298933808532867089278019469513103207578109183401925326277844794692885036543180760563175351100253736491029562374942315242192821091105635234430056826721425370197987440228413664245569172557805455347555665403567965601576145727983283537937381998450457321159897732489735219055822777245487413599149782762180173262938543268387677541525987497625867331832114409827479284710362476259851299249485106915775981458617622308447490471692151795675608986602770366391488785435669652343603142401595561527212501375745238603972224522480066476313060694272490338900888142110644008774235417897517247846061897205684336625265264105605140458044671802732369177324152186418693492917702361990995179464332640834380829364812375601809608270445733316918334313902496549643151865725736169098466301526540418766117459285908019532381481484145338476708806073912564455613489707510446378002487851992621957412462210993657277547508333109533848095105330882357101685659517666045508175718613541974186442468279298582767495134510405304755089121876892290732666992163932660566309071518508640813965850866000028331721746971492543093702000926694700602627585402339113212203813280731138323109781387929380739610068626169071995046977033787991805826882469476027026703874072657407178632420121896469197838710699071378541040912381436551055077351116973141482696393056681515759023181327376346810324856899796728436277340646818738853636536597727775156655964139798566111522675532889037603402107276420326403342568034170372556433530562950959306223009196048024845827455648831419317380240808672545982671525918107743794536576042189125872614710281086960322720003582594526103619937708160305477723498298993869366094698169311787942579385168479544892936716600765324832658979137872021477138670830511328414907484442337091949380383354199048518088265365454441548272589522587162609494006705198045320103153115126053253903422237132251796810256687233923879735746897086569757032322082064605961300010712253822949025045734887318385627230648001313994809253834376207552204819351552341159395309091101262877785617917203869784701531217866379275691439903214255691566847893025688291316158222236396035096479204892487397269476016025018532260917062674251231432359921837213133626506466865495088651897028902802066996092605184979182404678726755277530396796637828211621156879632852582974894988999772969857334345050288990810203334045557290418159472067737647966102059800552740524996587948931928001199988683076883606428223895665993718672058786966915444126012255914200891095553129777135382435616601697217441787326053945538436439816220448819894497516024518781453720514621474287927240653230000235014936536199422538398980779092881624970310337663807056234740622960008524819827110015686973020942531056425150513858258204616060617329564222594983120380051034040262771687622411454230606889786397761095833964085613698062038200856874175908903821688229736505120371141236751195260863440867842715403683518268776886884436974557479612443458410206309645514178585696606874951742533322915350927973879863904539159511204413813189383873515689665631306552395070126376919498700675845206097652986569402492444000234065797046954283960259394320448830873942006813218254356608906373049769445465014333989739607136505317869775174274314744135224092501167367772416615030480570178391013633531067737715480546026443658118470764290956408064484338155800558257910665661964344523171243165690155042425254277362465598388126359764212249519483176081726213156975967551125927899212518116349142335158439628819446775095797747283276336374199204429094391666730593384921784701575109794755617027616784887117356343602357589945782772594536513789429811598748473185133026782664819464826977125660659489059510567798798823483277708376693114207028064736332174863636417827240579686500060403465577718607728098140708847287964148576191169838718606827837879494300388515209075209668091570833295408928259981857096089894528103486982151007193715040267152907973557150671302125393161540659089747173306007179944942736499433562444946134835600710626074159334579667430965276775433980409419019252272438531161231466563656117043886867217153013939745044980689176309552205195499350440210310528288599968503019123070662835886989978367218118868550556309747919645241272929308662535516548045746397485000863670976826094363759167780860189235005333539481050401290117101747206804726797381218728340153515948150916676070614501747350531335752116108834241501641068944374192660812511515525924069277917069948300123998278692366761840373227641492084617189258490942584308942966651208308028009677215902079992325274808104535180756293625230035249421303837474683050026192948067210941905235008942079407217397896174235373137012748279649690925290510104519166261410780405702567176958478898228041615070711246878428250994971301883310381224774613259799217412804039297615866217357011282658512788601220991668966407423774483941477034609825659774524759285599227963687723208119120534431894925205056574580283509364974955470034730088665711391588301467771910450419015035671531963067568277320262384209840354924217496898588036939054037649297308087255263843524207964575067976582226988240240291099330541951082147221027434409364025027406268445756821737992242709608902057888645332172967570685884159118799812027646984462977463081123984676995571075555448572465058814080199451217851225171247827725956195638434494710686553509219570581219784811208374367697826951250147616013113757633027968906023260034394658076867565226545468977918277736938991355583244399389863205324697116676564027780406060647639382462423547268402021496849169860023536301367500219302162859253819520879095222902985687597496957888957400971290307823395513263458656220664274297402273392327101096126065414779032756031068863529115609816566166443587613825733924328572114738877304101611926800107495989638452985828180581101618284088420104260715952236443078050687851439043431176706976973916830642337974586084283292600214858518806621376969897658730153855435508555588881314434572085516110181693649767493797600410281189674634209968563392981527952087728778837027297093605336244344630616892146458561374382068491676870375090960602824586230659298354965350681805996661551545130377868933525795727789637549344315504119867342818552104357223050495861250141014483192414803278866489684897392778469602695896035118782842818079921107598200852216779586588125158857263332818251156304835826923098371179650252450036061004724053063198636420687220017927221446198556276590096162628111730737429563818016000898373261843664448941413634981887188415687950920381026819626435399492243236202272787617461066067712177716964752294735148676101149543276402111363701381131083159522054141411041872429310472469969102393887580025070218059830232576451031537111370555706727404873522257783356984085737322315265082269225683512053791482964834646982894111221143741924140330497614406674504388902947684798509464840020405142942535194757126944525587928110995376729044353739381466167202909430591914225365713847835928345268936522219330456340282444251112042983134346971493791940579471199449102475776201807659366419802218230054799472756385315940628391696411347933990012267496508786216311882789158028199210967102244586623927975826038962428044607251931892547742271303170280346377666418063763623152854694668782070493470054645563416122030351614691420483142909651587249628088939767167165766474400918531504149221979649624485285194277113489128304893053375565229599780885636607615442538186492123089622180407498090215526965742044635733567347915216788938177821965204468052429011194223828895116811560613123206300492628285726332712595594405825747297686257397844835777765984808197366284893166853798450199185606895665613378769416602247622440033833114395499079469266018202008363171676174110084830483424320139310239306955408101653808212214342123007824450788047098962219058217020524634832033950744940496902778442621318664629560780908753540978510988359582138587317006754691853509265001371408865630796049053571472222003494122764640468716628621321487687543341597352765128224914382558029814910102092122693745609237677988217065065781269865425847795375343620324813062240175383386580247235308010596857222126827131494584972203918496675497553791946331882904761366648132695624872380609037578487860224272290885725272940443567427285780676220510780264213284920919228825215474345391932822809469441923892228662147096802865953553985211330505735345812199083842878971388695412616827767984053847670896408123302921911380132118891898067945571374653489519771068515637872796693705211939849687578407440951350524579016361631484926341045141862126499081947939897138109743924030033777032306718240267362858840620024132389991295679917349864243717438152569005319548275912979713195575220303915294050850312405994716891856321719165264741077226874809808948133858432052241790886062382666411398832471103027167372807402411631195215940370354308640651350121772446388094178083823470512457156006173856761470714852545637618629335547030910429541709745903417227778644070938628688245966956004605250195267899269426510896880539151574667219310355512442931752102828129880345846425630793986172790173231736219194096684935066282798926841835422888864195797075914138410683869834214801689402626839267449669066096055265917126918283658513125099557218623803992047102225832437802524341483804198073384693677820561741350852694622390646680813396569647722684654016027143537244599669578274395972278770475277233547795392373899027490781905016464229769223924310331103797401545325429322850144819314421485633401612070414397140634447218772739592964641959111611528318259697797712225409599140974860646371506036817269717681100170640127589252924125267984386402580375956418661493982791679570308881246977802159583078474792975825603357596281649847366980098218555265064764580919012856962951566896559201161719491905454611397828062840370670888951816447888769977545461913519894851864472815075928650926891176680541855626599956192886926168575913734755345278776302210548238129069614282619826765485771379293425964862102570839886685605846481183210090909861796379498008715183339566880906670019227126055059393405973104243573544349651422644454226544917314081732251852544372406579835881986344296257059467324603885193208878055123855558056814394307403703043644901053412738175174990874172588284122269196710925214792091730789213102693475835375899049295079153646733862847017985073377502866984670664931828260807569745057756962443898775299822302586165116964902921698256504778764838698164135891228299963281203402083700520565368766393466621426609446058877617470790233746956983131547225529343141289655768498834063094353482998999432612778128744173195608970406044172824202487948235333787239525823495197238214628734410191294024465454086994659486061317153364911726678687095727400560275219086238749417714861633288781667239945869078048121510813932521567640679091083213314699255022882968379421072377798421283144127853878149751682095773748530115468957374969294747667581805907058502376710829000078614910100767335844448391426077979084962033653455145842235674233683145368993111198655136663821320517597951135068030968983724300272602022371334783518757574190593941516624421082016483803761983831558132339006040623611346987246110014865740383554742217239123317917702567183467129897612602896302988729843230736109011254883265197353172212809187455655205698613722521406120339063297059822602411006392768850056941574516888955782543271118015097578917143412839643426370947751022083438985302337263589098747450047955957392795060726463721107427038639260308544599149812985329728914439947215199829580837677947261459377257650514852218326284468713831929522400882615202239294165455647093641352570894087838762686380112816490732060953894186225330621181868352217305605502285836420392629578024242323941194101805071181653904988068301641012585679764014469731192145029700774049852159249375266911794095029103048950537900069397366948583446739529565983228792275115931230406362457388096801682682466157636933189590472215213708790071266706203300015671278640034002652155964149002722264809147022002295375876550075606734052675334268282419927278336164391526227993743321786320785468817223370699222993924273549128796966439092436121063806968079453799141883168004134586650641089900924113141470355051113777552479783572512672076111600422030863581125492493093360771877577353761319081606749939286420739064446665990232267396390693960477980331616888274430542440558999040200402569379523466502940756665928071663525422251855369840862797220464597319277584982119334863166462078075986503019222432180015998331964872706104286933777871831668404835740289004894243787217331411958631563924725874169082758614541354645912550606084746383243588723264249754097416462353757111965631207645980221374459150022752963032653418121763328216245605169266839510834562080734277188663894699759185297633398163198530537353885504132095136591381956719645816657462264323795340485894406111915249131916918722641533333824448078141792384279236901412317119812340988813620149573575143941183430676815915143877521759228969011880863410146847253738060854198105530202792526847002196837752653841610495018655244954664912298881569365325822067808099224140238378409721878271586006748791092702195341714620490220292421716908773467057878047639979074215188583020730271054910291589502512599248550169565219676589674101653714070458968548671113261949759495701739966443353161719485952420308058968458652457127771397465198707014096478650434263120208366362391473541238962283669043951625495408876805078389264560599384513379591834026964367741760344615466948170294095523557854018097838130881891803907600404387186036410544044251561747428624413009479767497454940713737895342729894714735260617853803408313526777883794176943377067507270158898114353459734661564724031694070720387675305854107243629876901520994911609941469363724394892694557396319794572630203341400412484571751929619661929175147373800817951718126435498745632711140277041055294238560205162745638623217591959772428098608485557695774341989122796664671993907698188591240781801724609765112360132334589831547308839628187441076847311735481341216581925054242800870852366138479486533526021879568133028120921339615437523493466936558721084582164868234076241475417611355176506981722732529659719957334755203738331497407825904488356866810280944405831375389247525677265101100454240703091416299110452553903372103297490487997358796617947697720096161186601021504293727178828289216673100295182724952629333747954388920288159860307999379895633242659459762455992372964706286772351276433263551569111032408675994247959854967108373276541880573577156444261857747161587319307218475212954012249289005376319403819778678046162322332405290264030332975949632558953272042281601746161745719441140764939203710414520974310070045012778538933874354183836231031990058141671778046962834870106090887542855967061641025070202611412710990829361766243866303646212513608244459735910223176318822438691877222675886165982034081315232359137363046313362099102701794475774795224866181744436853643222866728021852327911749654260273535409547209240374563890279767630087133728398972429304694750887873733489171785885670702177134237295930201106096998223379485994528611739808548717734513684536549193566947348687791281385550478690919154722723141586166839257398394139205032063365792228129030480911951253346270679104983164132829281377284306608622590447536368205744515518898361737541217195799513670941121451444276767827627796858623476839783420639604306524153052694560940237886618709560410936602900900255727217631065722769331549924346852405168407455352122151337503320044882245553915275309237706844225139219012606331309138207246339006798453298452142309520119515424110899766006697710114212137353572834465054007951993245008258139454066543151915965266759823923018784918870356198086342413947548591673031663731887452610244553034068875272369344794363387509245782515914260474114126951735647309466005324375533479839138606775871693676968558664700941393001078282694100433933517310940613926251117725959473330580994668897506752620437979959632681985155892307229320277810352195227521083599588416282810062484226810949996633867310065674630167179108569574048828547189464212270149571701637994579669634994470080335354026267668051889426454457984494242209237414552543140571942763789288907869311316946405329514228084758924142637127892322428795239716760334107706163127659828595953588012057986993293929443767125313319633547149318942696245902733538926198652520748244876520966745339054945367166945694032761254054971015544192774775812940214328614530323934709796091716740337361622293715224500229019485970033229144853631022546135977840699777383388362414337911964443403402158450736629094859473502721269374797176544444900585929455934086032220406393276614780645170927084707059068205934680554978111464042313405950824717684153420716825371739291555316538971203522989125073694606496554042807845363020608779270479777832063223142868026524806624062773155190748321686920556704021202887108030879694795941617835938985422436143606117098618508584091641919434754351215068762098982015718303844072230217358002695887279342788247627291811006944626535793901127203797297318979048163764255593439852985823950765591939749481423110045209665762880804698763824850220932907185047850526348537926118556669939350263590601124262148455514857981313807247184397414459036903026605295232299995908704003382545916581035672012205776837718718950878998829631357666733036701111972705611055955784785010831172765170957986291100669764241527899833382701897755434311681333139398439688827929310001024375475445789981442583470785863041458895184947828147934623252173356408217538850313259134876251629634869871036604739695974046645034965455060029597310117185608219725940280367812850109447506587757271853764381230210540533084889039161347700530106259819194148820555487941357370365092154533485979622573544798623498103867258673516790559184140941912093771036594550443563431669511435097145312256815258976493591353981719800036602905208740432448264370412125156453651109420357921181149444809730525623681218523313754254307834701811844203372995275968349872543802642911397567682145914201720015978799520660078084245036959521012093875904696455621194633183479213375276461403581227993816099794307241977337158315462318653913907757492626425718340069858530339670520664351280798471286663603670179059695549155478152162282718493288724855339693145778290606026804224013233211038898311599484887203120635823641250502237143261271892825397394109030552453493246446829618465924632201251190485942184904355800689677966142191733536076999892094543619969436441975322744400081828010254277600172925379515083156606501763574046440194451388877448322611715943685366778116805362858480736429717731784187283846391110457243785926369051412662052991166197823953068199538210556846586560829134792595157375060189150709872619206406903388878118666663205933519550945994959942738472356251042656883549070492345095999963858504694417832009769592456827691799119010500690271867548999174206587285982720072162306278041307598608532750711496392567441633165780478274690678572373386823677965772837614562809603967974518386933371953348573303203642036489679845747065653858119802496925678024901907200077026823555659105606445374962609902268445438435260393864799580316627980535275762335787839522277170193970110122516257818456749458727580626953313460768685339813914989163311768623912630456704149311856702407043179736350838074870088004090226941162515580948021106506561996258862567306608728481122476198342433747688036193513043175604483072394950943441866229248754390787473197217807173455351020297152329374134728037924850728173904175121839214375536537587354903959011192231693114605677718999483060437582284148846134164930447658975633953973703278754598062280181773810779192774479627168969663655431346715237158857911218928548739960403895197468062187697448385219720020233705610890482038427582619484685321029716101093515456175408294099034224962834564509956002325797601334916825846800242263396459920605985853278771324849878095845859226533214401498944078519487403216401101118095980623075317280713283590917779794317276824686847792766283204619954183265347107530618391501964037790048740162474899214030148390154762096188840187475712009975588734915558655394879541082833813910893913995975388798974518021230633209806814095145744024523031231518839760413916973606583731862335091389404352834908889384583826119149979034508477813053239751824791735285929207234875322439504326548646450857542918391945123224670733747264959891327782710374061763263843667365305050091337134864892986321233834500135824298267175515177966183055148270634591618055777670692026023981690739254693379140027978677517953513946797489071597461020164886720225827897075727519370890260802533419006454352071533011695387691383157617709486669868369364581333596809358379309557604146733064713668362207866016547404586983487770234527271815680541476700221205788331542149154360553682684869764382136018368026199263317984198327600742893826553169094559955163773496413582285278159330725677229310624530317542847849579899519575464781493289252417286069501569227316536293696802647658301906005104719948269988305044038823474378561412827301725757196547702022449398050624605285210121220124595069858885876813911778232748216788536937632866136405756794009651736668358074639350903822625509391527484320682830514658009777457750153688676661505511324506602291674130013879776945667495318776475433507603006435902404169509362211473961260035234779504155009761000757348758847779990414135878875203983605426105578098609867552891177934873904799142209672561190686853633972710095137483703839436983796747500752774754762323913512051838219992566272494904927733638247936530733976560023990670022851431047905561716023097769360652368958191263485002149405990035159943580663280772081006860992926620512304414117764623667550460897709870798639198600405123147666836899182222981430050413102253572728816868510420637560618404098136384802779371470616414988581863953028857259115602346107206044282659636558080242932057226432577741393770827799594033355087794142506558408315818830994391374728349626732967197271953485856581433110852915118530693464439832574187728312262217297779351001377291608138205073159843878946949435207163252116334159132846095147375852874643099972814758732272213107432342742867518562963222010760999450598757601784587239585663854421822454941402676822942706973510352664183638142575738535499376346198919016809420467033033619482534259735408225070712418906851985880239552100930634813264563147649429133086364747388694541139611436947677837077806574956620791566594169571364457869272632260094444740910573342284555962422597042693110287601052520209171759209845207862932555588487930801874867122134056470820845452167858385921347051589027166432930744644377262910600309162929937106667578267897141842697702802960575146028134602948192948338777342586242449722309871618640020186215850949835806329486699442148173995675257956212949760596383181338901190623118266613959135573886491195527820502135725229534933326384225110810163704832815533796061066730757457417855666824671630863243893474214626629803051422084627374611912691854467110551583655162865797884212087237941995561776212588098174408301732977834314271101159650156218733874681962903051628707227031510858535548135459176243664539582740594753611151476016931068835518710902011730255245685379995868032500759610993650091871795678642021089680597369023968160865979125132393646167942373854694664791431590187678293898449356561296895666949411431419634572700335330609413084201036726537404673429135219971307154598253767618455846139872525763026982899845677773086841315086629868138814551750069203809405143232164217218718037224519373989911670241628183599544395811571166588928979530490576902644520910905488681602273773393294313278805522075650063448962037800311423103869318105433471097479098419780913082960916605961048881857621069534285030730978082513599060754491977179463022151008074862012165891773130830153236685543995213576706576454463428252826588293987761262515223088791150897421818690786233581006760266061698769206220014032170158541436791508515611748536567676938385706527700129489131105439750693241872216159381557834118509652538193414154197080554664968814801745813217734608168740568721139055297484886236733946248824981037328597373312217595056412153945121255259399791486787389802488815826783929760108606357535799351811862306667021625164230660442010521736297825822161167948385699418580041138984922792909343849919845876655349918006678128564833951605975863017954192264869385318539558338821701140825371649869678847375219695127241927590143901453920468406088545545430987534654924624603974672041282828481865872413166167571380059079362580800399280809803665205062496674990644278503033159158764438449217686966401348698340230663951367380388161493312328383380416142725604277542815714642909308737695602320048891841273075884248735410298941607133808622297914508220049536865580913014841049278440115015020621426964443907774891041799738530057906682399193536831138375789340128755832988052026798540114924438574567646078361136430683573179004017103295277324400243157687761755442612521859321971370635427616986685965345432374176171067728313965003947116016867688819029627736206610910054382947520147018066171158119870459564252430537540056458096682530772354777052609796168979157342862632574965689680265047685297720783629442014089345433498460863096797389288977826354925348814923613691188053649837320516118411927577367943195702292656725529153954316675850175168882943561564538479938098106726511826612651613736560363021493019650400345375786644928301224939655507467968866904698065551055525041275834316506642993193636753154756868536516426123534017182528116351926267608480087497122844746326097892764535984988572870650457494186607083984225127957952082273587308591137822642217894508670178739682221417279801813431541171464959473413925014164121599787347654603506463951470377745271184821764584399137816125972901159858199708061280738322436839930110341947689550873263904110478995509302807847656429687221775872915185275493106758450322276207007876384887303433903916447008046092896981074861764031778907677956955326030085075790385696359601905692198322981318549081962805100433091934788832087687668004810141075325494003001410123582034354185501680191733392671550520799608620723743593980611985646349812646577764795958566191341335844720677861470114967735741741562068307406078237055018056340943386016617497728536729108137742064878925422788213465600968449098123700594226100818226348990762683233307435939880273595117412712955312091718199492745833985281691719129982510252842098961267600649831374414498880271371784288482786990454977660128232991218948239720371152523897835658456773988116490640757787550822592639161136505482470995846186689200166532042620529925283721175084670532609978166144879551127964058699770483854633117705231200234315456851427056599341746048459106009328714336385058732024011897456508417169461850938420072215848430614394915278386169748816644231656995346029892356178168095278489621861207976779585558088364201515246714871681266845120719642546651622981205078113443351066330422468818385089994888908734108237688005404243889682724167778816188158897458018953213540257526980060435732322711292944142709610001311526321583746475463487237928063435902750643116997890728812139512387155107434429623078127364067062727069545150267022775419749517895906118202622014925633739879796314726940190205940334604374908433447233442850039528980907378833586678947243652922434804064846238529231709634455795587381275278636158594182898417518207394471160057922770623700656099336027279676364822021948327480673698631465698926571180551999003765701366615240527409945550789951339619969510923045956533078634604983595348007880859580393944720513036039440350831597852815579413871614118354510597784049185182570915833207855643161179916493591274805964009781651846645645210799229421118764592285789420906557354767028108601717120341657636087116468305431230834117745181935376863840914128054914262561305568112876464352198997159677732853470586443399582826660524805190252058398654304137574105153644115112591860625023562577697309027205851927284083249731870173979689759134029316375532285340775804910599480798662646042482956212787022019733576255065179790646572730329415434301592258532127965740823427761457921602601709024006055485603648815762560023309129623751093843888247321900733394539314893945893999761411369222960670821660852625852441659739543342933286847548622748714518647379744944055708150057619966668581654953511749836842985932741580495921454596717374786184875699916912950594282093370885697962188126703580254946853700951664833253781192762322860102851140935321165521029890264208521580319053404526306009381597937306990281957513204768426485538645098072709387403847104263290813855187208481677808724163660976898860073887155528414748740500900184268602878944974867257834441149275990413565372052753891275215762046465310945422389783636468774773453617562095263792671581596636077594828439045952279919035991872752340685065683177059300998678462015539346695308713269160456129622423647439354673112936234431016208841116150043640147348431057457251248206255500147435560726621014833346174241014731974856645390049203606068335092734916716521349586766362855322859537934548109468212400193948480601820727931222392925107920040506099226564896050722660182498249577478261831711241801700209577364430966566296447882710894816296927193481731087327137359189331605227721895536898937453765045623752099601676619693915753304812878543985751895320391846298993495915441716551875141384181554457018385445644698653479955457155005161146770531529969612087479244999839870233198913367768441102072374892554780436486379756108135367803370083416767278066684906239069466293088436469242014246237041871052191588526866048917954873772106540714877609097411704034764420867419544212563366515426677950824367690733460207075855803884225231840366906917900434130763126100796376844961426186024688482214128292352372025870835439931395321907335026198072008362052342899052529252988892077943342311151526640289524879045283581799244540695039731182564188478704607753768109312344385435450861743214733024811455228857549769339118201482899027716712709036552344410554381094083453647702658370497974013600653598008260464737704154362269053274956708766526496631595389872494770207489520021173691789259470144356175796722252224056480465337011117872296401940322081541665658695938194631591364670989056314250412016787822560440136284149823596817287916129206278915252879852475072852341180204934240892341101843993468576244136744952663081915043086054340980661053688421735391533349147397417477086902359122893547437583117835819410142345687815634374107734972674875570257831820194567053744211943209718595084570616221991389633753492113575413629983893211575030230996688374947797605583785661676653651603772551024513580172951599699668910253533370202414180663093940640369639450601164918582355106739262146408905795748321036804129444741301245320827370972694816553674062778076214360243473985478164405064994396976957020008077202699899859971534237238106391610148622794335026027946181615142525190377641800203081626776694604026269382171861176575707741822992509567727474064276293635316136127809216523544182154324016534017940842266715516076764144322738119063734546748165194313853163035916487310467946526409989864320593080294644293765127135040356875805547645694679272282086713644489152577978217804205746161148570865976680719380218530646595679139845186905512198955690490868412464269484041336875242013586624354575604491763071942620372375004069002627398683079055632561257573599786364489930002570632956768545188783687439298495021600599591493956931397773350205513513273635692422087367586293131138140289871077840125720750700409808934922360195001181935713209250029250623341264155773452670536377664233385143390881457449896223185163744607514322819767018927279523512660904097985268392410781807816608894500124677312707609746589940973125776130416389927949687360391586065292917423328246996345261274662988682678356551580078122735726689999288300684716967585467666537960097863984604854449608983387877700799748233119581669692814476178304736865029660704121260784996321098263915498613593216776567198337828536836517619879710640136745141261555035594947448670212128554239820495418329438247075319929816658078346738641673183096989746620703749746254220020079244167771068528925897015872679165819906420747967158811494534599290676628880023290234595990318278544274773159289478483489516472717354949018063273766425117171802234606390322226202403935885670645105013465312365003708043165700757102469119607021101723720378167786038787924083473143112573087302864967797632679668428924462277764192962408146079182319658529612162794324429427866142147187443032435731970866393095655892903106111693864404463325005738850906153363246052459229643011151183085441970507221051448059178661724065830384367922303015919562419645318116592907160803882727049928870690418069779713891462703277342770853835083505236659547246486725183682515581867843038962274036200425051399991584093014853195484606759486347170160070115824394153059112055114428202467897589003262507204468516518997947581892666143780277571142375455430537880924434758145145577365154255801949379770181129578306856236754494231121891567895842045031897031071906355195026518891686770237376757580140846485362994885593494354939777959298445737722859061419422086589092979304195583871960440640594153312888772658329099546114018845344506570783177534580182248401090143825748590534097332419528537250850532705213163402020155052108962031624281861637109080997725982331613934087764522875520272705331323508987437034537785926330321561378509850054377492248208668893391304515108200344341653134153270899193076852061329866697510890041407787963723157378301934994681899889199083985311132772713140424006634498887598608441916469530042754736902953614106328106248910554887309083430946452876949862656919266169550982398578734725460735221477749303112582258695671330747824074710846082974972447070991528476469423324785073514610414619789091187311036137795528289008993560750225742991208376442396059534474198903465705104323556672789375910860350680928043086223073585012328835787679361492433741454073520046030301075428956209863638382255987728330568838406412302431873612752957170678499033854646036423995151276881537937100147308778336315999435859962315206883139738054062704440633746717345386203068117092989697469359985671732208794778589483502800419803975540582040192229173193434877264846291039626485802193816365387079734902129617448308960074819944334647080950258427635705805181321936917275809880837939143760956586486103921522527362267346105135027634174405763467634376110503930452882668237370575686172107158437276889941108971626338876320854561949396383256368953002282536167913272923059252248552958664788820850440123263556264901624949835798917803079222712978902558480086543191586058857747579229112030627791840462311627313147218167858785387501164502399919101056305450438841902709887102974924971345361661644432253249175384646083378771625467138543849626277681565687446938810167376398097401666488897666993815562897256009681734154557495592588017606596517809666259917963319117314812723828045161953259481788660871075772501328367410929969688606363618180105372961310846517846005658764123159467109845349267115426519500479196046165628193805634213146297290221329632413876865540774211615522490038976274556369029297839681488782264860003074343490901336044939847886883008564739950826373609870718146698664436795806160654899935437117037077687768322855472019667096734237139358608140891098495298571318963291358074602498635709690095503199069448471476167318822362659279997896200415001319152051544253367051770387205167452636867926235616805580074879839566954062317565939766825517693015848126744463599179649850597343851784203094991941903727943833964414682565276385583815128429044708790739512123875849659895776239840977307034726188142880294304787206232194440523709097220534342114397915316349426913667131123774767262708227007992914942558855055899236380813542298215257632194214416108125242770285510532235659542204395277081663489842311372293502724494701127912432901073191810546885012402977262470648570096739443438856408623041859714597884538834368858151321248018266655249676056487965906314791960820565801338622866416315266829972415696346128679845655728578038901569746836976955817780136538100390993345761596831286589441232910680051807974982472143223219758127366417881063768762234341894907386094777099179006719970355622032415192625627876979845894511558298862499927827822316427537013396324542087489016841373787337557122634305732837073653170221797904140940382540564678413459649341953481279166861646653425876080619168689168818918939919255710370328350560566000872755413166391537198890344621651325381062589309431773420352985209622218701484145211297599050235463518388415873356598624206240831919458001399681558201421185057773655686769172017861128905651284937223370282403352253233142038054518761264710366603328320279064277376510683286589635714385862602657451692423600822617921487496859929268226406587652035209294631509486685786052661026518186196855741831729362293948107152666865014566068077571239916235903694978535981502357176559612578574368369599349138933356139184195412725423733323065903052708326527588515982206826669934776587286719557116074042080023362111032212330532144458640046187684665668969448789302787619912131612773053431773930767541451125239322578338962778273397512970619784948794482328691840407009445955624604634476751107444016658942996405605721895783691463487960130941675782035131051845718370351535109807453887619874417851442750498770564079751941302963253004441311025658725415637805102774134620796079663008801009029422863289583831523272940784990636347350628357591966015785651805395844388178377760297661826039443510505268086406186599999973153630321576677228859361843289312611032286441788623559953688951426251992962588076945199013362956436774190286202531781924720645989450224849963313080273350095681788830709632653429533741046003056984475893607513821195195267376574455559384560643899097582664479709704469392398231340447845241879819563284505192104618362590957733951354887973098356569551424033270513502109245699914585773237487043383000123642654268916844169767730887355942083478690650475155984018685055706086344157340041254402491644358966076379414415848782559219002125004293005953192892284849189527362885809472637467089388690481136856949438469630123051787138072236725065316173578866952363151320963814723763403180398118049073163496923786808752655499792211231061116455101378939627940613580043020527241257150754541304549649180391860982515353921496315914681942888350469623877194545629106160395699866603716173170198592132661323429847604692764660955756013060680167727122891527582016168910632720233419846556964643190319001054606530001469492475058062728805178220644229298487529453905259917311136798262320026591760136376955071621291371616363530595759073845592133513298489214853994961509880851948792860826268567108716358739555519932790120708141269493463437771024710762432567193420250336902051259444985199086394868416708515773428913799289331205807879430188055267113359581687180062581690282067109608260153927209582843865355207606308780830764513565061107640083087774193356030582506344863140179066311507939661579141940980896158868832376035398598150370294704713289726646253614969452168692594089563519610671205234496784795688732969983636095075567161866948104711136504875930671313121188505881665547524420625109327784430360848862556989149692760541810760140501229462880273057145548618059994784500860356023311569019833790275372244224002020613831463186058006357903259821175089053307297771678070733985359126303563142911682825865017541444244417679189543338944630656346393379274330302484760211668023488601352723489533802321919533130175195595562926977839395030829115200664870650581902461325901329879824223880767626007121857866712907217803424119205968709514099851201285841542383178285712006313247217459076060590629912034305682325374756210060855350739274005869475145068515049044357435447135978146604732591288096148465353652670798295762936566491796357229340113575699465378301938575048492888388832438193581394454948372684874958284899203900128734692978361071025503292565405247175144449792877540223465417684993766798019145001519256890558957088376543305831470766595487927879228245608479105477551898545411144185238994386999959711622467576434297385949769493464675845139701526393215660546400993439838661091686761617441387399209994597978876724893622834145999594727416425122133705230399828141251523291987236766665100785848658959462902748609536497999183242721750464091169245986617736626251282831243327135952280008420848947176346215500803727618581131809126335734151781428204484479075207228479013377284565428662553994449443247474638189009361573315321964078682866176702492240599534442455617361907801434194372406903307592272404703414833642997632653312618985436879810244682649218117687782849285797206051324759016965395648155659342074902489134759255504763428249030166429053125064481116581162021819193092535204362080600408830769459815894032703964090654515463144243673909216400990074452396031219741959624144342229968236887100503219803865187302679311408502991294475936144855088082414911772011721753734102888816206598241023065929172559761792081825604483055867869583724493116646379772817748911422982892487672235768914246359178699444956877212405953993641644585828704989187179192912569160504204800873663156975724541692363361802668838298563954964617816615097557247050006060524190564536604905780652874720820058193460412548489579202188733579692912005676151099564662861901031242281727222927252230948252088420415101061337011785974543376043118728572498131791582476767914548852250422572230294697322061441707030185634446098602979184419311913076898924240643258431302781617531827046740381797598901080288614224643992599277998292770015829016911799965121144901507735894201420159055517648291550142062840383251356824438244541300873403207856286002577433913064313691700539379779589772483857666561928434079630214886501405790515769193095360666720530308704749246675584270602229029676549529325468382992164596510311976663041772473147545582714513097140453800464142852130413239160496895164237285525111493760775479407405147466855868157196742531953765015793074426834457685153107388666847003673353555928865817497480405850619429598125485601558214174708139446583594431942416804477425556382710156071925545129043225804483571478486023970658347205677879600267879448027804541829977978280087759002100802826975209987118445884623622689508619769550778547140069495578698061885544884255850644785573599290621152909572523496842923223182921163199147220958264301980766859446919831193478115530908712603014273679345232694741283318178889546561337598095899438543351975213477356097880058221740976914932729780261569551015827188372047851082023645863821704255367704149520349430687237692226122367645217816431378886847462870887585401727269203442885064778921020471405108535551107133449548345728780002185298101555581294340609960262614068200322762410273201990284691919138474026983914891701805251481133096371791543439923640780762351569849668343535194410200289575538924605122669088647138681714392963787666157948238165840269198717594638667616958285767801395143603815744103351086463453077874874465645228848868244420948175836365660771879343963884592538311686747603643681214455778893186995957212555680001271633126269060766454568711774315636803402426995155683293767705899885252929105355326291943509652605606682688008566950852092240090702276392682610667292042597684928286898808592046029280495373388037348823490445182095996862711761612890058353387990039105978636212985055226909713490558305698743247236921489448668430265258857799137143320454538443388009564320390312408977830067379230161065372090635082187829692544710336147818101337852729673016860855047798180720882576560495331337108779603098588998148839958646318577148493141436073612756633992592790891335748817094354516119730506081555561837265656414903341898126309655228128885120733378231554979305190326745820144584839036554963559616675267480650471123680079260694282545411591686450898123645136025495128685960112391263880144126087471946435276618456173520148787802567972331784489520038351699709176798048462146091998042762827055657902989165522127507576581222059809715631940214012626626687364374714945431243946770274615688425378400033225254792010135434105245217475638407843575707299322717452762304980059115189065430048648685177496226081054632817762236139609636688686190727716199365595270193059564364593625104505163952829531291993070142162015647204091737220618637671866205763734345507094668904341438869746613852127035578279840396636268488567684647754702712821005084182171800534882689680082222384298832589945542194600846417864592340689266514861530878889348717961773514837868482702153200584291855476174860632091682019949870066953240284717662072946987786618731966448338900946153399087199382303695907409488213111580067724181254275906668721189026272546587703806862925831006684692930368469943245696745081690477211765243948584467738335703201389054128527570582287617991383891651165013204691688815809848339653102728804045364679656221846514139201645286028174326604867837504158837940283839374629541576456512493269275729254496249709394457260465507398360883788190338703084341728000511002602043540648428525631164567888585189130378646002043424829280447313164229260963473210518825808318329653140199737977190789750226149198341458529868792176987734392009246575471163998215126646081522265928435756183298493206263654978541508549465760565366816378406407315778201542852636694665758585972025707606556746698989744621085727582973872522306465538165679506330767461934482564987610118639266706454985086764799615302185193421869721707334031976820949432624667885949373320171019845105222034022823617463376876077077012371829832312499217139044748747457753813798357084744643469206643905757241158161777888586689793721819315997301353478601983804701230199220577631730215988714377680421095903524959455307886785596250070393788457909987272875564495227144539973922109128852775386298475815032146892719110481405752328066781067118679280907060502700353740453230482195992011652764146164410214183847271330590913526670169213927188173134065981003617254681951853886674522233156723671464196092337380072037407547483924323242917118828284050154021387338790322431551929179495224915790792536696167881154827428421515685536768056108657373781837060043258502559338686128361037867369978074347765727333434915373423260121664808871595832159141808306330884561143807613800156680371131749691415177995374802449908205727648280967466917217558428477908252457460188062485458238254968875257827026516799051487215092149195612302730190132346916250418047755587550074334078735783604908473318831220792137546931906857980297702128240140538586654778609472846219141920531398863899539152781910067511143240155600180116501652384251853742134429782137869493876161050799073571013325193587031294975618107672984553342572279038878105612469397807700969347284039715097378563956089877573644147265905092306229361715868777840549427559841897294590763070575442628965629012754202657617551830217171037925669206308820738466152998350417690947425547964310983611364941666898672552229111727123157634967420039391913790915588290013663994259708700922047139132911403266242626705086663127310430263300459123779558747490254092919045275250678453241962945672905674261244261767221080298527993008889605408963528663291650547020310325024606533128785894772367575113972052694275673204256091942092078748551478547760257910370434698905113828635717369729610953897660524754542088125543771207699023613678887666546842025428004609534387863989450001557771785597903472907142529410326116106940293550162512768333462999698217963760300265056705538521074910849184087668150587013289268752038265444522891435919555766812364236407228236298064267689825817057493042882825657492844910472729954931721810183620191762955583495110332551090979906798974183474474530710887057742160103358727333443099063787158553774856250623822665178025361641334134114897448164406844967472554727032229586625597903777649701880625835270727242157574586009281797855745986028113681803193533668345097339554781225097203584562583060487880048213012121679935699519226022162915205267029863114989092423255636061370773333421481466446058245928433460739899068512108995672737282171106807455627851168070667225365284840094574710215513625090364202357057320825121458300734700263034981417224076812836299409592727797182853276298902187725396741031805426336912475343906125971622659671270057743441817344203092083377022551771573836056656567390977963784084118338515923292856730725363009840820287680497700666490065830266552751366643183764121831189466695274162695295483636007371601449464723974350386473340853298365156213963927716376181898182527913270359944059981479605376232579227569899838900629412894618154783571487976207366552032243709156984199811901413159087011040895721559072715233884674253601237035202271604316331120852909282862714542415778662636118876946498626943909929681831685257161152824418364767823598485323523002220932574189008895069535895583550974111074864431117192193038326889423284833925059248433490291328478335309090614566777724007427606803951871276134844188666426612514334539339606802158708053982655196752983612185494383839953053954296963331079234604116884255969555804944525093325118818237370093256722918889871840636229223945472992574845021152682338939686067580254805305822832998870048401779692711492909152041772722473630375951252497869039546373425756337661429302435032084433842343683837537293021763810066365086547108012055931962435486983280576382921157701662425872666357669123729734898613839594689673085951204455170542113921416688711349289665743173941688283692317812540293751048437476779439542507911124874214123932040551360818023391494284359287613126320994384446946020835844373124189488318131399921103445732668769871285985066409414836265116845261179154353799058684969992329727168819394179676558669598021239285547206686668697126440711684038375914326493705494262454795731650636900833924227210267315359902046928490027229254142015798730663593993296992614855232444900631706766842571050062630412645160452733011563554952739808788568951857118555594115218493846663690947484876676258825896202776453693219310331332904850403223665832484566989476474651798061745872370706413380557791839213291544060742638586621471727473647935439627881882330130466293086557689524881204770518543681251214903372058537352996796847780182768879518147992255895503205362866256294687022163819109606285828051678239538882982722920195138120728057626161417288677301538995312747948806082660129255312884498018824712025190050801585395740827779835166632738276501637737688503423246671007255004613805568139934197171286729317125778288313650207637420465041241455795224579170617987952616449754486590102250498848037327310684437471479942724465721865176835712490622883763932393369056667032333608639889546160971039732812391534364534940193591481465117773342216552421253813352599712127045665614000512252658848509650412199635209359335989700915453873706263356425905796182656962691341211790879658670623178566351596139694429779682251221709353390169567255911777995627812331069675213723868144750057955694503218876691987247644880262617591496645691965398829840256855407888942747329009782790251129652917503352803092142687695503275011871024796996688618179346901719298437273449577796004446874545224572153924197762280646801265246790389821540708602339590700588356859489877812670909950579603815389201306948225741703223547882163776163370635190522167180037665833709273975878824955211062132035554485092966993034881222551313377470572932025221646045212306804972287925100248354152464323474575784701698309521863592811537965830212077374807348402637767780887282275877825089853645521504041789422441972571328696898640217229678622990728726387144024014525200863312519890106855969064629004916110265668724411691248368472805738796076741212660929516166522525965175082517072858962214345856436193365517739473427014255952054026210405167899636343505723009538014578635351861271774167712934723593706661038628352810456917469178555987446881206857760074071880771140428774709539720109978365067977113830609677008281531180525095429141436932990256881320267502942287227363347240212877713508033316104014418381678404039392995719158779185680375648458136584964913560199407718851886927237170320207035566281874832591025270523451268438973456121656523599321664969292096472929691307032529802283727675821585941639619937174160565942281803751169493288950833075547971234732494146757013912237512139860366427591185331629995611325335757266267874684196716907367408744635660581077469569510480925907634949541958044556846756087399725799941569279040670416660303463724251393859894532315165373510004819670360151066949972499082681117725264394884010857139204705506493822816037151208574224664728724860451471368710224387738796387631368120545403236131191146118855564062128548270613460679853689444722678688835491933022401823177203740682229077371673183344645733397142780126038172118861213202562608592758186391437509835830710864152663818451793782892091214171478959757828135631542089042672419020824119670378026563410504393851317089991477785153117450926782699059355513531423627813447660934711215449784492391579590903883509523736216128488112422745619185400028378153238937539074779779200847706074385758830230032805534817456635703701157952945167334210348517979790709210725841809896633213826881506651608288152738633473156618890391612359880693930533220631377436107630531335689098193505225751005455683292114431476329212047155141024636645619430436598816010714658548398700214106181169588840187502007017386201636073993295587307090879955712778888096068614930841559076890006161070274582119356476022896037340429132060765038197805084052733941859337842747528880009608243550728985386172461987886748207028894483999974189566231123840186588726813514148397695623107154722984002444511717148464010615093077585407715065084378204358032579725848167508718108776548706204554326172596059091174593497633410547727785640338904448951768478770213101830735748644180792173852491513161636944945495208844372436692202519414987633107310211262998199212483494285019897167635901897449170892389537672931692414558200972177104100005739087558196660281661411328058475046995328355314622580565469892994779306137042950343251124600354191525298590583020511903899965695115507304680964290538041373347967964014856930631749190893909134206380358260295019722644527262646520950298428280168870920154793518511566723695436763294035316215007502476068274589176496321564078898431716940779404018733048968435721677164392107669172712884437219253558501268582132981596403134535075535504663127589348640868032872690410290085147497191367871298925081381300477086219329366630206481769784829047087025400450540772248603325834184430462721906957002311174946402181425185706831656250400471631255550326614378594279404005287584666833292431344420255269940004283998499196484280509907305188816096582785093921905962109756378018315799535204369940749481768450504474432367605748297029233562126636131937494162553903095561606135783629953463727346344954658765376100962187940589119740441870532648014329307068628181876314057685564757902233203456883883459135416405774261977230004745523893037172421206058012225522844509537328062611364500545883764132177614038275909513838396045826975079005084410744258590622758935510496669053307828340915381832061615260856976312948523718683025827247038738559122692082527324212967757715102052986935149282305803989012637339793839993703464063480706514432681512405088647186939388413084254414212637745503650440545024714470353814834339243952377611043173585449896889385972921492261319465732107330104306272360741179313996011786297506188075651545842967909946356957224218022023654051541551785324806344506899186827953780457651021448765475321760961557427882024140782666374306012464260554576117692569482992197598829528046847001086901183588829521905783860235229229250254176536577515052869492803350663556491712278641345435112549182944476968256298691450001781231650148249737921495027476340584875583984145338114283056043345589855507286270870920669734023421539649822456698118318219675742188168791430910536758831124887585996115624368601320691368459962529854968239482248945951541594069109406705954691048891359682226192894380765350604546057345168987073676371029782866896530961852422948752289090951139728953985409665026623250575271087010668468050721126186026993229999863320836543484305306469348728592230612764403211735293465499117830829516046369603487418643895560217298279027477867725499343944105353928245779995690666567916413248645371983511447287835850550732888424523560225611686726671372487451862018303557649496011837887247980564125499513576673180789406190995584119165528235879105763610048697020456732687632752260863620877008028087084600228913433541465168257396044572186369930566054834219163425139618040162185124753489611799413619569607936014315256052555271523385009107917580206577114091489124749893493841488037111407483264811693348527717593768570211359994881122487418094969324232129917974039333941890096975952432203682971212221842326238926781866876406160274454232098922324879763250322137103301911558021829750656804056598498070660598732208971174284711224201944770389288318407046805303626784511185764372544740214350855281247260077391968483515964849893061051547715576115586392129108928050812660673393902697193456687361331201523444434966066199396682207577560421057665112615614809693181534832147167156199159335349347452343226045857785137274235196585093119731688269217086499972456720374902643385635001612218057933815777444417983578642720355367633469545171186518671492918764334997835568574750399278425056460765347179576288775464321397125599379666839366430159273648390290772375264530502811053784353434006954145267899494424267416135217288314221469584529459729915020443623561963475041524363651195543422714352190661495897755616248849124330110147670553890173040512966651380412493741628769982414808449835543225437637291051112754950377347090715827067050672144156354697081312092898642112581102081088432534266599849680650986930694250982022846908557462625170413132260819597252599291374081188790024661268080467747355115152575174950999344621250552102265085785654476818329737907847365557811407494202815100951939352531512212247955070030128686009284235460064529795964814041847361536423991458521481903866040161340739241382469221946109537565254424947992405156741157817959899069283786053978781687104199706186633658552202132601872159915456366578821309325017272993340132679306980154162551084267491894180342002940498398987454119517727238370285950902604457995148484118957102901880827902550092466986112581836637667303715311275567158671729965396241242552492037321209401452561656560538128976965052012226496898978183291717612054154635630298215315788013386204031533907791904973876759323277649958592383627063469287546701565172579121702258932674781988654324865368690516556311718890766514469897463994541154344806890907621830873394505229994102972687719665168370169351453823228465265528257823389419718334608474308694612096914797121851048206232189809568766616483018024073224524989939424399159209732628916876724877043768745207053873735075047484855273287143332993531303397633625733404089710453702391047196374001555415039432723236266783153986063472730765005583735172834639645272085211638299383125498059889426920569786455975749322458637065529117561368541839871012544644250959511531140824892674303167241797826998259938160446523209141236409806509866502639277462662415459899599540006294861415983562056293598255539375006958476527521317661255632280366104124202247228381627961052198874455597943405330021102080118163489430464134315031762651226697645689019308548889592170952961628781324946588733967109491871138969366059193991152153077928683947441322456677206723120395475398782247654278444185921079349714805217800840940392059887921674417545211281350930127300223450926309077163125128134074186281131591604327512268248767654143136903267051990429102825271734687274910506714306530926597074438298598927085388868233811225667637653640713727092235886521884410144949724140404191485036799660744002500849965688657559207387188760117256533664477594156118836964518873141976769925805897774655354924679195464370991361439881287363824512517543636773159068281259051169696036967855081660977115142346652300463169003082962076429553640419252962236831143937211809383625314789775108914700796073263311998241478632051861036421530860275964613096870246274400468297059318547697716726597866142923139845030888649086066048945631024763771274020836102092496700232048654707851440989825100665975478901751898215359407985039861835752743965973463798077646272041534001506018735001792215447140579848544548895622872162919788128666368113776514200664836693932767049449252331062176281517175335578270369847648961461355175748036285517889641793721463178924721084841931106080133317030638003661617455216551994681679183431004185450630425494181978385130408182706479207566173815123426031445657073203752306933935212203648139348944318191823924187922019739110889328369985168745161763874542697766816911484336152755201275776356330679113156217963492751873902856030145868604829530752483164219227054554697252340177895358260860739268816857704781516732081126595354599945830631843990121009019014525946349939590943163676157702892388277366762073839226793481415692913333879126935553538927733303984597735782497091855466804119831556408537034623454666896590649233878118352398680172953749064213907890661304695782487237676902983000340139890012657685185419053393251854350278141581352441403056901181654227181150025651499442521937531272564306209225223136712464412925479099169476593792405875467950119493437345388170900357363063656173929496011232733927775863812552718454426909126860817028170709773317388571694888227765583548824752125221432164778122236056289529253740759407964975371629723794374343470841890137811450692685623343640526993125199416502745478534203496394852531798515478173697979791824770993253814945656624863343976409149147538182381010032835040406697976561838604127255609986363153411581309175232577252712779504826966097919269079356442334373576100899988367677450767487337939385612115735574041935144592060482962001270134537412354936574765628579478621441815226831327264584202111053252936736150485773398660941323357367448362317372825759912266831703288871785333512027920480260458725044636531515807373489232622800168644922537620101012179019414633479972131587157220511124624775079840838228148997991121166511947680304296413485915074406015242325903798787425890526686658217340299578970531184181596195974221912899013779262452607315755382331574487323330528920185840128446675063298077398418404197583296953005926832663202393531717582527712507411414117313334060171969001441535503794244618119050677765978291367676577255040266347306831556548559577835423109941173917311986950022960940129986543827488127358545854881931441945475106352684645163806817559107790723197277606628451024089679509673792705346901565032990039786679900152228179742157101227646690162963470521932871682349409524575742880242475468562196304987856551438594291063301580144838744532800995541999461123296941418783243282772133899928356032466760543677642029341499459265032007512367945086554289278969904775300497122055331401069684582042256093654168651363285528966354309108528295446074624910601808141724773881337374462924165820318745727856806216694162786104890353932288101993537069368059973430775311098026930980013545195327978262168629018447276366885864144075548626127176736822185035386487843668745878962083409107108536400816593467099558994518725091874671622269808271020334918806429723317870733933769006063013382966660631902030154004059940075152729493721057339322727567317634940693459653758628532118321101800501409838207230521337128526523530548342765050129563684718531918012433951346721760240682977002561566535341858572051043928062063312124769281993019786599470838704417473221614408104841042962025271239301424168488741827809355196878062022592886384755897299178456278011085704220738686564287106578453912170638318854876384221271493684485355549465198026540870834168167615034104150068067388235340704355407835733392189737830329729182077146524713921096838669081931922780532624958550368416874736824793756533127821605110080163474151007895981143175455697025016991008079583692491063639326093197963330256998391010286876899490932605282459849920626389411488541251448237445955291489284386750979100467194823111033684679836385190012105965555687356834977647454421246072663108782267823980687145413068961632608039848646821713097889295394700491167898844694150543490254866371074401328724372597259015460790902987104295874922330050609671196430526685776272510809137580395925536461279124895107989437230556633927344268511883704674717297069820829585347770247403319670719196694796053040656982588112705688670146013981849523566337301897058834462623068023001046528488991155717907717029689407402018884781807938798744839856193784797800906178391194332167439682357192974625503257478370122173847516894568729889946904751506230677156181767133012438883675443375758840593211840791845294711719807193070274244968227985005261616320611570778767821293594273566392610783172943634720465437580175971855977922424887166275752652293481793603477644909543562587317759899225529608000697643531838550389687489706823358448534178957229268819877700776727684874977155437533552276954772120140602969077389774670604648827883869018433245803394762541656867576862735308262104021205895281263542989145267403127566875729597486837684853136218305458996464408030408632048569285230632923471797743917737663488370282537558545179914205460844746988703299447669926829315416323172162653969925735617605333069989928867943505877730558589191591254663436961949611888468476589669149423836195283128082446727530181288807768461655260737925206628497882338338564119686803568680191301429269405852871241044369791667768421416263762193525001457330040868489281682001548648953882398890842694896830837583350994509939293706103806335252870242291713580979654626646487586194088526369457640756549004203493262634811739689796456267555712692069770356403790606722340499859613673393742855844589913358317702052588355624501929902919958367232598403609170516188677226698146982279409460971983476005849792909430925919086603169537540518742436096120274603013747759356931501101379183319803907845454301660540228396926271021954098625382123843921704302809805879119763198353196076958348054380677981847314526851369250848186402491360833800106891817228349430323261018762411475031134301035123255946011033518524453879443094691795804620258233842196569781209739898346761972662772187143501849381726360730161764109702959566594569993429024743464086839572141980898822540827374730886904832943626346579030899360006758293144397190055817033952122109472519295904504853692433180838100696260312517558800128490582550222574898914669149508539636510047091950784834748772083616666367902972513604019748677877319346796644376256138511902176566733577486811658850366409400799281691422348223023878872278903059710181221342490108696282260654014128435532867428791688679828074730281279819492608556606185287899605651064297627016035172519589225290337119884872128048801803936485838442045871762032071516651487568959699626570356181296902357292769617212270393606369689926211714349235955360253450307415203460122163059114175301175181292255992585410592960095142922652778083908016938458917301181223030944493470476476839369647561420442574477502058256359058350733195799069917405213977332978559372862479750679794062936432288095672159235937917351847328858147281980213450294733448364067309966888847303892988267705609801900777444547478569742371644204271377936966453008307231284019068241112163576092385892178951471900977287320027177335286249225814521683309202749772378608596593460285022240470337809783061519124613294714730533335085122938473184387534454412839466571156241980081369069031753732897300471665534386728441626470356984144640212914495976068502135642097951529615464110098947252294453560875484132349666062332027380780147566774110785872284537070681860708392961895628869307533332341323760218188386573324111885343267372117564713376126607628637493336326402764006458247605288230540752949367580011323987030103485954624215134495206947988303828800779256543468738728713044931780111863202010306267607894688175904969624557821829304882351813084944408927388139258670406956879578975957744862456662485884063372268857425798560893866988558224273677581782539170822191404916084092761581918878459381439237950156121479954474700696409571032346561530542918733356336380780822156044349349085061982258142195603499632911726550493553676249765715844951921407860904240192712504545910072430300071717808509405631072652006679616585853053849320072333239656644663509754286541283527006818868005234303746847329795376341801444875672214127331884846895538914535365960060600687531141489488463035532598491229391380797868285481580855545683244147049430687368693867754898744818334221859267099550760759633995452992291265737004360789284590283743380476087629260429771584323842761063230770106204040595121198523691984024425621833066798720978989760394763987743949882443322493550814272449154545749006442018921902464540203689032547474861152802624180934739852481169699469766966618106916463671801825731660553434262885043939247146406929054772271961304652951967154685432959513388784057001147563767660639463506114973189716107227875037466939452301168338571896383185561942454582809575874042023498786356313638518456654660383496252603895718479146485359244967873671725008282431224567785828551654477127257469435164580835762008382729409270608441996642889659787004199848304585286782662083627332869116824485795973557969135630482128324820778458255091823878446324569806430936687451179155223598028934786490239301467919166150496067289920153331280792110721699285160906255525152855944310752163072294560991731300528391334894540187408806439893926834381920615810947196063120503365535036845026158203136575858551532848947831518396350041682714730228446198231311550437633683788679169126873726512783258107649923563971041071791600958180530205569691174487062791332339010049555323151492071557670936434320256450413299899499599344750031478539231742219341239933603002525132982496035412880348617925336045842902112603723471135286967462409580940947705617253620249859268660157133198886073005230775329228253867517206480336744403751231664311735731430597576402497848167403612426219265084546753703484484000765713337548800489050440676976291145485975746141836775651619066718377117376450966925126791431483408445195547470990362923964653411434004161073933290236863047605089167292235276217135317603114089125355860995544417228545295800702581454689063133293073958728160582549635560576497226743867335013111925492245239902080107983365800316267556055054387655010906353750904724354113290368643132747872063058188864821078085550345683914236073548379619930952122787403087047347392211369359766763221183413451557460991932070241968468428340142400937131134136432025793116700251320023372292799546020283204689742981711727936456795640267812447250450925303772563076497364533037145167090992289568087390665181712676010419823227313973168238171083402489642734476536815752599456070335219697786033386635493706436722018570733492752735529248239122073799303854633413361528367058476188258975394191175734045082773407834807084806455036971462199681672832389990923912761902299848624654538765400609916467307133713548084684554487603355773857673701105942928107053171512544436881602278951565801046761084862867627374046686277254244063751939870264558068476663532079548258166828997757593607137997875094474638707475151946260418852567460948208134374754841488060741156462214239078567192454078892267234948908499058082518452654812317477428043871727097142274869689651178565653812830247971694825474338790955308332341829013850594618433014498403993822174599339994537898285723225498056605418054396975782603044157498217472138032471916913951217063422248234699995572349671000745368792261279589990335493336140875348125099969365094241195923385380488551027147488481649820643377234122036913024284308115223868409380776460310318939984613092665124999409051650606680144846390770362684067120792245230723257460691563262535294287102542155438097160040028238901791361999319004908319576701384590559009239484477819690963945829363053557348803639569056380283732928419627479736175905519635350044306600870625460403838180510626788512723982832568195162312483812939959765912033124836525512489498652624878237293926064113608898567136625248526502385154410026405469593405911304396499544340825515645692130990076363745238598008286877498658771659193605070454959244111481825868083037202296593813304062179804968729766084656880933021510657886845360322721625638862167798770091261761655504704386960446615058035070961179071426340769586026364400145604211888027617530872072702680521870228542637228217336527865804153250678328997851965044800317989044541967689452601735574087737565351779178355175203450078827469646232551378110837257258660874953027985132934217087351190470502693829924996233818558044121891442353014936084498883653220559022596877248427848260882879339222583360579678850917198173990398566215336468708710508062437289858517269394771232045325139300915460925377991211130279207598883172451681964400658761418603491236471760497167000258623674327260457686866681934144319208952100775508677754352039608869583634651832459759825681424187591694284573559653543525798914079975147140507126199932729718857188230705265451284041076581777576105916248379185323463649417043109086699164005071365222429100466983455362991699174953100293566009637423253937505136118217199209196360740368700687155482223803253902168119195136624375703558192173227255839520653094160592778294906676197418691076156665269723531702706575768338216035965547612365549908678280494058295514518835598181431977075371020699719426298508172005075133188627203086529000909053883483189492599717784326796335160843690148484838535235800257615841247061626838957474423956669163755225363907729178067604019379624811927892166919208182028685223744448833565401563641709874145033338510647861541044612194009616911362891460058982318869865049278442520046457296328700226866001467020486197624927978180776182014642518860314115395483193695973915945555943026680733071271614770497026873791142543417616101185896275260666298560857572609332106032875440297621803035801607659288488693123015857931717979391165997112702128324489453606311686537935111564068928656313007793606096915096757793974516364789086349464612301977487326673657289370205352837035340891852069459289690088756844712133674704249522798033784525440286077168252990009203207874336472054192050550016362035244663175721967844956117287481362064783493165557897215606358306545531294813545495859754588318634754396523781159944940332705343657196305040203121648929765011392674067927865979846198655883852261452899809560946691103610350594206373912816275550874231112428834212291972747504655137389003974402607416307554807939537526958327105801547337976670938448499360354217304409196977889105643991344352819753144742991615721480942349736769701517603185974381981889242110389698825291982602672721979238970622143731698149603493444367232894044211382937377159990190087465104947656722895323460208101715020289073243787878017409022484092217907063019343784093789173602207283007282274396401714917044572243518342909120241642113310229528060208896452149281377532525809138661286863964806695587791006295594322954430999332193515677092726522877965802311336016219506958407982854942314126841814080273301743210301304529274195813648204947348254830788187582598115243536098248586098287984560377513064934995611992537958988528119553448068002331151994552549284033029101977665332843608472247199034178373222401629365588019660569332421626356196314768285292672007732377058517297627055700299519742315650360767938658076631060698515242643173538565619701625494853609644613494205503416332668168057513388267043591678961494404693309273319060982120068938714868296002454686072119984940319294688815926422300371243988502661628314283153734448753145244134866463030873702129057886703906734768930880550988060628659802059238322727379487127519924786987392237757769252737907988438742492394122102619869299781139454417288592403741377632419237535824854323068906252561679752274896847158578826024299772884152681035873716578672433237280660968158367018539901258876754667410252280851623943692828327002413759042794887093817864885582869617853726133984968268380477364046192659719007792373658964555390381543426597317370603849424206974155128971980392235364691522050225881348648612903569038944477274122008847470878516343433300610495202002913049882844979049464609996246120414856635419083528560718410145500806477952656666171834181206517393293968443765566240060455864075305047382903100586764944561430007965601009780909614108168211178459723405195164505365798390371682387801620444823059555197148387969143618999633463621342092636442101090969839781535089574787286233681701679679111415930155500991595059983906054351399982154681245107332256170653445533484282006354301333395618069015559986454954636668606564291795505114654852293987175503308458742211521897532487637478393521508310492020846941345942945208971834770342068319927972053093901062456815480987793223820588980274518458636683968085540886406962088253814305615203726442002685628228872161068030196083936593660982915076540123925075678053050626249030457655303830545160384703186787938849778421258365957512109806446346980821540379013767100648610586819698219777349914448642796443718728885240212306814195305215142064457937324142365637376836683749113592092366272627967126603911076875564042858919838041674961137578235886478917165654478402821724486642762647725988626766556428097070703459838487366683063550733107243919315044571599069372929246714268195545735724945585116989286422996649895060635984702973955949388932625576018976744484413974457780346534290475735771819887439256130448580910580019923186397929752507526490147105320664886353667519269768328065321180907520795387232670005996836248499590542877936503317804189981674893208514841580462579473852643030300147429777479627939792819753210646973948700292476127204753012366326344920794863344288001511285140547872742486346659439643144912438682084165304582305953143829658538525487096468934878218034437129484415466406282614679133071196624188484871878053901151180992787595910476758193821229359902637550925642486202021274443166685143662070587714269755763016143858092274118144270649632877072955633857994851869350970069451687478031301709010300057959771911819142834739268590889494202046093773486196192491612482231877237847879724248694926289213236132020262754150250659741436386654212788992781748024530261706314688496357361733095869314953631741995458141155899659030356297853675014780340131114146862507864718926184265608897818429504108087554037042611123052771795076138605165266011289879751823926512525591850369536025483695110385035667736636420774852074382445307562640601989678810737154041892802939556373526404090743584283453162255319003574461289671203681018298178464686491686719237038753460581112700682784920409299056742652508314495551908177009232524916822123838633439892913486439155374898390455144770502333423299342639500802594972591392255559356227567192853578622718216906426235614585171913043006366005527628475788312537694213065959285468925333199410662197191403757536154225655732317107919241794779308337642898391964175635085236773259363220468037042299508130458805250532436861663806691202739216525979375781532436901989705370263787703710211336462074419436994130810834922427507691724963270713812208910356926533093402933225698244726585032562945812310456810850409329755851994551740397554669535399138686904633791684997013889933750829826693873362906462648166977716866341071146237437340199913490144217946920484173456290724946766844121911731084612246292217959817803911036731886912613540485485904397423405773358654221514376172316210388461210913089696888214647495896789074758315662387088910768200262033137458006960275247181899517523408777499506592525288288946600599604258610644355486075251113155961679862471124843377905056268563323930720639043377385067128964022671471777941244222907283852248292579404629291335263852913549178010111232247849234489474998681349759263177863964212962066781605199257546485422738492092545384029749819076256972480253397638949063468148239371983855440615531034159852888955950282955126063285216233976763424059429813487511546787304849600168725680279516910137371041569293473960035553986098225382649491488930327787015393261217105694601398926354538287581880281748608716350454408353934727207913132472001186382664585720853084069997446469801203036791334031232267619671597736146707831261614713087803863983499803532040725357298446662528004049711261763672197964140250443608186245357183991829960681208807020728733423398212371579160194176374105260974275200046743087792321980661053622004146738702874341149363643639410743922080263323970123492888631168285826317048350178416677579166865207903655276851466678261264141811213005824927692110326028697930837334579732066885881632353237156330872080486167945521715792655094817643262981672365128176754925033446417833344573725088205277791553739838423635560054590384826537462870666302591558874308438999210940480906034711040313952842405858300471679056606473426154794549021779193004024899021029772455487207843012533145260104102575396673969834932817092373623235802711832637893924628099554437795385013051483691922176761022890123758909356187033117613817448344715829263613208630813132323510466624539679176866946199644627841381004277284230161362039294262286769459086107310096764864604774759838605345588894250758176213016937608356447020037709922680860603121279544227142694247278208618297046017975881726426203961178164851222988791382058205532386993892734446966532036268505426213874188835487567195454105923768932138944906725741564024139430124375178943937027470670893950608762356192767557944751561021655245521677008832304656522788610118022080408949228115291009995659761191526404190404897173159711454577157123348312799319103906457556274565255737093664061956246428830805684894310574294747687067224132465564455371610205480014248732837710246807859807708770301695626066671496455645943182920149008736367151311788152704109697218245115986999463235528375131218182200563191974896652520359538297864805426140327504774955333695143569210385280919696228381557478857623175451090586988195766040063629848804734880069461034723789108060693640825649301495144084977941824532552759965749689611134902014280429124467444377683370941718908244454057717306150869409856590321183910127370090608862501535125804741867975509768168068526926766348842582910391012899631829765116285138897935899462308238646518325257357240819210399369573538031460689714002880486485163888675562333436166182318904039387928474986211608812383567107113870097941275630850197550881467602145983626012113928443183130826176243954289123626666931540577218056678755587178210528997607237849377522709799055052451531600700902214628652584033377553817210727575700235332751237534904928582417184471258241103447026548326389673068118097156742149091107568733247963882869275268062311363859347028398103220622933826943981174057576360802540775542975224104771220138256460393232405836795008892835007688956554268912929318549735089306617867043325442540163413533020794413235963221336612823874408762740788148266180687758703070180415745443502030316128744386827536864658277969690317746049698288017488724651551270629269975419043971170939907726811844926857142141043536714746891161175738885303945034312634073025626460993076045439112069416319544716151565807047798895735107531888691715707659664156696978576423295461089797689350199176513057561590526295850846931815225961404723199697729483349998408518241544807165654504542087242297517513087909675441339299544641875134729080565190996115997469313664721673457403203668889563260354990960447760614789797443189423296913150007681184024263271125836685459542559644098183450059323638364533726731771507882585234041124576369488675822231335122417037670276818881806450466461821390690997332921673591353218797363205583224113029045351621121971183038474457683856751250329336681565133887482860210684122514219509662832614207183463158394352165859387213102935159485175129790832210258973927439991028413087412433585468962480888331114098518876225445029620837351343016030403390365179105154067223312550427428622926477370691874032474267659161642365736960989012823753865654375274716718139539758043275333030912021565593011959300460673499874937066901830746200195190146400677521807502965450349701782888030389529332262359471779882110017721290555630541533181455184100186390666837169311608942515903246927038398409475092199230423508415384256499796202017091060079314377590414336511096192451726124014544724581235799656835900546866283170558414728955922036896313942049958573510182320762502237672192073082622062208453332217286342330454690266818073235888198462572765798274934083337504550980178304944815899723939394775710008746113602847363451796510243978628660243173402561514847926270602676786187486676680244036981098103190513609544898987998261734952723495719182061221415606679173568679762102710332355881691348992702797181834653862936302969691858113897638287800934610368857990229310466428303645815255201096914837841770687451274378360505218284324059555146515977307858623947544214457288771456394328426677451188732683353322870741093426182780511913465286025551723058869837263491955441374177841950676576065691414897384591163573034265837732779090661414681425517091243927155971412377484524206739257686583151586886060758962699905687624035462329223413495692183923252435612217691416578744689037766276402086927741326134751967092912973743568154868118255935566503506504406549918702635465199976462936614133289147942802852562242952457764481727303845255119583762954525770800222471180967809751740417709137232953515811922408282062194028948111589099376881282405227745574218566680114457132367865569959914741448828838614843752268904785233517152279367754181489962647444583450235832092858671394403945330782364012488938521719096691496186857366589582798988503518903094058064721199086422848566513021524796459977933227316072901856923784069367290902557248729034648090458765147353163708522979152937953569519375379164911661399583530181364181199757370336389780691516399486754538699383011467758789000816881494922725880871296252341125084408100854974647798579330365387778624210502974711289545428004401797939392996808096714082552224768293101866430089677190806691820331818119369509846728461699527787401355408492659933898336918449827440996325278524767747562540270194112597795211850287400872532212797495715463459561235850986331619016683500687544069800606227533721870649325450034336820465710117012636111808007482448082011968649086846609253369044257602011704057869873899940469798074447582686029775304297215917184122292689871447907855503603614179136104742380246784535170564485359415257385140582277908887157303599098777683593370011702680812444341601618462041350486470010264379948845792523722150109924720253732889517204689011500284494967848517785937174773210068979928099002345773059909911785482678036148075319799249328587383020266856267257858524469485684398182875063804063510287562218279102742311851239819321830039693562118108142144240580341288786604778664383601621519411078430811474629089654651061642322950747768149215479190429816917031680335062495205658977514606690693773941462589775310137102193530180170393984107002993053478505008471472248849314829059855349491618126061745727833480679839807642595344892376986532180971355843404548219109898505871138495659832688769659410070326565405961446568228207780276775674082187616211981167384933391510322443545095795449852111799301307650194406976646388128356154376939207079113767129632894793057205898268331693166934318659711356476448757113796196922717110432346242102619596345472429085664427681615750271566533014597014514322691358988418649472259148278218478867549777947631671183282950959382035939740359105575102346455669170067397112644926865920798674985941221990331053518719594297515395200997122582522395402629390513873041977701698409165255051401696762639250075246939096054816244534053637375418373921014365473636236385782488030006996522845959268079200981020836745238942953918211049726881394815929942936436701814596370075454339147255247871049910803500236637885008531667809412832080443643427644445825486869836859401767309399516313506715440711013195198171541537728178477187864434393662172675572505231594428010093376635242318460255169872378683414764539134229174155048341936985850545997625439473245587052063704795838780230292772636786478246957090950928428002748843975369758061176988092393330460056101492785232415768260281964619181623016812703723576061848687891978445652745794651430558506910947219240269165387619818000686173822210577599752170156957515105689488009068133606427618610060645192718886572327104499885715758574246999151610649843706587057844057007891223351330873074662710142154563471232663385283263877457500864227191504670835762217464905100713798064608803535128602648090185892081461046132375652082879835445975721040932291389124117072308730106977932166887646932341013824418874427656184180681751139461036926630904420094369442320848517847468026036539222977307406005910418525405988016600099222243015588488747983748187729077477955042843152493908533365657240937683150831377278520177376486685179760147610100381820616036583874784970004141647401054772069566878813555110102986171258570537445693395099091457624169227490366538432849046367302677315437023560043214520329390343617944886407108081424773707250475608265179526195895265095797087028579256391700025971080168559948195349890274993899588390729809122169680772030634336310178990756757301393199522369939119309304732988120983970417210340259567869131108021759799662798116478427507950092990920862533056218636024134664682602279373103344556905725435161613488716128123640381791512845238066406979210243873104060716610723649145918320169231606532847082821952958050756065199924696601391740093261908108670703735672002072201265240913429725690650170565850091135792988195076444323818681685100920034806611924918463204563197994446133567774297691377114171709093307953251739764154372533463206636757742721996350302633615832072769955734593814388224912513620581012259007276772246521333977991495862703486614168109091584326966179140870076169022693985853225224799218939841428855967092287778914124939226749084386279286556150685280685148593150537637560434325088426092562807429694507005265108800219707739234534180506354119336066138986519071585057530736909433494364545997631403209899602573291965470273681455430174506117931560659535588326744070396436264401388672371853452936918499751723879362597855135186563192454064772853333812350119451248253587165379637251782188706117010212016482491683103309563728293849409898888349763350440364216310683745604498311858280718920554517107936105782383743195612653256024130237073008591850852499572488253036601423935868359938044450830066051439633686121947141377675772033274270308495616926005147859247430738428096461991950213073403917989769051226541203581825829242657963635199023195393789848235921975844387973354346077624270543699700100213939452668968300594729666693673848495055212819058136386783421308821432702827389517258019695493936015336998105420465093999266561966446727093692476208576982705122539763767611753698966405816374822015916281160609496686810501625968069426028865310539819769575988630790864801656717623243727065568639028687857936845392270614145030626228929507597488898953718551143932210727459544086598904731538334174761816209491245190098503784535262503317600105890947936122444199739830905183125035741670408635557129637443811083833233267037273162266486908672212488308227166209320085096066128867499794465043875190903140150098731024613906978234072718326605561729085734877297826171474362615051231170698710943822072623476752655496040847236133135829510274135876959373377331270578718122115113350703713542826905446724555722981807450254173875274559443879699711552587474194228610393347374987323200899789582109606277662714662982982445322840377131190650630399595826169793147905857163996386462849019813843264337903935629608504893517802188150393188613422620176802095523431402513291793997093584354212351943273989545134091004088287552598486262462727267778949803840108586590151120757528245691716380576475797007104049041864948966581172207846127913839172235369640239486081614952720102818064357179080331953890257632503351868740351656625052424618002230857344023184490056225421209062895787338476454113970873791213801733483906342773226298982080562617302975172446543461447198632039936761928620354399441509939041647822322348702304590095475631062069143728724939278131633121465886730842512654146662746889889480787203342594989339368181166239869057955531404620076830362556540092702004718259558471701658584630348480639774599482393311953920856457095587708097406166099024646080751685658176978900820867959374971139892557682968408673226738915196799227583097930612402168665879522165376711744938815403347556597738950460265346295528718167812307580079203457312282940689059154064913236938718410912033194088611207831632510488933300072707450428773946141305794585384512356376991328892018599663531707140784563877318114824455909514378027389309607515707235054976972609571834609770105525541711417922270292417663742813131421342423749735160388667157106298259913920988543761978317128273235410700000149245865247785463568463157335591141686049502506000617807113390650889876691672602965274779900370756992170082877313271944367823675991716611709283581015835023932861555245810239375836697640221244654468864110416019931466666352765962592338398879613259298768646432437335945290145463986808096174833840014633682837403114889283044513602704558035308013157295725236090380804451026624108113407278596928525180249574993630866263829129394776728064662537993913432863144550546148944598867218711052924145552104876800701448921932368567807522935278799096458463916253044452459769170408128914132165038449772988453300173211440380923830511876756451909117658302057887328793540233810445676862149906512444144085459156594289230784837205834251421236685514086694945861660786943657648572585802112982787137076080607966684409776982938945435847959417001634518877780915252093210535142392254488092297631299277933665900817353858362468546125081945336290478544943709620813356593958823952975046019044927291102337736247001294079852480774341591095353909359244168071876233366913532836884427980048292782034469999860529405387761106752110781738128809409984442231925811985383853763268283307694320685003162233879243482925942020015171363737888544042335962341951556811191939704964258217747605466186140172066763838119281798115745061777083621180055542569545368666131228785081657399312584699408588322538200746228785091875506684656163084589720069048805380283883017573745544142620977658537667721454885737071588888616219607245762403743207628955869965011540380903589153395698256875657224294998689274394944955501474295919942992348325244561162041458741175033390763333570934824364669853530440059662127745967881890672275809153299577941944201927873024725351368682925435085541850662753221899612888131274081687884002554815441735398841795022402678018311240787880612830587062879290205062511454503163864429606845862482203844941069723328521744802119872815856646160345460715502807978323529001117569023855761416789594792113385706174830555327860291070567506858462217264075213095074971091877943126506841085814726392560570628782443975180921413266152853971007110157402811156325255772634979938360719377675550013072594130042170217462677296250388131887688168648111646964652579964168042779976988860606662200250207712714763570819799803405520099720276333936341926659830718725487431121409691481550896909680335699099697460204434814302296094437943804188919682900235365135040587975599691738662013183674676478079001758418718182189493690224609919222441254303104015180843865029449101215267771822331927729348952177641124623247388942360101208608746069099773747917034127809881775232801313537859505506418795529989411167550149989583750630464264945285945638004259927691231614614624000988590264939885999063744481688251646200478379282873005497896019643981173658445678765462368658260403377237956183668329490607300535325003313315591576308261574022910675023608621747583513423555045257611528139351466309548704404728127940092869209730659798120397381640799096486927969334361755475430303366558199773070374307565398235897143548176168817843685186441256186183153856290932961658307482202513248560306678143281433347313041328916224097753164668506743317065414850252567147131780646693133687618023035072958226408606320757414730620724227592015916719219320877677923731243384189243337559987997061220547689660548847107906238912186266674131400165143135087167450790941353417608412614168509085466880361732180338128569651101391882943507300236994389108834855998106390942693143545299070125802363798888730619196134802086127552701490106620236358909977646666042879622130702624993381023377752233260182509969772156335611405648668221424200279638622520917354013416214537771281527179494172552646905780822647371236635851085826947514674234872700610940181762990197588854115842842167827757866815867546602797382076757344098881378702887485368046923161251083083599901695493364365445841460498111827784437293951689506877558688887943696359892092055055751466462665559231475994037290557981872888026849520183825093772674716566799354422509351543239517449270411172872164348941009300912692898031794158864680469806070609417760977078753991056854247711746188998296830690670820912604625559543169934216472591754254793509533366187091609814304623670512273903867243507376905783131726455249267854580757040874183592157671346878886998351551144882627204755400797280143205437856256463199388528012581520208012398921461417156691734542576241431210909958108291043556745153420189454575080583521428490558861245539347778240590176414737843956786087161466624817684416743227943604185376163459892026866450113728684376229556210063138774230641590584849079993626770138704617368002693413991285440617787055097544873782554656607742667293849042134575484339596428138177543384285893403612530881078950313986317574885059105413005159596037177904444714900039628724595456741878945538815814824018648992916551787663031942637526447217204925870347688540430254042905448098086726907132187834343961708300278836056509363342171202205721533366678410102873892804378161297858052838900504985681455269455904602020248726022284755927891977823761186478072243178289359656554133400968958754986993260565619053054581957353648486169965492108387929844240055303381014211927280197773608873377462735952675694594571811727051215752670126208536379791133432433424698880974789875075708842750274781127710321249895935549494453984561458342330251912540915265517066860386672285698294450683019957984697679160747437498338899115330215428143176488950934762922922834026805443429426075814071908235749899716587041736561458772247262906144959187179570662239465395117217451076619967262688883022874962879727604170720295399174107325061987136812611842724952653644344856220727211624571950094341195426896777993331454670337355930476502011582597985606963150227400798590483046865716108860391113886010193216003857195368114748657466696886646920387626597590267284492470462439291785695185679138232388473206446508391748425481313809419958184552261229720478743855989655050585077943052115975878141888522341605666659098336363396549146920897224902027514855896859508964726302919207747449300262533832387354712577480314666896847327463004780625753321209655305106293733369101302215834842198255346753859312255965878567568574278264551017095020374438600569654560739452009378609552198026508787701415995161628351343877695609449342862919163450176192012773246319886353539082484002465321556868241407608880456264873447188149684544018927669113263431092534191408508215026041265922333292035420538727297695399751084575363497847892279478243734374474877161643444490015048922736694318260447177531152366899028829351749747170379761946875752963940962782676348877015015305042036871711583814529863707245483449694650141077501754906549651715743559730835656549310910383951677906008838779953800903548777954539628078390826304070787745166166016056770123117452279354851138646478060216878813746441664985492384370417250289365894044033663781941272821112597363251829011624135420193191277582187103440559189461292679634592021241746860778879429664093879715952715107221074401405891110184659850074491195517372142264445484215247482689592223418810415875745444577030777520965377157772546735335906745275160974540909251393541680984703688830450436190479745803665074117062598076689692731312511293576274811330118675483592576926260603491657646937443203195845303287414575588424399720875930962714461629758756921540709680467925693754277082984573281965033182642744784958895242190622931801689513399591679764778814344287532815999560475310059642288635445184485649966215916892587326785132145226842005364769318814048875483893966494138917176685608437043820389377355470077359012332350897400057551430176036262627352080793378331889385060256955874004995192666843783500022894478445396665249558129167908513929598199238404486840013177809653237301591630861488457907178705856946923241699655643882599356295412093715627958295879875696488600554798002083904615844592992662448179280190639912132072218168414802122513075525845700898943319235355363681208292020324221866355660624476742862108670244270138048120044758450574279846556246591983735556558749744236781166601622089115955071042040017349172166634656236428835829738688508155760405500722194300070617826894017749508693861235393386078199999693431221658201353185480700088035349890174904752481577635462680772963414599422166286218788456170358497339962006592093571257626101377415679176252343475617065203452186263087266731024487821894089106485248511495873547219693940293927175252019901560420898754581810846989557314710837891772778630151830185593805627190450865062503935447405710083545791157171330673501685961011104408148198408072778537668115627625824695363523109620445176289356882957974195925657902680699175843313407045183176040309223961247963010033653742196825801234427044997614943337995861322948550919190607603784220455306321652260318837035869227105197054787386218236688683420787547892425961967132249597974126482313001743455004435115294413993741615208852799441884518500656699975489574742428922097394056645194788159191697141627756432976075405023677899977617705934399715727043443863956533262671668932916085266618376468174759545101580486629385860909736570226999474673341260418588539632391717678323711276021702867071113874970805292382560729479646129178423033093746403192142395338750658787766887836023492028332654491438357389275363980305080354245304626980671683455652505781326934929117287871747034003903208949775634746212877961961174833747440620681911075574870888480096444131140374893347165556811167619961922761646846333204995060386280390008247716302586727995111914850771469422118522815655782464933164988876505348728361716703681958475307532799423861085673847172757968080461496442985897666393708493190227170503170359547980864704635366133183299008453322450683436543875495368655969902432149295758068446916455071434951711979127153354671782654289845534719485512760312103441614051654232654645942836120407244673612156479855709601041082441616355493960264657589437237946025422582535943389914980659384082069271347503754739117329825009746683564128054910397938181896049259728008748692384584488130326758789201425032256782074390245874661743103904789590578056302575448472466694005454991919854424569674512883841603142200313876246144261934899571318095530834323343007625051292302037688159127300906041246218941498154987346691891528996852117943805529560310168672134048582561194675602920522410909261114643914919754034526136908056601959852718298351383730628383444844818030983854584553057885823927399424652580385609176391283303074833771606715509422514805911703206759070978607974907241944034540948185766948225186218250957942446901444192507286082752227111697883559518942237882451125521180478800893382886084100546319537999414658560895856513580209137389393707970166780829417401881253370039080949962580968660509905033611197852020549451156683065220672032268820624117280700463955054295458059228862322859458319543352556365859915084172345349034760180638976690774591207480331800113525007871262832653712577642413244336447218594555711664313695790546281648086668409339252205995373600714671113740772054319616366106878003211695802177441620185336248968222301524836879140657477894454717531620104186236050653218553276487005403911896903786445859758774991328103112432271435216065213228425308854457788950964760045773644007619081702419503826704109973126719395981819867554216447823906274094543048480734774182478086283134195426460810271060022347710106682873631622902856932097419442068060315852668506875531805422164055881277279330762078991001776876959767213877680997461968533299468898569982796597859814480344976331612969152416866056859654220731386128170806875327496458174989901884945878420033335035075355944515493353493635596701624354616684245813923222303557710117235864636666939565285272947949947603054447527259784780118849366620906263373354514524390666013262417280062374162228510351805272610157000692492979738765388934720564721743777174951760618950806613351880191070443114824771440008839307429953375447158293573452631642864646684409646867421338285506535626454727721356022731029095762438280964947339708644438347734120047120452555400517473493829232124074245547668671220091922378751176032939906222277539313619443343106485954192588710072469277737355604999498389703458265470773493184852295231582897757428258299110594195872689242108776986678368801813977556343945842559691267172748862650898616055014121283149595156500143148153846315495767387496781284945930515258935864300870580659871619356356284114145343849898342544384396781414932165407458260294050874714293629704982438561713473980205019031610264150545816300178030115409043198421788265501587329876107502633733452465268273458454312348760062985088393672528254944372279011132204955133895843758401272718357646356627041955195641897108761012531345325000790980179374189962210997809483352157558300828894649048214155783602267057717437123383727433293897205511989284467118113034948775244963102558556094774521291093244541412945192570901001967532696523415553738334794500093319079055586391471314510936241906277802535905774704251262753626649384212238157320966099162895653284416309185551951928596945885104776399583261655284887527727325051015576082489199268520115004069121629146709303526206551859781199252101161167752283343148768910710499938813307233538190797339586224157259688660842426967570750170395122348144382067457669257269591816548548975918204954689626784918480587280716621927071380744870150055252028973247486254224331031670247663453988074885645490017283016636710310228564633200537934558155732489426925960037414166830233775085210615032863025250512479457477535263077259539443867340206242655105603933616273137499497183171085604680796454979431809579032224658551829127976950795456031987750899887716802390808345800762662776255309230816198483219231236899395450720478084054716098111721083116367581784537354377160947733608879652633989185018140690893858936383226131053547549792219189147825583003082981551464635531671629203728198345199907626194619662476404279815842908494487125363012668532920034681966952628180752233361982686756782702586225074493608849729631724573191348493131952782729862975667222763800883020496563771713483358858560912917376313146171605135613772070014810040059859428727043088441229650916625613740774542020499755097842692001898428753527419536951999397177725448233262171801861488216671443860804823602746411183037645231388719358745876875664559754732959726605839557437564155214837531600875378367482721669327391350346926976050958585449926563840547482109612933038120021731879810990443532214887473662900217494036667199948147973779800936699945774407770763141575026929940043331440822165573667335745528321026437680944624451973277770761623902199529661855793335035701164558038456647125464597662704330198390675212946798989825254360368093335264921646011674241824372125529827410426388413714345963265844277958331969253184676326103676252006579344126770919341063930867541186824965850433497780718733394549367864677057709151553604785088482722070860812988687982487905070566748935125915009397665693745406842413476465976440161409839756053317832436930347844968386470592563639693188370018738883147768946532068565159198945312690774948718718040936913564437078717616091131740985160308156450494179699159029748019980709066409041955394599444185575013296289917211996153990205064499110715131365336480057352602968956485266054228421879824409067474251701315224931616730226010668286072942037682219795359424311225043250324989767885016466626579364560461557017335714555239889959536227895059677256237826522406997838731404719826678473778685063998314658593786816988910157478854252182432665973642402054744581481641228803973820544396361269580368677105032340827859588888040235516535592097555836044959091789809252788898119752160563690312584987371195785702977463547622053237352491481108187364391860684686863785532750393688267847749836733081555987005605957366266308362885792745517341641567888537031461447524736284100182977063104289846093225951282754099459985906336486681420660994157360631899564906241231672667853201229647608229158577111579659821910056689995925049953252723581056072776703879207135576773746259861155270626209575848001992812057322180092550031436869232425896585360868202847485342594161085142558336955639319527859638073666218286807696676260280152148683798481768368385651475432169065584038922419820577727928037575233535064202258317797742853550751073647688446460456838928289430605979971078254313422772772687733898909380086150635050479121682308459230890877377020367874228794078418608559458869178184056470023735890079557009221817344644568680394977801967363825720280344259542140759079941729097323604991781069459636242793161818818964588768933227870173548312759990300033079293060901245516762119292004948422790710443339527628230875758083619436599421571317113330248566751580823917059510416272976355235515442348174404201343967997994764765292913860661247008558048669626693622230549170912570630436848714715174058276250384483846452639904570446119245902829021144080694555130310756797567914109248370084867578333374707703593786098605854375479802703659260797766429866796349516369078399547497106348738368330296340061170102891075075601362207897219478106958754665639662263844168209700863465405602806473070234276251915863454828302342070769529809377890506281419651031498520475656533818278729816921475264578406716860445473103500138848183473016585685328013328994131154168722610252405518834353287192005548645267650091258238682453774992597053450186287868677321686820452509157635960504789630925697967791958041988305345063205599697142970112457449499723474959867054717207066792941038538436377704906141005332907685438228764509716945729945700534680882090181319513061417399564736687323397550363988205159957366780500877711603958825116836334835103291425940488871343460560784305357947184431442599711496080693437572081949556346316452854141963484272713556297044235738450885945612394206169899406517303556087649798565386644564563390720305829991316506163815269748961763181159752651767020540816268670491992618024392550718599799682667138789865814466045992987090918660329914339365387247273775896409625371156411627267399739184135023941742554756066240569872471510595869779628223542260018840631706986204980436089559270718135337587139021898204868580694094429199841095048793537116137231737816219464171551553595928815011690844013484532989267453412100240726844138087911556021240259415095316841891326323230517451789764744241956252582957209640051795856728196661911648630306244545519797292410897817895318216282709163436887812973223219154403054449231840541893269856248946562205068995760878521379029832321033263201920178669017253091063800655807579192001997659598681319963745856870086073616969979337206668336862703824765993211525469788426982045029944479584881273243278338018410807781429192150927412772143211665279054532241036204111283546814595731770292416515103348033736753444977540072065469009942056449073317307748688549231631274892969463523380062062215001787439556666424535641619677584141122773411923877018843303183716422525065049033186941163428036420865563650643992429581379630823314377927567083961651394909024262273459607331547241994936327358772210791819682799314644011225840790740819490516764230576460669824419628047146630086486650768658553637432370136358314886080020360181597770524523920846782293719835628467630605075503280875396355794927941450980155372691521420724913791221666109166848156490794898033420006031770058502707773380836502113751729347613668847677473558032774575026104659219959046118531749891821827245210064066190008722145883119787533851455631848158669699630265447921988183370739595083655899199808272111029633615050320768391307858185456414794157866435044969276310097616867640718030854996342159746711373139162130922053556331244284341143473909501717858174838974781403584817276847176940307019784548657718234589345993879162515971331968583189162108022801590979469208137630121918451949155881918354705652048383875174622257061759002271296960945052385203462477554718645896378493581969179831626020587652611552326407817124209249668464427439872103551764486838964752492610224180593965234667883398974388152518914244354066264441281544687095504987818066485272100597668522747261153533370405962476876194992799286016320062779278331371581881011261845541451891128654597589189670764946914713162733893051795270990264906261731094716397781787328299408504649131371536449171398715066633528127322683214117593549138460957834541270209694224193901233164972667573287696307616157512852187602250616699925642087621515003668974430457484046637759485693885901343742901789092750624704216637951602891112169299464878279810536803195626971638726283239855389217180087997307160319556360122865093493635842532185534913564507618396323943230938267135634957748502603316575818386645845601066023023487204456359512816661558277848327539054225379190433146142995426589173960973985172960515240529047441056675206322393097077953749804235847423943804034236870720039760815653585772477172717062800580259720360428687328615365476043511807979548793981196265675942017870006965459209898789073077082694664156442539917194616299333372018511844183807510201490816384059356757702155705932296688914039806099647761400031768891978583784123494811425348366146123755102371889083971393401734854104501570137556240247978343431063534190048833605197620610215797951543914047658563288432326776154264474256728774390344751110773096277224994472843734789310954160611803018378842859671905948102035529844093527961809478576661478504570390622979479295863749893813127238529391031529454849029296211458403759720463819176772119377537359063113459340135629586060678437756553799295667302090095033194666565659596081609224589988886794620897458069997127649566513564134894678478989511822995951000577252407413303744527338880265750877896282534524862319157807433198260154535131052136425751537265103936735457844778858473730008381097068427423476327205590306435026410116223195042435645493858679667589646439571285037866256627140503882385512097050009646931160822550731101303168995929665016541979148040032388842260444689853406372021471922188360366596545370781837354437419234998577887644996597959799149405469874306756880725416997178829984849185962098058997227234159309959883618177540491284527273426290682517981469482587280072148739170062130690356763446218766203768352045656048437891899406429758807172833918990224303307184805489523999163006236416875716664590849634101252513199617132956846320197804980356738197973169233903534275851761337447701151055530485706943438836320386103269594553471620350855095315755679570768797815204349391896714514824840986340080179573228158809248148354321479730315190402962573624099878941857627212479095954702580939441877597976400522888582085281195446167140305840983532516534594284992582209974593684072378807515795070740672669243220991019551703735553334126451139629897614837605618251534116053814683876138675168286444880009583644248537045517463140249546928286959627730987711747320664372595891131200137766624640444339455111847925514201755862569497008722007530011996303192253518660523281458201913521340375147431421394905501749143768068724265526858230835012525804697782278846929444118083037778263191896183176468726764090544320108154156998353408126726957988913365339338050687512294491878998015409082771264119045303959693886321994537811741906857520235984857639690986478698502297294890456253437369626713195910521898594378798213381391784037489617453204039192971831029746549676144453182637274899081600349108448832300710630667748132153486059595463770665035940859304649707399472008132175362430022192768773338563996464318141968385001994469315020904249992211268563736589853345360971511962817875074580899167707732216033941854446636913041565380837537984487304585294703329798041850870023082341437671230279037265349954278964694552678802251291511706868247410059814597085142984305231259709601528563814297182450977433364941758486813239677407859954220742323032993191729396652068654565182668533583103096303666843649374567878873625560660745703623245118870153297673514747740525784066698740722352488285621261957374245051154448238164287775511350928099107777457527649230485777116463959545728709234719755217118145272084670180818896678431109866985517507298971399490056504247806513748324687745867279288672357250248359845342447141730329884573550909549924322902111664385660424082518923580945368493450181297693900324058620895878646937198702685434828433041598937936222115599816249881894134459877234651053781128065411082133236972757397841177332046774389326747081771139867184203976260070459602770805378910708421319963771781392753598938270612597135503772191560936264819509638433839979367215849941437498104808502867402039758274956759217404350552249198877910855629431367698459577912116951418536665508502787317562440553265338969896068670974530808227591300039882995709959123754745497511612547003093766564359337146349467587793354511968936818606567702714210972083367959456368204500558320911277336644603421530630541344556015943954345194469360366621807003163476588731331231735804192586961877736696217837134750591537685966701097069342998028583127807988395018394466055603874985216836038466927033924564840721795771417356444623351178894409186308285676087859466433427069825932057605957919517195640713626306525115701050920844399470691995601827076718761232213603071463061964539602592296591248263095398454212776926424258325363520267472867121683521704400370254761239165567313466285326044965723107067995662864553570693557939635017668021396693081350646046413019772295606618127233446497503700844189831310141347158195484961457413754372489703299091382452970289578958340576620650928220706499953018435917670815523371486646591512063227636744436134527722895315117619767664640418291551403847819743209290156387497324940073466878820495903012360017844006600532218976002186418948242755432282341962915385614993892259019513004964412376161382066009246593255442699129164915791849737587016572602276176391797076718879713887160817532302067904856896129841343160042047566364893791615329826885412051821787725580972696158928194794554219931798960587625103622731387411784522955016815813429793744222748540333379883373776945449031619516653995972367876981223044719482289881703442129402307604379358698421924982585488711881559535507607554727270356806805813807127717005165886484418042549919044803029829084281298754816591469909453265003110647762009454652336428148923849542945772233365558228546688391168238680641409102882295389555255425734730695603163198399265214045178053045425744977808344189563854542367291064280877830971312309801627556116403025208479416783680999989066860239220354488160055190613495041948507559956385768767232567176660071089667674741836855898656713375543017122103244361385352041987440552901107635265398823655316116618368455862090699938281972029968167431184539477336547898171316584813584199718587665303074772552339622165222521937063582912321881408738162600789028589849348231895498978170040615367672110755378588887394953260478110573720617757398502120515221668584173609903320397629870371238684861176453861756482895486993517001740038914184061819720035426165287398152938699475387873186075907113466985103165082827110034182369482368605251435832631101485895443699368995541500311194837855934862857729653485616929068041779162875308407408221468522266163841530112875839256193510724131656135525692465118766264069439458582006470064706351612747230227654212316925021514203923135607870170752050074942028011748301959904338937055940256638186750585457978391771076096912450076159907001810915909172474824045293979227371408630504348026050118890802898957210584335769477551498713897289805834823860044885043762535523004353983807044954849719927977037935770676929645481996543534003465815212250664856798933615532156465308728768821216452049401961987740156427207902822455314234809360697835134311905912545918791323421071256947774325037585563744095477257585591553598585636967029397227939954085728793275008361821241540298402391036411637920039791109822420384697320047975846986928743458561462416650936190761415077847754798121338776033622516063370078014345454500283808426709360829338197943569286273046656223883995611831398090838199473148674229290680727644509720685409431723027186534741911079122752238795379051052589800796640851918161628264598319572826009618955581898325077660408989302244982268684128945980427562598318607701697972150568004904588617406580853408152546825554889837454077880013788185826445690547639993278354944352325571311056382968843170220358227317644938686236734596093615774878457178915845329452516841957851643994488069623333266665415189218845887950176765348442377779596317940660165977266003389146623860907194436224182428589746717071732770810116338193849153352306071998609980428571311235548851656740772234522320154179951328837110632585610423823328106598682850760444218700496668366624286440059697986697816078494962057031013215303591261330278633642532847271970941968831550565481730519416899904271292002019737219393369423485500170741550100278012467894306450685821055997970196472777817104401418028784271877650924022931164281866276154721210960594020607819358268713229287762564820255785804445340840996634423680873685425569620324174494075853975632365375480366754563377686524722341178738047574923350853425830684557260694305632347492879894612711666905000083877816721344118157773852292777360822312146231008377823848126245311400752018712194939340547808928247868215808328409263167530759641969850422727296144295793387324289343948963523846662714801665019254763814539680176446028568852690436666603368884250644338121854770779218193752634720532291236332020330379277269333772035903006696755999670926519916006311754086127903628854523956888063205508542093950713633892415812979933216822694237211866194864406675696326108456966621010363045744383139265180892674324276075378250744813614319702963634228708151636795066461641443328889714646108344772506220045174590698241149240518278784066298479212923401995471990441435796729755623605956540549322047409525357694794328276003447454770415116869084994337652653137237244309200798191909057296797821872585154489868920488659924480516683903087272092750983106198613796295740421842660142253164748351805248496567606976952248705508198352333262529306830096004423900117727390875343153490253848163051423126980822916057260086921031393761412768109529852061644608913002894266141445848492418941897087906327595456674092466645124239521915591397751527790211743465497380977438172969772622825229087739475616894048022392281471313291250828370606039140583106405719287573826549070891539679080934688889938108921106315668745494807920550530005505110715670612700601779964456863515410883522646603060133785201873722381625341918043805503712902020763107007558403531288178265557499136486329074795286092181146099048897056460308170515404316360036487165819321139301988887149170253537418392885182971327396555683458509916474453685145151722487618384084276185316253737498555713609902378079888571490407032080696724998917578580930929878641637994539638681715991287734616253629020691679557811801336065052935473132690541179512143949377062365725778270330717742489559409601084573731363062832067375074426395155605754088260128068580554741292997931947898349342998110880048958496351106774863930391197888395636043662292675026286511864330168788324792362791260723765607165406259972172274473463934137500085923550888727492635357751316384369842694664892393872536898545087924794135055191898893005204419685071129430519500153174407741756340596443793213626284279726906877639489066151085206019834354797627117569048562791486840072777471779484058537673438513551447657281375681930906444830585187114837578208773138370452056082644956913703011744767287848106286153732279178436635538515616987582282968361055479811771610115782809580867555379229657175569821327755209391167434279384957529454814600214570037024551649923305107279938430758108724447136856572473268294822400319149801186930415253029319402986675555297847142007852548687219780319327862562111497544376848121785585223688594168966535087176329131081457124336362032547658571554522178895300494710254512521785640581478359878251634621134163970423637063372667068437757657490065179102062063824855053876560274398234864226767041094171799955195527386191955493057865768455813004979457450462201298863641654528940390872467885709956053077840931680917481388344742227461313371070613279801222083169499227523244184868339615406519261307231354110111854643505902694873824779505000384310386980630939649304743291268116302153240151628962394290711641626735017611181560160517667646513408845592127417094035323610428517270123418800163473368807253409346799543473978033405531899099512437522989437277332555054790960834440423524799906330672120011167191731163887674787934385005596511344432354782109186758990089021003871554337163562140693330515274600359313772307883387750495781385141883727631639287118966986464087390547416650204225740541271306371037126542074940538023037876276399689446392903821451363956592139844214504039843609527355074547827391024494825202277062795054534037893790498997448428769051126891312274475403161739138149977675529627634751288066439309265291627467063353711864683081837277651491699306489117018450848082732742631022206659164633686548716990929599311050067585417832514196741032247455663717338207841716117594883187869587390770940300250849181574998160476239538592858537060417800102860357425262451279550418009260604820368166675603795346853586442543390604965129811498904776059752649561654565095017801662439446715320955409792597403046549037322664200420661232838422445096399491192079426273206402530741307830063195093888919879719360617574063103349752752474016279269216126399614218735402450903258790208726686171299903159675106653094162437659969305631974809911115597434044643334728165061121351302359171397175733416848268174244824836466454097946504985195294519741557094786577706751812566077459930305890240648083293068006557012892829784051203462146148918214830224109610514411158705227885670660081817872024715086534929767969060856316747667709064774199057038189475127655354032057648405032337393934149915118224270692511313278307113339500877874443453208161941427075334421997286382019053216455349101528576688794259902925360083146533371033320971892852339117051137305873865185161494478365121369757178502719305322916443983074329978478692391377161362555676624051598781120607440891020722884360625351029808386118930662309922701947997158968991810042247290901538904192291079862976304559503404584438391590883693117834449423434213902705509317478779577773414095959936265845421384065960947997526629787972875906237415636612382102395248742760394855124328294442100002425640551686904366156993513526384905837367060999050922662237367913805639227827070887894343982012747576369578664938807869575342398781206669859361116919286133439913600836083125193982846375404653805834319581396278931014151411707404549303356999669767296005533422019547018302685489970851694275514348016088457002132802352384560123136725327090828857883905772051281992200483260400036319589592461037256250843671276944581204190735783875763978940262425723272220849162478053716656576038314078521559016810667784957644505018654510295593637622045705158612932807083349369317431894213704011643435830943775620148161837749928516309537520549912479834213434368182497672989488966256267127257783088974257469859468125383982302946390928344905400979046447025384043879335159934123326657925789371536894326271131758097485582703424764048609959782389761685123360773419014578332473205878723282020239019940596736179332429804598254439088472702792240022134580551698641382732371290572427987154683857590275943022432014781147145907819910624243921485766850569091538465904956093393092197170795364875742668164658742312056230186816243058185537750275627078669279876015993146081720231757326822985002263409380241763845265851412488187569832578783183816125141676817000438447426386898317205743160621725179505355301581547279213689497393680320502486746237881826567317530060377767058085053609383802298229440213618314688342603393534827066736995944840957543271827721751128893696443037878013333114388028035482396952224439278894607014604300937172457350947613599784801231789365391177013710591952432072059700911270220444885502089619049887756220110461408162741736012261737612729763633023134884224313376042486139321289774744853982553165538229941472414041340731879266544822171273143115149257791587648265024766011474751073946479944886163914140854574371465413974318527529547173974249288848348116523049458082461874245675859614925623602448901372552633224594508047765115946598145561023798003209388686420153036116370796661479938218859580761679149826896535528376492901848736730276784255546349441358149133323238764605675604151348255626928934612220590205939791021270212520855354396581695075251922083398533098552480361861920531379012184736937303347538340492220995898838308800138540423561154283216245969277372718008297864852722193872307328921800421874084429400210374075134751817539943946977841341288003155614054935170086541221340465024602708208398279471673494054136258938164710542331661773899207939759821320162995794529124909662111334020693390925698761923166821172242013333227449007882209942972069063915223020546550521029567112720708473647178294446990300545739939411369712801258064087751868197020591906257343321098851919246639265071485803870232265560409279336119862601014089358644145586920541644975156385157340189442792590687568300961085910735079677276917737418407186517230144161056580460755180808249572984828169378113173371285086801304964198856406700403062841476784050241711520888603912397029068077962267240163254254602698289375937362169051200062462198272192851350108726203893103546185754256185254476387666505900738102316906341651234693448951492104349344199541829845097109157017981413815765705476120711411387859768885368456975447425549502656505309752872104823913726498499805836343767309329068435364118225745137750469267662972600979838373497157767184051007369246311283154216507830619578085419293521671041729194438005468231663479311874508844773644115961394981173946458538686410601623889023132587007852560121569430593781541856485086823057165550232276382635826197691891539198937532800928340919643545600180105042610899588065577149927490022755292208058819538026429489618109220529603332223302832432694246944665269918116314510561787961950919831455735033409701057261634433232567888465887815556039769682462220538984628783630558967686904758242001290944692713167148981525534545352956584163461374191343979094682683797898110873520918549273028723667188089751870314455751441662520475191688085300850174145113484266375325696703391281672003738551955819126948253546873091842321315773966889600944660176789855325637238873852891700498369939460944452114640049471150331799095003723413613479930962855996200453445724887228528450681694093563318170619435460514420003411983548616787288925771999428641638253192707152902053192651959874397255645996592711429228149796920269656648476060013659765733341618804525688158007982893306250399081350198988505449302148619994623582156551186545727036979290243219282811432442236552032648682187738122311639714218119525304843324919870922102131429904248802824250310859220520398384680742750034763380643564748495611795400634014202654808882581867189896133047405187437402251652078557261399292223380586965163322086860966466814703310929079220868972868883366816067070312454999416910441290887443631950107185269167890513060137993991473187738853135513241349419228759288256084581856928968064264114461060591798385171876051336914507899713001019325786844878586244720078087536536160976278633242844276913139534393646548175359216987452754217027415881203721030859632104299222126771404318226659695388111344292154170547972193707813119544693667038411955883563908470281993731819712528350675146589055824708628024145061345410213310351180113865861671595415401236452712790040220977904755585213628018996743648535321934125146168897438584037737343168123710710724225335948105696384920765213524877068671923242929766877813127886187446985079130760684484052375167411721916276864975951634190389460554078358517536326127756495082651475404713956752935959941377765869335181986762110918847556834283931911380300848197681519370620074972341735039042777880261856379204316134298016484172569272061852247953565043275937878374260733603639404408577092934354596162527600566394924282971249391801990013443745739973772493707895902125075707632351033752736799199820654924104800272090678334197684432027959868316399544115719029546341884717803423416931812025322604086462184251616507264859195792600717359882526129447176649156298783298227392767166098896489158487982889101518173192903990326285290364141711510833284487040353845215868431138098207832022162055014840526274458201014208452619207687510362426573917001320742648124423030495991613645685148400830662706872362960561448824686772917898148876266816490381614551272582364232202431706437963310463604611847776401859717998248930211500092246112357721385705168243611601364913306888826905509162689225712062178791146193837087891129745829071559245829509191076343363250164067807520180807182958813416472286293167222521462803343919867734602937685601176044581073063634704647898070297028187782598658588138639364767927340711889407767115789144251566181194166874567648187196851594046539008548146843060648916367149142088546517660715561675973229159746742421002102338393757106576555376051456556941845210925546614316956631533321946132192788729571142546965126999189337344056397500938911825367316270909657368220404332217795182680933390749488148332274948780639849638351071990672217962216041786586177077049090057190715563559024185231029384051040965623288861143984863321807993624061398098141634550644209281332294835134083176455257125839673377851763453537163622695378051388122144656270991415616321133480065839542662823718185348265350126122922308958022607810839974247998559475211081727010080366191820626965736192604126755642032551134609356560331422139181811444103981520122220795681130373965600215120637036485134221339807842130598998347705548017812573276893445319587281096402423323392426256771106929960458789438499346409027311276586342452482223226733636703218117204512028230103485744603302652710349338950886655915474537172930330569996430212339671378589051822952014474524369415293041692060025627392735576199920976554330350752986910199308425426867170615801851222393759379142665746509963971738477398739002019544889787450447421893821511204238371651665410137890100087735391787273596541934604207060635540448998982016991760707215988819988648652758580478317221575074825651369354756938451535542706119367924738563131108286507242428375663275526604792183708941581012907815090010118800853045249408371073196645599564615993568501200527917365351772533130557045100621107299215913398737777348139861550088202438723474646430155900818632646911492741964726936309013765018102143341376808440419625839797729655083501357328477528669069857972583239139831882187712545114376482526352705605052935626420086427734588566141245952149161098064820086223401900319252192825178005890915812400530980689715548997656612605682769379588789614938003653819283598086221929952569850634624444540306010818752177898938220736069751974543289950739276098081731300105785114953713961082366167823314363813178471582514440135983949254431694744731191635041546041586695451479499601192737832237252558068090313800410217058789997535696240601800556117900451459325477056816251864935605239514944422104966281900958609754271508560440090496981456298240676559139362753041676833578848768860770402535598308014117390512716905898326105309617426582495709823834937416192017623793242213828602934570158666710195646942555328494362736567458351427232874614478176773196231988602406053505022472998756903802419502809821668745783652976375246308802653498258581901003735380651165496133152997488522707970506191362416370480340592210158628016733037780379703518045223471847166338743544468838087693895082349343099035121546021053091991820311499622569808838866516089957474918800651410533747076541611462715937881047535397983434379871261747858235426985040697159450094311780560527199996805212547204542654088297664553117253306440951858656122742598755384095076265190706735167689082283395001857015065843531130283630479839007553416539494126546263614396069550565832760354489890359209476893822417584134776826384684047846282113769035791253175797202940151290508008101450367756115135705679416043274853120021864223087375488300113499699547247227353347807391883575093710848283016745513848117491222318473937836032302131328013034413629639035430184286353680286800245445221523143906127042325690598804830079271192333877536716620932669541894246488236088505235387843122235202823784302309130304562530934282663571772887935219441886781684195950186511198277680781397428103043279017473685281616530280170891100126236573761467101040620681658296221434365944901598996717483464325013696475930508229379205137303863269140084021110722047348743557715779592558237856442250793166767811765458601026245640046303268380917050439295327879095721552557905806978133557394513269862812146126871153417018284787401470736809925453775186738925994837190490474857004746759983076811206615614052745542996072996439088135909070694719377379168124202969176130502989589828597752285159008963194045400560358068967394483987425795133249459806813596779209385454846102954787084714345537124375366220167590353406835930067326510391979968520779123438746212781809599673961781522624571859212996886501742613599134200711092262376176405770066985758583592446420532594307513641571929523821396360992013756159751712485259453890468131069522040442574949497203362352297869655348108778408930934381981152616717062048142955286750562631869599314500195811054433162388676478625440327409364250115785255262924784540149588394911602610816357890569938790314506963133435090762512238971936597805641256947947036303894742984920455596608543112587081218933405965815444240300705522677014329905944754361809174900434903727525950886671721625609993364521228356045243651117203001772767200549079364711239583199567288803117037726451882723234035328537098973655814136320706033937406889036553672129978220362411169972129808246586018072617727247062117184493611686103278581735775477526753667598459653965137975399821512278223326559406718962042259016969297428255174828100619016707794413507694362134121711861655538886387884602587207914908509053851745981855676207838597262516637399900657198201634937715984124194808740004958948999928818422800813101661949243140190184118704628175898720511652855289168472201539598804024028182477052122349599950734780167617042311212034952552813924009025545260920530895105516935760833859426863096065475143832187134887426077384388282663838330900874004021435520253477088296231526545338549643866568481184356183104823970562946248860031767693902595457111762350507145302620013049906128150071506361226968911075969003357872819034214632697981324654944494047585658214628733489822690072402976642156828546705772902056360372545011390574613453395935009805357253522205159568809534405117623619059196689378012782100826256986898322302031182005181467759699714781937956372818988270520214216289086027324349326608825842831505278137045316523651820082239081577013385715160102331866066478170145401087989939341805157781700493047085187309111799737137232244968088679881182620228777348058780438936526406485059390969646187802133138959619972315710891390246638601288284473120575160032849191564949693796436970099769394248005576118938177192582207320995480019981903597670566486491723788516045034795820018787900237542988167593240408261106914465675739871012876445596622072952948818889415338293513716615128848637358255188550397814216532589137416065277280973042128115682294301211704506771397495007789079007710973212306941762329433109644315686142481776173277054205909395181883014879860849757388009006087227323800421469020896803378393857446344085360168709469935669006289999255072729634011954935362738701513393026030537876062682730735840286755626858161975665773389827881823764708469458723770064509276919680309817361591107651117106018602181607637817752640812655289826068579361288834504934272848147377286434058446121076773213118810778285266930484032729711866601077073302741378649685441113149675180175899921751854348005049207883681029287504440969851296557957731537188094225845702781779121324134913014312106488024579005156649672101180657652554962735247060846252031021703746936108877025832863576824758178173346574798604299962395877788793077389708618839517499161307872585467403087460504053305082553548514941346590582606550107932846575483359844803089315911246555423155496685514517442112436793527482606450461564464591314733995663957293253569481100220970840272320652168362382355040467887696408774339796893250530393023487383576255822269808169217483652812973052881809545563287110047272490245616750832258563359209566210478100126400135436203455076986061605249853323928275057555348224145994022671296567092810969236117679728764239263239194137428922547680690984881996459798875794734964039434580820384385111174428357290527147569366147357097634644430071861501637717395545687908873854576600017816285730171237471372611708882450670868038003877752085520456999129305468516178409441089212053439321495512150872523375796420999652055620214062000366729673541317625471861683436502199697393567438151917962527735375071819823345186304601415331333110261506790618409966116455635579787953467478021516178891428501607094766271230539019182292338226890382981712604822549454470193323792386866117708771824920753993053506044777972377729051266584337099030569357258510282667567008513094048295844385026032026319326969234619170312567632580179712445293332626893317354984001292160170801323419087825149463105233277831142153327528757066619518207226407787377134435581422857622815099455331154693616041415321409516718082318641031625488973027600065732962756945663814352155936107838353361380612061743756473473773835568944172029985440215043643254684500020075595623217923104124089809681936247775911817763589171827258112709755033203077610640485338808236040707082875651943642644644577750054342510895274675814294365423430440168855540483164331724231993307887585437775637289557767442990964238866737421577100473221866467388838073214221568830725298381426688406855671720089420113938409916107839706037390378010915156428890640939178231958782330308160492780321282371097151017724418508492481528327688328797009229372314588015346682578971729838756984534794117795868489753312344331145809214902515742223745073752273641657677180365734748055251787903654571399097129027677379113267784242554383773556581613763264999937319191338194084121831499529853545425295850955192299906639952387594290346827343362658515087767569757398115563253636506119319486052579082891668036110790167455386901233709122829739347633918457993669084236833158903949445600097028170470119498675219746878505659205808618963510157972417721033395311124505627917460893074194160511354161104255655109282687030880531388528887125851695287853481573185268821452038685908900334322145390914476140110603611236814709434435392937480766708001913845249948512893543497519708471817460060638574532124437962917320317099159845015332178844954782402107756691770878399048373475117685499950135767208157749036221529647447820694576619757203484967760140705083308982907707805006212442353051195596274863312129555632352823384171358338324891715553704076660761122072656068304465668100604017600042533287101620847846791494987727460625713415575369732809264156135572182089418589269419247663788902355907980150893704100090905865351514433034660368694986951249102965419761114722677772847049991411805781100506100939636415648130921009991036423025190400403321688349905423115458865668361313151168288364172294178468981009150436524690811216221796732556950580347005120022223738560174316383767675445548413942078369283848046439033785877080389718960221921488259797445378606345376351693275325912508227994935153580174943482230812978349703819197795786330609792377426426761947189251208101581549754588303429595303431412417206987444437174758013574400513967967069369213083186050396875268117379262185863196724771745813127515248096737171380291033837611297231426385611369842766480474043519886918653978693206523941603373577999364077637169777054851932225033281366003689783404966337101771708919644666140730056049674403624074298665877959009369910950636295975601589780827242806860388965651422373653110594170232551580093230943707791635784843245588023331057433522137186796325391833198738544895536370328321962499641414757223636505216753586288862210658654964899233954879383946185744987387476631289818241672928686254020254987264690473695576964541701781441390620948132077491549348184224922691173004966493611518486294752138166221374782385443482804842138844346742944264640690819742206074615347835558936129608667405776402420493996638601597275492011860209250393010782400587608639920612981321433575267230189236685336978663058528372786249913845837341651144713895464461795382386319718834930141355568227547352365379923233342227586194335757443048320328868976082422814049924028456413550249265898787825252280341023813435475011852732978923176205607188890031716723063468224245849524586851989845627927343204458275311316484536713165336007446036659712887443636402158438871118920170590613824026414486097462145209700789407179685193569406555603840471195973811730536607469730371548172060875252066657291724339412015215422796148773872268343587397902509509246731756431648836600480673001658391662101321004707830341266508335660596053605755684786352489503485652759363315484805509780826109161639199465399040406990902988129147420711655190592647569161479808187368552426735100086277034833455725775940876958990961978199793220084650530731857176741636592410835700196339585035132479172834989258657772380827905236872980679731216207978890344084717641247445331641680642993717310843943700284170668117458006602670643817884930142381652194192420969017026181894473108714708763680090176593442030754712717075800394628531608642469409197700147723969541864110617578522874152905825619976560158492425348623035946129689007281713070072412982582855782511350393755373511275302732505326514464695087150433763512746334830068431871209257055963550753224246964805953148358425501536628256510931661750503914140480753759074938394889428736857734600905960829539140874742943823252213251723426347885234861248284954950391946682228945693334705818689186902958940160007658945429212135127116126915324123651073523842170024544580253365068249951319027571419038451855634929950252881179493386464856945874336860986673241790489280359250538917524200472092006720813812009929316477540265832060427302427213390484586392650315367673317164470730139783560103211590049446903412666518028095420816900744589279712502709540280093619140598888485992498563913178229670622955406990365675006605834128253104106239866131776021169605633230725465713365731059086158583790397638343590074396390196674497339030864622483934532285783154217979014561462921474009352968941763109014172897175009518606660237714781754047310169728361579054522741961215437987245094394729016383872940033836522744182359710560227624469714881336636762284968973391167341079743036153773165339510453392807414208478493885633295487674123104902274358849485718641268834897684419029731843962975551829384847750161286685911332004608608600455635462807206884300327688296987901762676516268792361453216662561627026097375786532391403572414567988030107662994217955205354368984217252855804770083659933652762789042961751831258932695268422690286907257855210503717235478685925662927129847585647790357097155091286935194357162583917734152023677945516511501801813987234191996053215246115504673562210004177959438915158610836971613763815825327805418855169838285128820180489898818133231467299863631264049784452535229066515997222518675288436508949190301290255486738953030582470469499797341171572699121939624405821801680878842448656353557834651789039653733959997924403452519476193150678867792324810845540078495180747713202192033665558687790346512133294240789276655793128056637318173836272414739995183444860552379618838397388731535283563891441028761008460545138140616724788946645264702789998491871321798712961007649788836420407385176978849453647316909086494342348549932159440210334018704984843911555681493965237101399997542528882616919890157852364454597236590371591589551263678721806671952699049936915671119008878339307404439340872928465608110483992347885218445536159739582117220884681104481579462040404557584642683101003029923633551996282018323967174724471061711726038574391253736601256910686013204953192910477779178165774942852405570124159024478892484576699713234152872518348577410729155923969374911041181160321659122126511139495348013121106715044821692634895278059297269018268768118624845530176824908045920666744001856386037098891525263902579869794550988434857071113507632394537593577038451830218047184128101347199119455161541829790090125208700947977633367497638650655498638735963014239688356106408362761263148441966922521362178849987558531283315043913635341991622685696792833708558752319714776681777372661787780489244043675190723297432064718824891348409768373501848542170166280155271573701739937825164643978372592665355913639099836995111317903187947940908303930157312417613222647164937202043390829308837032759649765521910509305568583658149342088604371334114972372484120258710809790116474121363978727968942727079888884584698007873293606921599784639535739234280230454212336630498827171013903649168674658270502469949591060831379333967473172945647035561710814214153252509165236799620653827013487920094447789887135145954575007536939231646500680513151869397351851664913665880453888065916842613905699003893909644143589928708663504972421213652407111613273630695038812066800785110389700918883731266732221258802108322463631483101339047545808384522175850965481081235125416576270293504201365621555630281985485907404761428538532293041376278574586262684398559747597568962855465071254122419120039213509762909225268668861569398227342518470301804378522156124433024881128057887943850324241205359767734353409752680517076236656646017369422690143827325043925209312420535089480688220750440187489352899236305914272706138369120812721745096273395550953025486490962736174871526612171864460615842935818184407141121933904455904557111476906419759569673243613913517701296670636621503891946104388543813760551593278137798734974662597089783248319417849512329063431242185707507080586790754771972854950470018045034279215705115341631376013892206373684378250364188225521387113399381095888572499256276572270870336378252521304931642071840579694606964446311815037775239715053717913474723475065186907163821022435054639134540092682336096887062020394151628945602769045561507005842039134747444625117393372258472235630081404258837508519531200556712521968328892589768136543471217078950911934981712670516598636163205717251483472281812472080379034624275124809778459494505849284453804975699046560991011867223314399823094662384833453219435192516382357511574443551324430629764385525261309814591466277654664011750561292162443120656778696902168639791025931507328380597081293124166093833980654393973971593066301452905991998956947449656949011515853504255808468899072725114244749224748021149515402521347655167124791883309801048555227050385970985596836705601408472543825616476804671294662410083028120773734253068358607298562158178357805997946875066860847446376359939252056090111287041664102457631282059869245728066323027384412414403885431602575396280308227898949541057125270257064426112225202453090177714270729467440849957735288387113039829797584280800535575680623197785550145253823601735024540546783808308932564202820980530340364551375445497527614568836317477552683161318574744219087627165529518836743003912281793834781167667744293189487877390778300945862512453322942546330845334516371691393932314789634182346276677099259609386490755171943325182657458616284984742231774448803203236755022387467075731769714135045945738170026984823499603492190677457271181883152836360143706351145753776474614763290665302037337143998682922942154311142028218128198260410627066211017414995106185699284099963353623619659383576987278232908785543434374244476861924608270652142273074841328865690857635145354517502866056403141120963872291062391154999365761696645236186418461805163277386441134153642429235712195032052602601880181608744830584981942910189341515706224866019265165690599476165970947547830369562512418950946844326757161735474809353897318106041417418504849891254225818353102604733501750506367278782650338625495756134440872903005640914969833610723503484114952231829343623308626218324466110697847880429762630615121981133315526612900991408018031842324294141769201871346665636087375782162060185386323419437200469146199741257670114228894194139921343528172437219542324351361396160529976971212601357273034819884913379242493058731519236754034459271413988954341515777371983527576224581795287713880184732169883285454093709790074474531967508381065447735606255263174565536931216117214853590879849844613124060485234460173086511042467366307666347929878776191339757837060912551939141258909545826397297335848666439803331758545173749497581745346731077919127940581177619828882724069542412883412580129729367677203259112568651569297145731640911990625638515201348909366232649352883271483843841863082304148182395860840101172964017098158260886684435081909470008789522341303726857216198109341362928364005166226954434911456263609766676798675056473824418141912371389250894105842768391124814550306177159070901321240632563915801053097761263978266587942718201155298868552802942704380622262097469162996774620474878809381131590904867487376077703194677820161857161474908567861395684898160406912290514965460368103254226975658947258330069202708829624412400217862380770482177773588501948511342505100542137272275303832123521853587630356802802015476992566678748158192342919715822277245137774215548116262044144080832305379408541113883674963782529804123720025085449017726889883987366759460265988180312807225787598464944386729339522210255773190761771541703099069380941802280313626729846133365370801339845429551233832201787256935772140491353143695569173068466607559853342643572940077661141710801512222263530564110436061776294258836490437465315196197847882239423990329973378059836796909282097899514394473239457666860192492987011565843040001974076534988947486296627173005483503269353071615474421639213973436415787988288615078903565658931283948703859712793215541059332486299392480487845456613038010814158997155609472155903002212521313937378031889886147409889665763863732078877297113291348000646600846300478292895505148080447197169874371045506402423245387143607254181487240320921429882965536696384395100897232570036685598929773618118875800825615621196822245222699022576299599907257732152394087863707642097370478241922120289821492240207429962043505290266080304812057673366370484615293663816982189526950586732799506611808932178091498374120994401027088639158672977919466509051223845036984661334953717181762785440125226859381437510187830509356547527368976489046009095086410371382462738530891233890161188523807982177137742541048084766397197199229930150601650092049013161709061444231517670829766431496517605114026596808009107503241751605786188006072714095812830318514986680033338019219919821848220293359956602638738624783055676796266549672083651538894159798953408638928539392309286600309815373437164606098330991081991542662406137933043305454905131038971299453161925407661272228111836428323455949372521468393285025499517191382314675521669578497895308900407354375557624455567655019535294665719717308378990244673648325471752983564565089908770231180613576582296589731991061478823786673636273352713189616213374145907326873063019200596785550620606593534921484858431951223916549083902620246357459964782642342638171038722865242354988330812404203840203170466525572188509631738603906174773889295891382734942634561369047128276559868536964915512732170710275894948409987022701867981771136704334612902756459523034306203847021743230653668220918974967797618389026258261183718840876892263149539536460761307946734457337111721308588898329946301011280326834407192124567134227710508820864073198844521875340902996169641314847848606000017489108759111252004953821511390485944917779218114405232843974450195057005789448915886359402369880757792702618768146681830662975973241832216913876884437746510663662905691184131046117262116972458659022929701293755272698854726899839484644281128602741001867111777750136485914410088312117046387696624460553945010529268739079824505863060165060274561589824501454197788273503360894346043922716713292673859799619516339871915440909975747402114030487613919886782291540285716517770277742138184600178950557308460220069496741829411321486886547266217985663202420591289189950484144188364502228988071765002206019574836561151470258187188332964248458850198375664494241628855308922865995480149843893089075061009065149240932876489044352496890253391505898429619351514143301171650105128781670637698582960268095859389012920431821389746162314850955856555160601514171895902725382672710973464675595180236730409584043651183461637009566432754450655740835879163075372712182812558805182796332602598460599764915308756144273342052854093564434538461401797105050169855630747581692346808121644225364173546441346436812450565456106023825231613106451482691119251497106446002825165277046545600108435146120027147085731060707212095218213612823623754370616275309587447592518163384216197137448787397308916635666637655664112872293055973220972733972076218373690666569014911814768759109964795944541971697737232878351831225857346419720786634871033747145270668059810197259764541125791271701928394923373089948337118244585158977022186439907504956852990225572262390581459629000677943592075510933203645658695171283760974480758048508091913056515408315247610379845811949479393644956776922204516079641221296682435362036752495046558639003025995383518129516284411060786928054421824257055183464723346822991641701293714436112822346787724002555026081664025129296137130296086587664727152833896736812067237660876935468989388789255062550215858634165389475109518078977762893243761743229134376217080801630536512169608176610063671596924213428223017151853486054098208451245100608487881547915599679198279024901468958308004591978908530661364705896464548537915528263915349794616851238085275759564716784517518784856698502713614754363721781053476680755152690293335701884369276346369544919246307739476115639758864120037854672877374400962332102787290547939141893438428224599243077608074612578123196534944993345853472418714050085865507205815800660455947216336064270946203797661711840527971458903696322310468763334885209039001557635886325977705973387663094112364384817444531084199052018195451362421445113227639801757195660575130115419608263886714192364046703531186388305848822168619581177535041352581125117874438557363469593027404118646654102548392631911671398642840977967323184077081487869045590285810992692369152277320512159742967315439274071784067296654268457940254308836605788347536175223705984678679734388243616869562006700274302265593896577316996213104305967519644390359374285479520086935518261351038693510635556585522868138421512907410760182935929121938003036010158474045407206982777063473626402555130227276646070676018226192837551507067126595513776346851547376585971058452473799750662061845634019595652624324593046217226774631342117279920510020534000066817404515689874004375850959938574728024904530592409430414570815781485563232476812566968289720078834029258400084898680066643380389904979255983291935641460057763488805558556672345015895105278758499942498652766209017862369955544963256026498775071593584613393819012392463920488141725851901863301852595595727963130846671933597832978621276273788250769495344699110713525226572026535177270433287700750438742555792811360262839473237913736336370059704503164084606843702508682776753970973391137375685619863838148617845158147082453204119438117461718483253917575797927085354676430582017208221445940519160641410772215439443100735654370719086943637344119843304838810496128414272965596833092133210696430222209931325833880063175349055856592329080546893065259761577938468589445027595855592696421674487340535097081655783032624133688255573172038897294744510771811277189550450297372017881035692428577002937040742032746035496890792713030146310181880856131364357005219458205450239032213776146560278223801455916129026514212009245396406578331506980171876430380985108928033515355899943372209023313979572883984969197934563274752666676414320584669039298575615514130025287829912389619226479000793473626566859986910740002266380212808066414185322897728323734961271044468733795430253759047732768220108288698469997567791337387426940015144746898185394587357239451053543751037841845327661351395190588418905539827062714057894524313420424595468932568203137124732797572600845480456556875496362678299843710938474866260395183486863527579920558937354373125635140742250432956934156978714050337703747979791675250215097801930602874799330281496501383163601782106471785760219809367949087641231788789881712628063707999058661015098743546767600147601233089506583558906828666455677913742268638165029082742737334903775539702815577873619839342068403527778875022545562903694858488813000331953440058563434384385717370412470714648579213071748651859892754559369723048285211777923227196806447494872298268959664503356596074066442963346813760202928543283419575653814953854171364797767128874685348761624855454589707233272295375055531818384475667580538265714984361384723628236979851798704994368008981702799563106759083784699179512419690393692532385799578676332669886547032827323115814444741541423067775191584480507208786030143707118513475878534210159952587473531625409937702539935483551028508445527415359780462641306479034181745071607155744149385036378626231143690270918239039293767932459254112636745203284966582774968946719549234499557574290121204242974587945992287675417855640609070023118969524851416145560441753620399593915499840441562431043778012562881321213482151470687605684234652554687373357714005056977825145713289555357338862767086498712516166463464961297965750104637126200605527206359477313774104731164373034669342136662070259959932648818915813248384941708021501118658687043609725438419435487049660150394117217413933233342832108876819216697695761419557314079717869123173635853010567769855301194071746491530759879801543849075584827698327861171419694015050870791923914967451754314424082167645058170585001489927084851501206215130274119885793429736486584282665856622922756050382849535053488797478484784049216062207364854149948096357853463297555317685975142257730831561443815478776413923063752899586410101367958362609001105445728184844734731227448866585879923625108462829348837445368944447885282966251212741080165350458561638730756474102958458866819908381645569528149743363652897509276994318939974578506684239443898658455659036234726656854013335561022490296741853661538863487510971779646972167542896678289877183082610266563370108214789078948675389117845810404456071853065772220467712922583975261355186658064646294391806127095169126768915768198832760619848403905144112760289867401108077804620126080847246459871449243771812542077078944214218067749357320085533721153785955915666231045731085768601878282472684892051424701353040908724254709957986372173886707308494217632296652783086538053089130654344035352196187320653979979149021208027316236764264329210534527863429090540710525044177059835309009464171155605982912447836490002228327399937319368628032392356300628014712708281276027288072806493249952444607345876845875807043476656674834316604409761569508141042136126101047732201473297975383687220703102000688729358468600121682252097032712331860230201801989383554179495606704043828590132907376717387359693167677367617759662149157952966587117111470995098670322005963288603096576488205794990259229577016626894298481084607792103112548411985790723100726735021696477802630208912750063263733848582030262955611787013810235257560637923705474507223512195112555444443609685336082371727815950210122942440048011058488784218301426394782148566829524043764925045848014897029772792316354263800077940083827329272374252036242780503295612932495744448989272198168343083907878306638252702013129646757729494298704237632847945668447502146163691027063274308060756833552798566557967616767706920529197082282840704740524710624322574162684400308288477771620423811526471770248994428488159249003587746460379545959792567518629870229325858797134936893344315264925786178502117036873120063331336661054043640022214943800015967364830253852997745054342727928014865182654449700760302793941244267319113585010191537008607263290940328320686568844146917743789009764185449184686211023602971729856636200945422370010284613536750956532931637881351297005824446192462082025630391006023517866894930404907088196074507150982272747398987671057153587919326578348683313806177877145786449550600700164969368075577745749287617175013181777811746591303455659093457632469168159513844672757483812896151829227723357816699731098455983897148900558240295680345934737048555355545805045183654776404622520264110837782379000733743069435090393610816326094389447659678915868710998651750015234481303771225830596050820716881652566115323118683095668120047931229654444343103744045294893373368553583101722169842821785603304079806547741900351419547733518835100945872297476020660546308372654019556743238699574983020286966776821670208063962077061097824906973003438659981544364094909329254764146261523340753190650912100296473244499413659558669026798098830142185373080256838395840311357824688610938652453668205017744568104854585939371992877162506408861201127770773660036662947835362168781505086830335087075199789866625878644374713631351346089363895775610895248206669741431657619713156392872760394105521842693284239574835734005887160791647912787115321457947415222638710161771749219482245826141117434980212989915642273328157006672325708278728846110733435210525682897783506865377813186365624417183987843584704116678975263130631621258511573843133810379347595731384329081607020576424107049829394606983221906649977784468061468494923653844717033008640667877980276463461491367392310692383915995953836213461285925824602823969741668675031239226489131870981825314219398489395561915393121568029424023661334202289623760321987064229678522219056372072890792419128904926556617739860743607279736758546276729076815962683129126042128079959328677089096827097260339496071134074238356695156693393313283591056897969318557754276102246006577295799153882095451440186728216719292348296472422949624052174589758589981382415577329658446492487211088078694816495246521247489093576216018248392613202108382100566380054482276555281884204150866887747126814560845479813904102702045993854824750702149938531200079450466291286632260531294875783161062892069292885005406037558205824798429686108945877166510577972682975020742447548515398799131833386752430412046960253155930781173187987361388080905052780112797708813360198101099338329856302105009338516498273137401972182238586157069350178757692638503332082148814513483481091586700244261177853696327594787917338566106111498891952869428361414978908723474337667349309154092146902987181630529689130807021975982054058286551919622797397142210516665272908738286329028086574770411620332467999952425566918976666656464255073243707294907486687161830650836148008124336454493239264584929717095704335576893817673596549329089294963642992002628927366721810624971025245798417078610268368484560955454317787907191171980080519853937254785478330781840377622960803660608877263344024962628315211289853542903608399738366332688277010322134161244646945991250216514356703566618442557188473708775108211478690243887049285920052253134180300498239155413152531089134935004370913650555555299213669353357594898547161195584783168820010704540229302114161276568172220377752788927429500715464174547721504298935996032466962094651090165754757901406492020783931051917069958617579015539858243307352019721008296596644059987566773822597230364069542211347304197953518226800369228212580851803751633462025682630782134134398830622020543764138247642969402418550049571705699913731611096987160757185022629490407035796412291961433590046732686619806192707830404653442777554758589696591508993182364748217464203667946781372947322215931490275247106481828245983970981281488597886935364991274261581317469660902388927749264709613054880902984191547945614485507455454481369693765780641777658738476005004895159739050523135909527002657727738552150125500097663773439206569298955405228615178448654249901631365508554156155113637106590092127072718676727267830726241702127792523735519730815021114967916346835538413361012817670854657807112234862198284837536584477089942487054519234554860233097600808607554457105978038749219271104663734425323028268035239406025086280990866842303576298761348097890352368828553120277387520502183904554151182947670815532715155945658251261910979184331280519328528039558119141155446173144964928628698753300805936984503485089158075180703651660527126251365269736722843601235198362593537254102308727846167767478521211715211253571719076149031988120722053892122218031933703450416672439623904667955409029177477506320653312201989936232341925166758595707201098416783019488998467488087516663457373479826641691805500663356163506058196800108738727211445622870185506710552464261820700411322615787235667424796505973416724203941049135225394272396872895511159248411100513587520568655267205375257803625233076216582811665463913535731583070905035141461440294897154999882869854687888434804736594135253743490248019429722218139883528965839966340963307615331409171610218220949056756093231665590301846015369122497650181283205455959628522213557284816477656506725978261923680199824558296660683530135653626940655084166260539611003703734657690293705038597629490561946137832377955153407899583397223257863809198777644666780320742689362396569523907488463155308331185060672198023341168130813132383458937431011809023672864515847374435611291723041937469675724970894272133261803327457530631366027068722861989831563631737062414728495997607385056618266554267613442457888627556743880736330892110966087798392380680268772433954543634196264031504849542186981151419248725825399799916126877636117137539601101659499536453063021986916280268280387735769017783640410345522903628791280943013128656237385125838237021987167535899493325599917251470556668248907543920777200419174183434702274795455920848850724237355750973502314422156232216872070961795426733898782179839626551840723918541294553014977864079488846694494721326000173682114798541974195046178776303141206560208565417558311838730642453863005137074546622276751278810943687001655010478800784477570486951414132809005832096470358274672863769611366852277147476540374874948394765113601207820511442547938453730278885746627332383731231442928453008933035417405305185137508586532202172908905718460474211763701301661723657014724946768377464631747293179819778507171975710320636699095270330777875823361305967481125785587952129248299475882816352753455066344163482638192779952440637816453110104692231085395021064810081324979222652277082005849464458190344864833104815455047772564454288604601268280022358868091714181103523807118241486797610446535551667402788876831788054799700680772172653574396325205278864985953007257528567576604820373633997516656239681811349546225934780373826115606489998479265058727633164687955892769171084292296866601957521380868602788712959902206702182658862293269695177236967093127818410270482650651955332373170504481559709070406697327724397581750898428916484837727744876028610631602103329615439417350001758344350846670200221994864311699574531477783859839781663293467793149179810975889571349797378450973000556898456963612242759790833291959577860800706112632637704409247282392204255376659461799260241904290232183270497399311321071644672826564433515746748735312303255152273824104005093895214337374997550395297735282957199206035609376530083533508629200533572558184470647348530087882992881831264959814891516435079367036192327687161399865492505532423293416663518751199364023027418285208426831471352921200501464605528404581812572457610040175158476679931264500971882147002266504743149045717912641068884116910816656074002899919710645542873614822136042540007585611526663766607919287332481028968383565179069799825992949002869498755084681686514053899595493383996977417606052223357389349602641351736710546766612412542830775982736592674534087919265015291936276507333029198364356839736743830036414488724660188785747884922357480819280704324419593172119594832316468810490484038244286900420308647784913421463770076562230656854185584818938309432604457685021480142589552368451900335580973391413001454619260939041243779717733372712845860058412068337785044606659151667398077953603544464063034060925312073537449013895420342823917705497972994014672075080030891802875176313688234037712876649171732632566842389086284281259763293308066858232850319272436712285291115988706630316031458066813930929138136896157880193643492853577394757791950418579423426146315660355372659479272010504546245643451765348903366634538377072284164210396114700470560753042832094988929283908169537266586453427290558064113607256961356783903063475266568486942136185545576168738863665319202932036630071046698747595220500958774170776238870959626318130902251691507281550984487477057615792034695251555526261923118933035784582794852449653445136068200524980913051892975657366984791066840908492674932070193894917002739325631194232577898209710053970446741197830808303004822703969004124604524473513418267367713388046685205472977362802690476226938987901045445841251850256307524322316245265035045516486124899984234917511405609877279853493703089768664537252538815848463384297957467067718686159908835682877687542098291130816011584744625126305513131352423934513239676568653743998702057307029358088471222448135618438383077572839003690595606277454593073702967936179305389314381465006582434511529970773139467679402998433939040892664815632879474245581273387479778802708652054039729461756440590980580035371117030838509454375721739228687955522069312540537181384803724637368895606252696528608713333809674067447778332655927505342785008766636934605671824698280386061370252658128021834925630366445361808331656032880733574880405474384795711284920874268964980920479067225568504670735019062760146559497756835410835929199586408397278880416683867293298943955422775738424413284935751518620954885805138102081050797590512242000666902131056105920446686549361082999347039401521016894411260588826616487023239127847458660489754376808361960434674044621124328264549856546977509086196474190719063662420516296582920219628163475047936711915840574846634500148573532187897110604272299076453877912928072184043729038186083257973399857812707909287237229229202069282050576455612294724043479074740635561257296265081201887626155412496076109178724458341774310283175648561853014563802249705484130270543818819070112671660872356095316381533106526528768082820313896623618840399812858786732242606720096510924309154712742962337288832424929156070840619941204973052889868216289510147907404597186938917626348628588908812828526627046870078424060387283194321692489748113608171403446044689674436688954543773823911543267370357040172499469906242187465849799484516678035758058578381620426125119255051705681194497292557528850760623990956351030508741468796196863793837698344127647585425960180340104278808503112086019958998449413702883751532173255426051314166701213320210659394399460073731127223286556295042125208942142626613853843722496924926697954933060603233484012438715220364264805716643740621532293623249043064338345694495931048384435214467151109508700817768034319429908809546112340661973936391971169222125166898459576619391648192347912625493118857568049862179237015437576038008854747890258935143071573435195028567572688480844817886047979187380692772185053233847270857289672086539231899088902111393331609804079326844500277823819367778307957328356312404820611440473678384720249758628299975685669171596088981686620345585837419212881748237767264542345525225300589259918962572914623178407314077399183101552266277040760748187192475511342368390290121521332963517920132828475322594927025687547041107317793534154664327965796859189132404824210867349769260173996663940099049200551647969587795065990940206693862597474907539674601574541813761275276539449169993780680621634004542057303629595526875993119981170520378349809527337807571894610819965722901653600864670305651391551684448933551297754334188700467051439526014524896218941720569810885701218129213863429600083393543673599374994372541923282176275570777796293446856408873259751467972787706031388537291319576637700723298209728314040564564006683666690964648243034272854261539456347905916543483252402703491445111474443932296839132419974500565609446086422610049564588147367263803457086366377081734610304461193207483941169453713020848215317852095524233788078373535780190388382173676738088658871267635861912584758550158555725040651343198869722395019736767886556530058160365727825555889252163545511332207649738800967023971961151675929345006270035986548157052263901003897524631730608115141580753656253464713120416862752897711611764906801060237331418688461543139807659924838512054776749330949526060658019123573028621102165300095828622291261836479350992083582592026851465258695330770375788120523739873109006141579235757430402215527619439726455649997200825374497985315523439530629738413336508067635675424815526721214307718293470526344863944939572851743442829701747841387419450117971235210715989503693712106602842069673930106840214702847642660246466085897003362866406036319542651296212121610447825383948871704379729566240382578380292327804933354189044004134040022629428848868657643738836775931706471907814912678704655833471837008260763051442573042567227702360842390776691335135169335184544729075023675261528342832775881234416246827545691093332033440672253362815774743362864888863829014120476088178971278670066218613931682113044398384700877062396676427306308016004585686629746670820008346147129698660335174675443673876744806984276759746295723265835135555702309809673616214007576172301570074765195314669030306048034206986625441893294576623915903872510871645943050647557907006319694365194174850575805215644432146768538577827784402956217333844626248042384863179137893554409996570797150334211122213109445433052267655040903051909517333682694406201089747761895983284527040790462402490118182060771135160518390496638436382261768080321448440331672888307332039389989587644474597601477589437664475674220492380954257546999409758611013378792924834911618325744913505067530279414349928209092947060005437151167840021233351045961606835441001069791379508665300407503776692635023685026742132929137365959443313940457680949850743077406974348054666169410778030613026495315669044028641878680561013535733340430189470430596735078492860361324623312190403115019649738225374140443214085107633198820818164865804023539312366864327969217790614242908647738591945755619216226658749042656820347395266557619353481532471512877120014508649522063522800275561762662697268988174422951045136089074736877333904540850185106895297076927575806283239493498667602914915742654427755298700774719034569396988188333214587485617496409210704615509999188296190674925058560249466334298278935202858961350304300430761376676351004432154745674293729914033600039566040321009059297822076185591088208341434117861108970441050360897526364879635274523007007398492464153584716125859407631243624144586038981729076602293526918273050420920101143511983036198995980549984934179079439396845469786501401974183138925625768905306424372011353385684227268888836045531704982076866613261166747284483134197944675917914047036037647771569266872622091070063252075313139334452690289774079284686632573759054208833503787740035036646361079639211202554127025085983024571752181432754279517221673366005277921435702055598251239194299448178708903340947294543137357490273535843413862532840866976360655831023581388203675540079893385010788108110457736435384689167371570739680532480953525375734180966225580450450412214156126522320708622413233388752177753463964071496243925185194908932784817812186423166065674350951724949983214307380020414161318601221903968242878966022098890494465355114239074572480396810078547518008240822472363885023874409995374242399463208160748287531446641050306485963852514225467653530344565357470731961416407831544806975179956831441960216446340701717536060818144034944100478927554928167711195591118302377088037904756498298282609735295746401847398960405253870014570011334035513394479553947484578671869494123821956380105060030200697401672905201037255719372936327597351981722274446178521493189838130512969724380610069865503976752546027789810663604447869372649326857211114946905984494470100933039431094351183749112674290125673612792130734675487109403387933720401283488784715131619696970203157231737664440729942522910767758828151103546037956044622036698571233941507145186243698488449545489328226752269213896118529196400245777900620059884237167953931293318758563385734772792935972017825496282553409280521437446702964762255835493849379920068663042471645579030720541278633513898875731723911208377454557678223627301935684036497979208541053215192448934527553399894440264510165284273045962002613865402354866714042224287439096024483864435284987782380797206619765085406738600723753082841761836009715437196730162995329978607197395160573361992000066183672307370517903589927585299402347590104742005662706693000210022295847130797088881887269608676540524136975506499550635310014464354413583490524420159521705432271727253052139540904867726626073690674093176853630348747105850608251140473090571511943178975888822896844160791470057559034132556515814706732668154324801557442051947000115849174553707565690655973339138963099289560321482680652681801662652751008370433803528606960606196484773391095998788690031017249412987038703512004183264962374249661276773969492385748307145175502233494733587933424812314453621227360342706817241377272112456393972994610795389128173202357503730776727356380169311881271261696680026596286959019172503455003148124612406665775346535661030393745697005388703027937614002947476351034548827396127111632187788580816781657779303453224119367920258531360844691105262594160961145892400358756539729022137507455218591266627092091177427848162335011829189888516252028940367850853149389649368391455803725005148902399552052412746781813500452871102859696783641066070524942608598251295066312879544031185718170533924179252429158692273129995845592076082449494839793386603535193038155640076932337384617147807377164701190576389672892162263617216793841437704545154537516168666092985054837492672122834763501963042378740565959824363478416898578923186972233306296172328630313236525805454887830182168162542107275283784136265236354331556463674484183043659137831848536666822298408637752604850519778196635507075493191622184835373767750042004799906243748703652224703506904530200665519226838721088067182588962437928880190148755731998622567075424078269284199079398086402178179226517779764461087364757996970421662803391177511854119838945916254036259372502110196292321496618573330467435890657193623146739850722218348852474023602627650006178610007753195220769624277380920194930099933494268303186356730590187619526340292948867697453777789654110426593283776829937947903077607825981338609154751127251570411566835425127398811035164455445597466182121526128551935303755530973351495628821386666971158826597195492000208437817045332938655441891676282348249530664046816907366799768320477989497432649370199636343991017920761272050012494977503595187454311995010456061231048375303490198625625311003009920680775485464426068959310244405322456820890197407395298508237959483278583818289589916583877192697706612566980172303045662964475074488056852694621883205713846336071499354685841014030903311932245022443249916733623567614253854133070486407588647523537275134714463907769630691928122805177783297977920328224744524113644904115264971195792335894573246880797247289200267673656274970287980264249112443067021320729781178596726197156228969693763018149697169097329481355435465369169135778949909293179065198244378150266766869325597324897511543476133216048285431293513896735178680897538246289531223396449533796208059623186896277389549327641819020476905294488040146173885904893965725890048673812425442061786422790720845824402054433697399403005213656776881303800823055833437567211453589952089297724294708451628578908390283723451623060649479548561751365822712733549688526534451454197690483808123266519037097873708643315549232914470267996472496840102577075804022788337735553331209746306592724094908982909691044302581936154236888156341828208925221854633312186115620538852507617166907829753456306109910017460632449641222442100191046019608884772994933414500160290496810281462665453587875391260153491764492234747971599567443018111569441412862595244395974181511982371948670179593906610612155815833836039804765686717157347897519745403936578050046022813038886779813803249478066856470800760895136549407603546290367419216497753522893445607020706708033589673922043691143917932191216409826441638310713501252706727147471705487065519894268256031438214612855641560570924330255105769463395902805873555797629430588600654986023698907609971427130321472607201519955412148767812054303999538946313847717809522472306941935973012677204784444329002336905612763000753318349397916141461085566754038816166212126226932054690188353949199129235524507526131764042492842594247935794343515963408012437542130147241124721004485578959575355230425928210544120146653185185008500423742591699863537603505848455015975861655050246603923950718883159346221815495902889287087606840221221622165133253288176684944131424129152636109540322297427690498955199783775194877034536916420235996990326883683148446294018954096820772962270164930786526987929369880319741526719523661381931407507598487994585388914354833908185411284510502333908881459957519589386775596244416333258206205749869914780373102450238209388326475915465085869636754629842895188342471161221323104581501866766953369522153806233087769479567593131795357462264426435478083305696690655315818890356834716535350396372792900733665612898631431467522958463682973337051000885226639491642678275964875848336205378580431170717837553740184620047241181861751842589866386752033250189202121431532167850339535141835683201856519414258922997795906819131708199382020321705721070294436263349443018740313750450055913580923416944314353338193428022905189715704623172746604933500162505897491268845505544402798482093425689054881836879618754005518597432468692342953976184069832784942458956023867760580887337579549617214930339747307381276490351192742145947901012627639690504593095181055855943384040460308592944332281153730166316425380189816728511852092873693582867024924267576533472816886887489689676827339892646758186017137583990706561051423994977423797219175027405871467415125229183217032658096717615667155783206452854788815323769037559717858440820574613612796154345467466438306137205242796446103172561764360232458670304035317760459549484474918273682266404892790006688460915837083698149566051902944682038342110678373659814454225139032340876149500610417806069667002192017348224318801343238022516594064395882439591296913061319223551935591794058573896132575842962253134484286892027012176484262885427176014098401988637179136634659363006480098965830896940628886739704712024235694645428291612147598974498274783480023666061339523219712520453650958913675828109013897193063691668925133248256507909709157911321471413280291726472512890465842059065175182604090671058856591987127665718790992037197863951871669965079238675886282615264052016738462371382594315225344706434089529878651895169797391017952527844108473185351229370700826861874912412940335327098691456756424828117161608212280817585027938303502340591237259330685121415569780130018823924812517380184880180440091635745893508302809466510571245673809896038607437847249989281961201991253942727076210146797153643351921446822493423354200985163892076146851138879396359346136690673298184230296603764549203819474735383970675164619114801311424860249921814159964432251226157727510636399003325919953426721681502506842005702304119025854077197963367107952762966842331167493700796038283053979706160271938664928846585728555785363580195216683574385706626598720156055651009564232020005477903553614535509951020152832740433328749717910790021232596269578933700302091182391284371836832318092695724524214772889832160787566138689724386346670654022635429305126087629455806483027221586259384336878173116730134850534782279063807994777530211378451885691030261674909679788224483574387505095220245771436128305122692998270670575868236975184384166556451080582275071873337720821023604970612342571484967156078171554094572868619997846081429859291391339426811654318694464103937918297555327580601745462319149438993062423626794783855761808964085578137011116579610416950951916862421915103258121784192769171189383438866588058146532967205184810648548780129069987602841486181004011942085545329045719872055356140058415931858090042073377873438746006443125330798902864892829966013505794755577467478423821732227382755301086875733326767337841727768741186473728258227099790863325846589304151963592078920068323170763101139826077242103672007871616521888298172498514348209728118908576961007554168186883524347277923002480750430758225257141936544575831834203709106488824224067116644372804828705980654239763190800165754415889979090912657456815783647142608794960632654190176839758196936911631048376822101732973149497773425194550697607885716461408395709065637466169935882536616651315860402098099577203192940466573128442028050710845162903123805894749462573160324216532474289852411986854603586723903841596786894122665028978828203503596503634090277765061377151053699273940846581109628719444262475200904294120417121088361919749465015956903679395392249029829230576608478891839758374463967554848780441885245766102659461643521952300759699802867988484637543169583219572026297383277893659313259135414795309811346397151650111155301386944936945284465484844872721975562469278604727925237186219016406503644945035022658740720568275138233603751285576730456954703300702559631327165647870184061573186755936526676656038106599273681903492777595026348106843601436801721765289251241139220501233085201931323173487169140542204341212428287429304001648282115796241923557135139868844684100656848905509108529230862684845471883561693311761143032475935345159974966940307908601615803252531636318040206433690069214558465094344235224414174212834663684527326201898976898696793071126705290430797843491469629042858796346971217268118786547795820813244976955862651767208139144279482699630417369483879032496692773169752718054922119337234185232946109816373391202157312164374071343738201150777137095596687332559633591533455592386781780059996686315966097243090752055160297269949172885162917800412832131496775233473282059873324417467640336371322157916870434477507136985405670460565141989558915039686044593697634428960319130195823870953977441911103663729840975942009332845825689665477304205069379754811480059586526030311067453831845433759581529282276575054356764590834660034952521583234988094017483752977971169842745414341918268767076063511644967126383726398426355362492823986990329460117951445436444110925087690854131649178708074056708419038523073629113269239120402085884974250244004084704595439746667406489626372867956422577098462115809933981732327578299292141272834865891857826865311998341964276502003889741447835919467753946555664731616429826115885410825541546692625101840730927560864496762269182167282110132705893995486326418252340735499349947128020824901643887909605694372923026096128169722010749030108437860981201949357817683562631399187424786263481773180654124338732248349553161432198526416327242612784916588079762429269797954313781226253293678575365842523662540679760995601129354402954778992153744945929433740081684661364108851517728625704029465920150180032439221576541145011509202220586270558587309842252351122742260821934956527163916711872808079349149721390382323405997959913720782260272932813753745372765327657675285078853720342427680895552020955158673180190188426961796408684129707452355549074369486009310833727526234994790663926127726940972283219798279476818169364118962681679927798959573631775932272101246717723076991748666395993424180106955492197552826021441630257166372858981984558267335803086663135509139198617489647310231404230265657588261064414547526192969956634311673616411889944530220223420028920276740639446722236776364202363370429601611144832154349627196404147592592561666895455539671078162298662915086178219467675741333611750999843868470759246876108232434410147397873953934887169768386689068061615791282322635230950020639565135176053807729772947994143735636149388023121942049160651124480308495797628577780050474112769036130937581540160959277380523416643969237607091948484801010729659325714314813462823139420085404493188321962823473998618546266332644090760050068581068502129306754794225166100806962760399119007436198573788507996334576745633219124921764354722621179284347088218789344198246382098712787162551909946748397563349704239394543262663060787835880333058695344725194042826518704657773055311977586795810426379449627891271768802338404717395159632086409563500443393403505528732913495881636589952116033176688039944747771303285633652073308764889335929519876592053935172459964619023605666395422702674069523780487571509153133358182297042086676299146065709207190597185623399917059679499454529374102398889970886315281116767920617999369982034364481013103313318183602854861537837156858509239869693527089167030123737209245469909773813321125229744085799975835780269649894167305353907950903011340157154217298879396486940013617121892601669790543266771343446814211224263786650613003320704119122650467578851709545245838668231236585099469610137411010791589083024435235939874148331694958108012138574499653548575835868241702106216958301659830923038321001615165176106363195806016347729948929294046648903376506901802053814736448733528853615611412139305914464264256618354365032083258747951248427136055020099860865424488469368249992811829890171384962194569011513660632144640526271152290921922800524243835060418581863935276551826754655315439680253747636176936806291898674643557433815848293991573408542649837606249570732976224970914273403784939368686760915701719331457529158483727431717959423375564289794406787298398791582325225893212555606902708232268034666193742795122079381420794938686913270222528498752299346184719874406782753818974132204240685358648580743418136980154969424185975499520742893242992417872189032045313839409803588866861384542297766365662976127886525133178589323188360617784622016763497496896062981609402796057775492863456407393638357714772014271382776704418714023386619078730494432025005482504041759306869817281034511982120340634272617551432895988433265294905498128986167805465274492705203705002016661202820114748289272131893281984996255278014943507309896940868625683889478481407084476324369743714836548408827226931509151910860964286373833424260409967901820387503707808389769278710448709744298385406614118328175300679598899714688938697887661326732124696118662711278006497771423328904704732300325728227285286899866055964253247077429523463464426038785937070391636493694423517091055139962288242513085006743041159095816036802204708430882803512497292310423434087456304623630097521635814689684388589482541678099493120200740651803718883026511395496125268610318474852821831169921094052940263062065554814107398406980040936025566674129696271969019947034541663508815847241460375205802224759161487279263624382928414948574623731769700235070479841146424456884712844610822915044193582475312916847156262031318631602248874412567877742681035684823387668850593409019000895208407283283137674933896045010104552104947176680932418105138918541271872198454023736099341337644516754142061012864738137743072877313600842793222536486008003481346976522078458500434822527598257065499179285884858260672308340348675397582284741181105870798613346277974961521944961345739914342389219904826641468828417745324733760406685573272891409582401411374345167371444088869835002351281391710695949181913140647876613633647341447583504738944160725640601053663546918762951295508894435012930301634541867071116697254947980861351436130917215043005285549256509851186318017713806079600592368419676878548813406234777204282575482045449807907975517740862154465505353869267704993095698013117475002902755681645406972629468386416912203724892598586248378494722946771654440236033136317764844960659390778514424127966582686296100099369459333270597960646703353058566625704268295994867683312258938246546137669624188856426334801729844644801731711248616401968609849324833869846106628331117589374302896184735265183067109066184387204138629098840011875312846823313742211834595266476857741771902838496221881112738820198586730782438492663632265210531646542708429510299046438353067610808346704693897797651666820348184815501344577967231627732778230730176457625268159918924538653073000421193824592795963194562754127020569788657106700187631490406227591406402420903880723422609585818800186961159503041137417223894554449247536801005798140915235197146860564589058057056961412375323563066050858688898130707308633459093348763696877230612600837211102431494441776745551787658273746374626628766967342097622554464180825916618837387772636342777996286804045019199992321207395714121606259482410813449245653290909133622559512740018132898171104141660663954351125906869241864428771730697948145987458133404566453792174185761832618195080514673418595920473099944761368601734460300245797036067706773468220874332714633617117947256836023002665744049493453708087229383876271594927777755032550316700093333411535210923467872126688717261501793811803008921238196602211415923796416516542755105397258167262915731715450105749662487194115509143238212286028121464874242820952590700811352283109177481053615273090705474629718772683464515288550656545066882587517843971862723582459305195509362436635540187721411944220355020162166672500897050882538293447397815180777313637684463106771823377034810491247322330039840936715343843028811492185048445570002306689261324416261393039515545622742955736500539391668392994096165217359031055868230322523634203682769219064466858794357029620955181180392766649477126809644291056952691792690377665581081359442838976550193676138038353156292992875922501129104970727462826733986071635817832897120505882169084198886299621261670981323693886639304433898446537530715833744300301462307560157695611042665019962153468821986217771313795996261340613887626212489888622202273544570602241793878000449313542893134632968940531246971792046615267337815156354963327277660464094629109724931807842165796590842520326679783575584356999209039771133825145951007111565071287763393848866830692119281415618086640465937687350622888219451084307467724300320155581531137521485545768513218272053470330928322726613360389886187054811416591245569986657189167807069992133041117225442157163352646889844218717977834838490666857794945531217605656753571366981636055607931045348363668904661982536893337559924679680375813655128813196341381777167743282648181690653728700510626486433853600558774524315103563723278754649962008177727205135584176728762050197365958362305580665970022540285192563553333336789533071687530821644414615185272551404623263760355593674302335486425522684180551185531918344538032556173180023892062305231363548735053578206937671567078605802755108518204279220918132161261184278652995886453114002240880844266323261193303049120668417490309110411421502734623787115941205001351312182630434010906585059321876058633500245826576682256215697672357739162538424650811969647478199842201441713979470564535361379949234032330264338186213519640856975642893093692216998251755937082937540826355562093354435536593992940064622624591773615854790550143066661857930783596830524573211119318459164708186467651604997753171815698837513116481097013065439149787881658663685936475334672702291292444480637825142509076314770827317707874830228588808600026250964997092581728525829557765682300734548403802762630935538309198244635938982780825967540582875450931994886967362112227368033964071395655491569287566856117400071701267604425808551042524785575471466558509817636005896020270874411303060755896076039019576576497204535320410829700720052048798851499012397560467142648787588761152917516222326598918492635508681581372167709015008218147157825097703717564172327546740870169512260182160535839528566138354288966753779332225327660793195961730545526583933667518420344707379372809495945334629847043135946938239457067155903377131477109871724456944494424540966103737775609980542062608292989532306088953173047153664770954073992320144447458206017429810572624297213897236273453250060831162697298378002765048142830135036871587539327249909305798365513864354019875881424251079212013176491110154110838430851860224201203044558278584817451033738270472699426662682925934735838656170555321754302906761979694201446100790165093182784193085748281320253256421237279145788617026601558495680587187797068139922616206393217511917273435934497588770176542180613084644416628195330350378034164852397430150354525068976452146524205455408618469869339893964027611274444080371853363578049017280067105819915445710229734837153094488404672239907263567240858729309822279763144547589563191019785068270096502778916585760575329952651036605789419332052606714592495768084356419065827719215967722846701430233456095430232783429115105493961571934908427677194135023451481816777796618195287968142424370193639244106595105201640789128436476113246083585782885151501222282369474212026151394603126588177572204951696768187514299783389715211818895916292759326431607782857055494795360511180802394389496267600109240110950432452235540324368115077926167532364860936436106059531041910471457245143405626879104330547824433833902266884161801262426105910797825489304176247245417169149837312251376057010705115341040749695345438250319298662022304771490040289810228742707624764110566134931528556374290410513921572391784733992143273454636958214338061493763310273692990228615500032160606061632740753105257756809641024565844648747468257323833756916841454358776225841819250395369243070896739346205766781466563441401748134044361356194041807654185766811331222944854340709586102563912005139462883411239251618130632986993373163732652960338352470773700473415883826013775471619296144024183077812446631270958217538782011054129782864956350565951968253190893975381604791741944405304819884408068566709068040486688622880239428486416476355041121668921162709576033561486963294589041862825475556900798393281572874222838703607507048779187831798142945681886280285272142126834738772380417871177458793907337078889543646474814169031524242395645295275610596271097127694345290169445447392185764881224228232270982843330786424352412077816302075396298842096872553348021331816787088387593161212969334506290863168424702976886106570831044206158096503025814882258925187873849378061039940646012635387192403904569263878440917439142003321376886996391278601052832313024671572776679753316871998932541217343789125931755371718122415722292599523793473303475944530037933649426836608092873016874534295491692359229016468830456763476118100664688848859347272933417109979777206265051830985018025819376998175980188722137358379699394457655673190602207848152667134661915563349390863131246817943384987866053692061551359801124672420349174073399327723196983585513129703322758282658141132160673215880599045282102272426542564068502697505939760474196658956738355504972589665151697798892707522768567449846124644516573767318055495829400319094044203760914710465753140650850864465016127285012057246709145633618575964393756965972777040231340113574634715978732670162772170189803526191331708114173818992853254225080231000663021178028681669431851193210654496100481563738622888474036451725419449100959780881399142914981210905519434815353257167100264783630943168830662981798153258518968313513433026620549749248457788229824846881339618935194217184803460707217468299030325717303550094158203801244835888434566441622148397000849315908278883394487134843125517663077237256104828949078919127920139211264841451591745440327500850807535933117950237174319314934324672335125539298444757534608906674585590156337620180348275652456890332137075436806472526219052415791745245377276676814312111534438823114898526388488744046415759433895752328443173623439585822755536932367646022941637133803454748211469567786816133713381261796803958813146687794181871526265287416223747013155360491669514914573154122369262458242899311889081388521090288242490016141963510211426557767342962555970377470319889745720895873154378611451502838797069395673645118062669729829237814034076915539197037220193244143416203672654692681169954545030164872123139468904752658614140853526622540375936676109872359918604516110593745355715979656780278302797520389792501104902908521124811256895262535281573158712380993957839185045764241163489301493716355796474925934243544984614632095242079883025393406665909421554902481273651075201718291846720811462485604620726573523564683225191023439609585883125993621602213059932159858133987970873853744207942208132790825164870247222210508837993986801598309622350349920251751645684092738555538318013415498770213660229181461907277695919543346280418118790993369042845475237048672355661361928881734140418837909023249399716882067538146709534144193822422602007387073731815537857513136485435403161953659177805609294796006319222350500684847532236115489772267014595813097740557120095540118743501915786458014611444756689646078671823204280803404514902619341555065365079381179223177594280082045763206330028949305701970042650835627368048040868191369587107200063390151320306474208388441478927403316327423072807782129857447390554937445171526559789019344016973936625567347669843433352902428401698309230956114135570718543245813372984748562763646419714387977138733788968888365479044966002167102959925737067314701302004777326106575502569445895728261825849858505980331219721298777241549351405791305298706679419111152224107072656674934573949604524882166812806312286402758178133705636455655169767161660437639965842747851190305579625282882009581314604113368712461410202598888846281505752332918549750051619805736373242261521043450927146394914505883934446637433933416387497996949569450950176290147029229105052500618679701254144548141705142269045454943181210940824621458538632902222692227404795694144634696318397151276553677430610348646471307777870647427968155613831115315489632061720324995322503301625596459807087037476174841118519455803600452906998955070740086098067657676272177914895843691594865861100092860153345261251436442175550720176056228533183288783880082712601646151781002345985047630902333509625408284473886553481694158104049785893801593991229137673007334715077547567119271375459379777661741154828239787709489621341956423996590314012129381325319578984950437146518780731607487821974803844170096740794154922063473842340355375962671899768536742596286323169214430873142700257329652882953657716632374088508922773148693479780670289419310764417579120359279382972511206342972834261882494028330284163925327517195732336035147470495910576164958962313877342593119648916216292212479505453844590707063270540189112808606061669289829798382571804555508811366933976504718295979926671457446067046796139040632975100162765235791162207073029927183803020658492226846291324866707633408177358462787811532958946864366335814257015142227560827056313923891529804772107837287161679534701222938329876731757444075740704269659151181933603933637288569489418721768745632793138580369079883904039660219284597715783873573673324345229940307041589066200902034004910429486814043205255544942974301398764258242172997046607023819243387274655702761087888285572218122637905970525191573201295248303778829594295004840712155412898984720996763805771083120352817813765882599223992909907451065247061378195160590550643298974372791571696652090900395684191048420088783569614849165928616070466546526824777768471656297152815249962970223015157543041427833724396272144017487624135413016135455960704137658407925273923444793975003275995528704639629534822631393909461299076324095803870541331706109480306517520171381189850733066159649845545665591815889505302471075737600859942833996831324792452644516834294106560199952236463924431570600549204468987896219541537876834117616308667761044963750968311318791100050943137435403528993307755190795650208777786398156001272581222682938889185461897920184321299078758386831226560604572454171272691636098795033675164638012438772884172563180853031640225277998159847063338155615259977133006992310634953844233420925709250374212236749193302848948710351148040680878953876702363915236497085567709202585824805521684965919797508480958269649310335893062302830183993423132568606335663467476107652498759460420071414242938849539762499684645546607151801637595836521632260371204422030287428600363415118301772249016394768217698814668940456756603544202505794162926137257798325757937100900932552472610212580526759360837871854717243676471563044308108123383079108349662147819386293213581608429510112064586569176140832458568612847291211837438234260371178944402993697507009857896830353776320348634435270261277900372275619243656392226315242410847609312562157048252254250062857428362319692485941188972655490514380343202605076185374716860485272487156984725523329378849974824137378254524001897211257997979544526909802755029015320252266239714924634440707286794937938114574018089681243967243999166883377289647464662651040700866149668793077894825810830626525167909420038325626265751005318946131349140229642576084892693550062928399396912314074128001552649867015574019421929209969847580727753390232563248920365196489176197209144740680566013006889293359109961665280072324136278593931036219942467239869034672293470335645935522370615399963005364299072208719183608575989962332279479613642202133807932332277700312750128794009490694525902403591285726264662549781642262265879753614282681854724020578054963128333438646017059790605993199528298980767786204765639793951543828000808372360630186201079422303639777232699927685702257485776868342454225727602559582435962412423156451769229679610367199565769167824963119118554234291029118203840142312605626085106663267656959314049392133348727356554645133916382234562489865271393050957254891220614386193640100514939962945525920689377386467659561421938124706838929108731148222930230148221828410520454065301165479147493628816475438390411540782796601806252719943616718711295994990662022459227118034111591895739854504962101765072539189156588425266339047501357107663508821721740209647432020728060590982490465777035869255089830828131144235437451121260940769129298679059577748238724645033945142312318708001067064876392530295070413433898485685262711645585179047642959677757563461014618653783056587533480308398419619428040876655363209338637749014471524294902118976012728497961319001389334799552727926137532732423031202420570566814334075167534731550444913017836181809900023262590509667091219139326243481818120329197249240374053120238878207645252902459051580123396580259868715501228517485208205479552403534364482954294771201875055468655198349269325498843133312480710352319343117297791344274469325391183575520612500104114950979951610050942957642000143488070074576581969119092494651904443352842644686203559999891373215910964722844043881885929723272462261441397691680837776022098780956429061743786881586424296432031123446570120888525979675715967652246745196474986854829930472982977458268972898853731322124664780903081844265899927072858701501332638189245802260109283255339945097908845267664545467250435067813083721536627211495183177808266854275462579836916004285878013106459723054000454534838479368512050764271626606029156913138627069444732181374195524521363767481897346765645444798891504302853884798084670602611306537846370682766945227782372008551050066691953206373584130418785696534031856525487478433011147837905961771243205009867964699190026578367546479662960495662350199920189597377999248253781376813371348882955786055802084750750584300113855849899898216601375294549182229328951492342124925142339303115528274028601209502991895949475476285990756013410972412513697972610555280102379055550285871635831316735052941590623745592837209950108346504401212910111450412090473766361486998690758255321076067765125568531857807267962123619587185332615716530506002671291521871175482306432151942318461670094524285990093619072824149135786005412820584892008432286666579312280799413671880135928588629176222172551073203029077245069467359056853284716457576272944962323960362300668182475509922414433168526818112013263184445001098299562203584480326684628903984338987468841854007110617637489153362965399673656357776309338770907822255596149598418279588193960091363038557758336255102779718939092155089492606478083924954817887782517409630708813547245781745796421151141721319736669510711180615090576581395623747561337778498960504767160035175686079363753669106207680888713130169573853028503461516753031289982812026211344071447808680901402531737916542982205526753903692441595944672048641645092195298022423430963748908311821729418348239195222317454597381332568900200764703800959541201283754175747226002467637816623013279313981881118670454466510170686420095904709605419017889566042251538352832548602726403680836903704803862159434046153998389759333810481861449420701331157777818935155985777963414586262628080460825689396287112038607793433470292664696515096337868795708430373214023023745850532298506458096395793437716575566060946391675421653014829186217847775682910837313165285818595507415795253876956633499196309349985663673318397754868983596502249069363436106942607586495256385686119582488916768246702220201059087746198276439617511922164641060787574384865347892111410024204830197280940764672675294796917584361942795895147172300753239182465167345587051053663042829943110403111346674485929564986528423592729990271433260433127616120154688630494798600649562372620950806053111229555931349769484544695429303576266189074784931739792879501104928936704760424562953644267926066030286930709618218795677746343974320878674557267012802768915142832547090545531583709584599193460644093728875553978831146969002313194951146558089065641898331586922262481506017317925442037349240403221843495657174906544741201422035450741086040669775192829735968430980462767058255214565891406369010917031138691612423612970249276198536308557723174014703576017678448163189096974075783268741393119144508307459352483618253682105604617119087831643865958882861394294338727372980464306101133940353084614671085030901370620518171056847754477965716970437925409779282104610125501396483528842769154780889162450420769823869543440113642949560290222590960076423524854467799016917153582329273076389579025441992127998273031065093991302137793534025621208367239329753624555029844125077772594070706299415925618248863858794203743236070435293712992343876907237213547532534231902126315334605886587251678135061317219248935421526114835092148768687971648079144206981323492951112676835322984977221821887823622633052244160112104110365371582844494436188006307599147345107245777193158524552490778551956037633263214105768886999659292804863402683106806562899288759133473595551157049702813274080029953274849825136373036921717980657542412406408231676423332987176005413586585896880278243004057670446464816727796192268841988953785797123389590507706646546853384975473410223785612815588248411767173547345942852225142647175330390162827572963894936927384876579705006203278645122785902749724373431980627472637203541184883307831727834481618370075793106482002586800085596652902975710803371999656751517886981242047137892853456604573842411942240689438965066928512223876412754497628565554365705796172260257168539870602535640470891325425317401143413585195961656393140396356209627804802623343773658375871306306235635597174737468150004440945586056532261518139239566828352364256441754838270794768480445840564939804315228347774809118637503190064546535646025720215061649357951162001113641820476451321987058407884816959072156205609701498164207586260807666265146469635750389154948397941588093656421116389188074378787126242239653738678295748530315275512708170013667644406553195351482283961411034256874247477207853968116460895643008821969862814413588210120377154681185122993744720758741818507775637533136024692189403351651779597451450421774205555153285650410871520163704483673598087429094456673388847351892431297174070670245419695838017029153042793742026133045510061164041210433167553542191761834659314361679527086522049837009088856982178386117186859499908391908072070571395906690225808208483369091541444722776052281865348230572872344230815195469392133553676330888636005770048535925813251697555029000315068795408168388518586909065993462991614070156761131328865136587575966185885495285147793710230357333043312586669151198955083838818206887597279205466371342314789256570052470367390129489242636812375795005436981791094737460603586172322808978166417389895344928994617775700279188250836408861818616566842111552481958104034470737822276137575172449206919870441386183408044439017508816119598251316134717716462233024757953478549108573956087981043621419441642703227491224035335977669197605958963294356170036613899510686387713027649502034088903214399882765982961738524251926065911240024291221241018555321463290255297725490902592987701231190482198752792913989059478237740306714646749770695911846307756748450638085812395237653382053065683125878002678266703891492931465685670813766796179449210342019739534180606397836158440507015369469135121419571609561402417009347726652109902076382873330655252593442655169736181760513490729762757961186718972343279855156436430428185813336219428427620708080533969643389401786196965277559025690961686644136315458596313882958957313862424257978442732965287689094574955450391440540259970604663860789902774311311537947308973060207708431350976814496181485218347573931188776507010171979516238877634448146732353462517877428572787468984454839027242875720560436544182117014464444638079647739698982339198397255243706709441865002879076215156636912057132391985579930638487363453266087413433118638200552081185286722664699785134479911317831267233407956190490339184623572242651091512022485968178937597347494100420765467683406958436833471352987791525558800219250827802819894259780096730836005459527406431465368780803229638834585473429167659245478982390040484383234015099907842548245697319423220296522351314952681659477726746387287321843937359101524857188036238007901280889826135823945935991245866259022757470534068149713956592015728302551557256261741433861404741032971626214181601085711648838409470880684869879281879302844262777963840129227727556530215719127710224919174792485398663111144410808470593979701817359554942884735367927296924545738994434198252709770753129840471517707433655647065587035323373315202178573075972643300812281519858731731955414514979905991964663479652149145015996674567261853006115732032762625481910406861673865534237384854352506597872515069679410026234886275667686032179222848546948193524114727308556939110076026310766248294116158253814128796901029618110552762273399158791280660257800714645449348701178470142841320562668537749411259213359589589278806764766887650155253269760607994871862545375379179995354522413752170172221977416443251199363256354572233530847570626279277659928191322181099914000866898674476462993682753640435713739504456504429946735724155090197282777630291332342284373792620689162691855475983508046644365952284760243504386573005564240957651218815943419703911669573067876354045638860073813666720330558173614790990700947204445888774527462410285087555126011635346002252537408044143990597617162860757592654050578939408770911713695648024065214075105844266141819203135213080169475688172709895165490103794082406217161006418820712761223466465674618904481799744319587663338401217599174031156059218296754373361890148627423184991870979750259517484265307464118595364731797908590079136358681737371051158102802720280424233181980365127412947319201752641483602302868611878454146156540090355249059495125715228551898043280475248830314052189396786598876754784243970250005529787410539987077969356179758515632951842591312043501027218500455084029803513443861751169727865137853310802602942543443945228181798463777784907545291437717613374724834939676330897778684352018555515335683683321157294988565091669126657087378403000893997975755033085379009944007343736095324208408185209227156180619398936563827868247948410939672301935279025520219638664041133669833503774655972433728123912725406326621383060452697017958340053679063367176265011644112514586603271975407382206945099146181886802817869354484924144869482715658508713304435117181794070242362573006488888165664208451370585386705724322646588058488014972629052840508226838953404984031113425301280517938836871272510932860214035591076296437278427472206957274359155931560382256894711995753503677522570262359184898370542494864065716099187788748347814265660130636789019972649409987758816847372230532122706397046577506709666662094283035073576585600214601471891789949438684786197749369093721006832275925836024839452287829443753130046810214724885028408537468866688645792498183672181194990713139247138644016712479389965020754683147470048948038358235505162939721677022982541681105692196469449574710564503444057727682321752247193910018904945539501177943670341798388698524757659793626082893222289882990513078579489756056841200975854795121213242901856524840486900868142582029109370526174319360493367226601186632078518755922855704995447641259104725338165762859435901262325352016622892499654956224656446976308397523441068153337652638061919231202556068924396054248467877553789190621237536601258008467270318807900659438371588259300501360121273407822184407019316351302071186224599721131014451940922343557343815219655404766512592550901353587818819052703329726989237774230215577359203053526524552361036558696561452838838347513925266007035781787679001846898972779630108349717587100162382719158317134099349315632418322185665993215684275328264717058983115622181200134917613564704351207072419616234535563591770889932144470167822077735458689870124995872784417343386607249456445461357389984754065916388441660126929564718598978665893602226618538980950699376448455585848041874557371501213001657502419764121528014146422616291493864865611983791288605771402520666421974160809662086428491425848623303108937192381748898351509844547037172194146920845850967974081154802621598704466330696428545111371670779777383895153477525871979351716985935268437178837903629766363826989571973686724485454148715883393926720813428446450449029263128506229306645320672788607172119420996752637105897598152414824633951928288047385180729544975253183888192242055415709972409720410302618662216455986296169609279514979967457595765322768000136101281791940987990183987970456555194084941258836479765817131207809755874214841938178543049830396565627060413021911321026793844233008122612322218541721834281663647549697472791587606692455582319898700145450571683100765004439902200899740529374177630097437670505852302412494861485410589272344650091513667444824247100883002564635066615088028947096566352673176662131243208326689877730404783452503226917926677576020168117558761852821680502342335108051346164752137841739621998007314689046249131675358895892892464235853009553002361560062960970638388101607506954408181093725378834453845671806672012285468577771761991519932928242701599255822524951183093478993939032292342385896781962895434975607225495168460884986618350953191793376911846977359873783570917563692898237882239745894083760830569996381228429043093458536900104726296819507472265763011749577297937091096207023674947016146529077008201544529666010220672198703675250772584107388416380684833484569546754632708697366219174007117183786270641837600863693342092489890233423400548471567542868324101193477417841952619314302171751910859403866262151345738096721993005869732070669549619895545386486486505798567446778894166199578021498071110911448294141755412270569788595892743514079985122105609482073184699378210366993610541222453906460644620179961807157537150417251445748077605942823820895287141710348274921396867275100216404310097012521788678049980161735104520318004937591108350257192638946309540260935879756987502022789163524360600547698327959682801182863111207363710489053617630059055849054028777292713964291325367505538626928048242914162740951202795088023160433387225984240245894109089387629849333426924380133699813842733339794472052958136101637087347575060263546966826200056785502352569772510713677293328223191210279068879867253482027992321718446080425733663252171575293383295936128586890268838817357893281283515740924307371980859920852977686460252936578720460481080557260675915679024171930738631005480841658697098594333323271034989245333107430443849943967662300557537400168169063841729324768847331077569178759720814951628504583524433769719338235975201421256028444216550810455803779934377776326915636621402700188920980696392453955002249942558141203196461664830507759653020921637297479562744998063405124514865716770847819328554889473808047722991424863137778191615153692703435183731800052062557328106156377339792453428060136811204953583348054085127388496390017028852044391087280842266658376763126654830689600441701462054808523590944925046149394617436607748997445129801415279387533071094070630578676176935534243276568272038744561951256537174320384549690654897217933379572328244833044884122005666237841904748242883614884868983242682713446465569099556134678061955936707895356714952287058342835768092086272610069878139670126105990813435571729014399287027387641211130243814510269351498602632471076808854618136702453950257961553116042461771304504433038748351200747079310826060392746844282946897179524972293831457103905149828268858895140316248477541485972746134307152792169180953603435791934831010317502052582514117930222568464653327547745291660087942901174364325923970613165154925579017096612230124704638260885763441711311064627618808144499075348290007378240297546222463290099586254187908012731413790412519287156346045531913404418561710001199546141830648531198368023877198632294399847234229195439119719690514898587782630233883635587424402797354369940704178898056748949302867295902015132796043869480676555184072494611441910129211624628984005200632238452646192330019092159843930081623870921220576136982086067449518526329652276865287234685728244310389417344351754789649303679358259503650109546217240245993674401058472790012752228754363063759824614397704757378684484034177832917789621865875238376295606548627348705047808118857452832133014361189578577095061962537022784828162297570309360615494214029531205585261083045714121129219139850412731039616289656369631202177882107076874575880839528086994919529125396998858982421308637962247111485601817876451160243417632996745810535785147986633203600243541385477959888211402437768748733580753725171591337076499447516901677184402338984916930274765542369812428974508602794353828697279386330498528901186369230308878228381742677781295031064422693136770594195621297626352539333927783231586714490500075328624374398100888695056375104633782059801962063423969638568178992037353820616711403604756590958811307953735547534608323337034900379085354972508653198423399700845723764423438132311347772201551812296573546145641528649880410649200007911318130070141749325240142892757274132095988318444502569096318945196317274315488292856836761771097192281572207170786302457989992545444888600066372217908767425308408090489239418027820701036453220247716348883983497405861841843128920149453817165257806206035729233475662093583842981879795617702393666226582515345724958091362713592733447366120450775492172765576136299641618768170997385942939505460179495435404105194782237078013536884031454550435004619165954465474586674710125948320298362865877988391156835663098059000789421786827270037995676578556865450397872429719522652346973075273291145880844085838388219488606544074104211740555796536478040094247422535712547173853166861056367804562254588067083085897192647219061316499940184536426279838895936816799018900205614057824684020008890642738354396965150403068222422226850058473117900676318614379561703667126944418054731285361944933606341854805536275110500793430225717197470603055338530029813128068622679568706984536919499845187417031861508140462175305386469130449438596983268603326054948552458202567317980940316111861942905279001009333032779701672895760484092475923749331019876263414084152825430661100537213700969629782296515872654250213442516183564035744634202653753055578701135785711975503277960555390599165619577743770228072468355454195783345635736969761866379455756875668038412439559690913636540537949845044439085652089297774054327857999853126053084501685034692026815374912194985581566394532967358609859339870758355806384022549352134119840254178761519332517623025276290170787398779774981375234942167820361914634578110906809212762557983739774196967069092580760788993962117400912096814016832271512991144657275362300897660369820844860040732114035104829351368949614272012138921347113499151593822029965308378494524381861814258815663933508183788722929328543631598044110418898469644264008298985402274615987853253213523247388955968021628154417855185870941839912561285939105178014598043770804863222340329013640296060257202779532376357101855970266995216865527490644387789920257734249404779546542717707917113602802393210027709339115558694003505634270375604407227825381107288562827861690445923552357588061991377174121947589407953323452153667110674460519675869617818198832055551021860651950047563110279696291120613500713822113882636612077293738906347389276599494781790311165720384258699326746804069815743457943770908934882210487949063697116420595878789893267888309242639197924306999068694494256455477705456243002624160523456553574363565837707861602355523460577942052311451929969997915650855784659325666896807950751119782283788219826402438725152466400025882657542781779042193476015463342335837269140407872763926951048517140613341139633738625607717581178364276526141145315321449908294199506072458441777762191226337440298049326878592864232691210365987806702393319294017419660709486972808894518432887701416853798107163530202329931358249811784068455765401500209570028981150972723432472435145339213002925594086914036127380767804842866959145556284940647240714773180633737293936175681355580333481443432323824075976848585475444734413157371230334737234191814353640078024306374082301683975415294476835916930300799644157515819239587484740294608383567943910716991724834495358901472517097535070942008062872459166310775653222798086169968046720913885914959262925412717904699488336802118088369023753012140349193213304252090910491508754681708377447120970695176656325333340981483627250449508637237298705367513558048103618929168877086830229644112193031720660372901917338499885022293917840618153558539729254203115586210738201154327731414741257787552125767994350970575951158227801766912425607627225380182800309858655117361481896552800515609946193126169829642120530025473021670506307716656330468623649824993431674035941949930593005180187905565523510047030283460893976395835152548258690201674120917231533426026702107373171591063750717674436732313959623641934596903500710032829229616744715078787306086550099551996620654976901607584195991801901079249124339370521410458896277195149029592935849904262168643580664308925867271857894363144085603775498130778525149572350941905991580397952621695605844524989258658958105243929551455516122414979736946788630949373237380742200856771175521317648466196000389865775078199967984984285569626235265861956771767563474432897552158483997350110537711573359678146078308385268181926774213325908103177465884959676898021068925374044798099889996674203739016195328737362751332499586607760264358750443777855438884561565940719942161654609042464589914335509015080990547672735008655833628563195538247049957741529930691999932228276370245988242656191130983999115334802351220344423724894414640570680875227048858215618704180870103573374220703756489497731442036546569032590346963516203317780760202133717835410709582765298873328367925854973923585525478284760384430504482845684198512678475619258253437107286191534607767935964539722946091775852102408700371842385051638877552534280263311235610257138222729653676311821749210732980135383870613816758133734149815011018878846549647422305681108131777112594198063142489963495030278800282054688469084660753572024949399800533332269832400854848042273704252380239750038641964288422276848308547560534826238395516191113043722263778570376295736852426210111484878961334420147171095386246987465536113981577383536585971764753506326414986296169208014988465203036544477267409837763187117451383224639992232770231785448713094191590343272023829074181156605018295708196938442653501564123292509231918330038440655829215002185088404589686526510942091205334647741711437284405821375735999133480363692854767426646583655953329001873147667621045617200678875481272421794232108070642502340038337815355750974088126986939417637615602976971590672270345754997937110389626437252893002800333709351355279122679133089057455592747437590553377794047026540727324093063869084170647835622962630239948909857675657347143683664298800014370643341624376055176837296224450992689220386973971449714749084768120454228428168737537391541103231382880326796842471750376909654066603260715819498349310012735285497971196020175723556769966221684256266950622117626759241254143398076116168214527717648288427156340367996442207561851842584122409804591528629393510541709434136569453006170583035211313185127500133573400656831351108134517226351637021936574379137054993960083963876980432243309906302031575372854492854578253807161453266121557455461849549044738494946070192701420831456264727313188483579837394564378699115538264132761886837534246720781301659034366757682194873904595897828526696915806512958975677237970939126180409697859645562206945061575897599984164378758959754616570365217704010117090442537249850967877886919985417500435577496256001453494702999937265358531922228441220437042367199255660814084235142463194972777927556081477875054334257248500254270208595875785161695128762903198000792411460799438377355358287698906292726484512028751681268678636562700426150241834943383528761590622199807365660990884965127274512055804444134479758244812280318645343634408126827389125261177789691012774451747250013779230433251562025464684457160506123137501755922764309835327261272426692985008523674539379423264749398728286905956040532297749508668555680203681912108266591730919885633017651994966247802806200020473747925824047269363194523479932439614300609175422691753859507713927843444282291036896227594453331187137334546791356554942480193971177767082636526241791062474144975849524579187232326303588657332243744178066390579125718197116414737206867637722171821752332397889974509493678704740647642373828945356686543083157167926529201428001276334383620812739441649497052222449719137549981748540218744557807906720000452991225809309538385854928815652959394335193229256596958049940918728995221006001115591481461564579481532939180414449545442083590119302525084224364683960435978162177314408015761482538601109017632791438840650789324736955217994674930618841362771848962038098220354495827110038666457257848091898425356633756763933177453775684990637971691777836457450505569690708340164468355839721965703673487276943617833223011712810798190273816027010441552076050496782957440926389545728184342948240887157748773298281958367498336398199881101360618215175465797625177854513514402944882925721361383536340514179865994970363866241289516121126912752020670612571609761390462663557595816257045582246641627770617302880024259772370241486909846674185488104840039967302099292168488246280407917803587800709523219026641211095907181819240597825460885566744606867984535937491303204166898821048633354188939265111565928037102933975920892859524842094231593021729447948766004891536059771016723883474817967336373460615860419079735299183550320525399978407594212368361342884465473686272670846626757966270922264105922460848566332306737602283276205398557343524611070650807621986487836067519576572999689492197528120809672306555739173796810833743211513366193280881929370317356038873494032094823628934660503632225251979771940862194571125464781719648309043801675535555693701007130240392326488177943079808699972705030911993537651865797335763406653644727861363455767256929920654829644712348272115365540401567110713962634132503435949439776496745334159111624307567788428587940530317196062791814698090305069927339148447720404931660402510909632475876221875369618027329246572488697499715105289369203090985019096622243516006060176559802765601318760344784978132532993622883813076657546621680373151920870809999961331728962165394575152026251328336675971679663156373268980541277172818883855751787852064145926749216014504698232729051432615314362938492560530927884923847678090391543900595082289581233647008949969892145688084369843460327898711584547163549583521346072269364066040412119255917364188587142261230545593404930578598256381259675676672514914682055056159869865216297889520903793682117905018989019209939285296132288331570278745923524317761982024827749838745145829752527027947590836882299242563628127937565122740066374498423550907297965882150622052151588393731548251151755742735076441159325604303840540054976444903360589268284066539640140497288350448049494247920980578855792319142479597526696665371304239350894327745651320559205269012353147418479754720003019881091777502519557755331967848205494953697054014643078908159309693509113937016915381223328388044999727398072965182182105145452372799121234258984850703966266678523640088131540705395284262735714267213380807312933542179196278526420115780929816615243170526616634319834847000137789929671749060422053052168140070939551704869734273080602958729397524261198264077410765390963365307731312900413489735894041906596198007364315677753723452385043483743744811791863868880037054435745150671444633963178758495161470601387595460906043433676745368751988419886443288509670753148241951539859006189735850675345844386524830121643131281304548637638600668077260170394197630207265056146610826547950986550612841724486886449373244263948463038454330028098460578717547185448338645682249031592215432703614671188866229114533182448562830896583630490850712853955576150138339445103739434804660027119357966431368121372658121188113088036595572693440893869936036992857417463491996019289900783300350695545065000200212782089534505524328316911260041995896958668834660747485117720282837883221765201834472768434576513711593462988114484712385394547749920948437632762959292853877901512687816733659552375173280762012603674038040762852922752686283527372370898950685943207642963898218761098424350074938066398316383797717432230652361270054051820786819864870389058795457177410676139971458063138798833929316030090518112008020295103184907584512700536719794359512081481359156609971482748845571099035127627694834352585554323545112680911953166877099339169484888158759360182637068803138094167633126411520398367296559439520550359689284488984000015559224009588726415128859857683394674562827027191705586765013510455442106091847352488272597692916101736774686650243145805973755487538672919646004377279186468786635651921915768580139894371773421064080903515889496837913494770983603253454771272948204623028216936557653321023341255592414396363536979979775140172001706447687971443472253981317747976025599699077546940607142180433803701694929280905909605547999864015511714502450808123143490227288130621432052117046805335511499500653844680709495474206586183894528015261597127146014548738093379824057480915880851612082445748387131677684185076810668139215875538233583231505907266265782869446884368251715509119983159935837580354873350811918950226209722027122564572432661800170931865989013399437074811920231602279548437758868763818270269689117213085597383251682394042650098302512082850547221799640494680586320721782557661282395603017715842679728933061685371750363889022613110879521439983755234980457150364476294186614182230988074495898201826289083871324546927715335448184599271488089184586421469045416042356242860821372558416846986118994414975031614580489217767577789828947464204856212518263694376995545905148179741784362902233926565372244134362217051772509656889820012773419278320232194264777577665493405585564546163766049288097997905003025400102505756128753385377371877065891930037366973347172686771351778395507818222600647673226989275687721972490467228914608453875934304085861841317846258930870741771455449966774755416282049348902984928503102360433365370300923900988889353950055855854718344055466851572607259884856460485931493076463632578196720399805298150929176692583217008798691074557003048895650478907220298678947847456003298585173354321325410595195836222479995851454886939351426553206922797925995771433463805940519562548462942845805398818393396637839118948644285579405764778090138088040614956128522552568544005684872104002243673323831066566061979412479359636389030237303323392592860836554952082150916488874095195259681418938146194803566344643234503498732319278597697102015567062736077440945847761810591253897377354730705592717746040212921588683705733238831548209907617715498132019483479031553778743081498817642885715596099297073361423415890570047330418108655209553090809554539684508925703278969696346570151047644576085144295175275494849251940675971507400658183318672994764991862360587551837410773123395711850482841393256201219806531783037875385743455801297892020359347671910609249856175991147780084504210867791682505792247403748741240425379863192842867068754824276974731163611753609240280836750017396289452488523066687063839890156298775076808198865524634039057688434321583524294066016153922810252391846062866682081823253162093669886180261531643719778824762935191588653165495631697596270040154831211430246692964703505514465402956779542114375229111704787285948276370856171589149769430040668119624430025004824211421535032821665273394396021475281092102357420889943638522537927027867741215346430646830549344720087229578512244112782157156625414842926999845081811398360670416750902916503396178222293351009539876636242612065465116644588600098926135219391888483273837644978288810339528560896700787157059184766371866284756037219545945580738700715172215786303333858126189521708118085688413399929170948589314970647341093709063770596454604082299774442531804858014825930547342998529185508239032285493636516923310338623759270314794647217407924049813421472602902239741162912685922439949870677431517001897764349004648964095637465311916003960018107687145364175436245480879621549902895281361547177726710467502611645562058136082591886680569729789273330317036374808981751136636877900808499241198074641209292226239701567488534366884674137052247857270036902597066794870531192080152865580278574573426270796437952624885634543706279304856214384869797441306088822825487673416177243372887392477817447113398325669181913288631949810897819259872566468423014595869282982331521575214005167425686482589914684980441181467324621914699025428058919810052430816716097039651998362146681838922951655877597195291039705303638660402732900042141285683730565957888673666280533218146440069910677411212911686200471701825588319002847881883036648122849581949407147107431327825896402685674384574222137665060932841055467709857545873309958363307144207768921560997309564532491608421808465659220202899644518104318945657078523639230651334600870810464161475672689484087577338242256311629506521293949087040143855392555967408819761226679249959365798366501816758677006075910669017697269606607667182557933719582547874995134191631925765971784038479140231274171882826078214212407521583928940484347640854454385748901580416958171907082900643560025693786563637609928303462783024731926737429012199445454671109863128985747179239335547460816037074451827754518942045928024886371672965963117442425017840724300192042736139962416892048605321475527367737772387588701428249669329531180361912072641382473126836544250744037080195092786689807380318607125595696526950622752065659487632361789523883893273827299457323933512981478206523160383241871569731779748501193066328600364093730823687901233809341940795692683099068286726521251094900663796872218209864223808815451631594134897809765347141224808265889129173924574032825282400548302957489397047672928546970415772950839587579071759098682014201053580976015456240546414335440725584354981455032719146880987202743285614557584184211277819972998033933181922324266883748388309087371661539212267921390800819736017926243941154189630641546726954097845940742373734310285038759905617738806455808643626779923961502852700385185793669396241740830876599966997595197717212751212812642348540186759511795669389564747524153679482270711032585562128901502431809411718620149191837156945930408573815767384579617780644883828509424000231003557813837907061894288047914524778590893661425995751866562413881689765878008200242249791638639100491800605968596810056659067009524627446208996782406059459969049266992286384673385176870538511929925626344293069238018780426591595539439410100119379981360250069893899705584704823218317226858509790085565328546907732973725717022238810069093328978641668127321498698297510258266947485680047031630998765511007109479557479032501748881617934365861889381710689172364723630092360810287974055375613190376616629417300030296812968569976755039509895899069198600982480923445710635063779601488550650973110527345964071638032434304863146596978466310520095522483871252779613103252641693621948398539629500490446027494720319179543528409252554250399031729655391345273962373816351867883909610384989323516736009757182530546941637103572935960042645398789320375411276943597360467715659127328599873908192569790206887536374495227149804687626756668813944380250608089952709061623113944374985638870733272822338025315336362132254993562607630961885694931335740519857932557139482273692572376580223669162101027009269152265012889402218900787456612336435210038930165654107388004478438593568858759539336616031398036841092006066431046659384843833364066108591819657994106601125357982750739049977829912612335269458335185277219008005094357742442260264546909035603142995673097514324453323678903844933154525586221080719618721636117504623021386414147290346505114845524778694175452828100943724461690497893032080398976012623980029833364941861637828478383919162679081908177309044533467462218269410926762619360631152029433414225940074962664416009897540528484608160703061360303969964100410217064087598743534468579803816612640933742016931427846515279532462916223446772930501265130015288244382445516277149899869471511340622555811455886578047893301802013148002687235870222524679550708830624408138562059447817437662755896836029322105236447094020369462210035271718189753415584750285767021403960086459112961461858276045592359101945317760971486083373138681983526891165959444429865714887127770217091071035178623926789996530061280964191754629055143434152532650025598819987552026271162508061912958219600435090179109076397236274515502688081709993933787716527512244704136014895804893346094709350508455564049478128359780386458047798319365780259401746375758200599993108533985828899245614851041726187972482155135382752666876832185510675263255385409992899558036724427390875953565363402954516853483967119515042730932480436048424590538035814440061836196905311840777879959003948122476692861077593279925840800685310356101120304762428821645645090185030903774207473773125741408714471553823267359320426154188792332118169488168623642787685955346665591092752758637031704049652560257373415193976443738175210385793351184240581474513713555696810008134147039248956095569660242700531180911972638407317448065950651442126272169282581736005930610897355071247964623344687901237192703419711365835309202588337075160821965719873248555051868639038111623288520790506782803815994777257700970818080735419932953289414007023859008141641434688772450299560793149503756227561664626816699461589278863826572552832955914468210678804769502567887715321889344837925563955406109672814617462727731484873888834876272450009926145863341093014580605416911609405148854293802456128222784302679325086036005331435356153411318410144144357868905402886054146513175182215275843436993256299696283362037720053585133360687765305298375915704000116803640679823251658774557554484548175404573661459911415621203155208321955503461740281814135902847378197961580570162887263024087371652741448974418273731680751598494968677064828233199976082435311556720929167828279969287543985253610702221776177692336986079421071272369294090794171478119686237063432620186647110170073393607506945266471752812910651247763378352475605075380124203850671145607594255718388443296177310634758044808937843068520663045348746247402472776205484419877668750693080294787976484465719022870755406145242129305259961950036693347032424122888959520045886763065573036295241125008524006665348143153946687429793583277396740558769491936796798051338472058028471766909065711455114988637341072085228305107092437847309609608966548651456709199083644076247301045329423574275723909422356074023192483639233938855253412464711121369997032391481577205789657452498740430371769442172936730216633369606128612559880821568345904275003605654387412259006371190218764911680986049358809103770467594385348779337970464459441486906453070375026776152948793439625058958295109156298756163719301342235750404457926233676759481240161963054289791087346918745686848762629117284212446563251435940553221255425200826796664283751502582831770146851856844557439144288543261284235018499279047469723814780752376077899117650872372821026285129423273133692226440522100219083333374945738012752929898050458192137309767993321316655990534702040989356771272381674872541408679523813067255545683405013912014014662801634730255997137746918195564236650195300067389908916640656609882815628339608895828505629201959220468363262529641967275198066904856357378511025618971704305915367944185171650837452006702669056473043657697482007739951362573594740622401301830606241842562628400857785086406830528124107135791762867861784251985557738688873600460433792270949594053533446685065126719645490708950744325427801299411067112360615320036801605172900657766530353318771422016004670832455433594484945958477111580210182805681716436935568799667467278042812739327836972348488708854552726572077858113989392988311244668403538984540820686886198131188567026783840504533374118374769911269610641611151966841878010686792065912999207584420599854136678397832300552423923700870586239753663138791743636048152132834943933913391340815295090218589678971527253807640032237338755722898663613962739849019458689122908439235690188510139382455578810780895480798859988251501562298822035970509476279013663488944923375626735463245111730715416162770128298136638625242141857036889213437315966159272166871906317567171882514200489891443366647191024182950300604651899128436456888576825055053479923456138060498099126007380524876492405810027264829412722498487190112749989816543544189811144333534670997408327641349588500922907906794680789961382940146598973398776992783723150513314652420259615906973417234450283055273098400449521614196292592674221882872732112428818344707073121790593184680096739337688094260842422124739800338884878495622695831378308737627931342726390008099584330671128557750203969652064657639590522788175417402335478551874411399955048647560667125167338703770389828668889441912860155373122922447752666797715860267578436108775605557487273112835250476498428629538847922999319775263465812777964611945485029302333355289884519114919299522997139614578819425470762470326179709049343032686271510927342749511642569959966049012044690907049489197147111169322393598662991667708159880785085310889218469496430966508701154215632702735480048509649428376345251069021524080519170209046579600398244311312407269169448232067959411910631554414787108485730600846021242157057822697332713183294286798466712260899512481404724660406944768820972488962162794805124911825236449638335706949854831355835314209156919990051726124851437993862817836849461834343254403198646867413557220126848295443825831497380956335874472634739142794709668497478712802562252476666881026239406981254581193678852640176039600261143023889453422477840287603455008905441050263067524741360791215069283671359577062077261344240903667230640400013997594111742268340905311286060900137236007346648344223559053319560099448992736430565560465038341687719794463939900457621487501315204950550194225559703718097068710699802428000992350176004554020293374954371420020180794203415753849334300860321508661564801684393253864424715419299654485323495793797674432453481385876062432210564496972893290049351322465379385679738316765639511099684645447122222505627653180481920325611376591900647206574445624225453802430989102702094063623705014552933995843738487564604479735676664247037082715209137087937798260285942909791322662233768169991229567888374843150488390245704442890149839355053545407079337958421246851214335790493752592097885290237522337308901396036171824296172558982087593900435801211319817390455371125577333988695414274805370770663081543779434575063317840026018905180890022728552863991540862177941218868800715905137024562636816865611913631135100302605477041774865778415672076146279931746698272936413279727865463294209027807430195833205617949028481840087997143244851593071838030033389350774687120340490084941454701179530323516770181618177258682757458756829321955902529905159052142915772333019762564913297541905446648409166345493109555614643331344550372321981862216041328325946663303531835791213022715923674873451506966736703427594720228719147200130751301247004949783530027652158204124655720914176070283067066139414619472452801541786508166696242874620110917566911353937163037043257497008600312982046129400164337609377706331534319544853408225436215395289009435412373602818814560734141561751856204403788038516215577838603767641076753579773407161658147610397110379189940605018641221070508567565006026229511484102805623987335310551134417147233924514134106647383844993436443133936606305029448600763997497726742581083240114785518455927754840020265425769705787584817337085503400175656350655851378594858021796338308130565919134492059291463841968096272719725449482020598997958892074222099162104830801090057007218151992558080278903078380964710289802802433132642075311398266857175376198320987639140651069563983923085515809578991611449071534521029253879945195130210840852897045065087755377661811511094016477739600537117908676303165789718556654860482289747455692976292471420490401900157489949726755769474624198878180934987305793329768019772065738840743687596513245702009533920387841033426602467078122023944462520483155499831175195762811440378916194499607809790676899071453430489409636612075712531714464761927527899984238758386140834783470849486652477510590544651538901294239615215330742278953807376050532557484300035774288886432334966048318929314491971526326363442382161752851347810778609373144749711653864674519214483757663984413414506319540724127341708945582620244624538648556990305582376348425461488007927881899770105671870460457456883986672942605999551526685480629732815590287481061587935820394252437941628433362610343566752049357435678381417431649986216476061143440687907301204449208833865761361761646563107612526623060592922447614704880263173271697882679242860589602005058934768842261224626390073781333634858389709921532703318573050440529435974963940498905618388916296765274769150655413359478529830350831510308986353360457984066205484181155169050963753915679783340063861218443745779223928811964775715951350020884416115336078427779429163782612426193703076190360808844593058123661248892308705702879895234729010847864805255680276313944919072664672433367789326409061152861194115610434089834812691702583468539935651315638778235381194766248999978489906705694454668466909384477047513118514355523503790936577958177814156229867025027863315383894918605353482056671530106789004039517244539826014269433352251676856808409011778447105007049157574556871928986684693651351479182338652344612146240251602819194440155770476665248476131481677170552089619147020401209391988559482037782850397663274023296604346868480262434844201444124859573010445773268051064979029299590599021936593443944791954646028206463304245594765699944009253124490548530299063394081934216054890268204893755079358758218899409370590668788560013399920538101151734986262952289135171927942133188989712353742421487035576110371617089098612680464770766842733278980660470548266267956564345587408771316580577545108965412550702007235129098998762259839235841117463684646289129703964411750178237934225870734972363298696435881095421918548343142483785887586641908732196768105264688747419352308158452382316319228507656073217571422931414211067874524597057978740776662014627250623330367348097251074100909272394049881808172431673449936876659293707618430515103450763100651181274885056434753799673561284078138382749285288075726057737094299802117452151791336650477004541167221118715611722682784013434247644178629351211705956464414302201777412239030755672040015495528205073784791034488474566789098482569440951169462813902541212874648490964506743195203881715762665212063859762619308261926086880819518475926058081669488173438411751224137526108394833428817929895562222857474438198459457842899220139574776278567465776304065344100695801224662086592634799406939641217709773571419249080041612603462214982621219690865561357652732201265418992148535004939751177515135135891303559917764916639716064291349552251168761533363400102103006841012434532035586747811793772537199036948978981429886800480598020695329879749202297941230241950325386096247573133987970061133691970172193506731669904401584066640155612570166540393751278719746627897832870790904616969798966801115882123209502010135749109326566177771166039433263655715128905105416477320024434367610902353166185198532210823491396008203889917920834964018042998175878344808845286373759152367213903970360481439630742473650981252304711545506543096354167518674430041963985602933660248127962148796810163551626334818377104376640030684536721266584368877229983317324665671177767956849545154338295504246830598488203220176003221504759366154199151241680519277642582115964911922230866396537494227051785326924175164740241866050546528851466097972366651281328352932338569440688526752503755127456476663567556562399490485628632176241558205943312668234222226421098722875163655868143463446790043476923827463540264636642622627563138478662441784554895887417817013779196122476067251332064801171843802813543134891278776169808578879213493871983690816001726264981352482511027477304112693407484955637393775858883703014578442093000205622261396873713177695981241661124972406427969669793126275610332625895244215416240390069063970761630051873114001230070257238868141781238254514683074818719750311251968104379454468837571338151004378215705773540818110526610056344216468215385623008188176307985785361666258296303417942958438297156063869158860454817251651172107924602596293965400142043018727467948326541941284029541174417874369223311341982820351800543971778519829977675073698810834867528803918673431877253208569278183960304249553615864703953133987479635336592565032947898998859139709108249011496669416582983817843146933836654440781106433660650345867565392395850386741101327255716038624900528438610244371166349022515402189741035587871761940094130818168255858524616671829775271056720884174337647130082062806425017595677444572330849799849631441608482214559795762373677761685064386937114859132040855340529042820667957238369848251955985405409673487423589473788991760429438804483129158377817882763875222799671387255597170042399568714472898692998297872753648765949109364052045453389307752190599797414372405005136081132696018159470917890060263424676449053689335094566960666642967587070973289776610088395364410404882967509636521171988793884758448091543945425904339711203086426424951374976683739698800053854940321221714364759531930970500727391406740312076206967741810844557208600508612677996342859549790352574916862210130058024532350504109320888570544864955749600835814529015367465371061719557075135182224232657311767589798528696691384260563013833424695376255199535383478352313747675378838780397642877252055109527160858943874107390979955552447311731971479353971900160688833962634961375049611098481719933032269037818244640122643840055578412325752709324139308408558634724414721802217497342112766068481477258366927191853713288420527056709263872387176478274125996760889687420461861281973095126686519010243938765850601127247815193936765822632792541741783098540173549493168190823929848658383521032077445549715593276097498043812756635720061052979398755465619223034990907432510320031306874346513869388955413941183857983580053115804094327547809078647315496560645591897870795102851078884413166073314146169899099455250803868822695086385871335840178545861041057576336131554077660975454713033101059058787043444480033451246810725080353893873504586424407682991326221768252529225506127862530019773790180266509522518046854774857030724930584677200561186713372582357518474226882759482440987735960389944886233291682922711147986603711658427143348188444739189977049879179199501043064465600807379485924613171319291312675278602900054947570693038320290763762309061578039848165311057645371822038209960936702927951505860270934036752476879822894725818307370472285743193079528567239758907182231015590348457006964351872056866303143539891050433558310881138231226118424733558736482601776133360064632712324923475704271593302961894578744187277825195704717742740448375731667115806691747787160147944999518587814243898900128978625743259868710103062755220448382461682063378539084964045427582774925129272641188594150596570274470704011675579795057246815389683518850532026529784084615177895122356569221529418145422720007809708158174381560251176385606591395971154171237236822786042257895821098533508879035736842763851121637775944774763481219842609713448319052179361613014848167788679238060175015998046683958626065471386860299694333617966989605609118484723311674524230473031896046214181950814668836947987501050288041132314614270855726581776747049433436286332463535500341350917658794890643580776941369534156862864093141577991812175412553660595362430470072119630951998138545248862588693764519179878824684895918912649724168082001650160216302478153299744130455281338970444058746074804919093784232215253695028779774938222712753051999186907170917906583033261607493334132576967656874132659096042674400523762548305241208291914412774468100784680134823941804173372989446942922332605041285987382932816431586121168132182380675607620273873397934313055737152849578994353010151029588109421219941561344602739942502549348023103305281322562287127297708629208030014085555719234584801193244023584094310653163704062621808751701555928193232473020154325831409008987154160942562404480403417137766539833879923598589349823498669653857406411113908963712488999991357601102962884437975436075897599056859011240852889386264511349271812450143584519948643336425545058369945438222354422571594907876349344022330748502384211822345272344446215844259408488074064769209901644007040698520992319002086446496873520843441527718160554052105051205618954037978693404889901325300133408428500292903643774197030755272984529651870471105864487327207345402169341948041453686850299507219515314351421669240112130896533682244417050494542633490313853339599509221148906827366673073410569291390582690820467831015514304901012157644240336912028176461170722816271437020002591967768998746624395099295015161528202634376558385420143529079294416932782192045416128955191129193523834389909121289260049353369301078097880691369628852085610448389997645896572073737510447625099167110195546122666365207885525576814639741708278018812195873400974488161699475384928723949550099248149054511886069212884254704823325141840194752947825762804364641066594745815429929210917132051595811328488981617290633227565027199784663473668023726007312275638422808859315280482447166258590390006032688731958411607184381690746315197793040840882467985041642233127440525554229923959528193601351357561296725913835126258485613659388614903818304595017735226284692536038146907816282210342209296459491205292487571550053942194302974181011609923913303596349927099658433517443448845528701264879535186285841286838480213889048042581880750056955614813472564948882161379411007046216524365303849074533990826839612941564805373553620640569981270018883513003090356431482784092164453777295296772458089390896062610852659644954925983091902361878756720585113908660273295688336436406564986089732735609710623278948438570155784162714970246114167816740496692553971446307639697585251597849319097245599501855216308918755248250725114627975318945601138861951258326313606110540372909101420860374734963413150752717962077903168583793487690362289559059038434733965360957135766485332736084379385449422883310234939570753550200567496651229113960476124608895810379335802564453402595228232765813632785262564427262899028514149120547107804390264121425265679938139371321626674986658280976666768484172468134447065309908450399869126605265468081932678696027485055807346213535867956024570705191468353894175867113903528622831764096016323305813330817624100167760747223499677604477948679352547585193938810985146037353012051655080529103888046309762374235421568779308874908961258506753240731179347372411473073451793888369284220238745985322267383290272513826670689387482443412279848660674796200450060637617938352421273768599504269080547369058547869553344343312473525796233799539685551468099297423658816749446276892201365156284256167115585988632534154295703882614838734441032801968529045215766997912560823793982441013669541283450928863813830468077244189175170163137714162335916020694048371536589749610253684335541335452182445416414259243515292549366661277403525004645269529642996439595262226546495409506070514780889565672448121768003060167627913835954459416334830289451161038103727510182476998519258971113423651120913827095083980939137100167841981918887962861971335879404203545726617768426378931554821417356362372982214573536562753037550462947057558442763959433825763111828699078509809228507224728840896994855470365720644942295084603936987785453285628540446713843722389449113678027627557241703271413931057859760070899907606007693461217869196672213475237939302542474670953557633380955345197968790713040570719451448862542243412628811774041443179288788914176453919405334758863417076282832813434810844064907069799501275042847960660384898880520866475231624418083602296744393915005245439863382720810417719380122129195569124573159155273454656892935512729810528183920001769622118408883505583808889809240188622648601652085199988543859505029212291821868859949238212512269536712213739963829680132553558670485411181359089563656818402395904341096945384943483247014322188920867367663042025686045472234742420578813881488496351267264807707943801051417167061179780602138502039914580173837577153983231273323293206621154570150303073229091765106764640216462027816038967831068437736405463676498539533190406124083068261328233274454179819528921759833187216634624955722205923382214119590021280088429300862063916167125627069359403062135915328413521668394598767037851689692277834317738620585904303867513436282196612006364367481356324939235727985584275801792164957782270121392899070113265510210063714106080679418948470581132731884421967710641433035675146904798893896592113819335106082775971432644952313577000036398812849208677154926263471452796669433059055634816573252245263321897239237900298744891947301447570630933248112712306679971725934507606840830086463494243813375552742425906868526784034885849762206420542859909656628263094868149816720071044807546615102907282525597571397147221522729320396820784189419079718271977631040498943548354476894612697145081584619679400745440039123961319778124232091256411038004651860449883225944000386442011537529089099448903407177697345377372550847695509611409016547965749303175324612778490322238548541633698962955716421746759296013493531438103095194374137472072640230284817501149885146486551209614657681139242571973476140670069686021274404742100263956428031309793032447474512737131803367240215276236783751150948011089238632848696782542035436857671153238440957559249901719374649189110653027037660028739746648140503448710664906296896046839709798063513430539013114070885018853158094845535440034190108350175716435441956906024533117824510563263724767543028825650543040375718268504055889944571273226784429631263694261322616343493979178341211540663619378938469690369110430067033325748352058836763452558321602070930047436240032420101395165161574567215121707390500873753945483431533679550974557175733289100175165581740972272207543392519263567665985373657625449632586001430397275809365891773417020440443995445201215931420918760228506160434950356819425271683063107531752348310045831203259479925364508279015240594239565385755891354884923263664171211115092630432038587042000124807013371559427556836350005099652253177859487537408829595031033059700175350047676316872549241096106973752436466781278997080880837641333601403490246285894620444828540291909360060829304287221694495033060222579155532787734790903271584279129569103777314162212488189468217264699406364716560585064187553295696679383140632517720494156838973337002966373678394955070209074822990235591905770364110302871910405668406525413348895060446171435924027066879835682484853904688721835772573757676380239592497317418584011319820413781885376821290381424844898074910155311685037924682477604459998794375928381161017691116869261326258004030984306057231754298048296606858004385526289401015177827940813004366785580843736061710629920867656554501541209342189053065938188022236745678498629600629709429290814126697299186823777998238473586779660438744586819163874904625385827258183677566885158657881909506037379376448468503106637094318616252275234437773861984553512355681324309941714976253424896138842032245214927118048263278055883673429253665178940082607053250311380945688938124432953360060423312627541914484571556477546057803974534888838214789726353711096242298115507156389997459233503400537210717750414689262573874465326031697097097065721065477542082954824887899271684606979265651877871775372719644852071738175567668235046358885266763476942452027567351838509094146122410837000646977908930826239784635147958909364451935708989581301649224525457394264872526649371246646850799121435750952453814738508965330743457859902826712654763891915374463913836871959440929889634680157616271568058575042963638495270850158381774887230626392029127396102024358264567279971114187711890669741067153531901983514706049454200145744176672632706521969025084467202535184219231923049174743197922811157173108125181017374817481558127150822177886607946229487074895096177955873236283534071847392723618541303163164212079306909132307771559555429188068608593689166182889529660769822082920188574359299689824000408784866082860631936373949276798817560823375947445193728994644982292532867919689556755363892039251387406073384017149749083519702731204104577404547047016764252762343224833877664640079510809915689686601848812127817280326072736062811831367298339322746096297257436476460771112174039273506528393494400531887747344806179861654573254922148137802143001852041906368146731259100675521862833946316369035881690916863991113705212594275473284944586676808698103707254634653122810681398027613637335710289207400112286763649573345367001078520910245635221816528900426873151755962275045273973461440530516289460734784069236531045032145100168514776638950214997712430874263903157995523582801318814735057614667588769296079099036645707845607246195413887182971424327484485467084819841227412725766054075111797338986818115831533497773529724309385857869412394833003363295884512804780731162904856249509151764343555088605186740315403933085657153098121966137225653853746031377634424972330692260379184005274083835096851152648843106216326151909935762311870198265203512308842010214047829664303175476974800579234582986661661230910027764733443550060023242333380164284923182699325477008466503144449127319421378446863718504544143467343465225902224616162900639717616697033614931803396878927246085626617492200655742998356345893485650184094180604504985668996551840490978015421233840147961286981516955461585278324784744664201736913584799534225027392394166281557966273001578768705406574201055380133149122985409803583142136919692472152196566937585746449724521612503014889038243050245403087699530468552053638943892589143953713180568867137527019159973168485637566053749116671342322728331141326447554352197594572869009314411351005947827115742421922813016779684962477137853655871759523756559275616010555719394160081233167162683675576593372349545574519316972496527929528463063227894425247876351852024736035543438814298282657106085786787445001117040878500139717898058446365572111659059018808953174968423654771641339725823816608623529954799795902256717302757407027486748362482482197285149494535473502263099881523428355902229847619706271698254150894389973851112917626085407147847740343450440207642029248898648214720044129040073711322975470026874219338411705052133358421819424565062343059935890633701011943434913557999761657207660274929854150073211478511598286972793165274068400233271945728795262075206321868267974404039401897472468274469981542939476469516122034767208054197849325948933856054564927490487907797767961777930878581674176213661714330678348399958027625346809938247090180707799792513198501418149130712860224698859880899285676472841808042383173880733407663946193205922945275903391555533449829705788785256066076254045842216820912026111667700459996959718662358855868264601614639311165165959544666414370395636523510144764950486571100079490180644055728340889041395076893730182475257870541809036952811647591178193754571270660120044789825075307654407433745096303761999043116335829378498836039342581074784842577585616398241966805449488350494217366248523019365260769159182917596561919476088601408290274993376307561063663794424323061484168409836832167536877749263033920123757017983673295043837945544289030850056177942968036674444336061532486496258745378848255276201228003256446483842515752821476096910633747419581407647719774510350613925130262143847519334818889591862056805789402091444145069889933888153216040999639809414544463086339219191511034505120451864806887840369754358823276115296406136935096532563518330578809524105757955145351429437950846578646066128882529664011997599979878267151915819130107712410064716450988378647302329568762982667457959966257583542331096726545585051021033625321434992534224032223255503927868622387573410478925459444717725486581630258804781570253445820797153084309850207432618083124769979057497378893989779574215673009693805022314350374319752918182190891018961666800684901139057766117373780607660407616916728154027637331379163310593431880157730791512946916623555732138812956754140660672665400205353915748472674583015937094817760942882921333844429144379773051409676346122088699561194399058186152678079158977055793863945025690308910206955078827608390604626942421494829729676940634778625233150182546150500618671583741830467443717296353639777848828190611275078055266721860188217695434855277670058457994588071348490302626115695619291678502461280007527445582576089129026811393691070400963990605520226910837496238251732181969588887553198490545387404503354517445526463390559484486795005168651865329736128393497204219740395523419016208282053310776854872510695897333709579731653528385101918387772799747657071829804947971212534156862361609978808470866278968366118798885654357851803360680814686795777018959124619659163584444119833104603703544014595720350367038149843554822430377189259852699744638852858331199117885058044827559996633162871370257854293666445391423170294674292164023960639000073302107735146057858518853688577801681995694572645353042946297382163062911478292568505500785499533765945209562740290565060483154468405002019338595947456085442532816604114507318906638595205945638888277257270013334157034498765321829804601078873966789267254543270045390012221064226041455610152700729304377523438600465019609729850309954858343288919151987019448123828970800634784330652859216357212750492154966671980352800313262460208677278766450390209200367958324814030802409996867341462458522047033481792954311315913305460208173943226564894738741265170751413100663640962101147922032017542256107029760558945075282609849355874094372343467251733568416583182736883704821021949283623471950058237948080776940228293858652737342766462368419377594089307259717683692231361477613183352658952042324997989152196865721934698498984368275281289824808911507521896121630586182616192617607210248623446807520070783654713816736759058618379161044605052613796722206406892330505888840865335574317071549448971072274629917709735726491624342154146172907289453614402772323547201940549791834958800268816889456806267593132083124985120352272564656096068780511214739685962683871448322217242751193502442381008875239149177471493551829839959735393455703279976778902167319896837330582184406385450516162289006556725291015674028249577859780424720539936290803761746321918028208553895593404422622217755915311268238272689414718173793767512535424100402114249433318386730043353724156381279843108729600005594253197051635169347644748124703632955749786044405360277487550084356890819205821220913694491880820153853983471024658662403204471287129889707305483756341120752675108949079358615331344372868277012079762721093966934419572104361219495267744945183264756599056750066314036539897815994661524696918053830509567965914251703310944117776043400022841683570443179983132343621950176926473135244217440072385054675537618352938036079471491577156571976562794630155099082485383104462357151318782117389406044333110143887453195576164768139958026109482620385733393343107182927042093675306613823950387393280947269234467148908158043801763753264533910279852340968755543419045731755159630447150715451334546737654895636019184283841528242782165314611319993390685530808351968274294456773170510191265602537900922966199225417729727114536536749949295181818552303352819547880699256515245932846579750312064365923570308169491929209403981889583211170591493329834108942482410336117437978788655135727616980959541879760380635466190029495514227153526509663967775183333151918368116203806833865363250256436969723542637889805699576072247692976373012833112686136471340206332187424720560776576777951520358046146821973086853218316168233425798389887050612782780392751173853247114399470976706653720204190554614885766849194466948957260809954883505121509673941342186410295172161479734988094461328500617773169637416533568524030117501100608137639673664669595737496519077197656394474702870436382531984633458194098592261263746377759978451008524993680890252427635957029377903992518800739454969209857868546192015426611372729370358494643485871009923369997082927591429984717545339391157383045121701765867422322365765152888396060066897451188515181033213156692421577491677363564668793971402554442351119331403739702731785368889602621644614294837424003001756484544413504879915115707938423445770190968629380714903816601153836007071495058019138564532656320471155737316371421393948068798038866536608393171299667089694154221628382795042054647669562658038617748669703141184977164731943244421732857191349491604864751404733009703857097340083902671247672443225519318037367999870504548665550176748644341465887660278002976468318557044225849441087715887129184025364033388093087947017916186340006118673798338720104351304281910485882175174911193971104596077463166339964851760476246841121765211547266653277846848610324834564434314882047602908482377043682307895676860506434443462863719104405203866070318968229356203314175372672845004730337791214298449328289555545006940127770298423161079310500906169197612078536696345501764089413119150361780485920072287607130254983825908733671791938304675579539860833422952345578142118260446504199075125591303217993461644203647693366241022563457328712330985014749194404166145714564151253475480036643006211849275265614731644983612502062932770474993898294915872129763374081332485186210578065176588281424837207212080393183095719961007029948021052678653125693640575685470394182090677403236530227563217860592599095701749238547023083633324899775924218291350322980099616074913827142301224945375214461157474763681500227404926829440006248726167284411094300050422379784459334603080989964372935713350658075188109084459872695435886366210758336861890402703634763200216911533034792647412971612749160374738038412661876436724212167864830389585311720479577784779167422625020213592874244373139679779538966177789961488926132086979854638115196358500304094676348500081317025557732524022628011396755371332159152968686145533059307377510165081984010717450254381330809475716793440453417193243084100381297893205142456831029730285479765797067280870560551813907133323265852640583803869728176258655656175932255010439319574448745693050310028716212161691021157116500248514737601135412410999593620435879540452548852300525789711469856239377672399812896618000824193420462566708616581964812100365544856799346294535112549161892943288118900293737183570193841392930656030811476303890604785031276450128433921291715418427372422641260688491305864666885178698271351729710035933924947311928849785446507920969619658782809369234008812788067135465827386693026497987558755920070539418074621114896085689758507606816265004210125722792450846763381929842303661360106616429557253665508074721444031763213733277331801860395001216438222112554475046265664566970208870446982817141119977199579997623301865102857432002694314567325654397243005634055848136976578953387834446088163839373711407013330116109526931932322371263075442651991507895950506049602260926304655730591475572228099795409736735297422271911764436453425690112197501912004746815926326569528102821902276042560288087402509367721084544036427098657449980435417181820088189301085005689787755872261841653727482062564582962583597928589435295977541029951539202352198541055101403542392281140640659753507429946670862266703127141939449303481597083628956042277274360673189585516263775671876069937583969953571828964554223376136652461037331954894054300870416195234687157083701492997159530689386328977143444061198408532133672828768904919198240890167021713481624921640632107133636408473148045871778631531418397706792807221426069441840074539804042777711166875579283934511534659727290181067379527732511205628315288591821014487588895760062961483483360619277040206620038662817120696904395437419701642388928686224481053080075826148753380209247342604575798322440850246466755476706900797901666792644591685807845115344759546046399911684648112636141533149853310876361964816491231013739777057269447121789963913708036499272567905963408597035124878378525043200933151189316456772303821067986113961911445974199778591544311647848560078382603685024950035651737476033673264369190715913520104219214217933944088556441796562573051817911526899114731456223744369269070878268625686390214761428243878224386271149063836738646534010779003606866709980144660541498185476225539200111738794958774293797512349803673392028055746404150657199809299597678458336484303537964110793689401791222001781384533380043600825747477970907255106685353152253038661416081169920612819848311957286958187251945841755501260776180931244321487573865606269386238494626589107185234754106894438267601753867501961481742305063412189331566259982651641142082614576653059266712883099818888433678439755344710138142610593895616178154059513219004059082801450870157129469083034798989434956543635490761733713858716660732194229635317529402281069090931399052502115251409321868134950576739677970673400665796837373095417488819668538793391180858731980855749215532963548812081688499675737234298489218378850229217751910605663545911286794900834288366939427420746456412331834973607759084537255541071455538732827546044661968765502097226218062462033109865614083467409253940180660801558870948503321809740741211336081664000065307761420509469653557971138219927753962590530030182675006152586073721431039121194333325202532907915851427055268388660736230503886625139394707126150203590488553638686134312720834060028814448751342895813961685337465759571786440192825521057834917350841692017789282203809415297099847457424395262333249785002620266813928223326132726529339599313332074642712731208561150983102293998749635615647106825277883490334698284660931449828395294666949168729980721881726471794833132949677916566951846057948969630481850064188574186337448165740212053080132276468629165155728899705522647411715525463425094624271089897036179733198120531536740533769653317732357572779076951129293415661290881201114215662384332880805563152141838148435705444470165890368104476229728279421298058476419443838830203609746314042692752563187281451521831936348930689882286844008682426924756068380813669480577865153057938077546676738818447495718012344085242034693532393663110132530560489528894382241771865511898659522135483444562808893456850856222300411236986471594713390046375171498214159062799547494878805232364294883798389541547931743886445956095931649265071208039476777584309577308170354066552531641164217882827824814981548158847746939402046749032681980916625541775865988379264996091376897235270741431179867556054654313523312122869298673081467096147053954421231257885116412111147408730425194619486384471128778708811086223503203596961280483517915029471597072575953757108833818506483111396251677799533349492986123546414250311059034677650522737755060304970567434824691408833891688415599727044592356319346472057080115947682524531074194981008000294867024456466205065251537798392161756122035922597092938132602261365405629114245401350904291115502718861681531486009828203787691329362351124296122147365814368828886435222570222321345781777584329871442413379829013296617452039729007374362398921393727063002732667430621299649091370697919646067506145720805174640466440097278286334379388620179954399770883880730221134180024665997653102431002703991181967869823864864388825318015049699713422938593903182120904902083281340696513773234858579777460689606896164316690933645833482275358754902678491335099836736569958951677336549947079205840791597397191776591292146321297166836284553039793798024851191153726898769648403498395709472215241633261045771261698610789152183837242875239910919231663358507820424734258173599009569273384298909818400066940999412552178918004155762001985564881984868558662630823039376390129292639920390664242456352216849165752382129312861216524261018334587805740046528366266211436186528629378103757061920720569145272246521569998699614371347997689805446994720262934705208066101253346813766211231748044286230273934760153130372314519582282279891590150803288753827523634371562878319247362687832299048368586796750789113284993774927789523126378096974496429872844459543849007805811395551416898393732641954334891393860612540722045915995457757137590675022398801255417106752785429712177971902307850061519167468256032812493826489431640009311116504727113694589258449496483009949442921250372291900737112731308612103023987605589249717571284122969554117796299258934645342010414398124750392639368191632526501678710498934396594085543068908783031735994704585540135940979712021517413200676464419412249109189647614867454631815448570429468395711247681180505370259897949179575631824150922061360899570189176698090165604765779049742282638807563591885961780910168195915465415221309937601876404668077924309325829396663062842518397568935076390040756649264841237154384230486852105501148532322108616607292631696502698143287351040965161549058784719906048683235474400447169059865880863888088014775450834467147923255701355480605906126258634361362946107684555387352864226755718987288072875607440446993734039234794398035326753331327028651520961853969618343721879261918717739000039896142906674038538902995330980764424294156985163804884743042315309382932224027250048976112512047049291535772979018241523883814720359846657212825039476423849958863025347623639509768388956352726078293498890362401865991283517828887595195452161040792615104043559016603913205184006276322257263326045732998634577911862277091707342018676178359080907962935492513015821615688790310193012478794380286955134449122563680072166112318900127126168563675570534867463211930465600499571095233670872814438418238376598077308742089573790978081783591474063539179891185941828436635200685656480445483327047035161249708599077153632797728076490235235613005715928259000485045466819784943643828117407731539777181543357029126779501334523324909017325927183381017036391859464974040711593419769736411791339290548964084602687767637123831910275090003718609854303585007371287723555421971999116364442058162904723446728598125825942173522437803699828855020853803788634873401487979427595573347226516885171211898754728274348474584835283252519573145851345237676560366528956990634896896582420967697685295472035315933327976381430219382332490188998576876681751129258365937955092456178709118082680513150708183611378653027742962257103531904812392700005438849249088925472127197863259156376428439685799978869258350747433824331090163233175452890385904543003983569937896725415497943229624559911280108524404212489691422977874973478612113003852343592549615064640601334082021612148301278959670843726590893131697426687245891681544650386625681237174658677569395127485528827723392343171443829939121985314683850197688363736002225640503604327716141906570052288883938480856167833859688818114589544654215112200476136842468289286253289311412291570205312738199700285001572185897131547810855305349277251453788019349413295105811557043897702903568421557234098267576718780169552659853012975156247657324747488816945253866495629521776276026017603498275991005804295169934412789689375070464047845770833316394806971146714757756555824977634429165990219952011531545212114237248611060248166592930682218516832078780951677533479992241378072500651161663948896617714392061012201780579185450924582653429142101050402756600154510785367524983545466585336743814087667057118565923187593029644429364897237156106797331454963224424088057165597872642285574442370713557642932850604659267448329542013540790113523208615614076241844375246227853046136495476073382661578132186658038650560320701787947279420812827129998691191338287236486077185048229849772831912917986663691147444133296465760893967262862072888398084283091560766605822403984302692275623494737742761260121409197166385064082785005893852021669182566387617220536779493607362734890975539624732258144746424557203375789394664535025976769748936850305619950522491633316707950678609983264814320817781649651109292323342047511730985911489931982637163355898300776143384355551164402970381038056233897423805570130691225765940840896820794177859268421045897293266889322150780125170227437966836329221082425373221743008516948753721575368554169450037032891007801331944085685633651499950137313621853410037680860968714610234517055244796987878415188548576380186113669027518097411835747664453447341767547576439369836485546937992556358606419715025980277903941359727009857176595243688277839199308280386496629527914985901925922656390365499323112231063127149707476147292374398470510596807833284518489246614455497681610843137970634836540963874773805837907918240462257915277373983995025210433214599740235902181133293634402857645953002054013109538439021003295293333238833748126714375728807467429968625147607390828185632039076153970660391358527331439224267513248976804866087610079201094169140061941539130952825243436212956357444636837650351386007800646891906334703390537609905482033014489290248660192276934278417320861463099085889382690839615363454617678233934966519467849471019473080772278463751501439209792901991155830553056236106096481742142108958666688344957586661290818505946036641943792512702678594414039587254144896142331952929798318756217285906279344699647656412490745305605999264921216962706399057684606976156615643894601809387224500402777430719314386096604430062996517544314133411967031765156730901226538286252891449251349837782534382755945715658905572098429315043820213570068954012232511316084299909816669661630291882994777193195076548956570739426253419707686283223549748339955002703195874296824177931697734414790087398801850691159133989341389504666218645088423544816903899542331486608985427016623678078864271190980002277142433315654631436117357364770291620447412730669221211411046213202203262504296356859621486491939230064131276234695121638251724416819185534406538202952158252033477651196477307531145869379226605178847012030370029204639539065685031126630589206935223286483000404112987505330418013861258143615006152859582325670124724066674220067986679174265388930154923554558562368418716405051364591447958622767114265435990766610437418484314087776877830687699058748362748822453560737298194984375011311519805427298038971738340745486190720588814219789040146669156495058264081254883392807733937660754358709124865067286957188352556861807137839340198182567878564820764728001033698574348220124123222273848882505995130594201435661825938515393023357914152439765878262587257302394610508470482453154743955229389615086187769493305718957505597968083977109382206047442413114057073166162260260164449342174810607154680947079092767599425266572721224531345228637254177421467502175697368197546194997072685553652345872741650509265934501100472758371107947116742580999551428388837274678095847441518874254319604316474769221465105059379578688749673143480125416231130279139296154956153801777755452438692503663158473353892013260671485993989443761587849273858263859532544339318951843420536098460533970867137889918097114553466478826165823363509260612078782878241368653341120945959113172459685150984229556996664241462877650252850976023523188974901585979926097117158111034099107715283572542458946455395881711055634312543448491600341025198865655111928657279599340185725666865163168052141144497637895908692337805269737298844154323098148372352320256898998259256989108537080486191727777974698245415587682495911988427806896731905236402758646184394118418917806541955051656560715516194424199919730164488426491466124123273543768496299177230000156457624961257291438875644049982396415458594134214176195964479391231674709717541648879534654715666048459155187253087596776158357847958583362798364904875704443069710069217141150427787528890719528958592747235957856102131508829142115544556002352802110161823046377103553829964027617001484091968376260817967681615299945119824098978639927805797872868636131184482448838943325130454849107834815982393072064219869671928545664394315394143854107705412572806209846307119663357298001881342658436157604497690372720396795005348746504128746416085847436136674906583977385915555590317036537871943477571382422185062725305253495317053454864344946339804590781673077925404399973521656943135655387297319216235277994250617139622991886538082756731195495477293749001066774951769350015612623302604485582156458173760654025152054090172129312448341817188941309801648577957859191645510803161999835074031340298012373390810825965465059618018069651493768845362482367821558114441428231431091358965090468106964512112938057717893715834079666759089770586580074033656727206149217048318625546309847610689945522804555261757614407005359802470207812650833180614664695546393143740778506960795091726111686711533204550600313011900019210918043944666313076369558826967776536657246032135149359479723139792252108225268906299773303678044903955613240678187971562193938633381838868851364783413381229899866751201571765567691531032891910536141168724847305624686979202953951896931537859372821866737296432965712735875980112171178158848106296711625990756852694986967311534113744351296030997607144837878719501891204987239686156548921091548672404302801793376885874929263295697688986787881940398212598239150416909610004886464465931271244420764283583783418648141982603552201149078376908355438326836784888466856763862174143666836773618840573618299739103834688174431657520764653605911145015723393883673869860312053410177316769625729617115430300629048104713215702285316763926407327999556456782432805925780124767425711924998900853682786495748848833335380729328206330837976020602183204224749387579921766738073570285463158890823404408355841773349188995813073190661875920898039578321741325944231436706692147041601605900581625555915038401180417241029686921708638414684082797445357631032086479081492211883974426780152226515975421334091441072858034209430201514740367820578325671152818536452976967621970577574588114921450324310011656015910072701197268275669394996512653906905475057563367974971182923173410634120541236533846709103768275940755550218514463442487635382121728498595146098261210860277099821083867586824848939242645098442156409013793540009939509640264886556013011923689146287284414825421243302603653894594195073744854360794784701756463692045506778817157830170344267800797137807951930398839047510947170191280502353528829833492688420090852917363406893668803372866651325665002965104947033198325301751199156344686174608287741137205270778740533696605903229762205844529058018025033857259529658228259681685530383828123301056570685853851145994412589654270470434220881262689903516336203076382220037701630899710464398770107479424646974301665440277440490732410685186441478498212446363637585867021851705641691513126418003610917173869284029477897225606984151983101872194309680101704866827883171136001371404688604697159439874261881342508183766006391951704437239760412843298276742238856116192275428017942774568860320491634725429158254085370831952398222754832993894473340974455540426719200955765437570713603207281769245829190442680744202874306962069825507437839445064311243828286418923600305842258458143388976707623805024469758238932669815614715968314062888622771649685632137300084307037335379933092531082252774239464972766895310668049447883463125925474315072836564490023800046007972831820557644706167377321138549931270586380898485650971127911083418156578016205609089205105809096838899176209944875058158777634818288076201490316338532561163609395791904888114634035592116823165791195350181209796712698985672850673842018323913806495397623503759977007123416456974089989757496900848692925179465148279160309808466217985982163039161410126217232508755536919148690718372379087483104095239983406399335114790612395021077252252226525249528668225903091899771648069950818065289087841277435854087522692082717395653269506934787595801540306717654010131183574193160164545063958488252872901938078803973539143648089712403522430899170581625477554261364316488255734090629740332294111480728908712471246795409781552473778182705085630487827336139935703154959274734485608340703139705151295938901790852342102316796796845676158548939487598517499508942492918191181046414094007130834220444989424907259923078640403294536091168266119711428621306974061486664231625451972375531858864895879253389967573820538043670784585432774442597919585119740966897275561891744964361256924093170061328555870265308757050357229585002393036324095520357217879737325952038232705302722971734195817825064376305244202507228520379241962996245989017008429781823019102533669363792287055478199870738080387283741082231643974366375031039424768235585541787652354649494939678085240915702457563595810953930622412771166686997993663480918390401692657971912159468693302471380903410834952249624810846612187844887719748565636758433704525890328624802840067533200598732065484307087690001613181537869093363125861497719825848444777202570676211518464737309855198006285683485544150829048956325665211160516359729751337300083263166056886996507201415092380174868627909988881844295989165766800099282303176159578616802695011579872517220251475713609817206131062999429360007487801782056208412320781717020240090770797049272299068464847215806697367733489911205402414935012572678960026906378097113049784661317390444313736182785835309019153009547567542756714308053412088162123300440443409581515760083701617808033304177226422242485655644078768118305279893585222545303149819813634249066103034373135997408461648725372809184934374883536682215048313436807420607766902711871494890240876541007712840781255152387442931163025075813180084993461498925092840931073016137284864004752390991752977600569810439641652763697871647881428293859487180075254762658357249185024891183191192064314542067018319337598018284739444634142938947672457094520492816364806702618573472743702733871001738797956179030087153546527177709427891222441280261827556061315271687010653752004403351293940950071844183470624442603048263956331127400502197264717835656806120297794909715486402396314173832136607028753679158337333650964228031939423282168925787298903251569380344740215097846515393189589299833426230520992310636632893130728888521714746299126304288893466962652108980433335973695646079508229637668177137908614234340815283964339777087466617310724258294984621938205921550428001323918275387320993064212048181331047950029000656503228447637214261484792932343277346070908923953851947103351288061067116879790701670226737894996304097205906019412281539129738800100115741603142306657589479522080107723675449331659299665207086978740605040459611976194340734842915194463475088399971432866933118121809348259525202703944502523124592708155356133756041932454025353820867467459715028996251063552564277613216259203772646742908241761011178223562235342687233106518359216719183618558328345982259333176754304816335472066874486138396525238628283668216547708394317037360255586158831181540260489641916003790999936114906449951641370980510613162117230321629073950394214995184446498064989003257927630653762636576418080923562884226532526115015488445918411608630056178897400358165170282391354066661428402327496601972982834844765601040075813432067102160747407578085865815054163726327608439197278981079521088391450888459446735157216642789809808651842800064415411249736225001503047408073223599952543266875221692391605301229762957489068422525717776919824213333094823778800709984234924997088272891150108535604952744667636839993317642733489942532102155121241731858476031220203451275443562076790958247614683000927740484772444874019567839392245907386401421113957591751615029700560666571208020278122854973691684520271816209457669459888247915020263662298628837328208760630365972000602669481020621418210562861122492382055881812529218200651116011923103056129758250247996837331370675657227838135381800234482566162994167866309162729142609992374448487959577133926387885980405313669956103480613611338862171565352696766827712945682061911241239623816584081960431432082157674655239290329350880744036246652970877850408124567863376349216469368886814856520944568815981763505936826131503469143883939124103828467689647553009259088315232448078241142442331435019183321630417642432598278278793868726812944260205855674106492839759404800606879187277721589687214167591708353661055530727838709921011806235299519166617411916739501505692523652010249701301279010692628440767232949619897055325323712372053194545040369474612229654309930685515587927309810090080954551534152062371054070192030602804732795429320383607469033246267995943536535531054833158622456439597337617994970958306194273786960815486629934306948830309536091536609109215141661395484820647432084284094119251843830287443546170855776379609252275312426655188177999404860821068822346596372262373995645821910110881706411447608879932865951820760645789300501558658611779142212308535749755145601881111381641646416212351115365292219158302359296764073397170284545450095210341747816574555893713189070904699422888178185102186619478333990899984762423315338031069535938053070472792752062548880603014826233223891259471632715646514503910392908512666985610928885982927043960548983610955845933890565981192312986639132288749065865839813404020681614501433137683353322465885412675650533286989691734169565939285944535835588145834903007612089765205300041391304711399286901162776211060609652642834734406781895335529470645962561176169574442687345187465417516722392736704436302694143541225771335881953440401328518259783479815677617525056377594614073364704614708876802247037406138025751209290638470501679713686858129800641722762647897788661111016786622637093755587052484615806001841793339461859617001913496244161160861241806388301767524471019806260077945852610565278114229225771229603482345657904595769086571809649050162065743238741058515148677576896211194424263030830938603651818964981411419546567770245972836370801260433961019608006333624444115817773506833000719103049880395692008822730977759650680064389985977251752954492945051965475045393637867229244862187383290447110577444453901127602724383317865079337718480643153340799964443824713296771920946060060928307036828426295290084994356463719917641677528018437187538518353192710924250529501535719805519628674877295614518644479184980701609943521665508047318653483320642998949193180993260611346954272267785021211093536489137094209893362809143238400906722968330718651316638594966967331754351480291963539386460968166470223721552454659458511609669935352771868062003305389908379909504544884269403533538038161583465045998077266025463750934004903676578790047915197311944548838835883771898551016801171045741232698397318610071115901329397574510589323449347724077181461087486635646000089776933112037265030249101429102996786887033663972172650993091431726349447712505602539429647065716501810568583573452553031270430382829231613552679025917564776070333240920593293412798965140120793213015037316359086262665347710270148738245566097705405143332095815009008101554088180185210257635464511325029330382950420215443897283078323162192726076823517469169957387969881678818687906746953853359902246928422312834050731353026099805385481097402782003853986571850940450379752418915746414056153300852937600080568061083963956984655487168359529942047060708978459108125881795313488335091836244604772707253516147487203187105913640086109036924535622846922602474369754656124839199182736295986867638259567496245333125261841649928254285752005782668211888600486796935481298323962545458517841977470682349323248206685564280701701424758105506134041700062524273667254607261452967927796573747419924927225486930217766408897644847333644481598988715122825443252985445426994969188975513146746789862790951007722794648112053399910928567666754550589071701444254957045062249658031382678075288476705113824350704156484296847830703684697003017609902928816121892323338125142438759196377726879726198115452129605771092970845533102604599318281187349335188056302994112552761125320551586023649688411697786357782146304687384068617743170742533099638518554292594820931590685411778854480353181832153818578793192769947310731308862962730425124128774841651767930867919752434022443028246891284349101004007959822010584405306327086311255603666329607898228963870912902086154378234413903572126519928432618450092401753287273481791844440789907835856456226226026005062102778955683004902109087774737838059817912067539756238482976717431082722173562184904530063771329047224098651702548148456994085245296930512880139732668447260261741556640718289007290179243395703247760539073932679162653825722740946107659399212399802894135875368273046083558426957322258380828312106247359842462237105384581762498549320912376781921357617621450637213882018409437979829224999168126095226508694252761575581681147895291196918048921846541125525434662808289459084668613864531697977198799497706839336345593114781215516652618358253233170103574091297906617609924296482117148818888303293235023489677663280902087557844906085016693251013331834826035929967358700576875556020764286340101849494652138027098441103725576571318517172985462468899206392588093307626918395546750693873719813372942931591614620744803025524713241095096700995641301568551909563106747708605589088258883832220984325570977463028907729004339503858175133913700773257863159265901781546352293178933174856902999372143635575046008245770026966886661959357894484958150899660259152712204872904480440912889942925026105139028637242877548378971674331783670624859545884112774076390585324989953811801212862249734059315367191623374589614967484672511119562006870541909469778011170289087679907804524725425508720083877602719053928249465856208123380930854619549375621039826837309232937572278820368042510818486012850080723859078902046565544239380087195529538182225125653117886959523104847123229545991204366973979725681067958792347516135869560010741449158706650497344197417681623407911716428684717413405805687723121906148795943380683485090261778151553810091845646425029179516092994639227144572663234582907988283474762812730020447186513883290577721476630111731982057579779273788146913963785840903117220149476431939107285965572892214186041223083849794042226082899725284416133300003834646560640467718104356808044669486940701194872257048773379688758467860698389645492299095194563509755567793076438424449925456625098538204666347091391195778387312326791587388537629029429681797423622925033221379711852547128881743514716513509833617535736815002678143895385048970552285496931142506585882108651020610886988414207602608900101477647147058511365692944195285412787702631020242954397482905543093422467726867833305867724858669979187956790042896864524171936855643805694096830280867247784229120855421338674965582816793669386889715477454109824602713882963690905418059230099725159279844549109224394159104617885049161059951750241910866847523359881764377023388388039741309826862033723159215513474543498383799590669615134521120005279117068421205781091802217735092099880324620998158739609951927544333046847810965404630147560465958435502401654101165984964413315865194503937262121783852528676828597727208864758515906834093702028345479763909901042136060188456955858570395480647046635187613713386172426849752172435217533560558141413136909042105862059077407608403228936682245670299121478947972223476269047403030524938821732669693367791598525904638749716721687322034157793157001459432225254260192518939927277251144919112123592838550420674109962078955195599349980051429680476149485544309241492291586914622229672568842913106789878127007329735518130039356009552537832287405679749955437481495760897640380877028236896497872808375671432777698243642788522252412161467059138426523249209705924185862263872354911302630841360587920797346532026702705038687654905719136343373451618375331699666896119214934331996433961817247110094749755868635661933385470086923023229540140879095645701766341131105991592297238314747889208118459897081324390716158415487183014148275952501448658017338430242446611650558562182142447960682624201075874871830245626434254775801469751765181921884796160453434651123567036653791619356843692171016036880862837005452261792120461008242927155196833969421850069215069894792745633691769312351991819232756627328495647551996666291967224658354905935002425281006199834756961489384823064696760031652519647053167537506509628395083112820402418227717797510022124663532581349560116475963404255873302272791068259934795166277671031653962502166435080245114190230027420935353624265692376535371069853658674101808984142201021767063378412102728156144991499092098802111568386373359645978064851539263754131129354542575099850324404069368805096293728220979919312477227595919219979631145150255644655847785914038217306514737175052186672575663527548154235250865514160427774793274708224960170512855213540381593885839733893849531075000273037383114543683097681610019466026185216632240795537990105737185212074630291677588488538493744770751698152932305395197875268739801885970018180692076560294288796027345722509016007545513122235076564652252458676676216099090569807759365382845993969425999745590672597044736519154901996086025269878063847080254845114158828013726143015712620277707606730336818205513795948670135320187931659211990461771500317261558566581773615860234827953177597836121890147348962750831606369928375947529966304663684579617218271427444873278216072329306992501730466451355937966034195505230826519581578513073650784683079940571325476603019262498740145644016481213275580647872747950349748688389814716527687573899750409688769711989844942581434052537848507480662679131968516012312981600254449270588363743998587977813621605886347040920060889465361583915029684095264486663604818896939077605050945408660679882963200317204246383671362782551332959081226089124815687607048996601574322819523498195674300283765262579767471058019472962279419466891463998662592000624218142996650804347569959280624506968608834379325594215332170577049116670062013728824035208875957914919483129497935393440653254958405451874832987180387729014272029470083063831180018760653705900476033478609714611041301441042373071929998662146750427192685871101570588361612871805237358621492350491134755161258024284894383858284116123453173785171807319542198191897168422072262308268665788855890064835683311881578464934491425913120927943374286973986081134504600181675029745596788460493508695435508309253552323993362482065801527673392959013869659990901919066433416618151165310811701360385208192543791607641821343577393013829233875614759936763484061810367902621552487096926378390221653713261096648889841647755248305959336042945561576385701419004506163248318331001285514325004172252265071333472566155217337956074660453733238717353438297867104914767204198657915324584295337961759388723698791820227753079429869924657388322654362486103474978134968796449481532155917342579689813855382221606544299084600400685976997570182939810751644066147618150772886135482836216774309423371152351700708094884185246224831987005303968072241983071493253832270758376159190563242469064663752308811526055738804844216762131352137645104471857937862104828879041192734915961690040487207065662579887343827138382143707025583337618420750527548608183687055958641508450835650605767576328049712307262469942230907341108981842172274891047465908078686864354395527388586124962753537327927591130520634206933230835102236367278315088570506847745290741916851141626838293664485073273357968806245726756106789056442610009950109591661983320446176781548030237968081776558923575536572341270265716419247279390130702173878406625980136662978109650122260891799485206295682611517336278709885644604776856017033187877782008072792260649396964407524521463982800584447694343701087491697521632014993243905175740646067041025219322933318615367641058873861765807865750723266533360681138487824229786025413261305999126606603980335195951517643684341366602721171122838741011035465332050743843513721963756890201580355098604251275923849987532674824889411086627314410688908571258957360306115790969518546878421435357722359590299130637681970570796265742621422057387540179627729288565712417899400784619392559224258300946509084932951715250264806978314277517940833801467298174559276417621182510501532192657888673207640337681352492360922219486697426798855825819789653938886755140255588727928730193136554615216432615064023424540182370737709437366683378582267059467548113455562453522000252154313895044598975565166283681104207816642254683023972821572816964671288379345868696613835245669715054910383656808473271073456377793862923366120735835035430366085478718999668019416905442995312548512974872732988089051431689928938351357610991215702874744321435036876034955240624180960734666182711281327040843338116861649158309350722899566425311384391385320819372421873229321316020360287935749707992056239405224211120566643256217243327770232627583162341805112038967545590668297056768880346796544075057628022592396029865209891295264685030659168463750961556563746064052251995477498906114595688640780052187482055812620377856564319968644158264324697980881617153813638740733724925925010243933625123933460937565450747731340896148782934970194088005439744015316223882540251483148638321985816213182027167788155701353292486385457638630642434017681943652238147940761387308205457459098682530485616142990731477733812809756780606835537498646791111867385102657061013864102209398801739630191732560641403419000172534531135898160238897072342141161865167696834332867486089091203303924936728532431044261739320348389511727410961000711761588742867917653541238364259246833941797877691112299593205927787953402170241374108384022741993110986993696937342958035445635349403894236792685166975161807698904967298267187681300797739639432987346945078046671529628584011454451917873037421864734860119122001079190599478460198917047429074176535923978869532832476301558856448618398278866204776036572739724339118250949880160061774511007379564808274421255209374802388012989243420892824515781505408211045658209823638565756227320683293288046197771436027063324665631993551068632294705233935477651013783913486015252827251696642459784859609090884977241043622375103076112100032929494363228255817747445850793767895916940414327803079595750708268622441320842132319811467814263807874760682501911719186658721085964159154206613975678673932431535955998440960657432345457299401793345592623781915956655827935974307182130317940716277938353088579166561699138715249819038317955015209887262256756706033340003986988959489810438360977336576476075147530239502902329032587203115656316372979819830008692557270211002917452727718082802547452766251746023452122573900127972629540627693274706940443887038248768391410729650929940573794512193264943199502947676523789793532153707377824807801521181708516926249593414694276301423256008772244641891893163362133406536156821030040065767269375413050325054597905466305305851850921638705678511554862114928444599429841263896869601105939880337752879755995769536526103252582566165836538069179244058749608898307080359017424201727307807828604736696614956220670155192226951474379280433565448600853417645403156778762516589345217535956289542339976081738688059812532791709152961309549769347599076765656478158219853991630561563607972702072341632372172469441064584901834729357109477220091846476636706207411750672939798205052490270644976424373708986641199929463997632536995658244315837069999521971399560916056113328866544867580733049633345382727528099543075673359037937034014050688194174753572092381964971125922505362275693349832579793582812043954348061569650168563835436889111514030213085794167991419409530956681272361501810953630173168814070063501740170501005645281089873682207520251493295528833555875170677482777655936416620288004269613428102569053590187600852156488024780284768582059303313315744155201234616824223455053675581331292946915734241431876915264760309673727366241170577575713989975522232070867060971854480918063272321182286351210171510160839949813539350423022226287165371662488614724263804566784512952613738621505594275974127390620335872774628370812456158326501253719012815119064703555725291330820991097864551484938553968838177942204902570062859290593909612170783745093640152013976029044999191329288523499545099298171723019764506840582009605154899271225479217396344606705467484991293473370112171752766517909316680851539930326704275288154261746481529239386534549118626314475992834859915287367733290987942559554561653971802398981887999062588358704128011230760246452345546963902995995558582423250502926046935639939278703387170863338268124821026413758489212063946557664933682958884585120242851652729755388512829734861923845384865347364115763744999167527709035171434085731699305017622994142201388030189352607273631299223372935572759993291907503606032588920446011085939360556972174942710312832141808297823954345388770019353606571735836054844657865178438131158873921923733119061183574056230330843868396033243817011062069204004066454180560921444347239103264084776930722689185359475804671851797098376017171134889647071454211825893415820111828671695410706808821518459639069764131770498536731475676029547773919632847480287464807359239016552355640384882212670398693140656139191196093712280598242146731098307079667478865329071954181063128664421253145466515602257747095294772128756754516808643130914671144935875818749593442613864343237118603341840862466443870551531882121847099137271461586358371498242690476488062286696719002239461697039577656294789583801079613752808052738841753901648873538811230797205211700233993205666430295711937317958020912349752548792158952110321444129697187050902432033696263084830585310927839827771884315915388109878967692170475852157981999472548569487286033078609063214976124958375756264193221438901675800682950132202467587235645606987127913631091776056079515421765526728480427564669825500454926374925293972940316631681635549824383623661637443572951302949829889310112753617451187655987076843012899383710551836008395686055152637843793974635871729775566724146982239667956528996909274484698552537011685706343683968755169911241301261836791796563856877230233684520322088019179435988231998535054101194145130140743130179280636534344605472560667470859623279962447695935637306270653220172172762638323320861811203532607561468408918287340021692610152540372037585658487137933566795687941081864534002553764654854373309626890409846173347721667910691410680865754311757539622731062058530577752743108574912895172651164644524966657127443718655528525534537598753354641280055676983263613545060978957363718322032014095835064084767914704777118642045558874630960918087942807445389078775953453177316953764783305364038688774477035246759873880277523302086090074408103110199365892180333234006138951192780763485690045869441046011954344733421864595119255069452823348337625343546751354491857318530717042502566346729161244697514996414499341305320098765296150893643543416153366969616434738291707014835558054365785401329969126076194465841844927435831749625720664277504146906627940549761685187954242516675427263547958315983438211429273047438189249475459002533645288475162829206280226573322063129474274431596306224217443410013850185712181872593486919200826261408483742084010210921282957927782810113585797792058658395424655629954694482759572995432833380813652331525412099152117627788610958395437735043741328283413260127006101011119487391445133072270174649808100072360147972189895040049577630581903124221229345342477978737194763401255676522625040615928066435706428762226383958201284790917309134836754492266048311720028333529961050777413356875766003370899541575992810624077512561649804541100968951336751080174417206354942519275088662630460700997243321771635458805416210776606386695400541573093486813869647263186235327235753174792755607911141233283933565703251038624389684653389187943942814994482530298939952709843257412289886892042184932465900143641531880950648671183842565194504340634431426546814903252794702170462552532013613855345895606902328114987154914363741072878165433006456333874067282373194728590489343569930771409455804204185009086847130095573919145279836036628723021620936466168753293186394919271433033728580812663080136356907819597071029453919373869354547659740562236226646680101446939473297419955340567556311023749825182164704210919119379901193023763243738088861263985265649290907108550703046134851357237502247693720499916339658876933694381804085938696770175596632012540959015249245502076647672826737181530476023148315782163020978635784542112592300765222344673771953486830378997260004752904235052523573771089355916338867128327328921195909054109252520856111898206510885328549874341394425000970585901866237949930294217910907991068853866019089339881118118793270931291124658905334143000969320966034037495858435566493891184844925043625066302902927249885662910405631451434078401839146657916648127560853110630017029725441204951924368027493608323268146349123637641827636433922731086061306357704571427554511491268352889451304108805612801130471635916960419174931836919425877992925433526609023969459016125337854641014408092310276169942462506571280343516054957710771878456065506006727787339249308464040881272989534714699703416705604852275173605159026399744159042648365347535553831836482128370864562587131999673394641326365819414200504925510526397818527273433631780158852738304473801567735863045877779256660781452154595850199903035495773206204628616916724105944098234593273631319373550776188565267483738132336642306799040070027960348639746721510121752343678242848841110985670697159833729179152722144935543263229841329830690756442032483214336404283538013096521254957903254765685670029042040778385177047936623607747400145608902888591889353776267493231416951332766600362797172423145965715561503135253882219752105943906822041359874096003428049945530490821780154245593607436729331930190629897638759351601691179296590786045638742641348864289062766361779291286520900217511603916759264822306495980508204035169943123527267035876081808103661251012321995453797835777771291371748180727761893638364212983784969194822515593669686176525512044175324968756361683928636164901990674052672403955233943736877579018951322055740294382611638163178895673960456682081850535058429212131257314549885121928792476917774267735288503135295760976425819658110055253077380638555688007831889714765804640817040259374739431593755935592427951361054742070928444766347589519163813233916404273937993788684149423312581852799467656662979412046269106043781107378284595507315112894003819322307251317640258229363639495003741039207515259740097487193914866990565915483668213042624111323418929169577541891070649291826079131988617781755619702052405862583855359472334116740304528818143894349226613577441320310076391969003638476829123176522098136399401924181876362817082698691439824287072388232378976108486441741460588611055945483719169836736504056948441567459850993641741388784161041303286844698980288279793954532339341415436850123696304306484981320273558709730575928270681697084811490494182742144398933753869120076077571863223708235977356692867390604172660068844519281108404281153600104312268172424762939564906992885709387156224391934165248411400485775803300352499622888525596308032461698485129632379648990463303175631112351450929655142253523275825779002756247522808123134183546253437534377190967872510845602901250447551058534101379668013574746635300397423365052879258767922301166554404518647216366794731886384851934161336578571386097873775569433816729386466404157268482340783375933329114599837222901970635933949498795890956745789829512217808695563080635944084816980744461760716895182622967308216096774382452728505215909525567370755485048173861488651433059869769329447314696935889253694356418998347719885393668557072881300930728800769588373950408351732899205983838524471232241561679983106442719321375324224703507549345098142534514856335981086855682714232929879304956565066840253844017234821677370787057134275667756982239805971834264844138237131620144091856503895892061084752502370955060795052940301097608017108711060176335754635078527561810747255412523012377069197588253562311751979856752130458045505209227466442716684016108883718391379218781533529918554260356547843520265804571310914896633560808286196281423620082141996454082551908510876515508166394096687189604971667472672015330799030160847417737269534609321610355571077116955124285990724714273687537598006682516712813829531462449203923267712002257408825308036135582028522197071975467462771656408739972574204114765484816456602940046309534695931821888743982797730177670769136725254034390224573114192522835359044405700784398503254542473942186951157353890573349681120099049361675733823226838216783511479259482009964405663173286704509834492655477160339769753125285542498104069556452184048701619503775881884691738611708524531508309916688949283528465371908733063855222282135724520556780956967507631487205454301725515094704988174079245094159569552328233708316812421659540027809347163778429280142572664891821289656886161614407794878994280783067177361682992432820529954064548720480991325415679763328542008393999186217401265381829559239936286183509111490772934550681500172162175308709868865167196780438139365286204509287324931358102672276014933865577948229878117118488731951196331777732744156601958585796693801863570554798541849381505742394264200772666764602741618297587158863827277159547741894794482912025782865032065114670065460030129756035594229521992468814056173760231937041032832595738172689328158496597768447900972626620836330417013419360991184591550124577895463285454220751504305613056752054636540656069097841591317145040791898625708226208047915486029880979103734133697944714466715866803857584839934539512948108063888344514924744923597688547002800855025911786516588436382112720046844693430652392553717832113595077086091203275021670352803993811372152964649749506028408168440639982671986179492942042901816050414750321202260269690135393846710249844938540720924020970059507324226469249285807645568667507682698259463599850119132347358140181921819221984248618818126986960573542385042713028099272784155091475755708903022744042544291450902896673846104398629042808104508195245549414544053783173427518493362786468184918564578332270699546891075170964425508631430809583551184711412018312527929609533199894836939640163662635636025183575835772868656201385743047665958498110287796966475570297785992327671064000677695827407056104413972594815701661843389440613478889094242407184544716057440329556709911708836976231166771156217208033551035596498851102999090603641655454255121851892614201351427387047758111018655683423874683909996698526057914463088330472402596391288405118871957825753714107321583605253682587932641988617621243425581341162575659232865189169716876135278574456042872493511680584862125584004245119496132697939945079829148494946545317374765322691979686019904780325566492494670694571863060517869128572731515159512540351800394323291264609911086102759203662682388418178567064065241364691654252974395116488205284191990952558040290799450579725384953152971477226854256992403772797511015392354014969843928338578042413811260379055063897300647052908832679637967899584313193839063265202248810747490257806136795800180878698427963940218437669598791520226968505802840807056753381795154978964877429073645760554827263278973017460831611485391282605522407948194991621070944091928762691098490749422488373251734976088466454345401858901709948993621784697403437879574036112176095472362612555522599783706988190324629096310012064314137549913196661213303144288412121041206925332808270739812872959168441020765165530058670876961685164474550050948418660507212434645515720440316692368733106314612714661905937239208000487189677919002892240186478693730803120247036999975313055858769748062010891876880383239337577877197179866644611799006432446176529623880504084840844609442402564064656728357614122816734723979350915951512473808158278740140848499031333986526724213771967806457501370300026302634258747775284610498710446954453880516209746858202185701984591280064495691545418287021273578400173156891894714330849427049236588743569333153407413080336042716997662307689113901146911775541075465533644692013471528150633945249880966817180932202109653732022323386810397850999768627048301591927145219040435165053600536876764107608691357384515062978656273097613411124952320070173250576200592309051863324080426160899801297649208952259274637349360019559332013870189915344608763681705709765064096794507133323325001513783529144860767632448207537890790795495932880224369947577791722473023227917641608935422500058760828494474037740223263972310510518262821354637355053783274033005042007237739538785385335735933078170915881429577472943025988272854203603492569342750771244905875618795190015982071417245051928732107314876968991361800766741772001654498434338718320309656091616122790241995521816159684901916724691195425471204242779693634930049238198153575015208728589899919822365054099244876518469677882684339922233687298134514108531871536121282398241543101215843991988786613282786990956455569738429880089914674972517310212177138258676597099665051572557352740366474647420831965948846844897025159440212813620250591069567311344894126513851131780367274649608113913506717511944437601683531642044134592100622853606057209459977434434747686207304635902767482313183713226184697866462826217057000549314550145343568038510772776652296244350503816951454749626418857732889512465892301758490567593894880693502886763849930555544872857284019112815654364005370342091023807555990267658984246225212764078827649290194669795505460091228841233781849990138704787218853011715546233803925039865600604689774755674551322855364523075157715107211371685858543430595847402989253728087373616975189870995651541070096218370955071279217529081118312240120027825289583005538061440917406861757011367160049485809528345360002808385003235393724675470808297661295354649533301119540232873467832223491005632556077501295261626428806183515691494451350695110623509454591640647888515413933518891701535184672919298779513110183523519842280532134634853982097830494973957025921842003415631626304129535652823532330081694324931339315620850448124281249285103621994397135289884064508021895962382304968831118935603350611439043141350109115138929928237138114987223157331600429273652283460382359546142063998795796718917981412039107504030349084977292949621809178830104327578579826440822356845754891794655271527962355746632250008287134918521405410079130719084473876040030399340765717017116786787713386590228627506758257219740606969189272228493280810618909948174072518846833454045474628271246939305368180026192823405278655570118749939638077481027599739897536218852974642445151681140806719716686206301520935402798450136595653227011567513650591222957319089200375542676621071577119666782000217579761407829869344979753193576129318978379603072037251106122608849482318927207912174395658207849804898421846102136546330652748070617718521789144241205982384382141363156332324313409685868810384806246654750600597449307345871428763115027600182001963632572916826968541414823995068192628364181501236875095220314077504939644052968576835474491481525731312218610292400558763349557837130919494465606020563423703629440869126424876499359949395061526979628273163374037443982182492704850534232245048630349982086953672285015601106059650086796376237224517451112875809571148094560778381987599814381164687802997464852843638618538591751233810390665146737785426265178333262759800755744303590782198073734171305978193514979600636241036507811193087041197638557965811877639962350852728959893607921821087249031685784595187438385812125805419995181096812889073708917708891846201861151821564458205269801129893714070564302964420076416462486804952386117465788467375207028526085731062911274312744075724920424672951115432679822126662054132444270924285573339474226753848922242673316162565032756149948614003422336548683056298923929714836834363163447336252025759373065806725617764744959217856605741523385788514246917844765709402647641380053019869517043952638517549486576702277237889148023852227947648460713534916683477325140615651088745823174838412654735261073010840246852481068441918630662639473397963021979643535636001966586909142807909851565943936066966679062613076604033597904447159302558104610215675397030550916754798864730565960363494558354237250513306866447667181421508464198260116737290395564058020393392696241365515425751496156561608007901085825177108030572222391156320731837580197907559539510295833467178916556956145753814339290591072186314525854028273238893485848435617406771230426609751031442736988129326783587697042092264841362916637695896061162219995891200132652308825107280224064299164864709618480849222387332054152788869928510970247486916916688325692174629035489212113142322415005802248037616433098451488909828190385210549752409323667941559423889545405476421689685118316045712192933975092326270558515705257907400032676757483989782801313048034811761702934885242534019639139163229804360893602960223782393327123515006238297690738817264442836585461492819136481493517267645035455570182026246598179813390482534471230374988164184231418619721180965783290028011292360792921467731886998217276134826234300552700863979889560047653633683449258445242891201936517660739261495176891151573623060425597286740706155603225302406198245754896498444110045071066695292875113981146151760574034464280194299939581391930013130971244363723196321192412688383384192027320510683988474745257990084110992585803438411983219015215605661950866118781044934117557801138312073234357527942014265082058425767343568349375045388749773839262412024693110021264047884876135915892407885354902293267594024610896705047061753073769091417124741511093390858434767680619163952889837815232462232159687813344191942135372646343477622905199028065069797745163754209087327084877659036479037644907147812356900004263701866145262262444442744282752725266833238504592812961180581354960949596871632552727307607169621224668039629313409031835469453605537463458512342397758522953914983642318177155114098588161886427534075307092094422514872566740708832372859806313087089972158832611235538681292454446145876436022513337908381413644772125134430638613804423694255241513944423691988002677100808528299939508748142560461899679630532995263689916248094987227148719402925666209940710174675012759308003847690405497633378832121987489824900052376479102681857320967846784589006903338628785547966927299072492537030160373055405649405662088526986201926701604184700199779825190983424072280151231245382376019549056371247694309812938763610285337947900204197792942938276294200254264707908093253669769764870159834524235167636582373128990343857423272675569957192139943433638410141646742041248355233567860440080905904471512235688056811351350188873738718385500925960274540917832426825656427543176084959176739934099583677848387007784665002459396148987109470461352081614571977551634143737500473409888876363588109424146981896307124125323933262721198467441267543928402094497236297656633950564110668257170984669668639232956589188799659428816507386207828113406751235118671772249851388216492693481040834818031334534578158653505618292978330543381666927180016919256832061885052683885561043848351380990097061656062490941082802451769129604863750703205869192910996981253254799984910900922227346135368221912305898146400809238883651512548321244766541279686569321824224375317812425538671106468348795903232218747853078074895379419938526446749326684170826480708006804256502190548363503569286134612864835203271673979694966231159744436944941893326667304507601395083420100480221810558454986890887481912555131570876088931059098078359805644376626330888221905619105360732558210244052429674806417105801742319818637123903137046744620393715865285231970499397212940220025924658481429555521681771161278857304061412352216566934383826938292555374583234410653018996380414391021977920370635242813283045040430532020427834921982817452033306609108546817461552948079024283249544719646648185262770516208490469597390075478765773098807754047826606290890644767177525068130607347871068860774468202242612238002020171955590137375794076748784526092178328695971755956300436829775379442309831802804300250844649150252050852716665295731102221284439338586324382052385822952546260267904535569907278145864909469720178319415959160130016381730871753515683879311220907259623404304530439456533991267579701393156849900252823467446025791570376788911731045164204388790132197636672572552157850884451935521942799782890861218779411809657457199032357086839437018148663980042826197948527857311888112059830991577651232066280962832017741293517165467813606947290338960168236702580721073037165173739013321659429650531419629736262636603930876960766873081527014759792292864913837166136538990097858919683507152622149749344788540290002270449343400399178385876522208369281546197361258888337594390381717534028419809198565081051385431246301369305927119434364653019939773286020032331560103789738560069086435617291425868351297848424690780757600600506010276601532191851149043691483504441810042043813579654972418808137772339896964309100663345618216335902856143322481190352631947806416833917718396707509249349878405632039828864609423658908389849952039663401921249415340222683581519968865815960305785029700610231247899068893501043528222766291138958865905987645258081569695159857226785256003020519455125155922825090139558805866255252772776868005938430405670018921865316465186893104639913897705148770848279298128622222134724114822119604182491325143702364660992345535771989955660221871539998459773110919238889096937284723281847588420991168311873138132371416389886243653932604982797253058026435554149255520679345429968084250324679084662315955080486615304871817540946128893808298228062056140950474782964336884625879949157968624159845755567575301398367519364987485066118499802283982382473599346706610320431596863756922758014404768144571649923466341972320145965302250653517087812720432480370107638846868456803960891884217713292458802103737734243957897504364828596985328674461793445278469171029462666583857809972319240668937015359950657749326766321433827454386175125921780444435673408661819798461605392232402895439646657589506995279572444535055000760085692673953984004189127024645007970689777221056901779674709288772363776339157442303658230823854206975560257633559924886095397053220415460767246116921473903605888680146403489392277536787839130823771288179551306330121733830231306030407260762719317916231001074454177438495740430696908261304544990966774707697797511088479200711620459941749110602729981723263139036023895947868030208783748222470263521862098734094614828848513003057693407598091287768856679258491814656297852697622384798811574755004440191782501591394638596718856466961399532204549053892000645530380732635638473583327801540106256969162298013883554717826219337928262771552822569265281564846074836010258645471519330632228670301455265725135520739741005333839184530654530115546467134940426201455668973328800554427344086897863243772524978873813414539673390765983529221617770784035228975064196419580937733011597688826930158501945613620295228287355010159318558236207256745809007756284293890432366865493706334838125300208927324040327726790092764526268532249540831055507065357121237002881244959903411220212957031601292633012877341418059210929733783604906531519110312243802106162996845288949670715293367620332124770830343638548289172636401415440780784564150877959060446399429599686036663178367482412786537135792552982604093677799898194819859682379539107029242449142102025160256550658711256066449954984983907467733093554363611948827445301858852766227791094276781842848163058232549914756452651615110295245695230081030382361874014849467949480994637366012561549674836963514518424139018067760839089018432439319106169776611392151191250017695680712183909697329650377683085708788058617097439260727386348564088485800751642077907995614853234971495386131287961267136042400566234399186408770266698723630573491377731747192125820180326299421080082417290026758216025939481348825212891619824560291114917672294939477394447189725799823716303679981358949804900819322703748974968187248721299390089386251959518173648048984278238168535981146203048193089579813808724753044361840953866869417879803156677329430035793842266992053633475454204503257176014929775861178980207389255033571945207857142444298965359713831696368545583547185066785422877892997724452494182949603695304166398638147813024942753299088834376710135827910931736791347260640028350132494915731789926394099710478873496811009746772883554443010462478189905976421162419524480312797847581619960019267366793475495599987589830150711248572584405407018087029463741428707425313557682639264580085930445899028703403090640587697519177999093634085635122275072818610813265010819552846855743837655756552713213998708631389343477334321983678717555798742493423014831201072348631844654284729283097089040309648536093875716027184354378627405675955010282776544790508568345438688076731355593289997118996781339971409878738487258564016327824395323593702121157522821187283293787351440020083915871904534039979561058227850353126129907116638533668463738586707861244324724954828362440965173979228822988686259963633253993544491007751986633790061157403736457960920655088112745460374981095241877175711304687429592012230953330708500170896721093540897251453150988517779854498596405295238358990109332661328876547206097916665554984412640876928040115281141240199488776890042328759398054278088462055354834317434945929160556640959685022694912472364032809835771522229235728535122354041968178028196931556593307365890407179003678656089346617876076629315495449193329552569211734542731405212655038386287274207180616721705168813899861733537523976349268056850152577964479503590223917509659393407015693216307040427066412566544580419240048410178060406990936167836677477063356627690891758412363386897821926643927904263039748452802617458350994806258191897282639229627563096105744207740295076038120272152765320759794635173400014109100484068482089746361471979777458964293634063443829297604821754794394519523035297479747174144831546113439721171884220142946828121265513513368178503892843470932899645648674660932562438765645352874857927581095997698351046149869438911323669484234373962626491349081801411201848094923803972549185886369038907524495536167828437618374854223860883081229619401225377838905292211805319462817559258449571032445330968149767629689814197039273568875441432072394059017905400334656785917955214416730227889921939250221032141627277863515601566616292624395123848172420021151968197024374707945707285783868782891577969110085275997705174555388911174867973271576128987170337625077620958280078519445285291930595903332488963579446399619173960911276663602615216862108295469844567123019682272754893518419152639968749236681323423357059575856136275897895801125380566330481870456394462061190963840194372204675525645410932920190304138548358136583345512518797093355784917374825948057471646948572736612389064954982877555951933091414739773781361306067046666982827284511130585934885210457084250814191147907398392235013903560707155360411290938550988792429223538406342214656054935434973261008664020703600060668879057767317366602098116095982133577156162167156603753929770393700601952188417396824784733552105946722545995293255409477801783196128411411283047844875480354477921208349710869612648561863675027265975667784689052708873659188792951978006353350671535862673871085079103906988890181140448328257596798086423368670887772414535112328144019127595444415130641139055692062241369507514976871268527921765443243240111116626340623699513438128395113446267788365603539711541076059800551966347182536846180079196695678780897353046829981079165144976317328179458054595315699275302971691607620658266610233572308960316313575609813820011315432616127366102775322428341109740421720757057481228876899255942109353276060877843358363462749965856556264913346997166489418875214478849472802101067235384646361463603461486660697137529669911272582688760685365972183585255761805616515742919458864809527259975653492281448728054665100529935525997855048100680559660504285979074928673199106504620404092084131523953301559986253117156692518979969757446211283497447504235690897974384689703566664505027373756425714854058446051743979921696721052285755179278109657550845612134139446856165712391796298955730419883708633437035873356360366474820549483148558490584453729058435679650812165851329069891687119754897852085124623774201519201522019436251861456601346064313845123790492388187102148444809480360654187087316196007027525036803980872607737644840155755943915684220802558712944926358311612705662416826719761133051075293936371159184762131442342554698929542119056297443001866482813725257375352793005064995435400200158380157703624666598494845203650977698000689778791565814909076706861236517069340297798881283442528811663786712018524289734435644876918127448628259871775489407006479219492228990385401174253294137134850324600020098928943317451594716226634840333312293202629124434177631153961399397590571773621367522476749713041232341626157107610832917248167757250571165017829430542861296682875764602913210284990177582429577740608800913218091814681716475899231427415695651394312334105629767608576431591663314630931562243007517735705258060646704463305947328137483996627142372732311324627480015580659608016961835523753337833653506174344113915831545110167837166292831673343039925508757587717904126674398171345468561033015989908974037967228119105114114700463255122125836613390880134751654328073792218448492064913762961292060563841267469090337188138700489515141815105669317394426172511083743419845256264840188949130173740281028039822509284988984391264734925213762848151705690292382605128900182994400085193781065458473512422576202935142069603842499893961760486084000838733299060013832865276692021232722123722046962512177686593421612508749985909479148483191347992073163163426991630622578835410907401870303873930179573508164579600983155767634494828764669602036603506359516883775334337077481493989505908262882118902370497160041516401932715898669154834373025061648445906664773940084759938973725313197405742416149529595807494383684379672945771816442845861349657605620732403781655422951573262295180189689233425756368108126789476256234454722658310840594180232808380138024643531738711488612106540597729255589594987484194055146172117633109603301127949386908761742956581050339966469141256090331266000695840205468309998444497535022347111548554342099807594219255416881286674282689545185568911109654408773609900839366841892321729662131401712672417565073941529847879159485005440731635980551986665979647365107029313813555016857114059758323769976180672574848321416426288338228137604143118438311197720812099650569981292298813227215609955819035981834773062629938662846852005783720923608171288485006147529343689361134846930035484217442702931098276916893623614900524563170705542671369692759315973731083874589372340096911112798115599690893866584265586107835081638918662590956153362849669994580226609979606896853050019254284695003532198128115970991181154619691104799921846116498353392846838441234145739750863327396727448999396474497986105493440840529579561965151160626081717141804442055211675983739473431079086341481113900768125209314363079272828203012654330441779547606690449166910296073139549837755224635345149432949078147835476559573373525703673672425526466089892206561007308820718270828947359842853730257199239185874559495044133578886731716419022843017002997192152753533988523012749628183648207364352549776869247994880139077308878890618248874693039327256930160704962899495074567155685212570618040801763549443716709422138164477703382993125086580414224978607731134888778538781845075649995286136826965539565662147596330845773411931209676826184685239672197561840607346452024414988378378220544258440239069286477557908841556530634659170975604478278897315259287410463816997705403493459910966845168109233191089808697986372549288765144511175473383752974813609319972972778365352230283163059050035908879572240494754713974609986423369554440865400744192932004235531963440071446827668025213859226843603302275317948048922064456383691948343736998333917910094139978881259541056483175168212569853093698687325420020425499932836477651067515508343577801237629715400558856824713390516427403984650518682524987900246946086142321399409370474095621521726095685235196118637460812227999725391092322112924647236695422619063685556139687827181059766960927641414742877168843908297568590319394689847138925343515466578829153631752030356591955446829498806236817468326762916586661820929126940524781704657284415277663765784226928600409493331442177051174349494228390009741925444338779795410386573027805119937622963246791133010579089560927728821538566692080278097868600449321015297337005956309301021631276487725346800724909252655054632540546360038277636991848204840438768434403528470574001881662543590750633867211984989878262029232450606701878665660777971831825394988891941820420416649954817896870437333564808145432767210788162818220951147745827781932545615414750363939185494329137515719145286583113504553707436555661934021090765020513328784767388692061888726789102146266844321990025180150152590704789847304834041208488749150672502037730849509941648220341297435209000792480154928696576390260349994943020159192870978913820410876579818855712942009136794802647950681661810436558511748849408724703843305262656387102496208723229139526092720679258965735163210053622799688886525948315482555624961860816985789995056898480240127365789396433816421299884821822085567918959836378426778925542490900243877569663669656234974143120970552497177129211002226213036400381362730224369572013644908522112129753942160153123681686532843732178724830013250660797452203509304340848500748303036099715741591371653020410372645132562333223115962029307600541681319077827182143935139852367104382896881178750737462777445276762265302480430001000475572993530059473694404544662689394067057902656111646301631313328285286239841910046970469386411986474097635668066110530498833786776916865555219178292512031491732750839110277463226773994007620886933014137128404672261045115346652763816003461537062229139776329585407550895004454947135598593260801394113392434671410544597018838622144147902965493986546323411472003772530924321756522232666988558124141271921808059633761495474687671664692956304744215263662169554986098313764242735611997413138989650482675182622014204705857663140131258022753204660164691553106511130940106887646740385361795619312849302326248756104183518169203218153976801127307775180964677433986683543663582911184975272432074433979176674147493591492425963837254882726646914915713022469868434883784393599340913481088488556370214881580734055052296062183598162086476462359559294737257214855151100622864898359664261729881009708641257757939772623408562260104522662053939948483847658025025784805899456060162541521681478601728810236203126878399631390803090469179282594003459371131759336812323559504950148169724164841907835774252829713802497560566429164134191798954019622912912263805810376206274053208767557777644070275567764414473189300467927627628493046706021062915572687487194981225947992815936362556072135632024495134257246810045962790162720057907649626011941100711480470405638553553755125234507538827478864018595644572348224501209058143381944581075112744233384465609927864089095614216954185511781499928707031264688270148714699979573483154620795170317899861360081320139187543022342110952915856256265343345914756104875544506306820709065714655596358635128192173144756655325859206786560870875203032420291532692793064872288437620137659946251028750884017309676904093932351053717000675779242103884781355871409357125918711847596964498987233866245122319131768639306422137299524760254093224789459062226218166184804688408449437642893306746313364693161541127497131413486357226240706504137204486868594576166647266174859959091030209877601990106186889863514897411076738557186166255009853273681086838428491993478822086733893070554868205088651329748925606761692271528463755158202241218528763519165170982373214654213859335872979125969017878342227398251834586599857419810889748258634843308270331371657104049120830906758358369840059508857191182831940804059471976321803177057215768764461505972642455291925769678161129333307743896245394123165383355737075224644784833339059162296222583024069887776942897103876611839704547737844727472317307864376432467374806356082641040488796603339804342799151532770234968757698375756217622580618041623013121678075253468209105364522591993277641295772004273001850267362899965455846543448728835157118498021164495590929145560007731238165454125060227995095289102062267446271925156534455930900802073090673800523733551174021280554607010361928347049063779833890026481113165792655112013087087842983462472454465964262734133251567452081623966423362773323354438764688829063485857885540786413985422568166126799093365411569821127456026649964703252521816999262265618276811282229269468622889350247707519354241990927788107774298751989122977256202412054918101026950036334294469932997538363469248711849453719219505154185979330391127632329811987699695037374667125736859778007460628935944824189004437723221271697066541788071680294565327815858987607030131708152644610256000571516431510362912600802989537887531445520544598406349166615988756075380802802329094332661008010704222128584708210497749175170383306971218691283310108719272377429349417699999957666718264012224576262369526489345552497460044699773005483657806596115954980867677148282459097449671693901957802922155371905360927778135568040331674879832574641200763709908903841854363638045443749228509425458942620491815257513555886728333165593891581325435624826052245918394996375214747367142004209335532909323538821589689596699143403763510263152576346494934811030799025259242044497837071174963478464802280647661727317816444879327860851602661913338280253910867627642441092974743765241715515228240374743943165653837928492337208534213669084814698567616169652447664001927563468695686984560588743005114313755336428324681339849433558812034703712954779043717315676279866444686065919667497080967967994829392435762143512164426506088550256367722636031737437816840053944100122527968696217622310927939817368095655376910298431640489732885470103888638690335822413313849373472667906871290512924121582482722289702940703351911500586261713286067487997607804072823514881453291182638368568582530941046855554074565455766206248176722169299120008869176058257785760423778457051099317790720366014380519795193906253792821384347046665075596328564994632449437789295168076653057715917673474614843029689908058750665261079830581816689350349305008442798610463162842048623234052432027197095822849474564011256976498426295608155507429052778194725385140703804487270262892775178199412608861914624912635230377547735724475632077895905782682925877238280504336266621338714581462206805734747479966697324310054903251674497134618749353686995187188506731771677423805154054349063812610783208686537960275836014215615182632990164219823492835631922933660127663080837676471643211058495054324862913763294568699134114105442631652122556675015129626935359168039982874939684765637139517733591936580619399761456807720735971337439141876476484231026858389693404731815352309494506570614140114729931123413700322769640060313135442356477415402493055120129119038185903996362116607223890149908200863525930405837366514794249048377353792073070736017380855381083302111868708240221183315834131538072104451387295608482311904903481001998289366130733121723286376609711637114534002598870078578380166592706875924029489135157167465591823925403676333362850091299775572345642960631222225998554281075948285629866431348242673677807958884436204663728640968176212584487890375250049030667032084854667537113879283405435917733855756895237984957465736988208894618089185523252496389267710441537150152809388740002432172812643155531910793620278133856067386336825494263411074262463409508275736247368240961242877060222548494499466334677180761483167425473598583910615951974427683413802487037117636175499543070877044067286080003328699202570159989356582593301732222124514599718255135195163250527922878378529425973372191212827449908513895419639699554535788698047223972020602101426136251640603711594408830465940050819196017956121615465769112334437170381364699196263274704774887215960856426909161017164569355241221803691209562427651298005316565782705921998644388272869633751253577086920713641587956336551154359019281104751175371041117412420324118402766152323465987079545717135092484361932324499486299790040705516633273369046218480891994611875864399697235026823092485910834779151133027957100411971518510844405187011675650316827392495419120586662224232221432756717857778121768644345227533535867322317322407333131817180086284190929960178076579370667532418814165134994733412553880823211440846793218311539609668902875205358078703307584239940908176369261840128066735784119972856628206080382359821506325290074463954088722624368111722760055889765411491406741417872973729411830968367943345246824049479578104434928088791728174068397733130158265386752190987091326510114515439801871243934755199204832290795376073835364990987659087271171305718597456990284277093819064389752218253735984292654943581690169005898265094731872822418988455782949915459006343389609108134498721464601809324455846306494023564757601200654045851576670834687690710153840302986631073380714974681097586837381426109285516443415455635643226706180632504460678049729327319062998673268998248891677964335923498960177426017063437786681619991003871112129652350105209158656464010381272472528224193541640032340976524321433228793357926366454322885541226171056199635199753336284306133274114021954481130737465003679414556105537216300528628234714699964222054474370775902202505820653097853675858180525799854335138138690343718086212701945283443446820891181762252476871159917226399413463394770816619143613475566662203372467967777979033109974225868587404712215318516634498506912847711245831509342842742760906156340621693039534069226253387402768876904565594659012230959716295897307458422751278091406248073610577241537401183034338143177196786075014437058398391064478021506725064259007789993534847832329782721601174167676588277719910900813670602990986422693003774348002054184128394747335546990866140077570083727993394592514883084444841327473193995427035510595961146285774370742840535550718101400051484881152026624540467895984876031471745088417701786215870460058919832481697070648253050933967415036202556719115948685481672456659338036599172054853728252352135530504475547060814357740103186522780928998560319609910457211395535400314449855685597786774462607599035449913476427191933053999474576680309419819670503904375856166828397950482157404457185275986452637417654683985588963553154236366854876197793698111905182263975183505669975417969022990274914616906855141831653292263265845486011025817515140876712870889481218650165299144043340413622883247594968124740693064049926480644170014124004146233386884064370396328580886418912832963030622032255578358867728851314956525779195479336864840570655743212076941666215860970089414235223974295116927130595726217273839510418192066069556740676842417040352006906934564913011007427671002454928279437115247203315893275522582316886228619496020579592408474814093483001401707349021127371017370289481506818009108718533963004738802559216417459205797535433240730156248669803704130004827674357604767139611778946381843501450408437066767302667637077434048272470284294427106930089908881087073266848281442897468579818206655242426949657668038574312593138592942620571252451900481520363939939616301472566342843370730828088854500860188376290721030807133784969874118546382781931870807008901413611088631324750094786206944951262936041164878287964752323138236718835430430172417039791533701701440459537398398613091169569872849161906976531215553182875690973445945755107639233448733583308303227728695514559692064383749154567197950071181305336777421848796021400397106763066709347713144781505792858994256157250280807773602971137474849239454434380860745613588455351943789374377970393627877558813486280530079345967047666888984322178404490696776032156205226513909627692694112576511727015220818999434034530344502642359121775536376652787483406493827990758470737621869866551534824089586594669164956316805089867335675802427674477819709292409736192604575298353655402794138272054300169181344593411816958550753108711423843515284858867776928480990788184043438738748331324829254431660686297438673878724509906682886228568133119931311840894421846106734296315130438406252047789223964590316448844759153615338301411475792024759084026237176054063039917242537714450877364648843082061361184614438764476532787116352024069872761198238810216883858229384846883724378381535742524783531319681523981363963513096694673717360299642776846928743489915879744586868183937736870681372302787743275309531812404091345536171307752217896722085177849187711542989169167114066047272497149771680861649042776701124675783432770559954318967893471483622996858155284080429280144403231625451556355730956721632473436153874312328342865300812297602826308681882810235244386097416032197542804649968377408741616616344608038744489349483125190296601994358799189734569240807159143645598212518095117722961481209266922777821337900418664648720162454085826523282555690579162499937471414874136897660387531020154619853858440551076665327871680868554935977103558008408357760014680982109320684983821820151199285186272956953645683139993550373857664711458133144217034414293467525020834629193642473571561689794315011498656837849082067923439038603329156363196546230071797872620600729361962582576252896263158070193825544637314445996103558851947025724447417788953076635224813541637535370291444623729101587478713806539850002277294688192476178079922078341287213252708809886884210280933295329743507085785922785527466326101576153599837823775236977268291404812772194947127492540949615193934181478857249967965169696890646725253512409905915901543024945182937426311536631431456002441982002331404602061160452946013604917423026595842694311495788439014380421689372259477125584534669431451178138310523981104076415537017491095184649705815859878664646801117930199878392736661578947172965493160830082009197910227239530304494558313505930447985437759733405560127739111370213117335959829177607402670375324574829824142280829629415101758722827444099472332954063237073168928772565661826186022499168672147114480956877629514250827521447031103478053011702584406986763790623824300285071780511673410377187600849950734584966347026770864390342360913521505034429414848785234152705516343170814447050952761609308225881300317054937856917808785230998870143137255695582359166413754666714004556936631701641146022590427767328191267614895274159930182818172353797858611700008914725594997453128173323709707673465902852175047895894606630143252203890786253560279926175311715341217550552437018253158251362898076231896471993398729499453743118867990788136093358523942010617817159188621042696020507622215246191640602126415720965264935854024488931429586694161196936201662903416043236382527344455893186041918283789315052726114388356839671290857350360568791468758254499249488699251032447055713155318356215338992419027708713080744641655194817885668349656309964003645206687160836296390648403917177681456660772955611064200658101754675208968845178364234907429489993838598578350344766847097906071816935972803523338736208547179004569751843478494045038813376434879632735630923947638941944236434421246101192914431709451024807586415360906736344091953144820644730722956760587666854095973744042820952085340251884143598249309144016423475696631187489780395380914464344621389214042881771763188431907497116887930639939844257271401777813343086760210700000388952474221278578661233014667463377129841281549330622154131694438160622365947304698427274960689314865788879947897868750565144275669169098885029197452698061042435812885550732171612639183169751756640857245894171173106440350796318881455392325449563118970688304351494780983912314761944741919206839209228337146871110867668973381585764726856672148012605785202748925098307206773980155155053809612882240635581766832884516324603896159699446260853764246486617474463858892470850536256338561423364900525770608754319877053221305035942237492749952957355988289195613179434100873295178080560663836699408533351235862056063560280434036601950412241402221097093896435232623670605560542898513440566171194089419827555619668584579006314115725696534847346559413116598816538549135387002996248009491645606104061408769937184735659897506855096359881809896075407344357653718842867085435911332520767781670384482556346120056914145680182958213520390847694458947075597501069730756565700157734230475888474970230423639213482458010361656719552332229104400167154156920721269499441194898418263185485698599482551555752352771334107565478745771314731528144880632131300289423551110043980725272576547315457148962493645003600076715442903590262625161056324778199582854462341538849333085669739463952738072544350609769573189310865049751791807330196364325193267045193075731965491246906331794885126228102941403433002882813247285576147197377614005031054668159552474242372131068332307055897811308063182942983923329974560461495535468735951855628406172712411087612743355222900532295360453678426764105639479370420168484565585182065427963889163258077953796281277353351169839705162451049460760638523789744061188681210248626085165405282348956126976654469839974796296446521408812761177657925101534535119192264778497407523166123340065185664022957112705824028436714893068951431500262181664860926545993099530275786015742386586579257950101530841991552461079756817943235282184028679753790686769482920798431879598459435151211764280459586918057289330307121690835759931586891863728682334215609737064438124019838481401274239930796658736170430414868535739248922395159437141043468260315762184559587609571400337145109362716659179560173970453524047385593293387967131664969275626345996095913491207835638355647079611868526541537284853927986328392826322424706603157902353446063793836931473198190752913147922349057197503917195006174652887317567898572153695567707691274068087042536525530087279183716213831918691037967739426993096988691389881839808818729118636498175052514433117278380358055012456056333313755019164601955490332909665807509863449864739401952817708940843145142773037064216728456183863145322018152911208928881100139537780392166973322907430533677997682081585299059127416943944848014263630792877649209416293376813632528621889609625632466698478246743278033853524718309167849691768518936495849749544259382276150333582641353662109583813540063351813343563643606589377941658245036255036395672715096180846954492092259640542928340894423188448614129465947787589356797985011645758326474205543274228774130966354792569922605128527634004070998438656661928886402542046556192287016730623262799531228554007351425316601555863319267481968371214698838351755757189698444934993794984206535563190181507112522185224226054767915259595337639083973026042835689194070417084598868130066633830867493138327425457616584661108263652954784659747049177708566047294596807314027534553015074726405425366393271529182949051859755477197476588577228171688837649786881884287922881676265218919882992514340203522335275097221648128550254067801706769845460689780420669483694606856240285000115592163399548011943965686997471889632464193040222828242593739175231517620712764377038553398371853787147700695828649927663660518212045793327630693074460996469186517823167040191957433064309772015999585459742985279657568425513755126313428859416917454110574016759701363871679756884452118234502931154922318455147420050817775007924945228259107598980575127402632342940282675749296399977747754361127606672887381506525317382336496640032724380377855906205661360145600336344306289380486737511331232374762076524895093376765275757390074715961113851673199727310178867736025417097837199353619195904362353949405370637530032263118945253293294459791562062446526468856234818013920526063688513789156585771421363134827086209065681121748012491349591517985555204126650707317590516154261648936277417791658629747343030905630506800347892719032428943264837226645799812106020706991577939508545497342822622742929623264127756846889840135688609101498330009905633312141937534940580678790001167179292188799685709932735763230965865171227354936061384702067791565438443640559029285096984413729812049995801203888279494643619548467322312033482644185147046027815537765252715892089052906185535180812029561665178884982599979850725507557814934176036483561629199862472589848013756943375516673494183089868924891486989621036435380299235920510730219780831123175433166881552194775874055222052704523931763406768564269971648134847166753274346374570763554729333058531096457297698236687402295364079055900964051284588702302658137198714564529989631292089345611992369403024419418213987154778346252529771614668518686739443983175410141489717360564594155408067507997786672998949846839820717525557121788135969252888751167514727128391936231179306835337285699174546993040729191385732706516632395089197363591731307759194775310426999801207930568273039705909239425104110679381420887776746541943868393759141667197911956254393472320298114955703154680377287000121986769334739461655593514927190700226858379932962031586181414613231375690957623706802904563118982638820020780761753994082987185908353551603233155757885762168687273434736860994474380398755474703055522598000255167132000533760189620085162275382063243316309323604575184141176427539294387734703316207525676866393829294892691345198314811747294579651390623004701591772542969839328860674751457086664610473037853747381250806037196939090387557383907683727773396626981779890493513311557348520167364339114086661015447103529147688785106846852984292985627651901848109448260126115010431937783797886296508071103358584230201212119173726870518541116473129679631189320646755656039252982708002716047946990672116903820814585964607409322465373600979251444833832250935888348215023427521311133859068559571800192338647881339143607395455017488340844077199150202969065390528953828830619795414053001284532769699894137807733879217571859094863856348887525321771075099102137653051199580669433703883944125529884446059817026550163205276163856027388710406780096534230906372760998516678236916949482629552511729173284013405011965327925222050584521385608094257705399458033255452605539875495215928355014338318280696850961905098357291335251591502196339602258856711992386809362444470565924739542309673993860572502923950396503028489554068549166741160896152279484809330250853900162864164668102860185742985425923520914201022587496365504830337524203308240468285218363321982964687537894851699142172679196953786601593129118346639627620960698810418806742653906338157667034264201235876132650420473782846915914980715887759515393388263975778199010956672596226557284037514575140785877300343216472950603607271320185542383181502327874696058769720879608848880066905451870126208341933550796982149414048376918230979437283182827065225853864724889015321702743828659058738312456838438037088381556333292695920952611120429929116188377607915140953082455100430462983014859546715190207145524192005712723602220586693713320017846305937092469974442836547882690299014265997104902493214070997024929697634336868452182661599193581222287730610490287138013157445565548816574659063994423759211931611408706760694272751924915402668769022777477932255043723380900570266346065691026952190140865903630808051797415764833356437481354456483315441933311555050286451593398861969630612042326957141538361550124675960003479030019010841864987688499432759457225333155178113173531167560576785275496244637709098423002285937079793532851781661155758052412551425522068864855094766441318697560132741016033991722081766778690676414572600291613900711826752301434069453400094752319985694869159738262806932118811149574311684138632751575192692532549580779597942682995429205640929015730160829376123779433819702672404305292438532654575037657315231384403753972463048238682141284157396199796930810387982485085404647124195629708097818550437204775121207102438714155580414643006546849259950503605905061363912090161207884413769809300568373105257597437584941607790592968370252853509719624647995714769070830638634941977989126242231579346038720797084259003148782024537713927661450046411083579817471589354402461182244928738059244355869713095822294048079971470388287939135364004626215267112426264458826692213832479053750919810594964683327747278554565161071329560008338650049073581579755868824261547148370521922712999606461078000995682871387704127025993437057218225335281377640449564047547031364958954995563019613105619761862452119973081987427960123803987462487581798003160624188089807564640837020041793540986115767847664269684133557894074081442211588020972132098429645698432682984427978184638498505469269935445186079598388336329024701154472738882116855769806011200607282071381775602992864745183959778637175107817350260031434868601301668660898101923123817384452381636174449678961899765625923027396326514276209492342186857588352153925214956088296681283852325874006153593439013235008823901019018155511114114069988276659943209457162312765552187483620157308835878924876456899918358011039897161932597036210343594605543271382700866472054340654017377140090065385703192177006295059923878513183789151212931420847941017845039732306075082607885971318064702699554556928771511245363320012521018921467715442230934769141226633330068321686969253828032822573098863537553863245580073489858201620686190032627181663592764283750984972663872386135627988246021331636250298572912108673454980788211477004170645204331267478433042516653627449969161112537525547612100513237377872386971664420895597950451627383668424150475487574716591371945922306447151426413852362501019723993374173543661403088375661346163711989683731364257659118158672145973141988930260564778004946473328038833087454552757462483852102728752131143690506288845728989768888553279714331805558280710300455395847639097527815258319119592769414685601106912814045976863374047046879778144569135242570221409770931280162716248241618550923133606863616850939200451771702558326930340829743434192517820764637562530962855550951173550191104124325566508577336093991806757164812544044062787633724536365573167989137360427239928690636310512920562429290492615278112901323615929471283777501802078877009099727679453923118635656523247372947574809980491539098529249533468230411047695493889096393546774084223203410691237692385200576728460957938913428368867680484042451113363607895101728715632155971312660023977022698437047974533239867508078974530729985103372126460903392795916121665694713991570737965131412623905568095669489549875533265986677659334290971479478062813052881826731065184679941161718566374146110212060871593287457150728636421625774405957144800424482596288475739449338899917580758413960018001821010614440873222138213225548074205364951046427322944728386831312993083295021000490900240984059870342896533652382540668668408119591659475898353350157700743044431779905645719519945954891912612545666399773692962865611138339986340256882525824812991152517366700569805202224861582297416231860191144847696025913921587563131484178544783336554715314356568990340165595652183855385409612591184670660166699581626334148599692957063118914677232140176246015809381505513540248271962377214040088933790479814357366450913430496796886571347046351079458758321410878735303746872505366767211367466937702808736600809079101402514846771812446259165593817325957163027917170695846825429046256844083795007110429858561836968632689553924534540178900103525228783216944534423762466378562346514492728862756286830143979194955804067079156157110127226806013853297338784801911669046120100160081304706551722763284522600680870895223351861776367702976889432572095252279108800261461317377944281701166634545739477415242594725071549301972199963252312943408714937845238457889424655864406876246272293091421957502483401065088256369164997341951015073535812622504810087127443012214736376725962617213299959023167696003224320359855302674447148721942113214337170630228106528460663138756648920682869232119000313813020319175098663107534456104963741582545186430487457633792982087485583215703824677266853933933461443182740698371543108502448049145384181876791829999866674820598132047580254685969258092702646962532424090376981902405606847017312185023448965205241373338842391635539947543076821755961410537284490623130707003958033814142937714095071649760008187938492587580236593662885552232141221137815166890874229308486734692958896575438804159575485599376037307729443197199432422413284986702465898002467190074962082475650397887282594673917637636193594833837152878429103349078446303661735028568430723311843550237401865411132739151280291223479649704384685741994033179997704933597441262046422767921438710413817248045216360453343933028744631666810185719827101392040565512654080731756133316646669390085696083773343024051574305709480052910984748575362537945716370526287535035715728613322389162594752420342620610049411234999443394537598686127897160391000870870820525313684442246066646253452102466420683394152134096029955080753948271761301024646791706128430807482587322347846777361873191515417691893107267567712851285615532251216085478309634804958498353217344760586936947347325823112825013930991367580339971135542759530454932230634912093546921439554199468686851318666763493684262836080417715515792449870712890729619803353578115451898879675856494498312272644991905058663323840812621369862683221781996794410178656967109003000920623825148442725208965510590330933610827448173422426541847927286156497836540874136501838012512796712142488249450299499619865847234098290794347007428973659736346945288804185571568444256069159985916636041190625798664943336515206424063281024243016783218939462858310709140521624477782994145495968110484974779770947280026655159602304856659997386638896587252298603900229053097828839814765216123825822677851534056187568559645377069146777973165620855403254815616746611507297913831676176612423372981624892056881979575490462018226362191807101778142837792495509333278759956062152556675602722705440979667296562549723285305886351045061383462854288401816832753579984005664763497215013299258279636470233837440534452780067933464490374707021221011762369102264570726579964629115995380423015309940956444084224849146738473986581152219144047584531505575621382255078071022281476150347437057135502340347338922655371929649314473179228033462531400389291166853772428191107211806500964677282916781840476177398952124630641580510584440760712726228969699248640526844034504384257737367544725370975893434616648103239818703620907561886791198552959193066405037953904826324897991092570699940818734939734711570481846820215976000983930272645494101164118985196990490751199564403454919150694195974876819119402376456266302991719532529167533247359626449009491299144590696560764127787819898324792090374890879582340658264670488556033673466779048754123256825965469108489787397641872795475604253071602916688950134656245655036101902338009861113557505437689484757032572829079409286892121342904706038868426206839448588417371116196995727227881484172303758104296455849614662918936408585410151091405188623089533313745326788103733599192448773498026415450423360679684527582812199928184580449468732261955237182992583411242991120492903846198262805608614214035407731181797151245397798641366535723664854203611774456768446689394116081326728377825919926972310082842060440010416859315852220856468080512655838744402363939930325351976548379587923287624213608160238691815228244460289693107460078728758546394818026022248699993679587190895685724031143169582332573782798310661531673685069566507168953441207646052719361978214727698629455454888866738310246630022396257979582443671469738632870180967387101300880829799484014498837999071114508550064811475403642558448538007649441069521245628769477157021130436283869237883104611670900366853243388748997952611179429000402841341613966960533467569513141413985582449277639898985650682939344508231707132443041449971253908409914318863876165247923145389558634914518273759973606430630813705823788416556901715714813062324212023879789764793217370131166956513606525357722409399530510423105458632926908854829995355824057629763619531022116490018595024707182528899324512989222768558188301467789838949574200430257705437779156495505283284950665329710360802951083372260486328490464472984779323628320253188448588938688996861343962134313619810633399140063372341700893036067428654054604883544345288544452348723557412088512071441905324120528521725236216043103833825895135161383763458330789093118174168549504727272023113658584996500873567549204479136706490301645427643846751482661660010915832002097535193645959115300005224821133581021194543929346341695399811612714383400028258617004520287527751773387736216592081891247779616008116704445009816851486031964124605823313294424463249119967777460676590579300295661024237661873133383834619050958737014327501170787290894336169681019977090314895258470708796999020458014787827412491661831683507322181364047667182590212605733649845540876780385696396734097701319511600410439339865104797168116772886137270832731867283213837110468456460210099702080392883385920225758299121454614268310335992509548423575485028658784012331973785174218905258537528056488068580657159612225781948603548935815415347017291655754601688900262158122540895147257264977336206350290255581879479672245363278029186852847938780052563298674253325920036568314467030757114922213870031163175136695518491466926871569575381342131334889334594142573351058015000511155814075077470470735459117827574729571562075417228856433072529563317838643878130679477342202330962388901017564712961201248006771482965646483496010460209726803309826949833174458278686637544844715899876238250529812254835976044142594207615726842163085490685602090901537315488082424394868150149709001590366027731102679225272630916629729036184276730034311364818905542215813577506041697856245353455686831758036138126082428079549673700673411221453774478425663956008080682099373289876674656233568375416385994469680122567461890448893326551456570795302442025505344322875628016590591661913847298444334090315670519030854389745159489697597978725327256716232321498564337662485945372360448684271594902269625069648222353237172664457352944174598137644435954776307923458206683544855133845792125658399327036955773254397663584442653970521698246184356380272391771192125245666531516086286838795691771440216661871223480689640125577228863193592074082863995682434321930447945233730571601006350500752578258058098454613155310922660940925202960520841894210002010591947509602195111620009016957683817185439465550506337188790622705352438146220503321377394817987247688474355122364462593534283839707919116948232343457913206890805082348280023169506882845242786385639323582199109754573129552390898285227430858044135310271546627863750590886524266770431032211498711311630087611221438511495189710857234165615168725461816102479818886273940956451134186053988014957559859074408313209973845622660040917409791755789083213103008324742753323770837858003315689568521046887721357398405105035031994736512418072552815296516317701867035568665158839234173069482858686670589431471399930727123044251042907776372947746876897474136618966374669768351347462472893947924347234000307996715735972031911234844017751264983935311807272858420615405948214662005194532731227502120712953359708931092055807547497362368020429300643484987514737663307145758495888162410945265039024575065087474587251879443143972525366665522311468973348101362920620252321217868663064269363890086854478724283811366192510414757001109043959283623657765910072490293731767130595937625223143775575530000563708070650330179960232212086457618259745608145436949352797690229581205866998864772853610264534558111358430489506228657436776507845404152304766682658433648571814686753999286613190153991336805833418400718158048393463199760914790889783565626096076231860300585608673503367397393087339954941885451993390580147921895688163903413043990111446112280882330928673765288254249056286407031811200912068034748838412092462101162323937570466518941017362111378066413330452206512607282689641618526831336878225368305812083996606660901105895778638093712002254269312350096779382707310756085379898202218350953135374314794856362841928527931256939027986824764270478933176438094434423309050114895754430342097392564955383391961645784746454543505734875124518030106102286313102330943619025911318885382805530984036534348312675596069991950847300749180929854971473083202770828595970484458406886143358522255068467675568601413011791369297622463220947172526249277192748533775609261200300708139395353792744783498736589538419906853751464881802981441653561558978019149667456340385417246243040735358479612304806313093348398620250906838089000397643448777834735597135806273534564398764944038098836731244288524919651037225401764924829340991610395301640595318357119313845870856143722157253019907207810479181730415667006128049348959320998894052023025919970619427458323444369439115389997795176688429425816853991833671868332087041078045341565622081741289464961624721721702337892626507039747146814361573360786310305084275490608011457357185409144051451648387812123921465031787728968483446815346124859046275414860822463808561335025423972728030172472544406179424298945841201833529666489854556784175333798220728912121633284584175186870023228878154772936558439108845509115163859866926333985404179127679401043909599534615532333811108910154147747000075836578006422043445851413670419822223257528136448166081121019905904950879531005384492480115494398875692432868757881172157665449465318949708188282373706763345923540263778341832973468129789549502669587410426268922920445944583642753148874336742795009741733286549656144621921779743412306079072790428582333040212780954477860470907459923057798210587849754524670366563772449203400516237090243502400504921808340291302971818419804219425731398102113208804559463642161598091315073422269768747892698564785924510928616729179827484567649028957823723527973169985870931240307894681040165334488977271138845917289969858816265571248206645986687869710485034108532571413549827694209546201466904860279647183241584729792680703573331539401812843979677276966298892955013149437164421088135922460692068987149750838251974908417389488621696215590580177987352587848088503416572218929768701270596350657300582257268666089463474320485711463872103142218916144850757964983807789601272001281306599108545289764459479771532105831064910163166076482491765804988828344028254071483106823254303781904990305670162900475223552866443226609522575899755193746135493038492519690826878201007626588750959293724282720696122624652522924864178877199011898593671239778502287074028166870062733571925473646602449592291016189216307635696824766635825271261963971430786191378116874726452948947181251473768230727814326312142225561411618167609228667312350727973550071639819087182614359439158772601255803951382503479511996067555512891265807013928822549334926842561012332131471194444202230005242798995043259989496341223062564216907519684474946755899856881393333813130218628380904369297795355118101694215280570584508290728805511101117277694937746413931511559821989546091961577930268363731498149011386362591992910677131525342424691172084084177677796523646695429454351459806060043705880832428119560251719362029289611997352945561843830792128265282168713727850490414769748247444752565330726516599199217155224978504160041596981435346838885767670979137433828326282189303159102321609858765652532791421938899707629619779030447316296776171276579473549408414843172056197982605042941451483523506249142294929015912760561193109077402946571771926972845629455611098976003018045162308611268841212762845311365203990406614903813831304276637929237577144060302208423532132516220894939401173805128541834105853104610015184362475893885980541056301652038554861721287010792031050186050492543297237760044096059065701319786797013982061213968270858985858958692682477661313185060628185603275277091518966950714337229810626850861569507143163386582716214660840967134709568345725477956504707342087447933127195734151202113516242282939290991399837443943058432066511955059538328703599503185502446787962509193495057900454394743473924473179283584061294641995108529105244326572308832052700788297581006655345908767791334651878387822347777937846454713067277383585011539481837223300703312953075237084718406546401123798666988372780781696747092584920265140512800869435662022463097112448573091177209692155111217040285804122158095117864339352793166192549593818956163639570648907435315889610174517722913823890981432162967310576705178880321574021964694461284426180534602717942736484587567848372575626524292058156315123490396924442828618421441896770492686620463218619525897703615885404947551710149967938432745190871949022364876921501665645666883332579028791460643487575959896051614413175745935348766557139616266037535439987589650098335411917832558769499067330516428501344359090011334611527651994455530261937749947762625987701104007399051271759910091736643711523773967065316692584712116291135636725051225190161529101734473327203934357027744229608968136688570638664037473276610724595560814127372695139831254939443100248088246514828288384123946770710259679729360035972492501263053486231727915269773108598741270575163000564567076984042843122942859183867865958845527602777112232288841695073880189833979706116087388075936799794370272263646979682032487639585676189999945576326938077360146327714110046480773340912193841516132731484897001686185385656954888059542403709220425975918511032950481653876509068900827604624201094046944367677818345268900447827668083069141324683488610327723488035937400188671989910226430514272228595255716951440960063976115399668984822293798033757178168565190565245302617859861554406201066175825533769038505195352256433455489486986858962109234518902579336904989304697519243615555132040515260548167549863380757780260793738825296883619877387264648463767138160887792736601368559950117343283802104252824131831515305705882221823899675383122455686855041944050749200308712908126459812519966565633276284975953369123497505853493842647419928669042587008743880547862333992396122668627651296796640967602498211561593986951550939282510143271559038686687627947182591535617495062453261748654013625414078065372959496796267004092966555870791630727594171122497289588764107114606888007097763405898196937450747490006487672763296214753684557806544467413449319071541076983070784119855381962604378068143197517910046926360604442578002317324703316896160194309429226834504114744793688931761943091613240354662933322045046699429771094790026366019633560105342968914882305585028044625255180115007399448471607460522791297636001865946768803202918837328126843413427635977326962295530575587215453916214217073972331249737915546521885414650333615943308131117118127139402567868130659147336193360810199469881094249586779228404442485048268148811319240074438554731364564268219724587516961639882207253410716098520269748850956157306601423632058851730064184396531236189122721427445338208647227163156650294043338050243788274084212058693338723259533714796227180146595012619678108662645291580640794093812629877715910211702180809895052435523891774167722871015110821632894925923657633501508836762669844180850788448430996535168691696747482687432280460431493651259796704027775771120776648061382734231521177433367240030827934291758492966331545311589252342429651120680620670739497416376807821222838723317375296022829912882823656286011128655303422812367227484024936004168940840388009608903797104397169584685330499647400151962609779760792952291566852768670360799272607890334799215939844147044743703514633473360405751719059934433525186739022449472044996175729271570628775163796619911946585621011721367398002154270984719968201696342648865916277028454443001364060210564231098609997162532319107694264047611261323884208239036816568695831147936579302249660060951362241127004869782742846594549034183916717733088704692955585014290247099846369538013183650720731003750824050877862833709773814148129269201257069497692209225412470450529143263531630862417933839696731218714158224442418615272508247679228431002737704723056828418522328709694927567963937348173592911366900688383682381599160320346741134460278766202220923760909749612003024126986549597175253745766874818993320921520242393771668607726811580529247298613166814893859209864852951913314538611205681939809728887093753169106257560522910295703742021777321107992712742429095902644274667760888996488599377495083478768920163357953206406957927465413477438467619186698373168775846253533457789543971701506142192701091007430091555305431288327051012857385407000983377895162772076707793102059480248993940908321858266119141838088806158780444511972541623940031439753581462007019430074429103877189730475640598659213613967557496925674386365874072146573379741325332247782755702836691030555127310704677517626231409919328841885245717922341913548118384037085332923753005293310251617245452737380582330827854114388213335030006138566128833859177998504893004760353266931278805891100834160648064429397365734118672830476004196677530106245857527478749404636671260229563890815607577278593583362614247449214344154549002069894981442449734404735270934584187745815694287945313311186602236095252942603142405073875378652501732666449691753643029156367924536131704720310935872390250736201428617485630241936918274546297291509644826994911611711124104039859882838411098342604785452901953925776967340295424130112487813006204502797228657317611584452703428722884538274482279288473022455013820268440066596849925395663954275676892107425060486077105285046584314492654811454413897266777378858856356520077910562638618143509341836199242508573543079210553592813612012891824187253527620355618146562536938997033691743521723260944951446290666967222687106050393465686499795766368283190532041469013579240166731122497975664625006641625957075040900574926385219656499932063367936135464012032568098301969484079117731415996892165810044028614732796511644067758626715550502188631660288220918900917841120610628908180618269438112274944307257017751082022407493953732468728013192652705431971347519211084392094449689610470927278630479636416907294005729914287367440046046232269274389358382860914189880664415469465688842832232007713425557166523465718375387700908012062597466645594703210371655290259341246756318434947067951766372410602000794648433693167798889492712395099207524266026639375986316340371749448305716650533329297639635081114263364906242995063186396078909044997596592441879260926476662854448731215320684544932388552716124451969701910912449353340513686578293184337865791709004148768312425018085527720412392990270330760416649998500170939394161752024353313124574803405159291196851014899194667841488028972499637512098362614429149626071278884807012139362548342480970417154365228849774654663147185323537735136764438349727850052839242858763574424265898294515461861867229864464568733065417530398558827435776384417793195705045612910063147936797557175312114561323502247675438573791740239928690950639785873223689173456860158437284382759315546766530690017747284713177587156794060360601341235451413393440369460790978684892997576490330132342794437714364754194709520918708999832639178362476814155384155404857906978145669988827374536635426690600361129147687923640807083240435562792583790252477192243513894204681975000073101106650729655052619981146558717920497725948084263194223822135132342764287893866272854820312954635380522938964598808969415518807678447585434101813516251907011576140386179560597766999768933869430033562870848434284585198037606014731159863967068819529815906246249679488660760132693221037563477314592042109925566633386588610745178265881039970733676635295616388006142153389716755108164098657715539149105873442551526630147330471409753906154205489577859092414825902787800145283267173357769290470251622984379755180834231716428528623208089375436796354209179616778368369452411706283639924714250046366658559031877203440818984292679164767270029210568326720990319381608972856471275871983409514473861968240498401632633423245201915972999799445119479180446371046448720015143559944436032755545177066249439149772682355987437354250162955487866407605315886209791871924498840044960814293756133732484502648760128708618441711664483921820933198553844421031195933350969464182935572994621441044897771353014272188321993417461053114679445659053333300491878858072262232950716807886989931374632134537623811125131040916615347141699463214060271398078422100521308950131124621151417994325546549016872906723907441585969367843370496883558136827805515905101146084317951149828070202214788213502225695660900106145866470560248356417647908819249949475653326090167820313143092885313396506069737247268939323077472041453779527532359239797245067109452948809208356731965759801121860773996413237015695777258425200905396682770195141252143769394061221764728073443772630996182195998702994621419527347873741046207628533017733656485245532188578678074863027333642064897344388371258867547447344997140313992449556021191002671977357312085828962078936643914353385979663697098601503745300519704407496988859365841435760057797909385452020379697772763120258027145491017988208102291090742166216336596290241734855896217327711759047486340026495150028056271402193750677681342158916388233161876824398526115422180050095379875463945308178576267595431564651961534537491855615289944679686584335258385530058306627185376849971056716774337650838691593548549152064141075555211285763775894581578345944508587027532388518875132431528445981148009332802890087974015248225695866338629786442635132280992411293824190869175765318106724004798666345100478559624851668177938292990426303731214770933553682102961813536904178767706919017286813329832208925868183657016338227249321238003232720941997307324656547482664881437990710743620120795392355784554456266489899598359387628829500854211063595793970659738468968329781137306876427327154592563739629432883994796866356181861984881107671991641660229628989419573638595668327982189377029822176978862372410721903125741046461559878801505495815035685692495025971168215730573067590487644758004937481097021083208258500428931464566384482113970329985159827723341755966536455036507166198561649973210616529638640257216586714240174617943705798361719597790190403282713271738057406750807170933534199905998195490841707392001812472891274041875983009334065787232944565239736731146103198693483775641496671308760103576451484423592070996964885609267110294331355857962908307670639766709433023946790851613694524630027065501249336033666792228211189387041169523801924196665167358699843671994171010117597397440605662909399561114808666417116882349976484722876121801311942904784258931057663683660897374566121526128753112671113002688375538021207736069308213824379634953617945292222580324895555088434229951346024470419692129109742821778377747655372323120518561513012288792743451870340478703255548289589794847921858220431884315407101728706028961021424153237527730245946095002218644524722543785974530216850516731845349694888348732206795941393047638374695648468386023149842433928310288339219326626855325797846548913074966384344636311423904904567785989977602315576656008346336098842102636603711162913315643224688617766100944306050629148906752527669302297838921088170980352370368562995294008253074484505414837824480770948981579208400155911574064385295106741717125054685623053106094241713031316806322236813950745219989445161440043976992096036419244222705915848511981752871140546454138790828677254859597040369671474646635142358050340735681884693780607096457703593962522138522063014952281739629657036446698964952680274676579635249061851490305133193473583639159288684264705412126674218746949977439075765999668076494553358601061148774104416457707178942227838657781640960914419386054319120570316821443416053353339458384088508792494460065729013385073058586385818977682605113376097325281607559004254260650991177346815959977565686918590445647466074793509304167019031752290240737616326948672684517832562857563998358688200718416633523227745871829477300809928628186484652575243422083232525027112273873098636561594394283985103722246363225495613240516814470936002461804471594256280070125191379671521299027159006811842995911136209584188434555466401702618981918712796378406821932921666215005129851176255617501723220326297513535337303664034124315907604822176922063393559674977801557347161622188934582499911409175159958615461301566412313909097494741344767521256215005673093664775283889121842473867798946606459371928533599660817525959807853017401298332616277379872579479868247436957883288355858652276732122809428212295842935294850567061841215912572793620492149522587073295215778794704347653510148258190978487906444501394378338181987517235506863970923577740184903754285758725488323806921767586981545626727899337108697599435712328815150743620709764199313644272641369122717227665789081337699730105979405228055925104977410311227057860341060864372183076797043644884129232664436585052812827130863246997784818752955767817755689622277710243783336957483402555448659894293666160553950832653657451024970172894799488306302634869987179645311435970851507503732735762983945553120799326568070280600644942245688658038007292636320607102551803722146972730725089669043656534749459570700324707120448972466446673460211312275662417932999401208073530799633922523021356915969622973177496524091188656557211380196178057592782925838954103684288603552840523405426424735751894184991905349868150148802011168840939985677769802258824402473381252318126176647414169027455666830221842588738345178050341816608560569814530805106972188220724582981260891856043985337287656782370474885171456568195475446913182328099070298130138813930968327321121169752649300499750536219258750810233248207841226537856429596664457762186464845253585531051203568601491216097233493686108471538812951071231399432982709294579800450838686823030408820627837924013481191189352477212457491412513226431984198022223967361186178946629635266472149430905059546077164778514159841002632317010656520229903187892220303143579501702602847411688762285627539572868568426835425355582968960578851161263102740277086353848816059549310099796921631513695393486218086133368571432179786710313298731783617560981326521263187594558626254330370530020758579475254323473725415220040894568539585497840649794403413031580658786078654215860445294763353901033048980199663245581753302054841494404872595190118832848548748405756482299497495454512917539426094216255532743413970626574321799442869485007770354821896645493427424091703809707632333107491371722878994140758003276109224588101580453526970286885442714734389954123412074229604715598093574252316065197742838156156870535056076617560207505361258816320458271853726244029520967482158271716765136734599843403541828257886354757992111851696697029929786373915409635127738626618330169591879143655424902990196820220407035226188937407708484553113455686883480948646112625233839555901707680729967700280183818702031868850667425509303726718476732623255736341178909755443769821716415541920301501695861748997592860102299030584957613763740187498694722447117531599184627309427849820702657703382978497354563544066223888980337184387604072492431295874104917660888512450056113993803289723196255584300805260986656256372782196887211996555052171807590322276135888467356556483647349025298449231603678719788585157629092849374885114562059871083447628469097674861081984999955901411358063348715336725192899397532712411487015726295147525722321848886357519820081267927154717473472726127379975597498157760669636370972692845431251569322072385724739864400892357077905126058686955617972111040518995673947756915832623086715671667683955062031273682259254423470582395568028226209690487419542663812708015635528649335826827990880898005271935278692140220540261128654327901707530430672854263024624717230479143102207104114805994892345117784959277559940715729772609879543704001521250480166693033771000204394133061574594975665110750296382243706915304602476127270536440167261523893452108583011692115369670842577829092662438693452184437526989988341930741071817453386432610542319834882140448068740286934550596129271128163203968044842634783360858908834973865245188446499875947069194110925544746434851040298415643969662315754023718886920804634372368069110957726294800750315759998574995485541472336753925815007926861261259685659776053627905644232608401366083836380203494047332287790224108819790572543644021800761737284566113891894876703929051375663147554950381426618402808141959425520303508674147636367598640614599176998995138417953603400581751362306209517735675124572471525942950733519136170377555951553542750426536080007800629356619885013792531802347871120626585132962904996249352489898407740137989534240870488850968704991524817489048975766341328175210010720615078752750346924871185157973612708843195710924983504399842184678394151830346784541256883437365750349789759577854133618937274701652534600648155723969605088801046587749338379248182368815564424789409455053363075226098787225138015422480371254279414055928283055396890131913840275067885614842861948363640559279318205045636284189216530661393926362923252117514410635115634396810709796398608584011278092147519055391444724045545841206991906992911213349305633392735333088815245973716643635432032848731638892686621305888223994682756503875430376405865648299006099707260524337829835731743868480464026573611051200439750444076256158406262195636392451771276458382456578422078476151985751628461686393027561249360255544730442346830616338512225065337370093240295366995188710637217540489535669602048158394425495318199222811763507554927520656044766243956256241325112244869067615912405944390924177408201841004787788198279032534743847624271343361932051548739316008301912659696616688038375397202195525845247154639596968890212034302190994849412747697189772025845206250907560911406080790510890090580738999296438950482302485309033923225203822436312600087150530416743809468308479349889808825728152533559233258008504860752606023474588919961162040678993528353097788210193165380550348515315765851745725438048968226316484837769209559261097534482864871116168974751767935719760741983661540895530212293455289841962254607245261395801029178638701324267068742218948332444160326057566797441597839135035945530707704958684445039899264821971363862322681466153647435578715274457352597447415464202454916343107108645130103998599689724642685270313919409504396093847878216548962887547281202239675301505770724975983314449462191553708278244241088636007780712258191636746418244796947004527804093968739499745980455440281535597361684030763571039632414025111395601681634868216694163998706038545768998541577631556663928279455158353921063215242812353922155450197161060675222627808145834417458070686627779114126519788453574375464949534634297984818764636833121616151949968872790953248008716052986109874346411024284755314204859186737851250579835408495261431514816843693219816592641286990636754363615460307785474026100658014445285502413653841413416621494594754421375250611281408952226460501670215061038291604338588759169447242355884289876151077792540838753463498807859745109860644735330229604362974090326688499320764892005458659773814713019738791400440389953591114377499402785661000427145392732928889847818270940130512740506655711649052265325256745718250462312995405936480519819456064682067207795731137097334528728061768584867909745491007200993860168205511248448628153550219931911330805220234790052762932006635729366663991085801714245046035422023138230211891387579785850460017404874583498038585168575608221545887341459183641037028943911602113008283455287159749444422347541342197080058283046774107586925856181367944484196054967573323325697706294837696279011995118581126744503219889664143508673102293731100916117236798733410789179274991762243682305108336789542409172223526553782872779095766002461587416379907319223233332145488525813741852460899674344208229519857018908802685012029180792416147306646034767148477936723475897620495284674494238364513062782486067409897379678953493984293923013768295558425028565531869871435183545191878495508166838123054095931240617296780048371333588642364642913782479341315777390588130617348635836426094316809247485421532415986466099656899399901954222935951387092616309263698526140004340575000109465561404094195671354850313978277803140053817679687976126228742774136641110926103229561177127485567130500045415102972449799729891000396482025845364126824212288950420279346832922428104596990532055484532668245707274333915367093141437354787107069325954315821589200319825968138354643088313193541364645756553099851015112814265610222897353596876792454177819421938070832613652959488407017489503435259731343813838570582746298046103440375612553765069659935206172377050848799721674360668019333299564700416762358913242772591880330208915918985673679858630988933751981867946720924501830708111814761341427536387691410908100875349928483829989378267434449921305606641974573567149321687730731409359490504407142051288973630367077737032881727263993376370933398435276932211609491624436238800676356755932287091147690166817365182464625790054170445684138580683081105973430724066223572975015873093409606069273553776115425426001278654209974047649502157627384335148495574676497020877824492455060598801654013900789893068301961936278644989583732639666336220919669954777115076062098647461561162877481909796727530835636898113434109759349127243085762336652657844946482748046590808116621600399823602775931875128849340679383263898078304062341070948494669919534394902918991748511715939649039034666256450618442748108985375425758665540266194428065769970380443388026412915213157761211471382023870956512329522889044786335372353648590621377685293519285508501942169603567194562698719659712892917678252061257976021053490795102965662645178724086343055550653841520349883409554828450601007775596850011203022873740463150741920360600675183921370408942075561152870011982473563852956784453448091731905816304849161914958521910866126992016329604069262343598313039618288100103216498260094574625015821035738369684239037067295464987954597018742198997766688438264769535288068252594609374423235628862099939812733165578353472584719265089002532349426201929946047262710175711823699895142823103558742334513153368802394201906320884612516242301095390437405831382551674265476269848649337313860089832222911391328234021654768715700770912691054783903070323301966699574021560678493076641746712832473211617468417092702552611049787359969790497709876163309287452968528324467070905709150514838960822786919083353703947193102735463227899079023969676703818020974484835457564116163834052346252394367545494374268123764532392463495562025966430691760200296828192314730675472366657006371256823403037311451421387659112435391023984592287738234676107125203755482049988312619371294124608035523667679271027839110861791743592574527312638288067686789359579765655445658702832300065930631321379557912208357417872561219548807110260046399995719689016235305598214145660058903300523754232077937500307262349895147470649252950100818202459991116155850914931557095185280209137935047051315817729946472861316222570584681900245089182881082521390318766705437757935942155523712672110087576288927651726164839157583567404556566472752668915953801172033708821767702496108290359858817255013558940368747822472191974718148333920982129143323109406213395454763874516032719300430588482661803162545012755450353977007997687957973071684854876027435768761626146849351467450750499957855742431420331572839363480642591976339916290400648623240366823134064573563332640873699605603532200407601537192375238225147341386383307170409297068460383356135251286617386572017948664048232546938784724506148098066800919642884305640539680838269504106100435077704022040306406039482823170945645475373105253956738059797535126364638437935064668336608329359277046510401276271799909630834638471629565007487169744142215035978575232675828924714244731396601841141026861582561360699737569999562577228978195317924306344512614261099015436156494927790138953543145659196670767323184613218585401200139064348372376070183111421515057275514705674662370058111586784793062872319521763794376994336568576318711938860985752449467575842623548749151920809975563383415413557921643205679700756587113045209860687850749425374522938740117168856200071580694276214363852995058955324605712500217352044099389989540840494022742916647153109877503773271188469555715771200878656400080689744034002087785568191360122351197080666035124910296119683594153350441029387409236837771124447679056450059920801533587837629152292319114101083268297116053803778444134693676876594055637127017700062936678294525980408687395374867531606110667103475489013176497847339962219646392759654199521537688075012930634422163506798448702157527034650474253851585117238203338634475628141366341562484578085654956713178663701544012414169614323754070416720442328710845933491840150755989502498907364108207871230512968065989745805519490480254549654599903037085585612831551932991747428436324870674751695545841130203693515354524125646896051841776012236815385551542729562393049482708143520535489783000898668941447621113673113149668472320264066922493828952731813954941518819316474067257689113734545543823095849880232237627027418895557137131769056665155067613029101163162360978760622496396612705997446788666586222200193708793371004535008424774725268756278665846631134710390807822805871837463771048726653884731604129069120511677666930398353444960085753983125425299222527749439539682648404573666977447348373074838000584090802235100353647934666845386397920220001049896774546594973546326326152558857202773930847394379220909593890179403961109641628063585388508045847361530206143373951206203536060496165373827957479753394118982280105248224456115787954915095225045567997468929330367144300738085345543239914358778371655737907122904846310798646332010143483706961230922529296734057622373186021137069728191337321921547057579432296688514382275254296937979250512684269633439657876913752499647613408933653528686734477247282968808440630727985407327478677005971768104448252207146899917486211742189281375415410465661768601637290638674600679153233874589547103025520567365519978833356395660649671000510350307720172371433532694575063071749576247092004849384671530866594952696162694700443668937487794592166028183770221968674373333326072771457330992558570929634021353740306887530228988110121389562678567829531406855392353187327563113868816846617526501178046927928829285796242808248833100136101670148439698903368034802805737742700019729551859398483244588042799872313336797335483988238642800016519072985007984348147341472514473908878760015564216803174484347642700602891527044013818991039937373761714519618494998097430619717604350800206888987113037453376646880417315542357371787884681068061550703875366731944424749088401554318051424641174169446777351793993448819369858650419545133041545926201696121379512072822592764499704255532525201229810483697681479044254784524997213531226110440070804003392478894896008507707898150606194258581889438366222655227576938167623824022265822678266308627324078313987753928459064544250009803762099369437246012207918395396256139062895412052695819298522407396520447564297502864653149021237434600026495762964964891638811660541099878450839488288802381213387270117385352808471835579669531920917499001616776296564046782131457611010552310636619283965502615072783984602515334578194543387279374983789000574171486321982980289937568768836018505025768507881514656107113705053301506800113189542547411307788643732224908428566619590543391869793070023168635262628450970608445674807848111305643067527987595834912794325999270151598964344729699130583428310855403377296883378442248463234506982835409690744836101014671820214446857945596444837360418739062196444443873457508448302229268766984834088579733488094335885014952236340816718444385662934538795627345130705300719743326143011964795140903953719798733254111207441114022196877272976343763159174409823543714915039725753792628297304440214189848000534095686797023614384629387299033898155829990826831216210742305031696813271765158273600569479313691046857951704255911821716532320855184458992209433756851057944769240828222998561948076041956175896453124960077113994866370822902587339515656036314277955036940775670222771754247022099715539543221775200349684556321981240144752955039924794410589475148758627835076947083211569279150955659721941106370892212208171108397336965837634150356043220361207824086198162308906364884234225520809742624484509627713462707663837434550933776042784659762065119303802018107320616420225547210305882212195853735086386233009906468374359102122839664091300210274151598041785336707594341793754514482428250106347864286761392156459770816421666845801710862985506725658579605034263835960705361413721153511479729000371133517865544512711934539101884772849655383954604781593011887463723779064977162798064634195555247028517948433121376212010882446479763722669698445930971778216678080566462358869168779570239092170450184481785770954454738772491711890033917222313701529235916217910992978637514778681751692596261181499661958115329315832659573101439894990043688700953320004545129524062800112856190512190792772139963504043809055849198709984268183198100875198496606044922304406100584394860297434349230491400424722260559260758550364115468413035541125643487740972811295630437174471940414615287032323363906551450322850206016564387871647634432207439633087458110562558069665937544674523310967953374831574947121107792602069660733242700024322129734604992895106656968172497365869143168165712543320511261636332463765729755097612254573983865519194629498784044840435307090438057901741975941209743844940763150693281445591215782736331686697917450069736226280454630044996393849468148211706615928008144393237121479070101113618782249761336606744965238514067668277780994541849419460342149318968999742431581040648129149638877105139141190088425031897324776088755098051066428692645674867622663405333547533913356439207163291039578294647836502604011832477577222781026260122548953358727300822528714018356483653443120706751546823698501558263470259525542226630829647707378904524719009450048300968632345856639284218543562343734977088073985688264557383394796929058847581207090067514529620631484203022753916717222487137490046788878399202108161433737732442795655013898978352818031205117577564237904475655924110247116271985719760882265888837595584477835625906049512715128665219663722202067932406031729993647741579776958309468239484301584219843435494527982462670734120715227072917077949262791297241949141982149536755244280080348337675406572290766779348493809548822711501138489025543793513126874390796021739209101779650431817321610816506914945601510317433411701728074680973181214919262302398610194732612442795060561047680537113716825211864336959020153822993088021866959183676959105759059037865720561649611726259969838098172365560091799871327047288143870724423034959870660585664543466508879325163253344574757451212061008866106769031316379805160561402187925163186357066127368935588010267190813303782158628332316133903014556299895312969565227273350620194082327215715000789451912483859164000210194627904460871333555528033964395117137400747037292410001052254101155638418391076641947658701906967076672213045236829049887765146682051585089048584421575930882005296703359309474757584398520438087571020209013522202749784420493173268251209318566681406219917639929063137776565164029008081123532033493368356685672104085877039195409341380044009907316618470433968772430497746988667475399523810939223173844544541230668748834890115843688353087685129981819963963001941140228374631012484695835754586198523207373588557830164661101669950983533336596092755652438139917650838615773176526337968015495388027294649759085866777035057762217413647175211442912787655012258642031092046241170950666744420991832674873948780019131725863674300221392232446185774653836368898243314924280551133808131930208786718963561137706365372676485060715692820794426533917784673695224097642467663457092092054724287022171862369674256094581633124514702929757439576670903086664836792434859789732386480371317148225843806392530334394129478717305988925315889110171307494032902774483408968708674002881543381776430183803995742976565212980937657377512738475884337184460841786845060938474673847875811916102725475926590403898038472715929449504602966838422058727334489638918977022156764597925547140842451821135789710918478035983597412528050418479195253255034726801679837121057787500236038468601722937878176247974318765416181931059993002620144984664019172761106253774338305917649052383047483156797032614273463819541640274186777443005137197142992437406045092557416858191927100598734030846222781156018493743236800136822653993242711019429366177363776194883018439627809639636368334787205368248586676480664229860723751339234107806963975051872663995819517923896479103867997167597040655501743723047307927669558557711098130932334444905473696126210925901747165832496396049599249815876619103817719064461734542626400161723061238116701797250109472341759462502016396279046579627804897243178970366235920668007143285827741394655396857182332705977079386479191243867974924899842921059208890470624641404958207385408438916784257367522433027481733027313906987425866263418271297119501446511849335036862811208059889832437711824075015370775062661760525513817144805027460848770559422645456169835221228388381973587958849038535918542764902498452549185441132971078289914079588602086496062393953785085474175059292394020678445764438760011886777192090538506190583382537293100531820169427151944172481630316924477926236154045577413324401459490096721017236102306208565515571550828728669657370351444682565245237810379329998307292262462836708203700041519572620451152342812900294434155672827650487297008836389471341411203872025929344557095304113912530178370363617189380406252565991316261345629162142969502334168566691951574353630556525862256491360977017829618249942128262141629554009391178025629329162316469833456650092881308761782604015881007039915104557305898122022017721584538329530979934933510502903001521833836723587595913530507596489505456962988942565732715420759312235139266741026731059383407976015954091686970269955715911015646509042280195971983592073500707469012898533978560657878736985327183237572304556543119473661739365435172937311678316738586037723275649206105698465574373621707290554835370549036419498646946840777210770383983431783269722549515455820390727306234786786459716459598679249381054441350780164598259634124337807946863025204767299736351512201883170515848097467203170846692647163944484300151094455909829595719760493403945286036137570852005553969409721176016568865209323534580771373667306266340067994534423079264040818338008254464495241109421420419662384305835715247320014125065115254951495114253733087432386302750525681729078621759287923620162628917311457188166360999261484037036126606979445625989216280933525418293104068347190155278121791823389605113068050141841944644944336631836410280904325601437439878062236430371470649391333085146616392971121765364053578353652989170216923798060281648495315043516747072788171595983658907256499101763365896475139928125969145089188269939952724828207969617951470747382749542097162986349131947970707619870102038868601037708096850661542690507204279007988436151746784722234812176761272703892788681266958034826580782115499627548829906891479387191225434980698889497863503577094994472564902323928404107699989409413969560195614333024515178338837010144616777319152202436995303489584200103899352786850117721576367628349988190150344013926896632157161253668018334041057345513182026869281597551295197879569973569007512336004193181750055441145101602618694760433454299730471729632941814932328229326221520648513869290212097008697768817500369339663404706703795583493212082872361264823072485743668630924019546779195851882652062280725689363150458358952376684881016861957091503951611014590062198663402993292338168432563241425353593030026642174139085850919609636341310495525975208787548587123547542490596903951249239283651716174342974812628471524668624438971683046424991389426340954659489921001031901367107703551135396517543361902257969987385389957210813533047909489135660037373192308587980360830758562559639123270694639337786821661856688342487241145595324708960005576028255710767723009241814821557820586973972807431109158841364000102714127806815363347764764301609169764085686172995291167812875115238922768419640364984171808551567415475602354555539275681975866551411510902371858245301916299580431832459394204387041058845155887065935132518852990497668857602540293739382702588029643104803325932753273826103323314376411537537226191260960845379008215654644485050362076575282513579299418806616161651422315106954976970284218216618290580789604705145313698921344882468079402461429276937066530364009478532233299313319082604022669916998767981876204702737783846291045887379552228658539257187405270889703815696097893790345469501474998330180285825395158184514894410092902009241567478997231985446125491743268060626090755357052167504682128848014856994834846199272963158316961118366314164028131351606046699558482016811014606145642313626072329519024066002730234478846881623330561994997928925105759288694881115094276270977971762991603899607029860949063736553568356419965439514199373126361132869943547228871996170387905429219196435498529188973523969970443457832982954182600315182644157077491607478330155133581039693663688400096549099976269588142093596745688986179383802643678531990558614835019241267016363405447001385161251224490640447496776547851005139145286882883763401365738920840794050364202783831301939509960040368742121923967352229311453429632168192611402666035174861287111115726591496603474693548480329068167423110785053265668696460931175416736956615192298310338403700044490189202791339418502638250993418140354563241958301374795057361771532822739500561815560346488123160136231877637188142566878798196151039495765148118526147171714714522218393322132965634815855991972659950312799436845619844291227584750989624762949632604190525894760078946705567180614609427281918398223636433085906951183307331378706041721823624798677158174259790755501600844366412853806571999544205934685931412332904931056547117970543097946901023937460565115586117212423687568502811446178965789921244615784532485217439829510568506669597721034864149818422805881846899478815310199917248208947822204211889623866431939384468111210754451285339268434405422521873750393316458605363406401834854150172358985106198008872350857248470237400220006030770403969361742134363747394271575601520911073743766489173838564494083312388675579402645136863778217258687990923660159229332673825535911442783730576441571258566656957821419827249887616850579069406461815188196543809401942428780395232895811864879225345070963004307701271014062804654185809662350582632892351874822988756156394939500031712355178277294322378917793070981246482712288435997183517763004571310242166445515616803177556743320616191556238604890177687911825326532977512811653458766784146565431658522729957658721941084683256894457770834749921846813155433007582682274833048648621350561225692005942993229849380101422281935279669141820997164942428405181371305269110360592684700612317872927005074124235038378055384446475634720481336774540906064258643035961683735388646330418948474601181744907431566588810794291662928324630497800460163292504050052798275530679459707647681899886311722802937573963944744231800956036148192490941904329438582220729201134888388919885577617718122275443606769242396371963138720796045646968977711589847289366463005440471142314178560841916311851030900390616594366999042122996295756913912170905475334988519921684332416641742929453502055598153206498606509920385939502039812640879499765011989594844526044445739891570844596898000231783993940550934590090064284449720456781306609711326295190786613491866909817183668052098426309610171390198509314504656326128196126575193076176883281258425192867202453728711736456264544563122391635281808910040531508315161010965920291232171829427685204615362826407496155483545190716445089857913993358681142856452547008239045737660741994722964163866105003138499059168818030551344110031462351402835924073979661490250793086069436052550408511727925161997211731233863476340984457827278143302464697493609532677601976689371400869371108390757159506762145586213054973700361655007327146682156601935325376239710481834100670707444433830262933452386970932310160899874777255389204946105459237944709425332793905404159747969030429789377267679287558972459070826842759452060748511450215705055660236967397494881165212201244950304177327095689961931399636360113702014367177149630406871251572895050461408406942463440952847137159701107591968267278569135074763966858390507868335130733626679829206324565428048071218284802855641099359540171093129178006974149796193599174049518794212589022682110032470347718895742843141989559553412864654069390712585775372239726459453226516030607378083692999520533658578063238410582598952667083641513432535980292568539620217277917298745897180892428989338759588135342933533263273331691355344527790549742987115826344695683997449922495478434592258206164231199826250985391120143537667058013228337920131643846698955126380041017718206320115668303626627290829622482265132265295209804445315971943937386699014770203283998896239196775902867436374406945810885061277200665030167831853624144096324270143622107782539878420107798410247016016322723450237418858966297441295769335495970002410149365824139833928735722667825285515537507610705913688465297256177308630452251849828628949236034027584801245168481990361705350737602977602591884032597547027850576058879148500547359717903517737425905591915106594511730768042751990607946976852210621288602519558857029398997783508827580761388166788504050534456608725893819663800312455393728756198798378428973840867313297100907526427374896220084561779906641775168031487495634214902166928662063531751276034204058018512966731177695960476264506694605756591218165542279479243523766540918378608388121224074435429294430589031941270908455733848496701625536884585052031397784474868988068611572596010861552579110246824717669073357527614076208489784323193973231517418740483721796256186766716140386586226869557796838861806185850024504432469583835013123988794254615822800139592997800609167305602034735941655080737598729476169090555396906017119183094631899793293737227291960040161048218253840882559814080209656236264910763436833462099193135741473962087432708471563699342276509818672558977011342535775530378153435694467341115459936678161004297387648172177684712081191351076842963259331622807902461276542335973561469878322444694136127659979138070956340252169077657126774148782497343937189638879217445877850258006937720296958261648471050238134778422838268472123848336913108847588312073351017116699198067909920308138954346731583746808993639415589022073362342375239008696025823833822504450964856300247571515840684565747470003153971616254799557721594277252749592770994727398551145078176981670729672500822357215036920893186293721693878232113060607650851348599229940187410938656314003952799967843185665723274505774677141124471416940818108925583498713868689389557284735536587102075932815846118627901442768392898077637244756491609568582790827067128321825883385574419234885016953479903223217400627858741260777110396064830913257461765194350207683826247914799849129536342958906526359794622871740304742105269769234830547162904576119133785434041661769561297825035329037014710004159921631109475857170521268148243385993634081148495118975081414599116133461853347012269193663410866090991972356385923727813165966480013409227052010664655913897856998398601194839128612009689692626441255407481686012676934138042035422760125742841843842312528155005115429237454571093072314948936254300529874929630212984387035958747893140210290380638092341400590450371281914708758392385211543200363583698165823113597815146506478671312789012915016232004438000255263093382939691389041091226011296240091112204584841793488045556516474339395316210014261572591807384088743475669524746221911641133044611899973560827031572024787299496356076921326317780933193779606050125145564615961573552125759628410496015842953066017875179055833988355078934877522959128815594534512551146834051862692274426534009378008306405470261654838308101068782704826632055800376847780520054674387537939316337928028885889740493463258587818276350129806549329399173650889235896485174146805534771692463727486751083040819698023856952400440865745820258631827900056536922721725943640342851535785353262151114551792292732270238513303205144146219428343070615294643781437759514916263408439520478713652890817576907779886461240456701753421055365292403768211145958371822669520916036584290151808180294144937429585763171838673772071157669961447784808755476959852851188871354003277455638927156724009548150940012999629924005179008384315561418330274841502060442739920202344201979170845187304970549232751950497663289727701547357405501441965940862497749151367989738818427025676211240374115629269457827786613944689184782840815185884681653316405662797697256257581305451105813336124376536358812430508960291764176119306808464200287109572400157481561760061242397994997693533432901748178165697307042201945015231149762214630674669982261854954001123448167915524008297801741262465801752600793525196566381085934219176788712360178723806099268795920368222482447992935037419023990807179585626823718311635940079945219045749275764845719692029975212135859598085592826202422516590571965249259733256154463595073524650794816951141663141781364422469093638654681730502931562427825801378420812550623250611098102165713415893085484827688600898869160015375886118287310012327852121379933424660121211562522775924117368608263353234703658077769517279447686286675542334830221609276562235314358659080776510490528153671705967571238095533139557032929852526931919646892747906702948145312932537613325373801408749245188259964823345855591392198181832050526749778239327380937558196172696090081725607953592107231457370437229879010979541541912064501831000577323646696226991408473643254221895241341028671943279820609066088954395874134013991783759839090112929886773940975087480454914889697557957611783869431210534301273651592345505213729788270840725300532434882716366031927586351780422612025619092258671714180419193819385671256138355290131581579152082203297974593647027157130430061033769346598128656038834650652642746413731706890508832882479767281046595238982163824743879240669210308885301721113488202268377960585369699855054876272498052063211003490800031087981171932403161449923900338079772728872101732736905851734843993238759543109145795224653983253887114272474494987356560609749875082572524874830192761226608077706585410338752334710227243010674961427555691136501485500544573263553061904876573683555187129022401590753831988257550303679309492799863382329111330407225011363812826752768680845921129565264260484660312520962136533712662303563925207579078838707948801256673566107531282227403091392553877618135563454627686766109112872095879553987698759375875091955523842519470138017024335733259381306804130096444681015548087700747902130563837543410894119356988666942869808680349402055682326076432058828575579619884393174224471322635335136607161384016800682570024405849752316681078407176478740452007378912841445909483208234003992547384797158953874955399635041338430288000233340214115612208367608059243857553671415411936989017210168180205631644461543766789876323044460058880399675880027493255833281628719398517370144525994747026602344952398685074604997354073787101157034887886378738545818521643588583863222693645802010617097300958883245617135222301784785133123412054705617320382808855391905458041861734371764353355456488885907372312638539750596886411514102785809724436576385549489083426907890577721046329489538998880821807577104460441532148321998235080926516790716366053752322606721067617324373640404650155262376137732634338903721049327168768046813818284253012992070824210466547667645911496478706513099522643381199458541993092299174448882125031266517775016980280770575885767371624395650918360014879379615988364172890765352924173812990576055359461491210435012374544657832761335296005212691628554799450109391234074101812470228114848322434294272277284897313495217138473366269690009524664886540055233389374349072313210419888803644091250749464308711004624849549585020922234585746243850469459801701614571899005877985807976450609878195879082211269007462022108755162410728119302922243916232424708221480236094560495718825512885570374540862424480349006144906478189384670975227552748860490681907233529863936896261282534201825361255858949657904016456061889158070445224363355935101569149034011253137590263735080452433479891111338523838952992140425787086864388232230441668943527966423235987751612697408411299018963249117004940300053923897488714827406747685684117475247411509374173610610037462658766722010748750955174057735025087524599027109693827227736324793338206946165897272247603941664661215184144494341251650903966474306938608352281180756715300935830067108294266794456040819591212870695108970888935893928347525984726228501697069769537635105165014163328312601013831646853421436826706730763022084453016262767991847509417452348005134713841483828666032763662557634347071115394406067748600326132752205774211745721585815139290269431939130064017430815746192091232630552447045404849768417447421597975840831327909853891501898894174715710392846075528350604192909475561784004917854674457779829311377252785752936930674255406008766570164824765523497635349952113792333987790293820019067918602375554719877903747017736051432968828557182396955890736694006162785023417441182480950309766639014743968603139979422111338211426295472097736660492972960221902151857980500397988807408207449082787923628352246823656405613908892438133836273569748377564745209546487997502321800887412232371033722818812510504000590845107186686228890844893871137750284340669252327332111001534133927506998517005694073791834036418580032702595805439902662972332426428106983445485399563266956066069799092922495696368149094209592306620840759340728625840215876640191895478598216570177758674547945977254470069956412376789123051953552952626184642672288987982657017022544925316170216852938185491755322316235708635013703541390076226149382098497365030040410766577865806263497096992321567827730481628936495541413831540359804146503815148877317553667108432448218478152497985204053272590788478772667028268112652726232846470420249458749185710936848540810042955514041936712927047528299296903820643695562675277193327623285132924357228032958357153097618317912570696837061153915728321716877281540280351677777125832029699039380705213388220876394639995917601316374939752857444716510511728656070046699646550537241669434707253859978959639614955619608944511688073572888221254613125369097167151690265483666740493677812687556747213334308516365507739656121290063149866958815364055384374581416895936526248227469342043015636368516716091993392945640141351335161787199729733075199497840123480376087164595015654101587056814053515272631523130357336939995691063243088663431828586647641571131598600896585648566799780947314611505862582888295030377432325761498800348536893255625152320348296410189480187197454694766797177790940922735115092804833612563751140817278482564368969893864587422755823700537978146117450340689997069092427176991658919333603844905427226221796580502321309956261219548745141347128652818961540945883727403076410408883314034776643151232903051444573751093756076507626673812484743812546171763773373900404847869116602509782629728963858685851398293941960837673907136364693711330235642452917668712629142139069593516392411536157940105728531850744913954546239418690692388027435374235752032715559047496973520493686650531966550327965021971167115118722460310425589167526039990152690037348601733593472963664747271735087345378236382867376258499180463745725153282679880907440717913709827860002155463957101872814844943961960806764709369628391770086252354995768070375070010508786440387940071765222649599408487002756815557893234413150228319915457957388828001207302537277297268282353791497030467670817397675502179647360630005044630335898973054257749935461713990430163136514277686694267572171465871416773069622658275066422524074403391673340838167496684214786086940530259509840509728068139261420849827518944430967185326722535406912837697849675050884073082705797969770038101397465910301316807490848111656663720002237790618957721392835358884161239689887547620836110788913288914392355251551518430392569712514267508236723921426415012940183717553314359459470772734138795514109310661262677879205975520495649851894330310710659738243098394453791890797969436058112397695771892013825711306887575754944619920049541716298805428217298194754241372106009451452357899338277177918682058553948303033985189296025199232669076776793083769745057779566904297912180775673605497994268377886815115110124257453694506677976397987236633406088221744974683365782580008262479594008306473591528413706524014534070193788113266417034900469644354587365985847263346258278609180428321122407336324269870594527334084711307853640948849078875851346105650447407373361830152293555115084341229781154822912990402541330939775787006871568321181924438486279116118574421962025892149724393272876646804789290734415397895615703020945015155347296490162345993001890080526319096644089873043747651893364848233538423809920131455591860611217591534355578773108427960422709002031049370775897437759325772829871299169714856280581179219594642265147633693413746938889725664226685850005448324431294463336225289411967358393685003394664318466277398172806078191453381535866173577669630818421307154431743750069690157584044947679412362435848879777168876439167131662078778074856775682665886617080606720100868560569850643533877964661215001309887267548378769296723981835156590969599679209163413230070286490435940369782424050456780438650923517884501815587506646967122713314714648393431032289531674036641253388101112364952957922877302975838465462612345031576554404108906872486095089297898810558961942013636030734401703118063904978500677907994639138797712415526880839660477438001710710069335446625168616438473430555694177806798293720247783391628936919093503128848899094701734165964562069150534904779908968971667610504179592243289378713962093745782623791589637305145629085300282493415760413576522502333810031240170150797908186387784059231508671442643542917959602175035710136496263152814010884257227794791494881728929868125674326158852114511545842399085818223746423491309135992165034032131233880812271177387817273046182450308336539759543963193090158218231659220631260752240077253045678426590489144134843958175462112320761424777827589775654021384519846390515804818915253466921643256593010400998762063126085721007411355919049036740786038463781622224877491276944317522080633343466141925640622867579807693851143986505901228659959561853826772295446283546485913111462050686097718719678519898024028533255535173170664709257775009271877446340466884564550908434547793482217743132417889016970309002239158131429336665332566383572079926308681504442997594046163661290534555942469097386280646910949481900101433739987928787753797456217640348796637704328834422658193464926213802262862142086983449394646501816002246645297146874310187546795931417189328078780186556904104923026616021725712153579295956290403275285959145882645403144750708750031701260889961739875758115129117684191002544671726745768144098282981802215059163771875539396288258233604439745643841854278914104840838371829887284780406011041444013023141427117149183970748555080273676288935785812030354842909042173659121184930510843367040811896624616495932796981677153703085326976979052663329058871035343214036818784258354921605946693426839662264271458343403030635463426169141169750187707550188334639111531510743632861560212800318714822036790276316647051222594992488042478596786241610881889109552533491446785583966950724607675430826335440068394755205008397204932362200113368945755221939337262239358458748229277083941269593201035116231114933483434044510131173854325317129925936762049007936551814590251748540973789914082952234972842356762573768206160207723180622606661440152426804617984981048794560699971457724661753269844871638044467004939398593691724069943608481667940872115829010992289979205341314411160283044178875146882543519597919375950030403634821012336533530646520459642883397157350089634497704618172389192090180704117488203908545869917383560817377598230817427898081623127862771680818391585703461647310743820089110449107208160732459478115499985734196286037057858204674595408972251997505962456955915214583188421621921795908222721525856943061601808178498855676756772912135565880864721071579407803289136585949570669387047512666682209778854717440904894128669852946927982532844698040387384739051413510458522643065407728337280717385789271725717113849777073177613735886031407651091784058980259753191089653919549759082291852280430307591779325745329773117254389800415662671953900712142369078534781061434599749527654191805878154875177836022637681696905091095708831019781304150508934076958735597870419563472686310608130728140681002056918592198971132371485901602618981263563660339821630618115395689139194168828265989273508599976997207887472505317097789423362137017354413279606132182818879485091862926626560576643221417989866063415243368236338249711164704675092965799648902094482638207348931222647541527360346532301388413918326342320153933911004448963289900338315023003660430921755314841460823077689809143191779608342035510127943797729641373056475598940367309953486724887896028467710754306801879515932617505345063585076605470394228705452878573855045572903482773648816066291255168319756459802341173486459526553620687432301500838356377481387060965114487451891522906479351629818525682677467023879306766025885903160957377293968256041952232668168824913666482568841763221747160243085520054643725905161138851265130135966708570374350392468269386622801020231580991405168692511115005497976837544249405686435556697513847574883208270833601128336237453564652748652467727796422687165278196261477158299231301935833379252512993729352046242524119647084984310048916945107587617704048901769924792571708130782499344973524260119444547940156615882157975640753890483436810017129721499630200410287526595738561143843816120825408346722156006973391077987605282881245010360031102447655104851640062440025253442835280401810983513113937463150746656159474909391297740097134375701840997494546611886029745559622871942480117049505950888791821804866186041727382516579027246432134655341888897274549490359458260319012854902185281461704217437760722953940117733616432318908287373697264241071732449027221563024791033919381782373910764721934174251444602621438166461998436732027953877320898734958799821454426660823977686152876959950068334165819539177496374379280856397608169273380386575118006985292521749284063987790660902827555214503960415405661604684346814660891703096367398913231041010158991536228339794274109972731099983445439586597207157708224489508025484678906656538706647989023120668910489605288783316094031469595963625024076833952857433916989900621414569212845099836178478221641707450775278541052444481558761377876931585397199479695465399181840447358514803022617278816449154526322762133466294267164585128292602399518610283852992328237093872314670310755161057213102689339753302250763698364842810867967129103430121145684058214276831495507846085407960616052041244305491694266256252732382188249114092390976083047120720062281966110857909009233085986710471888187678626510409515331003799818003337043262288266494241025948197516292687624676952754287486604605426075920513663566820196997839580615585086799795632074076702981130579700871935241598669195014412134683744223307692336775597145421585972013936658498090974088225875357972802104245197724793042947646830805161183747725631284448292387776384627507570845166157094710681688995339581627933609245972022720301786397658233993047942115367405262938592241036012625439691642040484530602042530998430904167576074441220979697492545913740412931468543354726534114187870515933450204295840618523061143342598230697958000981382496003282729095450377875062129492343252025624160894687416979796058169838652270651355775006622379085094039973006034563756607272983304327723163343216508115735722727788971015808152535441401548640644236880332721640002432129159735389108054011070284950829338859064851427551173294467357465713641648443195812043706201464679382432534513570888001549140187076051053189214928721609218801361602904529258358515051745512813511964765620560372345883186532773089851484442185976783614498870712570677245181604043250011821356669496782182275061076239611198267084453203533561303043616202921588367685571015428281647455080488317500151888543478206842239539537453194544886474935384060136931824209330382163851219143681848995674178313149483856075504438063488788588468219535112594216517076867882133156561316419631515486484248378731749911774785198601468021554318251549459705486079992424984465770159929491410925063971590317949142678683442333426355111074541721917126452233289229725138089199678685890065969318382667595357948708361189452688139657170632130240109565614970566617221177535530248451191976044668758863361845149970866230793887039569094467865336172740833479214371335359390494062772199352007144176839785118047382411250581808278222086462919025826444845331697776277615750276598619620819747043627731577658681928331263125141417961188253610740824014674158298635385554579160712357808146947312083053900095752422461507457927873534475843815277507826451562148145676845716509602046158616270218226431665848547550842056885488919113974536615240521349899994526213393320170691997846598874833714086340587105720668285355806495412413662458072645340322493138005808245253889412410031188248180529228445405166407276312067623725818440743858366042643973108178954801840057945886389206933969492286825558204241939051819869570741751975565495536829547228527651061790542231985080762113544014004690402892966634528683940067814188052295603115299945965503482701857244242549642600755440611140308865551261292990311345217804053511563564287512600808828249415373755835662617843968392920788490119297139440291131019974145952221605816064017167944323346456475122321151274190726914467552087034890820119906626456742782868604955440250337347473332147878175854038306316271630470147865660280283437185512176666928669170665275414176819103248772403345680847880885563719508070713343156898500408822694811527525586297471119592350879198788348125456732780276053670784096431593631341366162498825314244861098613556463410552564904439415219355639148996513613040070594634735628138191837938022723445048356576500392196866534377278846529643450148884875190478578665107849262536022824514144967074524535707256033192980973634921251061059050800235978628482259603902872395703132711147638031057726727569345701751626099968847156761208481435843151829554577562173663633671797978054914825779772755811068738654651872998050755979573975423234361886209236576864370245092150733642107598333413178732669686638376201579085770218291029879638450553306211694704909324306778525584180012123536298998723441010950636178996461215769747680048521334150766026467153017859482137590737407115152435604796545676774526258358565533262408866321224659739908879509759696088381661024332058328550511406996548201806227420086956106504062316610179645475896406458155928295246070625580704599194190774710268177061704539945941958768217687831647099456949221139886894056969600252701483157570587831222242633640154937751233062178765435615841464801026363583377974685357478180897528844866463976049173670952915374821065130042986099597999885130161460768581725695465103260668047322155068591866367951592916364543620405123961571151450333352808267984721122352485019172514494614737113903831065913456282211749777247528854743608044565711189455807734180939729012988009878267522025643310121701148666167127615202864714693610088617341234829027121314681826669073005169049142385118351247734474969703652708988676723630282540066655757803723823622321770876252826379656594280968120733212299559541461440865098961438172538634738714020946302708727369885892610657302167050214140018990743594855605486980471816611716816222710304437450933035610470087866659206436241880815957488564225864024419177762351156994793954441974743467474922634133734574787382326354077691787042594547086216710851868901652887304584400837275268766376392806843633981241967345678035495569260436204257544024312224219926520349783137547483760864385539078252970170165036688807130987543998987417468541705280550837615174880463377644526435774556528817398709373794296883773993354417243974355532540844047971667293060493125319813834058283424919574080591435323950368105493134662120206150356078526148591636768313493704591866578822091388460079082961013931771322195446457666744387489279110599078316516412833826411177987949768342562669787773962905249780513746790776507886523571354421762534866679130522446274255652764020674945953636833442811156625299255087451482967637047292775656549125288021971226798092065642938194756342128740708809562976878095078250491622013506035089874889784871328717898335378978098906108036972579778867605325708538878960101647422388724333950364111151350043987045131203698615189644916254720483840997053707262210010953211770384953144195501217187838908971674100317087804565820888874167030447875954310003690402947148779763452337800685483725917439091632154076382741878770355168443084834165690424374609693395228334500603682639616650475442017893352139611253031336037469674254254072168334904023722568108748328285783478574248239928056775719793384089445356685983895033817860607499534189398500631865885710578444814840318512009274298971477584041701315205054679126874625988401717331312895669430484068222668318698623308091696183133973202550906518574236490191285052353828898574267565666360030680841750211761951980832321661891451566121194336357340261236186159987035538080886205355655178193572566984508019667827643243881852219742152293691673943255894514812472963013261020636662444542547106564096347930129723691371596245786610497457126162484360179413141929651855336259141438995130114721353085694131970990449322774254574468881485352315841078500487526599004199227290071779433445273727802629966017050835107484757842358779522420122943346389368521958327926469151675219273127276469997212926665014790828520172876071103484083175177807112896975996769810432879155060252194857008620480553913310103344212450805696655181058361109002380871253075816917023967767445947571988680708452648119833833939708420159837020997755243893329165866680274664667660894405624656212504875603686442510595993863583469784687233738899107039699076472220040587947499748573374885543753638265839405888231487322532276553420773606573609305729855638646182330044888162102491679943735577268498169655112410294670129342630569909641808858838557542219692248756392191968663432583861827265311032473230184943447592162935357664873329277137429410807741660665060742551976680054015232168832368772867157836005182279985710125213127259116605969972849038101362891309793667871033330989438108488025780650982998258206041771403154951524160389870804628036165273757447109168181852025308285860808019335974441567169720999288312018644199997853957212960862246639764991048270024561546320404648417434137926530924104373400825038248804109153070810766831486441224536935241964374153041912862346111562306911820131956680075182945257539125008163978828830855505611485135707505238857669312311724942467022353729536774655462985288708120204717866280485068434693989440671568041171297455033959968128825961762134329460134372493314444592510568130870595860853681146288586840345868991941802955422624861209939325723888891941414653241238034185993222133874603432964894792534874267989505808425293183063152957107585462122714579422936076165341234424695204606937564031277324815246679913705020162818149797139944909937794164377736714031078772504552683494647403394358512431609129572928565554737415153641311903172397682318017086915651301846467446775259670965652456672938378351141546551053267264518901153069371271674316704820066465351906749177618893681140722034753276502663054086720504623618887385135066164345707086848566962055876636925454844768896418988451545170528895600033707776435173991301791618243277226691354857843749562770681813608293135291999809548029328955775360437175751408934992242328512530617715928608989124974932106781640085356233607194815662734502506549443003249256038617925902848122025768462746104089339603780778064086404126444705733543680278377316148847657121649780558675723972238506928808993497935969248567816125033813087166614732947593993250468546503835225363386391420182247992116258195736183846192920920283918412162844732808377922731016125637161947195533952308491421651659786609932190131599871849205962594024035966069347683200986217266585883162008702552109935737630785032539534075202565172881955415547330115053948840967604127271233367200045193219553183313874534602372239618070370301022616811623928304382517167347717737305568079664403938293071727100291384612937772159758257209183163875466436686383867739166259857167146081186289150320473610325340918104838611623504264157751894841097389693606474244444546294242690439935067386270729188451188595056691899766488313014579318419913801879254293424694106526938761498375471403055616769498260756040189461863214836512036432397406543226111117213839566519975091964914500301700242879080952028463701988237677356504540546534902732232204228379283292348565405705482586822346204582984099696725239380967406270272809713026769790757233552078027015745588185591361476515463555756915380305017071055133368633650157605513373139315653684118962041631394492988412034483756605100092537516936928188603754008538703040710328415950542225388891381324510895512443554945302348504105935059711505610869888578365524855372688195871998750955196574129073981833484851850890884171705684806933434530639197665064895393999871024467416479593621508485970409000412451583363978234346938082769872776845105708128648839318152309610766760111446967539292626127032206855171329030749028586717548206895753380230279770162072872237977469249114881036224366467271691071352251272809541791004110778402190761154339315726647716310132978843067697485812477411797754403630480590616638948192282733464565934970722050915088221177511161091414579205282249111667643172837172837829942956580358092677084134576721828398905720373484327556968144324199148560312517039788391159904589738966956679501053884200024479567109250632888693019008090905837076318379630756950390745256058865523506753774179008899142585704202877623272455750114305628372826324767138218103008149511309914435200952843303200383534535144007973501999406648648556418299199722898100755873840396153790541664426456146323514678905143000807091477541673334776618542270934196641976393908781724743480047802264382164687237767122128779067314797754338900605336169958187224375839460114053891667182211708761720074357722732749732391737005414353210776338059636037957130391100272634042140183549229516603162232179786945702998668795621079972055814651876286125802714586023414694329631324340748153667016877780435875675458216210042210278933813670327489991414022819343855404766140460277594313726376869999229915708490454411333507164220585494488606895546645059835571700754613586299269038789549096894151508667413169203581387899705540958000022223885015013575964307474436060821869344427530602600343708115739401041757174502096614474006829197487263705450164241483979198422907555502362743633444200071553191682682990363079530682663312444005907324027464274465369117458673797212180067774175666342603153808354525692686323123811793979463153152960615202435056961846342958661308824725768326326181130367834822468347263296304594820424384854167175344082770249380501309980674142975094055301234438733805886153961302374410033729943071181233364071509235201806476721698905760488079221775427245377567176200669878677899201035924090689114493014626215088331583841955225393801702416871356676481972424065647125213814033855493358707053018566914885512553260282960889077491986378395158619606065530830767460091673233541962961845399628124864425707724036161912895643642035204302804865661141314275342113788304159648028840318708674803186726763494660568376611096945533253374709018696373547382084632867242388048145265399850295967919283346615113202010520903577877890265617887564505702891200617013150340451599669257154614607869044108214607621863905521876236000516128130386733977743449867735595006095256222381644763340057426434814046392026805692427965521740641091544234049368354072331761392164404293014927198528782709461412053399163938247994592266801756563771730904176471107127128981813010168526022865448259702763084242641685793941335578440934161061591037054448820956587457187452949916294071025616302636039693135469756491848856323955052644520022095133274881035583845643220243287323586645694200674588572857214867739468156827926176520973712808948814590554394110091990272570062419586942765863633815872791029706738930668548532995523181116243636310278794452354123037758704642016786957704518387100860242068398403586340514387624660554423037919006559997997374071655092576290066974869367002845449766723736697380093581188327457561897152566366378759400368622911462556717438371235275406184713246262849686028782468225329789016218531228316296681710938466772294023865716781389150536443159618657003522282063521494196181706190786198247513536481548682755199527569406186963350019356047964324302710036819285499374953310087756536855284970404083869569867976820207259405882687621302567817533801621509120799508265127111546210465683842347876981345946768470869589158530739123345224259836987934156012561151891640716210898711275623824349784235201422470141258419212301907581860137775313644142974293937579763015613667112902147127318585864630546567511494181008009073616452932620076658995018547436826665385115081606487567371809508308391707971708282899791057367411397130687964554703826137412697517464240833554810407488806075898022118303505150071115067271537170529977047673686964134590754040581354834201383035555604068365849839598861125662290929840201684534220211015038283705794042675940196235984863132147802519648535156570722967115682373979112287380484678709027439693742453473539609298533045898371533903403050603711366581179073314300037446385219061246696760949081699182814346823823133485986829304715839639177545709793705193718097799210729621546199047274998827723882334540215134875078793561338818003294852347455280024336246924766625562919097853702918249911040975660202439431340628339675354766422456361625634851756577407296959864976714341285333642410392076592236433016035307005042101378984528797200084974421019603041377794941444737473578969221633830626840254683108415479138539268204669814018919756488576725132603295391217319426998921972524057790713633459195686647676905310815114854971205897605373393226403582092076896445688713587128580618346436891201470213512294989993962166563149610413795364436270339272226018174433273214441547104616655009495480506350631626805464418197790873933796485803198933683485190886622931588872660497379102992585203598828081794125366897929492123492682756535953097450410176202527458187612419649014921281419759630540108810546551073233520738652608767026174526570218169013467590447334588455614537138729583633040120058343592102019463540343878003069578657435829545083898481466425892628612580076891016516537521435832874252628755358609453464922159247539847428327187596378805031564216516637569154690111654116249938531653589440334257046443833917513618331588760393183811149982465216232310205213283505533809360731310227218265581148688279051682164731859061395006872893890355391604335073619324335892829690309984178923493336286734971340197282906290765265526028005649867484908697148942884265957918839901937056110853781315214642451425342257980400391145701913561007783069771613311698052683353199244948232567653634411818280124786643130920788763080170878317392555957581280680520557573635753554045566035709292928669262364338305756486129155591891287824409068392700613088365743449061180149660044095973887411974383147846122584734642013267928730913191846816777701059337191396389734648911127532905101181519049228457923315746171210528109110944916529745421213814740114950251666348914254114572457765781441867678856159498526092704412341964213322195332546169232193571761819773731882211249708838577220319206589449263538461112949111350258457207437649967155188107737937346526397281823936226444469228666233157228378001080094818744002392205402196758461557517423112309621455314332848356796995485730256634723032097969042990799045998685468559113758942802054950514425322970700745565546933205813644142423685430661222585262273628977823220986251743526632631777053038598315428284972721759664797337442948299480917604866035939993419109787598224618618893127174291953517075195412641532404847535042026969965434890000440145913229808345869699969121274729921192908769338949592654970115102877955708332969750429034733856095846404344287416668041114235999154273223196508735644886647259015243461247374334088957353127886525354886278160097660382653775433461241857565847381511176845235801640759587171404623926608424795773564730516392301767754859339079124181210005147170558161624778254517413188013343344251873570671518787150397535227771667938138352082341356753272953065996887436842933956516887529371972871682072020100232911994273217038077194022154832155828791862512470019245624469912430893790840479413297328697486098564315735247791585775786311259374614964522016161792071084805994705859964778552082880876750369481043978689167347741434006432699169620442140121744348271107018874976834136770532835548060988879072894813179168786397659805447269619164186114555037176709838053043302686732190376888849959172374796359910870080814619687165567019544377885053149515566492958065021785184754810366649884134966848078562916939301928405289162213925445395007743525467110143418342512783084295551360199639755509097822795615810929210157199099533485374948319497435329900592369538723011056358022452313745192985597583210763411886332267778299651731417242636233808385079852212547929751653267720564284731105044030654641181121874535464797625190092531633432146994495118183889419259547221917074938447659715005075895725037691004113279819601698896738575614594154988882273359281840187346734295273449816952370476064844388452811883246431174640213897916397614141662792685829425281625161248038216816976202645859828232611058765201917134833021747294646318220025224448163539690496908796060593228206953489779531055160097568402059817369013688490118578492318072065891193796501004419347181597458319054519898995322490815892619382243138032123890964716527577222580468986493261774788383594085189921656522277712813211370988615489610120846599769931657659370728289102894651987797365349129184521755363603944276004715261746242509526155745963819272362272653029092040067628996275963476780196454542155732365728679841042815965922005255537797546095535120340208152818288980088121356799903633659458800636079976817104255987617926705728733434019946899849464086034126554850805785884597709720390866584010945748782898950103911038722929833378104802237224617419426584095216257587192866063612995319096886204615419306160534755963756733826910177256423288783381311761882194675401044576925610265142287344378439942145020290735505955942264772125753966494279662415707300594629542666370114594458867550473650735986536122778171064940386007467457416976121625974268985637807085371759545784748567813291761497414060019881975947299955718405422967747583986007946715567590466154557768045518993575297794675850431623485567205526638228652752109958213380403179187470566336319555698781669664545922696540750712722945681490388085679361461648477207875572431287224689761300936757471284580425147259099356130458705290322812919616340757194254291305988340004539518567091187636529143239552677130669514854975709673619434324843146931575095847699693571569414976024932942247926713126401866545560985352213266447832732217258969611007159652209708797067438951743147454615104058414907307942984134013562742732109399370838369735626331001806584873400205209747164837296576623842218356043187430726201736506212089123746520566023124371487064088704559106876922704616333740322225789877629757455728233679793338396341329323653519738651999280127609428640778775037287779438119457818360345565527921930510698806776080564013253819955310429627194094523494307263411479560124545818507806268483909655604451961241115621541876525306336145238686560471812198780766655626164556307732926208603015838007087383149711432551394606983108846615764728773378455801381372480453703756141847172711811082238952886505119649492973050140449899745911354992025320599289709271936126152255319997767376622090983636148116333590825964338435473267830235730978103660759541616387401382975419861441912952442282288844696698443071050813221782246584741508797446485993479905648830664567341901651892533800450397755524748312271928023302870280036637692653584812668539551162226741302745056720309864813206188807068002409063416731418453450815676587407975408703732262364364428019691732334027831128768044728404998631855286247893275084884527778047180915304953979515377441398321730635913087882518172243408582127183509194280251431770426631806855895208554505687901077642831785901442889118741056923636046607823128611183867974207542003741075500685714660895244144327957094158305374317043592575659090687095016528670160368498434884782268540257620856774291552973771195056465072168346321791586208471162464191243701141692055443000808656140195679221166052627503599841415326187362329994855022137495456944626602509381725286012223681573736513802557104930410498279677839813940581219054906531211396779968844366273197518978302004081391063245425567359655468884059065503854074427898239390206144232456299737294717984319839347072330586762910645056190609900195103129193443137773928538662727748821324006568116583509760087242454580032561185330478307508120717360627163874642063502715310359176167465302828694050835398252401210251029540829903809346845715647800581413990560011282888054169807691263858518158554645000245608672948789291213148922424754937193847505421403886083439263463795971586707343815253576936480036721911738101616198549132549037723488390164956733736065817887532868674738749610201401834504391115789423195220626332558041675278921477829818533725911524526913892875564884827948683997622885137725440557052449788644509817196469951679111601940567659233658732563299052068447204097960665842614389994726817644213999808000397572715744792816847907480520204146831454463123259463816631859556335642572247126497223947740990181063782828388681556235868276657693598624150531847489145603076401075172875033627375616747515590008699385126441143874478140961457229512261455941373558930044692786969340557096656803281332320374347583638421194291822074566445810252729800716111585464100235662799178293702548676896662458370527625321302798776015790483073064391840745908677745322161009307242970823810054540190451550164450758230635109995816881910482358788919015963735194652720980924495259245897882010389975970921625922231509801489894763874216766688278716295696502858960550426400437278781177988400063434342403106212576881665707721330988099935083399786362300366838685319531251261760457973115762082705166846555213161130480118632070568169741257629221879731444525316721956755219291864651813160212714565520537732086552178723386542067586757741207128074542102860770628811166170725340806029227937686879994603805217970962691320732604262000586967493472895570900819298664982783511352971181121508289841879893035712548075046191084024907742374423231069603612096291603164654721165897549045140656997063569140403084462586569148980859319297689972175557903028358131529725882281845780911707994343026030029646304938272258942135464038041751462453438682123959454353248583616375066513212932167934531238912466044524085881971117534251102903718975230048440836983252291602077276836125565122319950988655029257250456290232751625688171648261981880181029048932960423293970403785835274268136628858878280735604301118183025811231460200307154009365403302706807392180510443365162010675104395334640732253598833190889868971848846639297782567947367350481402453368431752735583878276830805721033064108764426503414331277694731963366114746235782474659904663873810140113597648507509779640200581925481013684937844755560752691196788631926897661058138503780317671548577459475427606184101293826337878258934966060455664539023000439340251318946621903359821112729149883976327333205505892740621368206275112486696844814424404387039754278901078972969493338446839733081968010608077427771713167274009391055842844496053233891251182580781011162851251898419270479913849089127005901202871308977490306551298752416549059020440935667793224227839512350294348525413173062237043552777223669125635620603257907053186725360505626061388857287279915530765828693174624836954429164639545149540744985478927211634521378375016647173350648035900980614123609469234641112311590173904325268848305318975857545492652847746844465307088277479342606669496429151670397319718808413685079296921110977155472402269657681011093032464123313861531020049309907874283741113660985479061169407354638430179215086748349886256582459362281539924865979742888476954627671985897432536711588104934033801281008654527176027497815183851184219333118376866369872187813181351939676695533821236322323450790809302342269693266179143906139558452612131777310332473643040767091211428088554790516723214671175909716141445577469204135571786445961945055969548103684281861014461568694151301645699488066546805798997665301170290560157577509542567940966638127697284842447469648543618884361266012471670810852350110789201434873047132512396773063196469358345478990925523989965065669309892947219891022653656397486623841324419064892989121784878012381417855640452768512588153324460160946904485951304099573610628462321587873619466347396321612632037277154258564173476241491351697692481083800009666945699237594957047915360306438699654870676182497765482177487539498289912110619508459195591417188017365430350253836829471427904533774188784744616988681945231425718319091096077457688920201731377280176685243252656120132931038994932373421384903558883828164467384536825924835295248554774089554138522511792115792533163722446981585359456630350534902710735467195485789962073435902795086943751685741066377897838175606429356400567207814495038522861216412677868458256705804457406260528720702590966708820083540358672937430476409364224114862278672891224956665684374464551240613480591729552286653554651157130645041096169552946699219630851258107342951838045031788340575862893596467526737924517004718857594862094665616493780764934883991531606116038665475009698561547109418978348441221570571704515662939167424487298096238018003078418051656772051534745506065172175245046231183492625871836183973357558904842903285538422939309674995366034730591787114921450346215830017927777727383979590141574690536035346412319907291487701731435276133326995600794359525692403975637339806611687771452472129578504991320976347897605126285271111068604863902061357355956916575532546592206501299912275297331048308776256220984216305795246713397103367646329875660414615489992824496391709630907352392781296491136779703373614757152708366374173084089012372535542297612734562580287343279619194588474013718800993071736583897610767396952401945588813318344127236396713322602348004316251677319623961538519570941033587748432807955116811599818779804681581295683364084740791347353636839487283563731543093446672580658416298667887588290824021278318766414634254780784383804016622961966830323559546506016086107087472664659283160414155500819524608285082721790978542440192283993512839001510669780072787247121667193050296860955550204315511269251046559162968427539863456280487352973017572268309285226137768594596919427731310822797822454972971429198140510773306292181374303681586900393993611725520878205732056420533780115215837913211878610186367339216025847347209310832607408799969065527808207161464433928990849622060516757587502897596432420675079834763987272817625384231641262650253443606111419455978717654597139618465712520146850906722736158344842358456885968513289955961757667201510138311536934082740584800966209169331445417867428962645751966507232397464256808543770491244404451280195734396919771961404959581065009860069753213869075764539964393390863158361787437042303010289753139848310476797023952276286602097129153370405623056705178063239185194735713477887554549543972306891342660255340343817377134606926750183702074672336464222586746081731926430111553686619218324353470420211198723386839526289465348217733899873583682584185789737671669683832233746422796410482281528435670965454826497919069990438706134778484551451773797628146148271331006122106267103214328153870215662355863128351043866518131772765043968552270455722135660775519724796512226819904047596942669995510081482578766325410302346377206918366114155916134600307459117314689426669397775328773871403029710674805519518189234639903519479431317708639033913132721370147835666445825166518355070963116318048481926032933921159491999680759017817201523410706512869509978253706259723394888940108339510860070501000117390594814629328132835496999661770317078782596565328495567660379464821775963491432781327056110925366687010617066525918229002442901267865198163829722329915202542562936132356617692702136657184153206920581320807102187463609521123950921873092753114359243892457788642849979509315335829994313904532045438436617058109525438597077269536834769543179604316616365669878814068369318361573453718266273169990018863596905121361093413445028142119375451381785490813413054027833504351695351188584794588108884553703482225341525504177509257521922099927568179339307696431753386185790214913674345768197891872774881433697995188393118946240107228742742800674037801617407982463356403757723518041630930070557208049153607130807327607703712421201841073107871215290191335777771775157840637877853313634552422175500283701238594684260935203445006532848513179710201278848080361869857155197665183956026199852722100952282522344482002927793343975447338333338056041504316888064081969954291919063712895695147145489437294928309407975519910429800007345049359591242574847963329729402415635648452834144418089068362529764721814509213738545692841881757252548610149030250854491182229798221057054818529690723414950616472056479655960973459579959277968077444309493084115139539085658888480271682225916374480075539264701427410276608466760161113775289017722081259002557747346894444752741658125500403879170917219928625556716316255170174964494105116102390103362378397161299568124945665790050969229543419315245329857040389877265973420070466660815168523064212373195967269733590878052816881503292496186611001545783725216051552638792065592217679546257580611635564057493535685549078542965934855754340916659610696796252388937277197645921737230788734171758531262103627420298315703930039621045887560438469291500815357174887339865633174442593526462463608313033816203832192969211095272083123305771438790259823622312084359998000828248038999522006946771836268578214150142743197053117457859138942276053519320080293625166179980523172289385547423806356746862205728026052061426345846347288361535502694819834184806189081714729006743905792963015440911689598546787068996239631727255653088091819827205160182976983259994097336054316891141577988080143957570709499020245894188356139573379697813568503011413277765113364943580271076528428420346197877822517131936878520522458840497870000345269113524082292698455722738757630254031536414972063150307505598333274708644348558923402500032919686220235348440107417033093803093069869194625948556401678652577809248410727563540807494259387194586449307063312197129191015132342000571221294130457432164493904985958174078828100530092304294191678926301231778301687727469006468959856775893287375322399300474822249330468806358727834281973435410775235374556824398315920666412569829156613015263139261267107872840702302955854720863333873490802050211771619087806074827515608144752063321697799700038323061283940340563628258859966759485855576775973327222540767840426987447172314680155764878534007816581250156602545745650738545191629201015890842045419979115390410815287553782693431947670617193929107875602506191330810644532472225553981028830095418388415186680711543533514378206182175312202411663339883126835045303650121966787695334575744085804635248700548378534246557323449504920837590542283814531715041392734882475405490690667339153332744969707965200817743863798802574788348492066116441001143388309181485305162783070074215976959025176256161185661706767843396247511365121489441097664607575625208480428564718435696683049053145133536508226527122991632845494726860605264898427486350685515843892295564640002251620311453690115557665999887963927563211352708778052595948838192969085986791762802658158789999355949144826764046585820603090462374651217647131993287255129236806584335905407227557822578310663247519958908959050883344876636304535702959496542995020896226663178062430586786568633519431877061774851012322373572208666719126035016601805213643096249837648273380690625287591453648986793556350627115135704387375169487052496713575364484422300102453949462506131362876799504826489376377663333993075101472768106700041838240953699550534947123929151248691665520917971655890895543993031221975937655332553041795472586290605272128006067544434759840462405172248462668681694413707876635606252710473422406082660001185548108744892837706921234819294174353664283655239308172739950355873013149609723584272460014660132023974014219897960569085211177103400788606005433892047395763057835598891749439167431631517466406635162719839395042297728787103099097430093145686498279622933901060065865498567197261078512209577199852014974134266691478473212969035620807179705169299877787040299406785554450916165820574544424703758927184698324126166753752540979012589007977727800137533281630414339665658737694994639508792753341887882420932966501429279570797162592820748575700994031209501099464712178912550751018423342713362938967538166203424542763402565497680325929248126334933151488642140237434727081456391709647861718086252725315888687928434043167840445501081873545199489578251321630848610267631835869786308533021654510898566398719610169525114888775987692277557779178407845517859857460619782133821859915870648527161332614105776755678639272424955006672309058736089548131298922427502689134424016151636224977120553359412324529734091486006272648594723086414522108109410870293597812625987473342616658735781502645620562971146946004095910287383336946420779873715574630481726328195006950949616116311094235293820184110012384951507780534628253959266146264196127362711682161071310180065640979436293471961945082896665947222344164797341210506408262392511480391792355787265782690420911674784364101520492744028283854815550868513402466652030967856437579331524109380715144906772848899677852052315376149125062576674818096628461600470131071092230464536618595739320155327734339502633281174456919056533560030236027935961721417877637616483154539096756177093873782043628337564532841517382950782216473023088735607443978669379015929394737522238654288361268308260488534569211923888688652348170345842352301160601404522672124897458169768432710863106345027015683457855634347887132488989304954613183297878519249384919454292847562596069573004948509487722010673826374067417297571856412272801976297394209725681513706708874412625921890368131316550551091897231796854048468739626503030253221331900588499434792829520634022200905537616331001991508470716714494428529874752646874145708854903966946155375607404680308266661070009843884021793937512012578804763132664076956078897027404114573623801155916646290374737826934437235855157595185075305860635965288368469282255728215163110360324477092041689392176423663813996136275019185479799946381422760238084499513588205484696782051200785820554136023775135102407863375810599160331504122006934754973240463440227188962338476939880672021860276638012154930679598474729968516423294288412205160614966578213575884979316135379812795093566135479156065147791509416794836245144989923022448191598061240218842112173922581073406714081213618675675089366618720480518098027951831638085915494973208164371415247827368671851102268497999408965289004398902162696419958902959111874720677916862033259370714723765960509425030931623402000266469784342292542980194446141000136846648670407750340056188872503529018047602495393618700578807583182159657509970529613847799426198060432108604079592155477839793739496317922966017264307060177589804440127740235108245662625088001737528680593378555866780332706169354488378023000854546261643273259743395246643227904596335238739583489502153805064555649737169777408548548423036415195211143859803383606527895285336616867418302330059297440618317711979944155478232075452212234353068884621521635264966934568419916972403009161134722112314227833295775408366898649881327646367332533518368965113653027605530643138813393222361442381952951908669645955003272655757455460885219222624971388106616842101924070738257912383076624301306926764770816511989336561296106425678886517532847923450272567918271673427542467081434140484812482715717774172563913622658274311646969948177852205459395002619487745734375237504133999506463175921886764334082591511614611240868940317726030569782988476096349212554430711858907560918852485816331534608971436447271061296445381966033515853012908012942583375861902981805483446360646471778697226659940511924178586258841548798484586454133560263584715456943933331064020071566738860633172220846645740206521456356961792278716428932798646244935195705299744973158489901353292076660028537041966731788499480611556086080415971598948048390284554123410176450411730654746529024914635328364873569443400337906986456092165547451054828461283095480314409882295291731633485155856645301796798087230744167833228497650924776637127053044122030260697534158851189417542159201494133665682271126847458343174424706615492825910996950701147772514720622612101766590288073542129256308034677249786365597369643939135479272948759826715836047764354718696570274486420527763502178552901489701475226763509852691429918684314435643910259084084496384236287176094098888958428268079563967966718265694115648279621062718681121903567406451626152526369468409782957722005876885549580130665526320918342356058951969823861258316351672386571471263173658639908860083667575550053287219520936067897010783999952308700725775020496226202627707380171307019035185460399312114934317575315302099888172719164575838926941784387111288599038127071170623039993601591058659669984164875619108480018434380481248589312328575275503988247215185891007599820974905422539445013022301764118659865062796782471140554310220621816829084082466529137174974108450837371136815775146104203639575668837020468609337603396804819546880003336671375855873434369305481240714122625507429479691781009662538693317678297084637191018461936894993377928025935180068152272067428829383931489856011820617162009569752493861864740797820258888755309110151438969680306448344185356598668023252621493730638317928652343266537021820720191837746653751929793926656090531620200130724847680552329816083068674295284246704229154719622851382879197321751251968159549278208900973412228797239692192019572915321889004625982726187957348200090002702367580401048049403745542363090117512907378284002628197817296593788974655599106967000915235292214571731746093581406295333904970764831099371915938996830649547460286671795938817654643507020175151542794765163194152169228521311769199670036652774218937993811791045435104918544273224843341905525613607704597966863309023224196062138899597319073318435025448580707697994673537504506999831264285118248175181977460316685162591989190218532977162745384673336757274081666860778884434330269214326756458092542188258896639672816590053867362141462677122252731235719425279844376642745208822667239271372897906379760127006931509363460888332017384422113372958520704582723813992443543133289060676340664514908087496404326498798928523581972563129634113967510718397463812803243612529339130798898003263094019964974861474081822100529111309737195429256582186977123198886974148941027766272719253039654150283883329488977505627996017989314204761013021938370501204991584059410860611027554452252888948516002991307076486813998208885325481731621042881089584375889438868233633839394577128356429966724399730814456426789757258461044086533169563522104425435869544890080526297870477002407797948161088961958496582384717160509417055819751215334462351170741116946630402891929450497372948757354462111664095270331766634913703265887083026249902214180782039423440513164826750997227342372796947734972194140828418521965039826305410621189796740364611910460303569483476227847665154379284531610485357412649256762067217601648049499458829187022646316638980966256092667181561941736619568921900427001995089490129223352068420141121290062009474322591381866244606141229137820531021428106118755989811345262755874802406367711925074193509385178980164715337236550674146219572975870918350308174298298539188043807820243346215588997989030897652282106055252519780021597101595613806963148813076925603819718708112320759637818917782885083320347867344408754622507519679929690526929059028296569505234999679111712885692356168690759904518158861685495652069564748137997616752250620245812468766782126535623459770197249819779396951657801068366802917793237496740723659103680463311124316978228999660016439671521626759973660509781529064383759349166002557867002112540283420256784740788008999244146507501615487691970496865067388281775888967017450378022574487066392170631852999072947382795722169935024549014889215948783774865452616510012334867770312324797757723976245191309299327643022798102881707800893605633006629711720275034397722657354239055178986172121406391682494386938409403213923813219552108158532551441798670560713372878509804168867630273539784245484143027708864080876076327368931740875244230914192213711175149198014313965172855755326706746445946390745789225646849984528789313354182783698809561355503343992748749140591195116445394052736360782683444530226259767855394259662895377282146140548073612100139633389251295137860918253560467436358782648516889679240017802966074459229885787137016906872851921804267251802713204577030658550333521712330602008057929570790146565725637506968561344755161680711255359714621438483114477940014796043264476387672396677004715117287721211091858895888079028464753093955109273901367473078304556449490608166536589759761042466290873759877366356500135089866444650335799938205779291782215087740285984218752899193999512805253489174366918519864789233290331088228050664481038820840771814523548221530403652936991985437023824276046341747492442756435355508077216502961187393228114304546760759063989075598348299786150895384005325230922850040987312072339225413259350909450213238068324091152468132104242116485329401899851452258091949203880309221388815923055330644389273507259475001363919071821153961751464729404602323317891351493680380443222912393027717355093046889232137402511082855246301549649628264734701029966756982760721561484667875820212845068148435083525219742400257581677406576418323707096842955188020762708919463397651061476652114675524156430354158322557955856302105624101203393019437891812615030851574881857432058841206695474556356549064146832732111083809917664341339124265694653849306861318783619187969481086333171457683210442690460330184813974401188960693439903739024385162800363169543468291046152859163372183289231080851036245307803168051438029514434063498021831057126193758425687533885945566130219557335102864371153147414136168749392601019900673052180972833643675250907218195413865008449189721431657143026313169268881446017859973508173475625967207672888868268208785550668767379020694534411617556648505330134480333339878918553369796956562854684161060593237737143511376594413760638392642660212039093599209385450073586877648687349972747711083186895798975890912014534826142892971907745980531567184188506406929585531016970600414811325679606284991780809257659667850479549380160654862104978209990263580682633217630254657267732965857389089836211924201308454512524487803659319424352946319274858708713222344933989707214646511568695492525818575322238460116526424939459782866187110579479424567895351802672483091140299835765475224718595071793030857624030754548192840528998292804226945993523203296891219576345345379374468325639884367724868665332297385898498520964495998908419308970551661035263581615671665796374041586741164731554508087114958235402082457597152829162350433805935531778418603765795254482959142043159438146177708680326165523443939344417784665251762056805794491999418657347399406360493931608502144897092505500386163297241210430951720443157027404269606358574873593934953658863347604240078907084507186432285833811632716302344862104259172443866967358032540788186591514665119891618299615361078186481122851319357964458687173756358281983587960477876477475868391364580353382644064892830922606383412317801040005139146003472004036281146920965343057304004410328944111944712425011173393848173600974789606992911077286129121957026296807777567680027311792799968223823110975666518907506234271268005047051074564061856378655159708893147366778576048113350106298748216801154105113498199113469393816455558814652400442574437426106684047008657146874158797480522357642533482775881792952880652332103566267601022790734248761153799162271141519836782650748444608577572540745865828642200818260224314120038475837057582013859996144693155744885770344035528348323613700796078099811965966149788309858702526737461583324158057221527850094062104711946998357836503598452412036555174645644442373229277580089110157309692162215229300633425718742017891999544925768250126868357345641895250219799156927262584915747738964512099316584219324575098150227578124419047392037745208027512965035867188805774729472740580579675589565999775464073263389691937789306134723400440422248255865972192486724937174193519309171011207752691531607762677763128656145324830392238147664617463689465704801355379489253213062857963326741226224300299476108002403385294630941145362847231760337963221819476331313844408132660161035089724123905891785051557694810556473124402771808606874793025062959477477565547816168832756402709960626850463719778996977991358883733262579679714529478520513469915750032079668597941220287476024665525192148394733119270633383497709858888417658494180493630543412921874229938096127540382191014949148217906553293147200987900257214795597212178539829642986777146351105816290481890860260617647039840256320838600852479331033185882090088425984427063117095414010520909200147607188616153010148010095678584857458447594257426477655123530053152850796194025545156949606206442812660560200512293350479659855628057123797264126088934208695431103234773620686646579357315418319898912064288665006104849700041411166541330858074754027566950618019130317807404881382222111027226024303710824666311185411718410447059917439182712002247640324561730069834562067261811951792388267098198043279562837930353550893693872879362980812356724151535396896876968091350222172338899868477086084926993714563814804866280828364159631203830453325898753344435217592235064086868416715092831149057286678142211583107848149888789789537890538823533548710623724241937090693182671084550156650391853875450645233184560210828949044547133755555950517514786411143299422888825937776108657468542000882943370794754983061110233902540612077763025816595613420951127197091305806433035617877805017437026725978079313767019724222404305838667158524985542231043188550550612701224155585366613721117765427133343097821391626447870474093001052363513052959117466554654284686062663160638308522323090702022349126614397414706754027859308647961094282328055688095187059658838808263183977024770981724804783628046036530260123930048359282229728602030876845048244839996981550872827207220075297282675620319533944554968878427557146388454149140276989929834237990315165284765382788721261318228761317681518540112482940240751661597126735577585334345975504553739808350505494202198535557430095453621781189792370222977971386467857614615676243045579981758417346395695213654401772557245019489310776825556704792440238864089490933103509881876665016294961149923889903389673887241980213577351477481874583587701965332466886149723776029737162761649376832577173868165018737623434296132114752973168296211847777043719299350094761096278333958421092682511115476651658260751988242812801315817528050500887168321061758831454597692795883122358826217748008733522137876126035242390437919555496055924070793153661037489632590350836331307481748192233179064499787195607448841180162741532773363598466637471915816889698797831714992063337805606783493726639806378407619018637199234047872893396777256405035549820909514659040443339758878488752537099307296603799844258603474447450215156087370803650240210409609920464842146465776912635487069054002527621702050275275552153285971124353986223379111551544773941904219114107384193002442868950102892859474824370417827231081190294357660925182031357040670686588232200744082648053862714335825625485749972412217042918744211673242328084872734936538764104851800758547317690293758828404147480582848498356566437598489615248389345304565726813603341992989123429221675261612827394387457754689262291556659628423227246007644641806436177264919825443023396597309487869636746826333870884046912058277739744930923933980735263025595335877728336550432564260992035528164930546247427400327518100178049489191124851314564338981956540400165605263459025505870057033429715338453983789052965783712026699824000811007438817005099709111631576920070959462635518023714014528560947773269697495410191154321111272013377481710171133812259252335153574409974361178219730240390811071032046456160989267549722559145036297997899782299761279027185272789592327301379580739177135337485543312977502603253321063824919258018150365032800487524920776076257036688205011133746497256243519012797277787493271738621760488768055113933276092457510086253821661825033504149892275792255610509133123204939137251245438196918927410773336471085556092345270517568471549781609404253655973122630808550015306997483645797585002830880046589338404132375029963734569899743917994809411691133243548584081283460972495771481562171789782896268904458457122481860588035169836822491768864149089228863910537856064815628081878534222888241614707562968086263730215550333773446238812147464038832295292483106589770242902669676379546817770792192006429110434105866474188072192125674809148684174670435520301197611031735552603105823176552719391047364436211945235088264825046792437586541733023152336190304096225808302929525422760001748847473891092101560530235882430626753906662118753978665100756797074510890734936950974340244411603759889056464028492325406364784408883352186199303010814258615022606822680181075935689170942706560247098397441279254090136572259995242894984772543026629365069085885477613066749922152419840537683311350481081199646653138103386673366125477607611335489063473723599148052999720262412050400126587384311175950205208212952996625259587716461871115369273567069921224206509419514480344274266903901869089407916795199012911666268215533115162797976492926398368095192718285659006473100909302399276698883329754731512729111449468188561749213317120262695458448956854691219057943263962844623689089413482213372267767482584980447208083731139186715863096496141246015000317478835015585047992600006535539287475055450638658323384722630678132812634630211260933672963874071955251988943600659326974133378572259211705834637714820485125277579450802673803366955033539331469681732067755100082340415493769886527336169614379117363662927749130519099346198958082021331034380846153360012877561075384158025249164532067314216277666421154676774673282867586358906995219701382658805044487461354882398647737387043028990732816474365996652623175553245977048421288062158519268983041292247600355749364680773210035538831049951098666724886889534944978631295500947203708070362264063516828664815434999123801036590559194231693343483618623782731072081410168555124397706601231720239239072335046476860377428059680417974510899338770249202686172009861321394128412952693263107528252927711986783674459883227211498513417906617230793869674396298765073282649473006248318926500882733049268404475613970148609968582859239349096284957712555393016733327899290884303698719030023088428481087105568201020637692689449635829403383698661711914730450991316997679068852141620539321429825849344199614681641174840648585655589217476692519671984655050555165197652844313176156041683409550967110399421928704229749016253385733874383691011087526817000818655339063614567024792297220398560831660801296752328335306473598695133872803476722062508860519249602055439636731146137092037297372107625048136073051827016240564165815514836484102679038594475800399076109445871982817648078120123766036707950687799168929780076511854668990016350398687818441403351977081401304505756227518386231074573639062078445664077532288969882538280223948261295240609277851729951689030620712290516715871731601239363065952335703430180414034560258326043596961913069993190287695063935436696710141008212164296136073658846828646651825581435718522731392052616840241708392123125537079918908621354994672024133948238055967139442619799186963206329458522836242112554273047916632074840899275438891981849498679001956262423040348661820129083860515402177363268638640164659395926609481238594691109101491187262833957910978496643131524409078314225386039910483916850994375035733304041458498744828415791947773032442028522520566254424002584703833562042660045740848902353315585011292431179655674302744228522341178025824347098281674136397140531295898067263492242272549487177388506329379775497954857094324393604192962452775964906476833568426816320003096143566073605556962487524679129477446797306532059086870990697299871632647562121483247038279215401438612976350252110429675358264240765347189215442928320866447303348143259206794149845992738344373577533828906329539798681890350967331963091133083717860860056971260261609822462876163475083648699791246097349443677233476346876445650710664943220079401533868138331072298250063229744862596529538387055197966490024873680968778737394905589258673838674054613807841480271641467140795759834701871149529854834807853391104262096398216791955385008679842359559995577040188276110791017036178522921310628852781918707331463818026456743586192470853140300987675397299106171100081795370198433418090232725160531597118842024396859389207828570096587798560379702115102818848674417026065027801050312715878630644739189253044665461167420607126112269490046765678133512690748542568704021080296788882110403843167911739991216286726737484627826924279902558728398177776511768173397065490532215401394726467548023811043712489139731331111555085351607119542023638203818304145966914400892716681929865070422646513578758229949641217956855127146510438047326235910784543008986075529797268978606073109498228030394422466980060692434522329991156215109994843211094722224304154730859549314083983156086375011425761277639690633838745011699911860962700337596333743671422847509042460999609264911866278429606967689577864291953381171039192376474867977808782898877154469712326060371630030117433382190562599059974397308801990792361229599492137634671935712788197595464920891330267326971780507549515867870992813910063421834630277622244893721964415775285613261239076656861747861530644301641345211660575328921764209948582326203003459819363133835381135456930571593253629008524006640932528400091241698245265484512034563601736733145879454511416343728573094774020897857299603704349643595885822721903560691916869143757735709054418690260493482727715535177186111381796479542521704562197572628975063151921131203444136427639057144152398936272258316741641550071198232787919499501467705336347971282478558223423308411050781335675399362715398116985945856373269478091587589852228702066913508486889402892500228371066512440079754756489390293313874844588799050358436518784265108142986114386328541129730947659550072957920963873370973764581496051091519868530565977875436070577542830402994564454797309996990715066297349376273569161556673901011655845682456758515351451116065397297303178013003581788153827531708270862287655314362356391998839545888708872224291929301598656169319023390159355263554560298083218368250555911243618328106508779776241222175308601576858314934914118321549330198612779941287280191409791542323824295132063005813763590221760517642713002245620169836207864323619756501271877073394669177365370981232224610401445729728999706393794868874622774500748202723200523452766475990092773987911489535632403926742025521278662117526239698844275116928520936766154939026167462249587342061194386648705321520225645030624141441925913782558074905013381950545445822205719165583580253746946387579511837335705017637061630481645064711087533016023411229532593737431896382586048436826371210050500455176087221791002321144403234746097460043335613539946446002969026840929579746050376909256304491373726174941807229188683302608965653409434485668566325721086030786981662802172428114625787301534683885670076928836075342708849805143610250051413336758611874642002043111601780339603567395645413883866986809665289400513065666416071385836023154327267822278037056190440825245672350060948539217786855250524855339971330552255231795692758061360569715843773103253796568770953404497432636374581376548947344711447435996560950371874322369696893457515938585999630131835182472729777584911505289352668661612428653637185766384234934069429418800999719709226866152747371477928102387897895055824640466188452830167306204714452026161713913242537570037778465239937250962728891391838733406131547387650768695680939852008082962538657902503865239308068906486686101139438177009944074467067850539435441987461586790041337435416934140101225395426232337905293761462741279993911620098640228845158332360736241662452638946837585116246418727583879322063621081854175594344461921604750343518278494073000430118730594217466714431833795301778357324638064489258074737072629374377456516599429791417038766228062899379805944651402269133573440466515635221553376644961591965129756336277610196621647331088800663951010832183424401099566093042053440741504032820913435015540736194913898944370562747169769155845458225670431315127531346306758491475532146204029696846750199162600342934039856945624556795590114802100602098060916265121966968991212009084135665730478210209387118632895464240556240034460857434843543842823117205841784661811548610788226193957308068117294012460220113076158757893831091812950798117339118545361276621101949715914626991985077285394708555906714420714579578949167342962780571668583821282462634323711422306331342397374485853080839620318102085359293099145463975745804009480636291527465318114675307459816391817530632774276308191728522013017250122199976896209256881358827503172085431911960673760301475790317261408538567831055452868206280012058716485073960592012439045709438834762199567292395011679489676749980228279300540191415288509070591671873906996437190012728735013962645927501766429414946742700071969632022595729185409056411726683048721894739834390101690346340966828914714315957618663903077201565510664497686913076834345414679262136984208517231814412167566470047874481340823135241687194976442344161056331672755557370358873862116697343110655819142306405061463661906482181147440263342527174594089807702174332161180148367277474441918252331666806602338771534777680777859235284756430587777336505834485647948282306001886531617447391648254220423949283109572701989963087154111213178158310116921509000320153208678593718757717712486795708045083588627793840184522131868145569611344731156479208391092075327311024253115932596355171891781717266260002803596438257226678282403267920295359898965248148600722105620982382863936664194017865632810567442345955693580394527266598155855791976727934522172643142882661424240328572532730966134135496869738279579852032139368105103897106494776956382784545305474403336995405269575470720583556964930529649557751248856968346400361319710548287838232976190302654262417012369475301262912395339179289884114096509704134145320790826525444468542632995510224196147867839772570643648167697827114058333392835685585858481951152706490542303748232466810607125104200282172933504752148662984353718359920793410788633720213021974131630214647661429247686700681956081826925530168409586359685407663283345896757756671588438107429209011618943444099725005380495866595477513016015823910147336188365860437832753807774884775983365581856998048619904989399986055234051105363869346673370564199211917645755010696849431926584270553235568857587431332660508441466567836343508228203557945253268281727318022779765772259631963719271955383550619867832967239234358268758430518890648847773984731422062571759710537673981571970709276911817643412102760936387255683719621684146719569867557345713710639014791695373405362933527687309933502754064625449559652206847375128325862425470056422691570243481047116925646951276904860149132720393054825980399092965380540174812164486855630496806305760627984649888565227445692298276787827911720706654658853589959544380796375922653935793554730106527494904913263123830864561591784967883638215868468510526603729969478974613180734291501019939350019839640356857379759647597809929994731315833243068060914893080238606652911232935599244967339566747856692562508569876384833495244821711874976582247586727747597195835664087170350652335976698850960404030090389630299655462358403192808049853068228097868555822173062047934709004012572543479904261360253144518995785218882113338114277195566419194076146009125127289586659993910354801778210219946877928446047667986854372417087534709351501930963314591352358330621380782823001419161912378743010011336157530601711779501349334793416312264066125693634078866131924887985076557491594457054169678661601478336116650348917214421573339929371139068717327733890001907950067979423072841428084940827695958696841427418968684749854132888735443383092465496741577651638584318097746258818344552351577035436435122880168326139750192745445900003743084401659662374019106965858533252690277166965703202508506829549890261101662725007600938122136713008245750538458045864193882716611184488624646716136071911219321376709241263574630619396849892887969025662579409933391688598842416279982890615724284389956287787425698897586699704350601236160009138162913482764178671468686762416499789085963302717489201160731129674936498287807787435925881579977815616812754764572079944942967375980811948178038829928819373477117962138556984651120472006608772975565504258157215635694748354235613747379099789067075187988634538891190343660317088616414778150964198676978364732807422509099565049414515928139614529410042676026414482030626564605331605339932890946464101347060133276698560647746584449339270523052707522774448467447479790964548861508741703257181679325243811617590552802702972852950452612325641207274278225719130671187176671673188720716400513124637026251693238731554665121967259060759942069476131181365071544174332344626466185626782605205140211689222198969224973229845143622021212144158250475999929532854885845484319614240373778873418679355112519707824260365126527021706835083946989257008949018842943385045271390447342119840780811439538835328743372110335326367405254428976806497614581914978007240321051862716812168246940320796127662634208218511487099318577764969410595370452864580691645355649958777598200355141612505116726861711627580240147432010057440556289978569934370455246284320676521097478673713026951420026192413617759390956594228639227391259078277833167607223470671466415567139589414884111527228956783808558583559341901495360957541562009614608420274459683194126373777548192724128656577711202887329099950545616162875226787746612986006339386435297622871956337455853138104414864128098739719663377838024655234682992704658762818451072047818045464733864796104048095709522520032552036705120124625424204285917075145952706912026237834422022892998370834220944814430388335147989915998753724690814260626990861094500109061036947416990747354700841949322681642506065999569689048590819108133182292226474127855267439296623078869217189554472158543858918421086820560932478473129799295059449769432226584744167595983627375713969642721584469659483245053731478572581054083638771188238721548377984786836425335394064370431224888304933210154108466664835172357747838123435890986349798082266432385396289417609403568707742395141989318650370350321053847731350857019143996589385243683426393674287991457663189535377189178057609765180819284805249365454499906293349074651065381897193372432078398926297542921808767845942935151401351346169998834839650938483774605516326693547283674443655766683847606550093439364142877783773530867077830480929435987049799159273684604117902055381986768726375667873171223908201526949251635231873951095080637114912480765574593442201113311222715476721010595392654280241752625085279605107804843145154780157328492410079577881994469108655793833916074184167850728099904641891739554788581245783941304819229623117514304108121225537966773143684109453575367318025252150066370911414325151926224326774264038509246454885147549440951107884504860112827509940711639328377300847757326886460001560251546667803632607608970910902127257106490529080577133231164114238572485980203173837180748912530623721976266635815490586575868655395231031113975723741561310930706786130077574789208225391190069489548602571882883771174571747879166233980393747133403175734351115699352164553721815788367406419313167726548941455268246670041976099696956926343381772740357444409094626301373249775216794360873702818525648520692066729773750602627602826771926192910334827960778575764989074588625491869114237568971529515097201486454687502537251191006870232760640598160930243783215608111611155153422802758448568871373312502204057443160558136140085070493344868345543326169661825656008177682808329489470060988456979804302224944550879824057674244945000499110671922505949138706757189946265167073258609782339657991021530641470401313950436972061602536740287561445199064892773163450727338385487369074141529336907761003922943817564406144109947796789779198566721720597389245656663345724893072730472928038057280904621588228920498804330321296505664793095918706805535063313688434676719353469661732438260365146246809307536606548951435026685666988584704049083025574210655390145110794963347925819591826777764274508945776606983228053514532989606733589632498806610943066152095673150008421847689255766709959332503144810506755603374959560654653439957156969305689279408741352319818193725065969313184674936366656435540803540077677557201377254562265603977407520277314665290140567413400437316462376914558173913678517566959698111016467409361516372186624987688611399224087645816430248987487116987955718947312235355646464520305150045932229865219860398382776542089359964630759323524726755212277543674656699836884716152008837914345137479828689977445528954578147723587383720872628341003706945664306517346868662984093330054808179601264399498808081064345124704911654786588676743968585146706435057640883020622195651251337492496271991438417594431624448855556778224388768626148335071142388857574261250953104802702091343629245513957238493601161561570473346453498192414183299028841183598512008488667617078965912498374836430568993273446503919940904464297993515576490379400463463966827361240608669586123383130670908556396620852427785788697768941782693868376787729466367578096209665829410899194574539697504715181730860929260232227443986139330216339074993336833353471204678420257493091581563791906155708389426073611836929885046982696995623339933511478855532727162519062292788073176568193288958315810496201924797300634191143136464786013176516712308170704322569359813765933026955491667744908299966118769479356039080343600762602945292475929523671684209109880625377752649447803453725350957876090401713697433026737123980620439379444187606875298308910480271422946822906633037880598048905695259388508571975321346472988154729845772028268278171391905774016917086651181034306085361693432472983960841034731099004945895044088579966551292463809800078094968790533302319176071027045882717606663311041062394882474022566935739570988831257414572381550238601203589003201514720765987764214841002927831793927883257178368854592170715917656412179336551539600212927935229352148781939341068044663792554775606781511000565128170270303897967602737149239184623370131313164137379995184881334021637198807715125237178675558431030349412566361541806722837745367875150745636644406784268191754283039495189987944419669672424443576386277883994295730996433434126797418804954738961774222267109532088041890838117418407317043158437306738720520793794333888530837123401752663220854827210487182847589992697789455242041650285608538548945350462524070059519074211983075023719116623163009927503060121657840907524830817230647712962337475287751135348681942779828379280395980296839299604771401029502817920440771589863582475419787198350688424195801815448163224804111447363867833870817710209763922121454979634928266765931524887498467527779329741066872353356215960991900519453304863768842838090724710022359902018504619364126618814548935477053353728254768599402240366968461530098491167135092232802664220744102843456156803208071147428563566273082816849995350626248648489449269870298263204339477628333133463860387697399313024530778236448195253227515867191759311775540704019645279562256155981156191769854143252405557146446264627019102605456449572096397529444881435258291623234213331749027196476366244545747425345248039494726582771167077054937870331561969367652107224272112371914074874639379290945315445921758006918442476628908147287690444092853202502590678335197467931447236121404871302925837094999628267422151824827481351292474946826601665378078195592493284662772608420482389401476070397757125816516185023103842074303754803215520537063095875149060472140305489137931513014667394920906136304240280186753197994611676604621710999824498557585450179053319445582431839710832683974939652346929390657625228820441029533090662262352753939579171933468112880736667750161789030582076642041271160569495715021567110366643141066236665121268181734107780916359766533707124467136681175857902943478519095451917321408014070899727626524311151285323740157681573266267827894750515797476127937464456135307059420012480755691046332731550192863826357094436711764106139879848943759459997987546283546555980411526430815066209761091154117481011383441962649899506098655976319548564686795108094405317977744347782288226661392136716917754968456258508900626552695644642985593240380990708269416324899090690628670848501870305917949734032957724201489295542766862130078032014107687259165641597902605334853572855355480618438346737617146208431708307295554353512352418120653909736710045089164788777120892237058508109168196484935543364176277394746004036395319125609968644059380750716504634470329153546080769245523259579957063577446281220127460741094471619180829720199204198050823138033961892293124156528653352346780744580917559193906097001450241958171572885732483806249570414918621364367827218634185122598148087562138671392144439502565858517852816949695235395426481781531675680250460453926687063135171758552349615817984133883518393274247739184518444595488132582725504504287935911616719960072911743573082811838812050518228925209249807801294021456342239327425754073729529764119866587982145310577126632158988350106878612167231426206721490077427587149307833809311685931794806732866179103021551975410682514760880037643027247534932709741800096587718410857116277323763865950214880952252559429009033215933165966670965267657796840944589686939978879632104522740665901187298483044272174812225437370554324155954369506883218277898473525523604497051750398371663860148959896600267451697570163805699166709730515136983053834513791990648918008724056893991108646910653113605910471746075752719384154052931074162363909085976931966262384865790568001400322018266833128795944066544564624979314499752077447126158832697697291243196290343769245384919574956188243193267321902533174618707127439969459243778341661048028212243061661730727166336632182361135214736483725521041101493034416157053285012803568967211016413964252262989968752667985234141622438038233979086929818682849800710684634175698162452810165133034342285932253232778144738783381867096411072480296227745318402490132786566968389185632717520743225005128216861062114596239634532640449840202041374717599319793723117816401636911689818163825428858927394116367480706578805380294271868323924480746578941729704994880281175710925724343289105594068389292436062313084484639657172958781148356466727565551628336959533325297709265237965698556382180731886707191759167989965959857013022868277570753770819629769575535251318658408724079614196434529647638941689738268815130906325206297887311540834976056882696488307780416426589796855960992597543279814677332963402750878071535216028109407468422284833856066559181848723644678391169761332035112834870078514163755407525402298805294124701067991299293635065084214428953145144681349753579659540732487485372023681061392837291879466261840497998729861097146977003687520211994180598919222892206584397396065837842852020843808487391794146261611743506713500926530596686903388663135812935064884948544896960593952409441945888361541759662835463601031611629110291930316357228720529358778436303414576740771731815339727571805991046258540063072112576683110638065104773493748009141330903936759644566531679894367024670984241983607249866071199437861332220561781470177265881433805227221545212615285203432842477178444424412598226560331787051915144176225362029929179129664599310449209237619444008789454432876557830180229393656540406436722685030705289968137624402335037361112115001156616300287801027260284997881036405605333862654323172301106763445340824039394327190337174762164939783330640307697293417187147932055180397829814228175084614990283726525825659056721010644875223229138435989106351708856621762869347138164971194621855249925563462531667260663139947860745126044134044912179930440713399346666735327653838097112996078687617737942177226177531965528489498194270724601263785766573715696445481720249262601937359896612419526363393733574904202844725510300267276747340489501676404889683171495673795834901028624019153497414715063404411011952940108697506980756963379124373455863253460864890522505382447061220064949677332532535186641521335912242466774062789746537492817713514148349327992322161115495319815345871474771745969378920094406585185987250217228876058186439919922421147037627472707683130339454526026201281008225571594178828302681117278374421085979740927978152218168196354545267154450096335118367456525806471063966192650568180833853576421926524967689077785870018313185029069293041066534749124669911248328558491051025988721979509879052048645735948500470450978559630329470966228338634057121799410140080565605581429977478379052674653745668496932410921977064996343855458590518910590120215654279618945189428634817183346620824111039929219642699426309257988471199389098275185129066382615064875031070879667211506203012532801067974053978411882802981294930894172331671541420884004896384575296388793648273910869979480913472150950016365654778498216732744867584570775109766423719100532038888822086719407269865948387642203869033426115699009262654931199165573999686422726483098049591829204954337129778605639159722313958975664098530141743048171446362051180932961581902759950873574515789066427097776518956459902070450001505955981824229123531477070916840313485603509783325229645824234480415320533518098966265501145792069599123666982622360665942312909827018575017490355844136905346622101714534777227159356939867380856999550380229933029854789143461389554057365837636620763651786798078288978840449260017032905167176128539691940626599475595646892364790684033395677212628730522538461746752158875465176109780850282125982602846484551967952630826041017292825178789883730508847899563893781426516272254658944754261194833508996964235917318431031622976910608278105019289759052915699774375727156479091059860547430616622805280567811784196483130805976737803947819945811761018944756536894232737582178674364784055516990170835620897454522496027953804785332701969497846644118134865847193092066716274123689973100165645047055383847287254043253678116325029393248613104705301784040442495586758450197418456237622243980223167141705333864678581210837213262739665519556699123593446064264830547941688217922769815456474203028812480715792081476457326307903621819291469234795140074373927431922188706844586802039075148228810412762387955413096961918000518809979444426144893587764808483114527592297302870794236972943106494592805690871489027313335769917236868990822781758390041264048150900570792694196368826032266683421734218315027553474453897446310854136308794536048611089558073006673058866487715816637560564035968502323203118887606395529102332276804018393540904844599193372127976290890935993845857532001935577556822300868911251615596795575330051375300796500919378409269472653978270571120401530459291993388549731581043613496328319266885242478094041278587526963353611713303552036135466216636013086592987395098249292904647904352549408044249961290677285948608379444204498206149088455298393256712853690609087211936512474425632074988572772410470007248935480991355472012264753829547385657090054982003363323518884289753759568913064117807199866690523587457312728845294399485085978616245640220045901244985289277878407803900997936973030439202051769936820942121994421623654320089320769199107446239394946492208498247394020045125151073132241402019076328402076945342126406494604362934648147127466862976384538411136960893776851344578446948441574587198713288016883776770870557554402230481400403472055863909427422541474377673881741071479596169590143143072802910125702151870941507181110147090839831846303066168495461352063491032999621400242251274345367423914597763786099592853914081057436164686776260088726634550801679421147931935054283940037081045724042013635820198861838504534918721145152158476431822294453640113705699615237531853287424751483636727879612961804752884369139898989739424229535338898147701381400515061846863157072787382891446505157869510121466097772878831310162931702747554849193952133836363904588644697151479303168671327208761958538553139805630075140092863719266524443975804605862463057407004315461473312752249790442578266172681858019709746712763252492405581090266882086706631668284529789121310541132797701689490463828719240236631356379795785714451772704336912464259671288203816221354558404508565785195729275173260438174102081648088115332457161752700277645299530234131490741388578510800347220476880485085562739501344079522568547552942852470062023904913908684228915294705559537680587285336282441473968765588503301679131978432633196242306170423195342600072728165678806621756455228142378402490690676072214436990189062631170562251657010297027583998628293339134940285141442901809506621516546107613905123127408629247274351302200469121221112778574093869294219718089290609939767158675589807743615117331351929206926894935695623517979660839363643263158353355690561904848762031001721447612016265163751322535248399515776313439384023870882370813131598803133381712351331475400603660273060453168254035578105144209293818889866761097795184608808914598774326459816299099751746963938215230719173722098139518279372238509012796691645939519437710796062481272676544519423156937861900187652832213191410463884062671211100986424760848919916998405227462294921900581768968407098053651433466028998132249213181724502959247520534584562553202791135365651200402000658268014207751285759092069863641749580519931843529552911805976863540353051233325894345598541554485885049797290494014578911432382914415701314003595603590855444257288476441482402787603716900896929124071638278139245639832997576785155365107492860149917582247615682482493473268481793401849300291734860106431280811215140973860175798145777698804564127344108317703892665836681396950568835226359935216313577331697724845697643210879458933634120320112752463119522701142467894033020018883201616214490526943480620776866948760184668267306278613971747494784030662599284121987067375001158696894413896289465440566645906300008367730092728970841676560875021190498353795791476894095108953900401633083268149207119171707633100782082570476797003167653537130064271151392652346416941599824787881264312556733351891243951899736342054983549334811155235380285423484818156016946803034080554681327479151970946060508471443448685002760179171006285128761089952238434285339214331809226029434418141729961196662156123947937616231063861689735441687413595513779724305608295588080402052165360920702272433112517806668774678936493440725861657019555445468968678584592582753758213020389284657912208601329588425738611982233492858295404122326375591707125241979716961214038481541897466281108998505267531051450448091112919046368430067863571523230353861476543869538633450391804665324710838636707449167543259630741963516813441707748914995783991802700002954068400459265474562746975854455281060461439416776341059986504768057632029045352959574381693628818279527568371788514700732190695121764529663524802656959314895068860786670929259577992401496162217883032881368578225177770386430205028199210843922512075992902347250567521076598036403937140026246035791432339175022889353874807511011634267682004003773088033795959493599916274326486652682380120319831003485356122113860222709162904803441060479566172253643383416377110067777953558919385985619852555745752843949812482301884875046992599380627980082499014235061944341122401208471476134641708518980581990125122461594289234207296255768574782462913104282080331593130249247220533769956287092941514602905330006536256286586042291854787058605416857601767307069175131211385342527923673890023402723805449210127509675001523935047172909405134092267708634192294788115021871437369690663048033640081759263757037578849902984919602163220864439502847967193858339404235306206448702299549745110305263873573791310192214992669460828118124657745732433486439400576066943044694334214929811340528054403163802897825702070661186399811193340017507014377005737494603071177209489604479027278262125884452773139907618690385438441898117978661151582431214561474119876148708862656820515258549813824686561714169305777250025289568570713396809653799936280867192384641190213140055237843496760234225604803308354030223594143036562162366188582021336806958984779751155593954714815489705054617151530867616973593518489992520824706375507704586492779156311169025077721937241576079134073316690338659316036895221687707044743106009122394386155745192009130691635439030933141087375853829376136370712672108273497890839427775008897058081044964187280332570233182598826638792299625837567387243475097899020475076573280338730426776697353305737087930176446555543390353250227453334202795032333925380372861723154564849747603073366862029353468609393460370303109381380381524945874064705771435681523379845095823193047608821585074330562670101426940420293864010850718500990084802783116152868990937055046920075378937196201964295259436185802106767461763986165420562135909216276674178635458364430561529508258252363823070004352028026950273173798654909185308389951351381535277140028658719984763198494719048475250083169518498719626573362899217025100484345852902626811414835457607839757134413886667346200515857745350111296979273752064238212746559474137366455506361248895236516494121372120655886759743003274252397417166520298858526937358946361194308667932475727385153573727260298041320391481061031744774204543391851733378348473482775470857602667518305628556102798582761070776369067036531715592482489432902668635106241376213375315632574995140768613821970601314694416815632867660468063933875079964316300847646775991817465350897000233651316062816935589430569453681591360294769364002843412647922105528829192570008443174601438512936267726838860843275666430024868479115178567911156322827617280616709465759493922013399037254650390720645197709662208748976225447446114389142237083295471937989438840896583630254906697111296506283747546430070191083727078469039110948811075324070604701676701996154156823305169522523990368606644910879567494851624487137843499453009632082770817809298732022555820038879920686370328948057416798844782011453210555194408898204908599227350193626690170511396204282682577776044540605396748906672912154118510328388101002036361629892124315780526791263997252466303061403813472183973644921699776810034301178548909672384441711720309770502427975963480501307280524808997545576682078360113395892485269060302806347039403746776512880980680845005788282918726235450044590411687572997131079228748025767766095447800129544359393141886023533050993092250900427993295202810344186433973676124098710338726396305683385364778454967955920425447604592527983410235886793722061214784010049802715344809997756816362173802859166473927248407185509801620799533466347338907541864049754701975496829278775175803665657406742576422053298477622155616262222941163438900788461029090741541292987212121769066364457717564694179434480445219412114561230747863356171062020436565688905133128186177572321441548471654040412268237506552313577826747612616046014223406101902643826430755489806149960335443738510660948600459893995953409677237309008680176648592080451011128941934043046931855902996675412859179452285442461047789161346381344602319781758848261578476221321300003140478643242350023942468922909957637397994918232165327058935447572667174139780903735520343708592178381665874761995109366320808508606801406978680470036166463528549257794010327390657753498621882317903376369784942825009895745348342869686437092236802140586054852502935689541888891024669744135964558534328715606511369883666704060750373095547095301779637823273579258620421787084384790312877257115491693498654304350116290716986101119070666605946299307499199825007541550822626465987354137296149917507356523488797319933996945141152458134788555304488859852991373367117093565658315792889692522013342950784327759486236333993499284846082066187903258282708578059310004178187670288294941326714055679576990327452970719873509639071869456771968646026738839164852991425055148039189859413298555722552888591590156940679044560515913709573558788828804430292039963164934962672095297107756923143289351726658126337347426014760090175546305886484449908921151986973900057479682652056750545962736516235541621970483225128047073376284999148280748835955124983061656803292917639104352491186310171100589913040025377032601802274368725502235925079092255038234832827197687517301967404030128363165650016445850923566574166077783827142706079427901527706679730943491915317369621953757125005317249758507053869106359725742098459935386823267022748999240787195972576913023330805579866085519674931867574681421993329718907992097250967456687339404572713698695345247244289089178669715390838427534530294881082904654845757980999545550968610395391872908987457493383372358719952294931810117475866337604465403743040023009683862737959691811358948824305617485493540345961522856485851546621792168091877947235601973178719479493914797911765373802530124474368843207789838712188529770431560501778995466610113464279688745726343588417271206853546827551429261597696298931609117778826789058787501327394059674339437425767376789555962623089813149567436912425349898859445016759188416963255821023107312607810155264012068385375973036063196719399808387823336016913278084623983256102839320862655963907215662001935701703335543626331648705416132722392464631085282625083072505174846734634633881284389304305337239026686543240130244942131230807901634888128714137696465437264103421601176818519383735201960514881546208369030906035561111107573626196454854311290836937473431746742609431896391787545198071846799208588494729421347922978102710315065671863055960549668389381093704439539469442090768420257919617671159815550607877665160621211600549653410338606543715369191306157651865540921775691679654036028988995452854497340042009880927436647758346964462349911244202732398590406684533372127524324968434887855756733779607771179454592953945556755148654793119774608250263149702990855211228664237204640316808317748783172627813458869567663143137457216156510946072322043750421365592124235450336706333407685177464249658682415584924666454304619829818484087792741187717631775117156044155512284892713501690232041699425014809380269337642299910471496608128817659384674512123083441962220058764386427879058490843112692968819855487487468063070507267413379806867945921562558815872139021594176918682329253346028840566903283264792008128335068343747137919245290986346786985553096680065794923542117422048355306394322410284231060954558303485293381251491281414456739843032173656705011683424268297406953581587679500642759469182230754774021726334411743122266434373425784013318025569985545121227297968971508727531757864269560445477226067389731913262705947501552274041370172489787223848799698651567135222734284169310691364251908554520109832472861251181046333807796577323574500392635274155387941505467463244294576857618502771170516084508925420452186358686328034047960455828002794666540782751136466183876720860948125052731748406045004358314248339398809691075016476675097832028248452816799912106029225780537603651222999686941325725285938616590184702354033001496054138110960384509639459104633658981755715902047392921579088132658839157421138685195087945383315416957578306141472290785779488677983988432767164498341958038400159975127950044912182410743818391983579259945596528286312385525383919068443578082609513462734684460671804201659391510385608034569277819295166770072624154053839144591827627964124675358508658296593898635950385051089005862674004120177258907815768770428971215532129155631861191588327817978787659733422475286156689249710626542981941237527632368997874184579687578346848979020389003480079144134002421799539801784791369837605272606034007511382917047139394261764891059933751505649948601344864955079029959167271064165687421530513898610576173305091062637349966703512862058127973113097148485011649589399508008908872049876458126094774089998504640691240109212046465460917965495981109398109133607221802628590752149917689128168130007478335301794921092178818291721057594783326341178633482526143167132752566192642589332798933515085606474640078094254682181378744629922391945342243512709171212017676315090135072171743950759541531807617050293376524159312207964500175756628158883784715279008147738285644564160327817831701401378910298521184226838010413190661852565467092923625716182720050193306529100548803277438835055047965574750887209741450559235686522004876079161521347622677980693645999323022415037812654312610573739533492119702534371483311965035043989956325659842581800703825068250249366412111502126754173762372886392699168154456924351234621555926775831671670593153197843698440010808313571922433753935195860317546538990315910358513609528737231781374497586371158665228847172820415231028402498673356976557652751562962535136581303137950848076957522272479914712671487760636008978721722352526069055535829225429152311486769763311418782621888923167070661237353377261947172743236587981497784998813231932874090079404070493171207004350973576590461816406455546975847369428785744593310123838509522428702219227651972152168249593302095756345991809933794537805248989706767520292106658183860425855917770910680807549902635592962678970572431082407522976040039674742105492820363450050362765105035457388307905102875652554981831206080689337241230159779589766023319498516005774551140516787729447468287706728936712460473983886008161458241673187047561247765285650947583621462550276418792076742882312415614980031489643341990772712895173810534996098348252681124487050336121434988107071025943696941330917633367307327545400715156905834457165770279883303658212375980456680075639915219978545075898378772152975970864278761494984459791185355393972787971362614417097169963322928304319468751776206796920170640724748031969678934724270675790107411919533364271142460692266161511969741021084635021140524617617604510404005337308903694800098958006735923240433960640772283947539204005276098735442352514049225377447362429783751467629098861357988988714428046075126896967706877549773495283097272570235592033912631344587032480777098877624466729146974117856136713876469414969644556153632267672162906795059325272480566977143695499797168479139195610687988900631771274668465391062425453697396285677169506151367439867898486359020303096338475113173354431104872265091861044436345750820975493943027785081534965202141885864851674817566488340894731353282799480009360847621632359682343483219788273402440901125865629226363455058311326910562027168636020243692382482695446232388700560748610976482178970991591644943256024884654823216893051546493607274371533963981795109576980067059432790819290450823837805561336381114552106042650571247585599649150150849615441118240919991385401506857951387672079207320059294882236200106668896775592052996907787862393816699431988137297322910284195819565860500450110782931542223969179320982037486777603748285020522289809951812197071931861961660685537569956885419849646536850308538791295077129584680692099906570320243658493643139603396784207465824100467058115080529109412770606092331561798959513570881475271122835141618764180084255631299945454576070773559580582600011020871424632156394709941391701008369765631201431377424544939297629312088329060989161943244637326681899900627080098039410359615665734865469028058857151033628990985721998850245945928922367179862531426151426402235283112832820980101849397432654472731002645077825825048095123740037271058247555231191708797541792647633463735575400082723119927077688951916204413913272246075563013319965412573431039676856629739185234186030291925029696127295370128835007400256497395010829678907554872340834671332871424703234607121389469487280980137858022850841767598357903504394652916129472409312179181990166511567702017641645162623626336189398356804967312057681086002805912114364163524973558097759060787652447954612992519287532986979066996835912520268610152092301573107960068697062573792519944073823621957751919499429360189746758955140711787068772563548440386542780318667678899191068411508225210985708532167503745937307798655695454831647908465343613642210674393495892550029282756404207695736484452542871030023034451891841868947821438166627518409346901222217210184722376430137920308240490576461725351422540434709581899042549485094694715570905607534785601678386696758292754645737427133350753643957503365659045850030463547947468511184411021523551435059477165059642011711649453059478339997332057662956229600666974353524580792694616313835047154723372241936887659073997871367054008266039912788845940368500894491071968815828443334496386802342686322885571601217274855932488092344251980948457222472752617114933410914440763516752467934823787731541820661995851812060646162342167499128259527481251733629677200751660054113824330841480774223595149051736264960948879085201497621110644532361608339055589381329837674995971595673518599183056701902786533883639255292143734189954608732689411150149439507539353459155917305668892091583330419266534693925538364116838941308087589716487900842682059221028560349119965013433430525367494266080659579473926651164310660030343663967605681566471134295232343447887633845357029620548410350535852356549668774165920184318376346610425516961555297076259198959173022827819086419356055337946351126741428194665579317183211742438475821337099677961106926306704471525935691910263215039498373552760928481823342677710953236885540324312712422963258822689708924082529415469415736466618501700915744339636181962465751569995014150046545791615634950496339813736266087877820227459106986204245313918746730911571267018250616410282534509291438237991547072354679166928220342893585648355440621353748805214633583015529861923290899906411375103799528932549385577486201559352866996634458400252225824511792285659609183042456875526217267296813294113608752086413058526790918323303074260835874793171247944827277825664909343187128503375359405726419014034112247343645788112766877441177149008258482457402195053291196892936309274232649437085285385396932690467003515549026890760176306932856375446105079548470165090185218008853449666814903837727974751911069268461724122108315344362867815405845592234280849604754317426782855614339616657017758691583135407989072172680573665265628326283718427878162248303893075623746653859392040376067581769014796554682234256308800446704134891500264438504131812529732061073051743318084709074847192686233384295627480686460401283556178929403829692128439196484502518805957678935595221290163695714582733875914989554483082318563918657115746033984517454522722349245545633959622696111421691846674846078135782928266118891702958459331052581149813656064911994104928011472031435344170930269546121548337636093351669045737283206043398514272665689540618384085004213157208686068893029077622511092483726091511446834352973014546225644564105190407544179962804966596830443832591088084481438912741392850190739379510516868597258817942249696424873347598975411697734131886671852450283526171726011683387242103837295841956960478113663092678609608238869358333605347111089653989853337481110450244732552821763535731047582869831906048213035692842419436720570119604084701962714290605676813887273461001385424032962952073701466220675628721824827677874230511513695133252252714011838264522425271015999308270503426784102015309740021587063493558208300876244585164425037314321790732700046516964065036764798416643858746863722655311303785387648365425982794776634297849301745928983859291162854558908842696532076421613118815077064080050096143280897137142930183903634265991396858111387256063998362098729647390473758672200916478076115864947947221886402018941333601312928181381261227582913284108579922240757183723898136279749017187296942652256693405764864784763656190293724517020248191243599538516029885448761296113797052683823758351504460820876141519013552109524727040853713320030415828195911746536359417984795281574404049482062118370212129461917811801651442810984126130418402331128118391047450842605520256606851580575211004351026865487178680683546485415753036983706547944655381092878523157317004297021986582697438852698364001269295646729961544759209476243310156446597402437851054588322888219999634768242811611210667407066712046881631888818376480136603526052647251071730880024775189163578368456415029643104607347717984899349335222611924382206320679552535028646495010948911174887921389183864752921671333571645721676617994353122223070652771574034760963945474814318247231390496982938503148655495352341698163220117923974469990112736032175538477038368245990914268651062371036660524487457036573546812471480378647701830624004677515270003938701111809367823987112564938684127904288587426092815109804716260984270011174958597289771338061183863267040992390048035049582484977317604774993361618391937105320295605239440004662730131051122864323528623825176567021863622426527676526071751052682756526740833558375930976582156852958089230571361671003846942134769134293545805813827592354351645627303664172218478923030299580918437622157289623755746320437960579273859140403494850980476921431465669821097338908601743120538770810038542608518583264808975550919986193550927071322613226364573750028413930388164737452113951386822993166997454375459962672272926261369887309077204291609946398461522150276917853977737507406905936932616689854716984896348401064998164828661969482841664414477682539052499561755327063558139120684419228753063363061521742923399443899970649146271268094777261050698145646420185243984005433922591002213486189080724312512477699975453147063473778309682891511445576694062993077334476892203664566462920218628236691400925634966245208273307704216786380195209865925834257011895589810366308928745947588571450380532135454166916650156325646456085904710664089677163225049450517757867710815348286682521781440626764861698591064078979415348151051229648378859199696195369646767281398095650209304838633459592688200418527926121751913863068464473559647649294382016751080493541339412976724701792096808189602137073004136348107754662980976447362566765327889948909527865365307324299912705861696363713854890214789482969542901227371322606002802619733644146462982732927886769988468100675376026133340329924226075912364773518036008080892119996870361301231629724927551735346895669912693563721017845608431221001903248686349806416297865059961022861238649283853377145413109527574090309495886892757694618701547927795142492909722141976407798620103101278364591478755809862314069147981421804999617446275372912664557841760780345871445272600870532048858480383734110451549709560850431720326004747185934889328366884968268922624630953378680150950166928445242615209127696934264308976892541872476458363994769717897734853434724141009564564584544556649669118585739175046035996364563986716689447472345837697546893786602034011563762244008176626173350585998969136241995709233126827724741596230210938127926647621892441144236516615516449066803599310148868762330052856673539333028118655878142851544961226054080717733441860828490480814853510735522627705680785170353931969131270922393150316107452335135534585853465520912135143499633962978885796503495572393091502766890392913127777018673300556105836234433643276986471647158843217056183711949564454377754258870903915113456719852856745607542262202827058703357723474059243045899115230875812931881980961531637088361779291923575907804833637138787502592847745642830656665162370961894279762922699607149737759411142334477995657168074387743697286267692682478402475067991805820720719940753021671537595574720612083818760427839923663984631085293645614667689299425054207910764524569321160369997267105701065511702221441690070731110598382962675593941568220375652356858646406738887318495472243154457504221525808347599317215464822931347413383642628775382145994133391850566158820157100745433831242008284701165537597589826376671795650998665545491318158465055391298229637665899423461264098917168379446393795922992773154536565464871362703402809437184282449465119986409333813447067129923751441790623416765659696558967842625282792147031893543724625431770488631858371494689297819915166796322356275786217412749503031099551806025457311800168856908042284210075811291082709852320369034140679151793966755090845051693084286246733911117030139510638565363250605518671451010254360434648885066046767793480072326388854992315372207093099319502177233610725964724564596452011103803915976366111417975873522934609409200007190124679027550749807647893922889385795915187707469032611380201432890219726296626079350320737044355660886428469948700322541630033564565133339026326383001908098184230881318198605461487488381677366046235405347668444941942140357915046940781020838000343449724124526213847308247670412472999113965536800259670526608432753886140673597602000143707749265662450460985706730008788141135964727292824133013747372303728687313219564078740451866511321532584053840347846394061418178254746181121731289136310733055755044851801994323974253754972571306556356154953020410335164779194361038133088177590822618615619769725570509347363126201281765396040177399977913660548508429599104880435949793260848034102396572997409959633329296747783491890586021739272476281629164217707825357733577003611305087706523548762766622067179848140703254607800441546339753338116261161227825340579738879219064007760659147729968721677753415503385751276965744899558167223694437384051802655209817025074966217321069657494352158632922470737636953048237772253524842201194541357550285809109735316172265608295147109271343221650594212672317354751254772441442130996647843478376071799308053348813261024172132322143519866015510583270238002329473449232574019918742119635123891713896837736284245622778175396706651674185380707931143862965621835488856020020740568320847394825306649214816150495772749185633732399119139919545222129014078710784421898279810705911299391996483152965776718019361385942181744055325263201221330719252084174579629567812606119325011108684415850520015734892181991285280704743184337058659567563240511877224499126315005837127771223259167846332442296994238604486481159760431009955273760280815447395250701674523549555273165063855482984000770674854735992954044036401945580611190484349123937431930084955591043307199972910759696605497805725995634289327278125856162762333735875726558681178144235497548190698990737063126236605227173317797393953018557046937624512004291660053878286845419885122467383418222585647267116642355979412285946744759312194728416139643136265231877515743351733160607829362901511480902398434291162647375903822808850401351543273636293502607734691014097994793558315914239676299911888638791874842967087159363820542998019447912873314222282426623255565209926510757761434007752979156289915690625127246473798237856242379248361641657207648773847287712574899097906823340043894483836187740535666464746652703299795109393039390473876986776204653888663355929612956287473477594035364675689980449546166965801559413193645844197874111631939294083731119614477499651810205303954624174068039943113443632409151398318097143820180568367907232498540753871059834873873781077799165121667060305211538097830627180902909419711832401141298323471126629819177738474218848624758713117619412137512004266589262417031775341778089242967870560631478283368571241763956683118070749188501217143132440640236614581214380061673669963231387348587902490507039861440461074469782323565042414615236888888768197679442079214973962508000566919805027982299579279237821564340826652724475095300265318531020153881309003347439119436196957868133626864185276254964689798134604569473077245974803429720855363692145767183361474704816786427944272574191426517513295875196961437343080565024677606129351971610529683682172712747167890907376535547307871238615249428081454938882624782567522218628183259807649955265260875713331451156582149160471950936093511030786643219640778049035410591411174966645751480763733269320842052865539088609086929954272407282961290963586429261233335860971304764851348297055464037530134752565475673704081835576616306536858231845550565326668017930607046680156735922380585367941572677613122100031792541684806896847827241992259824892332449964054529079827483633656109725838653214082128247471629864089594951148104859537366947151647771820023297128761148457889512355985214738456520860086400369053247930822497096768202659993622523533890697536713417700403156491933555225271337505615363096715030712611628107149817199317028131722515245861306008064551568110834943541890449787234212057116754288701836493238659911160989911546620249221362177045266722675719582893747681840844153323466543496691231842029352399109851738578434568736343776990895661478136033271076879043136294015695921341424070071317522624266505589493160001701560881445389350008950210282825830408657455247838820362852008825089159246879513496181172494948152500352891719728976221564614444622889801071248822535861234430562219047244575156034326499979599162212590166439923752574914373595021179241751975089676705976340058733068560473755671371919999738204240754589838632522435645469252568242984017165816494456259885271085914567425523536779081928800976840712512817634436525286662514099102150244524540952231781066252385328445476593892835600069146168025698286911506004882528005378916398166079532493593345536469971511496465070841606120899017782383861583697339944580371091307068277118838577577561417564541498284771993511374476450833160931332638234361727366467978131435837422159356742585801776063994978056324968931705427833213859388805480787294302797276543945757068401088836508645932016447954223388511243163118301954802430746834689063537316905825751586935566271224762524782886063246514687088494614387903639055288974466609657397180648091714205610116940049639793731399014869386347852031731291763287568502849545778203226839646391477527399288483482972212899830214948592259461310587451967055245647238156037887121895312115287810316379941581113897212335493193236337131616323839932835408256206807157827245912472311963020947208616693495864905230870648303185994367983617155792037520165100733710380168175750551693011422532229674769672021662042057147267458031878470983020067264091398010357030830729992685790705319117689246701525641593798896208172678602675191115396633339157041441368200570389855316618298404288077765476996482859811186068872350439384823427798582044605660893565648627029336335476042880907534673862353358074133189804636614724319394482613523055336081517115599577263085211039811128817903049742255013388819097335996108272845795000149603198441065961107387732925785990807241842328321782936806372259262291334775901363573126526873224366891419007341536342298103386526572253940355904628862661322035568600782016695622201763942541298068252614881474610730711982107501403548203884611248890916925126515409200619555536886197856923685844540735377484332484727740236558782451076639193674932938299875956730895625432985706582467059615843544953039267381190789501665463961498353600359605095841469657580051638250659873730784737667944169263248404999202230391208152711207681519836086731855772746831866689652738536027039045106805656506091525470576139893892718208011259542277526103555203672117339432150693139481821238374101726579286160524631266929253120238800033826007826886532383291090284275029156304664523102852717841995674931154455198562705168678975798468514960017806384427460642218899204246234316092685908465908078988365582460711472784350136255540942463080637057383629486625933763799726185601814946609616249786067865378411112364881439260761672485248024730653766377864914712136995126998929513469849018145948782948795374940750817277922529066101333841703552540566223493553829024304887589151571211642015488495991343839958944060187267805304144298045415446337752632933622490375521699731588970242500712110801750966031310840785975407954943192819375450287173436995401059056032913893378635589053183845869389960409097831699195318939078180683303510885354148708674451040968427178955408044857291738329578287649129815546118372799555491597152435193320367651244649517330012972450952675132271955390503004153452480155202639555434884018709964547675081366874930226911735149690436516449168675866259495196262418913578962841616220752082755795732692656533042993153460470424216661681890572901997117002780862272041444451948822473656070555380615064956180217628524634157565733920100938496607182603903449989885336527431467985119090906314943000619180404945218849686764321504338271414885814424102958706641600059820391599784453631727557570283950150681454015006238110961660092463813014553231947315387130866094872048915647697796380171923150606381421920752489420550179914565089316526815570563770585645235671328938812891237071427459070729983207215429871355649440066715687869941014316514839174127368901497316235405592029958220593913062312970134366617621845026370824000312976818481184084076044583180069506013000949163698765217971563884529639273076596167892516667496741009349977009469736490112369015720611555528895035453967819989869077397055004383065266566000196484027044869203403559979771268049740850430531742757600674076039878784922478364118448025790526372051175951087634617814039541918503051482253159233648545035335659657191753296763070791605601692571555425901527299856468267322577187993941826647069223327137035770718422404728172738239879940581735964822790943895907654035893854928617215994858738150086616416828349738410637869281135572732480266749591661807503089139538717254076080376986441462892283854454813511338633200017421120382875467055937049015996014129236989350349741493411160328404969511036147541186275545001613305241387641743372599351068105372400416733711054747406755616942837330553937020928816342219247355378800815495881584808124826822864752406867310115265615665393431119225797414568284867634415826277167906956328805328645219473788704929629204584358019405778966610953713934299638736846976594114612921288074799732254187050668740840153784883875987507645403333585564011702402442946254427115083811731717888837080931647995488718253379011269327435219578796025334450417017591920494583443456516857839701410105295514980083583702568146567082034258825122980516424335540602582184139001907335741502142779475768087067473686714959166953898810899952466558243475832987670292954025455503253370013903152422710926172619054786796693808600308562213975446695858548415262105363351897740214624048125370509736099457792532291785296372924299858597755596673733282339939407120224154879429446061920620012883195654299442356290335876066051879201688705224436547266684623881588486730071389655889716590525176248299434112529659631514329434317711948022280795399313199923316959680357764494121979498446717287234371952235865440562109886978277190871090779347734211687340577925073475257637205617791102150978872181662619348115572721694066483838524928389947264282692393015718368171858638568014110950669212511605306587943796015249574237792743697799419151477394158827881025381830571007556751391887336679742882907626887412419476221379477208834449009004761078723493147717384487091522573142943898683446454180774397949645482541341204254340275376775970892270057325938799553251922508975970361987750880171029365572410305134481356624482034672492615021306444478781353171374522148362697920016404021291247055508844307294520245416937163527400466542095314923538846564295723742634425448805656720591671726530754555379934653998277909346965539150355895275132999257031915289024854774917248055117662526174806772944675753243269371806699000032649174591041450184571883060153792802253055333221599068786080882366730197959910255675007837376844222240565087722410382925250611057329508482005843821845111258970789905519020779559573401167273375203635089711893575050229651996903147347259977137560574509533163521444595126328672892084230661375016067866078971739197800436026368850996519511813421790905604100202392157446476443317981842421053421600023384612983565501798954293179524239427650856231260792471415932022540008989266672516507821109772143433901917292851417547836881679360638016419678903867385266004976238885529912124541857453083484015714536540879820405771078817941988404350167326353293909554600853186224246049871581550506494504603727251569988871985306723265376881934667145997411076945584121352631667496589639647665931026147798736893773058029822293427986189177134396094885737653295241807821680301389351803222245822223296567588073735860073650605641499418037876065223425488784957919140260056566920098127087028161567294274069550683969691092681328631198716398556526914126781684909770307979830966154310758589892253944992516339459106110037039197468658835508374115676164956079389670524756645337711857944438380145014461392794294526107787655110355424921007804565885776202335469911313507931740652316465002418878665797140660509872248788724024962213075522017830107815577347022658925883195004200285244964061089046528340065757239622846850886045739615382170971849702911425664952304983247049450175086428243441055105673531649485778727401746325546502108809544203065555326669638684220922440046529685526119860588082115065762956171058779503510449793199173538955665760837937611033204456273066716963309435660147953592721342409647224602217965160119285060555601685947538907209363853037456423188245368233449543904767793386306257945808597098647442440625130299548635828443390723151331070716488292411960769408587044704761148274847123903107395185855762537777240604994354064491943929821424561917787119164506134450776575565995305919842410050875732338107752436736875562093561548938015254424736711613057206618847511772536081233568253983110448735827025158395637782083451834677339341321773765574625743864379477907989430823372773461769761312884098371693195253199320403363774675577098608554560716504721767330549435775811703790026998595384630546222531863957334252280908094433520590003328002766008933405760757894626876051849647764308486724667811300976171000867783394598206189074492575071651920401023852552869913231134015202094358902123910232285154345479586354716854741119820360707938702379882184602753607207397363381539422690802661020375910638819000958600603883992662632906699684813197810812533053183054918942220310496524416232342790625750901986234194192910821024602622567069120446738804463858986836327773724383463906049195718262565991586527607731658203188633502975323683775363562574793073538557760067373570162551332423820630361640581374751638752223411532377339577804644132004978775093812520129873985057932840257761242895184333882098304450897076620382851192762095488868028964514727365420072958439261635980164996680044261613872739515858288305706524880532934409676684753580281548103349912249807997910158525468091351150480703064164566335063430570880283557857829883780316975610441235213940362396807266656731676661149031445612662047859703545380746574958415039603460957841355780246219951055939108938185563024892892731702709209817062262111150252309369566886784346359236140674812700139620710108845161328590135175204432576963259383538524476460756061270355826669327875611864782234348868077173040252640288040359174057336408003703246051994252833810961614681484258597556104854593968049034101227763379329007013970685573942202673450932348495564111943908738694666864081983418739708146751423144343675755154740277772488979206306967591487201377804374509093582731841950500452468924383707195825719782489847517536183292551061686594834090821926675811126300963909465295203420516430325539540429469256739314388072990604271327809445887012339944342151020741614801448984326871756888989648066994054637385305585887157175242479781822460297324479945104865491086860768533315888420361327724546183854583510775558708231690010260230481280963869437171515099414371430027394969539468765695454027112919086382188107347479421638633366945191244456681598443417309331868689709222624626406010707385314715457652569163094399476515438939471272934289517853666354465984177205610067470888213339667183285161453241993474112265087747171853949955439848349605409849358600238597208779175565685653366116737931390010282858083916719782654053865954190647706228530919264088868230175221762272421556954752406279996128608078470781676068485187885689313379022148696525259942634848254668463678710658657023587642002166088998202024920187931350665185258978772656478824553831389797178572987515773368183220756686254099221191108933211925033909665988799196092016183672043831553075952400828663452851454800134369883678513825611202011882878710187092885288358884546052486187491884972927586384449071650926813393797931080330505209049192682335502074122546594741605709516281075118488796559736846647062004159975538031061274058540595348965562071802955987848774301530463930718122028800480020172449858500782719043694777749108278671267456158148722470931959444378464623006252214162384837944469315763554827950178574675825049721348903060725793271810364190832035988174527475406550351166057948674987432712426005234206405996138057200165184550995399873320273196787479053638608310961830723554228325549636871971649601587411545583047574371971805598945410198855534886079387864332942300429437795212805679550933194713820702013891196103796610509193172801953075938903227780217589847826478952381195273296082177726384457013478809250954293000433112752935494162657849896738550417360261602201039901758787693720947525602956719877301504163416515740432167100352082254697041080243611829916177065087050459479684697630650529497834942076557315169632801485901345225849667694495926663575052729308743036285551098317427667158184312179727168201628457581193771309932808395858677627592451409320457979436855282898141716316373100994425990840755151844543890264820099877830465527886669592702372559212688952686104792398886373620630906014765926286010512648492835273840009198510453308441465444927936104077351226487490430443551535180388662224025738348146732995302266511686009467964773994951041673268024457262416785108999622338844195233636517022849738529297625476063036389548687185629381120376182354751186338868856892896687500238221771781208487480409364448804216051530883454445480579413855807716906887877912939391771046794311279753686362008478987730641751790789348322622117960418735796117572492751679522419699036246072997507075320648510003631876157439158695196899433472677270273236103058721767016421554634783237971705248650843736414334234871923692225081881825425117656593944038580687788917552686422994002352767373090026939804841822467885229422552971913664499946690095429359812766959734990394002587978079423269546027432146063809634673947847222652300672453142124113493091336260566441215911439707518343047897567645749259981995775714461389279699716405390242582062552155781394534811611922272662766804679910027246876265411480617616119132054240642406944467481086539576436481259288097830041468838591613734679800991527791732992267506517033465084430817174862808418272929993420834293999510852449597815289938673183303000083887874054863355956137752036153882695843596894962587972777574536431637423024267706255237370689205045662816742868650728453833795689417237864927666213453659216991585855612787892918430155775980722871466373547597137270158216339435697653384907501888458698994425921228321039844830549009680759592424179117680001666038623090486287064188554112444996510454689280448629684452516073378736158653401688157783249657912889747157081136481384826546570553667996243424838576109463826004828936064131162651271102931408138614639764260787205674908363499049158532602017438681888718623980648210150168901844817868383113688157935003263629006193332083545356482812844466448059001549293749702519857076580419901261727562311369362316011977098168920625016880820564334142978032315398287962487344959627733723257505998823108844497771243989898431351345148778556004399213779539308982157280494375725169190913611895413866011742284496191282184287660942410392947036773864058916832072264070273221268637241384208047926910241273993607002895977301634761749727890355831646182665204187229783350606986888787434132780797878629756735657238453318598128940304396402692713213247254725032242182240062731558981385080984299485232624523142144440918441952587221099984485208318483473204543350905556321370537005140020801123341759887390475138796714177547329481722670224577579944956843429204640788942384448476458806198082512521563218233594823212200842433324095589624760565576019927084034994559386035346237108874199619955699899746567543491454925119292817114955325367682667153464618138683410790249286752177113999594054149456566708711687058805265579473777533262122333863180679149203159139389912324074715408885233276769823651650057289173018950640240247332209491506347239101720869705900096065617297567216531228233953844281277883499776135630782358279572050683783768968215169837681123600696105169624285490020371680587414468249175216101875195629600955635729162893670657050104049378859143905784662991064925606408683539152692864379540538439661699147198336881573284343468369074387728792278485206939177201229061055425206300839791757446153025799965343353134794007476159333399219566887623665922212941988693418316699685183688020875997807877497719147900925783712131689058231587334773149619682109380328149852356064982793269364641465315122096814300027246310636765367223375274715949409529718297918573842731133733871686893838981247605249637499689130614246891468491762532736878035792060025876454182448677840690779796623071050511061353666154757811084908816651783793802509773640770037629555039324081053700402104002157035083561091429696621181005992931964513711738570124802413166168126196665985670088366384685876125864472844653960850938502695918680745890352126927318237358245164181787766601824822872509873230860954278693696777181182989139676120974765988761594200050625842936623086836526361546135158341997630219399265303066932824673561332920957455506462234724159768718528505715197761113112123823284969873987396796629759243163675769174174019836761805414018783866647291828632726187635358982621874366668500339670027924771625854080991714965554360536929355767860292649843713116871308803168434179219759777481759507163178334237924891000017723542055350136087304068432688148987179508758678713867695715489024482326758349006183809459111183875664181965849244584863171442804921522136420245641146840024063956630363017386603645444100747438358411658079136579404724886795713666989690575183665242791200264738695711190613240179548796159170213372291420588199731356905086722204390932231771307450110362020388214025838783436587592995962249276157683533830314263402815364466747957292707007661174983282951617238563202005369507825039312590121440838350374836555290644877155225165319786392820373549595770766070809322729066740942060029057311883183620156247083668828634435188699967594693924513601245133024750998070637563493753542233703024448211310067564603018507178718910440449167534669128174398393074728482719339718165426222737550356745448125308329480393149177885417355160687693340966620829180566226623176272848727119671961064297494555400657695970613682809482718747955286927771281195217239074543425544582937712279219874659123973201286787041473838855900177546879182274691951424267923512404374819661992771727721976179355573526934618199151791625169015126479978520010630697700303483564440586921320268578981150935686841241750705803943986981068572474813475683914537439363983853434734934738506664447468037019108046302746555778559022336933625748803247585518040926800824020414663511055023491269754975070887070995418024030638078772593947550538814030518243325261394565029734388286433994958141444362731776894155294435626647319262937421085501803556943844376968397695362487865044328300814794513241910012986162168201117822164076987779720876134877831228538238978186441535267491390037670869233533758672724280673122256194885626691000367750012575287010939402651068522826817574780667113232044439274793626769382554703479777966462240674770244338474781686148996185633260623539617259389957558708086884895801140431537145216443443946912671191578919657722273744670832295226483677950374506246978167021967127871352306741187799945877799296856280594461015158233681387493816536792380646443562494663439885105472058540822482942684854637270591036566697923851014462835620498354172527475850567831040302384891069406837891697126092945887322184232167777631088085849848654332257297026021691998318415481964341568629352302211468185319979613825536011961378686523359168267063585236816514811445242060294069884975064407847588488253235381529911751647762222136461650997083408057858064940334957625878572882309810536977155000898248082966922950349858020222329390127825037639097640809169578292414023439517850504339947630152552279805577870848783260710955908313198082582215849492361856277815928387488828468561197189093665312969793957624475813964140550626327297320441785825369556674423998388071756248044089433474280015349198712681640072326841713903332932244434320157099585142917949871959925414412483523879963644755781363347809947870751001087874561318813923667233314023348270922327466114823135220750785895239391482320538923020749222049916735150530028404740646270010855161105988763370151223239177970949753958366867691500092541913479713284551967137999913221900744768627439647876087774283241906839916420666285807331085778431994015130592599472334244594074113356848200120064060298226505460237776505112462196582747253220248981466809834982357672102393437623011642156411841211430937666553460751361668102507061046743727103781294966268169404355903253048738627999061340728547797415074053297905571156774239894612045778514144920072624475374987275686078804896779063085443516201884418779704351659032572172982393628232709074561926303376751513262274357992474647913807264324044573060145765057588606660954997740121521001667996734046272695220160034671050924645875096268530851380610920449565779363241592145363368807249007748115512596800510671879863858999853623888338692178985152727664332868803514119335233645657478062506783223231246155445621773398971409304947916618888506941917251149222637539890911098693044832492539408465209313615422293378903362310313917046045317680700994981237593965687199565791923229144745664015976975552770302377002654190629374995653261079659942742676728731565026036325395703404533282500353784469030655782326300868586344595976208627038891065449224681611942478152787267588857487284625447644296286420824140945587057694218289796432525078192415592903286939444611040878870640783652093157117895268016587021261314380161641613179142663492197749562953168604863173288624818380443334501629527953703805495504785254705118518882840030785054085470632012203430347578929075333268622867369293537426245197255214614954406457693000992262595770535762721739416060840107473310449211631181918776770777802706950285327212791186094879462460919781430171114152626212597472019901735962347980054347685414365278330886664409901954870872756975264480448584117571986202369434616313593750337450951644065730309118652533546027918828368928914788927955971619793496213669383090991570042132132309665404544505498121916674580730256624487291902137354549887549561592209429356075981292332504063764381482078842640445693561579908904114151916572013252015904495843126727094575265349042006984958204654046116969048313574079656582913234992561809857182470276346351951479142755165211065669050410511550982164496113474668182580364402503512159628950745708201223111390851019644082361751258462078993210779202604830329974028794452839780632400762734684681582938740490634470631030408692597614111569748937426800497328931902093788202150999054198912995054153531165443470441253296146407271716396468353949833387915066363635225715070110269690865591084743025855378509583669227434710431282414865521070138404142399342230560405366784043147127460945183321465421777905402958790300827641498868119752227737834864476269042021614733033327057733709639151027715350146524400397320422644334313120540660807929101764147084577469961660692213775141141043108510055397691084085509598041888412631273999842302709668513322771371558249312140029105527538814552433677716110842618177611354435903131791429319683108124413505225623588439289034952585581659582640552566747528501893577179233832987207184382802178138819664982070841258889695096485829186842286364337049172279242788896548838959837738456481735485478710067432906363387460346563976048474558022740229342163260156760863056741022496577265405069040025409378216340058229920753290048117290353896038471115664375963528982277439223616009629123204841590930903462559935532456920925428729141557393443417977363897913816064678236225656359503426669073365197645707471978720118887856702258222634261130750336182321639253335372848605481505026626999728300068342626934637499130396076968446016193071782868906766873375247574497166251254600614330326733783871846375808496985624053868114866301754361599410135339427964455495943551476329826688332070918035109159224874170324033806073635170064012517007881521137793646504910121419699351654375373538191620170391229490869878648411865894593224376651775922240378978966344555262232871269842806228322842841943739990898041336555864154737355502346138513599238328162554330101632001975373293153610884544744575265167119552629042766134785696730335659119832649231103157379617122988556913564988120664110231074984029033260190753726858288015238780616085768972242397956424731710854667719484007104882583828824558897985344073279438799411969163190398654351710205805838923966122062062174808474029799313380510814044174764254768627027374160072353022060213706467331600616998867731097203095968974782493059394617680196654605351496722277842728104733921939618109690579973515530458477550617421189926817553070163146435061572078555854071484588821435831077662111608312116327072642234532825628345147392040021332098046840925656405468768185754293031299329646280577942937709659854856335561447137290169646941522639046988941860735896264026446885188559264291343433821810673167490892509737325799032784999232593435043715209755288076530742134603279185123284143520461176196048267033133672825486901802313076701148694181233517857356558333613602933536799953714780254146224304327424852910071560874093514231222255347168949564408721628971034246368941814050120549504298454987919485042191480508185863721651756955484136391914650205023588671210487249030980583904732561009595784766385402003653265881610548765135472370010149825839585571199265617066660922374515426057607748931953852964828382306628107885540665390582852534949465270157622718619481118735107227146441358874873142952560194159893923055166236927747338545753789647216376685245970987612595577615073575422104049621004194753561255471440711125253980672090438937215700876138986531538119881700406452296120405354285438361987229678869620688724588049017204821120850057422538619058143220895171583209686629493622785788227197809833663825699999470526891328932747713366617096379781234642551513576483928338116663948351082962330311448935349771277398490829444418856531101067782450967972654952602301153444347654126370791898592146282849939225850813799788706301022415283780318100623422139621204875337597465866076441817063233528697861699826444940772299163883141501009447420502831934015660414573169420578117035586577124586103512775164176564096175131692572339584015111964150345187732755144241301870454839106801617365886173387532187167069914379878420171676668356001741811889058563743308885403694684050155242710196737304496796177597067292708588317501042738262101871464883388497472323765321438298237706956321954422729205155166068932033316868751662757463690996212403253328845174759062337361743110630685648653297267535061827416604463905208238915291782274389602357924140987208554023237160298062040230916282192493810442929765762100281443712131640212518158621235250415270613750818890163212206141816375643647967244787891213903493081966897086184549683353420527376521643390265725599573840685919189989952601178254798349747225656362260708455018740012892731306815746104843379324023517454195802850239134712961206617471205168720015876404806773719723068618922096549177444577265042867917833327506081797684346580587356886849336526454055138139598434933840918123065357537629038473287742647809232104703673305887195286147379053625708258490565333772749725802033663240435417258434485410117604385723356974736450920143218111425546151593787142448128216875158842913226777699982357118472810754566501830278331497491862053752194379705733202125049809908652874854563068797368311939538184305629115011919292916581495033859086909863954277789621794072453384746651205267585278077432048833758653769871737686821456632510483409624045396203090910701699506038355306988569192325408043196832402292723731337089018580909115390324291223357778511143771304619141591291264005701493565006253571347674497705988366227377012333672222934251977429457878749110089391485484087904419774977034144555698268140937875279380490615248629000291278780201466897695933531291196303027409866094039907681695153610536648417374759378240983619827524995943977346291401176735261751730871087157156087078424333235995316424487351718758369155706223475715120381878188026616443609017179190540261146313930623188544917819138677295674679953253412487772510187909986206153617180615966820797171493515263668304521398572037071282488694380517497086510528575145626502738689871837828146986012094729948114935849707019480993974794216216587454783169041951592686450727018016747492596681261714846739645023624574373759511315820775728882574610681923307944942900703847426406783210899617010484103462890754197996617726474414242372241237471695417718038798630679932564840204319080510067918030320722294776040276397302139715089386189656951894994643071597518750871542815026386482040281697825225459639659688893289120569170619922247768786660957285686998122011631919716154539922811065426936486992889831162457133935181069241647746246594022755894228865041104193385218540871261970788096392645924039565004568486734850728085166850760898615957130679684742817227997392735196238346891145491644505151191344145185082783086129550374565269632922417638704554932674320699145959275086245812356041591660998522759883492415924353623722875238991855889078442936057753041876324614668319787058173623102958175316274820033939565330399892001947142386453316424895288151642038805746447238121081324009257700417502575076164919399767645074162350796761813270399109324832735579286423997830276701239125849502520190235035399622324267509795467915492066570801681728356154410815230136984011396555323202879097207621928844293514303715116880549922469716475330004148438421861892337839860611325008080603598255966083242292132303606425183641321835989937637735593718628211724184178197008386977136259973312545273036245572478638061922733963873339777104843213419584052394751898025067392581778573212980648711500865942425351633165100714245671658091873484055478336286064185676814605931361821882427332774067802504090227769911838427858325085331316235340799729409318925710957359800006772795914965730209182409058464874714939608701284891815141714857631960630989964082876271206988552296630731025754047748484825604527769198251511922391664935670739047638754227607839392110575923830618047232956615336320698745395474250124843045620572781800739040023112186984309613838280053270468124779324950362760571931896754798849998062083876035116888176069586139210145465694302239191332148037273180267254455726675025884791601699761844176861026906670451639158455855210836935529507868839238665146390477742840606610690789708255542702691517388840371854132233147681574519946616916446928078771396491012789932737829277324614698853341602492358808174110716405429798005885113946421658958822328555419502017345627076013508183069091734311588869997775304508696555475747653350487505729452739683656964785028728942457509191880713643560051931562710512398039670871392495760184279717680152988181179718278690137917593010278942626610267500522150316572041894366040625846513573721814346040852835895896524766731972719124824290240208508292806542264525145412482374145315111768884712341003777223914295325520949260901035556442252185806754791760971414698562655450026349493176047980545676829756838643292610185180366335719376392368230334735638671566915852723971774128498348023755156655822891791406523110850054365427867808733830660416367765231824375046699321482040209086101897338719409888425334510893137291543609556466351867664098236914635164120532640018784161765668933473435129381300624020307895420300367569790399489218423810444908523604648839193448226827376274067503855365472072670714052975872974411199655022101179728402066040413003935834067375539876293699750716932897789373013144035426015903387389019962535001835918248348435841763892824340572810166088946043686664144265879304437277766276917855356863099536309647641286993020662946712026407493819761213955293714608800042719004787539389785339629130781536525321186014241642676602695358326504643240625374562977989057356009257819891283675454830282235135305923148899887556028285945212513139596608276454344992494271849431890043837133998520347800316210259831412008873726286252129043835581347918598017435303522705067208779101119236733304775854297125965909992330243933845355095999107234479418911791598328621576096573331368544152980649674592016011966028781753931218721211182593505755526092485005237985058420344325136033898107309108915995008561917414718836156614124464760570116092691639055624586650321199580143308278907401967149746103735039893236355236024273114804517789991361314246195677498066515523833789974280406271077446817217115723984531285008133871077195053652668037706542971118939313848353414796872077634462291061002711656441542493647034807419104881622105636354692111913094938301132712049433482781824949615124517762851391033371461958272988421522255765892231280598531767072942759297745446874268312594379615540376757374759881602877955931275843986415868681950299205576888094869909474758121772652144407738428746009407515957198930358497496209619328694752729377380135336948357872535221948440440705626907225031189506624550490601770584401486591837953101596650091018279409097033233554426629493289826984545594623024419589480007304232369895041477571926995981113371108486453032652966400470458824538088811172716040255844978456094088678222439671934817276095556472535228564441993330912645295940344478968452656866866361479438409393169765092865657771838935065170503218687675687202163279737599136049477268119022321968107520898466868482531240926652072174977992169601341652574531127674504341831653242972107194901377768036705880418090497038467750224359815922271051767154263786398624118672957390899946674628782054898500436247130793341723923963546977339902271687287962082955770274767608541059884005023832209742669972842594589055294393726475353316823566549735066874125854116580590617210125433498070637250119490213949552228827303793838657003881577521923743932286241802570303046601103584128190676879743375196044221475154504679303689264236364717236482389493992222459399609045025647807112289430708605578579021967024968953267686222249622315473386017252652222261706631165313388459317307982495822756949561679786174831256271268499145624877731081246888908610953509921221231380515879515266278764612773698463905337491607180835216271165508992814014463364224919243907177843224532202166656683621354350328292071333320584485012541761687302074674065346086766496274558809046325490864836080064003772911089895516998669349965866861489786246685777613432399581988805168981979521671893327318416454667844929738656455302255555415231684376535342485712539726565033643392724660534114894595921368800652564879018384043979290159367796176001716087190839164277473461327343302764831675809365707036736960254637436135554409692787239526970594256215278511904744570999556082780144027022726107957350653489922530655788005080982609901491997541415692429845347222781306940465021386867679441675547197373145565152028563933374603450443065430819225417411945739812591177116813052769156021317060308142498339588847949182816741399819842638349303645553530470601789748407841453792329756697434274185568465678659588687727434463635616322739991051119532169261459357537000144057209830685577167391239102439941638173817483040266798543761314354895546732816802458874958159264969311140919648641656451389838307474381001957313501494143295649669774264642893187020862703400695599990357682228527014952251521759811854740078091357498957494864337337922392319412108275262983954381674607855468851699244973594800710375194812328055268974596053233602863274587476107747034519861436298332789483919610336258612740425870362825160935742529043033127593383936059438249833179280675581375714635161407906664270828137974238728054906005077745322129294045479240993080668167461394085071740730469115465996675237091668663945817823771500782673640933626079408670566273697253587444544004997655138975898328923944166246268012298387962227352857267561192032189244018961364312748294862219748285692025676419450144452766314823153184490750074750305175176222945408417629417785433331112883028432998623739024055892686296190708034965580641249929718066423580826288553229933462713797719366696546267704588705786551605803253354393336926620090485854314398898414230748931702313966744572614991144888330029025708044734739572188817555312610987470733216556487582860512349783197502457195925193342860645591191593440100006820348392289104771720774083543964837901075721162421404311268725621603908312710581786066319692340211814080246291821919769581816263755415062854548337779476890340027577997104558383845351133335342596295100995808287267528105211209479000168402905055424181506826092778611149623781155712425218952436979617264512934678790195634143095996467625038361143605599651817639410712404731114467938831887830682657893996918502687013771144505473388690898343574859698890208932678327615119435159218267512656981808881840654760023835839956425149585678710966981240705519379268265158126090474517717750945332524401716264304360590268607022338957013215464959317752015943871855544892459543871994098854939886277722676724329006064747402730628989327289974129218069408564094464502345939347600240143602419288865311499483602694898190729017892098592496833031813916042980502830988053929491845139163673739230257448652855486168884440959156389226165871977662406780516832684449309439388737354736270191635731658488402914826656293700318446564330853101271899118610633905370798964171340778104939051962828330218670429682662832931303252192847839451881109561145784024446541532976485624233346727829621424301840517897870700145937799749374123204939719432978858607741466520946661251224351952003068639447415352396638853860489346520736562269517934535831510128874477334339008261582854830005173402639691782910602157278095282153956554847268397867349742597100447573374810141729399170297386187514187490782217309638538622893077667908070049645503298957165338780821476784391446328782696083869016121431771252652557979097502176618117601710493683857857291469666721567201287361053910839962591217824332545080360433154593832855005309588331014362070069833042261301522564784445399510752153272251684474081140029275770298017608553120852384691440529777028606995197123250697027580692178020384894536431812216358373876446797984416468536188837794769423734914378695147168981683940173023680333139449814841120585708827778249054280325618609575364011034234409723094924134854026564207955492819288257519300759476547769267447320612795557043865328411881772357425779743910868165816850675702622740107844641759663247577592613075286031980331400298933792754423926456327422096377498422881475015729560159309231962660837486834953804846983740643022637314158020761198294935379703611797473270772986766464711987242143553019795916504066720470448546870188977747381491100117271862468041412030206726542427615128692917093743156124816890164609051712297690542691416834719880592207335183245460118206496457806682304203680435809449444603403720872464688808318670610090048812244153186345857303475897933019111692073791420057995778427128320899240136378494778482147921835048970504296722630919633096168879916842617144835600826139359497770532009043996787730794753982687044420319589303405634777007163855118727311630266751112550379296016387035219969624625920780269916262285207949200553494593654188670512592224129973843147194416717069859070050414525644517519896374394786025741732954850997550288146935262064645471565161897749917245843182234895636375640614877008449684577616876116243771607851768452839914244111099297448189375103393307325537752557613151423647022696669332957735116794960768877829697277628161698292485370083873824802537349589650433569257875695632294725042212044945691177080550517058339210706226240911562339048586139250888263448501994292925530895645768980449255270117473745616457697815193275097760751647266252827221751299322212726252238562204152826075904845210534253678786916482581739397714592323329744732361625658916452247252834422432199348666316472609465583262096702313813777220913084048977540787392055678418560304830747388973800024037538731994689136260796066043690271609212422412646083868377873140241027322931251260979481345177247256197752971673634539405295638861774224812937114842022260415420068382995322769804376396510766127468788403827863310779880612348775682068321050803311551908679365659652296676542978668418939042408464051934363945151043478611115681693488933956512839429043658871784761290171350120256486734423477787740383121721606405106911718157273563762137578599167607783069163226783335171676320086478884648820194151622881145625836655157674589525515757049312137949459235567046971459044523568775315355195431442238902143261552019647056681801581484046766605231317161806030741260844535767127856577779366294360144359916213895819248349579978073653387204980701562962194807588142705119782572761374585167088185341493029175866370848255581314572459504710328534095899970274664223757921701028501477231781385024746056925606669538197790672211354140898541015030156923794136956657271585840684563707219984112131151830318182633684352904827248793623175574778678401531209914417058716432631626335214567553975156705765882814653472158947337246375988735182398881673400115798489625361796130803653698613836897656809882682227115390655188900113213736935645098893814608921325470785969741622409117977031765012357742956354893282623958295023387075855245499058094014028963511608276638143624974286893450687326732216482829373928384294095055228132525922282401777986158279298598772249457329661027261339395300773348243499006505526891266208376897453224658485305339723511730904257021259717831865134796826966280311473447101845361625296796041733387154721873940367089472793540688170997705793040775856980830592124632839483984480424219105855797085017076942565496515663096201004092951680518282047379940940758496076562789508319224000154675384888059546277969585157653293513231188655861452239382149380754130375857238419115857783480991008329746578080478851377660696724584931210988486649622714182270780599667086351370495773104749909416429135419236548575710762159636096236882030195180117970424563580004559391764956288760393651134692305140155575496883855420544868857981351839008123070705886514617554120956904258291358284497561954419924677979025941343876561598876934608049514914574690056368635360588347558396979195829836444172714400444375900979580652163911821130262600104865175248480163465564887317182818789917887408680973553060187552019161751839492758151374970315985870300048805936700358912594545277205522199381741757298038139462760523726916242242716068663707074548273436961620960998500965714671753974261138858509938278690443884412945171073768954717159626456184148142838447208891015599197490884102207556366011548193356418714784003646691494858201283527652666192675936977350674047159033197222285365502841375256533828475925589601138592289098238825597593193526385174885688548832685719699299526131212025020781068526012260421183105171581012322506356572433851022798089082776645113872444195692092844353205610335354730175469385377910883952291051222812561109531274354555234694830215595603821175811663227098049657621514330123328128681597220201299711583591838579417263102781678240634309738163491043254287091971300788604038074262498328062775262291559325185655079889569891912589827634740229182958068401813624830645830862540547292693930819925783906849334799320865629409785565327517561941256908614363322142151402533887665793356658907568627682042443372202903361458150149798055004466472887427332714963783355631150387855329748840753784106206130606577804343987769022637828085237220729229503454084567072444249056204156730224823179945004523781863641983233393826289777612191135069448371530142715238160571108516213774096255821546414443133617508883703769582900337886063843052236524470281113324232853878953049041092626765763315760725907899926093575670789553101952672220132528655105966640755914630426827726639909583877127569571665899568049008876030492432520931304197624402091892508997186814775688509338161583495576752652908140402688379597554242565398104909659538009284015299835490621803683314101375055277753053647706735427215771920539448056327223769877617817911328229123917955199373943951376356894306107164542273486648135909180377619377899914408054320859035167145691493571509423525022277674731079117085235301238091006114027425075656021993796291028058152829443578343467453461400968641456753230130368899622257150712942622008321601377338541546288254071855137509945535127213715436827729361617256195788137186064356973309703762300135153853398494955126167514140084985973318331341339531814329929219991488194751379257565597935291484822424523055146703816836667326649309733654673039708206355146998046219636575489574138927063113741346747943077788218399721783545929898451967987749237143978366586008100345368945217609457855971680634374573702383297159316233147070126057957794792729135658432166570229673659170056947448695445705191129113882723692790947055880004529256491088302203457639403486768027564594939507722484815554301227544790688251412210330284620044878044202391841987418941909566878667428399509596455844981619756450148564887833499162117983296141318800310397054284563775768860769493774127715609974632852939898854780734015374912185082510760556588853493002151611144005829381869163534146008703870030842532016811868102391384278447287109465863688796766408659539712201409420058452324164957783452639113405582676612288997347835278938828000396650794690394156976011440029298170206547918062808374509667706461501497771786334030680112507850556528542243439464508106503471951043739476511304145523365107410226784462981280859842172520152799358715859172179769179940535432998878092163453881721539000934501041320434384706754967385924573218358456879457856815697175456892704929725700329070642266516534815413538486154494914441457909295061016022774501014458989286006400301146883748676893669732592530998487021084644504290996722239717898158381314871715286372896678854586044746504548585939773823945316759288159532559328816144268782172010450837895971624059767665675730706318749662587644550340272322843995534449592787338697379930390259411204305683023557165274158467289063272184936799067309554818828102314094523114424047971885057214163986152128623351421059500307638436580362639770845298039278476501773729239938986201481035610846650040416257877822513486517488534173924488884907200190066866463404896873575614413934735690285656695907386264415814876030677972351148403480601625174805988007714773768417707162422281280380753040148751176789150004091749019460497221096295728864183197764364561537920987441495534567117423420745053844524353887131802219601999651387987786303913067871058627303172047884304299819226985647798611273876399872511416456945209242512528975867843077876790629271594697003396223910181003982512375377593078620782717693458344637260758312292761393713049058404149520956467447320641461009453657714343581022583505193107281756779303786366013585523290879343791466751927393294687143888595497809806332641041727115573692003799223578797484993671127234758456014322443454240361522920859740561278519705699899061160357353513065686489275331572040629168572092742187602887297426893373971294042220414435185082235851345854654381028840309927498005400779769140497495309788996460597271358929271542591956084093307954255468267895449752767500319024068701701980937783241647921190071048688644582656695265371143514023518552799012908741741121219324478499496718027416339199977016892891171107656940371019132059872469539463669341632669414693045962076169711064978896694411559661718012835890011405339627214736487831020666830660158071203505884015234215790116793924832756039261692916106247432000733864473767655187035975887923568732370538321345120283011721523988105758979096204319175933481711586356809016713003069101668907802721596280607233561890838188084077234637326725347181009994599636327851021114207693555348905830412786277223288792964242928663282657117661826252738999001124412375566934312128143175692939935755083847232505925888108202855779964192929388398899727397285600894490568830672807477643004478512411128642155595420741602033139662523883703473817315669519839642374592914064388253689025879440476990294492414107660129980605377698550420151293324901112095121720674814574539498714228025088233594466690951118550003402676154504949490751387521863456565718407454738738956876413131244773193427973509540160930530865872629059030226930044181427577201226659200230600106192812114346505560035044900845305874108142892984190853547560745605914352740799603720302649789709276875835016954047944949277430935509562598053128427824715118497685419922245092862548515670386207630746058043982997391242771598684450533403004264422278749327590424450856550652780541833533105653488626265658502133941357541300411240433451857712838881462018544028425137450424838429984270821838744766162123210848198779089076334988545006809551921989472995432113308769821484562827126479608028140218298794379037556825282937866163979333178439944329158956415497688521417146966171443461925361228870063539314983842608110010187906400145397117949344282366798568924713721956219165711499484034556325881178274970434383973502548574063599763145766516980652773740939172750217698313538568717688352907649887282532325816930490253091447034245112133142771524897601740343597647704984097024927378385163655137243170401948702082033625166176903593787967204080950222142000225067132316370107220410985381574380151008854866943982048955680961584418866828871227147925158601405521966162835321773029903879979773126969442263062786276044631106625198113506313905866582545599009456021861480263261947391358950519457729980471108857573436450622590635154645624742161286701504468472040059754571790231831806807616571976570868896369901730077954024651806521132690468188298650558055321359690773979024433048373809477007060961153070107227229229685686545494065887489760583826939527851985413039683253107822715051477040399628534442989869381349492356011914271406573658380773521265933145860236769941538350843383125702605916302334073514940400787925461160735072177353114368931078254095690675288764596145187735015045478238747419505421301751767585263126099098908437983609882511466900136904350710890210863294180457832854718246982207942968806928509150530913319283791835224664548492783525703887054162934416487987371274698285697612190698133635734123242635818469799710249895390811543491428343419184069260968530311843141407773866228953424723706171036419641613513808041181562756247339284362524534225181519464062111328070922127051316792611653541822182728423750353370787593668188294824286818627875850628487766929639360223888222578562728982785165194030822271534073614708007177347342075004542521814916004831651940648740564718869733605505970171443998199660258508877770664772915466502196747539573713115908085590800271953546435578688488020609501186136660402943386660660289246416156795233585325818788587593092821178632421135338618494656198650185800240374725320374652995884886907614204310069124461865256198223947932735193406875756138516627619679854241014360959945812619238359469874867510397495264482949876052613790653072100981836611286672524310169392320689319546282939802666575408473438940781622856778989726951427562795039515143249976583342967623700755462697243259434647131431112476607081894039256522545248862723069977176299016923410041165455649145634922534717529694773004442463307889218281394923377416162786824415612699313719101009959970684467114522141879773274342696111782233686273041030327889776059864685064990784584896035862829501835851669426141541164637419653957321272415184838437095732566225938137693706502019562815835398428324422444071784723651484547799096333061639149610189955923470953308414332604117498509757418434662394073160705986753568569497884153280089999061098893342820531107700642577186922704913144896790352258217596726788731789328284599505800936486389238478720874598209668718570959038459968654147838778117446093367219724482059466531416177273015738255644821442801917977478150855042048718629467010901413660880753051129608771103001549259028828982120484840304227070035775818172268743948985708391573878358281177616294736782578765965483715369342799700004545392220005258448437309280256656599518666378359505580518242060079413781546602240275840116098025659063411894657700886109000637735432700308950170034741419471268595541427475788032406000893057060171482302546226660445910092486634258598920683505031397794772630755493183566094233121203634035720356399713520651019410405086533925902049993336169618836422937708658440889806791450720847677289771852929397821023881445753073436164850171341731851191346995742735164700890934672291252870790204329356552741434645951275225794312118900527133523615859003452381423046727788836606119355726551077806831966418210421796298270485261698485051065524481259465167066754963609687522530777398822479651250636998097321466859497057013982172404247462952875778378172837222257512925161643215401038107206824837614085345931423815193864101925189099731725441173851429255046881729630684367514556736189137277071977261461990742167556142423695900259869664933509032482451425424256425210998886621532341408366203708625090733109302044085256223184523614930709761867485636487908340591318607831853298364461185342793149650561389984486133562227670044080965653932504471870033446569250705428136444143649387116024947164481613371391375715867295243782994950368788804923243280725664434671787791631388441246956012116094304005154812935418304251696494272285025881570197833437897338044882287537216878518340694047522449440309437991556358108018882329033640783979345970456186589495953958698935898592766047261140797786998256282082130097501111620541744793118023034627695747271056777545971865406754185772861460087608348793813253222661278102397620986874529150245127263614273622151009671663625063085690165869193466833445490152958692448216359022815566080412741942959201829650996605884604891002127987499328344050970497911657608287169630078011201212948373482752722982103896785329695198182455948641045385281082248969774386755538509479669721028871773665492864649498737998805781250215505305689871631821686534187174773259714351473653446026369833840039896158490373495468225359186579135071022678932057066342799565550835347499379118466387237060744372022520825497827130552269395972239180761438186190078587087958759262940625324861883200234164576002048282522525004714061237289004957658021606667686467583951317497225035497658018854212867916605093319406110112558984975889467579068551312063739429096117254894677906590715547926525668905622942049990376361213122839370301435012237659339660951185001087080804273871852488816940838868096141971175061234572365480198367077752328474111057907788191356001956801181973756695143096902261160194607283397490672803536818097666939200323303397313580414358582238283161212284457240950112625065580898879147296870276534345584165844714779466376554242386457627923893764852581890197449916890845490871269913505957012485874690791750418802284800802038802803768470724384640878590132097252622511523719501604570192591095020149276848662076251967990583963950066415362843615612774965188559640855460418302503205223409997026973045225719953241176060558029766495465951213036689045316684881353535426073313867894427206292148848544664406160574221901870277063293795640639778814046644939981929293778665519837771081035642916785765881153539426802986668315091226356932227564056069191641436468755428936411464466941981074936055451561638792802538660479492490258453360205468861406427982378435343685463354265801486736939832487456698791294239459405162201657367710622794484751618605442434402857102732989008616009225636575521568085516097233952464851171689385907033799250398729486051257975013706260070985153723023071675013468721728278277086232041663615324293986851087427497609538825841003813491915484087998775794994123654668650567483540214121539456205253023820129258453386334474368945738043536887977145351462103462143183487481389424559415758167832195795779267896153209971205187608783230667075444189645996620898577402360972217732811546937504993056448186499596652836858650924289473353897185529338420968964187018942988139771937366928516241895807493118878414191637752993699620514789997597062368177169150551401648193823536953723677737698178124924526645614597346015376389744136881274191156138096101088227050988853589036416440311084538599998304010748739135028640306397705739610228813309403931660488519936712494361508878492759462900937365308022187893144344156378931659095651692444204270958619321508697498575137084359385362535481947757584911686939098173142520758950388803372116524085867131096048948326900990224144284802965963995965637294398835371213949211502511435957738481141750047092745139090459221849463274496529740572778639122309423394049875188146387937140895751936760941727262323601792446297770113722047525295218138683190851853836199619777805493574813061753657990686656644846725075186978138967073614871311816784683620175746554152675745348438349516271658880018753576135016808052163277034674706390247693513463158418264536079207888229481562276832287129689439423577497377425866703946930859476988114163366584232706416498236426928919384500669181759608964893377909867574368264261932150172777910004693129747357153821392829651005235570856618705776418967004026099408889204431865491256471680064203713288441242711151138491173664697943349873498805534357844327635245437165600278131057170465852528575554240536548227783162791517271688587396927900294359625435130376557732240614103461546503980109841201394637524493072438298894185343922126196708288791710543723285146362306067555088730357290276442049932302967688657894472880086047438314575762498368968935838288527500057240305756593711471042718182206259477687290769785047673415823763961084370750492732737779230201519769900697381404838313602685151535142476977106298193979357720559031100211553488110572695312284299659306904494299475496761702846101390233380929368304258061771389022196506126019357806540262843654477289763843680543750739583807942358113357577477047191703726244034710040842668600586726075274145269652857821415442268140086350976410564128661591456895410889216141567096856735249986828049603945263825020721528124990602003160740792257163296776812544363771633698037288734846816132269351611124986705972944456010258522027382617763204923755778317058046885153285583221463098801304306182657503394816982602025917584639069164566091204446264251821390436866795722334199571302759606486951167564772720851842081014349621146206766129206579824707760811289006454544847047511730282686289402085293728622104908778391469257122118948743589714038099166619264796456841378208951628762723991865487162722119237366370484918053625967216546590782867570951483501044059306233486154390852471793995054350281051791438608669145892667776718516926792316753436000643564677963391415461049826774268312868159254081303455284449784034796578321631100354467989837680984602341778446669223996722273928959663708075393092945565003593116296446693738970354639647076564567561356804595620023637716739646293693483923848730699896132487777690987762720019611894064463555673818415510423569470378446486358618319906082136041608914613229259044959490694813805839804135977616689392891944070348299677232758698065614803468532516120592194099479174689434681369400457954692826846439068538657820276964727479408209658811788711418958255502473862293727074926673422931920575763526022502175103920501613598799548657687324270261571340351198579146617111849271030520005624090657552128987556397001660984607908583140262081543706280315549806337510626040806626912500770971679106593393204601656638147038986955047534337091793110325223325317327212376341179727858953450512279301420447928297566113629876526581888294115373716486280600967567437644813071616289362100592954482647903825982749211235569659643991824518042794870069001627165858859580028703815624122230718664304629916412612687222260429221185687995897950792842268551152021044515379975721161586558051698550275976056972521562428354701936039899705992607365647068570847872124994216405465826102811327425525393981164461084733428525486680410914071562638277328126533520090816883368394106124972033689342219764846537276057595536118774228254351038185792143681127564068338011343895619899482082495536842398766364811360613749296067034098558008051887464584186623078347821337914561738430816049980104272179449301160910473661446566723401705921009954397184272916392308305036005810241183101662480147468969139953153763559533951625052551397607701113989197048585171956230164583400680858234940489821518688515827644858361059175324977052773797121659654142000867055015769524567027487389034885305672019149425476643372226281289037012745099684390549346350839914100096890080740469748888544211038013737104797565225355570147775199935578816369329917640234910779173883342176335740218566229447747024779995509590562263314851156216149686481646359350142961766588602460250551544045541610699631753587053964004817514090038513232496731031445898849261393686729032468125413567949888351545030482382305714010015683423061566226112405122124699920549698431451030367650118818616996437943681646764966565610371842934477280828577839826419075846629595472439829621355219923869511956294905232447059557003156153821546082251846003051661819634195961867201750170259984219215145249791824486474426193806199278199674879812655554237777458968326235185340414096485172907723084653223039927770069727205625529378846549118217694314082900511756103454328520683998517441091087710300499896844833113564672035511077661093335944350397042800592549326771893328459608016614473956036098278622355736046066968152434655228603722340549659269139090370564406563898671831115647843021153823826002406022716437093635358230662954502741915462691692331275772289185250163772877865379191785262724138308070113698226924613131475128251195085257383487234971646903280369453920045816176702945925399269960313809138474719992020669198774715763030634999326304607387347086706995619346307347596089964572571731331097600246440280309047164829478931593446149216610624287999248402610663375791166760005325976162099682240825050135818074914990314821848479113288860265579631022400670001850576344081737279432785047642835237051767772707226645472030211493911397850116005355827095856376077616182528745629722021590774365039801098055691402583517798292648727818158904079793054175480909977026844523004112527175258151709025646380048253498745659347309086948850854191579161078392335030818532870560980696736825303673941146820735016873976815168778134510733045285410351015113590515891913188205152336090386294871228131816863629808434683301803598755228701506218483529632558055995623366218317862868706655910616225555047588786410120213553149109316693782936331342820212817505378394179759307035346933985101615103685992399829916388132277084149890668932644948960150175555804143772562428331267235246924682783331402729739760696991896800475830685740329176566754981901344080781764007703977857710425988548014651189928966321141016246534378813698727299875990788389546320090305987614471353966005993548302558861807043565556976370101986194186522200995485550510169483545785629089531853640123636164321686276408272963051398492093846695046045856068082280415724224654009210553437829509600102303500481929019843428182086987511310926296490088497452210200319141109894470639951707801988379415995911306416620355364890164889358157733842551037452289022235583141036631917115982234132428747072047781510769015358283032618853231280044978967089163845878930119565693497226135370284585330297548112350859943293996497000185433125578899343189536847023526376015561388877350908573195556781869935438076373311960227213030091026325523467755726094412172965821111144445653211617789974620160655909657834857326111137127693154675036841299260582715633734513300165093023742508581074680049936914438765697632930197135318402651875314895460970279809296417862981745191761109327490272180570367282404639899851778110647711950829546797450899174280612640383312646421741575936727675323087077224425465210375805771726436000106924269805372733936941608086815432082607874248169814100422834983284210068281329885338820260619260832549293099686542438653120940676704240111728578159836134119378772944254789549815357365766329787101943946054371888809179627285970623615039051827314773275574983327491504333847196193551912647472568987312302236923302938682763313816329862913699850427473931525628963762151800052515817883720764816905668418530952183224962246078110406924947916490620492108528349052446066494790357989639794550279907148573056312577399895335061496727108465354941466797214258540907473251209823507290977314812752475732703682372077452272594367602565981184538526119759453236419885257012670335343355275906091269227192386012368129145282802470795456927709972882038756617343058227223185495548484303624111270757423426618530483874435414807726301598111596256483858802160103178689455655813790787428288154167911058707628307113724901817081059761821726143105369304300759626587008752997303494846435194889130048680157647387517441559203445762414838061198312251949346917938801939791631413402152195506367503843624349144202816701800147929744961620815003150838560201268936113433326324845618283322232238269195169736906789251710620250027684383096978644726352686226929016952437172100627040510125433913232204997768420962490750364341946905667580176656185547122736981943116864836150724395238880459560614217085848137421128852830398444251377338551013355871834857274709300956180841019419822285329666409537997342127349107122750352658435385687208349066456720546118785787942725016989117796439964701753073597226593554963692507437768240419372298573394488248334177187558989115519626254361821508689715070806362768660125875515819528932776285427497105296934492976388919979394003299721668516971710895227880951584417631513326838211210490115892111536165389171459234467102255796459440906438905926739920078367502759459662276011955858697731781578552528058970776137727311315094330942448878943113995743928574388478966658265840524285977834193678445131407238989853559336513986691051204991135259148935524216632363204250903038842846393696841940477055398289681832983948080617944809175349821688481086405451515983628673376599830236458136004876204520069882665536373211902090999280198879830527004211633304791404931193874801627439162141428091298010254614760164238383548339382025942898995336528455646085339137555705296087365384901450976093491392144480465491512514128179770280749879474575985317650766786016473128428778942153213763623172898920224467313519415065848008867355485973495751343233445811299887521140570494186617598295389988205843404315535596634303388300481602980455062834460767395908437020364371432258461280641543930510607307827724735682797273409349206940964274054303683375546430465053434906007390861392452290465037093805188062782438598419935663479376504223797031639476406895402056078115382616204756770712179165048218379085065762393996862990864328778796371482654967878793612964824561630867639774878623920349033013097865326690287590773576411550030138757882994847883175003972583187829392691941992572280535586289544890490098261004190396279011871435818817934410660656520350421661954243887512030807814720203284486293699064464300310829398233884489618223243868506816031684342684385503824558166025374515633544027538553838659052296888538256998118377005398820224797076393424101628646047595278678644420900952343315789799017033785137030118533147027176428090611259395417978669822283482907721817274382104711594642055082068230442592216759347014376568401072496592567457056589255750231317966564956607526508492078525512749001673969111071119862331706447918183798581496699220969773682826685340274560550216656935557780401299290177035839780447896050747613943621078515025501307384396506837242964767145084591361993249922153480342525511778461515294350033342663270949540101314793898173378057260121687182053717902288711307783616738400634732884228869753863965455261500039666917194406672430541004098603176649639869664874750756687307401961079674047072931268533487051095353953520793717227728564462828702589622254153941087641082895535616336877099635886395532557252139972135543985202742368754098925929380848145212971318537646961273862595960784700404562548877027734351587876072070415871786004251510008735680592598240985773146530789052772768244558396228994078955503273948859388381021910995645532634781559944832951458498366324121817494259417544841776785908771665091825970799326511605199865719574840285473394528414704200662566349461973247262854792258146780132907997859651540907316838257548579279655918472447171833678863982754609730116222347569614404464027924548373754700327756411230156825397527429568261343121890809903988290741973744553111701997810799442564800844750031441417266712878044507143347429386073733225984437272853250086394046235307019133572211488849928124378812867303519102369415477800877461734741600501602137723645980898450343225762635987510413804610344817850082923638764049270582467882233988511082291457855111695913050033764787190965073431345950801128213576186656397479269407369167066856253401064452397544436090602666630975932405792057197717302772430730437635078694125756050217457038633931921328058325769300000227539990476206328371025535584390029193595536288096703649455304890644018957022453601724889117932802315770297938419548267319678261615374375490375553973005468609132347108419339886672328422751240372613276013329493863004792841758698796620629637884676625966663475729850932686789348448505815899138412278736586902544247407423277818692974178725332915394826898440418324962367139368437710408196319241202799045993379376937193698370250171315837691875038521862374558043883063503156997285604063775910066123851674441192284667329434447339571301963636568237096615294329937968080437214427525866047007270110450690643920929455699341547629871234196484728016025433953810782357423724392854701188594653858715374547252473952172419916156331777668084400363281334517317591480043221831802316534335835368479382197878247494253195340544180820172961320572495227242043884368246119173216938918520535458185493912933446249588823986646844610833464312239749944103909771671449045020979926345171722156464992419054385871185277918100708639905075229072997527804753254338470926208172243251257211520886533204755781479746748920602192076059464158323078378758637585658966216632050816110520384222440583009588881985943289940314300407109799269519635205252781226650732543304122092339085692076372968445685999672269318166202187720186380349006678262637528705116060874224400074000938727528697390733883945035581305588785562464141097231141361166012550153057028230471988885638955415177949379387551928011115355645886311772835525002502756399380676472740552047708703222175395841231420559654460597549240931132868187037900799250462181729687175839169367629564036721304923503201490980703747412470921256775513890446897889235134488899062904030882271768549636584612945016716611251030133038552569837382173050992974560437903787355337037143028586491117776802265128383262702298309814307965760851825624907626025526357777338986570316844565106190824945270909810572063659073019057003439880695127525037826631175703675109911596054386442479220768655629342291351794041426311275935637903173710570683339750466119442216683248805018514770914918807309713048281585079478333238001395595923836483754558238454566471487915653246862400074951473435602887348645458939124999037185269954679557025817446234081185800198344179633966128424573904180255572471435079557227772343467769412488840311879685159084888304622050508292256150619487251480465189872128507529164238962630812879331745978067977594207069097331635696846634749904140135707544682431917427156898193519009075295420296535675393597555478708166183347444887878964726051926947078956470062778108068775014372762490018966021842593632968633895449578618606718006312021217163147338268559034584223145946276009277714173348084358929624709116373944880164441470700535943372099005528876540683109389539770999330719513456965331725032515742909959266272577494509420082419988082648754591434996346156913929995888972012826581401459402145996887252658477236430087172118497461620729571120287414209780910211184071980453928418177125458038813384809960847342969080257908818254047749113012618612926532808213917611169938897409987099447006128124124853198443418319768345012189813616686483514889378716081378646594887123820442346147665897381337927296692749729116419446325783294699097729556676289522460472995278637293558575866123230200459590223589823157488414493137573437972652947594884647762095394401772673445701096121535603172418332863829736608480180853805853513097317188945209642414924162148007645329736512699834771690243480493874737104688450925509388982661063375940992456214094458347115698744557880015444098857092915504648526645435165565770443994271130848486478897070626682571325269898243112885593407792793782437350860338058194471538323035286443507253463937495075245060985975276656838519776351777690778253193731096896195295559266832158027552682047782167559258806731492580247224521713404147920394023763424985095504626579206246631045899874226466983303311751773562662093869221072188726261499588824209255922354748882974746410991088279734292713958072010776393557597073820388761546265368017876638466392918546193467656959255846469266150175230239023375355699606262830654137602737072873626986765735570626662023665047989174048678325747312848403254031338060796396126136515641812377302759616171268891301734411131060690621079036036887477133103917619156159706740832499363255856714502896964697250549623704693226495702518616596196701294181479103736615025190809069814273600576825535604869746759718439478807923494094153017397543620345117517099111489906414686146551729772758397926126402195137806543085959141099768875457058793309944137452902186349709041061758146893919206947325019672548552952125823659885998293628106610279002017015755507311919307537037684294002246990254607646500732262936902102325067672969796900786649664557802593426153557307307389395626691585998017342149746698513551185560896239439643101936632792549505452930002271668416160888293472902873106679878544695902903906202958628885343410898260176081730457687950502550748307952122476362710888753034840277949886826707706803378342385668950624149610820773129433060890847847614758331462850276440358572653372028978216199343733985963075153942429618626095064597397816421294624866659166119617783315487644832323957529267959631157656907571532114814350765208742994146789938256047961158762959806969068658388529286575814474270577170108235329120759181351368246164840398936228427078375769305577186416664074849664438364252354061041364580853384950653106352782800202989395282740909333988256441552016131341178828183560637490497600333303361811329726774496231927391117606517340780758043391346268827241201468046682215898483345616960540143222204167527995368841096492445398305069950152072707543380339790763358017293257407354237226617919950803683042734308158033881855629108984319815645244774074448301940041278922569623386933181779334213435968955216460877227006244065989264679095296413885764591747965666146282527028928619307254204825262089846134843382485951479643916466206856079652408283952813334146682923762404524841795316055660958928821062947201791193794730650264072580104270380834624092945189799027683346724500104416954417578867245462697970405672899194008847334379668992708489319383207190125347183461525120295994069897651531563009212745617308896196821013525617348161637559943029698446413654523954860540011761552836206117708338938953941287651926703847528799991908335206509504645075795749074532209890912934535358170583225405257294041847720272311077218892938140553473812390171773426742428347283149733375636923512951321444349284979546237551627049061972466504243458581842893558063649859437335509229137901440132760127166256683801967348235174854520418420961140694048665854110764154931333909249063337484772299954077760131782460715659099427772944856824559648520144093246728391099672412215331636172122478892699820221872670463289109876309519244826783309232031427753437992725572283459691320082418628827639375236350536467004384815334148917058688371779160184748936168238048854119881191998004504648486624701872815683292360465506290981190160797132977465728751278236675179465278230064126914244085646850592216785561252234200578020095553168686705910685270211514916456504797566352453526947758215576893122756529056971438510121166097006221421234845065634046367561974862847802030139239790343071902570979650221881189007341855549421585906904887213426243144520283985830635968922847293386469114170484153807171813168069635407411753022593112712417477418624434698345987194615285030765059720187936629807291926441117815131043947529154745954964158338810677330672036474559455005779059613751549694907002779987530650285988152549736083490031918285829326865782312976072360413367101945284338104139339737879951924814638943052958559442878898790543718505507064551644179109025833171097664530459025446193428824021618241300755425946907753584767755733837666931057162497882760969616784364584756340157473478932872568362287399005833282771248587469341972278548082266106969809447667983553031954548453308478257177875731238048450204279519993812427079471372848440295709678001323785160410253613897783311060185419864242992394127472754352217619774497735576961259428125333068651913556518887961783025627738226441520422284383879406826052109849955193831336051451123236588506652765680288286229508795775561228650585548251027657764690925673261806621414171524338686409202222275920823262311819489657786279459329147728655958929853739823456777253010294364017074042982944413511985009377468731675475693216403267961424122332283905145000727119358374781560539324899108217746167983783660695989191191255082304514402841709446782967457842593746532459884822481521691011595963043725880699004877702886222172200143937487049896851784019049084385792671794160664641913958703614067088791741112938352873648088684375399365603432280292493529754209439954066369053769797423925356940222132323116362966642856923679263317126009944492627782106737305366025586007429660030251407327527124536162768886666201606121838536092517047786832541080083202678815477212523912424483253362261957636369959956947298626905836148659385020599811284457231680643502266114107181097660588570454038795934469916174402148027597815419706461186172901488904685973043198805043823919663157486987477285179157118434016787926130456183820568789540070267129044912229573696661060621056209931230223730849965386706642462522631279693071739048141567522543604228424905247183593858360315809159692181584071811942086956224140843607138082057680067448240999733277177739676670249026433804687487248494305731073933317391921351411908315035753264655070739638446779313119447446101285424280659766716857331200092581571878014440601548681865986490962616047671092684541610601659354668355258749837132069099116870243030242053178770606124078652047439011679673251720734243739975249650238116395208542669493705442271250348359721419583342137268233969607553265389732567630290117657077425813185837611773784752138101020490139464970968456104041934644015197789308643064058207749285134783722897178326533650256088091774519686220358873971830193653897581984508215597040968028193630868149533567639014683308772818340979828256669249401033570288057069319594136815515601406639655527129431384320738896524752262762565900786270343723927909565438389530977393566543916198220088228646280272639284109270679640182454628602790541129291163287052902732541608687170449733593758399965554179329466400401438820458401735979815148264400808681468678960541610643666923288825663000307653761821660799239634061511770737883052814557550360396058962756237599568678847461791316997329193123043766484489571914118641911467520002997133286382195617535134772008706761299559311618684799914720869434120052935656312707899620426096642147411654132405589473649000553815900785955400315798508299105452356740819659309711725717336781519557360941942521881194020418331135978360973665729982479992231862776380794150257778323572174425688619398814469540854279160949823480036167634503301478319553432745177835738191724786962729573944518811471764004922897522220404090692150667211440735141631271893684946034888186490560851610985197582502432393406318632639083501987365814262678171812666794309028135476438626811028438051863196269311472611452345342654174671186529934300103861090279663148058956808277742744099997119443465967266576218734519362552899270871865322935501529827243007433390982987829513675410401003226933261306016328772257175553774780892257452480617356220606800249711127898765240038361887313740219314140266949745951886570229374598411352041953135885145351536050293533874082694461411907808747822658322130074562507962621740533739354894967675054783363727234349826318945754525786443212255166993107262920895458401314020757113536421272954231009673253645852719876842223607694702018530835519078815732920375154556647562116428038921642467613967435978487647272161314594997596451933414563852638212067052880845023137189917283381873299081674966945389000248259774642679901835549769118425807643806320918420336070330238753105763724857267704695580239775684524557945706153480129564935988236252117918684719214683695438306873397443460771883720028979127076849136364228452680225856858944963686114045733695747491155280744596768307784337790714008216800131277978725332153128682175845211858317352332365963147650313290108630443447179034529107132683725020152809686335869020073949733590278926982502139764555667620645261325816913265828359989348601108546647084840122804325631327072489838111854679456070617079081242289061576163324690715283094796222765703914917668162985073010372802304156624781759127683349546520333114003309626915353351941420208572442797383419359548716986419827705492827884637230594865834206855476603786092703196177814469574727254761696416061902256032977423369862256315545462823593752327321894189183263965070175178442074618234903117203381338108748570457490735495142846655660075447380592388704658300972993227229012037579445351555911116454609717052871145861259181252662244440764125097712992866381064686440039573774264737586886692845839825310209645390022297529383162730115581649629623095709340671281575147917743549273532147997790947556796420756632746325240675031248275747189933456797065933923720772766349535598658849278517891152025979264022668983139838963100128728233568736121696578792752092943305723846149728195575556965303578262881915737704342870818618670950426643088473378289461171798280867388004669840508181311570940024236070957873332197985832444848641115195471630729166678011304216911110424786771877908998981530708770468035957392691301213293815770947352324401630783496432134924998949515131097404599665254059550287466964843092113826638923242507615687102242485003142456327286523016809444460981560999523298364027343021823391226995429965776465489986579668563357190605551912927059734216720500036394417021139173503664302642720185173647590605658116241444468634790863633986650930098119113177314414301858040363064771166886167541739006896753829843072133873114543855063663196906075737926535185136514768993613772244344569243544946876259294925792298021216627190532720160597285770930787161810968733995238901984380866304236361481861766949836378147260144069038329191575811534444671442448638356976218790410859598544088468267356314871361372429211838574469052558738449526192356390208635465108456943267960243925186232032621101433178530436851900949217791168269289940987730260744376923392074340594319332858757784962440267904674999211273665149387385238476623653498442197393061278473907712076832134774976211100226631259531121621483140002395661007110508393345896746152896805800829428494162831736690568398406079355380945355412217418842050690875577108757866386749206197921149371783235962929074814726657800772908979954102204932717709115190443612992083115204985145433044648275661862951061902482672037444088697937982941740889331405759291878487943865191103673198243052523201199237548273496671071935962449693263078958212029730452901241764952268841672202231488833254496792346387319613821137358268412968495926143779992990506680965355858646336120173853392578002836267937764421105626420091843290467552794309896856219135965501341901295041176613114948340007045379370483820936853722870359868255584784746276690491970906018453188489442226176289024074317527942150283182530015205317043447404998848293661506794487671687056075203556816626909438302102987725690964915803729481868153407943576472823730849038645037052847007596894031772451781740185562137688316459361253819358068135294145588639518537835946258019878300414545951792031387084472548309754954470692687090260412965354960945851640740488656765091467107679892706459831575378351736340037554104277867682651303567551694031713750571915684662908865825634181008896090356180416798697065252229005572972644966362941994188887385492430856528855559190076248797089706617443642114069736252016872604498239176183086682215474331357533387662664358684317649581141506568788858355077482341317885148093220927310655039264664568282211004982377749415779278640471887439690235293491566078358957580501071603913838223612798322403556798576421764322943177219534037022638839011062931889900754066320436845337036999377464245162423045243904834218437121903883443821861820447064064934160917514890098926404754512849742787209004899886957757642148819556555096530848117653705427040239544974699048250494057880479547848952437891535694603683036707983854527338190128747434385048384718369975554180605600167315845175901351374031642621180160602294231803698763600736551591662635932480806498970479179396069347151855940531883773998597592740284767478580908742402484052306576338277216657435515594147215297429539437401646624973807473729457014946200709996630570912309890096053375167412830367178081569815298532813897488546804054999362917761978857624896777388207300654756053900701159689186107443268059297900907513920606402385238223727707861102439528622919117821054014372362567993314655927111938425821298380698216055790170016653849678121286670785946161048272419041033186192262744266525380190353394821894527413224043467426579626508042397932815374944991704516159244135131530721281300120759308193347911346561428615140157676309265540149089089726615030597622433074376900544897675129367976375091913011506537414604863826459406094522312856529347505114049540344842076273653678678561066170108305150412890774316156061807158459184831603857955375416732486418685715377768161095286123372560106493190958270986673084188014546489844168493536605039494559686573787287634605897742428982665756970526669719501572675956459889673081683732160671167922853586365898017934100623207203099032104633872396031437661180166356471521826845407574330204356495301566394650542317589116946523055045890535877444842097120314664331062974645514958362083685007969459640042260680728564369897624033303548013680289958947052942672447957994867013670581670210879314757192103369741823556677165803323269614533948215865937800734128162329035361136140750690907634801879354240543762836207091056735647999082201122297810473637698394413758207971191941101117122893132608120522506030649773830080071450764393063867833993000474952992677474542236550404908093571530060316387048134340693164754209497712035061019750854026561716031299902751807117412493572926630915346465123560766790605429930270418026130426050253000913641546512803262268209552674820374094812217718985076176640091227715902068323328969169186090370919710270069051585752104546199835887776676795991025276131171503019719944767665485374069921367423172938048675918695310347440482463456735199435023012790046023310289442934047024467947441860989679524290217717966817294717668757512720222745547907124956335198168129759960315913960289611315515555933257942748371317184200582993651591029634754974033539634557274565573912078515545712804668383750373370524784282007978976981305055610626532405983782797616630042406995424867984383717098091218399752876964045443869900357654417119253602164296255995913312314568396161623461199147829913498686824408123539961077156030921379613059096130703527218033752775496884441343447581907669730529714424844141152732364149639476133638641239039069797923478022014330776211949300274072955951906236957026384074644289771935787061565435521912133857917651566839706841302993138732388658021507825020138327963429057094831271763829656775717258325936894098323970627519939033427964380732878178866915060504320684618122666031235218665435557748664166971838712096777618226571662065910079551743687613230999779255731762631833229614973145103190000984786515077097837769812954400830750659431986255137169620702629942051758089508485414008164941311089562360619490890310842488232228392990286613977198376263147528939981223393161992739857417038500817805009034979022011823922231593853968933871539536631405504883143013057543110396757955018570675517942810844982749203227619561865854437490666035304802474534307235596790433975983038006524313603978409554221784757836640874882207512704703053077238113491186632509530982927362079659039110939833244474061490874679998522229540906850151763861218287252422052923462776674506600833099529742196636393531452163589610258523981229078524254911848492997779646349959179858323129090073764657693301687740698926111910007683279069788380701412822001780424347021951603938324484833766563563513412769860051634206109388829393873352518810191263853709254550669508125734906831061020063156223309549276798828109431357862984226884275564582128948132574223964368167291506765161122779614489223341112833147224035312975735000367781679358368230366524593938049856046344259106733872898475551029041270053012193374794076810793191354850879231369255785647164153766208873950053847356314048293221014294929111610652512468001942440788734223669173105609335842844603301820718121655028145884499052431963699223553646327846033410547673779010269377329179236535610400594761733869495117253123023110861933901402454351685383286845901702215700762494457318453735486541290545782700296643778857545098294208138880100032231241026530812600076879175650594572700984609340619170964893450827966948894782651306391851785907104479619811546981872392300378517664661418498699438980000671081081416765094953059834585095034575930320649865253550381005938271095149306776734545387632871033061691958291025918910920513805284100507845935220951828081545737234833196313023037197399147103320528170575554841454128102581936159182854685953008948853617784182485989314744384459316949257592423544304546129220428296693637878215768486687636921479971200860766271268336277363496537871445366325415118348652444442843683219145070801748213176612860519042035764258125868169039033944211377282536542749980237640839741481710394120830477620839697116756534288533142711354247431834057351301079559814624158314430363470267713001681966850095469452340572105990250587359838593702634101622627850199141104853806692569113059453802482603226954059536714354751788584770156007929621209934257164111488800254575076310930844191841832685221988791459300746452325387021718253709603255581111938480298024223999595565678912242036468945491309655929640849493070435622518558179494880132899779271189318483855245943734839120864501564612880087257130429541104414568844618982237002813759314276680359743684538841283675125229095029608061000227147104645799351653900255887020695368745841767590051975493126814779501392310126731610276998695110249188475901577061472180802548458809568218510445640186393994639875196229275224975147450246582741094251513979541251720755376055703052536904683431903049613026268460085570393346711161297520509764952717158876987359276964876765853862831557803653352226082962402576386707375694307782822191955830152568443261996305262340026812696645153285202654425489279716365769853378622636966314932894470784423325054668472374037721004400915349431532183784066514499197584286503472757023841818126203147745747684813742387749691036198280930463187251277683182440254457768313887566224353551815260597192478250595858824035725794371131151041312607905636335963230499488912146218549578403632379045003445840210176642402171262687194769795954319897477513853970212490277703796859718923886876485590784492418331106003557114263640429653940033001324009979620930235315498856181418388823536292674655446739533157655246947021634719540752545457758773482664856524407742002787093617547934789089350635647309680209630944749802154837418588083829954790744649029559208330522022697423674272811662203226631006392857621016779628587382458808438215574762810404680285589106447092202551316131453143294228497832170374927346510434812623642323980776532444965856281756241680793617567695246112543411159123455293294561996516174486467196320565480730213798144388061846139144884071042582607713977286552683208842451020487831256125569853028637796597689321049265542730077658699965552986260656572198489656888896090224043000856888486086095112700444858823779573624992912379402086826661993296083517732699128099709869465661429630872706380283228566549075798858542071679352041575535972186405381103502015709629141210700089952574202578714053415994819121019731184127291519646081673347464431762577935990341503924719617966808236465778592612962158036208650822666657228013094474940173939137277119779185363670824653223016917636077297339659633583835822777176884408348591855374412733776264095862502263667646886051443202948988963025242531330734746878483394935032155612125436208249202143656212356688376659066969235409559203883319079256089612410954569376020489445051105219513878211485630232644039501488070859660039906677690138183816435114671542998298523225525516227826167773349989154516108583952376622079022739502076939281983952344161069561156567944224895799453027519487876841384557151297621686267121183566010231216996126914413215582474156886207510614130493440677546226497668516399936625915788362558349936096059822608755934336994706493641845704897196589118193961694087358527173641746581298388560962427542861088793872707903129846186328035049690227030465465790725801887890495720156444073780178162892529431720120150638455487888976959387537718172478562447884149583262891507818679780463124463344316829521520952395051494991932376779763301761398388476171474157291913715056164751703358588027437626967185096807381380211068878766707999465561852737797168968405024522564012974034060857889894813049000060136586265963613022699348083106880706496137548166432410325565003751285137339661464970507712500749041246509906717312616382459415049981399653611391929555866200284806457381178100234043378217875672216936356244277764332263198832974623759085596102462843058457960716221974372341403328077005684598994419235969354458450783263634066704186372801097382606474130753733012945546381987882185769620052785533636580906087332180879186951973262779324458253725742412070034265111500288254162533172248239370459932789574398008809940283146684555173384876197360197802679047047953817169231656736007471844669640168396456688857995883004056365144333747791544111275643945716937457511469542014365549118918746565764987994341968077954534590520343444167003161347388459240088847957042767773053578496406465295145739248733916017104496067724022227681027094257446698070041575168910828959897131350361552034861774780978628602837750105650857371794751520732788717228657301459015104431737143291616334472860359314297853964122497911291016950744510008214171469751011376811972136597654320762509369690578744037167801454774343753241717007598399638645665643467377589183678051435598543137098448146227570626754119617283852238439076127392179753272847966838635296821293127913112772547122192518991795038324681523438650909441825938809025252528129060898712620709036389990999941585508549679503143700505535094738801345279246681730340423767641041992170681148904944189332476577092480295161850666565511896207143115607085454895553210329316527895599962145933621971789422058875744682221936459036325793594854604274483974495201078195237642819350353590207556313310787090122118010449249635779822891398199236545643870285712731729988274412503205138447521489440415114089303211306080584849623741324200509031513404943174177069378299862351885767167714482540761871959063278787983293313413111853153479584421968236672450238467385956515859198420200772548243801883822287910978262044866565066288263579677461560603970645069549655436947910839795687695705413577640979564115402349882378356526981864613588851848251802911245594031962179340498892475270333828355927495015191756736178309745803828460095874384602317496584583098135885433043762443073372365668051917179368444181408853278251753671864538369326715915107966757377290588411444217306750874253596410631769132233606678242863392726669689866514951413566776056669913240884180979786627267957096480347816125833611845985053087268965024282648734262190831258888635637522162865737000872950738144893593191787780102778057362651648501085948982355664823992479427226370424347636705404001994455612372894497530708356075484103949128464804928018209637620720166312331736728328633001803196675379602021495599292380292946556902295040038656268891980632744978293687446899562477406697617920254660089563032097795736001377562422130175917208081039137990922479955660015203764420875891585112377990603336041039762815266537055848899673093151670319319219196414864794542785910259710132959812315269670949103772468847300863323527470148877100380913797064287896433062881680118432418095972314313879789703507314917494668885349541789449722074554993804771729321226602852873205225211538138681447788348238418567712893818212014322743486227956877097330993391571565518168772055901111547877082867717527528844529809630177597853411620113097848605053841623471804961859816046679177062383281631951261259954470316330275092462555256783524018275763843409472715517932056538082356021292719501105962303288746283876840955512534454776042225711478677486158764947803681900058694309575256663838617026732974866359884713588637468440015913623776900532765181360238207816738769072577042657488556740550787281996165572072148917542675238744642626549817942294263250705890402212404523355429099540196798717703333718609689456869546554779749384920474381204552130617596962859849347370579758194364977021182318873002906118537028841769241012664689786114344167040715930464991474659992578920672892895203286415562248541108554162207843027974410186756850143832191927591465246176956021579805489186505599877945027363498472223386903468852992934869058604292159119300709357824157974615832767668629663022487177781421021808054505883587187803206605005085769572032928711780835635202462872575104055461528698223744085815443202340493557316756419279500035449975227549002407233402767011011640060923482849738193037004721083613720499293525566074306023851780754147972491302743705282639318631778534145632042033727613712014330898002101906640134624740774327256950378142233187987976301361966089993592575556985199609614127198254007203139083233751774296847285273641056309610784945539101958481736861744165232535363249640740483818208557814234324974511020617233419108413796932117326227345327306581793770734733741516089087644501205668852587799216080493195440376175196022574415250024146634936600299714837240743781573543807701083871200955882230428389247663743361883668486346176443114052838107649236589969250299194996218923105025119391392403029567817731638210091358099902598606504174953254564499479968117904528893512132342649308491571494797338504398739487398969147683899149437626746610221556956127844106488884816411091867283017635348580275897062598623513568868209795190217229867249858188740758416241898314256556612290280400201749910326853155157585355559557594143397367657125790652806710330826672003539596483312985189709977425252093033211763026537483320862925346143581234077983096174999715248593751433587263641638092587935239703472022163719133250548831299560523067664711713251960068706074559229519492801395752276697295086203734062878701414234152801804684917559052547766286465024628407653399872923540267526355878486925039930806721663028830777467667725497041559908045580527917470772382294685241102435425398148422132891190875231418915068940838358644766916985667666389252493996204238543825456677443466517495736523246246434378251744228127722391776988694409151766891572468974206686019519292991931711057702385710593933728140993363698048842457848485569054505012690943031243829941321105864559943308711742357669355401542505226774314682863173807436439875760120141479406506303195596841082955365909927472322026914936112449472447984949013846896358225897557521956669970077959353321152347866394136595285581840484504927396325284549034959277579463056737371717629715214409580839931554994958054183181620355017549453094178695755958741324274267911228743700346619513718874617042929393250061609421463313274337087030220850701689919026345993322809782568237397277452351665238671701085180668213214901891727942870719387548977672293393209523101533525328211847477987211662609725454948471318241311813199594673086665098797785089874042342680804719312838823862009521186622205256705704226921870608956169477566795171005883041668931511803255988663388193889042538217415751569129406549013314738629157363401514590099880063392606709544266179737292986136725081627990996393665092669575048565800524562758095941495419600328292680865421247189959618124777350452449058401644788307296019490447610755840678118046802616738422574386188476483117255581145153302644431927394567849422362211095894595748262557390012135628309628793732372948457310422826320534201447940146563950298790951490745179575693410334942331083688148961807397895768985148599224466402194099660141466188699515474566244009795472509733817293666663897106047300119377705401659588261578529710385040037525017591779342269051827865457585466945407535283352784945690633726819622485725484096807280362714388363978615333658004358238728669050582886602566684555362509256472586334004805805151794236939203999557518352656742875587610486343465031269575333948003811782160422998415308779788820934065770210658819862628219488809179796738260443621335303666112829655859670514825116834687586995654403814587148549982561598840796650387381216398097984413360727325013489743812160664756781204240509810559910496109561912133289598831891990682786396336446885649612215073946586679460514186866688129699065302078171418497867371887174840176020028550771411717332341917016059717593948647399251460858717287610840204346141377399289698331374310405814522532248733676580780883896703677905776922415614909397543595749566041001999707841745985458837298994059521579985643102747231241130387593966492298799693682033436810678954121796900826649431689475029676898771012787666249626685283570404778840233189961091346673659738198013539715702356744765215195510371250311258288640051659283201980687172951274668549028828599494540973212609811809231498859300209393098111750215644007145987626016246676668705029073668396924786584756043138155368821187436403470356262605684407435346039282270593362823708142692614113375090922135677491520229913336525761304126426570120278710683671335925560055324994074113925638143171508288585259177508609179842868691610711523253526969224829965197981330574692485994068648594076402299872553330546357221056388909912570053524005619471491156343583076078796448749043346863257562092418309348268842897450069525641629717259639236219196252989210155046632767860188524379875994949048584344756521999707999194473233607965505510297115203552142184418602036644222057456630714948312212443361807909250274343932411405190503896674758501350247618547551968142018012622693753453608436295044967399684781413761490700936885062398690091436311717636900391914958405034744099911088690262728771610257204025861502760071156654543149617226495240747119029082092194685839344560791490303769804698682185578067956322809881187127009986552925178767581989146121056348579608533352719018734375906713381963025522368371756961992329998278864149149109966674127236621374227389704495559125899232048556552704439858431015119326252691121777243105658199799508530821941875109147950997001667313292276283750898033099174542295299567390830836407637323683074353162774090761868792915926335525004808565306342942275834307729123504890551151403320221173025797812971126434745954826689014203342270811271364692796997225797458960521631280727847132823961762761025520832201067927298490737997514443669606524022615627549172300172032453453610511481444639991675989860032761146840525553204934322165278597120782131791593583636081550527953810087893100970694846138258264706859385167975418614773339356523000497598563781773609427228067640411650144720719330081814040552025458975174563849910241142857283008778464593531521833148029902789876145163150493358782762411613026929959275569469402628120130760973851683976889164132977861294186022770516667205603973545861314800954146923234344402736769755431325927406605531811408929692975619506339467509892209128666082969536253016776986309923476724522689313083968371890111845742593746638018226320202542466296004136441323941848977574703376222846193627460198698087212172962621858802037509464640057354965458571884823038992180383272749757377818030067970548908320608798433931890050819434121670125514969179653366766324126178358995364162048958657340793313927511521924320440034816980177417231050164710794077617243864127474686440899465075405409360570823713620703092838130151973887188578704004202551068840946561112798204853888264791233482147656599116749408480280471652753086363185469799410757755060691484058112951678601881309849079971336613306566395399160140925495602807874036664327513623194793900495851562740022301747603177262840986238126279460681150850547678973331189080902651247085480751029340357943852949286414723130709436491926083112226517089963494178313436519296433674894761984424340738944482339976084104614683400417788304259755250154587822314282348575330454137701643727741840554309748430069111900990194472286420199586117435811470143917498392982273756211925788520365591033990747841530823141617139800989282898529491254527975893507671472074283619552044748473150555014638630219065647516150290858297631940875946188485852489315856522297272831501658915732481866979506802299567958887864217106878039679830577963776824296502170702074845097111441115027147748798069584833390415907282910487191745951769338444685495962124901638474911309562159389240442312790569212822455024397059352802191907524108291843715184222887028186088082182901048942771344246188056048169540703859273466061837259361293126656650004078647312363676972794300006728057651563227084236954038182455166295075578907224593754407947079943370845338036778829760616811635082211168223198655926919790420371050830164192307212604016056921045370674279825073794688073531401014097167070356420722990734379350025538905502257383166763071111766226407384605947915562010484596509166321294492549695087551745601290024670561989429979787183087354990178847651527639728288033457289367509098016983598149091501766670465561634693649388061579157800702716844118929693943254602844802093728609699769258038828039012666751228541196977955205353199504944340394311177714924093897597312398389059316851455065306787897776558708317036279508148594378250537990289903502660562332836063371442971592699224420367422820895620114051296401509439975035426943804493019309485988231406575181961228371343828111793730328902045292826084296427141819553036571158761191287946894109779623393909944136857646609197915267407215812748888222016770688442445791997397241089616942795104222779018238876844597859882592492140217244738862566205791185057564740136008486269847369289567223018162985880733211795968427819814533704813063192736880230771446095045173223402085224887237037812887062336963873109066066063535635443887142743362873290241079277883866447958394254959771763962523667377133000718350081748154588648037677702534767326894047512554092350024416315658395246354311696890870305890736038595557019543663221126591239129974728400020542649900403287929093292304076952312426555711206851328370738819021037728022538740517013504283273984049038898214911727785938959878547854462575919782316314521991137220991717155014731661130011023369846492171518192332390271003751337158157375120909833918135798101334409147543081877846966693727255731952584685468437215395914390385943544379207082156348174391857366722550009531914087817821304850451026793197184542807079185847868032676239397966332057070166238723481406216384308160925131102543005621687027856361775899676769302922632543598861729265140636095621029393452401373934773992415100248484301106847225316874619499411179201900852359980490054402270054848860842840485634902107754057543510745701033843038013089327340999445283010750843257844779146945648578189974663150367249129194709007763446441407553593995357199138249542892114975019155586303381991661078526193036160840008679318932709238557735446983532815518809622674655762911356930829447622592575309252933638394303255754848124154300250609687145295386559621208081147134762766138069550234999409559988106642492061569490706744887036589281301618499427179807802819037379346082368038658072148318445302320512905838988173481924229177878926514040400831883895809256945900815415776231944827787515012674302314551198105718926455369975906884603660418827080582901732518630330320257429079181264173845041900557996583484349433203916703258778707014527952233843263888529326074352945560186634740205072754618387332679276965905972898065824365310784747961429474010752984629845885312320209410114652587062428589002021049931340132403788797596157928573866885840377918709916007457030731721807863103073701343124393088373688850276736074765921610772871558267992578277784978166364063817968057222588279026766366099389050764757105611617065363309649761802405680913370703172599856902645746065622689725046612754100577120203882043260551694539952486336487776650109564796504659261756110188680162312403979396067982620640550391388135310438047903642755359753622888885200485232079147236222563655824092204756574709662978689166867605511239099836936508950718176983214864635295477942395146955571811504981969517129168663451521421922825083237178494720567226726033827402903306062125280319250834089659300051887898312779300681818762408697267105723728132244177445374139060854465316236631785294417652238877099969446393388661758007134017374151941710392285639998788697389543933385013055313055308729469022985519162906506389556034456356665861491946581351814955509926200342040762099327663932496516510525383402452166263094519102503157080295995443374963727434973789388475107008276198024657610502180054143978072503798989626156845804421212722054489553529764652601377516763374518710891534900824339564497114722411381416585198242977832505792370709298329997515099553292690824609552366572061488569066637313124133677401419601630716935056663633487420082765811441159806688939563081771964255117256217306097985673614194338122671936309669539127750783345882709270615794682629659929311510586757525131498226253759166602767016486118467006954319226554542229113475551624079519936095308889779190336949650395827709619891423190060193089695747921304075013996792565730880822988362380068270531488123386106292563352583608238177706411154191641421573918250068924550765722421362840708141989552448559029072687701803790111632079367349313779152410543313657893210824511590816334557538995490853668581813021983411497690769747742727181971382461760646410883311210322241621389200872950639188623295289656250642303359339700006326911895864193988062470792409492187594532883312728904023017223893495659110819461350293454985062030440935817062399397070982745999460083296328675033828765153448106673449973280830095895678067396358034070649354899290628982394322138289400648418098906667549592529226254417186557771122525061252868056975326785174136456648670326544144967240120144864677628027532214390304938942245262628665850281105985751708483168079118554391508247503585998024989928993480472300147795090303695435511217362005304856812961569212342292967509078335134035839386094625026337393856506055093646628540691857276574641122662171270824014641963811744286897603823756019073140590667301726121814174097029696531865984926140346559902277027746777490631232499640157708056609862600333672117911633018766345432162630223973025559503404224204886363473386419046160324818925616812984046779491699251929902393350376808396446111304693083132714070809515530409380796898820874637091617484470161122491549984827016030714694705955982960507844293043149493058999406878880021445284220308502119398247307464309887300964175031505002473193048684417376414857967301478787514554550756427154554658720942986647431694003527106223370361132928141576178851681373538910814808373949486076697008627218475929134216033876415294425556594705784261912027984253174916535669590259579197586964240935728450889509588652563026160520100018721240120615014681507153784419628046813457036491243695964807062035452877955744241772284036429843873657726840450499866197483220745847030317487653319574069548237682675388832660706169727223768399658056648237976666890660099267836781356023702245725902028132236963955243703074507488975304189085777641481722283129993832349953074716613246714255474178168121982615737750092952487861234367280568586861079561884475662838114604426368560172625983360452619313721885070313865876404180296507639312666667628308557230458452937399052837508174812777147292672677720272527336028113322872268244169287057823203534145331256282846897281777608203568953171927828163035162085259740906960538635253555683400792022161238772822718206840144703733571925963159827871199927836711047677485606034701904175121864519103776173539379472007406051657188895035398650941595741275889137008946510460861609080600535586448802749494419862166363220830911463371977064015513441901724507168129490891680712208934637141218592225351693511881704212999983543721127582708452788491059735614321424680585805960539641872880182885727739745890090297458587932436201078331388569575604635965493288970873681829989863878513014317175917274868038027199553247953372729554975116739033173393528596791664246924896427308873812625535615873695591776058472371183019544661785133673699510998234316901011267352991285800509147161244514030544270328718205835330078213876634023563977036548696034125790140278115877512679523246715872240645178136813559995336697312947436508451949834661232215970478809021735874922364295028873666450425883103044318468135296807913043201726550919076141449737451258038157599215061526093907216067265931672355885996183030118760220190230097316849183225227802073032042762688273988284364083564603934901749756597159722860975290868545600990375237012468260825819280436879531635218163997645219404911171063172236798323920956827139219079750870245213667553756884308205622840390942263635086396296420762757176683004436548302058169768106741493672648000220645454206203632303714575340135003255756202332957529948985224770802228754058281536693124557087797133852298887267417014183532042841928487627850170890089681874273412459887572349561247948910963502131289672161774188371051377173783025067243812026493251401835153505371333285587745154844504003374994144061549675146014513180267309388180159318835157336448094210641929011683887323873233311692127699769883029014120734942722193256038499227083799976719963024256816832905123223308218866075775937363487913658730953017406083041360216805739558979450168549311522528409645079952742796066304360272227502689011408693433080626133698327479059692249491243347489496441794641285647013228241713152729654397021798340986215033127226124382213447739948591597287640905646931853986423506473755234960446598743383344816837142801729982907444577830005160060373568534357780474086527015903305079978792091951632732664229932131172936928973400007935927065803925265010934369668301061756612800328392566752115435649940069933171401208034578566492622092505900925548575596725855047439423974006441573893965894319681275492221811265394799172385493294541497992762200623045524293236662562665171010875885901691077041407944117484106705215792984691977472181882824550131090525254667687677659849778914279638694245063262865887518387602059560484938685191835303594295076216986947660308188832040175608357830907664378444415324299580514329440240428857576751902456217457856343423735055717821443733970354335956130454043178636909776225462165492015980339856305003259728584625027260236721926432377151331484531165146837451709678604973695099385436545524726005635639537441932075438389940516551084416054738920473424782182576267138323913388161852266986402446587518402352068255726708644035763116491864988483910822657752144148270659020747027235696794929101436120361671217981173214838935864019087736600553395621597355395642605814346440502981789184566176145460334606243138705963050851345008346439520747839436490595443585602119675377736046474352048078135357267382093160399759299634569020606528027342816029908631270445903736161734011095977536441960942667990755145849936767473409936006218084482956179169833888963613416520826232218970634800932909343455563072455272229384849275037653900808259115976263157886919665024411525749685490564191547303508734277045551885276216674369499850222986842907176555827724522749460653800502561067356742594276969667982799322650589970016429416019303325633888005938283931335801925689163480059717518723150195967488913691968530685937310870908242957737733969234530120206887624486880059327861757889841910397715420215704679292651501060075763524407475587508047507162564181259497562082518197690718078498109532586861616811783120907733576697754573250282318621203692609209142007864282483566488603621102967036458416456556322643195342150327157450755680016411762678143147545786341910572982342110057294668353403031667224850020170664728673864280657730627521709978988890424230363414670211686721434173131364250842862504663195884853026375131255746056053771948944738152629448553390324636395961352238415723811197761234086988640306956830862400791377274280882458850159305362501991157852348530816432788202191303080959484603409033560316492911237454786382133023462736806416498412918406327445568373951414766901752311136533623773870384115109260278877002270584101740159788527342387617150587268096105403118197917662982066413454824754599113774460415805244096973382959278199083550341812738790628486844472084831803250282600292815090031863643865604232002874461703572201647861155111517697086913471678446752430562319055970603834628676429713087442840696916763650547004533893901606002458620801487051191911758067085213918496499062743553050323688105172713459661791828750765157584242366570483169719598099961184118756973188019020730295933112396060592879493512336416138850593377744573762622646623120640231808632366877411653562084279849791804796729237926661330117620084729411895199821596692021519134296924358981585540032294321371986188703388828670891846978869989955663310990404486030202016165309864574294553030777415400223164628477019600507923071406148505778667522916749213152287840237241235510488845184422011937355819741138925674038279337826970304006203599383575452955303419721276996039330785364472680514940190772975580050112514027372195475676544371278389295905966100392834200055398531511750842999517801639692951713979487416943273443481238916593820944058216239415280616547181465485116187166028238184102152251981959100525441673958375130341096812748397432009540584447077974367746761729115438006552525723179175822597647396377253975072255719982588453824142921908302559626232703087989587015163350136091920469782412614839052553080227151774455148743365783891043517922090378183588411551373583699884214547509074950638132742988026520528138245885264066800777595286770798727980021068999052633027432868529697405020008179669816146712786245282340622877233056760275363621533136826278008097133005455455528029397693218070440178811141588283082117948757169566398685180340138977918482567280469416166688223634795233727588105654604404079263248653663944544616252892542661193718444627380728539394576687479775031772264068786853180538856778364256066105746758424764257078889930835905562660778547546976605221201781365349276804767217505422669754493783806362738945039537281890855101074213955987582260857986209967197495948665975406510064391642434420329457392245149172650427771876796775976940132377271230064767141057426228334401401656119848841529812456938111693647367481906708479026687060170881774665307673801358245532693320598137582796118876351736646010668811882001138660947397884670890888689173515525627940905839600698386516545101831707517847354384556247985336302281022600911218617430014027297302277205268039721961489009517793428866822433002842514325619806868996950912648115828696965631685787253076427127568752665262263734259359693309046504986639695595892618657771335216026668931097342140762348881007518837939221114935279067089774830885233190620570574465092925842414639178559264130071964114878043472098930146285490696010244251427587766693635802964037610479419921890305263853734642769664996013785516804516185047747374756300811559209848226672030304375222355576931306320555092273070658887572347618934486987363628783610780437265115550965746099877566985371740893789366240400811329135290430293087357856518751501387389490110558298806834033055573051897713668269855187807404474585283556788668422423912167854273386463419512243704145195003501748368849603393316803963685641968189452812379511822445745080910251411003682355355379402727034847968186976978469646976231664877261202015617680835861693488977948543395890603340437287306404020749777094431701756292206594210702623055724124741178062926799894078383095081191463054891844489537684657587938651146177217690666373351736314016890196183680231034872091251081582826875352595622201346298296355938394894924687679419083861605810344288455387714732579615613651560670953404096393595671865407712590196830632143014616681082660279308946176446144578137278588714975943858144513864751576273485108742083788429669749704783033245684298474400555993727105048292438277917105959607265572433983756856998820344147016526234052163511448639093948423780828293417351773876955330225378308211716824443875390306501280578121833431578492102356825139678105437885698812129746674367359790961968311262535336764313648367613395773796199281044231427947933613204042867430155271436263793557613129967908130651627474354206067668584425940508858805397913834128894182976553597633094999844412689068658293200246301341245384666946480004498178960174613544810771117977970136633404177082574027144145617193337463188986055574837471443093591480578764611520232831080189111227184054916833397664273982525396909974226333251479942671754284023417415731297973588182470775607276211057113527944543299052001861238987138195096438151023264208629909816424624961696713106907753757801014913291448713617888553480386095873347905918299564897629787574278423216353046894128283949285737599538521765050567518405623167324828997465202415551721790601850415955674067751716584646615602179126166508491083151368658853591037500184172555734794647826797575690521849378555266114872668737418790502961831136393486271901335678829074552810720830288824550982086859245682109601565626378100127237893756541567547082700347139989614879861811777608393270474242235434091895661315758252506374871493367648165113382190441116069441528921759043855924709924921312198616470419375074830189884972787350511215674908077574215843461157423278934979912178131084359244063475410968349197910808781458560741094290510747621593810701017785026172958593300641336006026220272650664323664506900924253489513507519569886683340577613602393547584765173094260549543663113001646720190219993093266723559288020061464969623163247223556266402909106924452588316706328309858032287204000868197505411036861848850918544919759830372138400448772728360556193145981677971737982830998077570911166754237395014208766378668850795944256069231106345863168542776943201391306607243227865370429168686752456088389902134225616674645292259235312440294977256911815429170470591524839859447733514760087132249578865318459867408106724522506919363435458730711453831642624206540720619732137572021605292171697873030241589279907614613884483093716963152229619688943390401507933529178489788106163019450910303974689084874991485641966925059902249418269525496204596829944990204480455022342061891904875932793961004627511641068886104443551334935587862695902987123492134837587718967649715410199845237792884612061639207787757389595943150730363715976711601974206652866741122697546157363394164094488315920772346416071890450506530442902544822477510578289409697509001592313878856554791653544244924001532284227180705021501019395644847501976149168153863472180142270321862807014051968202202331128720533207667087352762464163847369887879204384050212866954362150835967688735807339876179753209596538511229015720179549073465834539035478855589576391251957988272159812247803794650140612638943205873903377661914155047072768548824271189289593702627367392059027558978111281212557226519047006495198668788458237798992985314777496856276608047199515013178851902498212008306297377290571275607571656581592107129541145583188480885444555436465473516948118859915807394886347608989531968305536590053582211652162756929163537552983410479347169477075058273726347003262592798731180393393526448965786733970722783498325140995873141779106788624449046882772926029406454805317982129717715125431993310684505063865731241552960579987817608573531384384831154535709634915433826366306291939163818881250591226581690813072529532570817667577255423633375394394232945309608497986571854951104987715355579421710410090960422118993194485000924509577015524534861206538258512156672712346692226989945180795068503490991971369573291079143617146183274967254704650572207177585944641568201392749055497046641436477975265622980272723445633990259833624361805050269664269163729939701229428621402747951559246346173615469465114125406025748277780984177219898321068223057314461036821361501853030552727015340020023136420664347401829614256071455857615721662217853631610491526295614625802436817096683055511350919106113130159215765481422135199137434102867290030416678554659449259854051759609137873284010083997315248720208811334218821225875997739534685783556749301582166186158784062813439754794167007947793155029182047905296076459749343989121047070509895585816486367414677537502939007983768096981284611827812283328097340858192694361344511891013363739425707986192675376746070743806494295819045989980466227104207579273354024110777156765107461767094047463024733500602643378991397259096659168935048242082765624133713973413753585972951812113722074045080025842115707904169942154582193306534445362598428187239508216772783832227092498620135799170496498598045404067978078332488293871860947535078461685357252620286778098296713615632768969866689664938813624901044925461430550136084393801549941995349357116128134620329712127835926195767172298102125613150018511237731187471254818938704793757826523168420042468341199917098744105802657213807814918680960366027389725598454668142469122818126250887438111044414445775239113126835614512598894697057821191661121224737382436512398687274500979431044855790803786996567760764393683284744816778349639748971962324228761162113728556816396641409474211078937123354527372816644541316364837710244028815426709079379064235730835782822034137974471159564293286173316738433204126310676249257610160787570847358817684284112535755812181079812814677547594422831895232554061817851608540037517319667348494973677792859605520041059687271225449867537853454682222546479451658561538212274503008596526721385542204369421541893472135717556551850879143571220415913240402309387477228326414085118098246376886640187820017759373437040258966005652027351962154149814226428351165777289914157146386162160396536084338857785595079458832053602383679153519381127221699565215884899915593700459014561665860950945874004930159359091436434092853786543325240268897005069923916540807546976517295063033805614683498932238022231754236833345584682814209509438484731878487661519791167632569494053535895304815630262853483246265627395148535879858586604749428402710180033780808658334322859186528258402106901382793410595736005785495001521216777599157909512063788896535262012472735416483075113607363598054747353279820593486792382721343916566736730996733306538745688825940558776467248226275555648819737368178182689951315607038093115180631479435093193636094552758209180106161055447684613859407096084405168461181083998503179435017538267372766601153577492907272902573992735159441236548657839671116667951476192536666156430038284666275398486543213586346297388098455699304485977645909331339082257388415680095873763673103386001972508799430568829255668309769016910094774525919603899800790914251914089929368471788490975996083076533328126258974818411748815103677832831510835551713206875110138183797866689562402463383903238352863983524191317059352191862828295515334212550905258012628814379933195574270769732105614822749815642855085548987309246113854511028601930666611911518994469847063323327040103113490576959570345806466811733523138825503361906015244826148450759246542613159451593280062613907270425022628543689252508018825521764786800039752326683237226115511440784183009004191449831701143907712570028153261852848728811667724671373162491327909399386561287926764321575472450965470817030400082694729199918619320657812595903187929233944496832011634942985433869470518912446149766598759483095302533872784001828660745798483179081889229921924611324601649644573533134712371315249968850116267333405934583138096336822562503876481092826882453954966824802927885658880375103642256409147555607400103926447453276603891071536772107177936146371672064941776366151754199272308603844742544956390332290714208483749856549301089586539864249657375912735237088322031674401331144242720715574319406063375160378736263270183546437009332711327589441480630968844529686342408730778949724779515974205963354236373408481865244972494945642839119402627537831704791522458421058654502940394127537673536799685409198283469169164847822400586180401748328443719017787217858411723629497783703842607767744041012210188040853210446645197091216504427527545127616656538168435102705304060303807867313820874587620220935160250968291636830688300120845399878891990888624688532819320699378032216032998911913666813534765336779248413745094902701980077449174885039900818469420437813634950749545403150996472483747557321093597337773292265038772242036421281845355964148414958143515191469180798226924371236221388322604753062582939293811125199958748771111409509142788644968274845768081830481749633189971273443419665481605181233843960047506306817841264748632411042563516910934466822167268288914275340495816640936320099625749905062967618215846108034759321113339606575466319564132032391553864308382556463247040147404071921835110618028456802317798419284247586482056293141022067927802489151638391590233396328156124279756988469897009812954407602808790133312697836988563230637411930113513794736881375450813941258743601583803536560824409497998337199741004650149391937608505191684001109495303886305233434176532138674832161011301554846427437152405669178134989943132521710887823535454016522769227491914543137797637543577020015881804476961994491961538068903409783514146388308620580942026452921945079515603166503031955100696153981052987404008133398546749788129486761664961654854240712251702446567010461098848849045313766784500558958734306809861660052381394973127274903197748147093937392506060776197224169454361206964827151606075284553378162847817995081672413777477122449203396002901719287559642699053287687852563797907297021533046169690275742866092625735996507276023059247579126982187869062339652041099721139054856196339813267455243654121258735961735873533771593349604272539432086313531441670910554542282205459436985909913585030093626009912260998720153862439186927012937293340487730431236070272305886982732947511067553087592536325243620788695724769446446958773767676734956160416089914940646417722514211979338400882729661148929347539589567936943838970865462041508304421264425200212432101294110905668695836344783307744481075684984144672698530534106835197128966748609467999281506949039557659224491095867986012831542630600789516707337789892725485664384442699355920828696030590998831837387035807282774528413355950339288090015309257042287368965645835012788708535543049603995100888497651437456902717259888385720080897065721244498100852196680501684918813998486726708789333105264254387025801924541419669433076124748112001158121062622908786050726728937036731505229247078082542806258031222767903168013911911196025750461072683884262645866917892958896556457471147425981740657025503162646820215549513765715361412498034691031630477087650806991292330764240975770771221976625199031363239332511856708430908895724443113168410618684052836433991522162314288910915533049477009908299257212557738847189362183828664868842113341803135815300106742867668469647069258863003098319093357797146240629840314208440872273234754138815003797546657287692078353031560718969326855175830174140189941344584084405281034246754638300219571280943992154298077026006365999446518870654417539275295768306767825582815500328931438305476393644182767097220387897589855907726823110913080010731828948178659257420147910063466710057476549217734798954922604027046757711060298158557984666746425432412824588524720706010497217975211294853906870284081820486929161865531720944882543536419965508944680495761786634812849525497259547961856477187971306168833814290297317767549451339207638728195113092502236584114817841359796940685633786734939726876297317778990151643074176215062302741035966704332423316085886393814466673024638903667303364355462526794442056894676793399132634573210517465575774223828232471648943982911856722299730516863608575486999046382322058558362271365257017462606207318424186939363406050564289156473635429261160576695153493784533447898311162470622236189590037259798244290805121381256691496709822938925926930219173617177469874484313533905805986982472740485116566580973929862315746234462714081691382587518004634446568482069318001681026466609265366934331722672940483664553507253395852628688219662416168686080570313170810123989357367963102674278581002803656422095764076109871153911815656661202602896598386004259249024204426956417636250035997986043296566099936661243839558589652170151465561932186115103865061929830196045789725223444545686173071590945757212539041635913479141498635717454245167774484064947768878847548586669972424419851927631438945516517545257207232976450102195194143915010821257592774432408561551357906490077978761615934420611145897109150530378156642827001017574034649303306913996989977350309268786188700699184380974300711898497627291799835200881717102420170522864771522144723401242259574951354702373725684861707404522986511236173918484791862380240758857389226190137003587348786626030647112604542444700152055203942064922398055527623709140826464706168184659336159795387796194194476756498412171137094342272753868899041009865246517204263103771082983375615318077722945509066616275654099886736192155626075140986799010642869920552080493971393946077842271823635447221907388024375762974171104485077400082445044564974699525600219763175963784262474285124127377854402390008699706177250438462237809207517057271721858017985681237417325873314024092584689711775219121289077268143745136412366625656892467721498641399131258209422282562110668614140918936570149457139817098929084219926361553034363651911593975942655291754848670003101329778742077786118757032910139393627638846646407276696509729092875852753138488752640285456157949163764358062456950959989560832042189584371971978170379522350390609021215297117841902721469603980443579047139627293162224710159764444864605038411754764022952965356490547440153783583922547376816157146785986661420632495966763635182775487538363557137878845509867098969194584751127100881998366092596535518161361928985572946558365099761522947867374285258883568131140608794528779624081866042944529483959210902598580223023480964297586455337703717909838388491296520427496121066079470373526447415485984291770434951837198794871894471618265722805429364184538270209212431827392105796308677236907549739938455068031090501259797208207454576155327699329296910443404227502750108587707947978826680436495684731114354665057823483517394657498088869810120096637746583310061402329439259026237828372666541320651288702123765496285970596750661136416994986579963910984714076404112320819350432463603672608568538272749310874052493857234821271034408801456262359691214563484116588236928570046206599764324679659333065331055263086576184915732070542074335907061915143293682127285539702118303526986969136685628420500957109049579948925188428985306483519378909963106877854076578228233128639588008360851080726083685608930863560116208446183866186282322327612846742447462644370956605141794831047576745190868681556634121000808105383637004461212307425947893089669625897655078772761515786159423251060555023678928009351601946971830860287336255420793366516223474735672646365830520310748327155801672315292358223395424227252478077350814614036782883036018589659324436422058072963214234504211465477227352362019303123571004716701358270919435702279634041841363879841911222805378052055043865992862273500385421162835599745736497636492976396776022724133075164065717890223997360842539633751716706882449251264885720085626045272335072380197677127396788820581047748622290632528166230618074626992916319252934424367252230034254391789098410882634262956457053623181684181163549759019385161535146413800109990093942306605501868790867635151861808572828190767608514370617918973876236502330081808319244222351196615746324056621378177291437601781804053076176726354409039528312296484986554511879056952712741502131523866571339192883264363740539600224845104122197827566340768934673994154202786894850050591655421087689114644381657935507156629594003703049757017338630655235953461484328918705227069475614605321355852877413683646339901916092377460341796112391313191614645060040264733297871092896542498374198444784039443726299182653991148549517526484697678430312889455543324026083368775057121604279207752900377981946418830358788278191753400165644847818120223658383190781087708516918772736766583534344152772091156959946886538766230486291558996564563422487564626521614088647780268911419462161519327067451926281020065029662140470999226174099284060856679388298449810095928754662596420736024637627657178621482026952998781978376909503176990263904310739144606487328686492610561660394651693677534954656336107068686246357804733263307091752808855689137888070812989657351408492638594315316379888813207469713589972730791201411775329938152763989615845449997575215589819785397194607346959975883848505190295114722571810655140879808709305101417536056012364467963019039915423670680028345911398931568647890220829842522507261878720698567537667371289791599070882980191487029467606026853403235151968294250284866373723571742630155721842706588487081466683261613824541074224658228694087373420608864154326711512724824104838026820998513979963514956405298014279857765687461402632535484905053966519461695218289870606905298890821900765499447917297136109901674409724263578271359189707954496491900862056772178502200592036531660705299880288413741537232359170256630555137187488400020392354381130035328829533788591817619230893660423272910117066029020318050830445682270086288862267441050744880227249014749740747412748074568679757799936901947869492070082454532254331126213963873412939183257983477296466497717621621917968013516489992089403885502196685412074937888494447091672676220012541810993623299779543679846120156793939696324697715098010525247873705746206850409414879789165854696657430182187856373672069368971241303178201108826190840187206798041928350184589064936564173482532634810010044135455725672428044231086114259940431702488111247010024172166051506674573560910212795807811817618544288680632379461452467621904504196421913235580443903024249697581537735052485028805813259713965525198618246948744506847508428818849293112177014447279913163438807064093972613927524357252602698306532887709724612280123134233083409574723276150241138070420353070302018470703877843576446925691108232590988206527584156784993082313311058154102592479819359767696468587270124484315913274261526602165441241560248799669545615237162313559352471033094159706711666764338842171733199274098222687983731560649389869251576416383024448465486112259104297640630310856633897652609934493796556323708409604377100119500787727339435506483894770043113194008554123838195000137543618411230225884949024284579756632145202829551571434194264306964192539947561517164519122891847425168022524937812539657356621165502461284864216209845345163461652073415736718877483195854132249196426931488219564916490071114159369821701501952534986635449243692118230509545153193925175642500431741692859628771971195669544641050828578651823664148348615604903359322870728857405653264697576691811910529979021077679415279372284080274670264628219198104726157826207534731480879194311603639722751242086533262792777516354619929766601724861450533972031217324634151064763566562451622067539174415767464674604814604121327044686373378447133700026055742793907449286945066277298597601296789334362475594556604911072750239185238740246354176759801598096311737415487327850681801573938078294070077411545119652354823149765050790215989087037331420050343012030784090324161914487447771603708974790042736874721732564332066956325100262737063147448948770849714333226789532719798504990065492011877495706535841991666287109944384143353881015650280373490840712785261718324239349919495445409419655148559821804003692379533722311536226830295560119464694503225842253609057858207268022412057262712098829431726143184898847192756082622436831145197735279272835711486418490319461825509201550368540182602132161445738188804246103131405025277562525880606507252188344681339983027008498233828202308782299378235387959732573069317426073884644467268030777113070001916288790250028605083154754697484596396982502063864311381118808849369974782035240652455097174411908482187546735713402827236465016171165288295928992435011988950634197881721246446894527486304328108146670001120631204776867325080268377113258452958346330276670483668758831631297661324902988088292161684024880039499899374183921886348623835724818537839709383285789261944921994759468525447461446316796880905797297240941935460267631399306298455357382983331465605674088347674307211898642712180493662347734930578491766961936531818024942526272360217772787542371346391745522214142105403562528887721606824005173592437362109390027843397264491770074740832891244580076563601188463749868954390486639657435167133055022251681872905733438893133140542245420861581805681091442395741271364642181102576581610257940091041784094711056375531231347609616455495303176082752525704339299335882687649045857579762301695517853728239532493093505037912721653758301769013005169608174397968328426438668217771811198257512178605043280226331724341981257535292341286549769231485427781501279906047827880668169861288521531668566797745938038268610041917780620451673015171019507202539739106012711181485002458513964480516400005722904669927996939935856074593018567468768949092779195508639678755162040627446252019734888827926885112821469593594288265834104602375174329109197736409168116956219412336490547580646581583961828440862966886798441244089554791500758509840466509921964960970267626459961899092880443808518166375892214463306485642778904752133378417752909037760408446338939897091225740648811627087865417823397061178280216636614329812323757569866462136164666334355579484184561430917293993933608643463160578377741600527015610194665518400220457971865736346349937493338621328883296066848236600236332270290777405725489937326365418960539980947674107743964033650453763115550630339053372154508538329543112829245938502617380214621129888608628879455625337199721076886247561829022464605697280841109107791826879202386381558629291252996727633509875696133522305894647387635858060649408813637042517585659909238125495831875821054108932156859686352411243920334396190568370927408896914079043725548231512191640861489373935108386670357677435073434307247733949112254352387406525325246727529519823391590127880810535538974722036529593304069124032178498828899421141077931063326078245486869783875849023941413723326323244544085569045479943033108291781463507731254721152151661410380786336145410814660457504189742185609206831005078197207801241078585812751771684168298321447535557607729087332718835355154526769110774399537670119850581872857000053363792487178105547216952847645052612973292253133164306966162057384080386646158258730614615677395042955833524373115826846392980045997037575355282646194001568706943583376040326271207002103910666800807522125644226606256804254645338856551784471816057586688623310019562781642413249438117290142821034830804208664659327240670880709080723431331902428154460549367290495170649882316438079680359330651993605953419573652006028469774430536211804794165239169938861022758407746422496519011958557977627793054687955541946437168417436332997268755659618711760758525230027696583151609191853800281362811670373152372774985467414341005365899970454672043526647747261393198345228942793638858581212461333308453046507104378476122000789863000657306489221565981961274566927011434347287606832630013120967137860168992229064516770361130214574087361607558925003609877854349288164436954158378483680430529734436145812165509101793623861414559783164347773519355989773216515782046889322166002200101379381623603773466156958763258358939661642912904295509042583309157707285130565056567773516645764427658772682430846510071302211724713576455531611771897944345206729034388310713476992012730007848745005887965321881641605053862206877674861876167328909871577251235130182306264864694292077706355007995900954427722936277728188262836135330553516379006983359969440474829239451490418861266226211925077192358065221282728902819938222660150908579482709105031271445103970762007487024137981409696408167475277424588239484172064687531855532856198869180491631097855127882445603050806310821924479556739391167691182678201325412597495935293783618763111913180726711839371009989502095194563607190922415915967623049229186505912686027763707184835299129675833144862564705442446832184452206166256443087881876863530467247629435258765460738118693098263750059024127936905423799907988670011659749413719198981785743507869660283352958867578098573739116296677463768821199208321206629287528137506437369636605054692748481775202446130753085680065572531096444028479936367851900647894369235530240827767316253317125249993964764637474441369998666803269590297417510106790717702787366946249343820826236249874362495285259258313965430165812732127769529348785198891955028601666876809827076050476356669462599349956614344284265295463901932840405734744071076736876102832585919476506583082427171409297792613509467110804616332476586458890373784146661448365971936408327086648734974037426968713465312893888642119091894593915241065127234368274980916218468053115089499866815495566189386035276243188504427036201349563596544340168313099758045735716584216892192865358236789463562050332294221703224919564969327819921444681569959358314476422196613727926403303842576304671641550630278262776800192437805743374501581422244338983039792252787492222032180379093506173049356966379020276571539689503066796556906836275225980375691763763438087192897422720419752781442747955714754147660062390146297263698932291167184219597871503493426868489785031565054393244837893058481735609802108059188164240968694496485240729659807197363734989300562558921729721227881287325386995457753107908316007582996309960027947029915023403283571454498506159359715463433084637072979221221742852803741177834353159838566729731809193625362036513409171151990051670434098919215110092675559936765631895589396982186300182445147097480972699343398373454136582201746977814540369206980686343915318256205020109488594619162397704283993103362738554815524262740059402536465241470080777021770602856376134171025684395087720053459493819019075016672369802512445402496967175228777091008074406110536640226697148988513462887449009789051636948588997060902602912694445795180625152763117409133755186867222069659386333433850106853405933885186175654224004069982372343204641795497651368997002651072451700414150218827066438315678711912154465616940163968943074335186275961056502434643408717324394061056636629350901006728469119734303732165932486246546073613741611451596701851868117003392069969532212775319534775465933619286265600843665118084212238657642544525767221367859582977696334910834105478523925053689770219159307257273862538684537800312274245683951463009538564209602879275678351022617968170791203868375490355631413022353323021229797109243282105459467411114381134406006816022794571709282954786323873586829200405849590239205743824442624305260641388400892684624239572961943445566224531819810371159976992136031483655463842853715353799145877868844564799060575012803963184550006279065190473014839888131134377082074660373083399329583122065485199116859557001884740300568992240151000962340673287558170965111411434563345167254707541003626508941481831303059760084646258219458695770724634695137738542591078875922692607259134315787291139423519624691795383452446509735001985216195712433027449886141988827900751814530041529034439922978681369221959716973482372303071334282886312429680302980922678575975217234162090800464024020948646525545719137316305255246973919115361328163928761829026825552321402169500657803190272333893979374543700562412481595714740490955339951229816249772950690283716710642959615341695757046043850867193514664355466015431602527270038630651786604442112635441582086839924116877097598830885951485999304721151395401302045169803108878647485510688206963535213331330584521819606461627331216873444393211324083013317307695710973213471441195299223748168239948796980488152007173487002878235224994314018878053525319265560511030179080316599464500717074241038452354392391142684731408571351890818385335759351773202639263366785197620314796418100990589488206447332737016776543009858832117134003854891516932737217460494255419395971852264973840018749270402111147452108380094319388325505017833546635893919181210339205672523963738673512911879822430589945241251867713028521573813135951174419739541953844335191812146124755623404714948165567233592469225185750183116088124824542828752185134085792437882631024653338093399066512851116510651552124802375467404577582795776272864391631017387322789937857625516392771924046010238161685571465479605338819347217868620035456202430007459053330749070760403468934535196067379064190918364968234668889034821546111562448699643374535050148166194698847473369114770355880273060807465004980104137387950926744222124699442826399266042235325872998126127695640977898650534395758570605744809462300814497984086539241204555104336652309267287550991320802506076200764145048354664684039758409427580140800968692033292123955058091475681781749225223709108442491264270763223224974103566826532807311323686087259655639858415593412231233568263260651908824536535938193140551815094984827762947735444424359653578166130585882269857406048018330974592268509357400167380670195680580299705581306008091518876420377869200176177515217842785727430793067912233139767274980687400682228150297707812898721481001931122919740189143630241116595101576817840410764906992178465129432911790028155178501759537300592924730520328654112820442728488050641746412104592197732598610395774102695452839626074166568423470539141704115479656559076578189089949349665983023036232297230304612820851937704313352454164191826802229157873442356654629445854508452208559508528669403741963270695407672212538724582002617366718465854473085735491004323524318500074443790644506841815940791045678311539481261767109193354704640368990897830793143872732415252237071515884770990285203471432448799086189279463225512741893207208473648081754808977601022412635233803143164565414073976441298296282648513805107290298442830951400192023930958751563007538620871003397907845800003457668791565439003911575449788149195721716808631179052385523659313102728374144551368528161391206149645399144451453789735952119674104112598106197344957024467954347511975462289175943179302475603238182106726195814489799054652302769334786432725793434459098797439610408918263927272542841509329714935258758113518332079429346966243788881617236428691404964577341875765200814305735246120355233211668072526161774370574628253528034715219915123688490581273480690158173471257000522450650455424906030520198022252663041083434807418307082714589722266862885585377632231785993228142123198809698508517239833145403970309797349340224846497116111234041563695229681092303891213731020815052125247217072097660788662855848348194688380293773866656023174990269546616692705817049225440630587420964689006342888282029936033555845411219594327004056812512111573171365373440483388908703808294883924222593250370304947140364749229109567412450364497008959915512066603130593996914788073769870058383006026769258305093421374515939035666096965449513945514696320500288378079211169817841030382071608287919277530432018468758929350267281679897311273411973368472597349657304959326336529850867749734403027644164064628910656857198639337422238005032033984377515149903116767672010312596950064052216931547147402154295959555642264516000260630414637731197751340248854277692432100264022652315159007698932418193283073914763078524674813995001022560002098763976053889375555644819350435396543450397465583510161323541250777324257474383605257076804429090007903746721217858577085953511858841918307974381456476998675636517836814868338929345268320517948171298479207879703506086391708061007053168819761568446784938384661617778345515740936632141830046498666406442551418849842506437566880132020910367278443207522003841486409360190198347238277312156453531416476491786143093700486729247529879525949976360443774307197703322633679858237305638576341470839673792923077826514170918853709473434077046934603879149462169307419467810391196623438683934549740503119086535453569783735747794089103619835982935452980952927626235642322366552568979267434926992093715357525747372980690820425155079164648683868183256196764428039484753374107978430024025417687806149234696054246004522188544530319367569406621040967875834195682089176943732286788137772772136929754208320756795903760569292704355114152854505645594550357872533494546183292909184430353146792523819133236691918085565255053897718796168729896304187754321705982049860688922609339315695885026449777220113593306469926349576545447979894106345505932427573357423245864476812190282674878922840436725705838755695698047480101388733220955329800227531127361554754363151385110885754864901755383526410433104351446535776515233053266925685678724892046760605170594756538878474813110920771040515397260653982996838735453429037451661396788371341416723067809083410005753742906882815567883555304597625536053160296886306896461156223299039172462596798037063104910301925344607738986955409692657077374503922505251141187869125322636318301654217220166689836750711262565128496021130338885002962568465654975629771072064470187467208733923054163990745547393030651236775512557309373186110734593278873878998797911026630839484775489927769850907329950665111752567257015797186353962083879207456191863128555536329098616694362989337207751410417948011701074663041914646218080885976775655403801060591967869786872654475922142912954721873463662924260558786538430828674840302191861802583170887590337943252827151670044621846078961290838162976359417634941092736497209712744652372947602844845962002849349236909521031142871134567558096868640572222963595956711063916427245935246730596205824196773061224143642116829266761615075003890056580695584168759431202178760114201318218500702985289781841986612755972815735944420804300648836583732608084657944136643689004665543687253587397034276794208242693085143086105331601067969157798609719515253521017422074298025463156057827869984276326737907963421701152114398618627468069920838657472840633261905361316243744547912201163930496541361792923382633320952035257647071286317470123020677998182993023044052696023134668009594704886890081327999204481678479885974969272587723387013282589474090859276541059057705949702221937092652242830482895349562006085304299735164316263958881431329379168100074127864956993397502492556348935688540657650332153756576157605412019730983451221731606309470028312999531604514630734744950647324500778482401161100624079631937996781106891494041271258348654932599154688720144304482557183397416666458778158874271484384815813321205119224085171605307833991203628828247304258390079085544713313053771083849448422339603915264709119440151285222406067056882379328826402555181145395868548237747528769740362066512037452975261812877226531492674574307776997598588472764483162047636509963032926036111462270354624079314382514823506708227322219144063657237182783150919382875300121905057403331881976971090490614398750932847718124760781442434297533355928174093024382620827079816204383788279644658742560468535426435662980227094861916824466702636834884731014018532434532327224146888781251650546898078553970785628766854877708397717372248335167166219103867847088077895364351578813088989401816861038186305973047130656881344822746179448775729527180733122521056781913589868136877866133554619131456413918060902679517450258301439378806068626008665617675921900236752769587934249280809259273693571145033180849787817433445607061366625383172674611484855507352776490504555219651148595081461803260806647548010975929634308925299066549332298501612770346562765690549219105010911139008928828328543151896713195859502003115683698585428482872209150414973969902032313591321396519487297950756225257394397163815026048726028738604549590453207051702491738246329368064985504408311404451732819318142877310520545061379668701369353866975484680972388921224074121632591450833815367185881024674870323900899860763924867243126285496885760134560432523679630299211045555448821347752441062976925900537559222341546641335512005238646872363019406222550159135379691228911411436914553577408390700262169811186046153502822110242229432887654256755858219314727236852863211559982618229264139727362885117707763965744277433403133942036820318113643876643466871556389390455005517573388419407942278184586739479507759193702225278682633506379852569417329118947449464822348731005360753731410960599767581369322127916695212969897104817384239255285124462707597613678464563830628940447982792618847713544210888343162143829458490031811708859464823262459834516529900499311383473285754838610341721722562163645777091062947990337504273095746357958047702610469336759539802346382078497904761617335824311120052027439796181414186002910704937583902324099292250455289893690470747604907015323337457962572028851257477468009092581589122471605916075699078373140425933600533350790210344023400187954909959294254929037621693742504081850751647640409934426827902026447247412068802101688243308348512463089807586852962586417582385382653753967428999469028419007167260660490695973800337821678271582343254211183205049153154846347037601163920527333620899767998753003915193681918555019842150919927131155394034139239934919256208284937379421973842177549630447020182264846334994772025694794698357948058193064960044219958856966336122077197026553459874335487801076345623162472701318333719766786817707943034202160221113919274261296195365105523369774872007437013701334943261725897216129900346152188372893587143110941387962750998669225038508844208216934146902392259851969402301225861329867717122933497312880070552480803661189927940807341180986901655100036847166427534373861281438852789454514691068099508457849808200448363121488769629649400802913590639231176455199163941349824811993866591669014301932688580438970178428922662184604015370586850111195207169456670471062925839270037727738991506086417028496082104275162908205280097045841428247338570754130264462994968610039761200930499296841784077618517339197739405548587699856997920323525511667119757835100736456542751456904061682175217538466140522128671373310258433569241947944259276758557062980887460748035585352524598366038853493384907052679280286757980721398938911825035258440026265474100286961780153405376479958052019940413259182741981619157887522784888531459798011935880156160894749117364301246108698473532027189924778352865807986739136539481216808368999324206866856477081254970365146113707787221695694865967854000060077471992315895488705468728401260332942597219431033702973857341202152511854271822195751664137063893996615432984165342244397000963340802000454091871181529453376097454881108067940451134993742368890260142957698650339243434515586194589884945397019194370691041221016133107519826848198189385595106543816048833134375763716158593087824983311768965560497340384822075126610244869912165473704749124663376635095791834213862608314230501948365626674335851674668733149679272888249646147177825196343662649215403215031012986487161264432335464140985183209564580982122031555481007527873789178785099163792254289687198094977929782994217703334765274548230340008428788843058984269768374215711420078803734001013786173008844986110761407369457623514842133720478848102014292881017710821699009510799748400624779947174027542212427249672233353678929630338730786777432554135657757629626881408571657616324126088947605618514394097483744988355705344899085913978406059721797581155009837934599554932386803091059597228465419345535523874290985565067884986371411565902186986056025288852556454827704104564633290242443317875496287086779802597579630242951097333236292547722984335062971105807832495153940562713239236859839346010873654013702321341247432399058168884358335737716748915154977564194155313774189681809610272430329399233157266429164860615370714839809287879957957314015611603819457459006677369890691140982141821031172241497202509888843203876028643783791774577596975359475460487433776438466572333428474111579639301320216915635652277594315862003807833716988710654121782345708467330417824032736902964747516573546899762297878060304499023154696063580154133622513574850911549738697360329359093700516000072191705484925693822645817248752608276388776476332311805054904688988672755573382966491669345096175261166025731963627285218139840779700698359436566452429438490311673529915354010406649574142696180313675256758022157045481230202743286922876264768136558232234922668888508801991941188119382426792033867583796941161064371119454142164997131217964607467955425230472494546495527230104322227306568905482062496104076269206560132665728341131566969113052110622636192497539008195531964011451529085919098461188383461760000533327456108077068539938711286094857873338456401008078324811559717146711272384429597708016207772011360697184937006184061454476292393451328231008176730029597573773387977033390322606281752553604200828941520588802906983175447304777612292087562538565029595812687577644448804699504598496088399578478240259586147979480537600814092150287011124271046011369931769653794330519690406126168085813900618036305719588271854658597298903676616523019740080182667165314962103583300615881198718014387796952488824606947277041349620090110490618201448773618397168559067542212266817056915226041452775364005327789720216660665043917790885980776554829964245900052836748323990779190551499977227421899786341136370280572200281178032096016461426458733049882351370195501167498408143763197438534672236911045120091470960004513268295437609844281549350137650664200444614281744432231015952133448781473653553147002819829265397864580949652273153729415082867683714041113852893791050174508616820721131723521753579935511265890326665166420275968180347820698379752707693536807567270239135515181177891109713644626423465454587806078899242284928629461224803497242087571722504137177451318818732079191867196939168541118597799851858371948227713909857463143880041652094840591002733099547115740077092827843188425358421436948250065438077952758475819687287543201832009681374865956741629312380616492549183411653507086601673334780351065406962638258057505923690026938426264047787132862035289327175161641899990853521345464062839027485973530010617892425650664895338223702017899378503235617687890655119108829357013512383685880903134929102930156836359149910755891964081674581533596500129975981471948886621331327493146457400318795011241011434001581559184553887832972147355987443143572808843798338618958975185914011533063283967535234169374432253951654146808326721849857789122181214256704505881314634928312708521149019356544414770262729381557413213421888809359743920607137273072877278283274759249607124765148474055974366699727148751406865514589011843252591289998580137997678636210867755825863923165418522840636118445010821017618096947353806156129225214893063900782934208238156692467743622159506044860123793931183811225488409613355005895463273274470425427083478662497993702988609512890172244839650663127600869831760245549435249447394696012583652358294693216455807903491289529977119217289561301889492214712924558402154952168113179072399591821228411191687342057564600677130259804027713682209447981056849759816771342398212809951513903051637725619502668162453056761226574487805461460006667841829222798400862360538789200129889421844851090374986269544466881800304259967468477156126438779552098192741323852548552641898754288360745538500537582922774815228878538330055477090956322613028568837251932287961314438126789838624752905318882692611660861765765536127768352061849559263978974319133231073425222714140612466018052020132128444480545479595819169487814958584685658404519140763496064504047606526075474906012124107813227223958407146811036998220730385953650760888380911667550740844811426854296914363448677051498489856829952650480899864330651166555104225968759362399075096663396281072600190016479282878468530042508304373165053561288490310459958946114451281563805405874356637683104466461163487333762214515860134706987870014745768453876010559581668019489560218453009769306979424765933495485791379556130493061248443451694401903264313161375704941334662270955320911990782376653945447105862135511124272119267825159475562124544968914840864865596367397606042240406285002190639154558999778204953686709698285726896349893370379959102248052372159829091655792481863129946423205605846468752970233815510946926172674630507521480392669592571575480238280749019377699388822184984850898873520132157301043386537627035988415129248934841084188891228644060129345627968267258004771047646143429666693610925978742168563144296390734185293772842054025384114955504873313863899537903458615510564301345688868165035334298231015964637028969742593376079450750669681822302580348479990519251600156215447490291426777070647251959628646413715911054426577275511723519745958498322846709692198365897971990452099170620949967517314447178830523903770697576892264815339156103033174462469207878667921594016746466292610328061748528053629940594050961574298082378138208284615153098391863872927539679362748649034095134122233114096872008593946185026606434288827854297720729829456054428068133028845897212335121363301710454729756470133344769632596801384769073695098283086810942318017338748317049741765161713811433027895527918522486602732139412758720933625846594858524518401404298463262623197856997876250876528603668021337001546964046273577647166517959434377310303454922886022776441514013175075728650165766218192545643830435182389701011320847559439157420820014794385729317707504822913730235214704055388924333133368733455202504171994293641645712780598418630559223798833740253715209421478542268920295800247402391093864472802448853285579633686709176793044628066721150943969703962165273185005054309522570772556969661045703372642802542205069752021337709283903652171684746657094214171914643559405495824559070968983257053891283214210423518928446524793643803261607232628898712345255601852311863450537909158149341970967143970771868796736536988310041714187662555112968746482393486144654104202224552545796797361852745735648148177867601389081653648528606380944756824677195400081021652562134124370108955004729561407634203425421503542043818953408103981732576121142425202971609361377931578649782710832356977109916569987844838900406074540256685475462335177997341446092611872531630485714878410530754348306373141243502732760771470402030524851109325735032258856587577615545194098826930056655647180363892201154506188484503535797546755985817645048420838064622284861807141936093982808206545848326300120059686089313020563496166394245740384121538444889524171286688981416685566537208543728991704487013910846779799753384894497857235522626046516936213015977633878642117834656151440222314807225306432569829448108466335690505068907130157397835987954117771870350142963490024548457407605268694175312426546786100201217369268129417368807366954711314339491428400529108212539532214714670377671679656461233693085421265923701598692701546344443269095512930391177106741079428537401690960697779158662870495659475901685731891858395261889017761726023471293816825942995208881276708692777210962729908829087334865529173625547956742190045082232128405789174314312552555259083845800542455638905595643982120746983559125641078196305163384019085821267962305930009881503587216644124998625603214701444465828955297468820294870086535652433682716484333244180252131750848034319317909062634500974015953924135847945124284253348356746510049246365325392610405971653697377625975115196496045520298739447587275720149297150576080381598448950123394395874795863619867094276838623597802962117055287162133079764060685669280821433052293849979634034980280171859271674359171415836605290753508144797356085187343268742172954821635027321614541616387056151835289269348758607142882708020625615752519084468944439849621986781245196388806502611104105414984289463333407033882485496299416378667261949096263717362705506700441819714962392726304066839904039715687611163355047415760290871400718757710458529341310453067469634514990021958776016812951850822126489097336816350569561212439878010456169370303568118586755413872889904328225482825989455603197059551372070216299018229113584364501544482929214811882586466234020318016004717301594299787152530688172928658061541689094785880094395964835129545757547899575281464944377494099556444481031291769083167312978650479574710457695423227673079498207082603492232848592276843781392559892217267324948156968182538143975490106843006550600653923993337371097370404528947428155353596420527099753450185999543435987805535808218000550461907975023655502325024672050569356420116968577927142775133159089832507803701037138997542028346481929104805052950361906264757967286132342582628419676881962188149266916353492764051553199848700068639587904816152963928879042237250143175669476269060149832128120253256221809457918831368912122975655498510897469535222250572533453912881912321550639431941187435896676673056797282485126850839998339799892304704931535126927849665067666930333611880883723276079126017620375441138265340446063829114718406925289475778010274398608816635419709528259640416659509256888497362592504976078666710629170640327608067433731164320062491060099428452585128571458097262095846636179144552586817261176268393179003022116635046457406153646486913865997164515406385085662109516187604487963682898097351123604797934913872050234870418248254804092937877595110514937246048099792611563003513487677495920316337478307466813822239489221757110281213846047495608903893016564937804526232894673717778519234232683919954125412540008105896862950690663729363278305467075265538453891196321322556042229261609301480796123008758863422856353399578398151321420325991532792951195636156608147896698551248297131578883505178688683722761791018917387335250528069674804917243353999071232403082266795857710067294765285476140164341221320553492558390315324590248986171438775865222279910621506865691013594188484131413569665224016060404018558766120201742322578603655447678842700325338199217812590274904775571023426928852326491218784199477331563004965934596136538771960628499139695393754203496664446679753654660845585488547801452371209898097649254050397832760017113140324990700961017661405008549753172383819086251015767033035330867082562027769826643569325127182627605144583439381564990468750118836202507747329191094489917693939033389306907322422070431735099028213315055401315896836713501240711677782232698571024509133841143237042602075209094792303623696906845961695343983254998949541164489216262760001671806044081177378732517435566129816120605076657950841992203478467498427776071848655504528384146825429672153020362838139687470886899675523236607801581234819559711939803552562799175045981430358913180626103945827559788013212125791363021800438334612702037341240026950555408106825878403356850609837262265213300141184481143390114824084185507704575693484424440945792977827653229296779540822636096283288403000332978599351017962020521466219648155110672628849755999506636636301595382340262466831401743614817411828744022592051822204569769922353343636997923514488663493576816089112141637531431087627744504104600282330095754166082059070117527211899996611281438882083519515519827811393609130385817238226503185316718100446307873491632303453650035327790010176758235450884212365359519613124412672242462327373925447667055129141315682157720918050844327399282245711855038720777549298659084570560717830972787484110902277599800309538320399315715559307110454780171451650564524120916168155211161805789103479219524961296078698040819331402287172198193808770973464078436925597623600351465584634291524560546273440914099945132396954517303785506958799782814437641189011886217494364828835565905754429033183016448558372315704476745563515125895573869020170190256750702782084676392698406254079264285440284445158555270368321905461085199259486639544710837632858721866451527457641597215691842152615824884739820745916322465900657684150399550230126624034131545916571156847792379825215665290710845457222224058089908185022035622423847630102093569117938397556398725439320558182505486852202603465419234380793193848928683068374356063562495101258956520105058108268782446890901008171773146498798520197273302197153694501315162028178676255459307334169538815585410681471273171530434103452612408596414453179001868936230374423800871762998421605697751727902772822201337800687361605165266657677262026938037259708942206492168900372263442780758916055265172969487226817288626937384729752246317063105045324619890053000892711292369795004312391084348190253838510032308982269346126799527689330806002977383515096382875228955728052649683533053543397993582752768072779022664077659886143908157268702376213917039413195970062848539069358741281429280393744893126069719238039811276014626036273688531834704406902165825021129664539100084073625359761998645809572070833300205045909663052796455215712771963028807090706350250814748520640505776883723154281466045719150569777397035972253516998963128082562050974994776615522899255561475463671443908939924147101384695061521197701212713444603049749529349924996398795891566430946569055293537978451766504794673946258441578046633837525738477053658861214986923681994952905814460834599975011624779638823162920546703214332845089012939367566507785078979417256610657851780698717726613662607065601290483211633646151189470359416728870402924218545926899069913381008180997590769953086423533003591063110025835955926807154423791563957888987739923948094328369462464016202571881802614008057007943708410542834043440097158316180601174369064411066932389720743341226132575276336602239840668583625749959321737706238142348851084209003231521578251643533472326343579537187198037052849485541685082049501104526239601214316600638684273601927160849259465253600065396795401107079866521833736903284644779989290173250178720659735309689809662105671255834758916071360944179302557541941393533928181544014607022018593168412580078587877746403635694671535922537317977650820189082274833855646977362367449740474574834542023509970050309112252944469474776052951220274168937158047970135579646627409565725954108436823687311509536183906171650208060315989833422617255739200394144022609806025149582179623385761439600880247645065485092136550833932186010896236769717001810794392865888017992899019011461330047987097085296807185001933319721096471044984337759135444952125054552543141919044892637180191198940649500288587692002943048805890941572294215924921446324275514672574609874296080027531335547546090152162602598230925735446335282869950857271074208595520482778921255694056685611804082048388059972025467056658719090173192833424611775920898684706876810181119890952797877615486299442253891265693587282383454170659239257918317357680655641447621270707138487252141416092431955485170613886049629037149949332600702982480509668988463598097261725473852461970739282975846534554368800112497991427465591854908271841608429475772786649374913559358646815569484634820011333544895640257229354691629748721350730257520731530057497145799894053336532540942934154746193145622016895819589523947879142614804276474097857402008733781738779465597752636277136886382723524121176384231581395668150597803505699459056898420435359188374938672554697402345155441420740781782821149948262704043496528945931251901180191454903467821268432544111394720397279459292656294207876947370669299854656444982952121972683174639513906483431216445489923157084778413359669167737212687500150649685679697837558410628516479909938517726069852893131034553874243442327174198048760045082336969069006364822432795205596299439669300209383840070495783177045837283631045990976025041445494134209223964884520141132201279790382182415497578694239094032058127672206598910755200835545281053867298492207025790159015527790862262005492654438031679273773761305144419997446897111449157202872439609609688202412981021415234043666984778062439360131756225646063022486136214062082238467696322004051527757059654770759714778442588651847444648461692011806266424156919440773955051661950515271934501299214128991326751433400047644700444448529853958765635906363235588354697279092636055352711088267134166362382984683903254372717905208622931214436130743708284377779600528385191387622106873386127489414125271987417723596043516604455928368200790876105883168652627411907955825478549314141626107291982212365312212257269833211132337262139216932616724082964050392532507398721425827099028846361639897966693523410711607040272159005872194281050509539151547328612005864412038873852340409194752471334452015429550738013779309556247301041757529663331765745182206070252976881043718682879898222936034714517835559763504009723747756249534077995811737861331419030046234530335436194956376746199282003729853628872222736538136811836728642103621338353748780306094088121413614264213837859695833520574056220823810292417111840993015295254623840177819447606436537299600436083722123099591156422354126208204262921110404772775947478407574455300130762936731318912700290753822860698010278945319789217579347618517709482151368064607102370961830415933885984879672433058983110696877586962655742656147417433016808819525609141725259821375422002532745606617476735098133846547590662935316432759398963575250769713673298599509059551126933400000758669846233079331373460971800420019186431960766592322213317455896913384201368121245905963747378042792122789170779798301671696920072170987298148622617102298675078038803215879470533075426184129367527991800017908979659505921876525383176501949567721546982500962623443336866930524262802353943894736444488406587116989190937641487177144527824981555283206193239040809508003656896813651847859550563727808769778025229953306800180994051086525433484810065812228213490359810632830097413787062621054701600870214387629766818386507904686633044525850928027223199948065742118361756215709717582980949420277514610590663783552019122202865429824966591448486068986354025716644468602352009705438773017039788070132207496423524734530107402902443181851231707149128894643509528836877360091026498177275914846256888296248772245752751924782185231695047033580755801970146350028750322091283123461218085925868588449092734951375755982797295941586367468212665985155684780309517044463083342254179945125604957987998405507685664264234058364296321965508651809190563873388435163296430347884401401379824275490161979771076694940075852071103053676079878782360201099588362180774417628099500407385882042636252245228649320604878253554298538609806389862377343916182476891792142738985334349967433558646325989864641052514861744283273729050343191405194299064990629833338232177844723737547825937025272419487888052060272758714105980839421528904715829532950184544343331021511652415760404993135551082665403971334519981308973645008586355850114483443944568389387496972201082133538064699843241416976377240293833908419719197585118092472083798133500440362712032958384754258949376213983593681508006576788677333583658203290387641682778651773541527002555798593192725700321364756061124748445579922165414003094883138163081822024239243203672830023578806171468218096427402712525883768082423196743999744345602922313150389901671049066121707491936063450244663165227500105454043649151531473483341023192059905923256444387353058478621632901686210983519183019275792255951270955898652782592469272245716694382685981644031460062681040607275497162248699483057333625829594796126965974801867430322056183333489134842673247284700282834703952919944383692310377329158363097021109445490477687709088520632486702040129136160229914497879139003771977336425260101851873861827220887140150744948531212295068578785837977009343881005070688344032883226693808693957839805967231169314085736957170950292882823093148084147152720505101559647756705077750707654898140960210800871776833214128693505939534995388529932012311558748123636361317404897305315214408782231089966106827996079916146564679775469927853458609421694176552337010512254448057311648205466091305381623714577685785783088006854760635964392475887125932921355471100634537931087013084069355232606109240463077681873283350730484139347475437909236962955134278160018219836921046659500846291489635772157272897762096387769022681671485707146852503677818306373739321366683680001603966109979318812963222781841540242816443412789502170425730518531897426403087597927572894800769853161639025025655937287246815648030480887579305658469885237379873730360015783761480846025848636808786465431035189725053786769460311959012610960412899962086111672819291669563455417278392379915111600503533896563716308600328881421451912082769868225212834383842353803988481363030689487658876395316735557499562872304571873676334663247006409278372650143578892358541871366741511594722491505216609042817827528619098711855624116027371336665052217055035407595499165980134387845469779646444010155172055348120036958743035177664533201708216769163317641028582838192804225912256183845597313434984911500995781119404701371281660953458198699420259831731298651700094775529394733963167615852372893963565652849862810272904721616863384232060377463330699543573331394701690738938276207703481736485698059619427130366758220859741423238563139432039912333777706712728536068149351425635307112522380142541641443322163110177160036858457903420116302541455784308677688913652011700729683932145714638069844405439683317620699528720958799122428190044891842451747814070634696274458939129340479643396231409186121352465418176906939020169945238763636969870793404772897301396534725479662065846480861483595171762819422448338777958791548984043893542343213177162593036912773409886185891475512660990066127193411240289967729039758897605341741467899574260010834815776262274105834046973548941223382711731705837200667582540210436972412415860831340337391267397502462585518513666694488162037207945447011049818940900032281912930060639282551416140680917382687951302812943218446332216053868946599832095379535875129882423693072673738212650986825628327506125755312981720885792564555183516586798352534261516173021977440419966720042201282244797177284402504466471141174584748190533363809252302200094065144183751572941511995853487879525272815171852172566196815098766600301533042656838046496407485422207347836565148175519669236852261625308548943013420869284556916734852913066314064099944522399876675948314697338562641361994768957747532799815321471180417392131825969952595110705473973845533791064336571867300951028354845191375703007238721745255304066797373420537663661905710001979437388643207173518762952853478787021837890788894579999751775656050403831801159514737896943204941419944179269993937701503518801304466873707721703204329372794216861563132245258387749150470887139688786830976034397164976414095142061371236301973513347439717375442835181541794583321542633177581513038458130182177385561968942152313670536559247589360155536620692257321485985756883537967883588313898865703900899733294363535703986134917974588584459451169243417126494426758456540580358459080537849958531040020923343063339172485952469285773866479660728777202757306645188162517020878163880224792391130216003892928761863582454553067408323392578732211637509323927189999948083595329911529615783171927857276746326069185138086228041771133452113711327052537250288171702538243682215969270210033826080493930561540134403606365829015076060546088083319521197967161191815037803904314295934095051600559419122609833836859476641326091424842294706307548364100872249968010126627260367303645262545173014488474412259833550592531999359467704662971402875948543947750833594662326750404042747475086949183430850152053253991998087284064590297072413911601847663108656387750616146399432407957115896441418562493829472819842298603659103632212243257669321480669942520654877842061049868451560878103269908058181835602066387896308848105240998080406599520970540657890735505523402561598870375606563288276030796529315155349535682236415747632853798504652253201592436396671994409704643492945297579270726838713294657260815779086234169251299032867994893214413476295508115539225419869575882238400752537560938471974139115841865689474646853252390504731851809806446395297567787568153084548043985509289502655544175845387324562304843180030569073537975183442672501257365976445443393639873472448537874240321404407487201374102629408546953375852246184408714136289248206958759678521434243205334240103048615253099380369000931483501558068242255492151617698344354725362714551882686662857474604707919422909999636016752803347843580771431078966225843093007727901036184611959813205216431033405209709034574708576103075189851775338413535963562785292798157263547275051613646729498014198271103109916506383985303890622089507405681226648116907726152381993805461651639648443688206910544843245338884760200978387924655338571348075844105132485240501624152420116790298443883733000455188441145098191528564830093431832713521130799908627285992825815391562793028069161908864509435401932460056597782297882989039651204293310304706497627634646398311562063247100337573940003318560206870014446034245135682489421076078207990600080754275417850790937759653919989804290031661147957942318473159051072662814140481685006322330972972649590096876147183908683830228249713625432100766079317138603023228895428556654469485687042178518364452264409080386230945489950157727960668573406131271936248958944971366853977283614335088790577885925416508767456161330502176130131783971368904936612272728487053610506519291089504934258553016552818300937773576313774717923327257316343776698515386692323948904220300819480560293940451977463216006451318462280501643061892054012409237091845392075917058474714816846215528293745766171069843819521377331021647580143833543648353902935416328710939716531448885673801712673524884184856681830003667411573468009389734572055303836943993792204874911135802132580633695906836396662138126502791506069549686313310581654436409909606537048013471584892822130591052250526245914714231867572785419198729398041039805163071206530871887970148331026502749379872894280648814922156658521259388989037076477476362581083246827364345552403846149696907964912782094331988679488518323400462979972367228701666598026941958386572875851911938638682983852997377741829210280161805413428302845872676810719855740211426156223016629332240210391922636209744346807492077342044162195445743382338042581245682781315075774863395528185238622498893435356596434575672508586748080377870413710901100684990570175530469165844855647274922756998209000065927435477945414049612485581226671524871998863304135766678885393150190415444586277945702136862379088692341518035571549077970908494341389414104864422616077499377322632352697116436585606906270410649406796052648535577649090364553080311621201507919349871215981273659191372546287271260823519212558028485088994644093535770346865830167827548458472548530949483347766431685227922892921980351975900323269464318233198207574617649014472708930502023879569296421844910370403553414837683077300996862594544890731659745191726862812392488662266271826157481332337617994878047252032524370032755990162304393326313401682724855861834421574945237218620389330643587392308271626665804870174781961762894563620819459339014143542405639977093352112612814607970946571267645244813158349767590268988771538063150029094130773635374650225879717752681181264850219982379443590479970277850581188926352620518766611223621372178840282297756348635806295650039461086934661241405323466880559947198680062876194812427614162098191309079280062580219349358918162281519971684873098970582034984531319967718344067837162468789233674180706358657022261941424936453747994049834839724196987546545067760423501921198212818228813764070725756266196569062022808462176152870383164800081645407781541570732205138678558311758177092588063412969005310694625033691492175595880375648088363374484604424691520180253414261177931897533882914068951150577903931125629996354322525873099369090666488819826136051631922427513587718857245519986152370215294150384856321868769979043565287171504280544523416410257164789883988266369690365555953202597079147704176172620480414628113155401789066570547180743208516495168695784948337851514175396295603174905949902057581722158929355466099870386437535277585802822484462537637541326523778956918602375252126621914126117556503903947948421834971377196987212573129263383167834997930548830843509177945926518515138810022275515704989221729993624106476197797099630111572584076024132215409899784611619359899313168867892416827983980657417073358842033596535446907481796788024403799481233677829569591370284659372321561072029914207972147308435078545933176649702937666733711011096920650933909896024879468599307129555667078430935159765052057272613423810308714370518913670619904009912125167946323274107036139631752493779298633600360324273109631990975704227654234308659806881689288893256951941207793672948535951628082174777540908568584451719886947901972265015912902184099095833030337445642895137811116307564452587825595814942484381440712481535482471355847333666483653181840665351007378529738055097815344280199974582360215015493927791476168443934315650119816837583911974055329032163578660010345231973628335685799773606052651565585519111260231145808187875142201933944416394279825957021892194351841112914896077555193348046182457810366551120459552611578927165664509310279653675866139665471226100996534611818052429870075943439330966038342889848425076618844947165556495167818419449602538698522796896128636013115581503283516799270013739081768960059266918358295042710234252572491623450834386946414065126746686256147251186889214958734618892850925983147659050264116011585612026782306710861919038950205676163177329947132276095714349816859061607100145304692897966997944756984853536325708237687883401583890784684036778706821582532030964811893959692082439026455112528488410657019957547844867520731195406679298325493128329501231312957211237064541928994311659748718015832337185955788990977130937614557771986254628169629697896137881447237162362619213890622559111973293302311112032771168787845523589178510019277019141156108596413769681355099851274180204408401959732903858335789921875389189056384424978833271854565524876509704783777145679707014568712740721499049116195921534273875265004193037467335312262333403044102368647502556819446666544179254873936664862554310914981552344040425962292818630232641783737762777324358579776415532184682745109386141132334849385196841022035695011290076661675968909999173015824488019116449678031331628807692804779128064745830332985621112292838476256792596706778169179789448942612206102262067970257077635296752147833420793428252086966467135167103449891787819979580871835225350349167042375665358066820772615865549552705885960761975354753269932060143078780646590215288394967454349004397879314573062742551762262089376679120121425907819259084466840343862870866622056052344718693520941325145755575867042002427032893310697523413211052036190460278148219225106622101135365050752845407776783248879077349540420561991012881984909952153221301784515171184561574280817103645366235050413748835049532472631915367913938674648893101545679447429581012985849094724553003116700266316150115763174333625965128052141842062200172351745974396249123757042046685093292520418748247387958659009958828308748424544936219054425301102066401920832066912246908701633440588562963215588961211530866946971968969328608140974471848367711860651016464124647069493046878761173973946681432260183285219398735738576038451117847137872094549981550769138249210152448683793704198604893892398837986484575829829634706352991583317208589745701276712350885036568300860739935929951260046805900176536427611879370791240182773957674252003535712508233656974557524625502545846782822572038691652565800091102282648043154526063281631954080172925597056865985472000976823422482771750855332427269333682879882885511464500985382792769962532934653521370680472255546163387468928593149762373908032431888587465531409564514910156891249760382341331646371124778054671813757241558372301030848486218381918921889492767366612433834397153533595528006348395821629538579022277968984266678060172196373308724918663475737248799203476867571129364852441290756931478662593701537698134074281493728635807666197642580796689740639365749529635273619031497212012441882732916337396598022813058597303718160222720932617909596662616273508933090308888225734035199575888369385622196722187508316167821899064971125515870713835910297823247331043346320346094632169913809631804823926002837124042741322102994203267708922695254072541163294530848190072121032518812697971121339911193260022546822884305681870199649381034521015999885413920155128901422939241444605029254772388465942036004047734648379179429296508407117867893247995812191459169389610102057923794631275436776802663127906100284380069130720293006219282591931568678605633554372343614993552028457467074213848291883306535203995105099827498516082425478261452844104214060531068462800085119803895419162770325833675445951422636792126912341008831778970227514269105212210009768775663378115238656368806289926848511332609260370668125611738644894384762928044322722721470727150155044685669901441769119325842299461547498232553710894156105240483312930799413503563147648412154158221352683680752989587357197503322074366304503284050099571363952644309032030841368267565288203340115386507993167756351471638556829221860970765750645209159497159189147764849947264117116898854593572984200055152211885194102406281926682693994061928360394817873118456507756570568916429291992547227712247216413406150052331222322868750906450534888460669861660303274798141758443062145347295648534068924861393479671494429797456149677827995353963486603718182955765393864726277698589615596106001383893323391180976793808513148560694200541935082621783291852557792205339607669552756514188270011005601323504474808515069057948224065594747142520677929604591498111521568203925748504899882358780457990141770255511898008270157977072699799904519145641994611997023342469547524813201733635477773469876757431710845570245247954020119379767679578143027258492917000205307948178765498929338577081581491221525901097120317434814280069072149910158073909270570472143424688041415113525182126540533614790369851162514617434966073569947533514439657860671192641642546427452924443150218902533925249192120877760458239283622126921776470093622524939679469592120017301266861569283373664974717421524598897533244329875156569894447161260703118420517575851512014238562009943121362261746575320070597756632553665535243529134841068249988584377406140712258078610421067199564435453089411812549798571121416422239826560039807037555067269556343357607092324231937615378821461033668880068289353546336746451632263788277313859407186563991223593278228888767507687580378148806317577471764004927815771863653640177820087707713409389036932342742808470646746127403508619211127640817627916366193156908579657939771824125896911541804029752046132631487844443184156044389934939036772225370009513201426850391292261136186777452285281165989701991126810559889725990892245569481428344447056077425490557165098967481259820141782543438209532552494170384355074232940897671929999335752058092915783799772231887108673697682870589045377509929344478973680561479060627014079451315337152511401228217269937499083983645594316671334114875358936701786872557413447738650690600706341902499025584199572539454294591508799797277653123634093948763399365287391063865791931086590171856805143110720245663680331448814897833187633808841385607159617408725133266465962064274309409505879774101632340804470313183807005042432795394992671331636526225187597725938865146762102923106494097886247142431448789278505824092685385527780581386418142686794911037515582084813744649702701824751330322463804661056149419953636451716313265662928339320254163119335670699542965165524572489455223949807668655248528372611581508082447068923048700269941910529284711889559276000744179966008533292161629547799139275231679201418899887148591426117615410444721219114166083139682348341587085811370963597927440605195585104624844073911530224376444041462662795359787326263105849479022410430400954677274108882446682352205183171114333942620218662225414189446864113447832988210645917429482807756985626031413170240950572313773406384985736521489667316834789158025370544202026047262872193411141300783656578680737982449777990682885367833076216780512086779178889246313876877024565587917105635018369193624939166890381409269282120400973744620813665879244268829818034351510127540378121437608030937919303177062231627797947341612210050288323915536309781238887689549273963362349866924280901570156306722906103472973164256776255619921901434997013030241949553375857734867807576164556629131080019871506959020377298399309141439059105531905866465986556467805090244529037141158229165644441276957691720447974095027027447151549351204863079064711100385027498424507056626650985822786534344495276780624428849182435778647651943744356643692758679959620292019830650178504808010969394668548739488341115932906185396772680111684479251943266783883648166024397347128730442689074588260634684314829749682350545658510191308865091046270376920364586369461252382192221990002860099970091484700240784800472368263294815847638431264668441821199513458173677772650013306473795413908328937898511078732739912380419893642180002427314377214283624084635934049329443822407804261451736336682388918762415296572522225673821834632375185489862006121995484819514169013829210223126222309733552676274436158376928692097614852088537579724068664893960916966461019990414622836286460983549190894642354374190641577979102774749096001189680134369519904326137361955989038352593035713932481294082467298147348582323105225387021263402606137919383185457741851949243248076904030684774317729366309230157784633963974400947019768909109797295292401431392791692080330503540854758908325459811055745350279432961090415382674564456704395429583976442829387553691309818553138156073545125807734421657299263004291512330721806322767386602432753922130739837983136830139168758763273850315122847668914750399168498172073424871743518890998125848764199191867329849449671966982224808791733920749967647404426983246707138613718937909564717340868038494308364152946218069075513360633488820407932675805480815862926725875107191401522044337274516330916994393192585881110934968916657747106405359046135015781010441720567264537587924405797988594440555451138196782554552783008974345521744149593044542310537001732438539852619514849977694391729876184564750684864229050521351877428982480883989040747744712770011100772222830887521390250276225902958038292055160932532421898915015644882815373684663256160440840456372275889784156166582153482608511863166997371405377633732754041179671391769972661368647035345693216168077334171670465790975051697992232037277772123673002261705241119563321940970843191767463533762878829494781580381343873071567067386446823477682690539962919219626171876229717518512758979011099532044262344167947864093051553138016560372929701830842766732171924794644723788793792799188956946817931222592040050284097376263067358134007487852585986248188009559935678403050012168421194154073044391742275386607829415390343631624910393047340441645830337619746652480543246225496633620988406662266378821367022952706601334421012747210598635621507369758942892273889486148190039278887519948779728306394351152536167660952371364487927102965122615712346022447458660316605747988906988026232258958413016519350426991076432211165640637784511318486480673245159133729811490834866050541004464940841909380028793962239675040647483197288472944735287311050992087678336323360382495735032841505263989685359506299293704528324911097226855139992220129881554830496712413608203536588094752153394845333787807572154968778432228875036499063089696715271656935024753835509000750094094261997106029484846272482180702791172352541708569046564439467424473690363651452003674151645945931426165956765541611797445735871198031927048593354546468498464886171429184659865030219417183011929004800764127804399885455511174742528973456136003281274187956861096629926231863229661788656492480250170846365551167493021014345689594530137592415147581285258451996287647089504694281771841675583161546075637130685449473145818595699167772750007021178895595174106888495596646928224157150527870513624633914857213693671200599586684651879264950349219362250178451197364861933136031259199084161573050268866427597950358549391817876312601619840508690132778275519117619540529844348260826134568285235613270041189767093611116056153030498229435378984348650515489117179715664811132481788892666985156372774268757348565992870505386791388667162285357580732624994349703353827750265868445003967101801491431595858310296134182784862570692598543096661673613399988588913113800284277859347026111035084612437856071035169630989573627677925048376338891102342037264999707058590580214552602820117325935401654125488380170573207035604649403582597478480896069847189752295310389960294227080498569336822673884729471320521100945378072114639368826104802972212451310740565393759306786534349329342195248272453474773721618380005640432010543410460795931213176987791397199895709099432355821216619582380864106898785991432056222583156507410536586463715729125694082192331981875338339049054837090347408892935913596358816166480363177349238731341898860127612155182738291002574467697012154367132298784782203522677569035580655731826921344799050102039514440909939340894249396905138007151385792466163869963549496691672363901843992083819725096480843674580789750884628791613249028787750692132765738079686234501281147212449493431008249895809833091015592481888068940449710561765662806930944101415674356161202070708209087070057522182391999227237934674591881528953885798285528999922793982690079448959382635908720271553267860787893711483398617871506330059118097436588255303884352878708107047573746549934824552815173945709715441166405290728411681750265938279340212181024771618899166804412969719674741629098834764441374680929058893603600499553499344893651203823432553117373422918534348459925817413990721508880457379563499976617931405954563151974374513178176799040113075825104214154354976144949154570601135944812348653885181851802684737235098447624935992868726952036366173218733787016126055679877363351690266850745962192500743502180380736560851676572102289241756781042282929781535613207521947354910809686305246654889766986063267360634569214810607440288743798142380230595270254774485870604751819845381161370904124200669575732261316934220847084025983120872130414819607919296278540463071352385390614345032325247182827796388719274687609742584613524511214750151134683122828040379221041325146979610334409847679203645661539383641407166710683520095453626768610009850409301179912767447371304328539490716133679197768074049521292778919784064676038769671593938831796510594891935840733020821501376207207160535598684391022395041601063804214943281174262581768200255485115322608706550897482344212862187532710932688087288640512979143969991201612177253214063950073533234173709125541099833983462048133191266047830138415195203739735050892660991377893134351850082426283767872126461835527419634868225405852098378939401575884263064608905665855962790014492958645229016687112510647286919224897244498936971614905233049503024617511356314911202581542596015537645581635734980377716426838956698101729590365436049496975923074534290619479907568152153527677400079411164024882322662250329172593856801259257927977597184852562567034023987527797701842024145358028273086500087945133717692489141001616196180077555247796831259756668494420097903637894140905164896417961104064864832600121416456278407148340077055006079979167511636223484818812593462598330791120811596760001537973512215531114164659236691808447687134164997804366378866628780801991636501646114264420612267932757279711528618236422055772390537922193168165088241155680953992804192611234498354672618418783875627751923585932371932255829898235505799886949647693954546559589005134287248750585965415989242222095237775791668764395354042644603884159047673759431449455304384057351365153150948825625066795453839719999093972978539784122071403005714785937013502823022568613352574628307301233343648685484544162277456859090483038087419405191365487035940572509247686558547357635435149527483983930941027482347346017129561949979790966519971836546464672173517639046771319362010325190556555892990776941266513207906823144586579227966101529733222390840658435077680895632471439081955720158337130894053849336246250375892228145707418670876222381840288506309262117465281120939877631955252363545779429702848473589752703073591778826274606183061639763144403110466628487751709411398145963364224363808023528746334343918192234215218096007426747449178026482328695837921823593195040179560811039241586333928195503362490784643434818319135361883429111547755497548051090904873833229036741576045004715366903450383313988317968551053429125378066842405764393356147444329016431059881997621544554705422567242472601053182440353366399304621122971673544158664302774164745221309136467053260861883797948663762313805648020466285003426064917908630451331033372434323897805971748039998800744716256776365659847226866607166520903959325864825813955161987933114261417470837783279532385667394200760724090024629611226180040743729856604110962821816248928766655255154317023373050658845358229115875137749335999457974717377496869619730793273300490223392088059683468886380864893675058618527714905124335281457902991031201509949171462522416429557587441414077381594181616905613123931434079494519906898247861387845655596560215653035741206797326616439552531572726294647224573091198008723832652977453904112960753796565557152598221771437372615072147101420199675458775943406373141855101742978220831223176751181864089947813773768307156616369054011161579685381388999210061401155483638193455119031198470849649230914721409601322192426940305369600676162969934682787604562416105614735129519449914499564077888358438400595185963690809116605332671666036669712114460165775243317626088737591905134334945997159400659704305523050995859926946523899857429541284227367267607724198511194459573998241205337330161308842240515285874178941115279079478119643371441129777787421668704961362093273919325373038275708334706987605209341231992672345373981089658007286134148232299267863261147609417075473577838802904882400511311618205249728731801268069635455430664665427712287577424363318912837284452586330549842847883953777121761777947839340680368581934375741871811481421856189847408304520177765781714711131971514103129550071531017563840189524041632216627146390958020404322596901766049162663539111770726122510000928250508342120134213584609296257112495796081533801240560686105618748687436088179828225834934774644561706805306899790070907051431852170485507785438106576431712439128190414116718381066285178458507724028456780931647098114103054586114308561273231286663065925284591567645109670263454241301625565169045540797100474317456204279184183485061882367728126282842074076106652258991600515582497521942533436285657219857655618887236690195191162008827228533043450505664539670027782885283691457883009110533065362167860491594348054952509664737475095609450722513428099066472375548525911553008121467972617905183780140095045711770871779016026717118601106597641629942353920837064105517169007885053442353598404597305448990901219372196004543723173502927455905390925550701225249440070486878152722837349128339218536310951984125850819347997336002551717713404596955258949988548835520984908686456617470380893561322976349156038311296178969698905053850382965931691883614465580494010875996646228319989889848202750225527378851527223365496172286736619376808461295160149732801794695737900298425684042237026380004613486818870240499769571020442941994061993194008018258507580750913813946425114953711455403100219368481186403948862940777974596583730260106563786009326059334849075367686184565448428149288427609628260611369223533172763257190966778309045727989213763675430138918122775379860858504489370783054616088307596558324640677111496900816796630002352282168961359018003600660301282111360628341109000945904981220910252486543752124289001340180548215522794601612939967725721348787725358875392908652627629062476793493383811609400896688298491892445134402136988072642811035816425820954348434363146346461919490375197860237005814221301948015940490794956564173838146378671690852615109501707119753178577325066902787753922931373288999398440024771199774212235414132220211674397114735046977097599876594267984856515798256117270872169496331647363956944397781302581848485584650945532689395188706404416764118202730147161450312150631618288058248453994172250806228391841998257279763177986166185399795022599348368483725581701634900569840865476241774713936748837641822437061742569301352415872625170699613588210151836800817346003708711394580689784775026337366587198655749015167359965171488850300219985470617120115438896627367058774718134999924050585063194441492551419043957481963584846876371529203806164070991424942731874947894794651109226826480725004766386980304351315010368093525624658634534099171764869359456588001628621369342678623155353819650694171031716420485032857214286066532053675055675035011967093755727234313238896831035649758907830650850524617045578030974080211298902255376748752842784548434827833509636772338117788165454961439087819552673446206123279443867196684163428105595904448776842843250049867905004051827216972013990480520381080764114366117821551484946478999942587211143791265338995708446351556052699317979286820250758083686624360064851469089933467732943454055700648652153046968642447765572464332403445514618917361480732445897479588175068572061176391224733792510702840873774344273282848803942877158273829261687793606962450428811085602164238854327842200546294982072029719694139976204180237691953761299276965945913075630591262600952648978989992244131476141577496625936590473419874390603551710359835192737293252321003110466576291598529886374100543818556829030545089174205562408289067135862613493449469605949882766544110513326310174644527087565882126807484753320646816775955095011488101108670764085916588504767936017391420327239676364071965441511863368973482681794361688865574271315434859215160082593785022131620459240572306538941200989234898738611943901436270943872897087257363104134531946154321410180909207866162656191664393294986811527350276420340856643385048767144659505430725134069154976289496568761811422081960451230475466592157724728093866430288365371009817967556319712338095337233740894048668791324251297814519315941198979996246840154650175461538572464385381485180498162291792737970753919099764260347044796350397254916015785565897851557321259428963059885032821470453073717500093377136600847898364377206840652404680634318504698101135224831681970033814287248053656054121800804009861510830190686124743566368921753283111721064256589070588196528612956361657321812028028240985878786587140475036035575747127434441457045738514771842190842284003808211715419938355895477696371577108815814655169212809396544779837788041537541999429586443157296342334599535268667204688554334372758620298889343118314279488074106223651032943293317943715551159182069424045766630922250594052270215870129670530522119138545859348902961771814609525651750655369001200917020339430529610691761928024990922705504645565418625554933078825854516917595223826762211491134682162616784048730254157473524331827086973229488859203925040532149339771927727600305849329447471519781366252927271166637801070676732474490688757895992287182034307052489367087875889926135690968187864804467890390291188617666366357717532256755973766044774126066971459301203297773866243099352444843620094532074841687077305194804496235306114831744678204237938722662726265726754363439685003181019057203643054899632644441613955831093208183779819730047856562201845866015355903609495477785083525577386594552570519418168454706479888273176317883679999389934493253072529580695406086506857705582363678253984156154810892783324385868188730084182066703363525056143995281217877921327664879584084620801043790335198828842061664068933660144586891347482287463707640506467535739042389273641798775902802563397417377857761297245144207426498984598294862946222070977942288605961606763488044051775333731709717764462838680213523930217305534293880752124451205545199789844424900669690054275147980257982270626144216819665870221583589708854587372875751531048267291636590684908895378856063734416415717608995011237721183648030439191562753789706106850671031873698249037057664831214022023907501238067796351067181123896260154227289850562083538714128028939298443382441548843464583881847157615374283460312684523529795946432084426173575549935854030949089542712473862360687873854679719786812534306439041868571033304950581231405561857395674546280097001054821753439484359034312652979947631996000593837797782991964949034385387276437167185721603391698792821917181457388293328046553898913632894658876182764841890565686876694460420554880249976716153752871699086389457809804513940856774757003859242323624195112852092382557990468070332758236106467173437529836874671760285080758393681135208301835749820111247269587951628206085904201669788835531087506400584259239135236278968708492515730919112273169170834066792466521863120437892206012195307157208547710563096874529661232694591545670603168990780647799253274375767383206161077025273944455830471244666776207956444555203989691101999314568609750689056167666964191935437067507612358619803991734216858054732160853802925971740626448306654714105235423468407101582994490595023500090944370047163516209461587560995480080691171238707470919376701106994496116918884639140245770431343861586499956600721673150530449864253072998830430879788980008633900936845484707862875691545645068715411204241942296036147006415990346264621717226245446998002129253827747750910253874145134345537532066189203611989624808284349379749268857426442511441892050094800089959511299728752819425914905762591870714152266370397279462808415351548030267347727744134253476257324643503348265875751561649827080514466744356375005397037540867923707982244241003785459340156263389177465675415735390499032697917346231737402627499799205640905604709938034200407657786962305177520567216367586789369469357244202812956987965508267781884780556064423764619473829300450878739249493488145522680929941119186429701603329562115136294042194317013809870619891604921747569109042694376141938329308617978338898910914899297635332961375999980650976166402326873369993018717355042158703766645038264175301855895603983437501860293928608542367960924251469482045215929392099146088803765669750718120394598223475844837155455567234798181882046846494644230086718863990769186072709021083123899998091748874776201819489471324973468326216794881917543460114044861959993191002728527908100944881214748749577584513906694715801174322070440960764169515230849931896740756943484937169248642153421864017141274355617955162456689218995181821130847862508638698748145551049869102106633960510511899630065188055593159654559016195038479304119616043243172089457334508572542921785926624613844486406638868540160010602226920839416864042942531983280127903096501907600858493649446187925278549890391640740190029273340000623180601138789341893908686296258182448451454745555806711609548498980254299237916120062070841931512403395651629580111839706473123605064219946601689338525340095269405071963846683157965091123247965510048772598968820567849937483297669140362622995189307935807331527423863526320116804645557191686131339025388245781864303887482547269776278785455047963082531380455706313467273132791808106587568171985199896214844683986146047162156341550435244011337541118795154182864506549524673778528899831384947673598968836559114672621557859669858969976510706524126517047095338352060493721459884918610382365865043583381198381528887242640595375219142996258817411920013737491472256347823422212887817528767522127020059682144226811044641121094418374844264995672623977754142330574268562721402560342855620970385543051917739478383190544604654318977574672444257623055503540185728220025828553527585216619794800784389968596776680030127589787586313225127977433518383289114091892127783995859992324530309372099781098713188188233735202788132806046196161142729629187314698041549765152877785679938635326565195130574669097637741337889016117684450518264699023396932936892269251540707849438128415996033896270479484639984599214946571853207013547250244557001738276378430201095289724637774746982203274742959119048153421969190419685475458062958899662600887158115948346899829036743700301434017347097697961862855687356335210869539641157176616246369308950597065491389026344994183836225637656845620012196028018358346001226129670764975773455567163373566342010019022829376160074391750968157497194312758830520892937093667431386552031670274643104293533720776586152331087886682299759443738650905503627849870906648468953560298053009063710671870434873946850588667926454614448700275270972649585992733687887642923357602489187022347973854851553837114428255364479959625249388353888279600585046821385462366582030367408582562547718161306476794071744970913284262193971023332525612703897454466376928784866972337853201750043238053173488393273061472835855183472404592278831690349433724119381072370376096192818197921538793654431731015955957960740847011132635643793044376921068526209814998317948557003314352972765761978249503049625700271848024981995796809238458969130917401206745891163657559448371278796490888725834651815221999025421873737840694269070440116356778761288558802081763022186718783624223419558656494615910429963837717847398756050686247138982547253422056289587420273772693156907017736374908107008566007684055104490202182739069434213546722309183420793121140038570688256241007944307131902928120152632692064785453318364659527800767386463303052815316467306036770977677253191300225362320960516102676122940531552129964051746525879538227690300184060634190963770455794735927455129134443236724734134678035729970827405408595868046689557795157523705708990425484687127842180574321653548271445818035298017957018032163649597702314713048944191680907402117813783821100880283354698932437470188696644014230141108281043574550760372398033406933661452622325699373422713592959433170828233843974473690804841806979756597748281057361133903093411226197506815166379376427200987056887957511600530329629231128524021148124876744521799187339623386740687953968132181676236365549633287973102630304785337966706696207605995357870879228998152285419277028761706354632795161406138145103262710759450152222956494069513511043219002440070206579930745666446341670496982878149430451809013517629541410702735882157761237368576836471337388707763221357784149399520565446849928878428481716239218804874628891982015668252482819541525660010545273105322004818680447777803426994611053253321292956198405025923669468496125605533559753069627561430818935371921695503080447150444732234067954491396391435357984485523414444189903603763576892115268947535575306917165550164148504524759620965758639599552070381402209003351183093576983130026584393059556009488294793795217569076399955328484411851357489484286341046991181207872485106734353092879795783739123523115922209664876600542049089987570538780586660225628442288155604823984985876461424135649430019929198707013712714781513831609043059509651255788910343280579927396562573231280756399548011375576149948332731019351035121629378459002459068096384689995874237114801065754464939315306535112530233806643481626860712370104092045838583227240589359011443051920788830391922918962188196488395656752892611790217127912310688757915801062684349455098385899621456459559523518938307544588985608438114780794824942370074232935343632269520692257151012151978846215026222739152948942314057814475112925376961008766886769722265666179055721442058944640518079104196141595410389105253936950884972976216310894917112745180943543668343818375425397888655967032568358382113158458211893271522532954741066558440743279768297454949542774866759832477457138456079592292003707967732268864042054684109415333445258451267848763051322068926781068177844419489113908361827462607783537064343346867744065506489588373980338187124737511389462576736451722162750690207023335674918048682259019984543882507427091925168624351993651866236432725721913124283486777410626857096310438721830496678167646259692489608995403285524819795021036903556890164082082911468647491403471528923841593282938686387954422871669781717894601055222429396176946577824588152331644520611863033347771442828959779257623802011996212420628745910125497429381599175489348640248256182719993629874189363295913312122293872585534673441080622559725698496410252298874769232790307204396602341728441897606338892036309919363876144253037848086027667516153548521602190955024223207456069427325495630520244748132987285339061095881364392541073613726012652480188093409968857983287097532678251153702147303708003657290920264702522958365513872971929279399147061553169925006222380357852494757480865450331737117003989209888844155538364051430292214095296370488753251790623609378577561094816389513801628332106150420946443232084168586261111888651145848835235159816844761552808066565756641720744917173702774000458051214484637055635816374079672874226038216808967512526783954056934014223994304910743026055205087727730878177119668756457190312135624360010610002059944445532244851017775427936481966333751983330617402951974303848662599211382446094881234902735987156030242667436280699367861179336398162858511776065016982422288724087420605185195818066479665240473232690847681283321395597263362181481790303610057882539884960230183700071788318302215200755073839739145036850409253563463127595994952689656286666953805490211773842439972927542266986612565190798258013549242431230000991688075474210464257565646492189825399196952054671413407953916462933994130608057289024249152446556169063488587456627041614491024659464288553957303152946019905182538983468673538929442308781588332304054213050831139154310221159017091941284371593001068738454441070797883774920066736139535095917803024229069345728404063732391432262387941130931456076216816222132313655601162323230420769234427652680840507900949396108885566725190161845539973655398632440770405735814592678195370450029892825612077011802829226681388773333189230690405394585480736677092401500809405391793893480371002087212997632733614618390724482293227256656200759380611123410142545450589517568287503844904352802286898942692429524910690179542119026083981396826825837934902226849717790202667458388846082504239879311500022753340816665560654893271647404192009228305946044774168726575644977340438042931120867023216688082970348503486983918491121720275412601419341339903432431115942615208400815065147831570541772545341695754437417971274202033775974655916488777568775131762312043925953062559283675110646424767854087453324032147075951507592417088369292910944460014248376113260755264927018246563487370414696192082328188422645001644721497791355867098154055092217807573523270169315883884166783704541072902964900054592704085400495494144129666603635356508688178423866937407841566486105437354580613983477812173025115273827089953245486379927450387156878104484014109414049822641296997110584113221529137221529176921074172040048960244610248020683933367578283478998720868481472040101236152875449961266674202991823367085851907018992187690486640589677048991962172134370546365631607125507053935578981918973154639169331335304736247989735164657480866986435632711979763064157867687776824571480166722630118224785303973157741603685866254895062240288544735365759047923378164690285847417135386817426653831478733459794513550408230059095541957779550607790989582695606351820582447272507250992778299926385933557184259221574782489091862021023999465034033749096796529175685573312306061146665714396491319137806602010564476921923528621617154131693024600153905167557922040826904645501237096700577583769349486173012323105007977633240912198808359070876676235717222436409093471451187416281764418980380339067724837590933910129065650062578974588384487511234544288881508968406704053736104285474602817618330030285616918049418034274164098334943996453493941545652060394835066876828045748563525827103534468710188691626788721905159714631356913413743539840774907827422071616205972830379302649253069164219682076974769267382174423527315238176284033188719768400429920278201728502223010949453079533606426008186589507130222370914938533630693370476790798408506114999534248060850589682966909918833694339387045239533488723174257648090998375690558835346348428914783493203184711050200761494694630008876433421556127927263120671130788310589849905536191607321687004905090994433317261862245829660757109702928382144573697549592458461889735136021904388432213093328276898116582829587066356124283345892514197400307936743841521675993314996885117146691768059004557470503559781787744124002674134247843442760914733751113940387356729637983422042868695844337350888683163074289085938457734172861487999569304208767995308913897613394896517255085939045798793256662850882629868290621455672862601287926116991466569920433895914955631344052199433887520591370656729180407449544194655669432378669234900936522228957628963669181636576955289494255046147281301898400652218819678546662876253412498167490061857555101456504617324136716925779314182438051199377873659030681689741059546773980811214580481127113485486975444525505573952293704150823567333505987866471306680509068058661372711067022205736505110247969031311495061453196920556961399284231002084774571956675119708774409785417987679594882501806065532700439936864956125622486189940268599086119840094008041151502909033217706019056644566219160111429308720983755919312197442895290111727777284305196537551917658907320075547731204074860287989392517736757796618129124170241054899814049920224929899042759890227015108258799632374825620844826865702392177822565700013960847208096187340624094573296933741055019730479912109557996872824216517134833085924938727920613452799527827586540942147971989015442771563466603476525410622733097089224016626176254204117066590357781093708750551696566598915989535355473064861051048960281643879103114149572727535963739445586225445716517488786361495050358296052798947616449408599253608406055759776253775435632849550309555113438988575960050740512575113339020019746192454365556051910220573482671572672867902723056986525797058345433167695419505215038531495595911908353666750233447075216106007276663079892106533860504942160883396916598786689481140864439951673322364957576999817299383807417196406224933591987811278271220075203382385914025225266985944478601454940005990882044221069249720791958773781273308434447230448000127412525008770765073411403735243637934623016034809819950990175460241143465270629057993897007265148638160522674161798850046325108092171059117901929454031094580581486936221929550218250414489318960563595784240707559008714472206949104348882132536261579866772962461107016377044714781352212018334640414964884261645836105372747750974898885469145345630141496057129184663642683322756063003198617334308563949235648728061737229489777373822220713700732862918584044432693003827199282181756743510301965356936000930837176438820118642754042502947510836949990993237943864472677017406975318240365595639594684000653261441335477436302513763500852221765851722429764289352025845998160468668651707324733479146778238166659184934667550548852131650225679483750938654673573147230938559572479672923196517188175397286313186784628040493598623640260927963456444211897388079255101477518015921903649437449711530318253900261596199028703052367113423033511438180589594729694698516300601456144510970240226437091635011900495843678252714984343529450564170105174935529771940833978827320727098537071442530436939518874001414827834807895371366694526927089169189219254184542076804408195848774798312003073834818592882062624840235649033248426361741328946577272972828334649184694382789943581650530845724738467162888896929855166202690068441201678113382816673795978595664233427802341002678384793526971591615899013882092231956518830934842358857696831501993857706546508061937904194758191320675658930293884177330593601033500721955550838955515092113346938339811610611266824786169579925711381198264891686392034618477889130690506212574378685535622386721078687870710061525658688485284474798705924310002023632462322180977908208323953475536113531042148689847450044273027259377345538554171810461713255496170018796807736928019346024532972331824615406034040117268676851743780694320925195696760289149878649716036083586931248956285596333271974698504935725306282776931245869044907468279575491471248587677584573300416931186386412539118244391172327262298477041941814214631865854864111366730997899806244222912568849132292512758417748722473695102987478065672899186757619112190211581053482634555330413935922157508426308068131107583176015229921521750336099906601562665523028186642595847605630537479322249335563900913084431731494979985936145691729269909956075379339516686237056733950520905693596642563270290699035688476381866803223736592698654675158302443520794771544380991853153461576909495790225046868229417379439423768604192011479551740004050107370984420891997460367003586576910252421054601033507946067091862141682608441790642206088144615536668954543804019612938340345494120021599137849692335593931450835990191674034181868071542328396503121303901964876491221904388082340929295035768159097933919447008618134159534984099794108960391323069298553704071294836277334815824174606090584181472882405989244466567607027189125481994006072190446156612293539028712728996546574363900634659464140911194155252546283686646921996619355909605563733526979906841724904589693707437527847764821187264652777819005365941971244395942126045236985950891220449564953043662528015089270675186544966702588544388877905654356208606659420935094570085514902922542318706008854582484548068257039967752736800837723268730490073600976727910995383808524928209490703526470724562431522033842695887629723402563129249629815955992390705863049456047847535582994128180315189625197703950214343089723781003798359254563357587493945781508104925059505709278565988903185084835934012452959491943022206293133693535353626605123110262176822196183633307253262401153286075986719292105756373624557095395174726577043292341356449889596960849597228756026647301049421386279971723858165831861295846730439492021539302626687081747425071296938027734100020972887704931566123010380266005972801708928716763414976961886651864013119922916294153402940136175630566605354859598742734459558925250134114448740582542668515696762167245798812598844876465676266311520140756040266828877824425959083157731698112329805179179341627783435355221185047007882073228038253523903316229845483027151366685490766494868567363395816134700567981030244870795211228355662058886243600056036823520654472968938746577363760306779799466432007323319017349550450587556405327408189468481968941760715222620417951857145215512108090623484980202901756657987638401645987712617233844910621879343054379412629264757349772065284807102179433790104112365427350111044732971078843244409848124452692982232475736949167786812016484861716560274904938908787849497524464823918069536401924965942121825211819913040244297461681809165236128259535703420299940373563902876845911025130328359643793615912718621138738200246444457680644184822902674154635600605959174719728773047434189762330787053539830436354815069714501968449628497616722425025960600221954483111388178255284616863551854470151945775896688540493244904712296270659016940206742338463282498457110649009014200209296827297182536079702550106982015181287824030521261788020408504822546433814298803403977881832900628859544116079569263033253126505383638791085600093613904302223910400565944115401249282817809377186988011878213831526217807855249804151272471615349566408334198938623211803870759177263980265303628622821917246176914385283228063976062408218289730476900681144685522719398458777717475371964184509324597631007269556088140644622173309676263693246480050347621775286110811426922221561200505060914311622957327205851700494546205545064688983591260828584641848499658616463221344320340026142884833473663295738338022027620526656420020165288025446385077995917249381903901045334885579944663672573017024408073503160606207548821687371099879953001407332773167417293186035158261432079708311740849341592363984006248521459216007611704086566425127412914681282535023178351945630322010136088475151509003253479994755078060090967454343578578990452559920444520922285684913061360563584400853784400115850978177902732340980029894074584287022608267856787440263195082308429676562551460768755660771316351930884009916779826912007774479435906467630723185332715743827570807309274078204268920597938511187113888059472774524011755502250987559188169428678729452911171187099844041493354268142650871001925574454215654726739724590982820783731847733635294830263723817207603215351045633090620872925456712036110970588776248481239431389479997633377429523383969091597171173349208847171354884160850846014485593806987865098909476908334787503863086363375916961160606208386631004537772985800748565223608656579695438133897675026872380375118512057854939344137208285921571064921846072862830464204352906366980311142523418213394366551169318998659137649395235006771966187001104690778674389616401135373109204311050326256143402924072513924484589468746269308530392057808014421379259459203520701125825180250960530382146417843741008692970654264318860834286904025232781097876924130450481260774028258905675018252533354296553021517234323436109769420214700934404151495555396971836501720336024165417616790311895554285196866093828664467006622578222799925719361234798627388429392386995795006353361772208985684589729125971245910739533539128231009106336578309533216189811975459782742214277971133611847865382715043325524220013224158321144179169032744823113362008776879089998758260503089861126321557818350775452246433945103016185989369246541063321156508878796543427064420690843817747880535682979383322202505947619158782185911812640898218338097650612063632507486639279229303516217380053569319938566973988041482242057090109821370198979223102807680307059208352948003916154385360247561133108471017784065576194602195693361442812672332333904484742163514821541119273145103026915574552569476935211780394397894617711659895596485226868804867879904536813613923431002808250612426508388694160194218752421143984917692367774592842358607277288332693545684360118532362224270050726622765712048508529690401999591464771778969076184324315751941723184224120381813859255408721005206507573993905240758118208130528149270407079367680826962762954998040570021640709697699718440586233460008172894055936787260745045979639791047684744671688071107668126548614357154879221312037900534802280255251825798477816924403051006206015872362542566441189353768018395000473482666237856094649753823982034234032905451224142208937890368991127690271904149344287738991321573562414063972572394508666983122203810818364200982371444289048870821093641492012845741400935925659488225628450805367852152979985388897656270389939052528836406745926129961161916435588397881828847677756327641996821131880030491654109980624932232283749812810399918379359893343408856113498003601466750724604253239941388239110465546576611434655865871151050345199572134054496444975878521044070851010784176572862628938369654353108489502805399035048002768873979114407675170613017113999176836696656361783177438419639131658116919205392568971748362406328448431277032984041838028718343933832372520826972006649034951104728534452094835086091265982489302702262466846255508112578405071088171752014608804223353301924063752150330715948420491063859289502528597011303153612589936957025855915623923999706571621260374146225209903014682914302344280302396826354513697049545844722387671794836384024604711031617850486307933496458972605270747688674186934108106343279218572807039541318429232972697453552174979096732965574256637824967792368292740338172428283455385407654818807965653054506018182395494317584439208102791076263460010441838188456506433161156963866251600380911218878010161500324703613063607750143102864431928553352034509546788823401861933454491413913716942548406240782502857880084056531292198250991992360310255974626855855991338852458990028859602758703226482183288009248860290574142944008753675836164073188615669975253673748322200629035452244641631593890423409120799665297173769442844689593576398532856703343579081762778368945948977557481386282839381759019342090410382558519377759482041787847685048762259131387808925723121893162905631390419138528367800336840472165906134570501429708860298741207482807173829524106426933432410777213910881393807740532259550848161490366257020769468199358488428961609994897629623383201086391645999194872188607528415443266830065154502485040022210553077829232343838982065474302558837088854855341388670578883049964167918095171684980218310807443865985010741127016406332359002160781990161050902500656640271829004688354829403318710790639030853445722485832612987354332644384924145276220073010463647970896288249469946425022249644529364693558786499881578995146741383644968798377566561326596248330864359140302509164189125105143289569070821080153016246843227219713681997715837251119906089337722057544512131734538550972202766364273641520899522970927884827945948478071678486363730569906944147306614564267661100886666418571278729503041326608470417375087602526523311019389671517521833066527691655881120362293050717975960711639406508659536431311624972301939021637930456304991226675763414405020308716022304372885408129203848133053002429958311930310859190422300007274195031160956328143573769699610426970709686691485423761981913601128228827937416645658170423987897474499303920868773840327251142014877486871598296764272603035622048938519461167915946285832493628803152848627444368502550944344981076369818561263329789552695537701301212436608044005770748061569588490985485312421160204022498432866853226090190497714265075094163175331568357881545105073653981277716482763653517980486813793808342290993246113308592769256248774156098455103648846463595576491605385425508676070585093216316013054463410618961037454105035113895708265252628876239211930549953873619380248947532235144794853327056058222909079662170931855299825799826273759325620684094683566121691528069569953657010684906983585535619550825955662372514432636740197665498317467364137550547165461332562740578213772235408375026085373396840454468696293577426232877800522484221499076062721201826301739215535895744594306362435651611352113819827223075277455971439699297327898540146018672085857014172966554509859343074289540392291817719956973785130819456442030928825969273237803207858251455951469476109197968194142424587016636407624240917938530086846656259844799704062745757507808396933970576528544631075745414202498490058688506593333352287966709035912436301732577687456675340233774979404766102844162511134405196416353813358671117386126891743051129860375472605586502575041933151875600976729763079944961223289174910463372530222884218193250087363572319989756789150357521049639401059126844854586778760648861542969729437307069144519838200980102725489064677902567480293350389370790924846583650906709745808780875036819804379985793750137808615014468395438768189725667097788720658311531764000833919902191571810348270363456535004915967401905423681034160366885638679154032762094631916983128413620020555512304961478780480245494075354792541253445250978029609977738231605724514121241124261645060820890714127440951747329823013674771212980738561432591042400770869822248134280620640345913298553014438648595378137359645890720068978857239240202220705943769413638594116393446617790440142937529899178691234456227112669765711564411397865555128985322290421308773270957018539259723160610289581970239828620722084773216685866394396467709163643320653819849939270524627852168891006734395314476073766545671073528586431306146423122378301530803040463898445357644892364663829486108200901631867898166084270642745281549837946695779825975596534049870023849065184334137628620059941219701121819672295691503531746834029926829683360983885127781787302961713783658388001417563193582607764076744757338337608128601916113224535429547266732306658006733739525878733644962964722197369807277808348376780084964659143289150569796536278243041364120981875974699336316893500378327196470456258091505012632831510181437276023252168967708892785633194498961933330160705852603105263662506078187293956796130506664988762996568515942242496188728206000615319399005392763458183893657950820350647168629038314134894036943239473642676974276721790629618258094317713956087240742861070980363148092942309341999872423691610787209904059097920295433587181160116323846430766819970719889872880833783609754519391531063322463716458920866516233123197604814010769513121320256524102302469299337029688242830066739792060789162164576572930210302564359189897111632477817395498223960769471492275558046639186265564769531395431012422809433198299253008318744454556731233987609515434593946281838579838338532876566358279750262755864558510362745284831488993931080431010523540761437142503629779893535534825479209988540184981761067681754990637282913641173560151941244059913655814602871426986876877065336508406550880654370823202489273015591977662111933415268026020664660415038642040614805272064460450717659309026937806557152330320328402239130141481563574160511205056920562128402233130741308870642516860347064497051600081171924665133702412174193474528895458946259359221786964234295347158710512677609472066291346142521397042368198324497054267964693304765584326799933940447103901596619696028530975470258400959695358725400810756292605236689154344015454781116321731461967897003267182768579810560820279283741552789481739033286778519920166734309048633989260675000633594736176007831644010273858224163205513823375813593221215827596465337334940627367068950790065440946569637721816363707170177459676430277204979004979770224345497666374594156676906140642091248529260090570082280688076268917505648024139166514378372971046665199725660860519413305597485054417995843038966576443855514859634409491497213965394846898227756341101607734295256106566681432732210733219515824035656585867950817457158476075543316556420192731335494965416952287325042492833626280314743031098739454412675136616058724341941881494383402455540185048058199668547599005007232088191017261390133214977179755372214791389599725182082569362936662429863630720795817612796305242397513469411304780144550400671918632699089557395192839420069779361090537378413050107592060478397903922549848021958198922815937426387871153378220450543672965093528953840340459769351464688593604979884933862861632049827523218606324707276956766852339840540835668101365059951196747382350418133873304190398623855362819187167935588585966727170723308217906450655218002602925648708679606746853390166071866998370882360580370198611117807242598416927601103695562855078128654631148850821308908524355456859034624250621781687277768187989357787086523412491396188450337664817658609320363543096113419543106769290004808622583842842047766469438655565880504355502486712091770540803499988448407951546527716603795341056560971409053275170036911027883060220533421165798930730828250018516387039656733172321493310441724514672402245090915285083186761996229501287225800072407413313919024890547806500219919130335935752800806929807920650226365160262465917325825651958976115019739621919510155782462537921829163991840106612027630389482199118449762874138951735696954928505444907316374946769477779859811591708665948711320249765500089985870783642234085263699619977908933933793268441412768998479406230407469285050186614783691528730353051225025807032619915191526025403083032508256001599740610839140463963310930785741646821346758081818939769742822781956868392231000242710023828371726180762246686772700808969952999127961549193326925206729990523532015241150391759360277579538115207718126870274893728719875790203138350318292271753708041273959658629106617719669843847972082012729971711212113441725170388555124986366319376676742399395858188077640571643867058681751621363183283584681031971197745927509535780588574922152357184797401622523823436564422866052445887549450106752484815863850727354027047878108998547994647260061747263433046364248862373502063118644732331371251895767870077323328713559678514600958864051535110660507372002853310305582747603144540443551709476984877175436877332795269902858832440087459781118693750641257392791096607215046124779522537350597803108106297829467104103179058857832694393552835317322230376603803752648020610643678729636769408072937527779097884585377995311550476623990065186086591158087911472366605145822748175995302447207898498262624744683482280304483936834240193063218396186446163881870073230926615122421581486709609446466874615438495423793032616725984948166144635950651635348011640625816861855669712935438694702136534401324348053860154880870905116560499514002377268733347801973081130281104803681661027000227120864915942818489628039307626286385028073124521826633439873066355392807441567862804792927667261721170636795805615616373858048114242151254591477989780637062031893003026663468344966456610405877461678622274352907547137842909146947002636589878894929445209999142496512316621426958347986027924460515436299393991344378937892048775914111460708128082035493324723888839461017118573809034841663053487879893331496055967066527174274656165259741713922231164987791948746339445418886571274924858968985796412175010273521813206963073460940258731091402292628700790651234226633596255115215604212533987619127581404908806246209362877567628121159673226117750349003827452390448867045703269666710211156377069404489813943346000164217056017750748661635991308229861825627569252983236718046373100943231999141140222684965395355153177223606734812099133105314135445215727342591027277715672973223984349084544591172539433682559294565168584471769675561177454463314558591614035696052485760720853896644021108627229001167866201516137836412066869046560677404570682013950669440118958827421036855269524912563424542670362084642326002086262819075353655362400370694081420162002318861027777876878506290896436027404233577528634902180207314846319343360745681297177761912802583451536632802815207834295990755712848326792975144444601110475708338131803995432123018268992116275187514061016538651997689144803646211797011694144712643487856920867441394274230253351731296857784916747656430864274324505461402412306807462006422270024033057664187511872603979114854899512657268640990231535937987205556749624724193421693738735788815602966026401210142481719168656211203782782899465519007642379589052667512929283541487026896711243958252096647801221220874503082267276670924250111627952088506668863350588069682374079135567645594197493076923380702696799759815525631711480852814513906193424631861782346359540927256586455887897336661444463227978696487178164732888333502912666026523044516821464959102773156294170102126901724405505424681289323428048070617485417391050695343562099474042827370176376560467947426144731027087063406530199265736370209812378979688023428771206091101052112379335048787902132244415606093395031557502675337437185560148353291328069857670447688730948812937324879368186622179298636194592944714450817499082449925512415216163864369327165598408272107742762201887267630733885389907569597983020246986416978468482562513829960159450169309857255794182412490610855342679088131496524990730139978742781026831153885158779169587870798146473562984527736873539693837362381300486077306092384183139696293615967206037283124671695444211375163837123815812337828489715325146452429011302453073049621903825748530492308108558871008722700226817234381534598520580906062368469200741081471992339629950936138000484076654113871337523151867713484334141021892569102341989981089579949029051783143397174548490655754680239375849117355018230316622458281540372545613303949537865556884952265880195940290983588948937295963898237240031039043297308537935696834687785585963247747446509690565620879580136871561423786412548031923683131111704963743147170700940396898263757661699213071353026861891221652658042841907490872091167384891688622801466726054740441245763440179699027653260879898934038235989533205158095657698692516163508712147933550478121703059444933559925283476244400658407005008107354528611241529585557865322206311604683573514796251366533691116171147693963924237535832616568350551354444321388397725554119247828031204411258528231039901319667947556129082964091516355233944232779513582258892953763846332308056034473249641865389474726059167927917300146853825024345177537095731110964475468511568310617842114633068744500365949994544984506814417550457543169594071853506952183338501509060401617656037506810127439120637280904015930918867834188448779542004631113093075722381907353366251381841899511844272812042437130679843955071795591446990982924216558528453946162914185118512582542043029972257699680142368103489872041638050709808944632078938117578415534940115212012138445478272546813851091201219634665191951539142142766849772689894221339255120502825921769017702231748480353820600577637213895988101463951758864994984210868753340103118411608374003051304171568926353516248766759307359306839132872277446279985094699177926165590273140964141358709574979804084478137405240072478893833857264149064934403335525878912876637687144220380396398135782311905487003689334161036166781936576120137224446297652533979651960616279169315917302284891556701256398139494929367965826574790608738828632466686359025880677161629471578494284393681740256066022669144691503402680783147326075874974296111524364406768506636612085969062809426515181565233308933344258664572215578793397811777591279472046265355859101874839144260851774013057450819624664645287116802178690005395540748337058938773382088844402316003789616935145491766813745684450575516516372835626029538712773305285671016492164367441481662161888881206406977850641163985590718877201784924641313042078427956248598369754952040960941870681544636563960371183613490250997421277698029251345983321499065706420589417035217882097899876443740079732580032555935332838711647777354588355525666276330848705345963538153316232217327452839881972825549840462324358464764719651334524431915052751517305992085005569883013984934713120716966706172884965868254178122273919535424734333589980696085939623164687649842680947835613553454620508961554854558747109477741084405103507268068073478357619567703944656691190358597746100380430278232198363303905516131680772002348316215495572415264057825733153426021914031528579892742312245446154357928097954238504233365598540233983777245260095306722934137883386219422911333580200778150959508000152315146430381392509939711711208590551662554266651701137718750440641803373383485183408536339872588848678118263734600011889995863951235797401382680372596429048100393022935771604768201075832178917083407162569185284408038895153396497439298092445464134698095138996735825837706076930251950473556705382132525159283660387625117015357964136809939075106841161115087916374917939327186239035142539528711751534103989101434234573778041697903632627436672139796794074300758952409934249071851187309115525412371111907152244673099434191830367541419775199020203112118486746852934823826396610620088054380358476680891760194081530254333102154873446822477878517693916415649987150950195746143139814032165235444348801903250911427561756234221077646077139138179615530666279953553551375868664582162198497134648447743232609198054999103863103239096305331556386515441583297764039797809036351888809655627502912690086474720481271843408691598071358842832036952953212467015203098231373974435975836756339800166201027002220798187574827684473984989359681261049251188436092299321945918573541728899551680378855373550168631826736656872787840061827087948808485487099465395322045605974176238712729648233549523014833628571396809762515044417737050338367446889840304690716820377419301976563080875971007778115942600087247412735505347720252240864295686400970761169025346461689959514989049151278835578013024893281398163686011613622995573940044495362337728852516556393139777969595381373370739589967864832121287754957620585948930042152650923324934985695986699040882430845948320228030785278434188348284537922019382791689918775575637225153107660861627794282357911240493498809963030631521846843992628776996339819041961405557518620045274801915110779106591236950827253706721167375417355897410813529584145696945051431089517366288197497378351242189346975706365654801539823108009779789420225952155579794784413835733801799809787493939564465875966844888264104891399407981474615084365350926570296416697619547381680400024561443979564189286041595736818461582607131599037189805910722784720482646625464376757206124843559560094587443861529520644643182812875565017722630039341761900628932228754696092568453863052499406234569614343953598502492344436857286507184262222635162044830128978428139741114892575413789331489935663463816231919577077258527104957673447049275832629877597220361672660698426674014850831980996385279814637033678318728282430029184168259790217602262396453733319578662055969087098171162218211418543400629918997273426283514741045149322206199776466848779761558553283390405270724321712683177578522529750214929862417452954143800978377043286696267282969615790483506019769577573671719621899619113644034801862985047684054567101386823477173909069654681256734022378977726647087293941198251398060713792138669115183106611319405636706898713441369798273616697544405786130367016098200096169381052630448549202241909055324741550845974860250671038463449336721141322222052654051428038452440826739772603208263990692854062495679949915587880257813953223112124614805302165185552454939251164943557717585697856856185532528684457499575717587959351138588970607683248048804804903553184196076638946685016413620579330568777211780064452875592184729969977331470887185915452557745707297061184100573339319169793612451321066871156301441289226221171883707204658728285054458187647973856600416334150370244321817899753834990439631244046971240634054900564605486890011624793485594920386436697909702990982423206994260613103852899185405527601779268614195487053378802762042943176076163114860623501364695723788892726748141163014619674262747075982595861779410353805246854103567375317066112362373149654441935707000693960306025200334292863661516354414679545589774408564035069247897131375765839612812495700130593683870231430642919849282864251065141190222022431206414841756793657459241489736156008877469285896503567836593573520547010667550304637844531466237983997788970816318707047925509404077546241193373906921431388070895307128228029013124980136259829525897695650025456945516597277945754012273610392436630109011945061394323077159649654337517351542974214200902396274783651823481271587067562798938482388874737683222787721072447393491565255572920740948117224859360158495469748359651039004423265249112343972781699442944604428887351762446152837084566746376561891458657338434960370685367376808984539635100855067482954641422592313148248902015890616754314456374343628613560082711161224194632817258742212409709825497474451129551057604570701395632066487463061885548292544395574781181414606775232865423186937319380063324931483153722590795695311467358915932735187687820114071625788131305219230372783446626741059783606602850088834705007386657334854743986534155082543543745707572596659793212646250287352099306968104103459781864284936677971411302184329959928838493804648825411996400813680908882797459066786442442883665548813698393197847723209356004096285679021798711174042999081211395871831807881197527153267305999425004516763117189802658180470018297724572077383840065780390207039591160388585621634629414841679593000709771975439599793230958433384068440189341662393001619762456431773158018449681094691960260512717446600551704535734583433879111809135106678225416764765230490117946415774342646991945779224054401389203414568932018072265030488216679166879712071309231559818853751680071420304200840655187310422638411091731859264721898453627983865895293139655885920972339303482933599277678495590987094475802181405711382450653563155332832551868936209314475325668373490202163654096559293259170837843778781947842653703253376195848356074500886092710599313063655776295412373375351824087003335512653045693131149222963130608035501079349429060150000703762690911656978103523833615679291608376436651205974618717700954603849311704841101432026985900534879161324287629565085584916113898444650724070232854827809561889640830711609728030293463971667402766183463863122600019598748482204050564225638639002986111819995370022460348166421383016108856771504786661940992592117058159366275588623879625996124083498039069459455986111428700729893040649367530939316066735626936197863356624181247048889481799786128618188491198895099653922645668525120406457066764773601894549722383508203599016794228173106697863653904537835933058759909135179308143796932343186048740260744889951768913187700556137143298082120945772405969564758103850808149069121149741804026753023900011536507709354965871640120042388002267198521552071909974461376916910873871245387478031087959751024997341031266506276827688392366509690628192753239519832368385892083923395445061059173875564360941839103910541030217963586118620666346902375112653229064454398082203657043174933595710866490824893267652068176145683536199405571459575845579352119034407604471856473730953010276980013991211599056066912382851213248201074178803933621504272683517480347951112955625360898822393855589121965869382453303037505006169695308253511838628160758303559020520146871117289161199679772932613278852754304296897398964916439800549804617277060637036235285371905366761318683038597978804091228225530939560272151373442160748397631861832788266164919441252202047078530211648731663228684571687350364175650900974490844988984178843534812741268878209274891981958712498237990639242219853200047336330848340993491775450849962376092466562442650790479074963981008346406346423517464261584087727208566530967849221385221103184149854461596653312380586075131533865845572959870767407965968447072376010802416754172347309656316153853237473955135913390252827510301838183540851576611213658435629635371881400450054614234076044659142276314856302455858988404849656593431500324114264699162073146632099710251805083338888364536488588479197366663501043293467444047303458701123396634343222427527077432887308924872148051307173717546182864373986212939019830177205643924535094248800467162592223433842282591908500279433745208989121738693380863428409592218418715457267067585382836946290111398436184991189772520820701513274504799354754651611108041487305832832626795741093108575536852858258233644358989081042545304618705427576010336030713258845313869813074388310833794974534511901453104887090027799006178587953888919607236454885892075657928145414641071813595413629488806877055263690172203240192191421819403508052841610686584045332252372617684773183456028475651436664780885303589064153834564575722587723859622334987521929673762839375446849027957744170526770716723016186201233688844272951874758379109236210860792014627533899648117901432609069357180938785625153816213469185141603062960248310403301611968557884518001079377451464606158630560685712120722151920166457174397572934033178335983815652395362566005619759481517220040826147674512833357043416273406041809552603266046288970518489388200013342242594050090986273447658611133866333204112023766412572078468958919183600195287176480098119251528183012945053145391049313953811648948329327912132715485834219988456528695144919303744282622826017134247183130328600748478488516977079487187532180312875239675397862213553364184035470155105985517012034890558525639352151186640217932072775336362011733002650070683659069069682638840725531936800728330776093273953478672359603981980909167243601372879961004208732484045404981293754120182601435269677237003705351146777177130216361435821292417099745058408526037748631265594134554843401149653160677852418714891582253291551396494278638999558297523556908920127355866684715521470689671734306780380410698797193955908866365752496166007196662358066751964868405535331241686154983580888285826074749513660002895289404608779997091369811977325444755962170600132507958070595717082312767043767557553421777933066837693760883827035951719487377350619714639059499083971882159505101853390199717152434795056271513313686476827708520591150700299421419179358762968531022407918312696088449914513110105786918580663216106717394950974685509075259752474358709487856452600271104029537513602499883482269521582900802036877765144208643533731615881981346383228218318142680281546310492808655131182317599828066075942199804338448975067614437376203973534367530655610870017579587322976205315424174382898604439184969367855231373135463974292801506983712334079131636825487313814546527415057932937211880588383132075429949731766874392266260189534422211880554929161393728747449462642338405283475592821143521311348948400752514264654622625310123727208471051224050105881343095988018520759492760135001944537237194099499537282828139761155539558554328741225521129733242308564441699146543489608977609392951336617225337072921316828278831710416936741302552455810437822247329056911313848836419171284913046656119385161935040585986490615291569147514803331412812773337626616824589439009640712090151459780620444846295958092459750512658585911754529895627461680098970009807639934614705091335466602047816038760443517367854249577966264376497111363513223364022588069981958858095599015164880636809692986846106705656457844512522420256549139629275418172144292235833144936630722198064971423700329705894857505006935439221925842439310416828408920414812836491659858296200972955181136732693812242817652312328477442147483483880295139426979012598878509707854366073401142699458618010493854916835509664305441919442595136024689167504802534474253710406774870269899607505446226202654483813722766524252120008746598077959214189415947579364094054436798418053705377996498260543984612350266895695550209613593217518996115398980103280620959294244218630022733532923581437622638346002393553073567033824401411988969086254990549263402592692778265609210895610696667211467382937648482433285847803102965147481389424977119256422337404412736667892314149026173044570681810044194928799016403456824734368731520701588497295752777455692409900325020925966906829633789058020085332438760180467870927219266247598233766166511200067389503032372454197171127961634022993530911997329416015644786705480701938486095905942667014794667956513437184380466773867492809411388180285440638204723720509746211404433068706324772570668652445844833368090584687536059336339141824372778028822727892719759286637947879462387904388264667065258677926016584228485615871937846647453142703826999148272139402832236435671714166808286986455233453468371272148032200745594511415175774991380938893150802796812817318973851208174092250520078619102886197570477361766527151167046755682758336005991586905118689304247716620649541144484073628531592950942215510955171101754471587326523338155038511286204617157310282581808080676704453296088955088975815368784569179715148357537842606169996804467290165926432089258667707051329553319624063379920711124782195510677848761016329248442107079192924137661004302802880701025179789192299742175156314868194357897061052706376857939932157808787711260527366744969076281343804119850275830280488102808389133956201806768807602877826275635484770173095690226910723908922858383096657585258529515514471141950983504037866870669062124237838165172726756350272363923126331667602665001001562554952666489723159806077003370461731967817404035200157494204795193543613255717868795356192305880312090436935541433909841468937991172308041880688836853560619754132904006074353861953754622759408799590439851193167528243221807995341304682661813081897512163579734066559664315258434362315424410884097500082779650711217838607850512427419176100140376534367266317332027370676753125308464983773946715448802443585633528692550806888853405172818659791737839053003946899672094850813214833629376542841658151074000155557291183921641689814468839852985655047948308062908410743488023903757897920025429579781878906898846840030055987296276833931384673520060817654187358754085872467946750607762885192573199317918970825783397139700874652367756019463989621929294289135667106532590518170325167228406938025036782153207882201694982735966045982554962726322795109911672807412635187230163818915505268774207984233517535439533378305489283264318510122444960396111267820852811202731858519956186499526251325467955132228892146878525627132745487393879181485563078585727699766590832525172111662059663492099678483499887766034091813398701007721525612928683682680000714958566498960957747132704537671880483363110185426415480380238191884684275713993486765927116164749147311999908775667730802806731002990403403800605524950271295787273728030451004643184073026424500573405688596751708343548971454180177332388712216053892390822412540853928069230407729026801340134400796699667193861161859093197014722214197296284630396611983101664656047850284872954882129639443328578078091155111401282198819562765851496044391281517802288619535588563459295203584352016284240283976924135849066041078183687236115944496767642480926431152036177545896904647008580957754020644340026898693817131772948646009689925736364904372012096712106522190311459784786775241909729572210053391419299832064109097884740893942313599519747549960256987750412342600771219844405953271353031260683328865976725205964880574708514007947535260890352564020790317257213494959660185089429244775819197753622248364932558658496967680572811829789360800063456498172886910077191209907936850424387988393356746408154949126047647556983622666328020444131702614866885238427887392860794525415859378024256519089892174730041350726763403444825223509293425917190548741336073897960039425793427500161423322028547219559873919222644059772759432896977275037414804404205242097168307018394457056955689574999874831074397886745649638774190798088199507713749860391429713788975258222902792229480474795341061865291988872901351565426129242739654323457539702855364769128424126907691454823073393005169287425793510128568844207679534169937492379027673181105403228637207232308944953660637360053478469998763201896529147748671576532054986658509689316326002953495157541969919329431817646504962333255015787141530709968295111459253939835400888238935597764541924178860123112584884352094693065349468584357519942487463827467165188603033902326055085678492341489758258212488553511639681506884931441917146118493815912053973504994150807094544108168318621539882789906197724555080908993475980998731690909480781972025529197001932976885316503350941062197878432608541642717709597479565882634343544399282421097982231482539894486119202479088720012233221254285305379829212012957618893051678568776006640433102434052483837975626979537628018831508353546720733682759804095410567477356099204134217847330760670870967337915749191714126736087598894107829955938997567238967735413712668523479889587677339416995953619277633506154716361943297183770965738510663459171306529515689585617115705865189069130869713039212112205513697001726395949334184230999961415924981616704834272132218340278344364920516641567709713866336375239678516582843421339418759036114604748171806205660117342581387095172870456811229883024011700943748178529630146009950988509777737234033932609511203756548697283677379601511177091989669760838714565898978185519884093909619502861348954923132762093299150654881532730025389282004704413084783786408897200878703955323743140632466424337315717096339621109355433421578762776243757806676567607313795071679094956672118609246198449616845645830018468165018005333577851786711133128938030873855174468655871405350206056303906412343764692100475851302797515068566596914774095107794504354218631513380730498412569914840102176442736918177889089959129201772982981750336366160096831113642453086559427845077711142755133911017458066979036199796027163851852529881783890662358321893853133672975931565354408854712804513300968544180004540213421606748987429787757040873563922560696948611930728186024393775690452634073961847431591980754122568246746306298085217677494386006539939694603057234483710977569447887357367425540202157845570866101285629468346772645531428446737256151275281394215432484827277888740216159747960906120349868430444317565371585302768457519041647067474394165020829379739792875618543749961728445455909019899567913292885959276307181883588368536997240996273053183602376383966193566862056536248649719762951692250323514633359207467590259919821788404184129635865929647033503324571448539807204899959446782475898043514364149258786306416490148153662286152187990355197153933566210451436332826714901939785462000386783167200101855410369781337950274778193570086160425629298498505666398135582461888323746485126412008810906324315584441419818326903792942731562538638596914008735050326535723542963039956286870580379849950160836824929409987535403269629390520004913441177418647819614187273365612379838574820763190782811049963603124078894831286612395449702614687544796099424549104722741784531188427951817394275573241505981574209774824641694474408239289413596381653678168768714406825649022199219122237888140582931275680745078877951501418607185826811684972015711375252374914277258589043431976491829557218549123404790695183472506405853156538273575709415046461343594091631408843050407526703169978505649329657936314288316825671861287672030756558411464482712493424218009005749022331038959578274919663764025611469022640911739014416663999221625734219324297360770497793629187085976607568613364696189800130786495114390242031068175407815347694638298409500981687704041322973553793217441018477025792460547518904239388069434741915149058270097115113551565124969936849367448932078324604986210852628105006661600943102487355423148575972641952710997463322193254008710166087935068373195998910422583128222662055082585947444160731378744764595008526967511250974370636857904515409529757680592800974163212481352420086508709918880624793369179406870688481229349788192770899528758272993052209666187781219208795345553888868977064364560668344522863807374142710539649148936205799763612997577206169186142520241197724821848183054917487230342665110463668259798511997146217347384441238644415423122249976022493614724169183702952971671408520995255735284179411767534011629683714816809774105414821444581886327546011374089648509342781183704046121646900370742653673403297313650245607289931503643924523916943442578372664459119115957726442937334498838538333865979896650460817272350471419782140047209858082573948054511067794861961608044466212124691687217224900046517162582619939433179741935108668757362706413808103627806518218454158473674694415531931248330885923753493604212604695367409363113606121213593790813217113476217156590086086725440434961218353939597178164647280786600458982889896937894402122953674059754598682234631966120668666126108973786130907600574799414055562763032278504705857402061782173852680149929198218770482357575554488505662584008147827036876237434426427120373507432105860566639505990329152209704723780955095866708590277132509121292613679138986076890857904206625001159766295461270720109783838138413902678953799711917186376331856808075843035805176835007418221243801291080756304019632759467126409790541950296943965051059665470773679793672267941087353327354563719187023944108601677510903125841764378212125513378871812452760679034024793483040649557228211664861052961610519697178855958388380727593162898985552197817659076675066578015772907970229729427108156730131322339687130164615034212205645032300738086909423814176248319904437158022747071045734008102499432052611695976466515254512165727171582416831404619282205174030944075717898657711813576765499786099219490554745760063105887878707882643542685783410294259060945377351294408496133945313221037810381364948188109956860119495571385643586620489309183911217795308501526153583150066715273846426465655712466490628224697245029763880294281039203291956198930435936233853665717161059375315785639816249183157845597383207349240364566861297951757287875033491885138788226793481968911247333967933890265765329942070150999954199175966896563186606326139861049546302979979811883643292864606935204623844551022784174746527626545451441785258050351412450782070902211981213823482098948654317495139010486534687740264798242781487793085394912523977315449407913462580083095927315652713454357653864363165250408196014641531169215012152802433853005862141522961141857604896050038515824950882078090787358174384529220882872514350112660535056934178228509274025850207631497140048831283090423825628758285045053885653174694930202036028935224633060107131087064975818524032056100296787398568874090737160398777067489624595747033242701417337426608914846336033283705368235114648290587460959767072574679068986455921768397403742575910969705979601193608603202718295166114863210630647777560005825493059687845778689050803649470530219458164721914939720357177787715825261783026602361884794693593225874840755797491638430640286434389623039136943354159736611096346267818456013766270797058589296283352137067966855288576689375999802514423145217991329760691105304436157905259976732148459879788228227241186578143976207713804706882515255629816475052879072615729768599217996173127133206420921774155284487419995160329539880910171490793712755969155404515419189727907377758721177063724499754645667395436888609584785326462517613380668859142361526357229920003543634131414456984003209788399346582666470268992689468068682231646335282692299676852589199867996214909623222213500848190808756885528870214805707422053471828638142092859897226640017492111101335162338988604921518480820695023533505022831772174465479932713240433351635711242642084002269076738634065013459887465341279406600410509966070421690681569992100497445702389956259656323567574647035849594820473619032160118762177972117716348150648359341632688501286912178088110574061333640090721600024040457718092820517447532779353385320266221437546624372494246455765124089105331064512497874400067132582609132532404548346842528175588603139032039192172881765902509573453108026686464424934796351650781777395229180341276325058368556318395747375526551879493621835959018442299282493830444474639932826862964440902524548477439594869044957623805189536798788065871623787274922773771254599986767266204857351413093618715455590272422864281323930783952480132454454947001396635592048053099361766539319030797452521404718186562717523199807022231482048499653030289353457627954540619903262713998101089369334335562271427457229818458999638488775753142897345399883948183829381389118075153780090579551091712802390173507487035362023653390037597082533471073482103433957310003520147698128021060515207503519136818654520408525779432518971277288803282412772849814369653146022660008246546756205663926632558644823024428467103034138570868948987299084357246947123418658109667577214656274933526724116040169330902367385309206776153738675874624451782663412797389413447044982119383064896227207175940273654717235827644029529101532309465002312992035282352133805379699361760763793162875399491259447110070279766502306948658779822413852471808753523625216847833977189578006490293029627846907754737298096915313842642622249511331887398059644310262159463411480937672162864582888863741737159691733180266868647064893422247634434109860299629858355446244124859197178517844558310011846860643542988989575256625156934275978061717138294357269172851709667124526847368230921682301812207809512773013226045600940322588077735910453174040427749233400462974292661007177071908506122969981386139419276663971849867933149593260540969982244330757215799235056171384961958679988682130307072778033482214477467835224236526061848350468352424989048494281857187772443964768857853023836873748031852195324324011984207370789643911835567567774936660015139731216682987539085127172151306745468648278762613194502559497657581267252764721473726657068689193548582527274072868681055777356781343763551080773595212445462550699248635972562819024348401836565644298437381131580543650253695620649622171745214368865677405527994287514792803821412538798846693598632480336328048549880597470955760515971499355787284728188106884220391732481189875275991278917420237880224844368034699836891712441847320381250416683037008470374355705675420397015150909740522881700684192686039494700569819032628865831575633027301960959735800571110389567205180812027583596391030918961591467110940801189614548955717030907996980141333794640006150961071386445038095431554310670089712562893298130581943326120682105691890957981432787157487870014723448389679299182073437539038015456978401675923167894123939915371013285433459266798519627881484823503364320695380047350252196851395829195969339415093112986958615797370462257061963438516505570413449410066415797900288925353491594246920853026258044443374296078325940997629833336007293299486610432759174085878890318225101032773370500723721564597345091451000132084699509451799142272798778376343993387137446964886171697423976918297645325609583056511663115321379469379332396812755515521475560585112318511821204582306221475818100783285612893575718001581849247504403272342295689700226671805307628405618808756357466918849892775949410959176982518481592280847853477161424663389456045664098967192914526197895017210058119571690025884148405862820498713728757165582681189447723875131184671449568844340165994552995431158722807075262675973035352576842881419940346942305060954477037998374890882315877176679832837906583775992500786111940221111181592481120831534322810945444339633781916873077112698384531887318085006027543129988835060150051348881148104436177281555279020503635564698654938455202871328860457960258811438238411908497102686260229078102148350480347343074362528269336424096013035302441339254890387263467529900586238502555827574269238551063340033678158088122933886124204376238067060211862735107785626314683423214243386799393610609974764043554792734938409255538830340034921001409941714132890514774146437949248913049425975177222265763877767533679951211554095009207322806950041095503799334422971206768210069109112093509378513313732533377621404104047526389309703700420646447390049044973235125079750988574765849598406606446879626039001712226014694221185622825452945638907241411946692446748899933474046827944780636333609374658629584506744051739972771588172140351661680270096782284455120373549094800165881107786892441886262911795399065475923291670524453695373733701586242226255300919279791062912676457659570200894844478526514262094232624693106969097207809970753283952815159644816045560781091786837208607106314396769437491632058726352992231363677503348573104139475790232272379545005450146924539581347885561090734671250934619015735622673380851779472814853672356026190164804542296247040553830881759716923393528391404642066049292101892443324676424541875894603916864755331645862101140163222623374848521309446849728607041278695852609546515363097564760477920486182143699701531384020038906857957716310146438814857968638930107528674849090802235471903528129179715053255054685458030308299264990637902921592176419190972901115246841855893229842325796113396540521212048236610965601515509873527045735461604300299517837551499698153229618497929246198869602456955014545737883015444935543147318123053931037688754441924301999037987528647891558377385838458654573796751910354408954966979859345043504699892498990011080711525156636435027344162144310730434829715287090627364850286236145802057177063621483624805628615040008999948591395145628767033700127027487214353019445272463038993674616177731996557760549228020496160938121528635804004982942448198387197209056338578004541121910967067184731899905413714364230393632289518212557531480979614639288018857133471550359358524165146906345369251800585285034345439572803717124757735922707927913529421101246115711148404293004364281955157048214220283567360724392956389843280324091319818596588796538782136508221522202391443827182743019145187328925377191411865595142890561829567859978086889595139622939547868584420237211877446282206013980926207361934244608773704325417078872987190497721627948111152422578980904870846646721757205990291878305036011167325936275576633534905698733004306171688194264833301225025945983243570241453256559932017109578003357570021613252869883089355141739024323208200358116804038775388194164587477238619481598718153368689300761739106174612334894089135820309590699430390799867828021160905647721238267334272060040577162546986440978005394369606963508369054438223662928115139889025927126554605842623979909639491352739377788217762858936987900757979940241831298024932268197322505848868736489351269406197806596764384615817141426119168005933342055815697322905013274398503946009103031793906545740770535959074963515367597879716061869685407377099142616839346669175346168837433888147660617213318052612548770808235507087578430086651826276096656617927373184057497663118154505288790132663912136181780984256206980151817463699331952808387904212406943775680467650954469785783909284140374492009514592114097699660290858910532109260017312780088593216593062627955651886369780048290707473500343778977903875429205378531113447942909425273250080907772973902107787255363226930843764667698733328581667610670574828441635435711376757691452734911943998010907921441075281672856843914031415934728844535367042778941106964054011132864772175204546210050880816348723077095191935223709207577666488626283288407395829010561301403331764031863090455537784017180335419130191883755066896988033202950542526005139103281273073551564186090074970537997218209395086908043659757946015417533361759631542038314769016155373852144587477956506103535989255534937633790115511846079552907089728458738230370994723578242686303910755342113591620341278630844225606679318106245303150303271687171542517279878159564693316809502167244389903739386912313218017552555435737353755899532938096961952751673859108143988580838405119891536839876888809305485806035985907556186758594417835818468878110738530402093694263529001007635546789323344046922946810827688008355932750457788858692258852645139334156722314264585623728549550588257590647184187918021926618579682049451162116417238872241429922450950957499089323375260098245362627821128371592618689066672930130793684571773374209487107647376652072537457138942289434105530124152908088521055006127316439521207815220793343148869995077398009518150194969036472290936386927265086799056099411693056663296976688962216724543972202067294417344884002006717510692664388959166137344433572985902886679990602875858908840634541580741988922909837170717425874812873103103247790218570401168875762073563828987235083057039072272049971713196528764735553231270088629137610727897533409718151663393577424172549115586188684275577869587891954780055055897502390440479971000942443393389198181899214545745425462305071823254694045785319771298833223000484385177798585953797984180591557118995234270710643361968602864412236101275360209568656425854918216052964837544773325478599505465408108155715298986795107527933295061926507917671294758784874679805077672953849504862938152802887558084985426360048282137850223627412693753458106984418953937742800002921198244880579453695505087139466192410660983515270823190379028718340553601692780199416198690628633017087171368282372435650225506783678025262604789518498186374121696497785709953998621521478869179830779348802140243441219222301381368950635593562805765792478115523750673470824720645300862434630955667963348487958697840795564280415375295345165607355566186836785207927231402312647595172880833528610561794905691532228319451869653256496738898496508378908656435444141719664635706293117134036462640436956666016483326847109354136355835109720204104099983190136852239751050249982352864687119588160795595058717632926951691785323026321581793601926340750064905795120739598707808332795048151005461535585851980961158921880735601323094334872327687310004697912661631818800976857810499543303616445529602878386145611330941286953843146898283357261250879854906398353137008313338364642929114876460986597982831331161562221722567989631644969350093386496350170892167977557547948253690117568094267482950650895688241548123701691455726946888460458426985565292930149350996357861835440859982281704726983238233626228738041774031759758931336682349086627814322566202848141640904279103688600141384558324850902822438121880977749504836430205179977056805576922121247515464153720083332551705585259362783299629675008411977523662691318581488885017426749405342608223673417542431737278434401326939354263591752630506414870711081665943079605833896820079975355884916036180287623422708031744805525163073894617910944619741999214940109523118352206371106877488700889567129014038485730970827720642882509658959974387836612718544924861285619771904949611079745355803144731732025062514501616572778982506336862535103191489068936317409323998395292297131326991494570262464075477762453188100548714303140124000310703834037509110148399393609444663398313306418421344365549153425992019627259713123990315209759981993431420164930923171250163277002035944763579818757618609784598403674516719854267678030314370085069969068633777206261806174131924014128788796183997387249724367159418293379388356503079708293968187304206988442637237803587061588615262790336332357447322290655220074437566692810638151114191783035892343408470876164810372085529864609102760286234246837811312308353279021844601011704631134275530908644430141714020517988625955875487296328902429928380985559500107078266314075964864515401759884996534006458617934540058558981199223130381182655550881208195438337921960567416323739594860555152787356212237979182496437456343916187705393811350002440413002843713433998630115101531627351141413206473985657580518966050816595316556572795554891730196129133307632917338460831404210953232532844949331993481543938384618072939715810054888741713949838378029444684399503870477216134326997014082786994633637709342744295019787415712667729630385348455683591097478937662819843969458813672080819783123463951153634218366149679014763187280150983126407332027135359123173126336457815881064862370239636241542740367358946268815315328602598203614407740230853687428633880931394880923164918463686923006519816940375235936244728709599980367584159966506907987729150256560871607904694113953659027791137457760556316469213510730622303123206931776716491930601395315052907364599816368203362312311042115250911779055661087758089202695085961405747109150700693392945908698886729679890736422092495202406326129998226673599637164581162854960292707946599207225486662410842695044399257546712606803010788600275520660179390511880114071025833126576780412304001569637292694242400620417567925096584703418754784956905726907797122860809700091521593079280467201872030259752769647535372169176607131013137407891721581059942777075768372429611145411902011058276022883193395722100469462697332953808633773099472441119094063359704416081928864739042859522397839736771715873245084098604888627263577737835619834836121518823768037426586959467074244046745418568226860179606111911265086944359769771056815451713540473956188202628309687143781736283539228250762704797317875699182243266569819843847741978549843524031129850352348423978166975262849068032874194258038194060456529297569224707319437425675037367965431336417428480998295491711923855432021702261626132174904344343541391788144762674358825871963429489305252693269958554836584559918425975392187352699545318195057113398452789267809204304242648899734875339036403341259200913283780323538810859575757755608419209728225076018516741062337828543140351091098102395800722974988680685174986309925776531976980893094320708938268008090935873759232472383421822811433693960393609759884775910246564721976200160322176764291532881536731033102034388529662435052133716739824372283686777787239458276951749758161045870199092733574770510032498644355975099267650956085207137552064834676940157047628083044870673417753249284375887555504699488665890354736111196661577924895498183168966084575164168660654612281147823070848202559564566170566804800167307412210369008118986116498392142758709477554736831928856424041364602446604867471965677525568218688807579103890442973472162706861864373924209096118366426247197402866758858103609104272862683142385980582724292678134495848088332870140614988093191515263109252458343860006981458334207215146520761250523463074201214570873839299625127999045567722201086554963431097708001729168260572817974998320622438194314615061250655770322410137569918317922721384957932962094474538950400495494275600579496061165305294247413138443265111620025159403453279369360756124447978084164577730489567241638734313123754754469293008740948858722470184874037286991626456991483601873641518761490170847342986651217386341476943392079707007192393033575395407767065811857071593265386589032805315895476364892225259028330514584420814087325438580865973378886867221261048652401904021090484928028110440958357731966239162554529207966743585984971278066780865656097434214623097785800445330414738978217751524578605599629610483580273072869250135538921600280990064365412198568917314039125396688908843321835923824389080604185761688930189513845641252300926104576983743099059700620512577239351226059207693141166607035574323904139052345940383754343175206010744069627000932335175750884299704283443028660431929838960185436313129315583596279435894133761617942485712657590243312382793405421726917001357828411905421025895591305005975594492586392496782857498360420646205326562585321991444927693586742992334262064192100968734660688961236453264084117760777282891572721677955357797216021101530761886845338310879273664354870868487290119937252117050332118928197741062703237728883239266138562848728291556786910992035123086089909973464019712286842759574702599788274799880497298946733292490959607223783277966735760168650218150834953907251529852348131553180918171083172207596968885927431895890200705655197981611493912761511114938010395937298047046040270098725874036628352334230670833189598049709415774557740986165741873076201770199287479770999889344725682973539369835428828693903222811764685220973629517085907874498841419940632168096616070810893329412110386417080951435339974094979071125704526653119112961291482295518378127180959425034800549426821662199651734672225072002934336006345255214532756483025379810095968908270630255880178498424849286764547602360663451341554082300768974035546052247504976710685769968003988200086869605779648015421622115325064544825968186047986056339852841467109745559953212422010093355916939623300743452060716150355253599644258424873868322179972695310538441339172153710168357830448489536768096316726311047112888515869460090952430107245390532145380569194952985685663845312320384005544361971809757219302071555757499196447102485272463017777148525558068813516355165665241571120681480348228757942803424322878960304396038404740260610733967672970794007866431531703002172710090109002471918831379218685174497923240804126062285750834126078915751448623738053301279260310318177600220199418626300986009421395653872327699614429053282015002310347978333273142018571498755297123730761562558510642692226522496354705491906114411457906435900883993185253312698950217652031393195615025610332692072848430325570901886941395014774422217012428162845544531290144192062444587117571202223879408525333876309412092277196375382148996353634681727655009855672264513948216576365270184123534384863383793021261158745807999705738990090871066453512416721181425458982079600187838041717200612777626409790881482417988126955708184670077647511643275738378459644393393048813956889369169756820500799892339864630986186188023291880321294005589570479575146409990429439312911782224229700865354814119242471172399877025707688965579358210971752955890981580513696506848117303923236735478088739721798567566105488775978998996465095456711305188943740420107022823703286505011949425225247016833242638352771098731773313476163657199305734599996487536776917820453712276570524729980544471931351061444158063712222789456431313918703553068948402210412810233640967210615733682116972175662134179381039905316477676398517754586070786146865092545951152882040318504467119571619369334770473589702517073348461349492568119823842987401680738419150428928616374606887692074729553721204164926302189162636857003744267212011415431340519134363015877963236690191021815623434421112643059051850553823440581958934055839046376856177584595942060509563222771448247494173351873092073328441882502086642737673844576399461997821814086275620844337151464361577769449158868772074597562422571160941910168295723048067855340697629860340827648059555035364344254844842213717529468964064076445307844382705997914004879760651941863195559767189344958902685383882941722017897660288321186078044459895501788087526217964226992111121711785715316365628980977846667424504676536899146147878237745567239641898461806796941067430993730385118659627729364882086282874814426552828290422839811796425060074125326358595589900014143009271423649086019389026703209130728250429937194402226596048384310270649280848133491938486318035695984941050278566810701572906866674724016013842291293514916416653688356277922668883025212253719525925758873471844418583308384713347341258065644617745023208028436599633471390092361980675148824952634183044695768728107808829982671200228217751049596361114140583544159053017992116164647035447053832615358885827121865598372470603746259380367867256981882113710682420678465418850432202103935661781977243555361184955099025301944983324439022639470869048587083068038403309357709344364239675993319743264514709063694314072321673704542643778476886218069890756063223956081937816032433149962121418349999911010997946070051148517131528454773729232009563175707691222252271414502440422582103311905813274824610039543480743873614845805889106279204059726762689936394115598508541983212775785784912855872668341323722157399121918375942880840378816210311115495756448477409660503914741529840395104427774650185112904974891592865614355651684180679959133447790648627654832453708308157275160599301554790492355443806055295016991854345611095119352306032812998217082964672056352790557347794659289432594638407260913610482711325003268954555452982814096993344400783279270510468610033712573583062810711409814855045274868853672472183271761049932046894273215491358992534772630122733523930968532440107910669791585972163960010795054039387252574535724065125121354823169886619280023546971068098671005262531465806914805500808088733213220571166216837983309569548814637548181115921493030062011201550256257335383639611565056752156205084084635863395813847775625925045896608058508354095206193394311646249248390954184626246701441622755432645420828221336000242193328920721269701441559571381344840095299901326286932858329119230972064854591418565597711726899373793196218789700569836201110685729110790362924733098858742311669453845025891569990912959599393797823455612998367789327634175462590084712399572157397095415579564177978776655911735405145121063744589294205870452392449450566905895782583271695501200980696240675125255055717029044714865188266235409680096106640430639325670725752065114462964732693010748412379052227165820249706667415618924436237526881432544583845021392708104132922990470703858483618130751813329929700407523638659257822957012173755412952740339594847200418519261258214296344959360466239623954033676748679500433895054874315395142307511460108490676448981243546834270962110252735455042700236758261620582408631647246161934094807972756354252906256127121974215788218107386299010646249462399660067288387640779462529616551754512570208753915870919833590694537503004695654142090131775045234217439566234906634826484221617790350134394863832427462711001759223785338290918221785470528351171141315489126594108077323188563800036484431185081642426008123650732216855977611417128752928868053730486425500340543992532124253499511702671464126243736103462606239593219259245411081599146466058233318435721191900953938581068445156422137890006881413771390439421592104084758045883038918554017929664622761104646485036064001185382279360678244683188546132656057002385172614621672150488975927156284674366641177695886890470408162576618439648343680231951809375460098184660228303269991377460177867356258534446478230405407931435895562705446805392792794699756213789407327931174485565282904812541857047079869054942254303869554159119676615108773687711425487972342479083658676556411248927588979275427324538328258825556493754175091544980471520493875667023881294720810324410863741686277780203180490533595478270544730887865357140444550733246831669032280253526314958068572318863501166108986805917906293446045630953838722577461786098102092041630532021620587287695067773100839115654534252002828851350112357512151395122967490026512489092024484392494601214208900837177097163651337138577189647766139789221481473496569362605906619576456367187359067043912575693142331310373993700826025361003235115930534669610250532186114726699549894308925470250275039279595988461245513794312668427155462890946263877911975654138782468360384189645718313018355131270860718114213727792925640426296500728057704837665915268314896670446809794562546542786403925491765862754053257485015564231743914656254931215544220748339038855362128302596299311293146794494951256268692542514086108170872539018967051354723614129062996125563532640488168431998992201601856339897879601468693523925598957302815950924728134017917636341392437848114078264360332563078084174979587827579041655922573682495336955109246198679372893883017971010487245386828040571006649827837353766178320692089357014474710534915898909972012353498091302205201014595432135432425146057241489093521998876471621459265311808799003167740494230219916101542858303054814874752172642257483188912025471879393276672184914315637127085714644142337333607923957506454850883298615120794386538772602461724510905932507031097343045764276111697874515171480066894749131382455900729330347664257881842851762219449368020846962915115235872307244163382712896533614510725273014914600310879348321918420821250578240879928362899468370693213069945578657359923206189388619359704538655040910821986581782909058957465264966142458056534907304027573257751038004131328880868966669475871461405962671940380260916540872637948031445877177594665293368724479216698739764661496646550230749250545153967048988218050422016820904669067448112820175108980402619454538917591215094618524685645014041376005144582839086433055755319558431151193997934032827881437405880993459899374595616540141117389663986271698484746417731046071914651538499392465274074735822690744259757259654466076899393532203106887746913760552157101788692721333172457138966920001889830178855183867095139229485498893990705876287014688251298417376001299664178952627785988145764723006513742462483311448672318723322961018196854793005026451790039726399511091150797484020480812830111692664907041382027868331738044923845635177124815194020888703159788541432020976064414932696433394941282216985232759841383013614227347445311921243295734330599218647510712739912103201039752052355335888118002797241622038074659734542646354776645960231314096242214731875780942190517984421420266211547676072360951824375556391090779145907614222467270127306872069753115683760113938454001813414092707217608312505666267993451451790888360220763517352630395716036112213566787637391454423109541448528119971246047133838186622374618119110177652352750092280441844710447018822127730625420589198915951919101927757850982323572916521478724462490532752800770701531839661437302105654464598184699820940532264816495216977021784417158287735454485380195890809068099299121333213356734524944229620828278939176349515632634427241528193312404271978764622599256813492492200775384709690053692938475361763876294172304396446846185167758196095244333558606308448655249383692341018638528907815086150274409936395634413931977781213266931271759998411691348705602035247938778909282211243111743170833508397256718807164720479041906249986943795859680583703570818264889855984009524811422990688431113735950837189817266675336430258246044585227393423914601664731606029568060538486010049737205193865112661591548773484601245802493013059122976357188799084114589764332276001089274127331403791056725786609432255527854026131926428473922657669893719845005715223801725374955944830729438982918103068552793871589936149636186529898388377892407861882961274314418932840973309521807262964029536382633891895763634372993512710264671731864499180289098523151150963540065182455547080570758159903241298394906316471045355336884267140974699659520129257522341869559576341722076112078117723158655390520292458900729956635150516910922505053022923169226885609402109994091450483303953489106639800603443278182764183131285811016470661937201058019675852608418985075659006477356063182398688468187736712704962108845440742562670035878421710707568135166045194708914258408700661539536111367019740582265067743634255950695726251095334559761138168118267518874574952921222764506086062405711901226539754771299710872291309456055521136725046335076307076865348851391306855461526631755313923960075602321070140159154967650548889009899862998506445126045559535830751777799245495328695837074280544796808506843182705870786952275295168160281874472982459051276286274860777978104597324418899065005912150993409461783951505882317290674157530468199490067056969358889870011649142132117434625834718858068694124259226920480725915195901858304651339803262945955659062286559382944909262551945382142035361342195884653218323415992131912586191159098122420181439873721129237326469198340363148084330806968171175502011737360707073714977689282167952519356547137185958187103208334194847901242310574176737469175464671426554349234811996942676982927110007457926376612289110474440125311493910988682490869721301048115663525969217812158535442158622170641234479895859482569304604110202110890725109948207767444898279801305812294654312510920768909761511426590894477728046865076069707757270450980656447874297588499249158835499913852027290083900792018276533785844223468791510799608678345832063015942276958168370668813962680910013876406738623282356015640108141298814539539332586687935251549179265313693920053423953761748743128362505808460930099381183073949728225539807071580857176979174980160327664208908307118134464918954833303586640596519007838855305640481875704821198598749574821154633546515196657485278499746928077489830824822018605511868541628403339630076242771768480281029671996580876717227303402194518055422231437064616985858402951450196148906537687954730422613167688311912145647664123686127939537254422988578820675175146962319368295545211850402541394741557008654174012811422612180409206679588058024107219272911027877468372926595868262980259168525815681549090017531602738901450496453997894180634019783393976611054051336647273541909048015325794545637542998878694767971325795963694802640851743306718598635979562399989818384828064976104259620087344886183990941049070638921284170069568689763284192466593185727952727651831019771879489059628754211374648278392062139097443710000978175456240950253795322125592895467788329935316694094097911228554498336621021760425805133315004154402462976550565300743068061912651755300497504987852758693842797454988893149566539101119462125864201762265337557876845412871796838743912126529063162906350790671250509102799977751145152194784719366790361746500020358587865373636515198564308683559033631661163844258150455661562364633626907452480999009516625266129342388530206515252465437597192841099736031805118796488192038823400456496209529930211452143775118683592363267092474416733504942803873842135972081847228168195886525817454974985251160454126781081277274679133514957354015805209336622190102722760617892180072125613311025268868037483011217028077483863041053740476860655596980892579738159054664954558864249687802456314695564820305987292595218654876753509643390540684597340158469284747623608400126865027624022425075414791752890179393036324962065513634169636109972165328567851526262850386663983401399493235454559186409535532140878457723238071827627215298802100627534505008299897222947972263843411027258799416161770442163564527958890683319299630760267701270912638371322641117819108082452293469485629933508728412671271523300052405727225258319986612922471350250333164990415165366861305509060641332329079841396039956888988545746425618979746512180346605947387025479369401200131371229215868486801788998371428155228009103082305094971972247914371514906257808695540480148010629983661662412111378411562049898285694227107609105504127248857789482134508986277854212337757989172649788141063284614958389239795107275826418858828227994530004925513520880318742080109875373513715768349771397045988685175526144317345113117118030413196822310000096308462576026331869385460344314115786718240997550607225180381868740537208054694383455736435353997152304819450378071668163418248885685023389049434565800783881258993956543041610043502391090145167855252942410301770777845875441356361915779031226203077925972479988359529890674484084302323093710197857059020614031321350002057537337744259863944064037907518026301531307737400249970009803249102727867577673624192731199984596518120253775027790729917403077889039212551440345388621683556812121107245696168932003929482984931858831680949214690570453037640236865944887261674992402973751054666523515671102252561708037329065293075587305568817259611914768723074828928708763393865823822077557416332251754993237194986226102557812350276512340456938941501109493558063014509699670406648933958370959007824570332825881709049313068517743856062164356247951718292804803111657896289989895280929628884542837588754688298543842049288181618925967909074016645726313036789540573400840076456132700554477769571652854876251701863725092468732598944673530606846045833190032226756158671402793887636092431228652759179552162750961604195570634621038442378774630187645685504258860333491295320399328421152496147313407154396145063749834224599777800769779322985674523454701105427825257432283146682472892033492719386110132926628413905842476859414263576300331304321076761555638990567808013224678159203867298846244971114106754365239888953345735221493222894631897598770272475630431187852894366715788220986649784071684148601623163347093133169889479126516841922670187397853440375823202520218713994664897998676220284367934442659141420044010885374243613295224163571807662325729215581322704104168796403097404745758934599273927242870687698930593758576551573363205459077110973927956693546180082031205226750712229657460214136386586393835205278218169614529088820901171958305671125106423673395027805626083818050227659322404459686791198088965729399607759938553926712542778872400321436623409109844839219570373738855653214175913607242930975445518480488486283864665027702823277577231562532005057447092089490840993179448434999555734981887873974692363618777400959729222206497145196795685635042535321492925022609071036739992009312169768327254921101352155266364094687767709504740545159332381166693303094420229117973328773874297278037791666309540594970247947386998213895124460180080317875526412324745897741095421470250918557690134826106648008170061380392854124651756748530495741924737314388945753468311134501807583498098771680241457167418581446180614364812828365206094380159861569269788163953653707294299414898300869943953448856959201019807344605944789858155935638409861929483193349551679200140076200287694239274529798210509867566222749434019726706719628554955396212337103206084834572561149873494171427480653221339134855147742845823687366400200001133418964649818922889943376221306702848857696749211775226212375277442029561926359956593441711517998777781149686706296733432213827507088781365734087361733600039802492652643855329757605312295112401607461109830983222554325823563420316393459570549116944708403669488390991857898819422421488846885586405249945058694108865394746911395897352979252981626200128264608180280827604941006659097210253677149412116882329530644312561534681015927184703757684248231562807593745928785064071184143460493922203609601045325669287357852845482945369467731855289118236993404326618359553976835079578359628979461333630604091549612101794663260634968133126556602966218702932490943567720854809934477210773603711174852547206436036195389391771210566900159799444908142208763193780740006277936063354487561604945187182270623341184793715311317581496417020338749747674834995238308497543083091064294010816608582832017174922985406164953921635939537111640699668518777330831790260804184027560518401014314265646947418077579863921682877286048647501125594079297218965200870215764027517310899122647251358485202719139631048957801352768628849120167423516153507275507358444641465430023073648948040309048571112506966819636471606518195258813362277691422512533550653844682949091874084387868324325099616142155564066786264602491736922640224701150482897155966667540868529220949499884439304166262465201016771332649780085299672854799006271624536270249081058517713408356369223903530342475652121540736791742757689734908461936581956186775690009409905526780179659018724210979727138028014031094754015922555028560240404582201813140716168626013450532069620859300559645046862555939727314869421533909504723261812939717180020199073753736644031036597316818366978356000125062880443841416536013655362239633361987656418675566835836055122811456362859085823834525581537896082860477468235914441266377251118559484637825531339695731884775150390059482721614616943459447248278079255206685093329183425981198291211856643485371090670279406118213894773865508749583716513773723964533132652165948096065078366250603023576067836181929816610640332209675715035112263734409463529413873567749533895095744340985124072559775929553676020866594054866603909354872851009138702824126927286999528091321316962736830598720921670481474116112977009361637210200471691851122337840103953982494296149574875120465877237360558853808265186481584556183422642116394835366532574527309156727182788753594200840486383458101808101994106966547558306231370506938869718319958448661729278559638910323404606124868380633398197119241084425511354221782605214378458249927267529364747286822724010119904037395760692910092815037910656477741023021525734380935934656106589411966600715083299029805477111339062717795948961537190480762626360531407464050212786152969699798709610165386217029812758872868023928121192541550245038080909566162986466952396899202521249334041047358183646402239470197499691701228225136669743560028035495943189268760752032556168360092530895842401998182589860146558754451487556536173815290218523558876134200433440569617364073609220767674718703944615668325065669218045928243528613478658763913923162028057453507836021314714090752783864385612137715521515399532980725234469731970609601765774491698901017256268139829487427841486028045470662005439562392365898019385793095755436304061213200941022905028471251171510142595475295403376364907586913195584977509157866168873938183645467660064997614523034338570974831948317315742578368742595384861540136212388675388516112344490625235143456530609115992194244388205167529477534308157445049733452197156208357566738539368115572106909823297356320240971765328650282289872052847941304278743906488908420331690324473212408005869159924567919355198376116582513361145068111630581603774469646348305850948209058092344521361837759094637646719545598616134029804675045437879685638116069762403097677438596257293532988745429669284852146370030429599808856874425031738601029723721485066786736072934598246268204079443460664499033702206181460583034159488002012543026919729937153066789261488470972426807961327925653919234135869560929758633067240965364850567077969780869992670757209250809190173581056315094989830044901618686476175993227990035075232487845200256000123882502560274720627684849583111780203758157825205868050130244579032935551516942825995571726711494063561937950936143812884964366950983956620434558494664395069400413307341998065144064139994812203929357691316928060545443284918635494459410324174698772315600315825074029824066434842468888893442537894480888298633113689953640709227973966141915604501180494419380437219613428270454880572547692968799647539104263750656956306129155830421789664718376831270444605940379452468996900217714018740164485971808037306576099144480166834363606775425209937014654318245170895121468110473137306906783388304204824302234557035131649256196036642705733031985297687756912601926538301305442111813903505631345819074056138944375909699930758769385512326212832744237270004459209652742627512652304920880953341059006711759568778485473018638710564913041318665903594643395970020775868397053902378836564477665553402098931526302160286402846765153029834415876066696929091554454611984140397038704289275488814530627928378531369044916495276520528062049447070542904669846154478678486346070450368550145734043662951258306282612349083696971293921544940654317947209105188014716790273826957943667415233396621377446103005274230825782815183811393544027682179136093844327178063238234951272944843352946409716997798466183955718011266166909833927100908686998291993484696937847522402971337723071175790352365764084099648784856986072496715253222518149246694967514882103756427346406685914530634459916153504150318171905323569170502258154753281057993814635392532364421564450767074055555693750253832949568831872671812263903910471228915964740543159375588731738838173298918461043132864244623071014051095890340757143065156992734402773733338333097509658001022327318947771204112669095598710354909795925380186270544084283607722207340873288650723324039397424055960097737824324872857482958293801531537729929250667554233433522864144799364752026353195340610809384713282853534718100941937505441886790684680588376493510926449261653201465875190160221423576953486139760614053973097579685195026446059666283785857247707112350913810874061589019025672819843731958390733640360799660338790484114369492167518049106811671518243219675824401855059285906849032690772096958234500387918654216498604143595575605981344578952476621978012728846531961175599187192541726881271729900937241657854819995756640374330414017629476186947392463789270384891336405362655779024232978832355925111554605586469943635077067134919769375399094648131169528518993613784155937048485423681440759452170774642614826838765976532827244502251982237465214075514750969694736625548602788530331988695092274234710696339698244000793426589683237136749072766257335324708753614584519532155328886399946313276235410937669121341488965464221855420293128053916290856877781554436173043450440632937306605450281188069648758364610687001886636601241437300887925562881137063317769874654119459906820574739757532088469567539527010527821267535796282298670549660573573872057017373494058108055912547282603994837643110448695046845467612247684140090125437748343287901054830719766000726957016696813431344235088504718360771974051256909297016131150105280472142157350802280403229212935613265919310125705725850350977133403167557770354400061931496487389473500616620110668950429263163696492713072355592092907870727933431561706752923784263450076108353724505876784579291536646571203084650655153645740056232292831448132469309428115990374133481847685979185803539866073198495282886089226841762013354591349774518227504605206797654935570929805864667711493124107482083667534942600161477099033791726559969337204121400762255345338654261623850351497508335349322379782394113496476732304486941477956627997422486669692682858908355507530850907253542229009303744773141576959444792508535690830621412040987911205330829414276523859060673102367749517638524025527216297833954007281054092887855663234228649341153771714984017558146979162531885972367011735430054908262147837991416778947236446905735719136089736106749512974974360123266420701855914811192666257022569345721575145487554832370324387791082185912840017024150696713355289350392407441209729478038987366039497064088008930998387515996529712519466294757889675759006652773594592119148775055583003909389255499370487145066358627730571999361480607564041890005345992249077665507418178675435906900539892825956288769660289943920145644704469623173396315563155683023601979307301738657190298682658175421018055683526354628323649900897249472105415230906114722138495781237525863771737868698208800190334454057837970469991858018308611016616129535786150031934013558573676853374377449326336196536171777203907028421835604600649331644443199619997986022195745991032026807866763483596045890596238321066056611295577902480079032304611599344070016179011239226251812955436802216650015733893262089281575630976762859364410464232478557218836756570194283273671609951163931198686183531154495216656333093976744229804760987038803874776568405253284175081203425113397856447824753177500301610525373474045893064925102997991316295497098073126598818073054665587656015336715326288759600183354137773261037537524365209311670859089056054768664941209143397711207512687636926883163030907374134126383004973751395249211182769518905738965174001792678548109038892131728419594978715854570653606640401955747619033780424639512798659809524260488708178815465553247199174202718673665873087486151585496743193329643770908357314124666059028114708198456248177735327592668806558029160005594137249798250841226032909747374495911271835979425840464594747341167090425810380359010865157508539378567901367769065174487276733666431074278441027097865930554790075017358487487443546357486955124488648285957882004703935726171419130865339593807857296877034367559269780813313399037004801407820562001096099116969533232267921724058570495002927675636258017441058277570488124950319413596224990929655163224458287678224292434041727921215802092277564806620605423224359494734678547094061233044139675619118643005931344565844139009253948602727721120328718559412033951019630367932843463468523236562805159512606075218799178525077936597205010839605608340384346667508553278409017794484670400331266912910592612845522038572624098612022435201361357821734958751433718827077257601880305148025509279808882550922802914990844273238449231768988610045431046488841653700946514117249615803121115102192917984500489105932257453964904464702473426815893464440025905298574872876375214852177693270396908204959604378093053900348521935396714774828279695432616192807484388164849572724092564702944084398053469371154305475660473607694023257538861129085430132536417354158617458682382804385082179228589598450419042626608973648229433857121541612752783271238449588941658962400657962611330077850579793829018853150781140567346937007756827485529715639758294097554741650963931890462918281704645169818169326982651104992940322401782581149722415985629183516747772268873453465979322209447599558058207022707713735790949361911464236633746445672185307407099451669801486079989363852577303016935596754421997238007484512812906452433837413601714264600380860929766861611347271521284493082400551731700977319344492729395754846693152850784138261642792622666821553649716145496493083584201205573103666521070371093961258043266911349262749401407129717977740388585705014811087814108409530107733718327118370781879682926712520912534403066994453494993537452204307487795949709959584233893049873665690650437245597196689560944364208357549882231123903208969600974313509409812791219198674467591698969235812388325096831797547836506831434068420513223768267805491386605748974928171449994517163858454357718898384259512673200731294004182964192931049103697852961699798216152540863863983423688806009373330213304329697656731328405441327421944958226423836531156955582923129441425878108558017902426285493928327235450003602605993153924594905708596750008172855713981651103128968241878460952113048848923701721812622918431023644960136671170933276877726552949567395528301311013453676515618954732589946456823864810565723909523124399141176678534205180000010857327343127077877866630166586709765489699711292683816789433933500127229904824033152755592457133655151141419274468091607086140224621357914126696334060488949500082444899101325175588149494149084100803669421032364252279419890908635844973301208993424394766011074043527550477468440746134618307097622959208512493891698261783611637709246663278244371556086179839548762696077900276984257373370244493356158057440187390482603157236526640753227637254003197018786340513256633986706748171077860799118066891595918595292104845885994315203278123040500423768991801118945044741035570953898770316809330975046435125916413053614082033549108341590908441909387441394611005970669534830096807168757412548493608127735604869229608925244255052909763835792621421270142572324581239946141193503969167237416309455377419724548586587726679904206025864049949068512217876392308440983619407217847970307308891787458099718356994317287245685470439600746554142386167417106105304886455726872106068188518237155250240861154364293430668487376435876047875021890508398578818979604682876408983859138212849700690338656470060342067237687708849114000475986182261982195717554943182168371499441039704232665510570732038762961142093046928416582459297621131982928694387216545853049314348932779950075516520599596059145328272310469407464921246208316002179334994842640812286738805743639975458530072659460981866364778709400604209756892751583507470435694883681509884232326435165877017845954448079236253275748140412898492275395819387930045350994736652410159498467371893081151662359893176099510330646643515872386813204392829789563969567837113024635431792811807729805694212917804568956474919576061438045082042807035984601906459000520902467901884284225660115919315852823802464562283152686488851375768458764490221458706946854217770531557865487582650036709559127745772896984110231372173994561323794734216728171915137587656421285727621632077200907446917180651107931549859970610967767079172517730237223665120680989659648063433809226192664756944497191973319445312287481006401924488307615979231014410886833830485001901522149038086899646486910774894781945684848424378052646114534462407107421464046711128290021383434266651760672765423655146337717281860335920689056829076057732070929863605409238461010625986562673549811910911745688521523870167113736825123223791573073459032482619364140075921550741579794658567375934629054169272762553635738761114423410859287148081832570413507641687414778309841360092614707040567678991981032627151513653439254127578682017702138734863758382871193012285022615393716535762097777038238337654443837019249782988940235555616190248250833676229178056132699323223575571031189920193129303336519016753357407380567202862156509108281381108697926888690981580180842831378081811605986695237811750238539063090781162207533115522620690354679963919145890196013208456295146243563976300131375484374044692905523876723065767431312155487080374217236575512065837234500213976002630476169774003109832527606409480377459398710999609471005001896935266057525946121736055469087885014119126591889244805417218076749448214416758621736905277763065948910901604478665460169853371475954331389107250140833762372633890276276478461852525298365704536017903867842708796195971472648614978289932976307885299508052577060759883997735397554338285421129651150597169617734860920841220590397866542513456412901143597627231430157567768196559544141224179664268172495880237175581128452735297822484316563832516047076690212822206980459601003414317661089811340370803930814785860083817011825678381632088407582271075169982954023248461594598954422833957658363077885967032181320647974115391712946149089413797261440153194931269319660274165112021958468209155819639883801360135650841976532156396445027158168472627715843361394668899430255921273014211126635590356623875240241587701480704706739087391158450121146740717954859185731656564936624496798609496831654292878967541727385684827202533216156327531626900566418911235495262734734791188806902242673914110177035075306850799695963077930437946853396817599493075638283405104368393081526259322099101977540414242603335096894715764266762121280167225676137999584681282905209688246747716068342239334322210892678587890999003315615926177887645292946173447291029489963187857360525485742683009544037937870474629527129992814878326877002707460082404088422643166536534252449937012171242175400793919860079068068714813518893108161717033227898183094727737432618376258840930682391122876498441402118886532245870928320657126157022020352322081905086381820554177127275572210578425568203848410257146165914836188558521021872538944188917119953174890664518534752165208099046101506172559933219495975920317461398329206125573019944366643459173689111927049528326397730063323113414686717432821547157385849869172287318532071554593278595031192132100686285855091520494609048487042229421273097290105061302890696733424469853842685737834204328377287871831419342093057111985154032329055387655730599793526794969403102161369030374087017747870920942991131496327318551004924608864630338188134444197616225351997858049181334200250854040751773991490690629713879984867753208609088071886244344712009788653945369146744216253008118009781119636941350273296192471509835677559118166661360175165429079159604440134546346235983830996523965380804880352431920582828621448062862971097045862881006132587517061259627414494370381795576454250360239303001843038018458902422931671273418839559816905745624900665423673720392336229017134441660661946322393895480598932051316161802816181235675240809446456131195850290620671599967826104400191567585765250373103046248029771303396772464719462212086067853958317882760980989186290612772276987196484795000276147574090770585781007340961917691198791128188951987354252736405308634658832989037376316610790184186507410488456889221072582813050047379909649117676025599116592717339158039420240802157786690089228727145843909311255839406069301867764912672585876256850804284872746285261195522714964812186386356921618981793238747779595410012846601728006201617331562785256614024530397383005639392902421380735618598463663574897835406182477846410085467296951456044934136344454201633733809517304156149323955645734479080403811433781449881242117504110609546699860164799667175615464056368709459091574633802871198897438862688286727557676236526575760548017736672002814086608874073568121384558377344220714200287011962357154378751901556696612126594411289182551183421099489208051616167721199584760444691573876392598661877020354121268352835986155351663266451681561152364900746689258778043529220757730081922269903450282825175378506006478495419104012057590761883714101637708399706309829115461980706645205120159108312978865884974203022210138082612198400286933970913010685327136966696963134247729118973474020875381397274375607757053002675357772016723412428664332608788929130197827663517867480939848182755173834407303543884026572039629386804832352450926269256514102077455268226816445750025990715271006051583588173384458788968014363109552084682508897568293746368773216637854200101025851901517280593460669904748046564334557263409720740445318375138575324777622427877115915401798743891325786592737132282070083769464797674765395620686085856237845968868752191325495100116197211031786525706175239726844861040510029652100915633898828256084813581818081980707901461247487361783452594298820732550960456314163226066650333948718557554227186321795938364454195637724857104415596827438510923912876617073295061957994454648767451415031121817453848461868829893019208146680298526655474487339951127264307473889965489389473293486679371246940138955068777205209378939973442145185377299235180511739350086455790366678976217823205604794497551202371377256452786723852932460068366898266963507921497355089670489140149187103725673778504648211594728018116477831687754181113302618582642108137605547446395366317892198062157022745576904819792948087035061843148523971476722814710203339470997484449063660106524371978601296640607228685662359942580305953090521609777371655286211035602538499103405141165763046373909804334981509831455631183140427536015855279211764665523324332496725068195924366322134162612150734676821225081810677561615912821662084148690664910237769923167290031446952576545344666023146611332632721909027441804445862213103739706185123749046249945402262613919164134713217435276171696628516812387504263514910073870383361378311868925859371485751626405335494421769227304898083724577488527294541233257034254108387450470868618134769247815575764852753206932024665160667205422318049573519559944928492114339849563227325774519513135396869316613869796899068796618591912527972062389518281140918603012821094723080422399095560191056782158953568547107268152102246368377520843324753085327982758114199023204475581189355594594948291990365148668416753057175546928956487649821588043954586108244220120076087837550779958027650253097884603641440880005953150185118887472164484286726372080976747256972084468283036831565247802393669281822544332181029220381662350564094667631595522109657080645441109728291541753295169176916958796662305305413166357375447297179776766616422701767613217150928590857991587756864846467267248427914229149823872780674861870827636383639443765319727160740890774841356234184224218734358081484593270557156383132933595691956010767833473211209674379807362880850169475073031942085194656781428629357719871660514632848321256163260895794285869905010299816113199236852234983235347561254598114014101456525938785658158974000949722385725569072753142952809489328365448631352585102030347361509671705376752205772161686707068478109911286643466138436425493402811803728283339139277040921441379414974306941953298211119688216601723914178103389656702205204349313615080995220124483949520683837062050735847943802898394480619312921830785857802795488902951216305258712988416388671924261151928318834785559662336579733871050863383909393513725036579158096366607120083326026769561647349535433281247359570184573332027049979180948567415190458722236143942414810647706701281044194965453452895117639283676000589299102627793211554526978874179914357425731662509079820417100522998753840296565365802254083919744639658972535605700149572594559735222271177733549892045979838273371719942554649265524319997252938344768926316478705794003994010645712731236893204649382732097197547753294213492717631040567691730551715261675362780607159375443696778075824646153501853815413398179333013291586989336977515206669278899064703412646938138942276665355204322547992373514886159071841574003334105629754538345355803527328892513023865908847317077318746007101553472633303318381984137955447904306770295711695698911083553910157944760115330426735813160518228129857580892075864242580222644800604519595287584114367866524108836728571306557430769625180158229216810967422195683654400044939607119851298276594275509914921349599586617836689502320506064616051890710475142654698429417391914944740815513278853545896436963196576423454724632878893116091835040759344425235277364738514560775794335335364565935977327111277890606214001425391832146929640393821770534188562412146464816441828993077548342906290370766451483520330402116230762447982790410405554194570296123822169370104731551106151372150823235373721024989654760528603472124812717768400225170958575948515856246304919569664143270191616429621624277293706629523456466133157062475246425811680177830172643013310532328167329347341851222888681842347820447114568192109499175389396237310984759574070589657835558403366906773324906863919333870603985676332171309705993909442294366886247236249421318658902449943006999448696365016895158888763389411412346023050781390974396275297635568166118052732559632564610726280866877190014713141843302111321605646315258876834694458476569665774210955719536043754129489133066183602905399536719462861991248309511134162016700612161991059523040916671431540832556354145504228527536206979490234890722073001306126894737488882029557349315171439388167664993292696234446459483174145922629767824224962469733655899544347561487288906640270026820398787666198002956425029072267068278981920483182762233595514391482643626152045007879999416365473057679094116259005485306928039200696000009276208261170162806183518053468889631348035690452983151309549346934311444059844836164091416240886126298797066654248922397375139508820673637062895840222318501930426584276807033812252952171144977057006462740929084952287081845293675152979846104640259461816459945369220191171754623465613110145042976620582253102805658622952977167612229627991505275370783108212287804427273908099204162819858336515924382572429829936267091477184904307185376965109862221325727319220378962458405385827573819528643406657879976342229621901686675656610513501111548521241691520755070110394846371454610590442268977601280111780660521079365021271578929433195254997476058056404931857136463307457574177404800071287205288447933469345557459744998809186988692984171983497156795994087985904289433082761826581085590354679214808290722238458525732748121092451155736020752149548391492683548950524252148293426800314962649735430434521039034273310961347007374028136542585487300874725036557391411575769694657426870291054912314574868544585827559074258888547673916275309273446275834566771237443760250847991817313987566648187119328042398184776958076217572183217683639304722378457535184424614105035205537682145729022482380416683210017861281503040988520903220735656555118592658140832027041489227542629078101876618535277003334554591252523792313866099210139954716070019018737863759447197271633253138116213145568107353328638934784569327287165530553573048423118379738319438561845947214264265555109891430049117460669182006114706822615976543372644939646759592099879977286597126879328548048898683151316475960655229950823707391716275242047726529237367028871435706308155216927250193068089612996080587718908403819639559982248640715044733235631995541080909576106014799850756595056687378164479864841881475006943524023424429797309691467467467877573998816628600363837270913068198491385422257172999965553131040878152975005699727562977913303594214099718875269237815574330455002443107508388994757620625925186222230022825345482097920375749552943920915619527544040711621566084997132672365612763037335154567735295736080800289419099324200395021749058884943358653119302146084148024414614312714233891705449023886145403886487708323582322438400839005090078549374884405261784010403049047905576843721282029894063415442343894566817473771336336831569460716653442386327410246577024363964485654670908374365920655767604482219016483373457853792911391058927082066429191624526883084018288232881328237780275088707696842816173952701944380275461960698875300663251482788851182258184681050488388116001783814762909852500103225448656434848036490824193408884902583629806789720037018919949329959723553353611242886058856332673079683750782250086003634361586341995762477662909224440664593792830242114938462490110194142096309164263135753976022437437183335856277673475642992935080780840965823198945561909350161871457325652386561910321765475491518585210909819478828120654736043818802666189579614607478243432768981422523509905689526022539956129303789098489377373003398831723322266271904049896753957645405904133561648341404835920428844325388363539174622177775438622345201644186314429139007474020252156021638389242294005443302040163691515235087050050577490039443402787978230782617866882252341439264788794925418637949173067120647475116801600592873563633115401146117727504032285766576976530522033609900325771159479910031769569721214365812813565095956369556766690661015644843222786059429900140984351545303895816171662156093421966140785011744791959484785016644796310091220204345603265497037091047828386644762958671425259442901465677587710256052786869602998375666274360778237703586310207264315036579170716851897846055472508714657075499606204214087542432873082254603650264823488129633918978449318839684141791265046023036112961672224389385254121818933680806215250909195918153124431011967636107156463818140724288856176051790647705186449319088616315510176189173525254688236287334002351775425671449982471523131038825495039723447114413528420358598148281151930289427717221960863336467956888214318935529998980432047402319740554018178655412205819913692750350981578705537610901764290726089756355967750475105240015754920213788469753237455472910216997157679999925678730896047191576348396243279894066290281472670982786873834082994411548971489794200030382816521962572674706043946478075713350121762809589714606050861981417862428051261808716459731604936467105574441740293040775985115925364410850660903483264011618075945714221163437296037622505061497370943355312681200728780883284643912074523553868115090912243396789740776708414431076568366427224765533917749462506305096393434493195474112086941133736286320745435376943986674938292579068209642622528132333970268653957481931783114591694079957690516771949918558263194107633419207856254318235542315345313785377263129705286152524567994405751409514919959725134314150561564641370542336518813372149640149073322335105241365016434011762549505726451385355342257872096135036727190750138346669086920741418827762753772259977865015717783066712491560523764981390720397224928680921108677196751500514549045827689130422125246176834214482219522048121479938226760581479925128239611233935796275969071532785834888660757225191407373578133201429022184991982955752528500690251184176892615271904330503786468377953336083727496617945877667320117581552518900735166511541599046091824549761733705992564929954142361124925696435664326890642394134964591729639533179183051472555690851272119392414501847989950565236457500028788254039354222118190036879293865533848345780809699368795083793556106307281540634550323216640794283791113116732566591723667998530102468810595563151740835618906638277938722258376098771971493767220244864244988506062173614318291559226078390350294561594558277152488108383394393137652458831083748706499390117224427959987428429171573875428607204667673982405795511944183801023206606145010466883711909375215247593237368105265229623277521237283134764890432345477050152911061806440482688449398035021090938193089474388885176674853092220590783365166256737708992980275270157662845405266688876280487655298769890587302313330713273542623506240380588763679097574179848171005778132317938986086725917260591525928217430779188356311174255262182705885686727539612703385908233526430903579504036563686779081715515418923284299473835418359487229053809675804123711818239570294023814710733184278439784651521066276311599114820775960612216496196978660762124444698806250347865901525893598964092470625488279342503509125217837225108750491102535085190777640600137805876376200933693320513927811666900547432041889701362360271643730863802554631466946649794005224378246732200221783248196714752715451444541291358587468084577414223041557369922201733154693048664856512123318632150314151150731796263950596896991059634514172779315794344864252343889864942063124607616648379748869562353735222906147879710420939189432732134836435493798629277564751997175986573924227365507054028047049350650779618765853451335472782689359670189617438801907129899264115313756674835296124204500124373535206199956681251310263007842345614827026448129323734404811328370879831824626640601763785032190676886963043371834572937666489315087986484362809476599280248572611893029191305144326642177765175335416375021312756288042333174621742557280808728646669680607688374793990361531886223158011983062780190238575031100776842429704790779205414255087097253149313838013885831522140639041577378125163692094115936127567224185018371773981729001351717858337419004682783850190821316281939225941103065743017311117180656765417580576367604523266188212794849913669109144641650264352738539595135474470418731139792293623228233241470971051120988526156594375267369675706457097106393087386258641705048020310112158769854154745110735940767977133231206912636123520882405731685128519074415629378293068308017018129292748372909264553314413026695155024300620625856691597739152584684310335402252568485057164172639653325716834791152391096537176670945209514520305984157457465771859392662514474874013372152832746877968005678634579319174408520953046111962199584191969023200594923641981906222822063862547142211173448184292100725407078537226447399852630811357108021609114854921584713380717254516840911601700750339655201428590536553793006280010976797989778718338446806558314843363257033672091575830807668155282060050759833909453257867381405321942134855270570849891980143560768533224899600209131461724394871339339377005874836061937483373489260792122227275854829704189469889423658371461849934196964718011651845626868787554955708198711072940276102318526994079142137191466328178481206544358457703880348057719380450809952615969383253909797097826838943845302466465808734912756922806567793590689028567844959401767892048786718246798848898973056235108001352786409790645211196115406628985270845359845857836890724328077069259995912641352241434735737694213761928484760938585576593796610560137985698110944519603534407130610815229191792763903585788316739075492943710315107212626690577715121899415367852975208947553014398295267675153172007107461784375468211673779286855951149082465622302749203319636017869087321993333784584178712412665966535083794466463543186078832965906410923397617304664282724670423284116866785131365091985233132191139179475578680455332594948529427261076073056726731912898151889368489990172500546399284716426268428920186002438506987472923856987990113829714163997041517470713721263560735288947807080186785534712814210523484918669667739745197119118531341782361416507709491238936543787091354266857765353650284248755697771157204573828222499268724173723842137428311471023786534661952367270564381292178053687264430466656512323225401230111349014187532580171560603447170164371247327828858208345250729180305605917206148640160953377932536587138985880713293006362765027496704128805545657622667166827132116951406902288533992713037752604673557690294721882814311674639590344101224133490660824350007128407238966498785753775528641879332273596998135074681568006519650995248777455982377444193804674189530796946837800126846041031628039581494153323406444675925073188917579253952325319960068889723977173103628250109630451201287278964159097470178514794234543820644487157852290802121855350911633622468300522855897718742358518905143016652463410667506528055289359430239043874062410892718314022396162151275460002351210141046530004429894282739816781712186454543146954748518186930080111885987740044869295186633886683184237638878942763345705762585066665088628946822528850008311800195477213975101301872181732631494865589871373472405282367994783749006130519830837340852719581150815766960545655370003377475184271668209947845718925989881017569607956095481128220643759798120785034304920433846619582758055690376672091923867958295175168835746978678678206846124832405319350228522876920656397723770083967914065781632486635075153029834624358286217099100842059274623773388430060287478446048523066712105607096861806345254287366196436366612449204550161322191266569811957682983013404507506862551791791069600250057805203329275912412104687805104306312526642617268196934232069811158254351244900887038718289742820427567213945378750578289836066509066826359163964909768958160247060749057792866207604691610969760710279255021964110655940133331705571262751488717568939010659169427102469051950294078210022958375551427040604151975095353669620497470004434370671345289283780937627152783534443182377885733657871076952718127093310033595262777622499816785214785816814692278406515465204122086691943305616636737474842244161606279347411152357235298914614925925471135587414354892269083101981772000454448053092662041499983609700322290390099975739754591079595143696328328484242630814088187263043921549328834260414200060280207440440536823441761259134230686063771747097735277446813124541441893849965480313972926899122995164075211829220649800110380148253753856932617356057130772001759978503472375996719924046802127303013096291350862769781032079850221139077354234576590388881971098906964956405865333095402529772732847019967185489928493358241223319505049661978787463078852079251853888075586991809765826904297183530110174110803182550908073668464963496752592339342333219752311833022023689673519522875263552849839736552791241293077603032937082913875351220874462907999411479440529689857019875005240795383778975648907057170715348153241468340546686374893018699735851966768967452176839272562620880209925619402413854470347285411862013492901403624305689821762091967712233774501245631772038088619716753435270690671429143214619785245355312094141701297828091517393398232856370723984355288776866047580074126879864476561261439246357626169566063459260807781991691587101970113138589609421102137825429316237129762435844211675352388742580282381829836867563756265918274542051663180515671100345185434655004417689903276570812198172797055076019373594759955112676362699407659946834256547285043742329091179228479469934837918080057455552159890051793659156141322730659650637961627632153604534956069510257992030327227955801136221895023567366573852757301788041085365185358646107384955660100955526106841054334839789447534666148636810114594347293677286483768743229354414456907384625642201853155078164402376509516181755551088356854535599897648222646500419780971823979128422495681442260314792032797255732006498770958274813013903186464191671382350740189107478779821644949644829609955537207181396230826494732540965325546910653963820560809703608483262451386797929430021163454341588907271288773244788940106374357452112246383228377887164911109007432885377864768639036547847985700020140984210123128476659337882707686982809410971778506571296160483135094939708854746517193771377966133453043248135708352323567150807647426049227705832544386482877159267442302338558464638667674500617810228469493058966763566019877654232594919451032969512123844588343544752326421669246416961973879050422216459478468682835262057297378816874256146087427703457596622378605367982979601318947175187914271942092513067487634253552148342131630782282357931664087850494607116536184119568059467289563513314886880863205179268446764428061458705213804802572042088605919864099269962744799759550119893984926676949870553205206807829194390322246230891107202972899909732517022901695771554339341028805700272707427607085205216025274528778459719785707990795228963981277218726764955660865780892503329265157039116641386580417012613968729810168410390046879129785789087741408827071652822007102430535335097496691097213879096181537891710349693612725833311757951033233501193944452000665441923635636589208899556124394300337192051215297073691716592716037848590298354885338799769541476870573681150582776698207338734989483580499324540587833569266110037217028162240941668716859989218895663880594533199773224249387908049542874312250893707312898243187998784305294675586566665019581405452541261051029172613316351042306572424516980299898280750748039251112176688600045270096470068825301183332183815565612222491654627827333212819558336679359310831842355055780486266299865511189849177697376313673320271073508432425500943101736047327858896872491866157171812710652558333155310526216179051904005577971039911637151350775360052163213422882478604662136008601469110779977457991942938536293663192317679596827089525258568243649178275717692044775277539799545121785147837346630064079319091249713477152951256917334527482636553624410469471657564349746405063197519851927010000506358309283156008902945250059699548144454739099473606238501291683411291111554004418216688028780990961100479841351731130638423942010078917232086861858826435498672532028167743289340413892083268094861613861868835027122910881941989608553798874679430480568267396092459643404242490217920777570341347517954387122865565060207315265159949270783018597833773698631205784078377898110524548614753478669159880915748172679685131732000896830321577572599992239531939180796336976365440290946336225066460320360516097853497484011617964350940013211080610127709379995324214611829333623995274081007657024380693822826612453945933460488516265745360888884385068651770337687552377365190838333941479858193194409080699906142327836766519023302803932217047797561380406459712494803306717546261064403400375913124263281551358053900335930603337736347778998403145531608433599460072858405924251314326459531189212316017112564566729961151136291291615166317686835836059774976339943966812824849000115710686054022599696510969958679144475496573104037438297697330001284011157481166318289753028701070163647076003773489082044414243293334653616616387490319774717197479012723724422609695355322158827910826975165090152228731313960346268192414082934288986895933203735041386001600934088033928433365378035072965528339665422999966063521280946704450965221529191114734238937029018748136192021498195755918878640766377392333207670424940355405559234123411788366330010395612657777075956288116454096297290500549004650695743730309844215938812091303422662485670444155515300615890882048289066436951071747917164194513825705207687672262035747783510930111163029711847326572475770928656905220967600932000334732935789345988105762630834856062929681629274998792300894077215997093603199459332855709157589707744249711449356202860867960459136685998895223676104495807964941827444826221951873000872443059522335807222215927781238536399935045856108793831666135378227545095487570247844328490769224301293758820654738965752873568207057005619778421175724910946794916885848318385327146609034199981111469611259537990827924313158751759754475673010638991509684562940039053940671596277838051413905871902565183265406186250986708540942839128367198076614252440461075480373700313126822055898710169170419047017241670901646805929620754664937037861471251765737473730924789123069676651149687792351310769669950082875910315790769951476692140667126712468197723315355348146057734221412942109141598505170371155735323698362862354688903099015357687749114234400291979656939290036069883378614872958249184740794704021456863669200531083103489422400058860908383583363272798210700898403549696296405095059370044687967219581121330048346478009869237962101333901424675936512135288973970606399506177038315773564014709866082077804361694984832627905979657269417653011744279991404934091955661416808633986278078997795980473015714300555503420409028502232546442115923961545357832350996923110805929303306425737311826472828639889380412436789927582073712187425174656834177949263858017018150181150347411580181250026584996784778536251512052028597366956633148587534820873778336248248382457418594510524847966110703158538071024651743269144344161507805796654823896809394262574010487274087614611597651455281775826127357051925282188933622896091006656219636699328163571045661391079806818776444122702053199606531065308405618727899755754941380471167581340725545692207110165134935659149716734094195642971292102198976115699821274853322119741141793988378249421946136547189853624297834934477234455434421305268614795273760964698188569907107947679328618245900875616760354035899828067066109930332519317341762527277619921427361433260008239232174847708327926838790479337965982218935848031494439838632978310239355173404229005109762314669643481628505225498095616329221102648906644975483734907952469749237524804486664011944569651200280309441132146853430833857142106120828113573902090277897771069375535487672761895867655435275069754888549517628062473880780814174125541686848899736499928088875288444732707912837131764524137597102552184387494228373963020905482036326074772472971108594188384283671091756003064365627160150635763481548205099771535708802630919779511144850501999703823441359621395068476508369533013385913295853910945767455162862393139254790904154652383603371330322199546062062002012872251893840136014324557334200216638047513456566097974019563845848612154484308694178033259818546309537453682895300130413846994408203242023460163815188326876996206287546754924300190637233236191772906281501059471694182436605686000472551228912246273356218628722562687834068319786966976336573758120528729548735474564433169967518705821780289866287203955018711278649511850110447672834115322800843567147364812453504210784795788772344946607691117373176290182480906671626300735796929533046872423975900477466689343053838143064109948698577999325859598561722118004675070455041838002394708996115142359951103382761825036016919843635252811838816347060649797517702557417430521011655136522735137321344900377326312248425005258573296714019624662220118052643311711906399514036416311574974698622899725958912970404172109391270726593618125459412195527756409016510985486283392681272965595636359872629245999852978187117474922033008022613613152654087019188054496343111772413321761240767556343663758996710191161928093624308804841228606723009711594162307898755784989900239664218005426824418020374882673457783361354628709798045540811233208306905635044362454786998403691499681577402598796905335229397470244275932137766611650077841334888583206875165534194548707232349839279368657495521167719153438104752196125774252456326752954698479932595778294121423549927095858786593004381990804215884957951371135413481359731024085770685610681147650678665877844708411104968861494376943620338835990277830025318970960787821078375111352754895480782759921662703662447769741516064745308633397644133562786992877750923785788417788841333511556451512564974408771716708371925424072777728026548894308528741164847943149810996462883979879019775155535677499304458948708386017516622464289866032685271076554060284282029409492405077837220755869316334330677910772689487074473668856141440878420258856212559358953872122443678764839627141711153701104480523401137768928306140318200176429166162513379836897100471625004255539867787352887507699940580222790445359189703730399047579761802097421175911022884931936200759185269281186193074703452328295892605375531566292077815910726962651003104190692311422396161497290224363576338221475648446990350403394113968724935198071640106004709028118482109788261325243250490744230518755708959634361275214492910149748521523572463421604293594341917811769448688499422194446800550850104638361055183848277920887286003592346534910695189656050136062991379314150258998398041791342025290619044115741569962483675356112356884507602759394940903007995679564266903518965100830334476234017411906379879274477494113925161770484875817706030151741986752289474231245789405535133985393600474267266520109217913494351336621798456820704150932877189135491763622390124795439531064681329228103821182694956656879097867921190876856051929495763674178370876875940310093934438611174371818524207769555613149811341936775271057059512379576385294121984038344281747404830047453435085773359165040768355613376442873966799716514134452678745553417291120791382394138019358319966151989231091912747093229878184255868432559950955801957281413249824603450655016789152434988578731115518255448563249876562964146582156275326134581008869164842221961903528993240144551355948376291873838937847725565023035471634264250622086028418470696631310325861279545353214878911476028159097887961563322536983833952437709949435116428917649407720163754682078860682719418728930102295762043883370344550474074064679592183230505252395679688806271668049752140309413482776183102322263297413405614757544768298381346539268601455664470225069490553544355109251011478404383932453792526682283932914372334606544894094835157494135561623668778329928138781864901323957316525921574057205643362146452032542113026280949978578406493697973081776837255284336633639201366832816671036131842503853283647556663738818993875352364580988019695474268351347976230511252515765209699524112566333987743747223839445404158403737993019768188139151689592012243411544639454270165098869054592629477480171182355566995657870527537080281866271377495627138550477789760732352785558104113298217357568390442304760590660327005315554636855482902054082448060801976018091532233501519326227488582443718571532891420251485665792432384765413474920266936653053353117889275725048602532679389214474987745389179673116315009931102731303776786098364819708250132441135015753674083644161583093950115387103100636988835838491677554317108941641620800807454257476434223538655820242299518351140755244770300690548042387973959692436561474469246026459868766440159917150691546543556620635353918850564698425530006247602613278874915782193479612960194639159094283546653272127374082660155000766424481815606676411325291685274234199201195740942568632757284575896624635231242542486558514446131873368438633420059314192622844213325396903188723160023249618766483006508444597857197933121923920675463187973408506926961961883713082318856436580212722042798867885592285154339839942328960199520361254260392229545042932061987293468845846514242130051430157860247377975097560550794853345340959336362712067302163910975789568655935663630519865500372074514802939608885710422642410285174430776453349347847671959148309607763287831701309545170676335456165674367059205364885745466728196836979561232709802343693471010537551496739462912334344526999563948076962043320495062832232998421293322942166396867031443201577996589849556788965530886983682058454228219622907499803335555689385914525659276470350683528880279241907904279186519989632286691704889637403915496785560896473486398911471680843900896323711786012789160111231301168489249385265768979271406959642066306160067052044878913722626732266671243575424374993332392685615441180228860496441774961864154504196597163282881880626359998773141164161409974771179519616458946884198668814137290967867529101940111702673360769624403192735970539406081476374734928301976661202274520970538519567166545083008639375212929019211940112352825786975085451403632063312489230499437492482029660234344356513897761352801195586988684952761020464336992015512039619848855407704785902947113166031882014239248394263459657244266277271318473950120307044239591586920117548347788901125005125594016473727910012618118679967107249775568193771394625739175090802871540788851391581676449540973291247326315155272509725248418902311129278333676730310499476900791657764026685765133439430157945604491135539232737416134774828853393466206311929916794408004090989755286881653287488546743665801939367761869923943475198246502895270234490517264743260435563196381751431524895482559590599718338904490213530537042384924204816177700543914545171652403615864331499295011108632282231835404342353418502956408566682757904411791980925829901524603358469409039874166780161323238223092975374017259888591101397223346688225188737467817697120728584856298450332779356172135672800074871307595093790646039899095427394740277515668375934891822670857014420596304793274307136890349597276171691364204599290513427918772241325926367430346683677536111206478182392151364121394897254731125008129703980100600827307828876638537646240154720914461382494607192171987733037900906281067957235604926351148769539534031105391385856520826149550453954976458117368829615979746398164151478660022286732825844448312894605431310170055110494340342768856586551985169625928847518319416524244283467260854120919324888959071551878253625068044428697624187517570201783007789299808603692298793334213509353650003087434566404206202040184111947951740207146709766082931278806185781525360778673368961174640211296085031385586930249146093774763279966913661513165032735389567868662960167971214729001235211065432748736281792671852983320467789827875774748788030606305159614587224418627135524243749219434456091386245671316729369275840076240184899850211620116012071512130406236941598489540484512631436068339296459093578382450717058297243147257639972518365588524473673934002550903699189684485764613564241812633978040570656968269159666317105779820514608373935062767927850475267475892468629968180584817545362881298958344710336621455008778507582643571738652325546555395927025324526078002974263779328748617005554182174926092564155206359070546050600771679862295729252170876587385137237106694163094416914188307065963346286674412904553851339044470571655332069674554143475394296443833730427189620105036385060232285548914006915362723171959148005721472054268253822502914900806481678338753732673409721817174553939855777533454023823284228683282623658683355390849079056971165485423555772595180408669726207585452994634599230070558579058408335456202042427105651270925982572169994873930915466348836238397837952650553104119354848708842213511951678925147569776484030522513447291729965055168577177193752009461446014421202985405523735139349211031495079972109171674557154639734069922767082455803882675872119944331640749551410488025886827251717704892807881542884687163388835811115963825689447462449733890955435047221537561083328859865869940221763284958913515308025671240033460416712743996938629521235435949723979189125851200239123783903786952068148709244704660464664958803499443970102963323557770715374541605103567605056778833001227876371720167209357241441973349207440448321243941469586440288551543954405688688998579367844955496703167239862024310969652336943651516693126768618462132591920003288658059948956391841682790165267908208585544892894545493871908984301591035961666368235934391630558313857547131259415580685051574876356218629222541029063471932191170915200186858268192479106008567606512439822715124320137036276621864297743991284718883703609190255103360043921586140544867909102515526346679448979783753531851017450942403244964428405493303047782805401295227198766612057089511772973261369658714202508081203144380446189987724447499511353315569577628288556403887195207358698149843048201073149892846999811854987342609043585705357339814503974585813361100987390682989918251690664765149243382597887049616194514022395087742414372608080471423336946873833794392773656200092240220642705851160414230681616823824405396297406563794876488972419420166870187466931513243129838523086871994420461850219679017480367473232643281112154528909855274356090556809741474499573213865086354140164164227622726954588981425494353989974558379611680034630623830293461541334187731891803264890073615232568376762340509888190689676458150578864261769825321919827681315955164306605944519726457423802249050142220144789288799992454598012579355343877987408964488263541164417445091751431452651569270909908865204751815890205900865776047001901464606378095756365653543538997092598314106273748411280655469287605874534973663438723226055400827449229828016127924508821440420564290476007964215734253978886558840418132431724713734185760516245304317589574839258267607927246998971661225131835658876265797067437934260058059685951636322863257256190904254093207830012507250605625576074529873486121437419390197273230747463013663224049912804800305484849904415625335464439165240841989943337034150536605079301528422415528958249062161598742349728466671943831067361637979432774635070114900568280810926726581849806430931472709848030684061454664933803132484854115514263383971431497711622603884993920822823940849974056640476208342081786262312448512302138267389796013215539413280277837759323041004616469851847622948704823887601005903361407485958894163799281830886235575916271494710561483571827626550928844460243313340898863682185167912129845571184510477893718751947266097462113524354390361186063922942139964537401776342312101672463882872616590646356915209528222263060965646610516502412832097167595281625125417910354701763781749060776639562115941779782042077400857613162002104328059346743391892686114330687478584855196790227314844427717382588249511200826077527552638558025621269437661959457483983686322646503281089577984938126773469715671176948727216415375723726775715632605368696843679177519188011670523337473143139576428997349846481587050540816688331885972432858421701436923891931211075845731133963039967053678349719184145860492457788096476834149115473732903993663777078648610959760467187166069699485459148327318787772491714836524009358624179112496637153430343211161529487897719875127992092656551448731406049307833484559114530968073899022545768954398904265292366398564127371081643576733478501656129497494526044474970812918437059733285227196692458841841995057733365099643636868319673808615194945010820866139262235108547505538711354556121492321048496558457638234317498127809261939474620799786408394856222445982949342540177240498136470315759971435311224332582835858976264945626139690901512255690657448910465523419581746406579969776787756145563747024555363367448918148187756719706825322504347979948949906971474609735920780119804075764479697351288644176186719700741319197305380880744226155838826399593732226288460222572551466918021619135323908853772207661342973154308184984885896895796518090868383726975581878746973376229493468149588636980880755893405131374446240922157887242806274596318365249222860948517068152549542826790317680832910993508949594981563062091440374961855912715961889975829209278359833006341493452984421630909011855405828584122246097792000395638765863854316682136138051607503713970922092359495394204952018220872772590422080166720873439050837437312404894333593153114981398823564208974565952457798763221685327194227632113056304477115769899343276401506689505093697730379273605025960994623459928503106466103383468228584123019792031883321430521355612316972358666416770745355517911705494944958006984712571290180600385180633287109500287819481545891820301388952339308441175037405232259487970490649489131886893642666867173940152981861240695850162587870482235856696446002369895604691141250188997479726091492269264631452215101825266796683721030869176989495667926275844953499357274839221973032262067534597844820524171335146094433643604889179737494074543685221170421336089406792796892936520115272553069103747085317916243440932046845056478792263049284736636361184051522850986952690556638422007905581201426009395379673809282938827216015855920159725888591547535817166578164829227092560299849301680814621900945477658614079967261360324909395840959631666306252243429750854116942653339097946357106624467543255163626648174969810258986512002225761612749592188166900408146792914159203573029159062910741472480561965595133919370285373141749005167685136199735271285061497104682209301633306845507785603801544052379393712040245172412823573928321038479747935870034482886288027666542574856859611154647869721742894286706794880399963048863424466893473833798121117056819723208684897684691108818483762115845530963586767982058952062042993325361909420375682645232187095265799040443696424747711147147679136136431918630394543481926182398132953763858844189665933114741451821796146885963152114030067887920639327212629754058202643091559004007212562880539798024811031537026528349518770654333102208272817833489439316553668170408856571210037739424563948450461880979473014713843864081926271906494780536488929015080036798485142983335558050049920665790799023312095660989107514650243120714111166819400539776692881113427934829686240628380045108518985578590906469146382567190605193729708551189869528752015982127002718234148371106756619847901270765608875012073883919677266111688367056785931329696502433711716218746349124516902553942050801517629137958050228864939441200537362214284488883687038169828763906383318078231906885921711582425764389988547147749104055426150204071714499443622852499543850017837380443784217070779447658333893618630791216023166349326716790648704626774147530195042774183443161693888032558110871531918299553471011881043545301665537242971181263750998385060032512551128641459104824844803784815002357209990983154968171500179248660537204923469926482924640809592198032422635690328604875054306446340243961674334979884906310520698275573037821692788557741610281756177058412064217563249235448189267020355788241423312641755120142608627765946041634998903165558710330965562715776913469464443950421751485972132058408341260866673619552823856030961980085127561238093204080205814483078250872936694364587874425970037396180320137023512757594093789643526528920634075678713872252262388862770078410544731898461864162919441159148109216145857434156830519236931595228841098694818322494048046294977111951547222112292669610668150516601301925102138789101407567022024283770806359958328409820183162436050361685839560989631979698095686626691468814483893535190154820544578572830792988909276519976478437834782268543986207136870481377763115555372126643954026797854862814949742422240803312705895854389448244154213137069564054592736899483341022679074228138704222889135294200082764286685284195383419545911896126253134525887058759424955896583773922808618845767744623099913527079957851383392794392373294353264862374886293738544571748534713640277605681634246550177307102958397566923367204555989948773212630456126825479499467528594216863537642429291374344316743649451048049423253476690125687880835107889708195116928710457282821271203759558960448878104203413131233919583832715395601758529665014951035002360322448514719165755338558666348727894453014431747682301383816303843821767530281192597480103481677272292676363953768164354367549285043749537548365844995250810937287088249279573693662323905805303910223204243476695468503114457355081655816058083131550476071792477243051800834033276597412517682043008010178098204523641394833313695211417324913086446044335908629188253102907687953775139246016149761028925314261578789906926596609777946592948820253957820029850806241943637861341256640325042770335933479647675760312525025102364933766492706358938463191969564442995473188843206734159957402248848210895976567209464548884911235143440178256849496303520392498285471378809750157898509585299953014303979954260212954800625128674268507474940898541459936907479022684048816842029479541974832738237427131923499310691204398952595658323310431719349412487562910845446128128818523248759271270372389972000452934434020225055479242096457363213395542869046173532383330633519299045660877445329279041101620573715750273629198901131569735449348311446073898172742029177420589204953930385625971358462360795649769507688747058617612193535907729896549614694137945310540212476060618876846812740332482148542596593764718194820202711966419982577542494395927600286114097768960808986446116953565790887930514604772831465899610060544487028241892764019742220007052783136561623768355229990557354376517614771698193819256195574930819824285889189958274409648074194474590723007997429616770136740127558809392304360699908220382931255290049766446346089692813275844165676695416713129687763768931534107616577949182723841639304029162466692574694278827826382180254555326891149204819751292150997598343104862389537814551327408695162198385073620408028246974329419496072512376778388456438919108657765009905984711106814335747430567486810788722815990527019212433642336698171492922384675256746881014765429334172093014678697979420892018612417705987689866127269445654169500066565690461776552148851840624581124629638678780950243607051318666504333271304944387007475232169631373201542583756456264606321813796541700084325196926981781587732164819328994834075828539161004495328079779538325192790770465257455556790004362228674325875828539832000582037988114910231240848728736116219228267526232627679343567810968833273360317973132972482286414894063302572379098532310652614633512222583248216461297196353829490945194025658184283751229780218028127915737205448470503358343533037208688055382055657890680292199222238247455267335654669079421379999363155379157914950447192894927789250555826858357272920592374560250839019783583533313002076497594448796908680344118704400458531134579937521038267402677243925838039112616515433080710351405182124886550735296050805402923683084858764823952525583865237234006567673887143383125136427770180719988800730722404358372570280730475588687662948419573989583611104030046573480853776868758955989789081338868747925879564401270388159796431662516701931048196868085475391960698184332796812217923378636632147516247482191861519377020122688509568663770536074010165782823440648255156276479275199451321573919403758696830296325060171721433079399952596834567477646339108520909392419525573648077023890027137387856093774897928531670822024007251246127167657884448196910399067975030664921606584983121665082563571843825258800287622571135306933357534866876403200727508481545819650454687822469296972262483302008668060394841986583910526083313201764946701117328136059888834953893150390495878705184942729753180633143766922463574952773258061229284045846168824746704442105133237828280963624503423064835131129354950760393214550749868374319169560955539173156696569454359720897802546778108525196248040371673957133820197176351966240268757826233632640025589604149718542186210061884968492552223714970924777262196193907047740820043970000964819446800439956732228985889968589246557677096670012309871703290060889969620696077917152875970220113178028088909127705184118026515492677311482178278353698163207483587830471053153857682692338730932166331078216993559733854473755143896676519825373686329597590431907917828943266046205856911762019343693831921527328679449177995358428940246952514837487349329672294349964596082079399136570653099126607141739797918550843952511409002604120841584463331218177855219844242229272918662441296281994172649470444286397724984468803099077708694495866175806997983510301246793688569894690261265671819340454079678069027471726377455859141283207277991423357149481347709295507753178325539411185722756565820673972408824584187120385872261036761311019814717724491246972895398924420472031218430799914200000673920565842354227649141520851887725535637306206646179404260806681683421242106756587134453491146513008248062491256800817874266598270839038549936365425552713895603976605313028926403326516668470842790402682820338199134086300303875783187700905603503786561469077190552133872844457679271346306742783737735203132345720764512219146218262553123796491853887524406583936024284484212706681232152187352810494426833483349549617820776776465782380414903451725069718251159474383176361363130854365522557278589428987914330873118448424622838935944807060209631734649928038620492129362206238425867765310993161495915171557642850537601917672276620350113949683066108526777318315625259718802104022180553521590115706204067128122434500243534164083027269257315406763744304619017698513798649311691886991875217171143066826418192619486382695063283888719355733134297724933774677342633059151929004427375297223078344624768975402735230210795678813638162141350250052809452633176167907865069320006615913067668995383130171969549628381662096799976026272653854428902140256887053111267622796614273879301562577841300558485124518583523264772428587839739817914295698628959469117307472261921244954210277891144618998035709058459802485401208802691473004232556508131977355590891845424398013736970683101907775289313796483853560846301668715990652743951826035854903073773426880732792814922268233023871666664668362365816792660876594010451483817498323177437777959631402798284767142322751521631564928240180219296605159720253628444844438284999348945288637035760004370316270750697994737650750407810023706847433957409981923670506395872158401706766435925558140545901647640610630495147036117694920333847511738993372304183997856528516033836113985896575130502234539787094629380378373104251914748370195199254942271177632493789656267193607628895489831887789891369855081596334813688737259838612595034168993066308309602177248028094298514615116314927489567347878833035937431423508322616931669803843959780107865207721057282918735099337881810544622351668002878354584690683630554445621566341134197860583665289339112184706142753351905582235792168005128052254946860800417629784776509606769180531650175201449949746465568555438138539218822769704931985377684193256276900483737231783252632954403356229075277546735364647836435727500468557959222393280337102142199140289319888298927194949323864875590794390130666000597186614845872324590548929326471416766524527802625968956015994681391612433205784223724319710220841195190206691968505399453490789576934732782951946946115686634670310961535065965494282688591951256536981640939669674389794911570189250454795378537823296149310309184056066190654898282439163497659294237859548204027472820852904075241440687393593234111441159736236256156871872095861481397315011481149439237506426390086710043592794370919759851918864885346793391923285708041752743136114864705143616693623981249621876750365703579511835793202022466576022449400712794417633038012441092134726321998295211207188512681249209275868480997896427928941502750089916749987633133836722677474421309937395752408643926819618628969413079868277515575615696843476736863955146321278155072840153171174940499431345910338566222415666524644084151152640565769778987307556477459512190215236548148942365529243298221553346298865592231501835990995689062516626341334900939732270802973880892196572924426247680510612860786129100363636010519775715269294624639309472379274763473127454971281935907011987302476200249225219703269996089847219940802287174328210895555612422342563434211280713791166280218226238182574437363886099386319760795156796253265110388661595982847572349899850851666156096169254497571599361867621075957782459912497992167227477874175902184554340047573715083958402220608658334038449036965043032544863743347094335142997640121351702517513292577771840052074265574415764116227720855339680340912050081678321080300359789728314146596816690930149638423997782834001066317348678333522445788575033532506573629436506458342897486697330461274096602674724386624412155487561362935302657434560665337322847582763726237261516401703659853933990382657430860479339216724001032769054562387403364423834771743831924207213702320780694667733280202811470509943336650772877801897196413684569911053987771762410197668590743797780596035567206570718104120749034003576609903179290545380462259033117976930236422091679804061438696935359438764481617451799337280142248550093905885012750805599145094424629692025314333595597226317138124321610140935037004485401316345736043844662778091764153899230451593327169708396531380520553338219332636528527891382408752007080171132326521926324268421205539606900454279616921353398919306883739248483965308311577594088784914653578956029947169414861641324676631249795159605564561249177155587554975169731407015909597796434446024612508673183321860261298010539029885785026004513942895906661469542703388581372444014371312893772620256974710139554310787787372802914209370498222286530878323415898950867724664435354149065938052407399457060141976681945739317008609260927277652541284433105501929733668225757545380343499527411348618752775025664805298197798659445905734253598724380952942137112680011105927159923780682592662852074863455832222914307272765965988007078235913487941602910990844824842748509394251325769921716023193481939054529210930805180069842840587952759810583464615351821928901488706655841030719752345865643318402775773286017704214789058660358173238097077011726966233620967090279643938141685770721877468242870752236139053724493223739193336657101180502029633886904167002186469037755998874167626672794239504594089209826061818749318325864993974840842956829298856682722318942877056512714164335453162287071732182791327182925368181860676730391006304283449880944089657870769730604659892112079007530249831269441079401784083971586894136901953267481636673426849971032767990234199224611824786278037076502362599052045697195488848833988374819006233247415959335603190388922606184986508490754345165842156490946369997413855565654778162482856269289459239810104444267828123715323164226699918585684599865441817567096448532989319839777291578432961358869192289700201298533878741861037959696130916643443329036746550351504279029228121740147643893743337246113131665894637942819024773667367161143253522055352009180165204248858471378573790583986509783506355792931180394824259102268323723376981367777134751915272346428539648913434045063828773610375146027716688457128281275138438752386913016007942013627222189586243167423807932141281222879169844394734995179102330004542241734561489867958989154547722613137500870048094568450364619551131976164368755888372205590992060125516032801735910983712151811070773519381861502637907040598565825788990486032867383740029273721928425749448688243286811413476832536724063365556006895452868014190120984696037597727670573682880558174781310578143385365844137440741543750238412497685334384986842632189706276016397992590282974858333426534569778682166107106228939160852967386430159782771363689022611028024041379756903945589323949849287807971214236322486409788102770815669388087962971318431547735964058580592332386437778130066237946655066398487046195700175534753944056896755216695020856829360535958659307737671722904016573643242227194965033589190578916601086769582289564172557872398579478781213189239988042566790459951615487742121325726903478334876359622216543136046655797177711007357414927857498462076410740823297297501556837923346694041897918177447513570364454652874229000252968128127159185989433249124248249097316690349185530973166924398504618089706293241376507233524255614012717369580428791658520595584786141355038696904535797324293093381829468838806647453901859938176628761740500874619091269416712560655705730253875863594712899163267338302832226085413963138135024194304054606382620089358069091324469010992868546861276953645740463615001201220100269165961159902237983604801284667551917069703040633560425394868803855800950161244021819321753594957457345717702190188771189423599592185769882301142533610234166808299318915610227700604334302524721727908256164128171594097067879724619731117725043384199328417720254687125531449982480116634406112593508301705732383208292013705332076896777492610005288683749177410508391360761973807817348288915122684801525059305471173432450976283069219577131166851464863877231254508104107090738948601561637032116766071654370776869064626068756155092597302963147102189943509088816274589813963375221550149492627727330005351192222029629772160114170326298364971129541941211448503815535904892399802439305851183862528551210424342937505976413864094793067594583452323250919182876677414046169258741002878055696580191266739142136433582639710498484893158959851070868878351603061747292667588062310474106488809775692646867965132706724612133512738698643719874192302673941814290122757065516040388980161519672862958550897111223052543995072074632990457526004984522465417429315976080183988648416275436917852849761840390986461379611412962970032754263136043637775215699092684696633539038930368934407335824563657562205218939428889114083394899541061840590039267358152095705120896200144899587493073559935263266257394398312712000567940866123578768750984739287010114458920262204069605479517738978714479577477785230262734336382056140765172250239670621050058122480921049296508000262079719572935248231227015961182852672016374585821119269560215511204036522550864873235975942910909059425270158518782406438967932207989301067719948318619558689999315749271002409018239309114404064807651513177820788424490597604282117344408910105732118599880807992062295728398431696432387467335677747175192799188470260112236898971504412147043850624238897583175488627347685778876239096479961177344074821217134652185443934580349610373562844425209677790219013819459841455883852015714777187679631351047303768514749096958666138972967458904894964422688691764970365592180347711300154513414201030423330743978679583236264184487835131075762577412225491550335592150830967909792864887909259444586452715374944395113969920821127517544303525366893877636067096322080026408992293005048190754512753462167922303589466077526264886311496807911448815697244663557680052335176463153610702745821209022016473728844948624105244763233983470873018708203290708261570375347154368297707392459744837859984426272480569251790302134106860948229824506420907340864302920771357347886364732749173017167473502450949410661637032044077715656635047295679488588714457766944781252557284601277985042553211837952158343637522777163575981955327565544512528039467575394890291516917613451743399514557872025748116673022886339455278069680627646540952041277098217353034787736046711635429921840747767270196085317126390570585325013681648190761641713336332462226494876772998179667405247425022547991726387154070350692912740952400561351805782784012052138318898990508378338490418616993176788032043003858876780960299687418072200231997282956849784944252822537321317858926877506989113073573140439053264149336797506727073486571679408954407563782987204976543645194985640813469344335471806549091603553648074117301616699785577236771591636191272198467879325880667008204258623394211197774617141873095903302445655257096702212655774323311145521889959521165422771902531544998283541480346142884297942640265657317036573871117549572305339031655248872157384489288708335449691372092241219388207308623959903384400443385720851706787573620558919180284107788056550596694022612699484459966481782843904336857857214151096720375564429983535593784987469489260559452291895738198932514801312118795745117373322213636631927521534944545705062023838625677301726178121266599778677614964287578460685483184918488546218633024961604310381442001247171560291196213840241190661152985718445377770192783583586502115892640558587571684007124536470244539294076094818084805864342775297144636852961605683016773408750679280214043106335293151115075827750535211813506438601673183326700193822144387491378809355812557927206254627331416598880126816538294330371192667974076046262206549773695821411054324068869872099841288178874791242918218821603165745667085719327475993934006758297190762435052512997328569693270795942582932915787276690010338175340975146528012616739300718548943869763778135866856424761946739898116891353891299556909192627325644434527849506410081166182265271424093605533830724623705192151721120381284452982156267441814562255311564848255320624098227155098586628638182686149848157701844925659545146960777656165165354894004700089904523631878630127308283208287144907933537531355942128656026119118687400591009760769684027202654460320206704551923444197108029208703795492951573244553066729857157114386268502522980074426077182112286015629374874843345960793497302126061701009692091291832951846348096538033112985768352917450689468335990403168386050358227769942657023832373718482410553665329061507580080570995087652914594514613341334898167639788427716108242104581504911995711112880229778506003178461259380535644550384633229905925641248404932154119436911794298666142974194520417633657894806097014205422827376979500412401857289766704690270745608114362370033162647310618012017011912782286225797544017827264393428396334732657860775552235235553173549826153407195331128752277129004465151224950684639010585433754639012809362916192931795201241764681916984600892463392700785075526924249130815363253005225339475762926658818440220563326306327682905333087294742534886555079743780872347753130222149249388309065560915586931311919850240899077127344421246888267809150512960427253900464108420743882122900361401286779177715222937044541548342313649731577374782019591580516625316322586177047978793270834214098516674724115371656023311806422989124601863831313881095422589561087735095158424055962539974688965818070616483045147262681901752387203103152012955783294876436262180978142650719467550367038785880169496385131038254925576452357817784309880581421918549565563303083644725216268453674191022749518715612120210789561864964278001944883609573184441676494436758149921059960259283845310376602980281623702844427288369404327466803946974907941921217175070892968061073459579909837109612596640407550211254599279752063814258415148908251266427477027798214583144073338552979321266537498171901414793901756592769217013929447078007692565612656513174105871898855781866508011823473510120026758407816470941648111253634695606678908176700047333273474022061408387641271623929061093705968993735919531376205265334863964367996284841151282257269033551221944457979442037720422064429569560713889614119787565825750455979461096262526436440022819216109625616264788722059300383126001476200217715911269427138836362690920281070012599238004649421773390574573232682906749796051530138235021189885621661608504242395848187384125423715692025686032421836723000147761112918758620286250683087971674475865641830530331228332644036545877515876276035999414729027875258217048485903143594445249209524193518708076462269571222113563214407420755599429726859232271421463004856752585744203291825516480965879701109934820211307908095103065259509944681325549437619936687751678190869867623147640973466400794755610655602722908727758636013616866950822674599384351123474011697523955838750551005253277351349606502955583024122302187916586560810551802902016019340857966281884245278206576666533776417341774561990884469247280667186063200689323278695298659040549544145369791124817288747141023239449656952377929410780964344133851213068422112133275052812607019771910226763237772756153463733572138038297818729676828315869752040481018915996309198601370256469180036216602844021605094493510898361716785058672900882296836689076178486800265018685866981985624668074595260738517473636773312559607943928031326616488846129503716537350723720700909987402280132455989942627626763358978709299696527237652770184445825482402535589713148830822520519124945884776651146530499190086198539780591369156092560484144101397609273917083987679043155301072534045090590911357934950980679317427821071815571396379988531566786034352894062050553975356484336427188027473241042146162894718131533056616391297714807370838684240715069819001341331887550037387507664088699430838787607971480553868744737015119317827806502098182456216614940596381275673714872391720428514582226408712658490486623843066405521443729490378265451186212406463664204132158011821260848841267461591270656030537087262367371226712498039620242602125502523848472396734170942421201783364223205490910990031388597408764244368089925900608364421450148124204966330280231850450895848712749408587931038430433736973341960730237795652613624679897542829249686553515010136162346523765528568676377420924891912611608730300651321514969928558201793276971063547531426640044346272486344777223070231409709551019031361697201301402444159704381528465660888706985738298587962983828544960399740509950183466379783657460882580523314830221879204909654625666624154925105650140080925115280039983745838609076012972076673113162281641587892935428029258510554672900969907212518664362245318702222947624960063214808893286104066872405287511630258548606849992252109969247656148376883300251330547001290894718154570521282983956203605597758190542741902457040641948116955176649478500147316898340395995530060480020950712570532819592451626402964582012954010552540282331046155095577307560798677296108167865715066872138413300125049862928141297325255336077256510881634012986338612727999339779672068371907966390811714404868056418139411733092655915845821064222281854044088115993193899659586569251704854888897920818578231306529138696152441369018098036457306126487494367579374923279488731305586812335666905171674146475339445184865502583611620943022682799904454342665611576318112718620993483253777873186053647744608400300374480946777317084431965788258404275185577962648963672348614357876625276369370117801568845163057788551793617914354707982475502757881027466871671782274012820722089404576923475036427760090690635401436886555505526740624207075096923980970368115947840662491025351386504515532238959437445390973869726742912297928060690151061550443640570437400325927344967506901113191480867773869270399316735009951355281371993785651088162621015144095911661066904732167191212649268618440215582685564568383801426724688045740628247987919015057301486397674165087633765077957424793313891743732150033752649168824678607826951335017637952125378363403322332121713334578738428584979867548391561520180594652230270889232814049913945263135057498972461087947525369398384204721655820354749959157657494946655528972171792015191329001856069907383330963835887353592606518266610881965035127206158690885912433083971920180888594420688377439835807252535851323927444665961458922868216818194835608106922612961709674734451868475804036486406828355015680300296046422586193374204370472764005472032070105808518338895630285403295254153171432616784985198399830347028903428467112750530752004248265748767370989197029823099227662268367944074871912865531397384516608241348509148306559702626423722211186444189941504298236351724924701777499232720122892990664383224032158344197276799190820431272257229556037011868829140231510141725730040069217265390939673539960925963079697646933659972089969743703149556903527448861202787532486600444343151805095867276785899186151566146746384093812319064582144825901687547966328578743426643819278094902321640385433584652154448649540329652460140395035562244238950005207889051320760706734960962815484108548164880754929644977110753492432902000270844980341329395718499324842889017309746645539691442286877967533630975302639012758563084056877231784345416096492505882377804837243541830736118394612832712028603431443734262222187256279718540556171489925133090377160089221652471405137397039097264653204525929625948663119249504510568992825465543577143057007687188314757274900592182957538216056570475147499451739661371748885589964142140029106718717575326276258938287751524796115020366454122611821862605972873358477210644982242888616330312242766419053610726484695357943915987413774191782810503881176381440338763372925596786917258436793569000515748823550131012932522399618982163307763394841199118838948667066280745797708478936575642389122483696433366351817093231266886674827294226028908970770428814847539575517912627158892382172378045961791994986874975558015215398492353876980124698266649778490025528335346156347093660458394585187562769825534914051998464621150894112395616997118522893752538685441183506727233065653701371427941696302385452766727289722493836918404901312697016952518607535283961436783339922769495491293159471562331743501769399495319427297356893813465927975137100734964314531692516713398388432666357367885839370590870752025262016416325555212334167022359751416957704691098923369980112791845516059260895461499261348056819470372822048490264812212484421080044952123008209574383306581612031865384141748830390947857567344216124620598526762819777950948890258781987496286722276067139205566706760245637470266819616220024513417429622372579862029820200870512078348276040540158003545952447771579748992738905509166285235605844189087272851747634233634704752150874314490432899526827635587069534669867203759051024909350531739673325147542062493621282079254390296354333250557326778187127877785202151054140320926183409544322030322334653630578315094167149628539678515332650149683836338379743604624671120248490340456795076321814473017288096333853858992414372565650428505232133391663381252754248787837540632207557368407415885907375804626417720551367740042944042913822354296861060777067659476066047666001341371666029940979885780625887979996137787487397146973115860975064832521387960622869422546872116448783390399725221645876474631244533130180296045975064549923249154799825142677676079304605243844006536150152239684724040722669131818486262067555167822373880699329076579200037431695508208961734640810262959454162966688910853956952808415037014101947395234795316772148420610496683880232948011334246028746410287358123642874923723070219421866496454990346806041456259399031210947956487457425860944151151559301549557003510501079091511677187426140930725256056822663606451956376891696744610652836381303034911523692748970500462005830459946763193543745614122939600879389263479027333097438942976989481419129695202918202632567670715812350596300522653312910363927854570779434171728354167754649749628279154034796272136251043118375033504722348469636435995417273489225260122717562508200766171528523997703095034803512166461661073786515913379438037138830423570946673978025998728361941876312870409762212309945688474818273539138561220563635645554677515335077694855748249670572332525469269774772219403272807685104307591619644379886560098022003728845951120464245097831494607337999210378336177729500809051779448947935515595996748552135986769731900966407003971913167793129901457758711857475325038790539975117296929538363765832869792839625818330971591182849916950340209100666684779261942938590422318876838945216505134711483163740105351144656980985118827165379108490990251348830192028639299584352376641435145987726893983664364483258761851526643041608971578791915050227596203954675598317065654009003113100994373012752578562359332851835632016111200876629261326078986776213985616038481319513164708208859192593779733801086840807486972237276930278757632363105330126932454804846835564340084338966095764389737072958081065941056255005119985991442567588750352409113261180011416578629826715152114824106630946203654063967711647896326595868426101195917960304310120750254019910542935202922449495076729175075692426215386576586187163223479161107507747110992638414222698040602525770864087011688094984046520876683172543329268334592546333921833447516108488107428159846569897457116599634992317573835375959817866875799373830836851055745219087741992927709914772024453531085363927550157638845482160807916048035326883182291521427222123005525164058998207223638913084278890007628342800930748294490066748813496090621963785972290703380393842861838637430732415420180778663819344917083034049161441974853718204176823899373911000768781109017753862293565454736069214809044927211256173318860501031148940998185837820880281195503897007481249987329431154014055038251420554997943971605273616279996016970098160470085085858812168635790875138998283177919357310049435414839655659709421626220555932251805728498268542074936183800464128235869392753951886741170548626639601794555455158622808116984725588569335298212241888095161008920384246131640567365739710294471399684056594345771319528379442313471452525035885650227455832578062682532641365184201073242079366174251713236000968913001385183307439169575621424425912113866355273253554044659782562104733910926995591995129623456610523001707658257283676939001006261008594295320750727059185996579065698151687147498393515630264841396080686779222602558134377266812221451125813338151644415812619382630156030767186888355656326026434591265971688572031606544870265274335907983174386911469742380044471996052146210781644421425973613501488756786759150201423572442136286620841222881957599036315142889194248039765532966566264035041186508340469893606503515499467437328914201522732692309246070447158565723920778146592205329391492363154389395852960074721140636343019528176783202784153271588045097734783926846375558499037751499569971219464428021762229149905342760971751913500180708408347586658527584999089492397305002232016408429192930833941603008918625875630821448721569798679771256179316786170888862150877382369583030162120890080676169732006033405960912020699544668116948759143031542386723405601972573051785375776677720509275494004312784118606362585479767626199253099684042405823815710929965411890513294408471874909231740888170178354881082268608709226713571844428617863681751030331761258852469777690992961396543464671526985450932647489444393666251537765780868936288842987215144664751516849119199568806812064947511148431478696322312445442366388446506757147077892282453162135747109878279291369758986055777186285447547385914340825992464728956103858319329658276730315684041984187527087351406944577894710051933156432933714152565868456383848053445309848574567142164943669652225309509185119945073941564915448597542777980131858149737426776337514867658391495131150500953107027782722857088191206448470342911022743798783365847924741028655480577466179491753115147411895715642860773446270991235027702284386370581207143274886821985248009837967559384697481362490614478700055913833417158994822458881674735138417794289285384186606364641853402518967165132722104506181767604564459053366249944680911619853019920194794478266123909330035733530091992396509475309723696868365170709236737306659788848012856386346105892204296205388718640614771686328363925889287655400861176912056948881303944804897901952155152169147678296718007529019680989919395980439029480120409056043324476170483661682418806897045127316513286575084045586305438114753469730626256675851296366294331651429461308088353627350360377609754111331790545983112858320793502546089991917969188176601352094637824754455620956467166795103517152307190568335182145612180553290780735387887956427671611052614740455469165980737800533966571054011373294339490342348341630476519682910623437945091748086510171376560318800977684525778108904766935404374274256440308406257855814440881560996292141834820506714377032295381810680446018990088649075747367403951375968713241340060679486375567978296026070932026201603992775145163010463259470152702909074596694441705327569185002250208165195199346034150614098678889003365052813438382196143475561449844247992117151986048675140500359060560059493592509486406440498566948717054647858664394873965096946675105832123123662914325599822003188128217467673091560003301042353459902528291370674468668114524468265766164815753098580076191728971919695645695221276339973044349287947385209654776872629569636095925418759191265373436318794662708125305287066060500726037868920700945830885142385568143147981657028595254634028634042029786694656844006319000207239131793056094656130787274234156672004322717027561153092146428813804901023150359141804387349369375648263102343161663746055603551389793313126076218484566676898259416463828426151787690350116783142467319588962672159379404193108201242515938734155796057800538012689918691544710650256278635708065556502088434272035571909073323514697013100182254780325136093078388214578972528096876123762477311562076913209886325651047414545756670313791256798480541921199029037040550564494485284673516093809361249999422006097067760404030865622561081302192224565305217873020720476913759526735878481227572508070882608656654032054347789250425161721352294661056431020208436556530508153851590663784465940147700957015341862471368449168811647571218335959536392826111346243376053433848265953777815600800814384055636463713134956721769167188956027703058293835046426844821443546767652000689031259653717665247364605163578962461636807062971869725034549865583320098950042984955839544116305578946395008359358872493040554042786366791138401411282838498267090068739822145920488459913270503937720854421321287461056736808610784708613416615028313302145118238197762880856586527064460528383467671340137699567466912738363901232513319159054145528706936021967557449922863132623108699140967209213373373528264953728871838230546414378004714018450916170402326698492021807631646615109110976868446164389090101814260248507013942206651705725500563583028940354931577260648858405109654884827438442863025424791999143848576246604435974373692963207339927268016204940559394100678938338502228487451997726934538958695908131455356190160254010890804329833957053146577155686214789635783689455862206791789915416263001913178146080647162434267539905325229789922438774604162419995468016145278403590693953615120281952600729506094532941172970316683708191101679402106079367906037192644166223055085936377609324561415417022004391243454387907992067866391047192501247850913451112648417316592562803791473770783398808821817011198418153083673953952643361203251713219335085733071428563503397127972431282800474805412357885644804923749115275746872508922376071029165824925655190729640500286738841812922871556711867464914901181116373685757120222809448975547096654113511223665799217292201658566029436093805012793045719967670295583109637376155505407443792641806894421174608617289239037272937693600029306683860471056356754806243098007703041324263875965061132057322030787255053711979608318189430638539970680332432736931832048416502234776133836836691970736409783131305080009785509166739060051997015643084988845069593509738387994945805485869678554041891012749105810117820926382533984288939818972156803794979442029845521476891696622345193965170816582498792369914342967119725232451256403592549396618232000904720783946876969646922044608219269590498047980739871910829263150095808800544963518389414698339150464190021221757205907685144417129534771907249594520346360944786486219180234348750823050974707318958692467974195958369602314862365520848643318971644191140656905204414045956757542745549556948274549247740775094343477514593456587684014936612205603687699810377929515119094495645092948266593768437821491586767078883631498026045955371433544281042721492752486723882330281856220866853545660636596530856061127504502609658726065825198896375876278958325664801049742671822715209108669908423974462731726423560971996465703384605202187266110821275286576797242552214578894671485855957167205851266969753055265304121871889592217573843332681412218901363439149060964187569601799702139128220603722617748507922847042357405128883206909698431444181856256222728818525581402156851394943290708693167494665921875924444251787941345928405933638670740378034040605240463875196163039047102271104736834867490422197787219405770415986453613749842437020866149809812730476632907599546030050377508683264775826578942067452213964776043541788579758012694984024933595332275396672917679298838318937937394717532099726395348892838724658806721698253282344757768356127527516671633283592444086295013972119381045292726714119560423585685301321330429067880305698104468557931062657356902910260196730185357421764552147751037239708620057431985540659401780123936585369413153686952004263094840269132061661624295858598952723848667056723287681437881362005370463278137094327508043130671210072805657232240253434647736617664006124960052216003673936188166605149983516844792407300836583911668103352014788721616543594728584387224497969078215447199312665636551700327235069609173082813428708605157866360631379143099835626247563241019331757360775945019912663391226815257808729300749053921160921555651482367487825385002947411220281515773910948321122823434375416861692264469366650684239792399887342360460033249184212452358007949255972593941402882324261813449744915859273818640121021185010762675796473221202228617195089205978518228107476011673406875575713078311280563082131182936095019090903349529574430187060125606076956852234887780360933396016249894682497420335589082775769539734686972284015180709124623975755485928728593403655847270117896027312981920194306194666299996260080058734938298749652694459985286200767620560637921557265217682746618592092472248855568869899291214235103396431957351249196932982196809786244171164422662736211383201778903649156879833554268459779254792992904100813364514884753722909561903150006190299277537847000783831769272401999050056303744147863495750978335914704276170591108402614146240990562992709178148581676608208559886839806864290336045969331519052992907244459238384144204236542457045683302209783925115230085674427112306052381397354241555149485650264896377995888865102394996060481184205736384343094663191228915759979887174686868247921948626438949048575080901426659964013496621816311282701299963618062308599975739581738061075929657811331970788347741414269169284858664750699447181393331118849246144417054801296568201125936926573837307625516201444817569464447123304262443369277646215445416627875260150600010364117380953005314984870030574597751288586938912975003603281093534668698807509670128931221202726151735868832179283664507183945081136334320202197889550424747990134481025020774563190708566766327205072794818076919623342182261808633658330968513759858261903309503736050307644652487181430608402900518015902423145802718643574064568615117455164441953003331395587121001243732949913110627120102718312890788388288404416050132463127357599610789733201655159685208582073944586415042827805186932185087585982492951873098199192335516143766336436666262197592042349030225198626853702704226114775048008765152778996833926876131923679152643636527263571069903857894119242162061213603868293810857346604048627066637919920219345480862511659974400788383348183385823361440291804506433444243159672056519213197705804604565414519411011626724571628980660665830244093670671529830119378878066913216002757108408365288229084673115644504133425773044343697470643300043025436251276349646007250781099621296061892540672388069203533586692220059347548076669882215204960747545152293098399376257320202216143251963440853547433700189689416850498198301338962796189696862702067169951289052513162913545169827411274099395135176354879469493900744392736378096056758873021758403869769600150374307237817597000730238921955608630379846707320217170530362018787577150233962996664275093076937683120704220535388377225064641515954393798728368406981416847886615276373773777515624033379396324983740138472378521226958431209132711268081239913291032847891900176648510134971125152427649398881616176319305510980655071589361981594684910161014496196725118383124770832973460991931416208579000553453276110628052062529472997256638173755041381507646020538638598069229180816944209742883555491970783419405688570710272850190606418250620713074514722075986502459447129346715230049403920987164849322324977214155280611573170380632748584790862742777141932862814635760729101960390408058202586120006841749607363268117290972241911293160087723221810005310010171745553867350122630898489814646046152601806130153870657391940023031827384363555917098661490387211038569740269300538179744497792649317932950320049406327256817226323478996732758904177279630282549235059739655693532618976539993098126059070619963434599287997302687864904759558899559155562673857566798229732946673014203951373254219423967352512513030095994270553715302843769069829568550081892533861907493831937659898919325568112049688506079455787380952373637598935365431568448101644397890265293727488292233601113093443224611742175315621233478852758926692166146291961302804739371230360358792637936360554481334777933911665703383238656757181037748651532817446518418465987499027649260226758614253560433637026717905232797864070261852985874890870373938081334452285408095633181112812939080569874796337562522609961279624418082329166174545814667631530616489728688296115074606734690542264955201005041445190252714910648796299172020303853443391337739691894272172625267470107481956337028504458851802151194299005120814811717303849213183605057279376175343675759662260312034037483569484732000837731799075048393811319240249816888143171234260040261117382101617330781533025934514811179307147432163322351464327657072503337460519452329698969683193300455239026459095415993117404619250510377209984312401400783524861857882502720167622515355016655941245431747219774029915802452214065865560794617948339608912913695955534143118526294980215348293866695797261856280981060012616141647957373843203546678780093089670580946655369776505145147627451205366944157017165038023252810539661430955583694857209972485579354028762778099648298740889109811908520588000363999853241349256860067923624755419482257670513840680075864573072286391635254201575795213523472257895153783344046549637375885829365869143112700141453330084519413857898657470440225704914463151779668857687466375337724979179755044161277223410659525944733262447224224925910788490321454403711068810606706318238153649265166165517631176491709890067866306430041879119841891291616620318404275301296916550825052871892458891514881577563289053556860816143830384621202534208653094002804941958107529123577099275266443179397905931158495183336329023897579551765341364411850378653206340742005209078388729710984862093197032050099283362211051380259124485163546407967446024091787744556804346318071628018496824357482692874971214410759678138925189896467978039520376847189410312808776985453570488675664527486910606789012083611365685670150424235597655523715825349074049779616777602147211854138906474452019030769132114278935668197601002196281046976093316661273852777355407624163091009090425682432782476787800453394656787386389210615878696022116676521026627332098717762958645561061339619095490915573091706128406006485771750170437013859948515457975352021405221306808347369979119333210911445148903401407999416784872590589668123351751520936986736445760876663652557841113548040516531525419750176105485493414522161710584248869003736998015189995047616641516111180897937932272281123052761635711056926327385301596909847321041220943370359285813664309408353400127055973690224537114560909366196540164976915390277592757336523632111459485309712534694391695343721547814725690784673151618181695495858682217186218254519185648586349971448537177337078009511804071867334029757821983274034412910862760684548391016892253734297686995101884247974607728305397350355723524872479483708676672730606690807259151770441369021117505672981410678831223305055265304009837715750474125776497029610914944333960175955281233796855555493777467690456238334912815517357557187148436960597138316601523140792132652888381481905869830457530866795547056065032802594664198207272919173342630670282504663663070775529250661834399029132935490823963084241314044706452023041239263647067451185271424466538764774905899030190772733724894630673511874153327739318275282048883301032499918097782824277530920324549769407731400238884539748100194057980376772309837291262569773925836984270175608931367738535128523415011440391231081564806051577473243778195471864873246460559652266136393500593307407290317950566969835746142106941828105448525851822789860008575733700691609441675824040132553585906490208562523916002215374172968017247238185757091125195204500270019061622992923725064781347942589989081612019467232021599682862365886971892947097699215818461869810864941534854386658348191723120260978268205288491950614903159794856847307556746957826390912139424548587143699549623193741645389394799343299758973899609269091518147638635295579968024021975689686886124405365007304792912669604479006150336997871017855117630466346100295284105513211254076319921285083401333460854637776204050241085508184325467531297967510236953343186192036652753422770979243029348626070278114020141755142214959083254322542485697775153374127560842691457645322954197928309298429186272462408019920595878502119109228240578649661478317851442409307153975611905287644367980371791843219864000487051665075309823065757651520700772571669446229140995095498086678797374098400384021169081139426757901044248201327671456138051195166324413187689462483891879932928956702392497451485440955755160626095183221755149302523815069695836219107277057261460992992137792598581758881107715090168198726517910531879447309084885404291085926729701409075345977514742750763882833688745616776162063648513049467922558265918011325021756053820144103845124487673379218644415291353585748273108220231584246156101513073273155538289244445831238776709185373222426953440451763343632992848286357572070629433914966712067889677352034501794060003906247822640654068304013089554863981894054402224440930088518114305440279243440994777013074474189002101262175979607933254358549195157607723842701426182475246884429741391941635037264271927488158762611556580166482337973462444783314161431852851725011999582697874976572648807807137950384570114989801778151905268171048199785792031470232479252083305699321886533977164444054063724126353910435363265607707435627468483826491981945712728843305914586655609896821380708067358563463990394109335687599064370924230708054485653424192518872592522910451909791199991466959137991808678802968896171523784824053518684535916478158242457937966112204789949483343302698206240863322557235511345730969199561814835492816780797835918930757088981085332839714651938215001383502860675563723664474788686774444302711800263168985278799455105518491972759555575957193813359376814256151019427002122636171994381581829571138638406203648795956207140792692544670826111466709995629125134104439090790396152553216219491444499906827449610520210272467298806392438307761364462786596514196039054490803864554836747184085383819417282082825210428769119154784920611929387761905570460262920567717174573619554934379227949793830197748174232890543559299188533843930751590950987224547532129582444322204322103066971797478918390366805717497509256429653573981157984807194367302140174509038749416980922943832962781699890274942668299357380297015347207693118680855426581389709069023071506979853365639777828180728940635041388306833830625178151043600728766901329992844589437314797204159208723071739058852151833529593384335846586905724586056126028519788408792382095103599207669185173046944087962061055558203578516993726198502137319073361843161729875735207978741144166762634872336188696811512595328242875944702676302913788517457293331667893463222224383143676300845365652041873542489263351154977598028346600672754097560505149488785793343280198757638198385832290034793005524084358741235695236685518166015581084643148249173243977601917605093382844854087748161546633053732180419646489325463394193910819836959029104695141733891759604311356028156051014185306876786405922337671400040688539361188757166715811378096956488672751807722600117757109450710345981400456082855175810916493038396205004830661122069217458423702222402713996626973043754355153126499280381418413596467913353122658948427381287567898901368652487961379502861471438700868030869233999011742846706975275909812741195539613378077354668379931728717293802570223628734135301521948269842880682146299729276700678488246382857343059069726392922684096835262506657765300850993605584310000918236505631032165145757816528568675354881214073792742217935095811338512768441830815041336293995011673980823587766429950714620499088614645322532329580875330935722443948882265077546519271936726381704123121928621989543930993164598296996648094860779540680143200548988567834998148208731726858337583135938918502316802802708344416363601969354010653777286128176512354496558732554840513585905417392190384653828646128049902798676407092584347389255505207813565314030995041257258129952860684543998687008821707018703077722866195107984896560517508146078270168815989420499294633094195977028385725123854875356006504788086496041113966850563501378052486319891486024834303788863212563897916360932207886814740205817767212512892911831889627047987312261989825281017713517542487663186485414450675953610713558875532466361398584094661203531349612610661534746685226287750120891945962888807214869862524317875577991402851318896270417409230110334939866536853571462195141254047514457439337264457706122050123354686785495624111210096715361846508898717667191931633602085959211413450249560906909411192298341463766573543741286690365052445668340497904193099690136028488244503874483877826895992137013965809676994573870415217636709947138667687267658802645235178303121293419036065518141956833469594378284076614458712160840974996082747961594279393131753907135659450358169381782757310576009514912470468626689677969441285961989958152603000351512771211746479727381261596511647873843152616238563323072389308576132211889213260526186456884419707885346098510707901308291531448965721476980942304529461929458810018519417263499793343433427783101349207442740764479935271253191746275088868126125253679636396562948949939932440136725799859182109181840886015664086371255078313289932570854105665419904180841345269822714870612594114928934964925843840192059592863804627717442284121398980745842747042869427786247921098562516961616150065867957216405233846284363316052269672786014581557467691289865016381217542923511097229841405860143368510823688715132802788943795117631567936265965536068383793690626655039142136739713553708683972497308673265088469517832349536567256879045458920028272900101808951940862347097915860716792601869182415429425866835743024233804088786982546094982755219798744960311616593341121326198331151027239917202149294843576285896267350191375237298363178118375138697093249273815949252379877484837837966990088343650805606269430607817431085902420786172180826709604337446424381229654244763741232869288098432095527825311168161965299858992660969207110067075687416198636790798024029326127069895179035010494047478948029701698421223375248779668594743182843058275152484303479956732021251585582954761164690064822496006582026034238001457979767307083086200937518966266154147547438520857223092784045601144973886700303125075098111508765812064016966482207122797189826132539405216896390828725569231215957295485025221902874967348572347918312195124714271888261652178548208088785169351523195247546488082005897781085573504596836053856124383896389702300445511019175454669075562310659483299198660754103012481516739196351936594238821761314500551289624837079937436563482873990933060259753881216161067876409304920820140015762625748917230559552800426855564393406454967412258157381608571928451587243397078258850514942992030571786891532110273533082592093967892389554795530492986157818074324286951979615900933623439061503741371080976299719596388215967254087041432086181714799897370502679416803274574951243144999253786948962093691535068818040676132706579269491405375402466809471094347713137131892753938643916458772893630381365543490637073966868950130096753108612225240449435361968287496613253082683061568836863700339544955664615874221078679614562654750627296382784191438650461901705499714027639352695157581637690651603075963056018790970768446276622530610365582119786707696516291422651562290419349993429561351579176431605302144317058505218923564248892156294676016228191029996393144748958033865525511611266806862022581248788417537450195808828370662533270955042235840506965414612615018984914797731084963240804597758791784694912186684104732310513276422756431982499765703088126982712940383393600563306443852078947393493297894485178559965528304541892010309972121155878954107322168658323032383632423124356281022782449666049159565428134620889854714021305001715844461924981708601605949620924081294059268267821547347115280724452651868573667222843521177153792427482964128436746032060165068009005580055402303378594694416139137568103547228834647682299413504775134875542246165388693859145485431351664585681993933497758637322110695972133827143088889992842953954418902818106382516905362270856594355130378258122257602780004357822529187991161122051457757448969303216122730489833943478855888568242413153584183878640465423847891808593935252294635834387330271166436989694175841445209612849879942476508415999212066530054446131290009490874370394245083741498534053666788100539293399204639900638054285145201029573203433966914606218369715681600317616514514464704951330853381842750004067250250370787347075586997829795364314388361891159344241753389836619619759735902683523742119999176345055838339584578826059615357878553438288774993043011514066873460190961890154729215055279595140148841669404664754578689332964037740095577515469339998000286534321709739777119706842929803637681395311751137068538240442674211664054936776716230543041981516338184307702790190798871675347476934198379601037225694262163367603619094384212816180888298894642450990776420875689777843397977144308496156284113097573696636025703021260285544472832827814617090891112250449597889789208150154473657867144357456256899375373922100852736030057602702466675416708902244428307409541552129197966334140926774216585358292745365174261514338649857326230061900521334305365282901628234824072454744449004558906067522876589667883034700306633840648858436077041968952057551647180229085032234520537671000973764221445619525465994916808516340273602622780872709355701617567191480378547484774238744982132778668679962249926690280365994816851795082185408996872802584411544325284915496954903980038537676505233446001825615866157467063834235446976641296511765346444225985002370005925253363554406133677809090128468295001774533167917409482849419235927198766931785225791473794501853848815685792371037095494516538973707107492474841606490824951583331335327661714604157849046208170193731184282495075478889193232118799175046272724452620954136094682590753190849491558308036195144199576377082855021321199660777043388645963633094583314771708263808629548340285136936331353204363783464252307793098139679026831496197179581212931607063788937169955071683985885224817993594842730399074200688610503562736645121068307419970588172015543733090368537995053908006629213662311370362951354505141844135803836466258028140270597208971789575427581704206800811762801834089796949493415897844276733956786801069679633748927814244985531464782989866595705574555960836534727648667284079075594656674527270452092539895836593047774856635527992061340190417486965870007703605820634222581373380750377486909827315365450849913460074999663997441448884789270817399019438760565695261398110363976038444640462463486452695451477984056195178839170368323413586498214512496498967037583191452575973693115549190280302764560959975064131500986128028195534268727515451249284209718551997434836894958810765298215037634993651604265088572791305832934085929812033635526424481881239569403184769961780957462100447901825017464177653293355407399811680591408437606131220351849589099446344857152186942875910531594547878466199136829384499402968922314666643306704159109209707796427889440110341259363123193725217928035538140794838429095617981023232889713897218523916504287920190935231088716130215267526531584399048093186861396883177057003459683323023259888478613801093268916642838423871104534095112651218844837014488477053173548860806236048188844668368879159495126839665288057076666759247683144023304063162218497989796945134819060657650587141816603590436820239750320262166577541800020468376483005627255677299263647442646350335505538704487504034117913515513510356368013952238541995736584746149320762054376196240412313610137909547258460931105968749382448046265553214398594140340615765470807397565550311034288032723837667393203898295384247877589027454299043042876601608897800638448102642561783038150043479572169885036753346579107032497996618657541006850089909785889509593990740248556315729175961697311771250900305602980099164838123077308371906010338553310872827322127438313752418186375335724325375498827181108430791917881594512091255315826231172408335255189380167024863276945942892170404771441024119227632397092523597255115542476210532343500691458250087965046550174327406557036433361698148728728101200351815708143209286105870154722357566088893828413391072043031207537052346650277729931099936056363617066640435237164228161391650429084456371353573604531305131856556047930855207533632903613968820687485337366577309538517610098408799148638310373564575444123290785755619322804419758563382154059010267144575733566586922192988341452960859668172582011999711727749222305100764257013963702162963811284519508169650978173158390239066069027953061511988837488789020316646711498091236948733202223380942667623892122350459967532271941601986306268493301681693660995254347745838900025190600189831007396907445419770193796401402079740600331995765210274446114689070806726760367139468780162474356544062160983889982685203475650680251957223439699834154937643451481554386312600276032678355979191621004869147881623132785313757813057972076196002822488032592717953146777215754045251346289155311328095707791356335549395329056902890722328780383754163608666591558171576937237184533484350692731635665830877806421614589385931770353955650533209773693397412921646453003516301776644839585018723975618022836770556930768975932835093532647642002264269754112740014781313188599746544874429014571481432803240264186664801328976676479646859437337793749875812154936474060060593325235393809512033833393465171776578204411515953921548558033207492964786042476239313911965878360748132644856723260337188195809406969569598222245530705950792753919289058954563845008404233551550964679420284543694989440146400730827808366827696317762638756643488161206399995727310681901851891615336434312421171436631650665408182397791235000584674193086961757798594317878296788199585399547345286526938884676037531149136702669051911303224205584320913629002926771809329323995389339798872107218073228966118616328042823652043144525826221447069980093686776527700762082990393647486693834783547278486758988520099037122075751840625462015723724369070662939575048507599368433136349174391975362900354903828476934355489369338017940859064021510254816332079382429476076349161853062763129576772215021074243371112363961855572315501959537804166439885259184491621455279116334207163622055649877569832657559992673896915316801090053871251337258911689530880684547534275527083289734266593061695412147116660840695324236794298090068439314384484630982108000815163946785829276987868363710161183963351657532441947807649337443082965626956480208873240279525727124075534440991738057981680507818932358080193930722546473903265702608970639385747097503395043485766673724916803281337708727401384667099645485821938581471901246054876959750258572165780685235665725807833841900363398531162541996471298535719771289108556132507145677517229311745905427554987776561977686665621440268235555376990946168449036961046569920317054939368563543773152959981593873965622136544696996397018887337177283195475810634541926747575904236664881425301033987754309912601481715298348583499062140581631392744682309317696612217874048653334720120073511776493395957331095640377888521633831539046135593488693991636156792495300263074291261024082950276733426632894965832923310075461281885011352696219706864175060620979725193548620266927356717118834343866489113902082309904869039280634393243381853495047422716647107259720514672954873158707489651419148956237161539668785128977811919883483031814241436528413071227641446287417587492554665540527092804063721883978571457321008617624398133533301437519696783835404188970557130226368678097284301096709387450975303751154427426087753455372964674687875486172353143478800529070738411039653517376345668689865269602098052053560914615936144548494459252790423818411940981124968507829619149793724010838147387942756900148867939554749619244489237408556158669017879885810980704742424161537923221237309368464082064983538508550374199335717897524023818330243112943589453249871894759493921182026892922133199819919425364431006043059741225076101174968467900791106070405406073716219449046821269811777430420932762990221352663752176902854642435550258717266703400014707293959131343408542260228921704768314336423816127732102050113742070216381294560969299356338070551958610583870660986121443860749980634958674937462300909129821339770424982614772590581175048099070023249780624630638841600435855354188841533611342638979955583644651436070301634163425941165332972306656635601559952926470409957828679767298547573598128988494573360341605855261524586070795690444520306875282215131507127684959357551784904217477726582027801538031694760271703052057403120273757270817913399057287373089254143404107061439153923300148719962213614133100569959008864316896062182289784616543614434627319746730673426868027004939379185963995539031086704083888716916140912708930751897743648770543925048272884749691919610480325233635941331775287775113871070514326278958219312101524812189174155926631822029324683125745416224305905721051891838184343368438295354372045229367914700780845620339110281086199070457142110953942398476926576727671616472716199542352357506273853198227024833232498730300108437146122983278901913948592996875060063079358706802168723892003933438823357729591974655019377582237550077260891648846836388043350514714494771331441711636173284471894958834578628165867909822664629421191047628555270646399807642772084060461348178205785505742627950392854533808009857938240737763573297655027058137926998376025574080278586907091768464744256876140067589600618258010783206678535354592020730199977387782731755584244931659701837046765891517960765278059186032317290651490328048410805646890560016896438140813200953861741389309760466321913421435347804951528701707735067567862983059141035460843133996310806338655222858773815553059810422143909479418310354296668423756056587129743079054368772957659140803599984329189756265739865419491426086687436293581110938753766913073227239678345916355685223506715704678919527084692038325372960293075128135541719843681389433458599956836897992635993917338313642195229218637580270056344261688087708308473895635895387496755019189914585972199165483343688225185497295082722721353746791445376434976004377661772509425540194061220191803430176379205137496715188025890090304464873184636032572744167151293831074450209696255851226000820302859690078074469833050529539047135962506950713877404661214210015794465692080621806915573253662347676471157868539851231288025183382243148881988257226619069059383288685510819269806238143491371464881065863217100941962776981201196389941390149332231287060482353122192645421634370661583977868736341989182326271598431489700617252383650565766961879639819808471526965729922597736787306975314218319320691760993570993390076640338604375847862139118458828499765562382587067770687024884887422327019494379240855621544637770172388798312325485159309975592483687400867522975437375888223011628796414682208463504433958725176742656564599790102025914127775758915297381067547367080904046244549066414108005544007591117841723412025416789177268489032600324525139152096615360414532708984670193746632492207717058983018944127494699660047238402068472337231810900505745237945827083526736501719612734260083379010289250354599571388663386520902255573517837603766712531906883519122350943589231793846530955663844423089793664814624831073505227707193347303323867471637514539284164592831174967498918276903101417182975432079356323962259563955941478212697704630415793038507295703002949781610217649581287342521547934373253518209023388483748159038476545165118094406348677570334717633687141628166483821022514024812174690145450168118691667420119100870439674625880586687306295689257011908458733189362576129891666993853597223729901499628481504256224413755621668153429041438187180111644020513193594210568739733020463876728293811277940697434200793289030305628736206875763109781893811050437580464118185847529212013735331816438802993588953950671939987368787939278731430351781051380386444865528656539473123292602462281752185092673152890037418209435539210516020848810196206680120703552362860025250217270046426252971121387255273920532619607288550242059043037989475132664582823983498077124836850292060069836993917016404025347387213123069392202544950276745233930439009333448961683093353003073485255261653519088618435233885328490670929476301700881126888226291361230589458969067849494652380330350572184799489252844140684924663531073139531451506968216534463258947619681139503596399081147858322604470164938808725560124590196187357088309185361700203286022754612439498325694905275184004255963344960669388638700869723717223352605533085332065714315240751206226666905902866484186324228181890327744529475670435422982921628342838479933779404275556965797544644320415287153872904102880288947198329520986589655649377405943503392202703523274936492224251323601321869266497686474038223981162183157296767495100863212427374438083608294911355621177491510257790414936704619849790700865413266047652331631109214740703546523498519720037994946462784410083087569437154046110626820675684074750360312061903331585203380106974245661449113743422639377671283004589227010078649190906337353385378113201004323109123894801598806061209834351121011146814519766127973632734804428576553496857951379390045873636679776754955344955720852548867327386433926353981736022487758087733250824653444365793944985999460980155069273617090538037374509890964000597308491134043145318544676497253477771298605731967702008673257032886655458899730223340778949177476907201986242096857186827773376635301062133419877992625053518137558590628228459962773657095162970150321805574626402686961412225797321865244087034388882156380452837881886819141163675568305841815696417778158023053589427196972749353288767683671196900257995838945092805323608441050318819449076307451054189123696247769300774686056413469868801516917343726174273431185496772313419286552114070541859732681497787995295817677195035156886855045003490058431203973167432358851348511167668687571897661006035104915814375955838091708611316678054679398850109980849902339892811625252766848225332966407780914259595460918425521548995320454288011141474544992837740759732891732143526076798150282190494671336485032181582862336187841902412255135073894391865656121729802063295767015054546708481340332301534871430079616500486407048138233884192943883341406212971222372314363605252286366798910494157842712485623674380048307825805335760708577088449700267792452255837887012439047605657219056321914257349551766566795647981603798581154425092157427852055127124076298226273133520256584667481240568872042326652606295663932109653161325477587760898949279723019591440666995731060869888074641271239878500525925753205277844300643096552971136898702711746179024494530296085450650150652596409024801713552138278783229529336835887175162762175096284687033002714811377010547278321226800885767788043356804697746248873477118992419324576688886336199111236296411540911699317155335616479349140138730286018936690073849887100203896595653335278348972887339995223353395339503783500925051071870068389011713573558965451059324281765069389761808846397986247609156115002020816407061599188960341706765534173087128993881797093437990395168306907044792734460078374837203947309225007271391228299933639548366847777528768250593364374010010918472533559093535650898321398617908680650681463139160100299595295653062011364533691611361898204420562247762736318533176609870591779028166900652595412153782979224727322030607195282353344494732762339037387568600424656845252942615931032753350773493598054131019239625062875985559493644454580390034346068172755008013255963646896634427675605352432332690761995490110126960034796459943604311867674181708614465937914257075475201591060476655960299443333298839944551862906483109920049145770905907006958895723433961781398819153963635861903711755387863844720835245041139993375251785957069506821717799008300590448954653008270967825004748951623141564024302941083973634865636530214275661317218368112127642745980373131690378262423975667405488992591666096680821971060778368075377581729643482779179904256026840557521591551488458188864238521291819033113630654593578988758943963400803906824506278822134124687808974450457455854184179926363869850983348600967836929832304650668273977505178734327544595916041967384166834826229755043094950338872426231455347637198501630174504712243024383825180411298508338119122202532650421211444567853174749110946017281723488978694358342264220335606271374965151370611681225949917734468372397851833410000023724433141134490637205361287070716220726314898140838684289962874664699176865201475564521907475173219430717185512458042569316978247287784747714775643832618033290420584527220107815633590929566340482226761193015297939222111659753735183276208575773759817664491931685547714260595594698839445753689715483786181596273542727433973715688822539829660825053247473645874021620075054144051404540308559090610586900708167522857304010814625051207412171092259152324342263496003512878171446734482502112965746831281348146604300689199681509343083474889402694158437291663812846190575224933270295286328360370506062685378314768434209544983243061379650164821870614722011163309614170999868595504334565474407452571112791082664897078501762007987362688578932003958606582927569625548347018793843799649611059343577932034123423465339926322835033590739077377191062702922540520717940922646324943760273597330682058314478374286630926758617226090908224498510670964525922841098103559794642728362524632519093266455210097398193416093688694593718111848581695422153033663527119542891189089164889107463267876106530957573647404677872598263289845343777123510863123600214066404001894858514613038405895420803797780939659701100230959714679966760218871490557189690562261764768169339962630569270093637072664205385994191095607344947243635903345339322404415656338107436018399566001356000730249031425067520885443229001585763328534530829500607482730363661161436310969128210574676685135572630096003719762870013153668397289977663223532648654122951502813780566091222400766205665294124002897854084615826737001329742848957625848745250004773036174753491649402711773518887360691155393474893880631795109023692607421270701374378840723504011323647420437053061110915199070963928952723560305185826236567902813565563543288544767945570095745841008031695913573036057663055095163145607082938539721303487287692018895677700616428321341968977718952311143095858628352203211171830082052304706450211823021729197878150418780922716803287314198907124232083391783013871732450034895917517696116896462398413359878652289631943496699274861497193436545602322417886502352458203902924788181816643850386289278684852171346973345718361702843574464308660856476991614706726917894115332310345308063546372815723740206168377825881418466943436626622265305750268768336082905570574413643554938923250855517146589532787485379271179568340341402497078367776192337887425802517275847465134197159736857398193409136619483729471568951477984724908642811512025233277862854729085043299007275609797719137656210965377540301847693553843628387723954645789625217697915829357001432014629726422163291894039206582178781026976585109384843648473357834206982725746974019985169430406309384546647268485007150937155160625170950098366090736590217754896648104843549488640529213913409733710022376736210978235866539268034622727982169278890836459332530159205852031304582023871763294075245554940047200398449857770890625335969406717972961184635610705367869139738366660011823923067538443671093278859737765631287867143994642408127903097075561570777997641149346166094750958068043018623896548351689989157761680793635996201562141224688894046362153583844610436298471753179587916624427331032900225646037899641979308961897440721560383243295996781031936470080984581304942471218633969292584682972148544833792252594201790112878240029105930542073569217865889408479098862757385448034256819991307509278713241065784356767725798266451981080723289536890571322434638110280963467882960376795342649376327854310788405356448961091400230018301547402158163335504114364422836438880111937965855715592443978820441962937792013862068387352805073676208448642976866030349742673047002660318519202962229087052094074963051314563984691558313331922864529464367310855997930818545665446056857041155867895260761040774953737220956562079916073066778916439359392305363737097926886136515010792785194119935034857512773895893708790181829765833785665296060599162804837513555608128265135737431411407889402474164108712866986106169921390081714690762005623736880793637165865479370293839616204974204695338549300279142620103120408232195202558737134539478390243108149532158646479088067704777158969110230717061869191127814118011249281927413679368080997835435539572530774596477137429413741271323567024495759996873720552928006104868356845894455087698412370730774000223740804395546101732577989235090872204253051842703274582024059218687204798230670175064958545235940593775404217041054565624174331007621258987942059716928311193873120810377227121470791119982444480815891739339827339286635122657351726565411218095271403165131014781650727486691905047850110552867629590999852250259509306075629835528486463228504278016551389285600687461435130743104509185825581524750681339248659233317110992636870018012653699077346622333172206172051071645430287913614991106940754048223108594754362557840814257099885126636073781614205737047864898127330453888350436690037990593519572734458523133079369218299212394255719954486809341363906602685657519643952137767417956402070336267737647067195779679194652323445924737280941217551912654382455532092765906176376885487549267554698102686393087082834653965913816835125600250994083860867950012263725720593858791458258184577363558239094935977745438632585688670753167445204532973429345350583603719550419856909888976708513734158719073617164040687179649157621664566230691778219479967777974037937676419380755696803602878811245577758821440453910699472560983195225848474634871939479481256013507669609908063568017698814189140435013565292490757491128448176751602259581782324503994147002370203070710499945740091419647413322775326154880800377309326528847530318561642411931644442483163084088908925217103467683848288259629012037355816274015069861454524366088451051533701672161554779444226924031431480924739861486630477863725208146109806401101598397900609294828115315639518312594953795052083451037120393274538265245392818081854256584772485102380057539053020325310856217159853459603571598824776879794651205765154415189082785117603909643705218880723934359897192983582836050990922971204424493876659068770414926867171031019200059972522114680725515351850228612253328497926641816157073922168576678674952211831559567241605475236843964006131707601652283857298609440251974187894048964248363866135726245828722137014256099120650563121545850370088612726690060700482332188302788632400943745409278782721546914860824197512910404948789335959941123312716379127947876126843449989497535817355239815115258061350070835217681194300093343191123663214691390725223394087773070049617708277516372439156364700014048584913453362826078654111182128958757614086099103337517476469463523512405697302494391217596058568306661966387784425222406406819762250960660213523066464315747124769888959084574570592254505620148528927715986233073271594098534291657353410362614499054653001198009609009336483476084470285198509418115485387437040487914897666686420760258139877264291779396189392322551157861302359684542676779020602024957538017675224449272368588459066298833908363604486503280409993009584117055558242102445155727603851962976049292913358223652087253179077582124210965303592612941192317422450700822720000292626706366553125548195491353746528136115794965308763904684216409116849378333253992357270140813550381362927598450726602031493123281104134668764659151733047960233501539193342248440646609212349759338083788505340229182981598190107101068256990723704811245445549086079062879358563564131241743569088781549191458843542654754297218968362185277862690834517133662941072356094524521432253366651937846268679496364560512438446743275016479050120814780998480716482123590268155158925238925127889587434644532908625213694240788581368952169699851312422601752570179076248084237361241678982071182899516141714405476170064183893416748246226437391185340506383327225995174561606972567895129938327540127171107330327454272867394503749394549594510435578582740985281608538776605794973393811271142263703747233830156855681061761608409791746307080044717474698165955277926274276473868005247815165423322324291889976830181319339329028550040555457900990770085186211199861659656309650329877669405585489764161847458973763240747383889752822424191559025019875216918181325848821929075963781609053979135182158122837249510093906877062252732996772222464470357039673603537795020987634653109898246847990273039081256942698284855183840811451934800588340220929943167532258583335414363305984153099919311283920310363772961105241708492279834902648971348959884228702804630981148253343498956259689352178404804728281438579776150556339207200887239176174530157932108318051619679321460420552736840742386160486090362763184119379285685629176846835936984442855510577632250947400468079054520499142917840998546085122490126172636168732979230751717071006431593752995019192609445139349232855436293409279327968884851868838440315744749070999962153632305869789910358244552390188054709489539821601358771597479001106630177640995828879506621882642010247581395078505950881708673985841397503440729238043903948079140838550267652436764397865391700509229436680750991998181066071889256281134577153420679722170072434315131000307906013472595346035433538529297845814546217264495876142297044779897961778229792444130064057330677921440112708641146107679730319253039851072422660694198996463806238729994202609264713493081974214187637720453380071097994919108386310217946109451379950596825819273720891803653707899538455610123796241639114143751826041082716087635177519963490531913872973734760565076754125409093062866029598052918180417435386663702276496688030765014389751711648377548080398124917651348100972218321341055184779640759617853963102457891367682368440819169356878374854911185766768522093393796984825330439198996787409428266737866910336927322809002750610961520412249713463773063712636406977956328798057494204962237586304722062069169468520143311217674792249412949379591511352508181297988926783966258900660972533877349857380151778942405398004133258491126718905521095721634743094405301702575875252799561511959710214168494423961471684330847180695664909022978603332507936837158765146712779049545042698567695720780755073002760491959602833812794181837076568564683664331270217529258568557176834606187031974024893710343866601933182511303636336127947382150276667290205367570583779141678352389672969487184297801708352933171121988736558288058801421581826063232702349774902089469498357409182904781781277361421259162391141916832859178987719600419769636594384153172569096154154943351647211708300347748966572724231621900471754675441425597505956138173605411872813795331654311531623976155625281755789861905231369727621659642176895759183312767124881946615460478451098126046185168131801280112313772265758233060118851985077119478953231982925327960232327797342706369238709928844982620891745387746843623456826246102303101398236376807784010793370553374640704700017490135852088658497760423462061136008907448533493411902313043844309249967735963381005636616517105520543081819140693360289365030606506697218599667605671176654001346883549668185741895353334693907923711501006889324258635744926823689701008744052068881442686002032270988191095917554789252249763855403149032980391202346947200846773571991591468042851802337965946976307020955504336875119130840478540366188967608511566653410881041431334037891045656959529885838277431420003997872083600333424992616071526088887299140587552035072370562571273385207283803041321297598544518151177711024855240949029813078624083799360849594708122128080178396157475701223027125068460064941766736270525834802997432071144734504174164923028559903646211506910981678940725777382563836872187911246161130771672469541737276048564358953912263429818467674941306147148699590942383052660267938275813888055593905657649827949156071881853079572252747750096669313102997416779304756093405372993217356964893326979093513651314048893484403205368652499161517933332201464652902571815236486744071707624230505406056808864743822694444027888344974725006208151755470719486847214909283435878106852326189988998731213025439557479853300009502094817232523772859530267093280649345325354677731248226952250502413039025976826717563220359322547851237067355652371247680675908002857425253002885830464087399776736088626766815194268664420759901309488398426241165900377312569026721615854438893247169753140939694401301656705820632523263519582251465325975031777785046958852844540752330198294918440870617319015729623904629378216326319145409366656366674773443699450444748403519212566232247894197533534641313681345725691095492360748469103449415116382345199413143093429390778240965752041624589430090355862690227502702609989044287068790926824636461414444414847984397077882482061150182638903375075278398157498696932067165486079114815922616884318021799243937673346793950821079553202648816348571618974165592912823466404733535361364657011546048321475425391070929241943256207117837228363103899685998102254329679214635340326323707562575028057940494010766971152180924316985958929905442501257711410544584733768271359645921269262922126558994784174696912039681159241820740345336330851245750709586701889595217138802601194046820678381769810631457901938304060352384172642461532888066939162870583585380138676579123387040921864094509162543115179671506829546108018638578629450901569079243157224313940799075449333107677881541252130201639427641374410487178924872214229830766504801529763133507449925198962444386787038943126895795111668004006383839698576944488472774247798786242569128130208533253137289171204612357313096706037234469113022109674410725316379202937138677785412167513191563416499609509150659544037736467923134470739873295166834638829076457756230067009926825356454763798690970966919312807502105974399882443625412977750782757722122261211893657838640058516721120849090080300072168325209922639965016758992057721843039449976649063239871230602266091457420142058953400540409755268862432298883876729800718807669303718387135096071617558212124747400510065932874806707946754408481816037300945054486349177675992928182982598445042885618586927364049961360441822688102528875857951617638252904126221164585735800971774641824647780552764643334137483719210630155585786099240725455461342977764039355785961914932487163811965893786140862075614491465021185697876649713262982833764516909111892339643348868870448224391897110110175589332837434454875247892320272914364602577112966697488709122592055163923521647020015576564545901738754844632627976204948989060897947513153304250812292139782168093579881004672774242478975743400355730663976079109115586402819150431060654185511505409525938994563854461277250377570538460998360270252687274997263515823960987955730288518385157782290996900350218735494540806673765912002393534050790582258433636035648475358681206810076554056093415951525979220285778677835257455606967474910685626413217724051920007380427831570871488075322422681119871172585510457774768757216489795668654542606654759878720319096073653631943729942068211479917830647806351358409085160031411979334344299514830193678585856155104172882959887409578619515500006183574520350816538458031424690421258442519080328215053863211603467801544990818670869543931300174632667215083804558865427200651422402249640673172634199243868286184008545669917599516789498686986282536728590145725728885219529169185248592829304513978994571075691237882339742880126771772422811264804844922034593311897691021220423538460180792340795176367998789335655234889883323135988354753288113896469562784843057851892959798784675527638710253147451696809400648601738098045672127126976084676583917251868284356178013314552942224145585338139705361696726856859282241005503647452274025207105584502164641656967171572228947897107615469757751761981483203014249520230529387270625562612703017875962119831383307119659736325222999510493452939763425279459576584791692259645100878752757867993472129656245168351508646316306593569083308526676886855261272964245214829806042865731633560985128331476955037694775985491404520331199825786620797344061674111249279819610213239696262225120892246309087406917591742077179467085604029983075043268220116678650035488304144495715290454193521883208689169373541414645013449230331838494733251618611164177112013991633604423797401346363750729195733365153976504668195675548209311181373791820169665657766899498368258132687968546489083375874115697329487451308534699597193605711499349404586479424792498455374573043405243556936505904310743091081921330586051221832679403796929381523773231920371032441992050860201821441729742189418438172620834255998563278170634943081084797687431607777386364513370963275193818307991700210790211614951561664522395064827147213777094573315796792015935923208410591296483357268528090431412381797921735774693944479554199656735947298978527913461074573958841522200463695156122267524260576801874115976646192395454888434743479087329700287307104922081578599541466722137130597935979408565482731623872036142900506441755032549263497343138340603358440704583305199646350620798513172908284258033395798713690914122727682442306505937188847957239191704977126072772602736658069365420935054842727835392528553148488312255010154602331304601576885984469935516725258666187610106610004605599293058588732750631218341879952165780287839009845983873410958294504154307807827851557911171181766051773464027368520795510798119441893956998146726554091246197258502089098580124796552668040581992101041680607226246684267335310484840946366064954741589583738981154867060882491805612123471951758691938358804573067775362178489911629247335330618068594143327792281827737287311956282798069729794584702065456261956398494912621363119354820354817734435577195869248743269151082746992905110050086164161414598155358760161079326768872757666268170666512705581333822044996713464354893712583771846289538136798448905505644535099967241134767464282786224982580161936461742573535695854141684697143157937870279429060253001718815873085234564520637098169090542609267986499999382367053316315765605189723840184112221864336473616555348224408512631690368003521002612562143443769539941995174807429300278684685560174601226585287288607772145403158378595229138746354859798199254395748693496678736318699020318312865384158664596525716147082202263402054063409061877493599600567884124978111014968197364810204267118306951408258257488821723888094751163515279406705251141626119181479376183797264156568470884144594148964346437152925255330158788215574527824979913419656253420046280259592517089580686078774895421097015256552458119903887123350964063995778813571021696937852876558409241047904144209051854404433891846792486677979472528834196182416008828106605629234552308445183421757040694331720727172025093250568748481733931710990083242552603267255243454580533760812057201663303143683267614385848238976194541639112000215666617505863378972568874125162468140415102950043165916106483952301932643615815067339372911489271549354870736748003052430256383187082160375015438408922240353282726660657127806435197357048957468947922363806689718309716266674036782873787222992557553226216319568336731771526973611015108918185534958016897854599880658184311578414214475408201411392716941793243676583678900714495820410127782682250518067235761930655979874015266072886161478712771617165114803694147102817820851485984017252092396834238270550525884200257146851507422403494597125940973345119912395253913056566502902492661593966055997042239631078308056821969993459539471781755905595948324665998397142618496957032883341465855219263320365926812544969764583947924149521026978612554932824963499154777364230608520306666869885496223719595939146306521309555951521982875647621946738985001486440559574441148651327260330899218840348258378836485294958259353956424903871133429926667091943480881934739387496170402019789679668736399011455006268503229108027671046614146431726484910805519266880532352382698643253697156816159407112907450493467339656214502940255296984851803874833881564923627126206499201866810114194741117255614402746737227549875990567606158511279153772200357616741970620554939873713546375971814462606074901087575308556061683895431662664129015087172914606834503314192860289229044990771711876706199105301701212508368512530984784070040744043234025562961576125639737695767742572664699041291028127648801764393835078568316634289716370637349438225343109317972170736942973439656620847888357283175619178096662248253851166665091373086478275448240943929748046519180230149645616571163200647058263886750878140178643925931291396518654989320120069341733356303283085133253010539844607281948801295391441905785626005038392121612884431708997543069414063326629504054201556178556253504370177604924383687344297388577802970359406996441276380350864373882844209134032951185195028524863907049100895858393642260885860685916279157869809026976457431138941250987242168029589299174579513470709135799191086442231038534956149273484111576790224675098420393989611025695996358167207263190227609888948260159369753142092274127708968945437389982140566475707176449630242228558669828820201080203674780732888744751987904068454108898996406272609784828647341537672523562257443678606398135009239570199593944699228195579082283607636489500700428762266765313331973230293607598308577185866621319229978502744299648901521885098329725034186159912924052949394608789111699546613704764533141816978728353139164336398140558796447426963387085569151362191346619033125260450854261099434790549721804357550987445218372858296675943999804653707414280061064861323281504695925152830201422898445456307351540334150934531605119263454330726334959737293915597489842555327302811482928646964078691522452784320896193927387170237778660965631469335077417022140602215435629010443816602551732067158051787845496542486059898614660262636199246132835057281254299474680001088747924067578418854125853143599665849105932295442324696502841050761717539842721716304592225991052453064968115584385274287801790173225832085553376464468455506844109956715999502481798751168940829548762644170261691597090906132817503672118289010826242296968724157392406457768760551031711355036481784931511537309187113496118688522647691266111647946530368915243289565255109413263623484393958058421693290704219529329796280737606002341655623842414058363896435693024555348565460252373054265429681618389945997518673599123542906861295365499929858420570656763252139379460129501694854252478347590511112323287096248166101552434873781206878310762062259691782183296642503075586786722706442193483667984194928610808424082999834529111774400839335086234103266382762681700716930635807323710447422527243075561018916951721706127123864610423197758920655985403221126287311680281087640881427236586847930003804519462958375176582974050808446070858341579514029213051151247603235688273078083504220544462970608742505508303370875891058887729382862977880664834152494652081962548402680051840384041392249692228346383321381386258102477295191156343319084076755050119152130111350835696763799254441060442607491336147688255394199035857241149633742021226893154344835047652447431029391232170981312499354352698677740019301899127777902546283975380189071962904114160536032747734417410284857230363339837657286051084268512378422303817860601148021336352137664645928766319139141990760646570934130200021641466204842581175663983655939846989254278702272417383352112692815501732673027263822969028885695927501519622808856302912379108761235941681497774792932943398996826121376308099511669896309777614176492530915317516170365844017118348003328557878875574801217064196648565134273590333980642933940194764081935717582234327771688448630423877187647365337019219039798123307323500952444600049293375037379567921356256011524671263396603639037025351673937560441773337207327654233654212226641659802880226420948203105139448409990625922654006181590424201906224778017954595119567932121784955654445859419651817415900718840065822228521058832298663198467732686644411172093481163087579292556763385878879340033577046473329282362344292524424582879133243317082459948259037000822652238415878549827588237558248335033409249084360413943308267618662569422653820132491424206750716872788525706201357825824528764035815654319455628590264544896598673170377464820971188909945824862107092739780141627869360408774175583325736710174305050279933507717683876985538250300415161591489486303932160445069542577773502529404804084381047438684230647230484986578127130760693411467957785029788787953336492166025569488118389086554555464218177455551411860421535993457119913755654033111383176425545431136409550619049457276434915190343833382839178144226556180437614546669187067138752326813390917482765430365264581596110065330947270115444931272405723581875138558792051488748140145445981228983249228374600459106686097229026828519505384720504085009925011516145115431317117751086134972175861315170959775648297495258201168502333156952147744342312337918593094670684237554448331735080062528514008804763834130126094474355982654992208830983528090004173598369761066221759035410350404251477537445411340193416861016625525411323013727473537332276886727462917099998742908329430925972662771673556358035467459311424074296214371503851446159413787052673320148374729103058628158594472879783132868065693183576600342686957731190965855327728837913699861578815844625880048224721499671761392535068442678658051180516535424908403851792901090436453483980239842574509404036355368957547138615978408990149237512488671520689831176554391416688230966928281819825428713888861883481415695612305325111266047034856877154678913623981319644781859009879300104946056518745188531505617462569513487914522882954832503082700350268661255318199755510746454192129911447363572053821133742211678008337175192995283633660462246723968813968378990570305575383364975349115566273834321765552785855540699238445969220603182016044067791699308261056083223180936671425960420533644147176110517800058524585295113161510155677407035774962948332251639912292470502045251077325959716950516379561307096632786149648839244723578386958935344758137533575178983352825026562492294205125320885476441715992245042632843629016758708294520247468721238212630821398509219574381091129661678349607804465306869799358091889338003859548797681575868207062014739600002353371365047133324391880962356450311392576228969419934297370598159652523247829283594954202218625887189143873606371202552451441980144100923598924132769035682241557003493144564119016416364231911150732839112873050556591972733609584566761225022492362989974203119647412390036048969004908091204817952577235449366147929534996913932029922309868515964632909224248196321408117205757032104336061892960484101315306172046450655393807025889411307004998699594368633608933001532796300161544588161616765495887359281343210798103744995764282103498860704170771716408737626060821242575049815248556448632339163070724556414556124397121700382596433052259136727648148111580358295698596322433731687293196547008059531058073323157169414442143813264931898533636386381594919326503283003718204083718194864300362359620356702836069697610559741280753052168796702083286734122231380367181689273859440336896304125051343389012989590968617133156957721833068075035400096435119938986451629260115424332628662226997811562430047180438499536490703441618441505018897740727058374526659450728955960656717981642082386560571680948891299463076325223756788842848913226849340631562194522616681275236126138831363642269580885357262724305260124790635799937641153497712939309556745810928996484177922691334553470712167599233068887298790118142356926244920585049345863512332224110073614726215010658343066317165477678664849064959788999960012686890201125311157190223373837591798061412686967514037008691552865804371836837164964980164766345022041298721197092585705119852450199409429570211069434674685458646565901473637052104039187586348449707409809497286044654288094901403653118526306261545783240154448633887661932837086570369566538202142273077988103423198418102020636635631188792693259338155856903692597628860203287189843307545734334560891635813902046535678546713699106978410009048094723990143197040202164364096223273212359455776154475734994896137782852824770688471366662843148684549736197290036006225781257647880784099729472689679602206621820237599145931568852440313690395049663607805925483576390092662993771673450016593480200220898334499942769198256132535399683960739890422655583582345965488502297153245919726679555476019069306541187790301599899591123981943832691027889886489547157300767887699391851117516870162079447449896691150257347425315494047983000383036312131718717475727239447720231557148712459289122118053348263555922717750922901206253742695953563706458444242599949946839627197164429124530606651289846414697617269555664717348395847157298933409770695611726169727526857888211413396560652336644185071260038576699828857904132037768901818682714623566545128910839294428888938184668701342652626748388113697872378950725421724908936983718962872448098675962526322376519681888271120748761033208209572116197991830318036827068201598618769321032399721132746990779383623856119688759244036383842270332220061312826912300689443526667204961647612387783989487315507875390214559809180617464039061061998576713928013260581243650949249001292584170516352042461728722333991389495354728006962842144813129242558002775604006964894165579199821330216122268391637755286132471074430175603658732866697833914586624799578588604848104607844959626343731410365101331447301970989701619912597840063505472878358346612329336552500941243455741656247112519974308329581339861396435528341185807324352883364670511300536441703834539370296022438840214893991729682625432905345049167162141906788537545341105195860086098986685867562495608703951932510740557547704861937449372609249714674304580283455899955887316243512939923574663937080249766752972480007918109787044074730048629470053753725528604633748281581883328090153192989129268041274372368654534679000577404512059620718193928272788182732147108559879254158176161049721492617006975811843288894969249252714160850012721943301521012850929762292824987311712877848911943889660022006340081109998315369904284572026660784792238054989649227130412896184982369426902480929601681288181054367695647543299031808049232099067465728387526422453956033722457257310558695868418552664903172389227648193523608053003582702265162598438538060282861029021574708534073277921467255972208077358925768134113517320566838342335279508697656528930732264656487798824527162055578005233665998917221015629402574637500376094858131005918649332653169403205913991905695896688446992736652526819743067054615252446612783999783354667874868629360088345785192631004407710460839238597749224841514174005028368496308969065251659819831878288420632284800699550894320945326608741131884102650353754056711584393794681713016168435463824601903495579853378604800840933396935784418233668772182553400767166349664398450780420914973880912426810661629916372937311231368542919300925801105748152608888215265857455940346333965838151861429189558155084867968076709142040875386396514310540937444973577128319688867990140824495206938844451306483851253514276760542159795701056154844850230822004785601356726968191789874826124610916002317625502890427494814127905364214828991360791931464203704297285204966740638137755415273464996465052643644241096879140211895367618179595831679631797594762232194047279227280892527460622326074281238968025676381213690224864387362906172585042588743886601157466978605022892890113913334430411443327420636915478238206434141165443808778862654338343236569433002074479299223482195046277664066924174448366031097801458637447181278789419569439118885676020617590577921220844652704401989873554906274063782396237047936693638928826862021292382859915429081247755355029481879136909266844484781279153046538240479735320036468469157324450433619144012375982197880396508476300971323294176618442465003097630290510071245365735062730995499266402419837209688507661942447666693136191207397037137383826067127841763348620251331855929295814671480115326352875687239196736697097415517203542620942244908381196754070464175853622538976655893860612135488654962406788459504187688500959027923730951224443029529067579288579193206252988511164575736231088746465306797043928740467459730445244807699823654668492381161282931680507454224352469272606815334206756918406013220527425527544523312984365878212902947248793537043681165898885498378693182665288762690257078880030344217454270505400161056633512924240118233612857788375311910120806193551805636175519355116701135559766687845816812935604318463206357772219698017456089548954044985820596645014373884724554077975446483127547339738351406806303269512799605297112564999970684926861380155150965040040207808913252296936690468394173802235763379493260049212948068030877291127197169366762706229393167727402541445550261129951335673205219305098659634302075564148507556904208510846326349794262494597327006300991483113183365971490714174978452768874732692607688932034915006363108169231233971400299287978141676557358098790985126412803941976339717254767822324966967541143915892387519932508312412110184603056284754220275395711616488840105676149559432672287858356508656951961506468178627838368381959699090932137001518324159261090113962690390656372741753529655915389850725606121375639520291956299511548908191019185675091050070402345883893701953273488663669503652158401514680752402101571688189493557212747603868613031122870065590370601489067157834364571720639542148061785002957873914612805164366829730702349024146502390694735917982434326183328295815426051450910117273541673556700664944637762771476177077998314979644170085907139696617533125126981635032650980270782423925047078757791409493011838178009678140750245863619720147385144372205215275433012984064747351990689630593926681079872778475334104024980741881698084481390611286583625652958162731464352120212081334681918220314739213678052002266226837238525997551778935937480448287965156630659243192568062465281027887066627644666032658942065472843676462848468933442220226033567798721802195141899808311948342176704884066114899780886722007044689818859021470767209908111710233435550731450197287116258369596328262730654555887352200566422686544996611084083333216893355768200757780169743638058206492096614903138276916027795425134959224338134081762805375014656271376867774184017809878602925138255863135130790530590910836216696986048647681428700555645879282500903547735781292855549458946792914792999337801621197157942456476814159679388740108749653385251550158155684283221012130557862036224889291636970831794600915520446295969582989952117742998545670366176893009187778866472326060122660107602974253963574636289104449663087475015079959361433262707356436142383194454690298406069437528438492543636969492207852222598546166524295814800129713469282453300143290876934949402556517302413974796199013532498512127577552625981724182063698999384552051297687204891137122073365917273535614000758200271478803937194343326338980054987985775045728894707745201990248586264409777999228950565501599229291518846518498675204542739899338360844736499934304534293761842157983775538121855896509905951610417393983454446894887600930718957630011773602646259011024193015134612430082226111901793905926263555087187716319485484344790033344361134065730291273886085115883342204800858305942179348633203041424680693715876776457441913373485799119363110168716183556096241121039785785052646789184504908516555878539289047751112927296731292204649619519108945873024311439450451789427132258115253964906177302247697625462987509587734352713041780171483021260768985651555137813170089253101663061150018848685746656507143258023413488996415830502682679272232448095117038359474862347294585415144683116357643152317576492062410825638852860937171689429663327677274876511923819364451610095041324618457666627150852817627090360629135732800611988370676140702737375611901172314609620672985182196999688311862292551954169552068858333104652908977575264583121259384060498644409895154855836474499542905561498304997747510247066497089732608742155519708994117321682623854794386361690059193111755195058722021419123962895178243493294030481690132257859438368133222189737628755655523634819797262235558492954950518321568948739775233864565528063778128060423815245096980063027376656226054687774513781381901239585370457215546318753859523631727346311681904439156923032292640492410872046323741416877046191956369854685804936243448661175316997149903586894845569108995867055308049471448178026967246321034641571465876053456336641944294701616358652663996398325075007513771918312314389098763397007233641255700897831946574172117767766286597993098259269853058098817243396884684107181298048234805353028051747437604785190979012303911530267932827720762548962998595065992390926796403764177909330289222753126371837852264021139649382273163455822012427311600573374863119256815094870416606544310181823416615283632956086320746848483652417677797400007350751494166510111307308070879605644037139144009897939231111717979363697539143433897029769083928661236756775468275438670413750259590832042898531104613591753638604521746922229337414771416953265420254927510773774807035881391988564191086640263121388029771178341430359667327880427515659508650741631133135757233650184942000641326271894123240676416090543554907095347599166007751429072430542088683336641851030029095379323509270393863432542929086999005022168029093855703769507981473275289819629587557098018268923386259157026439989917069549334072022802852159359414973009238097953598378823315820263179400516447363582858221024171201870996733248732548046544187859571294531126989105387688919456797638021181710935293679435518943302301701917739898593396648464418134492766469773202254162361585556914532108406042081623140365080600085349514750837749959110994636247431820336369442976758172086887783182598499232860010442157608543760157010404219410887720529248108764855597095545928323163005882598039080517396818676577038796279874345248067063414436569033247913419893657497036198858432535951618831258187984118308350290695928335070632879236523586744463957452972271047988271099363420072928642689371251984609810612893684987065965796514148196311991616163271217776564481498454945483603165489941612169771580851523361227762417217121715530406848726546975818299388243793494798296660359405961892960839473199982867798945502270124598446151878169039503442849980743986072349086578882882533369266105072524696104794892205350766921545713358055198946323816973119855714916613000143425527390029013843803498847107501775993918234222320543115650468781582497968808375439953694587323530418238889739721564216219903758002540077455222914939135805854494840410454410144581776648545216113772384180711348856224378504935576475504657117892378611377665529226891711068626869955244389168370000317841519787309802978334507503747748709105575759246456689807619141159170343467610291873912212772509660622860174446424622651138202647778282031817303519898651302339194854118590106955109106687652690410968435050969300263473064015383400296813658568888379458432976023340177773226812304374972767219800942921944301738560050139896427278601966525889079517040639339808868447806113565291926956199973680598579059401504699049965917280450158273925842762080572112034088291034270702529430981412850323395546378008063015245113089226899028984285558998777895758087740626393372161531850923226623867277567538747623318910937463773012697557010689533764919549986673412262518928714788669950746125616592923534903061611545272106859768981533067677957410918979696307202613182307373660099748718020763610247376001944640589231692697505770233159850179994424599413608401385826595569554631134181979892802701961645508093414754501101215854817152333962499707672574333382005801489328466811270849187235724831152881704622237110886785167096349186538680447058198036830815892174856545472644999847417737842522675503118490809953955379560130764000264130613651496019730428110533979606890122863929267202171904127273919317003868845519134286614431039936285112050996478599469509285416710730234045975785333283360667963049005292776201758161472608485184088350625121842378664571028973269889308027106244556691161628602935293281339694910416654260504882564584531753247073024122828518133941521960883437750906739429336387291381549195515130413046120801813633345422137745416675529741083587233762320339816587514275018022727693568345976143074115598154898508523573295320812416306831135055709704268841487403341578668703894813455498853416980748258701501640907174997417515503718307095786384479710997895763447841907249373608736943697804222522619300167695652709864418240591926775789591465113596888171514397439446236927736675102084731689772214108392481706914990031053516154030815934372061656532887824913703815643911290361326877711573233506261616119540640538132441236498976449106382775283418439974794354361472265418605677377446299877257540060392609093309077516986438737158930401220487914190187973339780176588339031672920204866221749616344035453712385355466746918454752192116678736424369002571482921744102883344025276136406884917293451097050943585549779523967161983258142500506687926216846963546217976443319204150883341846724734987700535025446336219046896218664600630229873045400677159668762686176917893364019892086528997977956469785267441292821230421559008075819207655045258221847337371326223726049849794279787341876936842304504407595995389110516987520045904692638684973175514665432990227428619131852447922631346915296428552227162876541441078854426073116865376796191191018443605770420791179225806681007792679130491176396378472981130818992166077009504578692886159204238563388070371691215747019698413581081046191257645750639912373454306606174259486037355698123523581541281741071584283993280348414094052627299058397196018733045329121648375982577522712400691475148274385305224331382826034147800935612219288152550704316291613921927283824077966159806162065124089221589636162753191122437888419076197019969412889088945796306547797051255815884553409292964127433126785627546443390182591417545775688217549051528169754931953087360638558848509749105597391457773311868432870773053669367424760548372058869320166895912944404005642503063862019293066781522639077847665242343259901602111565075168022493609749996070869268561403966433287331218202808025698902899246199864477293959791195795787822566810116723966811598175757469915647118090217024330728234550104048663888829085218602694654105318233964688937370846361662574698235552259094415401125378628517424137014854649655305720899589980398974258954580962126362486453954788688815471889610810524127974137111285290666200665721077980289309449718947029518372845298385504860976937522585424812609843406367628014719783264967251692689274721381709744200578982130127907077568591441164734492755943909150545629837773199280655710467960848092717606637769443454681256631523026450112476339492365264819871376809014544699954697266471476982068255116368694097169111813271043166776010086517847900354292435641980919501470276332197481849407329343975365490470033359306719408700903397815100525672273283417035013032535525192975761599503506269055844822544188643952046248749160889961669127191417350288405352499106129125876494868942371442817316387530155537009510975656670948189773099830359906954269566805917231768077898451691421881528227617914284251243384890578864755771093316511001499271975605539622568469387663283279995965695403563132547556017006439032194883454041953984862792890670127524859578261395764444589527194969730254091512144132578460827582194299069540485131218491260276724441720841885365397973168587677124056710677530647258784996486031145589754096320742644984070715321946089218422138802026458194967814948235750230932804319193560879828806894637601537960515206007887647471802722718467476919524221390520571309467792273189733059288024123363445757902397385207055849709433252114426816580740682989919498854962957794097826872783293306538504143917643661116988609275009674612033514967558189360911049525295103093195535856583081539711521935119521742015392358557617383341675171839288404513711304985480311114142047997825177124336757673738842416307387554310626802210937415514795301471020580182170992536633258155936879030038782768431949438689810659297409620497698939463530345562160478483725164922450636462671261585755967221761413246380738630900542440772691362162307083757367967152329007144690300918413255299822005845134200127042143307840804001087632996414903444867060837571160369507237817398053975894803429128375615484781737659175880377173665283033735902082640886316027385081878127281029746424530405645209365299143772688723978329732883411780423312256746935565264852349800474802239045791036171196463574204918284758601567484082625459358689792863411296980491212092491783748087172869216318964984362528721539924604747554230120222318450079537541141610126824972728721566862529870158390901594542943694557144165035120646956348774635747305863550794018694208981147159596250704454781012062846036335510497523834901776946609721269906374367176605391537842573013248430857442151427355762866961887610829894225257816371848312370702604498052075988976499702051910212554920130470398646206233952746549198656999546186779004414345696881953248715628058758685860878975500145034953310538548094147949387789827200132313578825343118597372044401386035745214570404232091655872227497991800246137827085699906066634498069411339501828549282654361527205286915112469633088266413753601184557855437660564485707244261845896043013855527197586342134896081263003420742226011669365633276044461594823243637253720641597426647582801000972997484003800213515718343476858683535790534412707021740144640521137035802926092172066823647846819979764690467606028318340423151455680100800732023784571505715356118824465164633734284559348668083981535992580731985509892051460280447716546918581399448430861958345320443226962459433736425937564366868604813608847602856061264931337129714837192697115945498913818941704471786052445746483387420360118081250692213831741416363287013556496600736078350624452477266252700708137308688704365069909539461741813444019890373352040574403380746612232732484396148733753747762949024894628566548451769354079231004534170894232596179137481935775951227984323170094550431897219477952612069702069014583474051888038606106316377076007881955799150461979283146508098934322672714018180364498001508190645880628564179221016815110699209675794862495051955968561417070021445541219906173324677158198639440121670189545583453343616184111493215671822041299090089243584383414216846453256492635031078599264970014040980678175312471144754523094016730713032991167419934793837986891894735240251688142513893155412259968762591766645661532906439148430838259211725696845630793812199415075302808918726245987423248188303841744433163184489064465943126520262135355269242600615641169936701047079777736131149193614563753605660855561897795839439198270804629559184336627229961863865138749496175268149760665963387742954594057845077969866436967132175348383543354915201151533565014134154301827068131870427013813609986931055866371242489976040801450360478976785101170842648876990404087537625597258572010375296238627590155179090308786752420099929420409079353384969298245418034557915556538294783236220200494961439513811138024734247334573695647914987404266788517388455892573915374285812133333081177940465925730312326479025276814097837784539143426278367079396149040981952260207368420670434777342082848217607436502718138082367502973563036515521301719530472028671662251337428355294806041098710522716815316329317772907678829346785894948990514012375283394657287173560706594928160765784163769443400832339581839905026140173634220032398800460956145451931009797044106592942925861066437192613022095463745905112440069293447091871513395780095832501243320038821453475032727029410556708913097562563696215646930605632239438977936537746327566648279974037881572154506352837874411629494421938948398729003301415749815089934640590416434357002684782911663400125231787965427764880256755222407307218435648491431637385679116932210613279731638247931338619751152098970512027188880082266539677742617138909211851799284342422495626530208823474146623473408568111025204887435540633378459711016256090315820463167775537639077451924683858254995362916253004042761906975506287831852186063373704978759588829107816854444320635116128777988766218110263253766318636650794061143027960221215146355232665110440083195860005070560434339496217350231450039538535553680630884788973512279208234640703961535232586426785899824957415733795165422115048548549464232189732935046901607894388141879059074118651977904999165277007567392849478061100493413675344616149714483304827065868600150912479839505444180968630080135055380398616584458841592094841609667109953271286635997437920690923586285470694687102600269278016920683322036908141430477035117285829891543534983670499850336130884370797604737414309826820086708713117601134469456848796871633845499848872136781166951740264254472604439247756558736552784107873555838588036994709487660355255108347309681101441809712443976146672808908905618200743497157643851246899132401282286799782942598947113462908547486243429520462328283377764041056494597384135463898541827732703215431110721150485232123832005878444767554016776857879205785020302273058759004438788530697898036788822765988821986661632877871815924437043869215354684854690807625197864016191481038018560151485437815417237201356238468199976501683076369088173420145187625139826300500939048391016551635116357490588917194600816118649603489206203996937967232770472752270002389914840416169985580628494593156371247859452234827021875248470914674261849056179808064776702466204629448928143697073395449365018899628158586455520822597757487298903200642392655703691996901946066609349919913434658796522444675460053138854623555116877340294359935236524035576180646435538154420634513337521339088556118484735363285841569251306970777939449255591974265454304065921292593504831887923444594287003260622204944336652440231792425107692433368312421147900395275690565606496819844500972708253159099288476330960784778685628441780896528559795590969954727012576320696930303544279679478422900537992682597496208497018648299286625900000726217822208887766435771819978630266051119260618480055776812311757844099339315204248884582883065675497128088102906194807485796189331023708702769231702086055677901443859646678355691391564200764652973207901339613263032816520948436060507254494409845143379118105848629702006957347354513681264051386000460177901633504085194097062731022769741796667862775775692595132622427280919311030762529807639068096368563425017015807318179659042587154516639432930640881375755938641787833412287065060875281855071288860345029064562295289207423237551318498884229914702957716042733986909842781789455169846515110226483686177744793777162709076140191377241901370439931245347094575141977412815441190737263975621911043856326377245229991260000533574671259618218331568746889201600738171537613916349549691141058866033357550930418515963166527043397837697525018747103144514058730852002921888458260964950083519757265128662216868070654442575881513589722003568449692832000633894656718742657817285007739903044129552538827873704872652576024405511056874668420149760528506379204352335823111413056924019251266867918679385551554784878691704155820914925300207526876767029046115413373844737400511911840890511562913831740085751877606120132914343926500329519651847741283876139631161079707445118911869218067662318822368591719615690353210083645167901877342522415699863039076241442229763123094035325355695113569753560618146702240781550344279555416713103755166365527673896015870185323086207963178571811444463424774264877867272775805230857872170845250974817077036168115627505272789495611404806153942086929764260683346189555379881163119648603979027567307042173168874804674021437135758121190338593783880923907603677752433014299018091406692593941471626512785117091603089075445076292910432099236851687492727291402225290641056108837642000701914559866248199363546732060419973586716418516813798265547960433888533539217990002357304267886355298230139269733792096212113838530923102727611985205009526815206624036577697726525429264649111803709931230008927057834662547546083804553781414796661406779418585755107738739001648947547436954289412575202773488647766395375230821725161600983517781872120187918589334647091693544957196357505562688877664369373868398677745568842493801506569632322745280231021988391776162526512508216292425226006711766756663361349791538609516711627800404316120213963796634577837934709619548101257286115596665921989339238610132675805340118004621139020676853402343829433209655691414454010873722913759149604430322607956604869526617242728834730863374219095235142639607710765705061270032893991283356961174696658254536756507176521316257626355975155449995295509601305867194241258329148054017760035716001393033558045389415223694786817757826360240207728756071398575976364750382652282033205588665392932691493976095091373088775048544940408530577619635166515268406922769723551977770655115672443989394263369653626706057822368133332512056109959627954654652807745214366395302865334403734026463172964291543607257206141278641045987033618166404577038014253724786914391976652488234897320426071350498326637136035025940214102142585144668392818595180218254267803786326179517531617283754286863216343443710154125685436747097059880602902475629155547451604894350700049076723105695887704465951607357557559308480354871390020426344900015679524030228716178075797238780688884634146346964644929913327779459765864774781321375095360090981450577375808029604064107226491336206665719711235337357014130564136117227678120730068359047584828500176348354057057011711664886527507201697125574404926739102525863069158832292443370909742292504251192083931994330637210172324593902879997260263710522766928287031775070059693888827788563217499021568285821230342355385823685054482657365129789930213767452073604942898566570905923317255827998396559355734073995969748057823243646302869909685597626272291763037781479935987059699011962884621614206635677147983197317518138441954275668244464132826212931831950801173110329372532250601655000449773309575608439891237691041419140353611660780534665509170240080881927636671577010170388333428303352444237693999701562575838991881631653330175001870783007033033081507522301140352161709005744911504118564883738122034686629211205851164257719237039427206453750266244358852255627175587197459774685091745057197502824857705813895711061223546896372759413729296374480121487980840365438286017838172177300675782482247439931392031507284400601122744553468905496219399371691096744002166378703420501256567490802750674499204466348872336001714018133640326633862570360698127221682547361387293800141952052075650122406351595669423177792223327485941425029835003961866653163729729601416876168100278005420367055238626021507877537961877265388400772718850861182945749578420010889449474187746492644172306196538796391714241994179692134333240203220641541391637307475642112294923526282764092024212694593511085421858160262805182282236182857144688147969612467822944254328285038809174171522512950017473526465983690202112446629450704419902868763488497648634528346108331954877792355074076682923935240392462532918505965795602327052971741599678641194431895829872402470617679988395847128064453714708441625609348163219250429892613552929660744547268567844044516848568380133065971314688205101383896731181130861179438735248342404685640402401660318867444821966866365970914827159135705861581126805171882568336742910320732688340771449649765454261738005091466514234400716724906901703705973182782946847149930658590064736227722822384276138863061047761792295428610320610068083799528971181110930817517573770386285279601350742888181917352510346842654151654831094649838672488117553923032862311830313474285560326243303298251842223984122898396718329219576741492821848801315113664398702779862001280200443806166744521464539736486742263287570648152005540836816200901662909049820466123166525412204315897897553393894511682597873132755201996818690306914484465857585972700823339000096892207202469946572489813650042416825988650621412141382177373246759238506755760756193903182068850596753023671417828148463306160222098613050505779580786073870952395592660997777502130304040012170955646518913038750817439627326617409412199822557928650546886088793419918621355285039412025114149965581138210875946765809594867699737103911693338077260523881131291257614182237507567745861662343566605071363178610147568061336023053073760719013652535350922185823051725378618649634670514124104574709536111004644214073957730718834797679560408735665343913517556721582920105588525790194523544911967579631615246610368604093219016690781650744614701693301697280575850128363272309765970358670593556157088163324665485660882196882739051628066048243565212296643068935730586491481359974660345164690933693918164103680740749143197500421702444620032708601805847723231728357836241458475600611295684685880528404413272185513415880340559946702354636867962691180609660867441792457109519528584522211331020162375128535714089501427515912991981947882373633489488748867124006572130834054798185239036918378289340284942987249374671103927381604145063794733708644604435159592542355431043213286560909244994621984531431264324629854749510818601856492492291307548709477985357299639637450267199542782391721307585119217795112388196137230093590251362870345559132247338410884711404280001100874609911170357511812971465902289204264009979289486340189313223323770177023869596581317963485279174463170846015730290351038847733882747094704980265571092978826766687014134893923675068057256158022549293324372959359163758194139255382989196089375206028017509007352677314775334998965097893161388006138670084190518386345528837090176221918896781506832265875744896274702163785303208769692097431482603578482640877611428159783167087472839008436267195907731902393225949117445072823314593512553603638559057619116698149128943953126924979992671607120255961595002776556021938426075474020945000288249758226005662126870710928690265128264720983928880793892730781588278443132395108538216841292456482679705953630106265606987972700557207036850889948252016199659831140171542797762683234121202550096931074590500787421778443161337660967318019251308256147784314074466266764698596704398223774224565081934968089794871394382386759183935479854423435189992889953836777276381088214680186124113820193315293002489884091707032831240376064100949026372836273711262379453104020758206213876196411562881373521834568007738959766551509783256265826170291068764327244341447785204295507658726227545649660940297487757576991724869277557326759953617762044060292233102259310087100518070536145223763083064147580112919716522352724628030526017824368602868939641478461276778541667153811221715178780859587958208107574922493590621081107256175434240603435689313689156570589238191967930702892000278705410848392230814859551439699854617495697246336127762906474371181452646404062021170578403002848086298397912214301204392568782878021154191565094580840880660479978650079534803693421652135548898423156982878894968667500421843913060733125400758721476485430837507548022662233147681923424322229997282543094648924662278175665561692623229530890827030596490561570083017289932500037784826199833731625070848143096592519716262585064972711514651421420328302060009055421562569854840059016727410882138436907327405826769063803717071072467094455605070496984203438019102488330066770282726912777282858244382256783295718394016621317642901329494755547652678589485019332536086358574980837694698881224646484209722809769508018926234887437595587607946074898574329445761041543063440093722578946903798390495586737718868914496989158391883322206476481810118560165777435913748480403043897716327322450487501322415216952119942401346133693396598718800661967486931436005885715705605841830265284038210856643506019588474546422329466904501995856291893711226391272253324362302317118546913075547883537527762917964839651004834724667591896957077069883945993991376699660188134585057265156377634936657003965811287251000664571440368395782317523355258834349382008441817550911383126769641460759019391835667678343266763875268926029726999604464278997270161247049484922951030681503357458535304752113885808194840472089230082031887444231757352946989272085859134274373489308473848457428925865052556957071091702305775834576223005037688792407838459903302320096058648500879246463747244860820645106393541507120924198138165660737690528171885930494122432301161322094292057636477135185245920191761332186644694327721592915878779983074429714204213775091449799186473950035718135724038196604999402522032072616573478240892848749783664160573083309287265899119076883935473152685034063970736564716551954781782489417196416065718194556940843236835842271544442501912817337873069978460066251306691318346316543334702002763327584389404596060979520275232116688469163541864636290030086495143120665335276164148695686547413001137592237343284958251433196781085335029913460189197580239173250907223275344946842999308391117574564505963878929296542159028972662162158080417180973176021859476670394122570661087752686931636030703945665916814403927351648560433953170647092026067525656916745128273620205691207095372346021620839960114890349532378946292304131244266556237374714436350036349792616732126338565892236640350689980911796826854455933929501930954171192669864928397594131091663649117486523231788887223605166349441055942488275169535685490712624728024117927617438405868471385494149889396730562355113320669705152281147988569020592338225189638629126708941997552480002513726739294423947831815072954322942645362141247812597133193928300920382056277346334412925489243250797613384252323823365375951994068841817883769211098997381004213717633478724273145769770347573830546869110438101961372105239670538282229425998565171452747705980835763537681608326066723711175178039227657270901405075409200757141715805751428496652788954178598582515137106938431040460788048726141160562752077711696203956084171736833407778835948387050609251799349608459972424887202781937368279436832860902749163564047564847919055915782175634048271844478002914619939485093191291007119743897955944428114840606425465507757117423881077003812111610287119528925237599372377749359961170044589633450483420834994867989480007290717001253173851004496854087997075666877989421272606635062346350627975536501027678530635311360895387420524350580245190403387781877546141806529694387211395418678889665240122749198896260024034606456670895946969253892171029412902810038173885216913098885256622126464175875638440348635876646238469239445304091704735834314586857752602409242419588945924983246918024181555111692747748980780967821375768151307588730801418213899277353123584376281710163342846695965532083486752593974885242873675202534058663662761345133888422512926624537064751561333635049130764625666103202934516713339732376272414355032068496302314741563486431972021825956849352264729356656438045415927247967789437107376241573056147067137863958087065664673785238194763856580497292705252689405279805943646331176788306816779556067511917325559101950073532544140746997131227011276970511009310960235624202136762834031166993976877702269595842201966857392851898009470665625746394279655590543083592316623034417356535133006993259573973689847735058133825801864394141448989450803735976403975867157522794242392265734693057792171701134072603416528991894600627136359712467115496169295278585227088207618081440904717513347720543485765787646781403631077414223108988298099872537290834652775637555476141857811064788274591625797185377003396696828783262691394668176201979868580280197076206833627095969220379601045669623558047282858977231272847630360130297437122867998420543806536303664900534563018115324773117936060176294559731706427548917513827546652492208171088669398962343083977255694363052144664735041461762626492585031502789696789993974615572094594511159700225698739493148815778410681589726879534919714102192342017604930852522651589381819763098376696772542767884325320049557049777536773201119124757328041396250554273915997645128027668375337876347086059834491718574635012031658490027081938363535131090540021941362384705100331721186979521174736068852227661663718171736322150260023947529946948627795830318420204732500869182469603428520623131708288243278213107386928282829024206987190196246837228846700386519825161930139811286834664926093444797598419745494744327021219803756180222889168955929806253691880166055850882959715402559133396785018700903034464942721703849991070704425362865829225540327613264371614974726584169902755695863086869238899227572219204839032290538668284037726888476721237511415986982791119532913002039221229702922906001809197248330504997015834494626507147987587358501281730355229054416749293493972302271197188814030206393596451740312414106091222298089710812360578862752389288546493838397896042463084748383061192340972721574317237189512912290126096411249925814562774667462488027708291300312613883780146766630531088046833834470446444737684079781434761685487922621063199034628831378525707076853797505454532451473424916340633122133069623578555125317558044909057235054983672701548337190567100434777382743094196842414889565452760290122979036223306276267919169318525304769139917512621510474098520978410464340050447616444613418471607014655517081859114834903395441990823390992601573641620096121749387186784295794702757432956355308403719633704590469985848383921064726893445619538169390769950206324670051232980911992949977628145860990792046614053279716774083974656333458275859851626245247354958316399556282022796915219952746134087460844822576771583645179194810030789292669602794895088186997188201624060856966405071800918098019347952307250037272948317595720199665435496825832053258103089021195445644747593172545358077594021521396982125394746894740445029666960130227374984894525478026209143252144318360515999686685104058968144969649487603117142930368558107336918830195765146636282299883013528250666045370439819516531297922426124546500221502615954256695665816513130237900592873104879202665110167334355623109759714401929270787762167004311011699684244753420478748836986991470993445337775968298459109381769448145709147356594159378466766701241526838043727917688584979754519000962650673879581858053551990855095315722380802604484922698523168916685170925237752874258823996966288791869169295001718244881759198082342275346484124131732719689167258176915565336863184434556448856152737573543870548254653722209529786510895862591135021914179522775015361692805912185763930469685008790054758776695764165205890290787390964279368371713673524536033482628014640057923175670957011405416397095276240954505882758921030324380480575821521574853962054071372851044928185260340152400313650248690747319492446153752069267002636545589977110240128807565795960291636401086066279319597124595336992097556496080867688507039703812635389044498211661712704081379786760694130087326208469781093818551848427335267615048796640420940669466912831962266535817045891855336162288172298738721367794814381617180389771202217378982061587917096018063759973465208626061259110457127160631985799700158370631939331079265757109190680338057992360811394397873469052324115233338153464564860554225847653078324036174965991091667208983185676391485001676599248717841724175919822147324605290016140787636479417272859441714530108566528570511114412141005251094840790173224534868241239590886815277368542934450495599594328935795883279795640155802385563091369860794586592184188182744937062026754527334169209923788048599686552919973719214008583728981242243919379914960271670260723640510275446765906558662711333353953235892517070664399946651683546039607956350871721511393652398783086470708256245122639399229603503253906959730124880169595366080612737081705096658707327602934515578814623503497758407314809733082109173740675929815502829344638324614855288142278013386657532360791588108242527640025863494109600408159093239372491487841792279968687282686232963735140070975943511818370483045139601377665871671914278121732638050645315533980094984228904228588532620110627938130163494124313997607723547709261079716556988348866878739911857771016771046489694993686995128860719315909484910117369936690764588701202034026481491697825595328130227817011914109877260555477663120424776195626511006136044268512328212552042980755280521754638909609266829208000079631656466209748932440252222343862144497578126137186251053712143937871735689833735905740567787697721969623623112005483829680927050034246868540008717427271484965842718716548433753749728840248935479099632653694260722485691132915617212917352127295717097895625175085826214888513010711814683125727265065921324384660832968739881865857113158293047009727254110148191052902756721316792919535659580727108043096806392413585844715162098989188729724959011874746307790941592507553855575429805827095112702935881942476202066579208173393051891790393237679812592448703114814401898044477972381514649567434392735634853671306748098691939436400361732744429255027411299024756780763748068041391999272079212547564437946871653594590388444650937513879972129934137969270501407893012254269689987632245822426498342539001574732388027889276252361853628583118119852178062077211367821206651757765585088832153791163386614777199882320511711977244249603835797261797445085572241343243016600688365390922960314318762898875475068218327244328554812730195953220031208286063643379625718609387958381089738271921060487400295928654705133589045286420806469061341091778883690197806579474014824690424533256187937990290818787156118073877770638577661541841849854052021159617992807625947862291399501124939936387004779878816670428242886107179728788949245599805342879543042205581865164602326609124928644563274716041082680753027597036484474006933204887526081385191417901664322770012034179152790573244042233425093423333406548446650264080854085617961965500197083021219688548470776859251436435498699991293689149152644098503900552221993654819375044289166423555363632436673738938250414512549167272909519262790272442714831977091782287777122620621356121599287359896781798672103349320884798653806452550991520777973493773923241901587205104749792096814914275163899934528939712140976566649648696995418623011071844280430678055520792566735002641819437441716558963551426035920648055139393717667491607689766862433125029792080300863202246052666227972534626744934674308527056440780199454684596879623875800290964577831640266749810440488054214628250847903263221135436561742781946598542060154416489127830962325092969998516878669159419662159848174996629601700618082354400644827453155994721829763375667486806323210347651570556875545076989758410406289824298915028876950483672000464250770694341331038460211016573985209691693028469204888798017602001001897876119149408468666616915083531646664612143414081519681130848013189166849094853719260568583844981628074349462113679486948329856120935610457188705849587252732998784077093970324086953616807749135707064540577464479153656235055888117824158189147578320638861333263150008699918714703368342647967340397272255248644466133780115553539576466153681266999369839417840129066372889553319954278018767543821010702451672734346804830268697508014689714919790801205960502261290074111856665233653745280386494593547893762123269873353987940694086602579808328544132057764771717264446955751013050082628374091954765181315304208963074469145044408100152627054758051210892240090022573818129157523156747996514055564442567159649861792134044326931145467812733894953310894681060511382333148562582428962276656761905971005667751674420277273004771117784726945907706819744700941661026073379813720346682826826285596547830760948969041622136586104486534223222725242084355442920171644950787962974492474376570559449685077378464688523989123141164555402282244640126369741073366605875192636186843602745733604319002837193372669823124867628311155733272306558508399079124169783468033852945599947407905112455725355462195812845550281842405939137054745912044232991547837784819985297675630102190382478995976332997019562859218366989202094553165676898452102360006288562803431214259735621619181768320005741360784415494805546695158592365117999818538721638552666616090648176097328718249175916984597184901743558680401768796064849419490061493751809885091849143866448031415110554868442927896153613547162608226575104316521733727380031517506826719018804506374397760932045342072387949975505563386538611955991193854767502762310439871678289200948992166886653120751930383706952587008612358113191034004931696099557194227409941906696767866650305259640856893506215367112682538168436338273421494978026219229390514383786391877149868483067478926792131145315808928259577391476382614597758634546506250935072260329758003675863015664662416687803213219799466112788126372508555533836926469604053333123636520618170842514826069247575859355470999129198054472371600317547437941528315380092739582041941942864108270733231873163255097654166329107878037736767331361363013990859043283098398777558311155335835787068090166034682609176640259339526974038397859820233028843172628237763937160241436364775680667688456130752948851036602275215476142401748498204220047647522705162336991420399356842474675314862227676159074136623533156483434977123821192985927635056834578836394947693684129094082288766436563496253731878118997626943891621539969175408710048046527562711748402864188147942082565898993167152774270733692820664266979607863330835022492400153119520968714536965003898740337951600968256494279217883530449466594602757362920421447987568652274057903749404073491615225737400549078939459679844112747324068131873773497743993857353930963419581797339697693979485399826493060335171722197678924972371492609725791556665768701821784118208187946705832633301170767366858502507886157524879964326312684548874202420728555545816992137492902891782449449160085258326951661219958320375099004698460682289973807848987362187652365047391026528680662570460586130201179800758089414080678649006675776484192891934066399652438798226819769963183630349103309740783145212267767131474604801154798825173757044060076962960708662912430957150176629195871247219686649550861507555617603227890087565070075137641545858884664969133525651777853699036091125511252736560311913153217186161473614623754080677507592215037935044703456965681345898104384708552386162521770273220186743448610155688035919345867311853419297644982555550015595060514440642012783132782482001531985805441946901786619452579894202228043921345899567547785343883330884404295821213912498829551828530567815424451011283260775395452322304884954873822731086794759051532435057641226311621669840523848148258010730447226199413823525287982367038099543281296493138295829744179337310669455668082117928957521667509410153554297676379985927972387670699957063544668744527292608070162871559274308021533718059718839274677761228220318118163960168132787255258827148980279739238577230736379750931785173039755421836144118673572084849904313048410649078168608820494470656045280405263576837375058135695818862697621940847144503528687807715068860751672263776018686344134773471296908287332844128595151857684974391694747390842044603057195223540069940080917211030991780069625180537245816605196069214952853658567248444253270691217714917371701430404992428365403926286962610013405642435475617953678173424639823187169861136907381485596423632080944806108373297971521098934309049545619644290563525128650861255322546601772629320586944440516082893717175644208310461032327592517211768836330193947552732632530015869027755313819981734174227515668195833045809492034925937632100700725260125767881297044099748211166866168412010644830943484995884510441277107272173211454732924703511920005119258290736230313013889859593589814912873882986853633328101884125854224870039863751907425021442804564038390451538618338402962565798379570850573375613130656472182910211855857251752960451205974346801171652510323678661611208726595102431608702379080916540810587153006723921894771102996058477006741933612601552501754219628548844025438987597410101248426574421685863963927071742081365195345814039864711893706546211909783029600374705793323649440318360858376471180773640530270763981633879286368217569157522841162253443677983950386906587672016852970369811899355885184775589786683184476810466402955678779067363511155127923268444961366706890905479714633266998444704282314540659105513599543961501988143055209422115111012559723576612118074314745049359152917552972185152581513220141666532909092881214910254020710124807437999339084221531101688366153779905433330039103374662098583325737934791089078952407523114156322411229832767012560484046717291176285338447490481642161209599688366703640836046365638660963811765353971898725387948067558417244459379859412273988705497108615014353939780341439272354220569048924097784536651455082046455953494578230647906816297726715444925537496030618837904668522065212187780768062344525782293973465716081098554329671715961242304740917476981787197521702643347449485706282946146343104525573060114564360147746178760393935385089294727350971297185583721644225451378383837522842548538687099689237430528915828871503896814432776395918050239835528183899918792614185144362869467873260066098290987740297728048188591037818032892643440541542661755290331737118060173232365698021769752903236937268024827317856719376815586576812352624383141014819072318972148032023220766836376816214589760947155309437252912641368110461150723408243051742333771096709835587998998270954344033863716415964973847988500141347768594338613409667343933776011284047054824223888856948251735169112414882220800676047629446474277337442529988382701000368208109737783308487484292023617160833410141294994766975374922154355803945406415901690487785141369278870438572467738634194160798615367682601537698845191337463326141642050180434674351590551876844073762132107612216243942893878311760749500215000252188714277417123855090517776719001121315533585523244834052656353470156663100002564206706634720590354662672117501384747347458485572650194378153544846183288346053830872395755629715311496207033126987456860398890335232917380476760789185338170046611086087402757779206227218034644018227513580418331009561574635091007161414443052023517661907168443640624973247633627351743156928947378028619124903083820810319371139606220317956614812542773258023413454337604649408709320865031425100998349815478791074795750503923761927325027518135152459257604075595039945829130761264103230242958476692505953554855439462519944475065806005936701582751708000519745572579054307231356069136592855799203491923785217755267981253920276077624931621090484916036055555797590954653812460617803299255313476148470690098944125868573129926734422651406587742467978361905115329255867241015609878798435670748683213400258317932562704210993451600326855027522090612036123293838990843120067321552532339771039522665982912587217289626398799947764368991168511940031901494178804886161743873237049878897017240090982227515660683548549458433033532179532809909538492525712124821828039461424664065139789000510843285212331257523530904694377213340334907221483833584442005129699856289135920974394143802997468266951321564293941097785567052053726187232149653361556045736937541414457011833759834129655336778595074129480136048161131897484736012675474500587743143860190557242055523589483337143229181812859523186174342630675967383974991199039637971411230374970349562169487359694746084534363642581923295407325159671185247046550950004275471881855528967033133689627075501076360677038442761779765331387932304850642105744892765640596225500239893380489345681058890068573880712976700253816821008427298574146251052841541975504563628848078974506749598342681904537840050188113394490296867015418334890771335401847360326601872135226998460572191095164082174397855500181235565245435987577690133873492906453485950395765997868146438719876898706994017769884087126792009490910337210090984546523382924316855101284306592013382053192115968157658706430832442661565123692075450621057997342925117552269049647172038034905214165005107224537642717732998048253495493711987183849204541701545540878685468967286503288475144008921709019862826443588776454535125042952547284374353365801638011819982992905330810996781251352412504677766518364684864484999735322549723301959783241061360927114752279838533508266093685541999056666851611413132488507794818313419366800714144965589880775340989968391335866197811916758913854890552965110428129617842992000209773166120513544380283594329668581716442830379089191874641338662533605923658203389774879126862744785204134255021270415144367368008520672086960296159883853536340364681602032900067780649497450534852157788520102698944712777743522907468079991001938684944927440882571907734318371239015658967919841100683765294752676374784380330490640308904256646408727832451415072803539388317107331454440747003264830857839083108095288099639238015159347430434353827822039520097167944565411159669382693579636410822738111730561939831874872613968299039349045144264287250102611836682977019723027459749200629736723373897901474968722065961946466770471673591275408086683005496799592567839972240813404370499804502332616034641820726803200630130916939305962453000573239749576029273249170034904068505239645063393591793732024866456387882795498162397522849581300888309517071627026404314190561215541123866650725762032792147103879912149901896426380706501767674437087308179962962976733270220189821457314610278002380155441275347467259911725800328216611532560295972661238452298084098847931140739006416460477143473571925328758961442301304953349858266510012438519478930732339042869277721102686878270649060249815132042998707452004567753023242035583086681629146665800534781064620662568305735724559902430044811927761904893938699274811345475276907655915941189967944037486495803942602376361708702268026018329293397983536424720107374169978472246902431522507711528797920387360996043156192574886724424427315636052367285993624162520923820327812222763217023870563335266008531497139095976844137473076419131697730836194377965185820966093231560902680836609453824445037717003331223068018729498026895961927031819013657866338767645027878572090252093425173060478226576039121065373707981214963311399563359264135822440188798184691912201949120295004610799105226653610876376447684435186039267300962042010421097579468155492673802090616290275166014800471144699378640403287901923329388125829007985916173788825447717644589584962152907799175700869226081871275454896979522379612164664694660115251041231065494112831315046266337520920721486804142289762530087393564390678019077594863013672992937590158740913727843792592576499540133539258222648502419213196804426641605036005328046590279355628427728302976584045271786675811158600707916617473711964272484193027817672726100810129850052737182539495955863101481090180126908973122390964531425100427830420226603140265164191982606041588561017561912597538925239536449483691229967976003055099041736100133614566186510834204038741413523262631148708673175914113619232704993879390155818092464599333425061324371851994949405976684642489194945383660292910840653251695272729052743899636532396848582583118918379395316536703268579539117397661970299140032890208566169329691348187942121887558754048507833095587631296852185021295998182285845741273389348630550194549409966315828175653892840529542139650379560286773891562890632602524045675950797985198677882065358032658033939572493813838679601318880798855662374695921854473013130200240964641163247049201718036805747969848197089173158031584278921717760600447468623136167736132764733752508565362829163047121278894644747757084791590218690412728476218715740056937397897248796636805366304511898656262272513089507128722402646045466055688777407331134415859460164944037765291825800306353860912013573403561568672064553628307568681955210363435396733041887675734275775924557663776108258962581490153522179631314026203672635960221599392831953983016868534900287527558028451461152354202633672117614687044745812605128020075233930934284031366101613835145832940981704576900924573423147537920952767432718722026382538045218639682687985173509964262489879266009762364807925493761693967025512458045085546311086519604269291115816750373214697882793394133756625112195947004153099201347933698552152805082456681675970385012881595595671954878953661836880651732346872774248149788428319683433372131370271463204226679266777517656419959230028282426099702773307531057900204198603373887231912810692849507391760622103556140914403624018083158467369308601623223768075549024857177733456933245973560824939179516200389476791087069680173601306559074510598201331107120307916144128356593356731136126767425279976120659075945332234358833165148363955406959887126416205356178165509866358780627290544173053419212156378014666739264546802032605048802446107868493929666953116145620080624931789942707807967773860743241966471882708569766509754912249309863770942238422602141490866027925659571745621152520471077738715991812281191631770512261498099059559416593042863652878721446372239681149848168699449097875811057883331081304236807784898847867103622938957440581203855493775833356735332851676069280217049557133207458259558837278456703128318168934238137161478123230727319249661951582773707397186606489952453821749902564306698029901422495002088349009544912488935941344485714024670672740232352280892641449736375260031470115621631992707251856332537868173437091518023003392311893876021483278147784406590851622886962637832280537418647823718036291942144078429658550618812189000809723629849942107453615018615976457503266823070928432325604305291183930527272445998297800047424850292705076859457553515063769280938203246174640966545186384736690640879818793350241886847201030648199035410612896659712688314838616592434290029263170980964724350198827776287049087055301196731021473620645942910081138281862678369602271621682919495251580099729160700668299439110955463077679882806814746222223136451525407329018449369334755400489491589460822710673056367444737612290971755741628900052251318218479757600749739298367537273593509603333513516770087577057250305129684193026565666773086152058083784767147656536736754450106250331047856109649238815245318513159178484045272075617437885713374912610296256627893264042434835591230490680991840593695308782274683890028078803424778784018790648870413326829068522113416672305248433224400947792797358090411434877770535834929473106090762234663565901092783211811659487573223108190752599071656328953242306058112079967185851564647059511719116204625631189450582014913704160540445529180068351400674771758742499615322126947405877930520483791247436079956831221279871696919744380429521340655817536080101221239496936460676424784112607379237226699022948172409529062849114438079507690865601925876164440368381661739993709445468561188470258606634723439036932065115711242554835380871700065641698440149135688992035180816732577827280130348863169485304214890529393254654329179018524943065249043898013086612177326550028613054690409399263500593207090280877145930503548746865979839941710392611344835829888396168239812361133924566133346834237038264927537539140344526572802196034149331748758039153496349699469072337573037213793844614640181243282903875707214762314453627786412400422487648737378680766764047239093756505323284592402271264913223970298961192266180505898181565779421873788574861640689509444241082433241553212261674597773313706043355565409643956074339518406861056178373806211519588644016590721023775025902379479557621435736599965836540843325946125245824352267387441142987627117316351382003193510755131130652043902857224590551016879981910321645991060024373495834775515779425084272818182920979534491623283693178980371693151231820918285998636741282955955729134151448898950840857477197982892701649788114959421644541370303047869362294919500388473516811501360217477461641125392447532501902590682659388600217775070442782796809059307355523525735085958445693674481781866038306827683534169729954680297451122928530512425563822074036366874644251832915326360509490572100461078215892325169187833256153036620916942131354575514058346653458721095519671858898547003040906348675161091154296143626026446315733025075948114673594148811492553081786207113047035057789468176680875677425998353717671437218619793802305347059053191123586990842481728250426297547999047945029270743232428074582905850339687038723731149656226330244764845329429834216574553097449614882570489206360901933297338348011758213131180232020978092833222024888682143722199223030078564935195909524585363235954602912812821795978130943905407686457190892149865499987827122791388309783290302201054714089504493273857141880654621309350140189762334063137269537011929059933195852236330651122530418787312671413761179537482861307010938877241441439023148010019707382113383354123295834916047468372872692933276514746808526608166160583314542727359767987346025156163610104388710228949905385061713984120054633213535948459021215063537432985341348536391408006606843391829337336120908975501356670035817471237733495459707501552875191716064961202693450443840322008687449333837614348789648780328786178345243573793059039464786323361593403430800676724389017227248649450215113393688932181414880232911054389722174562601969217928158716525703202876956379013688391411363397253346014166539684498575146972744955340762367787052663761953982331550510725664013143197026997502527245557791016806706649391293937848813834438031972502916082837479632558812056316772271562618822899617974727662758257452228057242765747848328781446207309553143413538907009779014967592745460117129194541791137633341081703525439167797068790686553086134097187194648700862287966559195917482293879207641231893989514617732352867453499527442223078622935125338321739971703879362534105023509396838697035581139334032775843743773553235896533288090478196548373190630981088726933262812343325044739911573659563538469433852071011012170642006228663926294263228271812738110167508548385432640777339355750442499868546555866959292409455452445266978359178402706735843435092428645885076508987236968634157319894081048489863812207780952778861489603246965799094248644231482620076890058936818573968272315666140425282149622068957728556264313553727952034254590001052720391075891333776304877284075726850476621371561173153317991536996197335584911018465060924338851688478278582229904319430095746786084849420455258008689425976049950144100437472391129195143634260141080878496410565947063646394069129959433299050850844772550131661543081517498723174552955638993862687876125961516168402024227330034699900896860842604463691631595053862613036553116426656336303864734976607721576311421423372325041064789108127317403061185888954985026630039025211191740753273618265564184382572985059964648953109704111916758790913101075649597904763878780102490438834124156246483973323600219040325496814258640391786666918263864828839527420027721274142621042593189248081328388614054149102724112458369421708910925172503794867584370646688342323636809344621488775019848767390172641289099792621923376313827687825410704917723554059692310873527584690071450595171307591239597800597972368847299395331326212374925136025604646897639261686739589003867263091269311668717068691344510452981919958014069883672609734807705257415984225386986855159911869754670395527899357179228159465329839675325797772865649812057515252931574223631722885634315507126447000464361373666017450197248296545421507560235749473092743888742814422510907244731821204535597587044839765642315119087307367613694355012405455538456090697034399940780655135603374989484250364949250681877129532365355207778661816512668682505662785292079909305544942290822453835483257432185142818119125110767281042386678512532526516055971368420499248836105654345269200594404498855418585137249112270827116641434068980870692813105126230767273214791988908657666786742507363462953535852515518455529065890865164417990209175622924383511432514481743251241670261379702801122458604196911840268106772357733072781249438597160824344149158137265094317232010525616391034742983163325252822195187076770941554832001026793123425226662680931706937873839467243165296474271788355999320858654042920029164428888602844783103708006500276021957546603197265797185643231783775284430752746435751237104331346425397480660743745472724308072292475432495202274867500096361006867149075987576243289066755546810859765168448202547515412096768900163513366945112784851482279511984443120389504254904498643761965334805675937249688486661419977427897219704797420791073506150999439379247768201852579461290920197464112147799419028558878952143154688854527282662342124657582003441539486854760567820142791658848653376071502680034178137016481505167962178971195900641975761947266320701715784175076651690222822367308187505871255775515410823101117529899270050941159538557316948877201747484870403450174925258018306010089064428738175912511409850842959049501051486438143914776883983959062326023451936280844873775417088902950850203047416149964362243952315539643057502502399955625564924679494544967475484413200312517251633082471762241048109871812705309068166565399226921071164490499418798669105396020632997044124690178394927261408955593390424059061293605174404238395776033886320933865401295924653850802663172177318001304525957268117823294891580938957791541764686027045856975984881418844324720102624466824841531089423028188208545505957844900487941603152877243224139200314850388880815252940336804009441976134038668236169173367336863253102907685595048763928718782621298539762256408903240541014015415921054425003371067598534187425021982654223421704672925842523780937622885950657206487669133317725029254057039483822212127140687757075661001187115102868848796031185878046502925940824486117749340793938509455403630012516103563080862043628819093937465158128477360595247923578397096372918188583825333336366981921058161331373245775401823644535694518312654532287789476956825075954729240239561488731582788034800723025905859891811650535827183675327256445667345975375937824042762945592531991264977871277736268309666524392190720560246781427610746943456315981333935523258225264159691222728170799467642660255500032921075313988247537278208035888797620868266708129019493274131066379442904279028768862633744804386942826482033512008108078514191754962040776794869329920632974899664953708424951963917302380977249874131866428353212923920502024287011581503197413011341798067543932819874545598981343848617922033026434025109333879228837687509579082436243506063562147670731810466401853185144940288403364447409437523359563052409327207713039792772295376326048937827639710418817903295690367447720477048342311499268775791933498790240890114681011852394881838349860999135144659683053489185018288447819889352615802410806151338767983812598067032101535933399946557943515682244103006702900145665746451968559394290198423585142118275711144322909505234316954354842643926576871224725179395005852747100663564217921854595146023648605358965782380059021672187793115324783349749813389405414328351568629774351783042144601912652200430221376678634641235530024324215641808701096830638937201542561150979253733409731652218490294488148510322694562690558292056284382177881081659634349662795042134051480068702829202419943212958950840133150805024548232572416534057304629718478242550182362772675121914564718505218383445621686101533698460312600427352620893312927575530121197007054884430582611297677582235968826574647817621072694750651531300016461954100737845808048573454246260698971602272861392991388739429764822887993026807549586248904650973311350382387896704590522243138783544323360231101663692857545772754222376124085363643077769082543993014137129046739503031138013405956346931934340734407153267268191558461352826671178972611580112128664036391220067027185877541466435128649219153499005614480112486819479133823525596050722702033511325091949739573209611778697868317175247436587952406056597609047869368654763527786238531931401632959585166186716374365803827007558865222667236309546143059557197226026578241731620728471170704387018724147264152866117018232075499317211655438794838520313032902599592130493445958086910863741736914772750483857377736581606483987579914310722238001947451658265590835724116376053539333012622518123080648748448367408059474495950607331404548709696106376518602654006283583949835850222666926016476038226588492659109505017312551315989817167131270456819129016614842109148198613345480692447790360604615415979039647445843507383830648261521363576983405605403299153067896033130214928304915334195951966612209272860879667114278975476362254905975216573469090374274531736957675918829310915199371548652994930545896303626504780770309522120904675205256235966415357982354628304870409953194053563577481185362043776834592060399764330598744716162477383572590643516849701706310995747576641608515798812094388096648924857414623981329897666860364738728220920645284171113251125600535832791725961153997783001662043968729198077929935656466937151354910258930899724954976063400972777718918765589964850293957615401501992768113817959097085061139627617136552359326393530007872647820485176538796216736490362156778022557259010200313002686099752058217259155804102031102630722730755034198347326312798204291628575521107376119389202316363417317026902773644362708477568804902252953822797296084412808982570234818703564425740573716981371834734799815997492343288947373388307206633676488586494705748784639227705388668986507153282170649157834842811783044811688372519787561555188708906028923144153388046440341289212264140080325666877375805064260439131267046355402478902294057475140923741828316823952083549853009554596455678619020391897192290476894550689666210631201742246150314777508708249313116574056255263526819286733263902439263666076926178650697815278799299469294913729999439565528421190554259039785897371749561785292925406236604113521460548576820391579804724091555493317521275171993725675814239082889426144653673535194471475199064162182434799840120616090758407161342355462630919151784837052324935522741667720034990532349666072837325020322952937410376599775967077029248502326594884631606073314565319503312093492857936906751453940205093004585922727283463515046949584262647679478240910345115436318268810892992083060878347639531564879109825348369494077632587157125290359089129338132132046710342590328504555063415143551740923300713228820169966689322772990940586880473098081237931015493713778787547278553929049361755999675115291174687994522119460778936829016320756128462715460674091217154305876648364666890600362188518586332807103669477306980376285394458270187049909746947594853469744531705287872192155556399827172131626658045353865142962079568553881050777562281939985897800440604678177359433408129307980550776742828322295998461563001195252579665048177417868040646778847944095579817745080245011564079573682607092398874569577463828337155076359108906309487646004450656164845849526220633490918513991813527966035392619633144115355301594673879556184687114207371066343901346512008388528830415015158866885468269748451444035411248713876120231743411696856114344158994384374646228847597350118042810206037201293509808839626653837043592170533229728686126165990344741974957396470379220405891196156053552260018112049153366534895236496093638940738567580203742273081401385928664266170952474729346968065985112763474053561696427583613886112768855238869897686882473733600302084747325642440969765701207166830328718093851010096380942372651694387934662441434355899618950979129596939523095329632497315853166927243590336150829720393983080868271657499512770425552564503185838594227484303359087025313336686164733218910561127912766606133272231423349184733081952959506404242706703652055055953797384200020616150780048100272006220553237926150770898193430809846671838028631060979862461657430165062559606646208255563197611847962479659475737596136032698161318379890339122266154251651383291713815364575149066764164600848589002325605873738888920301772107613600423733101551186794588515240736779934013961260726441737652079828493084248493805375934031531642294429151130548459902488900402974475051941573413851347273813187798487172606667281610391756866717746261403359531634554018852252132652079723625784313100429693325782745592702823484482907460886635758916395829817322352856269174929270226836023917689050402492162569668092792243590164231758633052204291546413752986684231991455929445176964057365763490051881755131492301345890901172319440652935303779555589023259968780521077509906497284510580884785853433863404352333882641257087603086073204784259105825543226501045901194243553811360333186896068230870592310035232582507604347241265247923038177058965602739414914255752127203640590684336155055689962057090276854318836593680657512921814159916296816358694580026099575962106281120980990730759686395635934806337194770737274697884168557934981749029934011571627525534518753631591985833571895706682840832320196900591864658265982881860289095684752769430631633684394248552249687916467386608449889743370448740066646842637113826851139441468415706982960312190883617082640322655602466749223304954549158640790047758660750764404743596045369660260736318364128634914550966027379343570540457682825159118998793774933590044625982338704356962744120289628879502551756862296432223056710041614302512593596144567629208894474205410306986211283725964466512631750214712280949278222480056834134088181673053972239817189920495014137756485580122474276829848729883103710335315226716698694319607707447857014279520071066397348204223907955307343306129826264504601798357132283359524394257332457505622301569152385549100144356544552663210525827672993138864042609407090057292570529191435584296702179486041551833801770849006033750890106017713009285880831355463927307530139892514803486625762976447421585810294019665388211439109264030604380012455719606245924229691532185864895740116865650301647898963897749550446567457361135991290470631997816797348047689007635318065158660794457786949123711407466748419811546894963131818326688162971946211946867678834612085289754524287363175837212962006510608352315072709584804953072899327332616416145218757936645877723965448623229808235445436849320425271793227439526185888773453505088377414672583134055239310182353802319965085488148394507474030008662323538824902356365129638739856735914781318182066594856142101177174145137827928137735591556995965640734603337097530542784377825944681571677087205110012499401092399918655751141430636858956912023802967224172531292774846260919980106469412090949150488566373145705195804645143422257908228755554269103346786418368840712979422618631310516275508959666405454910054241060181365346415771789442551995850081932535671290339691593473530109430531243514057639577988970198364705830810577511698401411332257829292781646910031973514457919628793334020582672370896343996543307271358750119347015484021109646592601179368058181454892469741392936681393114119756005069418832522830226182982744534270061757297615413213932159181597478638860680763708797845954793217553922644976995201887077784957506700741841406520872705542439111400318377448362644911468628049449128568451163968793359755468862691092560928058387128384825003797875296028558346054445617860155442255966968223176252889983514109156538861346222473923039033819413099352992824438187613817443298746310915380005895051890279948993615327128501640952392163199764970628634330482115461785035373777736366689063736772035542119234755404184886641296534286222817994584284676877979551748994024404406528826187684302273824323881790906721248518266002420284782265843435615822446805347124895133958879081225489887846244003226332749027636593178571978101441989458854859824867303327226101685087918133930552748524378882256976045375886101741166387217440872368804179302343041273442554986691612788450599010867846043357634729203787718207783512528268525496280284958065058776350808799441068449746905136442603418359390351221327865688224778169822822675643642064829960214659570827629179666666681446123588595298059814409627346295232806613746991456025766434131515276830140716211582372121922028562614883200147075881912554041606781997823921196828217254516443522697011317698913234670903151797119224288364961528344919147407472376711580488348957087019404379272996232741762261254074762505534331387475647962141866593506616332647852188826334268688008131520866018312445871833437518058434761510848657139481664756897779019616118462722922061012379703648925855760357405956707657024228826496812290907041421165597875137613973174264465510291286348734740888509602241765186231867576068064740443992351268732048646522937860453230892902317858040723300472274803552823366676855058519770949196082749462084405002294170763001297461703974317683276904217555893077832012657182123028921430616333375140719459027062330683138713600675320752022943724717173020327900275503374866888572473340818810039627332614218691669664407207024629604596232188492749722856859954525984588005651741885773751722030484395743050087858419782976281909628784288128256282790291864519007628687463972922492514316888969065913183891720657779002135324858449037773722529208223775843223820267489414577611094554477818456910971424917087375922383072291361685764633811030225209281276843381849202358202980482424103288222003232286541026435485295420742767036221489515251858181227472854170121720709975155882307451832151427237851225757444683936248033630717848313013768038990081351030351130849513914949987532752041090813465453801220649413137107291700351985171646789626953819012024043459719951669102555349021464292597354224022650181491831911603792252969239460782492628621689889452364948932841292434510165424979049828423157251034471056239442625772594011065025346607593215715769415737311050996380939880037186489802100535799914464472035896503509753354367367591935322586528061462054381739755778971700883595317664958483952846283246570119093235602123019873149806803240901768328761881118095277037694969020032274129147261357532035728697869321670249263283916791379920038584223004209084623823888731453634655016663224435194983937813183577690901188097714078527955566098914000296960579064096592812917375232781893345192498565018118292558582994467304779067085614156210738497297948262256323393778871673385636087628627511840722362338576783525417839490023562129657550020875573809301106016319361638598129703117245160075233212296774391582572602573033613897487819505930499520795489769220492042169943145346751643359564399871490542677671117269328013515302202566613650803796070438184791041167371612785933569310076991973757628134932530442317668268236024215992860910952760793060089839969132309455963230052601287282935379701878605087044607402755433347568832018569039244646556787644607095262611893769218886667999033620977573938586946215072665019646498725150721239382061165434398458736566930623278292745359033230542158229696079281078108021301349914716746909974158142039798936905058275490289659431724487923132060180579718343873064617384915891686850269760113415710125327386520559597781270900094066821972722281968734975052574311956169125767790212170475098245798833818453097305542021703660756531429750910040472946008314974926412468441708450891041219738653994007265081170692279563468654983164634030984426240277661496456190624993866924677900073553780259415983788658193325029588770118603882361396649380648525152186588206081247942295508690184276947575583815285298892270555441587347221519580981390243441475833325408420135167156225829895304988510352232692555989902585416455141245761828934016532375905827317227729684503893266808261905791623924374410364706699044453844085205593461294277810307601354821559597345287600210965673644999201688801415468491364776462057887117126457866810862815199360389187536195443051520915281372907644097466117767565915239429203503294814327578097506899443226147000801210759937025958192216497960751007807006024809338717130373024265238453441910242016235082908610769343866094211790309472858380261718745495399555572825223107998230382467352262128881443061763083427259104423883011997271322772700059763515161429629832885936683703039209324732988500383698577911549151526076517811217952145267741246905389728189345700811298091504141993813084427638664944821769737264633310105440309827285055890610219784130733749416216749190317629457690088269347959798330737195515990129301057213489865506974913424803250768991172765168277112054892174683912405554994816930206163380874481979953175855581296879102936220608762175962982181828603284272575250686176142292830702597749798367895730420280386865106700280420077873726002830266604239028084022388189769231542872406274465419015865108928106086584238071015697110924767219479971676105150825423535539166443628671933873994639765914792836266592042838312009114586722592837702450317907132325013735025589733924813461124266356245201742650596136201476685919483638854678742731028068436955880039483745500817726764604335050963222702138460246440963756738876050089582324501611860788161881912466778702457658240305611576540971972158258837892833631613990850757738257236083114526561582681868182356943491448326657960527609995462910776599312074505449375276738369648165954562748921336792324077138967820651642126160844127212211225710539241650881291057266457810098595108843728884181798242327765668784263145661145129497396651179713114668570766131744550709725916799237725304901990488681190469309175286308710501567381875946807932501290804735662098796834188266960392501527911765928742324077638556118008303084501639315813453615129527646430177944454479030803496171641607051501696504246074045724749018246756140958407483101198252981513917675908072535870094678715980798142414024646280817784610903166905805268146891362846112478033359241179194136994238150144668856761486065889773086875248462638108802322106039020714824807112609591395967978829269741064542827569234850198789083341460343400891794222513404961036181211733851545260863257929384945787854252049730212941912509704221061183744108609424122892479865897134133597325880279023651764050599627342379265118880842149699476055745305376170961940075465065491826206197336700050179153528365753884573512267214281983898370652565198723818819379812887064695987046607072797775658420609581373450951422167813969148659538904533712557059310715799767567109464964587527198859983214998238463045231350635198206139525782782848333567474971887336716295344382223155863976779112857378929087379213959611488040068730609409372712059529407745727192053245252362679754788558399866592980570283796190506561058899750161735724014251892356999929717190078927492866957116079248623447701994891851841270461563333941440236443043994927049945385530752634896694450896731609103095171234537250484345909465464017609773180062669335533270415265629273955862465341338271594741853863024785878994396406343652154970669093546626282694730855577939120760732286520773088925346671619117897803709319979018785326989268334617220362787659006548582289695222706803230443400092685472949308368958308558298999503329923414222959898411843481822007013627782831203884679371734005448641237121224722172781975926721311121446972622252396349830343519598279891079451783046313941246362202836903344935030261231752601717277167775152346024045617374929037856392099323968313726402119777385254259839821033920160540678098403963021406123153086262957535993293564493173752059638994018863441513765627260205419468209614542970727087598495383580132226204273187095426778802843467730707220436863472541294657640792548850178563084807655942922786920588524448583685622758171235157808791175472404869553617933874018447312578742306001216970114381983172489427617616609339459349474539766513331655192142296784546897889996310048223412549223559774052095229093641581101782785797482228260953595534699495972976922412570110837196093837338027316145459374155716102490338829345626995345631231118334955668346230075107142100872979318305832129956079515942386775061085529749299117589666544097850337839454899752265077332798112855127286712703577297085719480076895941896513726028990433737298078002742134633949787466617483493951643510330799823127209101915075315853312213386777926384130949894288157985567640570488707018721954221003879772947847290411151612848276555095164603342383816938943290528588071980614370468071488176277161639827295368357890394072479928666224409688639921982334642716172233998108768692175634370107810028473083399008990207121245169093317488370413659346120210475228489570500488511096929743502093964542841620385790537766517494430215476587943380770353446505269090698640477984107462694897912751240243151734515788747861499627957952165821228967762880944438136113768066930325851682075516400365096758747352619544415183106079691762526465897340772099226976412835792230336931687323803217987420256638514156747529897469629355242349001862467871936825739314336317648907213192911043093849104532660464184815953285337536578632899528156865715101307735421259278563275999292079372364507704990528338255942255299396243091724541616113049689740128548176446020883570127505129562364450488907218223376756434043933507697758289580700688167512845051783936026083904976184185837348520697507840400012723707384974882175564474353031554369648555063110932058522077969842421166128400830541112805043695750947566161022167875061270611782571929029466157582954523138595778896954843136128595489576817279829574893475233808535678200779845927972992054927068495914981646423492531292847679786693281385125848747528099319357125158374682456457523889264266554093268292497658874680607967194419480936653732341827260274297243766165687203104528044068633119402683006177394913054081751453636355793502265119214457921395056950831338765706038447921624177934996253076695301440163252284345788395961526603810735141065684578252585407254162578610240019246638961699034682397968051747818949072929435189706147618577312733798270692692583619282466131986955460816344544558761152825920868586783474813623061799663294557973004180366724492624552856833379714995529552586076778031256347132263654659014980869895340102470286247819030162310446657507852288946028259690408629057003755651301348824605938071567727447460326860333248352913393421096704367589470456935484505494028104309513642677136296312113932906132912942129248230352004289522149347158192335416685932631399523938642455698736547529551532019675217258790867294197073067116001436939814471764084117783932304785059449639859767175087003933124390193498176845909404051524396135244446290567442337202738913127031668720685305691963165139102182702216643729371526017776264808182228484883200543520439998520055193135382319359706153358339647243054541067035522423669030739870107448021728405727127103238739917522118928723467563814997639084842554842391380916599801282012649411581886670489459972823218062667531225322425035903570027748603847257655318666695516374094310761009061758241848324898478977398534079443338821481371789880888265520808330024977747478538653202970637716791795971974906579240643879200975339492537226181189583606250040592419960845679948032263151503921445812862716545016392071001700433643812395306053848892192395740106753670598768424857149546322555432309844991625423865521879152224173783304337032619880854366713876062968779047471966608259002901813339295917436939812276213511555062859840994352878792647265856772065017310656721761873051788595931650393893891638850233930421906332863826104115976448854410630502566286532668702640538462767239482822614055319497010969468354147079879631627817653800346059276432866424984608455616889452804359618360201340938862394801427858038409196517259557057108216895245053688221650042853272365706132937956030720753762159959256184269165746535071515356177174317563422940513630483527445081486765432142430351763902419738597764066977967571446060183418129990889652536231941096022134903542081599110114705354050926523979020106574479533823009470314423916045682760278419630005527355318532616824704134399673176296927633915495410006364137144444881044961912490904161028261206214829011949559794507267602337854706113532397838456479475963105280605780579164026331598456523888688922663570719907661406354862950919973718068370544471141668669800524071209616518073579583325703502800229398020265391646965704058479518126117962433042088693785090056665004666572263684862174370994211312933172330475582040588423734672144824539440101735077929727913442492860612578642810686543671462162645002965276710363660818773705662260824986243458321903488955332690186533217870431097546744554917293592576836991186994484846953717605621730862417341820935917358620676088491065222921075592944149879662262282561792322891113091899574252667835364899178131060988693708713699066325016096561595081384543447397022139974030424187294157620617792698436470584459563395344493035977437204754980729034429298063035069758781350862728736427715303718718183237416210648396820977337971996973144678825390518693606005693312394518752975778495913197362869584514443268132007700848250112768418793347243587712029565460523897361123663137742235307868965431104418140169913481760245107149757322810384103778109070582908394404499184892553115127648651481281467650150563074786211699787044042174858331234739115347376772535176091866564490236474185888547745812094305431872881165318580396078206286977899397865330517230272273354284320940271506772343473205202227568989152840214243399189982633844339270470443687305634599007952042306746704056790023359220206778100794695751912814568792870502218089597479692159271419482938100924484834220526422376372213561901946642821911925526099889292369377030162222292234260116838406101585216340055379951441753556882447356230737534134017649773761551773540099039014815186689729745938271137709214777134153762565585239025776848717006028494572434338124953223362278234043291132823806927474993667011969773400972751127321617137454859386962783556784450264623925651096759963354917028692459878319552839709293509026224538725904138719017107153880118359207186407098764046026340473291374322260638744288835832572903243529875388602383325333240597932973392155037392273736830580647268317109392790826670751731424526549172593815698031363150841013739091294111077414517580682230458045621213051477717997677627174973085193092967740042234941540937981793178748265689387487773150263006793940884386331883530161879317607993310170554665896539851119382954962908044434344851911748317786794499648076755296161058739846077832947013286558536907143380726017840249173606565429556494028207242463180275935512682988776640272489168227648820940261006877275472996650488897771352210023978790029634234157819605555165909182888296213593940549190413886695024118898110352571947223748265487118697512896829498193149582930794045333927694059758937713272902982289755035319800757499626069900287250953292963976785573353932737112875965530857925590704932531028601361332094364060203303889707783684999400168215264307102534661645602107839766477559613207568699833402272947925550192601967060791270876405921698288194935406810875933914034915946716700667426792616560260678302265638884740753188780016674222677966730415619087941425157251806779938536328067755388268260644786382620163634473588077170651240940448110392316583436278331652557321161520828366858096019625921759349172478372393845587591735322550064509664831430820103065020909158125655755231484124741360699430402570019501075305374807117142241585539626438962402769561465072789330511588832329760347912001702017552945474157461799294883756322710883932465847253242002288791968833325373120645115620163608350788099016840315944989169030810386950399108625042240177521499407753391362736673857019130515686291843520347116755529528196959757043049725594208714848694258684130572931259431622898738338587787658585963097753855872396900314393005159416173078347163057190031635644592759874384955320251313002452759832567246298880324068301032505662556949826371056144341795871180920029296421132237887006437906117593118233360960551962711592190523507837594318836317363186607712745689765502143570412304453598339215890334236029441530930396491033014032698197224456879097825289737211701871314308265460535401880295480030867224871936605683634731725708912775718441588985882254979159595097124558330653825576499828553011641146621481262062812932201183994592253759409456175190151238615235542957683407107003122440248209621277498125297326608357183518189406553205376761857068608137841766852119478738702542838477036609137591040721640712970495168677158298042800145464141067171188883121479010917140235407147815464447160477965666582984013771576609903462167071185535582203262229035545999912590210126914248028618024414751957511033126899869224921994094407135308173318385420173965055838533441036696116834374794507484535931363510785239121769275574210675825600792188232782679679391843798134541126962318162554058127224520803866126969099275347713528634615474930184689854645110304789274236150098068720590521805169743813515911052231460953151178025952838642385589508180021292700806468667848123691685058115591936711247132659078490291467264709317227715075286841919746284378431438469159383568020225457202849774072048568860175319353351066630350366947616072222679389732587919049976240304829684121521126298666413930806311857318176864361063412157476418316402600201900771584805977308470622155782057702045036285586593089813459519034024283463243227307856518122228618632429433924448809436953827014431030177299595049491386851810827919507632849065394176395230443703249072477160927068530590303473903145596563264213988325212045145011658569217370559595954679181859286376024172141649957242337643432430397939381647860787191875623750712047683891228161456953127096588029153156730146952746383326290377616623343417841001611356783570237154521303712571050924053427619851904364678300548602464250199761521811737138642031440798176543294864006839685007217980614816943331095687071651949483543315129073736080330006484664344726372029053373141211021630773438312467195497543667212822446294456159102202071320853077922212818096431159512136012403801540633172618267280032097728200737372640197532285977995583471273813471002246390136731313613086309615960071958052920172183469708083655221842776494977060395655753490680861601615407680817105271420852584692202905974402833932845111448280688630681817212033659893555666852193034215032216305428638993047610813284349769338441436765660742105029759781778440734939956839038757336708434947204684763561813493777299533149339626952763725498694944572693480645763392495168717119062233358799076007947395239208065055624725468428464174079757573837549348510784135416393706343713584876731716527562047078630758558977602363770285653237208560613504251561311152110739422445160838404998321302823091858360313190604013911029258668029229788891216239464598142381815700209628241467742249932484642984193229222083420221351061754496826240698178426571478178489102892554983333082773337272779898867619126747289611159846203044505665293913827798671230280542556344164086745012126930918056631287303445020255455068830919221669922665797121489331026244554996919134417659188824931185177827154576852581088958595021850710993339187435431623217127591054787883986853611653307823917271202218064011586455808383723120034211844502672615990970974991579128273432690201066560968203987405549621718508510978292704768453376607369574561651997520177045623508549305659015240683235189419385554749209153071865694160759798213141135190807541545021329420092699654650550830399613267602417323534998751740438848171446680481094167414162249016605839636148810941267990809407037896732371761982301814326797004915530699738927475381107709989167064857141315604615434112783046736593334601730135883044527875320969305391576443413128678352984912024467607398655592000565507989474238257182250637204380717264866279237555847323349204356541292520289767210449609660805813958318094719211127582435574934511481080074239696734280100965332706726752981578972796600031745600882491150596214822474295886312878911252225881620394929684324993316318089510830759731409387208139480345213319872252530808834019228127111882781945649271900817912799879720740768807734190247319141230293477685908407872671314400676053940900977568366209894447494510731992102499352482163412953286823573866959495431637786794456576330523537001408321190600824876862951543610096732907852492469166226304211131034124382776377535509269299009583275309666540217958721296875933930223444224289408493845375939020534047031357293917694720890603558888089608846318764822923343124045191669152967487714739297140912984801646624038286154378136367675685893191104809919828956009098207809474440427088048995543026466061978859937221668019473867551076194121029603700104847675275021751905093165419672262717995802173256551180717158167113497852274914206225144467105365509517508853722256509128112560642506417159251579115092783859509825274323006603184561074099313867094859506911848386437694668717442909087577305306929987914433843857626661394829997730240023846829414908355079063359333880967793756257927309985521448805773073653886342281417531595181764821753804447796773495598961551191192004764430530991870887373712154902858862560289149021571965324130863875772448919131626998789605329337784452967148275166022134896735487599553630319314159319304952392161211241565138246709867092008846059670197993696004244398950839263457801433896512466008033313953290539220595499336356626920928140792974312973424065594482465110441323857961959538059127246163711103589045908498531381237794319180123518202354779429666676940317716187792810160930704978241194396903907416332186719183770770445703924803918333936203265061922045746578494127925749147186850858658151301355464170596524870183980058459734518757638811584677200721265873724553760551426976917196682480757971496758816847638628873617977283887454128681640619238317740442629310959824519770518391288059925407247043178703581567354449115449929241752406114744031219007296833602334021686045399540320142331934337757668361089053178939559504266151345463566739211289162860235612591666437507985921310765337136430097957536883190810452668911990422793637604484883648983259861918600587091214506109751332560519779319284593714946676875793004709650778312354615583028198379054577026317447486930808070046097615471078333227416435552674086479711218869372516686390751395077630415888339196164345297735073799503719094359286385563836345864866544152651489081107716437255507447830593279972525695969627132473527162523179745000928797975528408761330043715558255480967495526191957265662923560886970992097663011106579271576089967833291529388684265831177902347364222758950690249475200678975196459556600480242558665826925236786575431581953177552397343823702419208238986949167582514998481273039394758291966487937632047217300875784706591455022097476052027875162851854646673376153221467863332386507368766978347639742000512423964324035385658318130534531739280645494189013770143387899434587469954997385693021163123090865446946285671423212950325329618764197966641595326116373166333097669322959185386704554833772111141747359404114969824522710574251735161143213546574541517450567060425883962130494893462194840765641197799667065241050163369160445706215912029672363208919264894459156945899519972287156073116994354057401687428275520344155138722532672369942649117697237477356528115589219080101032798138458383338663011068612638442016748744625986141513621395467074822878289467823177903268748730005963139312643899053021874903338067733380498696910229364312681184187383833970051733007836517683844089566989538953047213438840809250035295357892438716250616499304312606808783678074187687801438541675710842129694349867874671282286963103562481925966108780186419437479601522543424195185006962520940756002425829007213482728896284567963228765039605197816569161417631039817255891500210402780976983632560789150903161594013579721234105871522770430038974236995879157396553888552115794257274749954189436984874464112661584901754074342381126738449342723118685277900747548331763625945657185137248648817628994869787209086843900793507767380249370332976441717321099535270674654706051356707636162816510961369086925128266425333597516665180444541009957428659341676466704572092486428312890781195293889878056551019647721317634429107878454070973464810833087800595551689107302489204714770675743335297045969695494800150256592019657956201725814873676581971101756457565025505363770026406494464363767798046802627274741157101642061521109721600507673375060896744934349813849059817432263493048756709802096670881263382479290386754742674394128666602198454666940128514692748139445159746618736846994274303227473668864955982313574039564938368764569141806452018483136082366962047599102083005761195723995990327977405924680554373688849222708162925581398658959410677610753223779193008543996562228023250914893825265220965372239833842225888562697129985947461648185422710040798680827511950097873394163947292071712483980108297315074902442196952366491329239645155840234673495478932670416485145832097452523330104513142071108739707768577490445793265727261082085539722647830618446829541519744311264121936542260498726903614812408060588513832106405453578099455403716623619218661307179286080848392874205717858540543586321087947088248127570353098266518962398140831418658191659695006557235079036244693914095537854804818421092110948566745441900128804676147535472427828147108182591008446342778835291911242371665718172314434337511643126557181023231701781589671580756408787645562035280723074920119858887277267689020423472280799888726921203406853979288986003009404986187289505810710223593771380399590025846567389809513833985442684602968296869621100657429332208928913362673308197976290115312781443994426778974092469870100307608054030090447503734755090364117454337979892970142735410154386199573721053564561936634169248294322533925932688069873102719814931467324659480612792527910738041248558691661942166574533256722342473992294512242231628906942857491162246383145891742135930343517484657471643589669577563323273760492350859330267294154464895315378390980350781400093955712177315123978364376626405240048090740909244318674020920405473971128894970368227921613083823817290205137409308086639765720060422617498691187848114720033848791621988233017592108795013088511591433213852957658892137363837199794414043280652362800143645403826555107814123834963953040043388378788165987003284031549409523153712817221607245902783181095260727504556905456707684239589859245230246356137353016835466072762125601195484426124108391713931305733515809683578286262464311248205549470029005827629586414069091344284803606699905001362940128969633500801741966118815032947416037590228202992121584188183862454861415561544006601070988165888153573980480506930434955793825619256846670531010361944878072192096273950475966302625864095077141392861738790941693085374368122238198329788550629472627479715223374265167262788169295990171768083713155239496461431704945700945233264201027677976894129069969331137767462484355222339407148658564920515157755789684028200915428242601859292339710978407853989040190407983939459542198671868399776431125719804922448542541169814873860436925998254133609214337169404281768920457443092895649332722033217652605976999473391637129698307917714591628166890662417288940831270700006836108770263883255059065114382272683946305314086834531240998905468718455788395482813044367627694907408879233998081913260430716581065416312572070211751323288930103124808642784077044727929241238592387861288602513754669820297924238326836831436986943089932023186351408825899395529950464824371732642847708857596067799116751701586420462124640430844571789444089088237303268996301349141500522454542810157585399609471665535259316924740627060945750516882301094353868300918942834085558805642044024411489724871069573827118058114588372489639778891300674072188662911850916640377877828051890601799277601686405079206744532688596935053165883723004303954705156773166860161419467642003663888634570749744755465665072220301500927086126101340141784639865608412968930107373655179709339444179679624797961053021175548626250135013172701078619575921157860460584105675092488425235337711297699753014682065287510858902319551597115589188456902365822467401360378861101089271795564546340649590911945244554692834371300918637610908177704803142203277579035667369402539421588150012554228010166629165192168736496059912340739296548866807883526757952502792892566567444880694743506517455212362527453154632368678547867927193375058958395277533900456000566696892924763734354274800523154121293287283591225511953627791487789322784903556503628605966686313084523164983997615612041294071294190835003965350618992263118155149995302914536964884441945081423929264329074428406315455540926581890682595916601196921807405851604503194697353910822242653334904398430879918058592926975634044066277581688083955929371848253314119572563225159833073013604491163909051237373931500625977499304585022795906502660399441615085627063903840757328377079205318709196799393772564311474645682405913225698251438673731103065862709959731138260189551551250986758484591674515980371227744602878952822316470380678061991610093728286018529603962554817573858071815381119462986359353100804644480765607703397771241244934632856588776062752478884487508345564780991563670091538431866933863423844283121097747883869958136715710674967413225753833094439242379545584366659807318875848719096948310537978485518774974285748234852130760509892082077865842590294772057387395813419318102874069225757142302013812610378039316197455277126908366654053711706269129303029837993378258940023238224674103375667319655212748678388244707794519161464809591176501774616056541778663000270603193050010439238155235487782519901177747408755530831786431510060678139222401050847206104137824693988429483466093609933576584466713625426564248300539933791999025140149188901411970026056053215381140929750036207120082609666733312307299573241332175197332464974663674916713112534680956147509573512536178815096442308230597234998703034604100484463040067428616659409591823566128252058638160583763932123512130368618953239912519782101257696281257941382572484900711963861964940761965332886619106267373483582701433254858028669632794247566812239345649540917524449360715307638255813075269528164767279367384597690698574258792670300659011867550331893684038268357007432842598054644332748560657573000118326587783875608180446066939567879089469514277635791220722196818747733065896584947673770063140839579155969964492814009892974819201995138661884480033517692201476718725953986510253535821439290284611129236515702235724997071889408188651756943163088071252790668095990552274967264803140799510999966352507504319860175112017223321125359086328868275106918374071314065695910212978132737486870574698096053704581188222986550282024047594066096699792577526985046986329712731565049469127545239023939844450193295271635813390316471627454635367597789495776188042580403946956709343107742473472350695158161733929522292117524832231228098089622460734469901930266832343047140426817606186389966194790016845682121199044918595802169080434754500546318577978770375566083814910388743912140565035616754663206908491837101223343814734598696523779788822286294399898027913013139068074082923324628654548215167346891115908608143049486989324616080115904186318826155485606457235251925856660805994190285127637474640309809319581170490521742857963044597694308581238256879003382701800674262368238160837254399204177962514103851632264767033247682114428123222996634260343481478134803316805923859282857358873773298991434568430817392727284224636963785412554551213001739870639304833269827797595288701928360812624739270337471627979268658943169917043311230847260885878426492326938207162148634802925640805541067455103155409368934453302704138098006504946361626856782550657361364539069055776860182263677789678645793654334110527030094122614328434651870164343922888828636386733607024651825184806219412464619123215151160183023280595163661193260954427862730963761729247804818166898656497492979863047740136691339310227743493851379631486807277960517883417845162107230306838672036610597521408814626616788312659368899892530682413535994099286866006414688220832837461840666781007514187934432322279068787685325031937662567270752371047758953566411860073517410444156661027780176859813798488793249906740816133196481077847437399146148837708385406927455568930929552553586023280501586954978200220740435277817038928487990035163208106535309397994469010112429797419724273006577794234111981372029633680569682159288615615548580396143921446410022436049238544593587293603299255567699369313308778563598044557006549904902130747690219759662840142074848348308584241308331108144015591807971050321275775933547270805648930268567492256596467117004440449744466566426326227028053070932753262379897269666876097980158058596022010335720580189958236717015432021772886826044465279386039161988499785730684698231573192200696190084560151188977603278527369137466879997412378807486405090348008180900782296694765226123518365560754442176602124192381685574238625196573640939561895219083174429825130324850292081001706162171224284015180981265974649159750902661365133575457932721202337141069008984262643970117437887807490319135306556559968669713471673131578940048461855642079956905079643736194658123187915266615818099025862642026073103035386492182108073582037142270567453377640743058036869806767508081414145114786170297627300164678852735051506043099962592041818261559899676521110096598212700049394180569093158273090998275335380407893060989178314955040864203759506234908747340387125311896355486778199122876808560961195234873315643339226658383337931390125541381296150970009063270987034061704364918020832081473773088746361668644112657344721115115352536293570343416584705801936054057216261484253750511726264007001796621634391756409061882256793694379724686694127607601251142116012603087227725387347788407646254273461219418405506837852011749521666151291574538930809949621591151082533999576528885939481673809678813904245697386805392553256911328447228717798456369857570867456901514951213772188562311015636201100720663235405915941273183572698035896802674706327776951779539108340831345996591865577580869783966367894511514013880873003231921362221996502527617939476012798816577578554472257105421270339264513101782449567346692801318412219331948991166198019522020266405593865357723513580792532592482081040416498308352567706072437641461439786638303993506671338599098047846982387256716281473314188127722079034134022452011022707383405229421195693239928271534563526767773003885637249541302643459157595319414215487873179790740574865960211404719595576213414395041921975068728550618940187400772626472641169744432086863721225397089958608220842346383733000597462507808424137249195909264010771675985796038165830600387855576469624386767712034055029113766349871939236340692222267249137232235562862814807050590249907446292276367466345597401214518131912871292275837053415277733006735242762090890440216250215529006935153097200635330336475771782892822297577168820967301041329623934750098008918671702103489185476194769206899659271696904567318538800971813152409389993685610673917395471279030508073728610628612233090022727301515538136226332432351984672580074444326377496961729475623792061004022272687312631320412077660749016177814132676325089899141475196256135631290769381084495123260447294728210386999260158900089844245181597521910185871251759897011830051927329964684423173554431658294862917077088646761031839929851190461777692682113229415862824746780565247680160550490737304746589367384479746165360093958712184504858270898316329101747161590811180793551816615428107040882074534772134572950164726959446731274897769750300111062541393407757340372981764014744314548563775154218345760412105095181441238949806442930869434071319313840113865744989306122349915878041462546352402342081339213509188039525256814553881780055826093132596284955533912813344749631841637909959157460733595026610566583527328221139280570344113726075991728911409243472685226913863952901826863485822093030050047769841220978440367719480830684687888797791403514534887395231554074231088218033371410308371433201643116794672731357524192521568171802655351444155142032480883218936174338718417470917537378735967843318352478804932564871234012553503043546566091365636956528305615854781930739772826053993812017900968033975227420787877668886290197226104412621440899936172111360387509397019837807414360620365243158502390368109037356707616124002581178731039161098898296939214078980376020744198260520200573839448738875004423719406110124437100507023781407626212402712858312589298114167306891168013361403405649497984819308110094661203058317528311463390702349904059540300918793324078997402820673530434899124680126117582379483524142632693548521393806786639684561450533877570255471029442840552661980305562008029395463899492052692522081386495059551125749520923140523801213860750353983051293848769471940542952419680098702890922607116103175722172441811296295158780337050840289817532878859042150627055429462216755258194307737889968777899753603274868370892594146096273276224838385538415134041519986888328938070848239495817367154350101673863699859245785062800652201550949047401154510756183682993695348452970850536172033873205091818480467386154124761673720979578691338233406144572859410875974168443184959288848825832841303284372732298769378207791672602211627077706650419264629353867271659069642411002348624006258744482759061290015764425322482577835134639244110071927304720463440857504926454996314554688081375679502140454483268716373312212899717146398098405621020073900564974717314433971633000168106841152397936995995332887458664602967655748948673003186243366613451827357829934106642227154361394403005353322041668614936354185854342363494995932814107060725170347597957203734835786503834540318863228857295052649668814487710849072900119871185405654842526378685146480369580783335717180051046270804170091542901867086697868239112346970110174782800234249989068935219514105829937031419349294000263400066344446048427785147050186913774426995821681104285872446404799774362454259363655443398733680590926125510811525245518349680319310237456108583967740131620071692404035776638981809727505213116210024178584695099264464712972414559637036035008122830769262714666077498892360428983593923799559338082253589225909942027901665759729613778581039246828678893466379711484776542720747659282969236455051118608446354517774010009375240051827856773138325044856233044349843742797200372771920255990485171523579763891074545189235702197465874033452226070759859425351412541558534220494246628632748968315464962592194737989459497193891195779992417891984476552307435780088303938941413051652129763567335084802094994429403930174097323300160386543763938728213704301199947019153038170324164974472081467741985131972817434334696743040291233659893280367873945904579879444579216501588297474431482726569977193352131968361166598738370208840206503635127686735599308604361307068318304227453558174099500737964671569184392482886535895831664694346863575830710614234873166528878892026595751481023669007444541828365959772025009324522176978785261178679699990255057559743449001651016992353505047560116032430471371362100739624449374830185043230000723301051265608803026563627949118947801554957652635140288552870946219208998447628464946257428893623180945915265830164333515721250413076276092985383145418384559782025900327602727454346457996804404817617876762219525778931228614733871805483330723402280108323609666318677251512241374321084594684388680183271030913746193133405987569589373585328220076981234229162182210102311920552006365719619765825434491967429201883967797166029686410199302563141753514355030795383108987982359812899429801974432535594881338318791985827808416617290504878498035495174372515101190176321128161040803598669785345937595958375524698651050245219070484042205757083207661484396407219340075225323470025442898603621738126268867392394106806060549893659422774167459454445111190325872774023888865460695500524636654711351428321799649431656643434654200153409965973535666060428767708336727616649869112534378052179695334515302595402858774323934849530727162639293647099955102716050688330586242817382113626971226094747336491558680786636371914735021905606895611832572178127229880535139276914593692041985900604362751100020829455775915268082568410839964858424947479295527227983612339877239536990200115505652724515711274413211161400128853206276574185191832877024159266352908439317059544203337306327943035066670371927912995200503748803373595278446866048599891861588486653203349624118095920088176665413808903429875966883537637105042574954030978716090093318303072921686962958398534244286069472824842249215484134952709778335427652217600630264822771730087570382985355757210305775995366050029874887601031473026570828755005941131212164399457497589921753898336471113716420784510062740390924222222641794296913330498582692173720907946681118157490193945288186117486898866509330342071369479980520211882402586661910436711229371867802134224055315992975882751024015318975813521629000692899014331406532279001083803809197806722491071698042926259557757644371359866994067171155469851137970273324933454611412115143461437007429119003123099602277781244727820238607266989715682929898780018245440424197645695851639453253447161619768107477192214131914876274576823492158865401402345489331413677773387613555853115531444344222047859087607192792080879066960021785396169432049186239921329305875569294792651264283926110819969720409894076688958083289349786042568920142175907843826997906676163398431925919420274303719538722401329114834079357337575672942565735967901259931805119989997645362774911409675813924493081813713900261991205960663450564161381563140577367807933395821328478279942107198439686153298695800832122263594043243368840372662140702513795538534360770081459445426688446709764648287108461655260167346480951728447372854599546443140594164041799048001918756363453475922211954836889497156035663866793619449737329031992186367091801486064228656928892490889047021329347275555966004160068659841329567197697360435582852493949622680080765886413742225833952174359238861572518032119894104552534002194011304034967057087290748044271993881927028193052696329988882769248767332348539107648632023090728520052049676749401225496020549483823615390520855118095122401840339164113293499889229306540293573662490765526000988846815705793733610404460112433700039964714350208834056657644420103527924552301663114105282022338745049326570631934290136591640114625273917338932079835585862503232328131345925220072355766645108322075447196373158856703217016180146082055074452872836382048978530704415001606012083170684616622532881519097023824877904460721875340195509241727692127578019954644058138557958500023143108374667374138890243703258308619983866274068110232217099157416944843322818926138120713222507175555748785497111239009609175723890464312852551673119802832275435286691567199910082294098531760811277955486093417545944118945149696395724768518041873665194066853628969511946456066814203029076817869180663965076075594435429004015142928428581830087468525905385102210352461739358038511354616690576639529718225905723086173517505116500448398819027545348763523187460409123805897024123414698770213665492384218414974336234459188642461429183339139888393586010738076047711540042151075886820606929042986563796302897439679069917181509803024569517585367368729233383536797374957729304422183577383284613434924576385478409599820764711088704529406348483993973596789931855702641790529633921776104907708877303418728583609561172571353224518221011887927715029532550376177286434187759316273246373540405679387018987946828876533149539562143845163684356106892880802961357055393862873139580047812858486914491239718033863230799849314524043961853866926825017279907613575042562025453565356629469851814371064412385984364398774160079971402437739015143919420391605728177997013150406131444443716805717615251081848494869483951919372853897158052652163583125853498999749574831078403122422705646508701160121496952078251141054703199890366488949254708825066986667706950579778827331734139601436503685233655879992402292497810935786381405925454555693197058144256418490477436425767762858183249083215460066950525643192219281488287072039532495055509309822398027491496448232089157169828145714579612404278890658322773048923014551751819663057433980249569493713760806372936519034091199182762578081328613784804931436537640682386659889713272836321576201915654617612739879669190667112622818266742513236559203013693861124807611689667913847967014275984562290607692100840254766796448512123191905962697270271883695716646148553671900358781980711090568274865443190894707242351046142849753844088268767605334613620217507726882204565255232964662553133524591064788102025867096714636614520302606923356368851913587502969123087454808196847939620772629933827176686305289398725924108518348165468313767073095869494676601237920113948359429642976138450086291138009691860550057019943006101130321361143225930059901540304738598680109084953814033192366402156668313810677190012988770833924118826552061097311495346741998796784096685303771985489970928655514378247064885372006273125270200556654947038080381201732575316167270547724575465110119636296991531677388412130983001980857319884758373955072957256443848190411961154496591996193240834854552984934881533450126840737436065922193819649456037759997258054972745248192907105844580682428036324231107833398164366822373538033784964927755561317229466191929539303699640713784807515720137612252294428491089430996211975777628271847952736694886461812633251687303179350896856155131856001161119124387174222482563132769661970311190357794488969621181040800866393096186134669516548518206367976628436003786506487107706533417538406940676559548829778541142843479791000585147057147523964187798479867471457164937526966390531960003174585770696168830642475183110046689717030373344408548285528682428044178593241885981534546487497592883638948006257456981770554869184863229513764767659628674468435095060589899890690642655311589610789215582108159558645428943691333689836190496778156859245396630162476092751430080249123054200555649479757683441936736651171105510515317661876674024792832979441651556083037498344382681280304207418159111274019303796610718323704912748301595271135711560700455979474587252730791320373525291445377718240605001872721346262360086592925972099566418996562894852306052366814022247139586236767100478568209351273434454048311182158131097579550454337747726986324604542257600882456569316596661746622324014130551839318896289754116974053342103781270882953555888887970596685829209307099950130803569744557435346324855247748042785700262702354446264536799563271881657526217244443579566923009390481886184325808711137373934048086062579980482234125468405666027014929704013971251930174377190524743497198993062748135491157680929576935332810797745501878097442157885567924900633430576820139583319633035417681300455189111334040763675595982906192326540897148298131859264622587205221262481565644496840290945997908811438764938125927573306582196059222002030900015176363532928669273288978680461409112340283726127864371220066789914786227431345844734497167032556875421401276217955499209498246576030677457008666234408920160527221578706090014468383717838512987532778886966791837737630822987404183137905159109548299558822254980757568508954596520039934303451143765838829356676351388448212778666402938782393331785351979810859517121370496362573916945801479501032333980725364954889062133991184675369667587656032645644157807381855042802080175861728705574117334416656183779179209034700429141055737573456094476904188012642205618440983835758362812634290931764509476333495857553404592136143567261811804306320980228714702568253903704752025346424880015869692380165622888812469845066934772888480337637496353386706377922592019781383786352063730486304608039735094496084924487120160521298529059310317151245747156615520236702833836001585056582113196837318452284996066561926189073225845096961369684589156419190485544873885822604343319894812217398845148327262534281313657710420965233417250461132507341513178563510014290588211096520339323721520528718775252829371494132595950752482138654420223489562026872277770496681566159957390153520517284933564443692101375509507462131680429394320690078559545856799899241252905240557000901157200916414509444707316822363371551404463854300699471114438664417553561910425842439722129404202363895245619879127277939022936657298620516741210793640270046949225054045573474493727445028194340193130375364506347930175026474606072263668808402946084770375218195162122107491237902432452897509620229850568314779524390932852141577391171494420523222079911130954775402304120122602867437627229557280925007770717908345969988576872449130155861334122720366669830128447661747360895837329727908648309866578165274091534291416221755483920829312362594992053280466399313835326151474555806845558404587966171230743212804508560389962084893818627948686576884436264869040696023169600392078714525304323170710471764527887531650386175746858876399548287343121753169741968317601957795117791076710564368520281728968917740668118273635209291364116082396388897315221875695548133592356183352843283019159728963251574275849235723942738577218555473351470860979948394581777608329555150627198734590061727281128635464684234423917248768197826657436304248217571999933666042435878076877151607364984860955435632642610614939706056182896823559041941536703482018192751235784401838839769023316442544380973173212196107292020965577359308711426764876905812105623778512090676970080984832372155782357117408173976978968027061403463625680005633985249448543675418365737003655431246878549719830817524484632986924771696746383379807281831347953711895513933082181042667404355490670044964041669627740582151057197240518980404641567442227003423270443858117264653688577084219149365609253885012806036658869341555933955875927009390852024887912063708317321884355373744882781703511813446610107426258236791770663734058974598915261850208502415850370094158823160778755738462542812021513680843216567613011607666591696265100193173710653137053292522331594873450858754822541506513887291797217577436049511773241862874431963940637526156529087947535743567290612876817486932086174541415746606443053786849910690143536633086260828885272687096362808242516103509498995706145177158323081149403843678577696509371106030227680887084222065988264336261451549113887608767203624344399587079890734922517592181721449856579284147238662283901982357409008219843335656601988654270550889685152035378852401109586938815928402962995814846475122519133430533883919474902172534078672254517717131015244027236255155726273556363437467380516862850495443274254994023314503176170067683968200090099072698046666299266083079473239115764043973178195604004788348568372546769977989656637387744600391146664336718278363805240989981825131671393771567123390079465301863165954868176985348608678545893928926355106138841702048281577136506286453450640885643162017801212405012454808785401403433664167790039143305656837004377777032238318810315300625897671509767142688257592629659018885519492336394925445142853175210539325218288320508136079771318585805033682443538739009068093842034640272938191607256091293991457830767737731341486603413331923121949589589740328599878506441630383451281149820734668295383737469102790419658136895505409972197815817596989042467733054209919395406794396170877133942216746877051355165773425985080256016305644210167041578658196921049198937719289478256035873522474774615538876522470291343914199141056947905078421806210531931766218317309595481661111209571012152903880669891412297900791743379906237435097124383934144946157718776112674533715254829735735684805392225170076987499736392134402201418065071675988354213573746660206659515150971740472417892757445988096431575721733498528868770703647589580647547857532571631407536545347274959290390845362164904252979524495230736889348440757975154977506736536328907877637087238388036967148997327208063722025214007120325732408966621353731300442924869711613153542777229421983537360309566637181346633386131585390422661400985952644014055833000849640946337312175059595746838185678217708776220794731182674163153435447587069750770469985036767144251162146956946729352368607574584219453850078620835405312477175083342825820217139519144183294708023133194625742755015469321729289337648819921994605415084989270905200810027544464448778972679260742181895609042853450994355530725769711599036034434692052468447947097735669215114315339306074868915762612608072078263257097466644542923074580984124206703139269458317996403899670281831531170775438755813124604403539696729754256973552216786602501419142745983906371194452561799362316818089416091992724928811066741494458365079990366591901952726831529730086428354215572928218468504912871515296383943532788116987766654524254302053673777445703048858763206510695354436827344083540660790888717766241636098731033902524605726818751108222870732338160237070387664642047365526542219016751576812522394581844389915082663157716951555708913700975271155908556889298143102505199546268899725551896388848598152609685332733066006284848540265507258427550040097224652763778679734889862749294775260263417597904121488913648923303387086782290144879623960627863520738543948591198452065011813811090485595558436059235621856786332948136267302276803552711770035543523242163484573035551542159078882778085055579131282922301191086576532751342483062537217088634976615763177349611150016487426827464064831904527288691498581102183524975365996588085617855450833100606721062702433944359713139517576682125766785414150884059777020804157495239210219961655547822465551716982819143181002779740730279121270709379817507470879861245681777420226124687321335978613648426689859011191570051772162318067809559671039951505502232943481926495121565418683087893924522680912959871319518089689948054296214033944125395524975413150931530934704981644844288369724670616020894101379650474551860578239680650597929990761438588544037170595713819050913753201435210419615034082418962769194556711448709454363489828327902345042600000862619931991119318807643553412306464999093160730293542916905364453889893713712540055095632171869720945305973172820664902757536818187093254469999120928186022887103066918776007957362163439481901291268873727336056573120587088505038143614811171395242217080850269398904887355586582422459053730935708730605979190593998190127777336207366987991569535808526451174144154708767714196753886683478420891119404199873553254170118227868733744678687145349340204324782764985196573350381696003173513219600869055312397972043170558675150011946603270770755933476927424488956928490424350095091132730187011129870392867565751990027325719869353845322249605217540933066404453529582174359555769502570464221248686685205563378815959812140003929913171930464340493468856461678840329789984119137169222199899722842994014992419686657965286508119399043072331343678669376085088942335347063485845442728924866787239826770991440698388459986995637517814851523372145846785348725764783932503907887110658573416509964578609465573678589938557907172152337068242130571521713694655144415900821924182573279007456321397915333482601823649260982806030901412910304133392595077798804130791067823928261545848431896089103444970101698479870141152799197122152732950380486313553306149575509547718973457834151471481082935208140440969497602561306412283151981516060863709420464364086267027900783470009163329279133555102413846688849858810388108086974520876388243085400652289836501901221289364852565187330645371664322953378799773239573587158208510613126337099570683910293986822306565216196115789979177115555471003668424525597354823472777200942235935159482436975105390145703812034741927801637417304838775930392641274119180048793011585521288163998128723036886447662429637960160004063381701198487047428277658710777935762870174915959825535720609341369353691264156685601604099992474569296291020870319814206060774375083271072440975332153947474039642568603648141057113915682171094170411763768727069402952825451952638629869916487806814720617644419673201173854936440230212133248680062351853797210594544165742693485013791992315075981880946167472064338504311328381433724837648557229724789045461170851411039785217914532437030178717343787916580703770746085280306168369314821088926985572003758039094198032285445269789700534517580646765830297483587980036711598812577981421717662884333604080479837866215406760370182456986319533906154106183501881077896644802417288405867196648214238271547634657922165694754404246548665749016845099868548678480031950660191508711435511464675486802570820393626480122398816524887853960613940934366482176774513833953396927730180462250600691204657430049397486267238577000052629259973167493609949854236906112443326784775076308859465351521656792029833216224040257646417060409473520700876490540776806226282880272129772684511982644147748422902599347999685410047131184061625742269098707758259030472416276843605185188632938664339497034584278440660753084712935358269864571228972960070043349009586738595930502892756023975009372020059974814981742384782747991422687536023266816616811640671929652944409511734881246248394397618511970504535034537008504290392954234947230614872169084430556954364691160281292212169127746067216767458126988819199666928044884611702132135667811174576454397229966918787377368987281282317129957264369431649119352354198057596857727972164009190734118830325899799390534257168378879391861979250020753449545886624018408051428447948242219527561113307721875044223848208442736397483928598186301490311723268478354751187905684135675271956446958760679159508148198193010243049476394805249529890968260924593183932949578125503773709735037805581186601973356936436530957015525853975569048415425756059713193749243149890860602977502299564038341056065799855749073128336398297485915676712799643073039186066071277271569725671193074276336169851562010754847236864762179240494698683518510093200205767158829180554378520681160310418824004756144920318615804509350955888284208066346179170236471053268439981309749755091915336254851213806319167181411079020046184084641272212422414100359672646548308727399912882702452058273570903184333736756902964396415407582200090727761363006179051846526034829340955011851792816097190051965155841036048974772155217368583516232780367553143981125845821360685885175025881396999669227046163404314933848675438587519931169474142956191396436138955861077840875400001333619388238212553382970066709229547409314328041730962342611670639219154441523225787001417721140253352079755189676996839972538765919046767152739524044737403695211018976839882098003247193628262961293833178655824329409128893268159482898064368834724084601673250366006104324618097204015836120568482680101855737701753004003022239838968854352193528906195527232340196481252842724154944481048606551698119123327995523961491506341291414348600553605823207908724660471032059680716010984804929641617276470841959869698007849503195652173010697065922978464402652756434883594348060330727764065155303142395734569087397216232183725861465467049500762552859252298504932146464697141655108446881215167543172557171198980303248012396618687204993113129477552590220601504488952594561704374143134988762074299809486917118780865004018661300022770233115837307252244143719742279433704119627424274154627833225002481786056333437109231748422191081983107987506906864821096359364765731217587114180339080468204758652999827066820721921851858145210945064062272183921324926604995413571052341819349007449734898433395730197970029917294515222533154235537006342503145037410598059480535386137867265909665135126158147645046603162451531736073058403805526246191934506201495609633650638303693084236195149690809489091525949233662255354363354582310664708161303767296845003008884420065991345929523510579545341890479365563885197707422704628223649891253009138964989443869936902976272471464640265446951450131858770069878578053700775860916099540882634035382407593746743770240328313091277674478965366453613048256550171864818760122746155075760628684726213519892776711319479317317932766135063624202923428529513455505212376981423039604058482657269592564344097428472713804979755584696932101714732049892775650394261291861268642475878329013496204407734076925383711819101087736816957804092896446586285411135473558604725042240884509995447252328934848428872898045425487249498651643774625610430933408476242212613535069948884980100720641579746822720291664352712107281491359782963111809195573343794962296739885289952884175876594771348543533676833506497595313164459778339622701769586522093877594033237431252920556666897077080472614310402855853561562216442666164428347845691498614561211290261159477223792367541432015795080424685664436952762784081984751432324462632829874401646123618548540484833335138131009876877132637531683440267192627072011819102914179086343888218663346119888638753558378521130604491253032580212952376764378559212491177495552872012613215346111429729285699239502430013979912311067699396989267230316156272470286073929200447448095030132270933382619346473613160597030983622030594181605998174149757946341765245650001882913041836637240579181702008652514562992879411999688454044995511242862815633110282998413662078876616869660394491267740719944806006780074014598499245862869057735101610583442526186327023671898544707390533742675053633805857324443932184265555092795766246650662578601973373507864162968726526960648371959378520056258276738310538679012316308980730632157610729602309698965243455358179129670587118157186948623165097488564087092207389029961783343598835951383763244180343829207999708478937158734275811190564979089254612686112205723537736287659366334055966225425704067201325988746265357720704784041599662277000360254085248217251055340458507570877363038565942498838947089615054309429915004194956398557866605783020183054134895563365376637682707096837517103118489242708017897073393409605236055167181007633884268731921182718083155715869385853045802079762347404315882307157954532503781650413721302291989555926988849120251519437510766167652166223491117097046163606084108118164821614743157661029215711822942665958800176223042543071325449764046396856257718416900050158483157056378938661900648194344333131868303899450247570957318660866010500012692207649624990178685524156013408804356795761079529960675299780670282625713298992627316204998276521504500523131275682150986578598828148071497625834396898346434230499397918616001668764640447428572033946952896751697166427958422926309803472504740059478811912136686449539801712544869922637077987403754627773780147495364152102686021370232877021084549029274448409714849922787273543783144457693074301920703475541682229921276940231640552837706352297684550593995214800343579556860179717635580035239760501239445503860662279291680489655374476916789986802177665035904095505403775744764710302342037073151711978400022383684646840327092702349957118105321323983840093303152151310650814508949256414340511001282104651534863122008030021475311242131636141133543199677540394403519582526537849452515304759957471144416077119231488678225765883485606815983030028764266289184242693874545500523639379111184572200661031646118831725306107518251031175438974401400116275921673926615971776409444904268592730409955726882054723986471176898629747459221462365876497791420171631373966897747888755439092338642679992342172278149191203733847302699812196925429238217289752722676389754711826129647028000663593920901813426417287639920800231410686348628378640551990440763039280376710600396599977744930734039619435726267482680330504219901000912607758267083607742575121019674594229318676573612654420837355328295019630479774929488648775551163575763813766487653454835957421837754454902202466205948420254750889730141324925156102149494687844958433147314930206326141235014645850738645403580319822248715579405023619684568741414326583692407352882256017072806625990230800732573594930534207988668092213157474091448607941154046078141525994621417677333622255509330647611839730280252422562542990140450537505195801946100785475494291253981242670493220903705007318613747273645623621996936030717391565850045185218561114885879502475148830067169244997305405592183142224737360288642958014823502974653542732522814047158327274638806983574316480908623491557475232748591849945818880423805026347822009362541233153788570524995676309110394727178103141951398629416116896483648986094272707632377638055067157378222075536869284322212084791703795517859962941218978376562614765267996768434681243887456715012597783248443330162262079821149090053810558117272177813351612747940374186331387031729964460675618543017908233463284293252382781353606518859011268777527174244724719866656662728641574449077198896530573053617946169886509632874722018186073266465473797940933906978589835088530545061980839844682689561170875699940767574953675115083069970028571511980976121394119867669243876264667359920513787075058888624283241490362433274096827158699945541671791664162172734404186669551566205245997981541929235919096845686935030843536393735610804029996937297834919567690404621174761717688074434678207121097721913085005025279958695891733958147252180973167985396069786685188389512990509003446877618673370741028226852313609195435367190123358319524186464949176825089932442023531864039789183857084051599041235736801994167625488632534424374307547349276267722992868337564140802465450507919776140594352032354082688902258194287227897441820344353701160367704897247887486133458241792537819987254271963047642820124036144249440477842784520128878465787159471208762907826289034895638860618472775192057895735967272397055800455244689347473311758246618578920442616192868481074678233005824473906762840075237889299299214681606993840549321736944665058184630284684610618847854775462214845010788080015877341482111976916666885989007406992530952949975661729566173513773052599542516371940736782771737342313504167002017934314667591531471278985239039562033622049899389977474916900337348805097610059396654562222233927593557499285429496620162450645625955422584020207834996172934820077502781651264839299201819719788447691965602135415049750243065013997201907560135279276007582314663523053529083126278711953791410111551184206150266330101446119049589919003465374996000485900688717800786120893195581612560811851174878845547538946400099116023409098785903489188839912149402046630699437846775251513252723436630055829808222499806309562741360740644199331314165635822251352364026769996501355760867279116409966647677384734485525107202994287257749234704320752611091235355484606297711112205290832866438224361052803956402066559609812261488899972501089076365519422104613889077011035072159115165837438480861879552997058374485077021140183218195343959100632807568857927376674388656080987352621348380528510159802900417427950897835818108479453271073846344752447578670609737087440929612795229076318917971604471099888935537465469132882126459870685373881822546131032561888439506096017106188647181670746450192111223899793566287959710134072920705439230746681720855984702582191915481303346883632506614232963190471496691300571400835451314135349345192002564439405609520709793612421746847090182115017022115778464134964496069534128823840671733688088051036568500684337423822447900852291612538548560422454129849724198333908947176539308185285446114921423779941243533854204168129559052796906086380339887856155876915368739383070218116581178091297535746458655368809705226780822352912347499347405542856544333437871756530976593718032174207828191253981059849150077540961207528736549182958383031530606121363890929452391720728079883689028695744227111943143513857539842219276691289990327751805706739092451257715253829215184532661731494838330100939431644463425606117007874020002751171085728619871017764819641802457813467192065313021438701055166096886603725254757716337526681444345247418681889308117004910273852655559531220315606426719800561548776747517400093919859429003250874758744506651054399129945503986989160978950048720822274869713145873307062713919445756001951029647681419515103312234736984216184087311888548064832019087344609321162618234295048494878742383770757722346085313645797970993284216520516957670075130057276136721365188144214081507881039271208174839781724500953877487880520462012657836234487427128682192472035327325389838297397075812265457269694386210801759843343200717480996104202059423725524683608454677363397193703947694885532790706262499686081664337520478485584854152360556014810890994408330712508477729736554818314367214832950951390328866241141934351921014057630195185468452452196277341693016163676614774608772108382673940891547347263126670594762210291839620276715425272248395311319490176062674467144152137909648791149552407243338532676436065218394928513391291957373545778780286287065484104917910767623432652116297096644169461104917418160556617391325234179652795255647531496907080676093428143826651093911918889476510659982076375615693505895110030031826529696485540656206037876763878376376804912993736471729070671400441174411864273278149033701775398691621847909346939213809529646554065361936373496291277413804662225248413444373761927981207529925985132328843792495471923872042525496616668458703139975025862887523683391227070269454687076423021511466633870001904991945897505971206053336159652220527146388647852019585760349568770397090024215302638701930507501146273565069318460008231781888832236164323778453955035256114490556631983019506093731127027837960032688857774063538405450629437831205211802403601552432420702332610040180019235633378904179391220231814051684165456870788013252756607925546653938038716510707918999619178896284721323700440504204911688431452940737878304448951433687401652366159888416972086094838956568050519486381148041831958642867106294658476963556898812905770093028644106477725745296854181532031948207927252612093872561004176282715943335118431114097471673525010402980741889285617023876354567450416197076174413385436792929490988673541912439399754382301556027726976374405784494247828348786402454732369168839155402893221260536518592683079038342005747127683906005928260842541756872503980348226306727103813295972892510264134654527606277589065106164919596581391416762008014118158918465155744585329917960906468458426817377810692432613366458594886718387411558406565590053115741181545383215152831271412249921517108528149278962916150158969211385636135742703081778806174229520928290003580203971227405822979496636556873425899731252879465032253052563135624710957031998693557451607073301108477199699236223266710161263577089809333918631955673753637111078005856612505006152181389227927927564376542982842937109852326627642717384511912937757198268981073503258209277915033579275765490580208026916925826537916821320120171860316631437645664847282595391375352757257443136768771922472425016555004811335755687899905821050958909419263613348659983421183518526785796689587166074115823362870312193380080746647900073106510548534412158017238567038785408739814948269157443075447589758356784573398193264067928798384514709352506620520716632151921896034538348172566545918241891800040044266830295527461936727913512266035041975336882974487592757228042575063196696568047448315395126425197931873119581322895298091760382012761264548587437319336018981745445276196087522433244781032829253729421831249502857041289184929546363861024488061642898761650403198252033488015616891447294180995733613869605728644362343391000300496058016940585863324410978859610655451996366039263659714608699143982318301686073341442092067486074778076445882722587464925238542006977530944481735148943029979338041765393393019014650910996501365863618407477686446755692312948268772597276744555855840975211630647364185245860541792866195491052538512743453236401160007410855972950158284356715467849101536282667080884007832089066886273792027552280575134505211686231942701921599457640610659595511091205570074582874140665169422721450337940047118470942334613014777346058449017211492283096011642766169087730314459298518693859728307770637643749618217208408708028330743505236211939379434736258566934160034296710855347770751830330915886143814563690840793673561306930863174517644244674306368112899240817469387088702672907355606828134115418047967192124750637479670577097238096610408841150962738357017007395726221508785630607334763852166373862965667975023235459448952314113347355511240229810345645864633509432319434741692034324788997717181278714755907097055993353677642201722293202059298320627563813521824105920395527313098954913352867873711793742053067878031745005716182862623823655922189270732203218669196527533823075838375688522982871909646229353959818087818124578838703573164542850552324052048540053232244663927366012382558490735086287852994436871607849768055879528489200923835373747843462640213998059708109269482938831643753122591486525541857858100088511896865199932749268897283692437651492603672184990241576152468778560335422621108320638312246963184522112488504959572676136975958033928600284463490103437621894716021528249090799861048981215366114296916562129801534372277826871313346193606636719510785691950064223834518031877715232924381427467509702963423302298528541048865753778694486699697017961975656895069465041203116816214893834329780261283330756114497977313196257709843188756704165674068470614173260076613386832340768459294712901543554069746206237358300478541477520995118289961108192638121745345662448722010826798802796825255436719487820329459690893758735271335320130526212253495571966269834007318260659352470654401695574441079458638331324842904735072146850422990687607262935933574206459897165286913418355690188187779228843953589521578031434712445635444898120038420154880268041712261888161138027419214149610248655903068517728933674878288927202529335870865561991289145495086324860015313018475287297883280016396937748402854558366345827863891028599778729170023854318885018757528062281185223012371192843358247486711570387151469622307485139888200444406678404566071673951781222711928785017168182655111772920383094875353419378421481597225636139539826010829848385808418939270004775522263758151404071609195697956149418774201583533922643755562693862279965795265734943592085984525863307215620403569581280668532448505314575773037643684208703176660400223032449232087401026833457646953491681912554705420309189576102621492406311338559464334862807821091361045629950842911720121215324371609259832866966747655381477017854241474178469930740531236422960008381275405188829073761060492569188505836680217341879524750124387999833458838754598087190190058066006299008952454268761983795296326149137765590548668189207937121251182957947136521605684467035137198541260894257071493256261321801999203525293671580517910172053717021229194945099289220255422548220107635122600120134212638917421818493873714423770680986741521765208902378517449654247867134099254320022070020839489783758769767025320746691882643441514231186595429867979742330599965561571882038394840275215121085297493825913302267084948193443879191296039514819792259578779596504308795380556362389616582356051356850991880534419959901383435132123707390354910371823451193774269816010743380010674353836713095824786514197334981494992207251521840354457574439696679370132406152943943302185777753817256039123134126821967982758942405139493173648972242306389003948462495267893654622209169238229210084012714414490477664847797143572721501231116531205258710902857220745763220533360864513238609696312376513167888089606659677127277566460115261203687660089171657475968970899058553670828474303054716142680179094528136099940363536895963832713141183692854628370007539232345681553799997913300345579258993772630183652315851116515043076405017455524715467671559179603248338875794552212995109662000455550877997214606762418911433993996729714035623396072712777125224749030562959097156427777269385169714560651116928124103855042283156332978621734203680206635149295475336900838397378610376280292213088253620473134275263544683234398364362671430197846509734130721395193506084634461179774594630026279247071330651514076387837133977437564640488098711048489186235140006081578259181527382099628399780707308613461880789366533257054925269406850163283516893704834463291711996885631114439902739269875894003487800471148343769702595111467710048857401896472016859279594330985096649757009590316149414501188938522376490486304576521343476710202243010993755043551567064485673730846368222635217050942620256924307523893882414262690216874733740474206238262806912676321016313902097729102299459033808600789986882419992580081046462740570847786527064519387821837016806172735562418400747520697260759283011271377648487742830063856874934979657370890387566881843125701332329437962910188786532013321052925500724342191068591993714655025219633967278324583314814937162364181808920248201258019249614957252747018719091118258362558332184935943675011063215490013910175925183528619708815640005507459760963696599954355375774195742008639556687772759026993328947662821369877694205500284616167183813616887519026646384883290651450001891410659743511152670178568141198423867343217699129081605975992588953024358425986843734439437997703918759783060463306504915209762964575882528927692447642494198284110675336255308854404940373152020199654953126297020014681897257746845560580634250112624969685720009226532295378365419071035653190665509615619513758091462589452209967230794516394147342105258051543026346993644606669474837023473207185539599684523523778818931844521841087414339207562630280346092366075994665943717125608841360806198562612484573123949670541963421480854503938749877386891771689795257201612775092501339911475029414333197043512310352588100756970970741538286541224382597230789785598359274088938556227015177038285970439598671985868929975695901457089142084818080231759292513010766935329984678293785157955816704376108957638218579442642477737846727313457854366274519105471809444194847248404265841278033352883054966149763254016056815905587745039922965667785193406791745117225300372456294111879095569187043986161236306747777584688046353269194476970197242323302746871676658646888795387161078147789376041233329325244277406101825502627041781980038816832116708000416220056081886288124272679655100328823044326252599454298178392322169613335671918313250370949299418112039459195388189294260244969217959652797727332903990691394297335052809578178158538038815611502433961305127777296551381577096748693560683797260536790708228193425482180791560768621759276922731551520016095664129566734327289701935096716626053638376404852414978946736635064361421537820894543489756896207005295372616566444966268599344597128754024993100529124337250487089161313589250745518727497626459968218103138136648265476034727013859380357294524523142604811969007841138248863299191023436502658777605372749797562886383369752221971632201490517279677763181668445140215219804734500324322898105055840377439866391938297266509806998105482182177147303048925539398012252597082024511651460640329315984245583931039217007462351718798764953487968321185501950822033030840296104449623211115452447427278983441231964036344863730490792198301919264788734915628913101593306776830485832987071045507390178317075633095887750627360167787142713523731046931793915789341446742188030215805997442413203801257213109423419436238693141483057391046542115109649604788631712236345368158333374663630814553475804946366693677573646135541442126280652577838247751959169638780015374749625943681834033347204362372734699949491665781747808043359116763914640762891601535507310788419876013547730656138508356106336661908859288938593069090705813862282410766051302373649853753136006076669038264523482713558367249854001813643620715518251329082426476826025903437775051792735776720235523875142906650746374091483944751361564078385744666292813483654258659837737854032711486131202660776530027865800990607601877804922148847749511235470603130421599710566078532806852729951210302970579959964243656036680541775839577918531648257317966177155398545031717438590879808148456313061113428653246579970471965368057024850153703173332741925149635740510151446460376064564963934740362187777437418524942981751879029982901710074983494627614015170812830045896289985015186560262560507209658309939661389212432714778378523589033920072222679097516653413184360983840891656851289508560045308000035162510845451058264312263435799657319025403640252884736862586051942788429683043089671102207612386977218758299196996655048031877968674767162199555121753318166040828210342722151487198300042338353075508885576308766117630115840264555564402249421986899153768574864319284081182793889554629746161319378276577661910712816760902685718684596304746631131384812769625113211703830887606127149381261494190920358055006323003526121405714576365471548643993237888631786893891484093300944626871261165944674278484248445945520221712823615046402781021231014520646384941961205716613445875899596638753922472255442428304872724505283693593338138309631550915351829150908115204192453444032051634410495841226067327038759388573224996395829476867779612164828516237121439112350269618283075644532402891775949550850032532363991600691110560856349348203683703322318839869578338918124094555983589107294674644342895229992433885655428197103823402156822573961997268835886726563792372619086293377457760543392144429997976828066427988247363885926369399054473354879797261131126026803848344124284829495028255841087772302799699933163194207851894528071773535768152835191647006266343743607097418752710399919596772559382591288335677407321957711756205621315608849211172710747031641061036159863779096145130004793922718814626306236293341477831296370766964158477878791583063138844126169925766957915560231373613105120525913208273199067227429844459897189535361271742290638033077550011932044429567295763643778140253442454555542721039418592237576901422959759248279086638256080245920396840882085864519379320840376353076872705153011703770879464314547437991377111617484745820301817285814754730159843010712020247161723031843192913276377352965674919444067705573328720783973622236951387199286883639366707216748764860239360834403419895912295516668769149708870475015944902670451092401080977072335057033247788086918815224577706733340307159051404304789977456262150983203700558743635036067388682404368349413748906308208771539768235995616585316198607955998365367798632496138053895735885730932651318942649813196981953604044103101838393942045609027278272346095893014247917944465238580813628047610365320191550110829505694701330359515174010602655369681226002715001439053364420960036751164418822525144869035254169101354113111508310516119134120258010249680762633868151764281970656276810309119976006638724639439280011922209538333759626836032404931275707321485479172049958019240777453819772493679336571552402340591050941845170451405738229603394418851210584494058252050594375461295950442949534342693282052403748252730542969230097577316173659329310963378788424460320331928036713293569155034966077753898670837477033668442806093659306179708649942306120622805159139659768872700984977303623936697713618481181390648015173694404707691563056486872295498460135721341200596025077665471638225024304809936162114781540548005801203245766677723952969969657647797705199754744556808409465641028664507564686131651405104980643268958338977227098612203902024993332574279071812623616422130433043499349832859631057681682871289339948950532419193760246823280668338178594501851106326535395867064216475528920530969714983097032896675063975374459451313288558604114321266727410944302486925329125813484257205197836027883120473583007109698801739150706703631339158260407698317451915912318679523184418696812832216927419940921316638789256416125312250236446740409064898608310904668193253585700196761859023101517437436511822648567764233799305655690478321775461267481352392467324564136898244268361607929677367863937288347119898122421014419358897704973778443121834347996051038509300341394108777207965255617347944664713724248950790725726649362349888450022534945426742534000359384167924018995310333320092651288711576978135065700456874986976725658163173290304080320614217068028098139789380979761190267216953497105406524858956121086311703996798164436582312520258385174981035574085603102442657492855585475390356006666523436060003697976600082929374795585746028092265642711097315331918765161861206092114941969230985325216485527986307533918312903739387302249136472611436096479799433103390227500965965796341925351060008851612884349596770429117446663274241088782953488866722358785445866404155299273664931433069024093601072839757467690509575963863746814942518137970013291480632112663565611865287710045003953849419470503224334834929599745522502956795381332151910848985940042613189845159912730520265484072823148593303031455491902478556211197219225464926230796144593754172015524062407764304172365724341696887521120589053561628175521890444672938604781980671509491078221897798414733182670271829899392142351784451562370149465195091853662856039346793742546144585860341492540363017599501477481707028886161394171183383363073096569283640421965986846575925533362156497038646814371077532138688763701910189753517991454634551344893695214711241722088559990656075567191325158868892510152223050910564120978841320033797544839029891722407153646119096578677057125976722240698418297433517046931576467338383160803340523735651462197565042347818715032396056174317569248253352466408587338532658123884914248371678917719721990573232408960764907846447000636697473943843257873179542027429891712506467141294270035192064556804690810331608741349259175211098380727886917884599075159262785627773056745866027069134444508001719614422123521739328637642540704813159094763959433653134510186514614741032383418828170183714264626395317321602810370454523653696623872108839667174319109762655807539503382395474051717301859132805741411689170763650451628259190455270769278362427097856196165459034303819991756811888343210642204401684831847942178560855317722870779824459818064707581400373191840675737418289216365181005969553961700988161185532296544902783096833290351002865577237961839806742253079002599820902299122255934948037800226253964443973665707508568003033274414434641086118698139590098948244009927698745042891065750513761886156959995526364857130637966122756487060853286131581819027755534768252884089196101909143209301315720243803388353061438451547097875966721768247188738827004540443295674070605737249130225213807152083787721144940926889669949739810394763761474952929341543851499384822095104656866435751144921863994701776745363199301473065498745836021124229195347413262387760409963882418989168004258797687189071660627757257328591511048855489373794752308584067857704149240245094060126695510634587369861782144331313057795578264900536179798552554926638034826193453143191171318497353198538962602559307693278942578127616006244474686250600388339413218157508162277160066860206260759224812141935973007179116365526337847223410774838681838249732079340670061408652631849959949126053712376870320187779928751977239669814453176463771408177996945471318051264412571651738168604764963957176562624503823946289954664446245597875559878072677749282611447576490041936987032322064656568369088554327151932818466913621516330040467901473902016366991695567674259044838473336940454333267695891441427556649198664933178068797104049681070477002126535187848633173798507315358658281860038858505104745195260684292084822527428727943762188744988929996409828254632912077396769090007752223488961159571097392274705163000508154777691764941204685524977654464178444492548142217372619571496968699935113233883470794765152360141611421602511222162047063924071484471296509866509593899324524968514940627565437532088588439148708740977059341292424968039047444587085377959317977956645107827025423215762051583025717107537167232662812991583474339386882285536861371629520430720195068790859886256487090021236383680680401889016193250286732194697607679577946660123933328629182081801883039412761466744804993853378485645432511796300450122856366261245678252544172704307133171455770006347887946934704064861626919442369871536349903847006997337402132713535253923807861120404681603724675067509985842429217825746723666471056858895990304297006274835794696427131733656001164880726112987519714359553158216040284501247802291581714228845461184431148084048099971878233344402830337007836734210946879104750500528765121155533059081459935917528287967784135172045921995120177582889307476151278756733211093671108018238146200157757152659189273813814922223999956416269003291133404122923800905135594671867555927738869583923810285512270253931286618265785906782216553038317050382822240325237661052474449423928838320064088475125112659187030005886966271457778388342607746017504326730474536388360401684766278684181090067201741828156899476982883891667917351971634379397394309958134399104988471975308386127272141657036464251838183352608580165462524782621733075655410946613848756784665849097006570815253257597841838070432665119900912828555793049351793447482443171289713324572874646630207281941950573627981309862627962390203165774583950763716475382980374195143085624548335499264580048447597821993508904898544152817369727771853804614072461150597234199535903224040101058937120353328742996658831654378291059008274548584776774100050260433090544111581294686939753916608179689254299144097546016508285647480570954612221606169125827087882374571378672521941304908523521100631473642876709821546368800005542513345116705488573158691475773245295436320081843176004877506687404163280027243914314838834942454053804368426474113362294856865064399709968377703527453098632382178224147984373024383416263335823895914289223999517891468609254380735209824773878257055991104106010041007668730649055201317189572392163548725935975691332600049794943994638246352312138585231492243101922794178662571385076466087751185263675678041561585459825297266873786155736590802376263571958122939194397101787961954659698368663906650374310558618590788713879005094705267067483152944535953004716986105276214142519345890468624578566525830457545545323816900861875078760600389790078670602752446924182829398984593439112029611723452755339622224415911756281281474282723229333562594629146595911587326468964666096665952324132692489760792887159087183269723893204945296004233576497651896810063486336939405777194957463907710226447556094779458075448609161026316274404089505785094724578269687745165289970420397525507596433415283530595003798142050256338436996414827545698451711752602581263932418358883485846717697861132997407754393114387241021420964364193604606796492810620368817307412127377403845495821618764085360668711640072134239274746598834782104645518801820650158086301618098560942755187231374409215248796551781332550681062577824116664179422589831975761388354789648871665338450426090136399602425929782034591145937687225328930418869202846429835888698333982586565716159261168365044151380835500757499356348997765504825538825573992387764210945950250725146666748069553507622021201284100081243042512070770304860776580763299608176198833161226090922430434261855749097116325268399301821890863633526291136043873095025156129647035586129205909875247539873538467819292934796570070417542005687587880968708642736195930626652583651697107432366377624418992436581360789060232887732686818704872212403537007836860004811243680528820983102711919977167752019734480556271345250541099583371261172117904939986496419355034349662900052863181347687015258515841062028163360901211912947021314032281073956292935645589472443082359783203581590229084660089575484104585775447583504957906933207278819616053596964608041272525972223152316316237001501374044771571241115148182424348763094784382617041908796673593170773717516370521659164436826035692229999153106667828313508276901504792561844651270699824476425907598813789259405572434647988815428641841811153772069959845610846444113149652309668306131535195100400325410435671182928522024570348786165066659797773483075582972571309204019593533886946569593619521190131122354359784771834700799523546946011952309012895450456284797463177555803492153637019535891480713509003362287118856411387649049425322868314898998200560824068195223638863850861532335009436172540257084368197507197197186101734801779056419359670850514377015065773850311240822743579400422550349090148070594496138436348599898834154025446918893251515116568251240103278360258282882495906368242321697315316114964510270551110708378284359971042746163047736090256534089182361440324361390146415677066413396051017195902802332521254221211957389652820453251114522744794086710961025356811151172170363359686257027473089177566866369246782394810540205463901777485041650799266706137145901980192311721376245862097376699790195582728493893099025935731276459626583254998157301637343065082551917826032285954777169105259596970690100493858076187436064445828194149638142817985196079322377336861313255994106916603652549521404416815921616945793634220360504834007907603869968972398392452629580232827855721770458993544490947469060790272421406797889934292867846669362393338389589676837500791936795789479069961488260995279430705149572452826819662970209022416637962872168165564234741179627626146007849883525123113590098505961681935983084282006374103281935578914018782088630789839105629590451530464262544940685937304648406804485792239407124827143928418236863588022084229480271637923951239708341760970604588180407605318463975967105896358773508616196164454609554471315070547367597336358978888516107535911833174138764168455603311407562412500368857338385813987426794460567747098107334605992203043633625051680230589819986684636510758506590984275413143004202309916572079096806671024807129476705652165266032973462988393954467097642098847931268937504181546334191121237644939829226122458953168584720146149463637072762736393192274010231000440360944572068612147540230928776398468350737212316027460821463956573404101207877351349995745740436129076971221888348822698246633479809300287004916327502869633512232145548615310576596257085858731829453418320319696984489559536590983535999510257870910893515599371920152098400593751094442649992395775737413120642433583257867451654035967669912062541734833543522396326081815980057539643818075236445847713655442647452569291553850954420409152749395071463307086018235178289880190144961672956947352343066983985662301777416504758360056227112636688233032996833500434307178334142504287738778748807290906593374330984437952816785988979587935552531646842592285617383096155023367689248648474368920458115660294252708856039369371085229745490762859383507073396918673338152020273704619473591826189548630046537851032657485980223809293965915047282750960494167885887154517615898872722750440918077949417558921137676697106796422833790968379771333734745313641178806628081249191431775092647977866142334065444161389090478671148897985456332188537325916455199410938691119156898739382527173843197635674699261019158368362285261067011741689986939275715383310888534250086490221859101708750538707164553895704179909770582422899518157616217192626657746000351523484854955420048702807765975309712691119030035769787655167498630428471240580854724072799377491426851577434465989823980552551172398577779521832683154491740983056070908929194512783914332953236693591322787136644732930795746782996650795050526451192872396643518596578494536657609918848629511679678861999534428774993218092041179840287483009860799200982499508702353492843793641968162920111176603720970350464213836408872956887385728106549004227857295938929771968141734504745252630482641694122272978583983209193289454014032113209428689468978096211579886622915491699292082428014076727821143817085780349361130970393048906820470267074985750197035232489953407656860778439105964773968570094240248423486540693414139699973968405509123874262260167800466884343298044290364779275034045236549384513965462881077190580503774709895625776519844340875832390425530910533289959434266698093194918008073997729399228556108904103569071025694111881779585255452253991279750486761689303046906953535004385012207375476109888839457287476243526402124272961869113732396654541964810074917616577086496184029441764177985887033270277060997561854727801687566936278974434908973764321626533300598717511360854391476253745330191329429337424396772851235947356669217902923217267528032809825438087085345087555917934088240426558398097162975537732717372846107497585153938161064389172084545593358193972307246730268632698171984337374894661091578683155966574288054272066698810144169299129343103161180334120139556471847242879118653541511137203997680659673819727210373753641395001740452806461298297476840614571125787215166292841412521916317655627375721531323151037150587882528518020959213251003578393195524813735244667784218375981560431117251148363360262461380167060696938182511095415045341454670041935619163148843736403900805775431969375171968565627326886990749771568741408674169344301937501501499584479055144372251632343878008712178098905269498271090490165609089977338930247003142873321458324141215177072329692712154952038701488542120640557696044224666089009317911647478593261450930538415238015442032996750792352023655593579181551607695747761597935543207367851795134906570162706256454343031391446646488819295919974183948058450286672773512552204852772005796011997659337669609146871450649066778507742772060163586187222765461164113218819827467203505176208896859526497513947081868292414756257617006110734892778395602825621969139923272287757859580565213988909466847381085568816445012263227700200151241648275277751196541176981202374273187618295237070110652131771207065326404951582265048274008711899709220569392215150530985807095166861919037661091566758218910463615189595824089154610330491179191818751129174388352038474121778595999142833014858616680969035328443253597753833444257752963526310861194632539256904738967209239169212613733824221100829858863257197986339173589632014331221191199096470279478064527818823328221170126473643737946928284598677843066876997049465201211027565008795941284946791520993234308767438048863629312749258551190072329346036029713255512339310842227891487723797474932824372394323338829404922278419767927292985934828234502450519291932550387832311330232274013960813141452145498065542389041877936027843942677281412009962473896819624300029786742380542664723707374072601657677384702449536001211225348148361957904050706629589399857217732954575280371290338833682073983736179403310289173456665659575370178707604213093185334112672906727794428657127438440660703497964437510575486016161158771513735151250688158901964718348198064026606459715312663968863997155764071128665538381793276184738980636301213949977121109918203667374278748102002812676236385925142693567823406739924381918390646183346209405612565813558815674142932089668890813881809249636916731946927764173770560120318926422063468099221321458166799981985723582814795094252944035023650707970555379429298215307342687647608667685030660829629318035052594044659710808352423598320333934761348075330062189729143509251415558938859139317732619784091280578401563996408753481694093467062413879925042619693356387147778260471154659146717290573590087971973182004214039055130242460866345178991465033863901427155923891325843920290902672528697200752684342061359064403077054817922313083917305899640863721242611195616521038076510660655667961608654085269262861976032915891482556687642036403334403287263199491026300905913204258335694894546534064577855966152319768237288427211561871671686733633869595225554303370319714462775995582059626681630432414801931766828219152995625930382989428911074254449429086559678519155105388208061079624891919909890812624839691189502077601966230169871724435739303547682293652884207868957031759233914291670592040311924451333711606890582193796884771639497382755009951121875985287016483516413645988985898143876118177545189096471152733868106448816997146333764036457382148409877502834537571693435653370418735835702518918274654984406985510438646105297093194886347729224099622670268594135349640409519018567488486748741628332868811391118327568063640458062410758366538419614634773902706013546846003480981788399147644764174141249262345667823038526704888037865149467702266779135395817514436925271581218169139850558251683641382501259541730094493692650277732694134743748041316208361302890136991048702400822613908567737982712310420161979121660708102481428093978898848892875548192079701235500006473178595874171279912364131744125615301250163973483848110819214632561315577734199649252942414263848306511966661517729177846778762916561025736236050670760076357004788589119143075175812436163199506869269900243206479410637935168870220323614820070183186742186964512781876209765327437106259473069297928936610223128869447170934212062829665053310043451970242965409908543966376183015929761495884252398535215104034720700516718849069268582977676975849240583153245530134592717833707572252340025777259090279284104421510554991952652608811412678566591645314711401769071432340512042357542554260793781760688388784774758485961499958230974778694510420501205227896623354285111770324509030527444501716960429086669141906397910052231300036829189254962620818332965381150403907772979326251445563453221883323206441233301130207410052052274585757483116548246266142093073714656566641471943815785166066505729598232768056987254505937427168996267008778003393308731962341564336841195247612358751793854608198096848794555021232446900270599646389363890305062779375040926914921257609747573285479569618871050642788714807995832848130747787520724934499045203527865078115453212569058568742832809880915767548582481536072239838415309477798407087509907202703555978793627204835889180169793361429691512622656100431595465462947938357780786539458375554333378632627459496815139386564758158303102045405303615641361006855794142380961027622108310746326602682712386606288262530402905472892005386386119816805460562967012487418698072039993947171935764884727165754554613398838349090786925300661500999659210460055318878181548300735356550028659575477165240934294155234940332264457750205708165618904052976599308800326091383601515039576001255080726695405449303038068120867155315093048694736508988471019743824537129239639246311671685935895278101686100860515477586674231853709234747186572483241243132724556304775428178536833901294258152633104323505301865241654348213544101617543378400681041209965880631700608835572367339281172539768451025093991765937889441707756478319566556930098824592116113142521305822570895418718279271282401302467610140286635599335856468512467614202798286658056645714077672724526941332012332999246613630269268190851523135758665974346538799421423445662650821613485400297463970932173066002691828914956871722670306653046186179145607413123413938315515047980042277471154713683157801702352350552565052617667084158124886199496835147481047509029051166765014359128511870410485723867257291870844768382434103733933800534287982490669263976179234628819986069311028016080908569901222125684831083219216909848549868343401560696474239430860473482728240050936805594059306048573192500695148137590522395475601176840285308126592979172528125180306106865752158169262898219228216020415740638906799714377118989856868910194907457349491072015757559337181145042355886969541973715501855434231394488742163156795968840259023084662832022728179547209433612304185324158954548569333159074338921159383111447876462274433651080417930369218765719051876527213482223418320440698787449583326442322011122609805391855237458917235649328651995482516506777089949133325815572759811455674007751144656448692942184345879909318967804285992973629306396984714757948643281926117457482937616311674498902263691852431443260774154583316459478411843403910912929047260956451414260601528517685947254661649664164627662939534293763656488836084000963258082532753360769074513309661349914320701836403518336164792755148316405076585105562137730635397046997107489974205434054579621174685844204949399812084474890061507969742308160966714620745551010909048013865208165983559388733167906848735227668882735803969934870540484360209762564402607514345413204102692324034586973970927681742652524582998912014313941901048798460676854644258411981880957700703558497857992134863002073374866935305042629724853946362105681960990526935353864107842972192045586195303255260101593079080385166650239513388275799450577132198721476853747293479673694671036858304575963520804289277554134447412136325025833097983858637266807579740462978088258153824065164539083354191167344024137391946892630927545490007418300094089254928735690407517732609400676793433205137448301221481759258220889849212973810191138586300784736476716485751592333783417559984205576200330180604017227265119198696580212409448616399370336931095460340468520830246733883867107220648800139509442096062665218906436667644869810964233656388232835170002050285961559533892182332192725100442065370012394022275946655463635801500705432557756595954906148851636115006645334998914400018393320016355271895229917692607416365058069475837630023855856984803591359578273511811995279201618324991107627761225049361234748875582207722638759581477448464791965901169604892550786655065255960828736935610300563099429152259910747923843596453177948790886625346107469253560611667221369777199337846962857556118328909276937328122628412909935754031058593208876441999850102435983712535599669466821110878459136496216893820775886256648215939264422848147403640787597188188780770889479336431941527036014352542385533824879107387667750923393025567929395444552545747434832081206850655743628064665908286567298858921364045121123722367755513586575896667887492684959143112002372088174404592984854677144495507389791380761329241068571804560192074319839926366380321027729772981608707414473115898842362541902775146219837004801679096803756019412648733461299080365135955216391689603927708962100842626989646000615293399132781572854851778176631658212596579205659273049288380160592701891982341136763820625277550934516701224551156137793581020735185582016433884862675795443993934449704924703664872675085633778703846123773470167784037041765243643448214189310143088415412280719947733920696140631284620672261112442115467277358973564992752939075329670978162991226678353904766851358216610249180011559323621307813964047450161037085973147176582229673019614004533969269070833675399053700773566809144068311327873688824895062580942469995484899437151165592167178442934522036272274949375626643906515531660007383247751788111316461449815101966026736394624213883253426765239693161687242607786325736364162232727652986438302333814700553730387390879194679369390172974472627679958642727754384161170664417520084417503980573717169395180930997617009425133098523667594655426685630957606689169347941502817607001077891096114778780609753197088571636509067720559297608472115539502648763870574355043681119060275904312406091305801596876047900476793228755133875523777523392631908958734500118082324550189609794197968149840760370136652449846991311406656111420012013124815064752743388015355602213608395704970910737617081715868305882771214867063352858215724723524973828873841051262880841139220688282219376931292101325623183075438167417547119340441395067261662340920386029874757501732771846687578643327020939830911299882663034211286051132479155834912080640627245083325339463435398081207028002750633694973302124447045293836221572225297056486491624905439108821678180865169422926133082572990614053194401377416260025268256884393508731468734170880884098459978175275251786090518879650799520421716617311756064320671037460340212792306217229599877235331950731151335644765853489924855166689317579125714586645160593424461382660071500681328690261120996162052963901735786926192537562899410284418308991483553534852410674591135583525944157611421245060049747123608079965277033188493554222773731939952468779519384330990742242111966298875555329826092196817875975350288712737640738351718767215223814482318202151393972461253415080204635766383223945419491757958860466222718311381400574177407146496843847775354105842937651759841503934777046884850504071157635414550191758979825657313327911038009535374132643663196195466865087731338114219224154255955925635363563790200421944585403262649331189668909182540674497846543693513393325255653549026496401920109469604783387394893408586905421939452487177928904656124376965164366583292389155133550167294478111659783641071230388786787279704623458596400116059131094702116226737069446794383603422859115975862559170407717526002944173130127115059357862125564390751100255951683438972853654952304068516640192450026770395912542724042302722064412153078386999835493739936976994584345059529672891557130212047882571135392287434616988490634316563384183531194675711271225004247446360386396153740504293057233115636447217318613902473033303797321793018970288102977343551871808451267718804728736174523602613013848052139272665446587309066514903353639196059141088758389439843242670762925671131886996232511383458055401178559413903829785821381920550102790878321755601447733468532971101458974523831401122913285099271495421812133857836433159230271310982913590165818834963023277186928821295842460034249198930569673645001381519109659894042683784737021231833163095935128027291961818186097094768722891467110852981895978215270189135461814947546506142469051459977818432352269565511922856133631373565030734798568548301634622625466150090166789626663047228367639718714417569563050015875371571294759807756031980505513788310047511844849955996685507361007687510009955277160175999130050372175814712293098918613921818647894857481010513346671463806533735706891290175398680084425286670556189184414784499740150685615896115205481414725844805386880145222582691519486853360987289752853748397211429122859583991960634397653699669017404025927669496188074062627224569731066219495868532005975003777099476613588476034338656042950118160724429316926376847870880590879955815804342388810059335380987581286219440122044927390402084627104179000723411411060732374961254355169892618000465126191170207658131339806820585747253251229320670707220296111726012446492073909339892707937496111727026019787665480519272436283060395288387037553712744824553312464145788151023204461854748066709061917352845088789320156001968209838976753093099851079389279088378669723457699482934623109463281260341306200541272590826123806411026393257440762374936236447602214018996230219200926191318622485144625580556990771509284644586772423577355021628868882620693607747166938828163331093943902700217045770545592372351767949823057304275379605176660789127824894587454523211012636496939056904279325906967108132216597701138673854452487552820336700260215576872314933875319806850074804279795029055967243728872919084815230394247473862190492468971665199128830599360883545617563089190655799966855650705422759600816099654441860082625817816746419569185765545289436444574824947272942354466022686369613122341185947082991792478867479833200461258375993444673555950372310087329173509413279005522791549841701276031031096669840256471998933729162069057810478943091348710862776526552739195116852320143971088660093263934381980966119818943318767872143033280759097151247636141544793768362259004696276355370722322183469148710395470032155817180671874370964736271022052816299717650251875088065785823854015759975366884204711084895565768078971143862766757313381304549326363296723975535319869997720573572146965069974907891951216023904767382373115266649641482789285902286873954813668320822536881662539295738622212695491761435091845320263182954239715289954111820735876202373698831513431842055288968688048095075075379158585716558631379422641485074203318506108095243599439690191641040329442837736016673902725495411747147614063474496621935309768539658657867929384063716496497646703947694278705254463842680696891520209201412978343345596097433891478769349291758944126922267982122283930838961697294880767218999377476302708681693446648728892958683837148765022786535813676421029616167876303949797371091036906777887601044486137263779486912442786372305172475158936314267994556950615116003255915938798568025694658947185918383997564806979033437195994086636583015148686524243207057618357512487957966352189938370064579329748908650166586912939747741209535508045299829402447766897938086494313692236926539693356498140590895934656759198013656476443748879618617265253822617709132243011210620936162160600028900816792779717676814939887706715860516785628883787740011457591245555677256798725301775069482823685569183826069660982328747760948558295910559643986129412814442348564674581612913465651137744836884039740525087918447322300370017573831439654657159866865261505050445149219195497982085865443198420363215423113540224945814365755922137124189137581092380794006263312407307240219822290302388343103627905478779085644408534330387516213595539787586284820842137246020282530910900319947675905884090732836611760206458198718993465800000801675341982799500504180085038805096471032100448478032283860002740055403755587162216431165565055956778259407376851402344968189770707194789612021715106586952797496509490955930383115470775557315269109821035565824971390353116725495815482792692963820336382623375864317206363055290953482493228119481909937911662759430828839158403604298905185186625823212831381414028178884397786569071532066061436330157399371192675900198613750057205269726791764745799895900475165431003006548285984117660964945776395622240150172706304427574841497260359676334484808021943493478045513070390872540543297194884545246101712094728891233146778510443591386180369303481575762578761081066851075851774982642436451934484912057613620707079220203279035385574358592201862573140333966707947645228132378537950787398822013801772164047321869684180197022069655053612432281388177795716950567686553721895831660736907652997610194232520865954020497976317070355288727231067412669687320532948227208748755446490372108498217935500481402138701207240695491675916391753310901692782857685939458978099331016394387729145488262175275185783484726875665313553699877167599274599616913009941783574623797153153100059688617340135104976899433114486769039926501985248614764781838214792068962350411559931296922519892575765765335017422967241269512356127223058794900557487296221885989153555825913055919735483189039677929503738193678319122050765868548372633970358648130241149927854583853726556179265530476889709495631885065039704460519235809647213487694558784736028645073366670965730025370539046951824085589712572345201453272127972470882713530200638553457044089714843692046272417671361797857011414246511391272180093512297867459810971593543907503758935899038280667528351244009602057309394736409858365026255658961327113320492381383130892887909915100788735466761936488621902265458732073892547453341300039760323302556618510635400593907202645991413747124330589045842715312913344203018293597156290437990126606279180376721626896147286646602854822930741733215036865952739056135532434890757860355217989054296987386575712178878884804346384296202807936892611207665163727643064091308261629727418477728200082372098153418873669526696758136192025806663416885230051591335041765680187689167203424661482129277602023201342840081140829020777266024998906795525123274277431607131017675670131935280359299983456641154139921076453806675315941987011500668286205516117069904438553882433959072869552130980741121894017521514659883288094319303254786711205399639934075354966300251463990369266632276115739639163942920666651296093901795159178862152250627084788625984481405070763420864406753703162229081934315308021942111951755623025848147818815099090667290938234318105279871351458882236500550002105711103162517957331580887310624410096391961141153400270658015758368001634695831087757020128974265304902993512972661263442924842565569916911058706996100184999230755906751863152153264990236666002912391838725731249591497274000606103640456938622178074577708583261559709818462305633675696106880865110137306688045347114422104877908667156749889901723910518660295873367549939797177706887937443181891375296175262972457449539539484132089067878386762449817313832213671749143541627024023928955199700017759172174533264363301485038796290074888968784818555560498075429869090136082526159933738041291129803466392572633166534201393697863120147456589286014527213123877031638742991951778386165943363204599440995087851860174145577631422651541093554991589362540124568181285391602902616395741690864385664817440688003702374656571605333443474353463214488346248393010619406868284929878099515299891866388843016645507659224702375103472753571620196387234233441570985011354535483378503917527863419140512273505969563677151220203705968264239601025016378490579150760581463547811044805537411246175147000847323975678712245610194594620176554318559659050302660356788069158323431644070019183515520968757493518449697012720872643648047647990171971861439879326813095819408462828423604962077799775408841556824740686951137487410889402815693839914350666247128009958067264543507851876947447096911858369260288952881323150797209139070967798123256931549737138770018795837596361034722570995785399601952732328039069072673712537730463243654820864809097588651291493778714770914690931482276855843325664274525911588755399187831610386668822575397952500334072701525290092241920783404817919451177269606470451206169278333522308797438010367046678116506494860652231869704022146092608433300360145360330230782497353964013253440034522633397920292161388791010606794147355562550550039092977021861593342581161043393307031536852445099888403397911318955360811497160750093672766105600094508337710554376225854594288027980079117786644226222521147425542575330732466118105141681557516829561115979774884741897496187527528144569205132592892216618238297669825434184157625732394122583762111701191089755920409561570967620712751280733828356687775789990350116080264441065042843263534934940675817684493355514508631355984156327088843096347318010776167818648753332971396924808718209265021196763821099803415651664112761501814307777442843015073623282707593708018163908087295898991886044921721916414155943219094427098168277150780858834976304466892857394631975771369330703882692919334803953099029166795458289631972198996737384816500674650863063671328591927094871794400155096212772007324778708584170264700634255122260402910151192368262125803802006287834385860758972549881192785174795099571380079023032067743530200968354397815019046112343605886990565972222778389568944311058383532401285711363598903752513347703583574736997212028122217797632435454946166779385078395306748573322041448258029558204670827526007527764841877771577550896692739927095050460635854283278335540194479503571822299231988432501311624934988746924792680693827948933561595699721808167399996328605917776434218605386004218378786070342613177607711931308137351212172645715329591649216315780446828513336866407196248930699502861627447912873876828563387398165500327859241266719736867061851902050485028008891385964678418954197058690814351177620447916568946504931630985461595958701200741795710185455809994663540499310830072247236556434517942848147314612054410958008731918308162805592222957844050728467510249223251666681433397677384054755085040037890744488819492398204383323680394119094488904533171110257898693062136832505646131629041453496791262291060853343337543778079141838306123191501765914078097560400292795742841083209456338211917676661167420740060423966326365088597576044769065362683557856615036296597224909839451684395638700291625621724327366974419775811989817964791228413329124255368055009706504529068821794661807920034381908693683301603501238597871667397801557496310360738403340132015442504810356725978206904671550736598342066165953457088361858281425072445383479267793838948629326924926325043101160614393382999264085845631647499711777872636367472066598744360860681157542601870252144541339553066726288190102267530556721315784202390407673153313951369917981963539303293441110116767305949036130194986748552564990244550742923339500713429780221646488888732970581366400919311033050258302439333085309549043666505577834837504595812755396216948180420664545298031737119018476743676699899580519682119409973454008033086730184628941670082147273361708318210292782898366984980200433399413563305173476675836088766119854780657091071673834986882157205867828653558238801407059553663359322339699107447815714017167877939920839706837774569915091585261888647391480288486657748190069626544133088437080708686288422975754801584318972386420075699413542034530870220572033625530093144761983641957461558890627978911769955038805192602525987593093359861321242826514129333808850919702575297288573162358271855846793088446458280105484355277080906196138594433413891156572376056545463497741284877055330166652605803364264013896567248416034249392504080972852321143008552646992525433136573638692366568817287131221140578712077082863276453295632098592244383464140618519117485811862802423290701256830737879296902767578204014536516504207982461810717206068148045166090922050840713521653551290199587725979057187701348446054562539031449371011696132237231074882989007589781119584369432416960129650949888179532340080396216295658050696965589685621850974017428494400687871250013316001249576216606562125250977131564971530152196579452871904131111162027787380532054647076081885571766977843027311215390965701893993965864544596306698740262689527348048929028722679576555278227461870890812515041691511654019110581806560851077568813067310263041056115893620562997758364765857029218074884726208359884149480471266213870779042711019321267884975983051801650926268013593391307205465893516162257029820024943452753534767953609446944254668516661765740955818466662634986331159536493809446846050979013810981244965237103325372984195704994548061475474239043444782542157516250556567396690380630135801301602515148322366974503006203035461321560849532789580675914357214060161420246579748294467272522262992185801919256363728143458929894708234606661174265988113238070767892689793035857747596744686522995205122978802072409751980286466500723045415432939148668626458661364017194389915013677172041454048647977993377925271486249613932514549812135572719421987519675456499706848921812134623756841433895916171482122215347047255572353897888120288078890885718391570035089756496256389122707456443376205257366897103596997405868347098958553686127840150866690981524010889254367015504078167432018766623111879114652872021455397281081671758043911210251237552916127863465896202609407324024995068633323535937135723415849709115525613882954839500469142612683856637029097826387101570714975678377873846944761348384065800178470570046656246561465593027290036744998601624577133084448443275629828366298635516655207077884716173803967818143980185024440081207868837799449002220008165902580089568900242107665334312532646749356704506607779499160942912181027370770018364877532400171673692384143593478439482492941480191844645580236412601572330967168968391988735044700777164121316457979090792918663202451491718405584034166117555997838974459827665431065920353950694924848739721103933651397350445899896792109216646017826872880380163641425247251622594500719301682321680963424450293636693934619431800276044529338142064456745154583512768621295182259387697666615516049667867242011740529058509014602179049716345783883156637930522859293262472340547214320595639296419391789459416845992358632587866871249696080922333679993037802480870180963760615325559433694992460066144058046945555792139383980840331282291449091098410501908807034389535231145188553520978718241217809655663528673758714700037760361458912404576354688750520126463153426461719311000705294706783248145143329776792935020531628453858887086551148349262343801329941110627151454599080522760958280999730047314745596657290148019201869626772970702670597680549320094553069625155179262422063946596479626679467106663440298885041579278048810684191666591130738385869761705308256253338512669874110378545660441906866116595141829025659326690421058974462629161897954942985597004315565432738446098093066002604447147620684139697683367579969661485747028785113928613829551955280879221984818254895588382444217025431275800070826527774179752967326688075415829575575641380718735176058739536703539342742256599072294835691623699287494600561334072828208886945182218648717321151710021334581021254033173141921761683762885187434960525117544723787305412481594534291229871991545062178000729670836637871895987470652191526670822408100725771823754178557558058050555298647089585558400859985428748157448939492699743066377520681343561331074640955819814524756673938409912761613573129035038767414001646510699770372714933309944890426420419067545536583763589885738247430759463515768776558953044441504383606972330973857393413819252716297487836540787264997300117278049285997269353940693622643453315572668865780459219768070237716214547530452055244567482953324013990760007910971990782596232354134436689519453357173867580623774927740074697884423501538295395552174363260594473998683161733051063907899160880779518632532134644612743859414889466956945004148113598340022582802336210976377739635221907792339374149752333018630672272787190555926019355312817878693964000564616945006005658258590989106186671813447006664965564855975906877864843954182661407841486255198301041585381266019172165740898229187995898290779633858215489692857972106082238851360801421481697823134997694991588931084972814225146576268314101914133496712445826880057586480378089380171262170471904242328964910981754597764419646312298029803837040685074496252680272414043716894609590081741304877659046727225701418252027826217164980522008205711055618210971886103635541361292581183268606103434493672811411359086354015322664398843395738550208117740897090470068322351046060512386252031641900147070703212153975820034869500761881456079043518988101222666208385607606432356683983516131432732394010024796991723971539934272811783285868697469956289531908236211469013248703010426709221893444656944191740029577306490688448108138539018398600928160736123624410739699508651977085380456069990842340390152957286832424383404103722025986059444988675328147109368369146641156989966803898336671592547573596094721687479568467115914440865871404622710583138087401883622967991120186155927412633469840435191446064133720563362784596002233915144011422148768152676339179074495534292090591885861784387859078768741094745869817668389674834306144648153167246707917052836131077784030124285201290109550483526301280255483137285279289363476590334511972623569485959010461745259712958357344754208030519828530631891212709796942037422982256985393288454326344402098175616176849661645290701845979214269005298553572713082096944073964378153134442984492648295097851663865823519055742863621933322657420169954920152176313196020363186152554353390082006864746928602948856143702650040517219133977685532425241693938996301934727529552911564371196072118622685811090699012707976877076087254294140124035749184948566183057345331807507670852766698832605909812273727613899187577397773009931835440433880366219229573287861708134724156326634735132366377529502014305964081019023889070845812413456202499335336924513976636925748560200068877513031548705582126198867021292316554110253567814708363238441795691779845260196861206438374302817259437630490203296008970862267326669380501542657277427679042640281784986379135638858333690239794731259333078396174880883649072302786865083305138148946410893161484615216108571850014231041635361803516159358821088742966182441006259619448450595437599885903249122585009542525899029792125369596683877737254352962549756008712266964673844391992439088101556993467829646364141309425915254571417903715847711422565577016749684539518961640955045593049145463750170402151763606501969834578495051285149947242038064880899810255677125024544857953984961997824200968517989214754836929115615755443146651660819175542150218573033325470012957343645085810150012346003914143077884924507640865279345311367397058438741310398308656619336578983034207640627813229474187751833446543760140865453630368057894232160747072867285482398511638714611899171747308558768942684638497455017016028123939306457195677546489699955908859623760255550739895304941574387672075251088709081929812425718160488495766186788837339582791063231912264484532970583385564482194765908380684113995715619686822943557206685000899804479611692414042828041010995147637547659447041844722519076740044015654596428542881199739590968477534111077173172070158189714756838975605556321082588094504889946054925736480624215070314296722343761091108670216028562249538368179980310881616273678548546447795964424008922244045532464353629718346746712554526656046527318144813273198639883764571225386488619626530209516843711178896827449777183091324549920582250217675906853850201385117514530256185160670073637563685699861244658414064580649080504649540326963673343722329352188879122137590053883481968999916456320761456397448276892374926332762492310043802890036499674100867701559185183048897556653004700596815526337946251561836605820636240741321208869189508532759586587428428045791706099934235235729186470643975060014113925142006711766840238675221434082548862058987163790376399561067748057448972042304308508413753113298935096089266322541838854636206053559563376925489219162088648058791346152858823744874117006571299825510070761485984399038318178041598129223615605942205858451026829779143604825421620663017507292592535171109809926482540828733895638315029209512325397275079746957310755021619660256688563678746166729053269229644626488221915738149346454812790105979634572501402217697254600033459216996949892984499838546387415460797475343895539098887278918942099945395735511913223415267313853129287434411586739653331617772890372046538440847570506681336747489507747988237274329497349630198003023763683781763309217781182847817067664801331801901144356988966248967120512190972243323786215445207946244471930847314009764381791296125067395729187720133480063747044157551603583588387931626270644298416763053120060850768684358522675130042998741366702096905581152425458501233853822132885417077983117302238952222317868940129269280530803399187295415084552437793516665769501622606360836930032504147236989005656369532888850056324901031317088532166223022780355102125050717378320636505831525409788911518313376360791966049528306607659420870384272664492078734165640213045482333974945678664177379077732347263980978541505425381613993258408021223144072961260552779581064280063189537938806480031146298995716162694125039432026150994472754149867715527533441933138000642324621268350485921635567544189784337386542130643759544015063603951477259147995498265265761016449979516208776756596141083970625822385111913524864448498840591465489310640315672528280357834444901422465947091386347597163191809308470446780084110019652658621807276792184665848318719699532897119501344784720908878313461001705460577997039131069260523136826250152222025078422507102869297350137093128648239485531230289497296492319309976279932523955482089603190748512112672771835942142122216234763152908823567325164852678584198101526894782035989186569985943981693543238412984719710852663410424942923173930925746397241216822290321084509902477317301003472114624972032567068257186118092527570182714343979180201873562705068444102541653710643989075959533035346306489505599975117604305952527675389972547763645069708316799382153743686905331161177512199200148100414221976617221282787953441202812274782761627389930645433257755952896171699271297366193588204787844374093645547703933135383707443086315098882368639581362875218073300366377575414042592928863139039537806640704805861770627457284504955689017329914691623263593833175527087901411213607208170743227061164532137919255833588748850045753874025112760820678124226123870915212379674457954120843219425591928171732836679598576600634911914684282338999495899585833953148254026507301304902594139202497386592919093530188944126047058033119565411960977391156391721037148821688748925541698026882874542106875098216525041358586547230644438547056935365103343537546347311245941681850592196095493941940958597320670750906553170266558958183539490522082916424067750456433505090776550581304034611803758589422949672186937878696388935504866560588571946326304961889573117086975110987096721198872223805492077283744098066385953870121331019793996200815229611615173460874319285693831961180513579390775535788474355411461929443285527138517451721634741867175053993525487347945443010991385438626085945028009547876258805224253989124030607272823778874060177550582449183851148755231136484056270314230689893880939630806058274397334411755869305038094795974820663657444236621580182146427647040784384211831164317354052382207501411322010260622564448949446563406765490298429020206125082936799492925484566588459730571181619335496451244009007513597005508068889789694191549458694879227007248196255919644886856142771073834672075892384819577858340810622627396163884808404990439430159929405837250900020124580912559500604404846185909146981385735326211560200673656066152908190921685475524536678376349039837839243867199192259368909711469899289110379118765356552791312340372707103213736928627926726621429453886340910653915749588950217653529424546975061820468438645340526540225475526073007149498581481366619548160007001911418022954316319736222077298347052363221184161601422694578786371084778832742704471839994230399082251390603291718707484906630464784919827436054044997186794838849061470324812431997000946935498572276806619581169798444005525170856235096082529692896933623926021339834696438488646764781431103089629118679229480898183166053867795291644285155183613743263643408693415286603692617460817491176307244974954039180446447821990532217793083574347223738506599664672317839969350805592225038942133334936072019985794693326868540966323822942539274508295275375268890316359764635936983898022739899271711899475388342599170333585732282762687954829340040875497698757476166419720416306537662920832465411978566301604403364570042481568754759920849191981710998864649771157378747060662288666676368817032552559161349091913940701398112814053488806639074402877701950971016153271375788673589326628570144007444793036994034446281789127216573184519112704147590851560058388336580109327032219925991682930977168455735366554802341834983404744245540496116884639082917000290185747332289952202394299536266981579464446822173921333487441954180794033835956917740718294821732028772649656650634869901111153693733012211632655059127007694909890410652579621411042622527968014539446709989131689352232856595708715359979959574992286161769001762819638491204248792410008289381050910952442014247131919650747050789957529390394170143940570238855251241566460104635121486985296991431472130367962659402314884602316841164418605655930202302400583196460847057000405710348289053591487706610128376043101605329932620343226957104268958036402291787978699082376799778800977415519745854953473974337970110003651326714674954032892888962252440898947374791530599073822741215390120037522967693363374672415890394124439599394302886528401767719697189240631179137697585854557233301652773608996013887217080385081202009379795746697357863801117508616871790281125684782663191926081591276239243589075334484853362799202675698011276658787574723958826397283156909100222413402304770002179916568018009104552839684439943308774183344854787074197782965578847421392929297603398554692814143470229956568929767637910455207317845058122393264021356948384016965640953369342530178618549463808867623412171389706062294722960309721052075731378759700787735634047150096756263343369143216571641440746538414327968305364112032513272486336684428217867458608249494783881325374335843070178482024658122463668759246588236745939667598456870907149408574980886078208762172488132845079353870596154099175638352623706195712865892363689162990801467980115928076248516280961994301825797148774100744529224405261071658358193266915333880750104175051045757652979192720728720166698001245337284103018780626252037626172603535858237019127437728349386536973557842745842920646551345073257119864977347917768316459102749555508412799612513652382337229093658196749116920833840759515116872661528715001225616916004092830798622104482467092048583773418131030291915512906110162794582737785086632415762717541016777808535835959385900352290120828058191908928813592671955336782438351936820874006317416909355194632865405340720101858323207328894283842011859485850545770049954738556204753537565688930388353433178814840483771708302095442908966128585076065304097776187412415015112142855900699275944783245547395527992020324074449659825115682108706702600208361122063384725481495868359616089678470276897465722189649590177235865218451610207089540258326667223562371272971347198651234917629397226609294878340987883224212658631472862045119350333199698610563244745460358618249311138678424491867316865699080078189480886555574552467375383371255407300487189078353208432071456980550734055256257928600143768246151256602822921665923883135938389704787741219767864611229761272097690539997321456328264346047463973015437136392820594184220826723530250961313049113997963868740944989285695940524594565408087502853960970856243015969528496293291276289390704078402002318290647274266286760545836919741975727574830005433202184117119697960808318357699199842856135656561829724739974517404269083576146070002709906358829958610977061089979320686484781740188288453860103232337171908572874157665178237094272672479050874351629521974933008443268946120362628654778110027012290488953229539002470412612889962314257218180488300111117583773087433930511108116394871868190900894735218351907051883163847131104196128322047090745764186184669071586480165246716709080835618426540827559220142120765225052303255254646175552144472902034035225183991708534173231108267070054439075923250049479417614033559015376586744466118863503283643756721534533478593452730673918980255548462662028571413541233337608590308656653624176044998769712883316189384827536928187419147526082268351221777001828182847797595342919809620200503483082618157886354457178667351719058162515527618752078550128430666542220529335801239803621705987092522350787986739110476191902676386673002825156207707502215282788299326294670626085089638587969876454526562458777990897597044152714903687202997151564529671911220413072809451406678823505360567619004391527632297334120652041103784692449936772162892998446068375686609359597765507061573129714031884148622626294059366019364975724763581080477881190746750874038726706772401298393657591151171219946426650555539802576317129457043948531443008204013839469111214717390138820838959747864221390522524480047394423713664482192524114145910406979150960248967693979169489604292863087624254915242042144836345382321308321942609363100521069649777413474442809652556081177753094047358321123404609222183261792857731516986975907928506821964247026322385950074483110951380545194220731583795428395028025165096914494137604322349003925484552680587079431406153534837592000341848227618221932893223863531820184180316872136294260567909010076623909322838767060678110868313144812648953527274729061363841292690405069234446640605211661192390764505801859703735667051739984202670940950251606421707086998446255326832947910987552930974439850779222537744208373211365245005515627828987026285801410014182412250928412678448264820115138477723627667259714872419774337773082116342985529342680814883351106953181650216805469436024849326476247268734826178537322684300343941024636278768425231014589091089124882746068143400868024116528654590865094260647786377758297965589147390255069492584695930901457683036490318891995153062965436095081735120136179702006184426757050884124806984969753544415582795098391726077773704366810882844755956134317213811237480803809345379796946310028699659837352972785001274773496631132602801858975319581693081327095979883401921660371722723812119338694686548040938912861370163240564230038159475031743079235118884623437177622968205892122120059332460029552089596410324450971223445048693424323698964988897498389191782406913661256511251478878949965760943614032200678036659495665487919609175965021621681422189063370761274232292906191527067139317413193548974168321220326219942214624738926717732051185994573661482234033876372206376024231176556409476907068733008276457983292888421974747586231242090999187615427822815346610663728689586618564880228409092978890172362341043512247021811088323300960184510414325007365343692090496536153523942290898206877286614574693654610680545299224815862374727036229291208530203160525756950114998673621779539414799130223304043740004282510453269314303731108795522431883090275926981995210362741545061005536086848941319856207101009235279805500279675501178768235232119580775147846806855973932015915019200667310791694756102730659684811013721580155082096527754053772029697976458006788961437270093861714962811168089159141971654120649359146785551196985263432363329854947062852699288730120385019364563937264184872982901166613703450672667760968072943050745836687795720474294022943697325913347098328491647479872503958943401529446646457744638670946355643461541122862133822919087068246939830216189839448775007362918455002318188756400678149256660918261143674483450842425069977331754149984801134613797582742270929951591073461320546206838311366121076895648322251118265763002241726896897117745761064334473067567471390817973661565524693923202263254482138703697851795063278889403206876327507788824083653167012697891563636290888997776715663478995102198052133182455483700697524494080383889405074570847833561443584404004172449403800644856262163756500872454960029360593221882240799574940246254426553209639970281431261885662178826619367164451639047932087215570225212416637128172534449256406033704819521862295856362537700911040530758866332660469825644553614420534675853470971963775403812330052122752914212594241224056641607484558196848548561207542320348911175263743932446512108879826103164158304581562139813589200479321758565673345098198645961413436293772356562500790414052599751685718404669417847330641012716748169285285424852395985172865646769815027767711067879689205487147021730102415311081252710378266671381598161478248031286607998274236704903652507742536577587437979081678720477850614673721080912232897693230697560909053584356324042979993262264690653828478016790039991542819055561301142363468066080770091990162932731138806895518908991394262300687214078149961554513623869147312845591333006836236546947765491322648799656025800142327087370446915399007455630916154618779570338563204152348881688437351329380725836356266671504315749890734125900952026828300592673508763422214410535980832885091973210483970531146741319959847166543340224019618002011313206834425471060514707248725432564653558052459344393293670026689266523263270461229375792285035711299025410271853971141672923102624326085460376639357643676977422071048740222628989457045844420824350416007903689006725895959407853458274954788221468469679442947021088398699437945138739328448105314417010531420048825372844193418036297511677975910799648800987431961378333744817354910499313708389570586274561346211457545959677233584919064823438349757533350970768320145240714851595373269703364981956067514989990021652388658409585928206521051063440734023997466031669231984082891854956434621420360040634299615182314334486719983525922321260555841594361206149720122638128451284102472434505216987630176227358993139154132885473722147016277126457874335878850228387243571156166672796899583963033713841033510581878669005496831326286508864881487500470989606831126909863803295611889977883513780429666546778550492791310079026775859242878732631525287140439748020237513602560301967460718537848229876014575795119057658274477351653377808590349219977120854766049577817980047242411291915778458738892497907678546123619170474296223242798613889796213879215072933916805685013672170481694478418267367627180231503179560063589128467196739772350154160388029308199064279354279363186029256435752778709074473650450195367743354063990896348583519204049699142424268114623898233406689501705227236803955998756560553418691730499298591682911739717777639401861699925173444664248069344070101223666198657325588143375077163344146722114052075840313257042259603067378410883139685724047737149034977579306330401720826791942277981259640350548065766073745467682651904122576543124400009240514679998145930177900410664587893272494558277557850628107713687252304251192239317212173051038447925108577283247276959282937829960821175558194840204775747566794382853545763891205631963004124271722904034469368867860162565775452436635171404036343843375316078164328353524093684043775141352369989487980370634328896510433632286773978268070469452325866076770539609308645087207751989905204316107659250213153379842631216414883726033351874607277552277005976441984778827297366356106914848272723861541486778865274829929715297796037097837602949470428757393727625807800810590015168984634062033271651192597582764233599256071336146710220802120511701388218699510750582358063875124794579669554281374549478269612446173879385953495449726692155955523848868787663879040980745366235482283860637553226382653662982170196421791592745597372686843111631543357128994774236168921739905131620965469603962286537813933594742900740188939515905049242880457295738645214349077565830143516483876829959639353155414761775094230654500209219243504933895243684893126879851293321599487495437482233962337167814884503055383472135708095619699782120001417571846250757789880320430604393375953427328627007973133562143745879098567350147231524124182195849138804255949511127238838392204433985989136186339142928691771677624666702161991369302485223929273963465114165348797451511538910831609452527659759178198748436450710105477848131849179145068659074463811465012428688748760380093264032066039473405440957672810149642768196763007182223460992946518860590815101473031163476492770760567433677183604607341391171071193533354423498813882351574341299611168359085635788611984805735422793209184942540687823236567373950132616555390050293552166568470284234275008507182986271323076518439635097487971694580243558469138178701666695685086592796500319612988907853955757826533237248342215733973818744113993176137872254802540946938268003410137253659419133122909642119479257710886776869316999441953675551911598909924167214406401463583140174155350741234718815959147409013282439215507767992552757072981247797121291947649031625381651660218797263234158757430341517931014425827982574171325324289161412347813400999142335940225578492188587593748034247488905483614838706337689480533070976950433069044232378018207194284916198566151592216143925695162716534769963110097025505543588412577076670292483844205556061375261291527488236508381486524262131433463004467389828662304932991448652419514991346824217886300723369668532029391551472739084199386950928251666281973373008282313053992331133106969394469912139797494163620234342420548740266536903222009351073955448640704779099810770898913859073578813059519500052573203347574362817753719835854315348110323101568127253032505455973117246759287660786835813917752691537031277507728431790182767479618467000568027084775324369271532375386430800145211995275435311730244261699872510174302669395920535060544408108492552081531347525407818459009769574481408088432225511930997016929484832023574592143424159482393501292230948678385521716224502052466253412294025099171289834667280291726055088608202461758323637912188632452680185129285756868928340291035160420005605600764495068842450242098000661872079730629463068928483274480320881719842062998014340607038686940237703341069981370176110514240044400121203841197463977416688029422182529670163987274883198968063573482932695002774432189852936601016448214129876504260832873575031613518176659303518898640914972454977650891313545421221912580932138018643221534298787648175313241016174163214116484204593456550707408983827084446797271616888803283998683663893289153518214345740523090832199760883013800651516174583583603447845293089148850209745962287995718310988545819733110319170555369984755636446870891052456256422284463181190883100816219976493174750731674342499040292376695921998445717483520978050819845280674518850055380517519365444972354670028265061040941897474493494153646951545884308253319156873986687971876767287321195642524023260050430635686079237458803060464805752001089420412880787397162303732250135615188682445084624146800357214916241376351948128623117036652929226234305144550538458067411677690104146727987732842533925253427454026515662964101558488611122794348006907555475325793267083172341374403802911222937030444635732809255713529226805693323799827274210923487047430519401442954091212402864287837491771792355969697366810835774206973318178597544841741080815256983935214023276217133124615062229482257927708100530220519073235800914290128434572400795724053504650002580585438050999422324646020814259966584926634988315482421065481193799778024943082715993220985971037284887671699873146010557189672808754856195156212018675734873802471232002692040662761356605971268630207663866372395846608757806942764230544430152035266502936841698355287177037043005492293168846531936322859064176673715692521006728759106277216014999192045991249078783225165489428987912037855393717448717539356621271047344664009575199350810648944339225834189437806802334346747630834017690118675852250425418565686221168611365435683472940296430929408828474068488612679278389310735706083465752504287329905078137514952246272993822879900998906183300524056060649744543099391231085181393512106719960517211474994795193202561635278990963759543865139173697306763099638939830944840323627785892402188497476291852327129277905404956194515000256653243582375990195915619968511044313535222477611544451050728223415535380776404631350113761637785474109376589084159039768179859423793053352744617441187223816731353276144964749292585914867807479593509845781675608650992618044614584562129187409839542471621299437907786099217375288466761423160110181854666734687708101291351900406169299089274550557933500632474381100086558030245855072031306481534565880622582462797838780924131801798351883788725183904889950901347943443305814041749703509865087276795471929860458095994832723389755382316932029401123163249800848267592861828314536423670867608079597764533465264687898422436385090582876883562457644240178040295934461380283746212435582994241010193011141936589051728507944068121885649696585929421339989731080538064421141668625134439515861922246100445553251790074564884183198797149221629701449646016520419318018616852584260582464148174491683088516279773499503859491389778834656355757561914322311204550046463563818810693883542825495962170817247638964617234462307894211269239596042135183637820517291195518882454422842724352758490634371517056415316755516241754340481278547700479794401732493547502090945654003859383980987703991416833461240960646271819254576873744054722398104457971478402772060669667040734636456291551856063414452346097283880479321592287371042997948198271232208342384842182494668038422105181624050749426570460340038682671172112563136052877011828168415249389818773553577972610889962689384577413517273378699965139854322262247694930488240672212020709804213141476997177156716745452932054128384573839230573123733478989985451438155940727274708665670310873514689603658114347901300224073229224362434802450761668522941195738148140915878836840261539062309495547949724402273286362129501353381404287363892997469708150539182879297999077113393021289212637157839631192210227035492547170521235369974563378192374038073239448389583200446597294084745883039959243425941752174457816869907863186657346694296061186626614280009262472794757957049957993385174898215509436843367127391309335391380474955615703450421706674637505233411800144314742900896948745879568819103711489653772969995365428758908192143199505377982729465156863248390082807298960638975482038041881412818266972101560952643814377842579788292542353859502396472495573957679042892897427755678803491685567397963394115602301365649523327243218008212303208945032231796438400683844493188614126274209629424142681167590978270991846051790250283980705054673689450654668945693236839677566115195970357466715439474536111341313176136282355633533388839319739527794653872300663489417308974417566871763273722992734736874855007002362216846677267296554840298601181455255347337219082215600510512173834801273140617572849289621101994350040328082334883948594861872165047279700602574259614931589686092482843112261502833524536826104906991581529311965758877813996031462993984572615287048555816526589244318794491364276469375479947942327077651449682457842900611553841469583416241032502938774745571428857152279496880753835397264601801527605092850490709724380354152968606774803650403223831851774678703161889495753964623258291055348764611866541090398453160922705142681773668202460509007558584273982143483192483531660046379585810679811183544667778168117327414115677297425516361246007156613567670666120903228414476202118849141720603002871701951602085578258517189222071338781874792490910986870754033943805606362834316238830192224298113565239919958676211278039203223237487074396239744000188854173885344736164228976159400280671347342470051355175306515151230855581029326110865439072908014628054339098574186461404329255265750417533892157216987825481512642299465881746397917705393943546431330729311015416727529377838097510638516505323528417786132420692759750489302445372637820076373683027340203212820422999280140470620280796167635087776775854512276087473135909903443484344360390181252546551063519556320365291042510362280070371539150069868608397486283894523154281207713223667854418111751975852919345127132982750828258099155672611780112387302434238770222483465638733341636978236920447039337035825648174271340974730785353097479077739828097380882591493182948233260094284011497306167275455701129607932535112267542248217011994528979388432871038254652397171664668418222376007557522402576373087044393155848696081827639891123428846760276423776757036559845606126212482420605878933760838665235966062987358347416004391847459533416637021719455097502132885483268003004308532178747541968896082202310978072724361377551008346494019439819544164072267651292755844142128589522812462934872389207096092073460867342330991972931661996947664778935058436192852654958138079284782713275606682798870446393652528282596844145885432637000290666983882904403801890524154425405883114925315901391739443271052189686534113959437422820011190452673280741114834756028235418589723013846654804147501464646383657522190562522044071702300732254395181504276502638412658785689844639745677901676834117573174813331957216414925244710295652311827118494925427779819640411947483138478240250657856945918361398930276868653014926669519023310325206442068987061135754761404498668437444220159672584192332739656048215314498054971706545021932817272185028173429722611917741819514888045377448472737450272544036647769066046728440803190353117997423134187489013733307688446073910943229815242573851107332398453114010682829595679804688484142585514088755964878586076547243037913165439428197658303547880956410565005318596567829836906552675641319843059107274789964018651378947346870356637551504955721895743579383955176681373813171856381782162090990452211467499065856823040050457096237088818747254909949419252003943880969553490979126530078830312757853406087676038404271121332936360328710772547690498858707904935622728297251712957299396132352917742091009138842155348159726529439203414045980850349384848251042860287881946878025822323671541734116112225143002582554069304520968035403369154676308235497606925550226314481194286116306901706495392818316511832812431000785229674355097448251381137536693877581432429330459576879351832126265255504694526642261062653512741498928811724639547532836605806909332667766892041719426233137572515987886825056295975201171529612087546582985027494972459445970035325699704029112179978731098844573753695093399306389622273820729685113931164099481508395235916249829979976967205464884459861490648294161231763732881879857991246968199312932675052777739358961622937362478351873520939724353101218739193456494734383081145432102022984048330877167131208580025747129174328978857021206879556067929893847340095423091115543701590037732975453144418815811389573902659699327087143448409717287770097291479972583684409938083046341276253136471546645759658792745252667699882173712039156759759455152418409323813143446276599496153385007555662397120757015967983354888726062718820639986178265353424888319688338622695245668384020716261560493429966121720374964778522416041402518427380535877852599442076610480389934821860840592075631577624740133496137095539150221995291886820439391949259051194130890817693908501916571397651085475464535213048856743040911398916865726706545113988856774817081032106892326167947300612209710836897693309377515676859507513559523105035766917428884239154409384733204531070896005489372629641570553366336621473541101500830535008069290933521538934822777671007250887105944006856901070636252853227674888340346996680658595305926125942036751334607773104120337628031224987808342904344349844579312607765101948948832716807839913772205363348633097984813588492281779952306491831689404228042531540938465200898506508586694131955950875044359211750141641564157864464431807078523803182323849338353726381345261392171489444129685521622458686941214866745541353829676427000420661126876627395869410297467823802571697620947405979714154227463155408178901430716675225972745278022765979041615962774904183820288752492223280392383678039878320070758030784127963057268323113716814992714045882947862829496993180668123203873034025489509957285549869156789598189756858234194995887012238068525967546110886175070403622444635235803405307754585902979703483393774065056726917014529052344018277012117850459286594993365725993726635082089424247229497053452190491602190215102335975028926272080667123959964239271923768202789470036709519892967194343588054082580303599839796828359364054453187374728583176327416068037475669477408347899549325094707260379079079773760489850996877509318115038180622744070731520815349352048366380461704166031769011386968684633524010945514217264005561311338200038125953987168419315280265265699822657041314211894779341561253228733492799424712624427904328606560809079739559145929088712170405240934345858847916690051918212418255816228106522131220027484364848997848441059212458495315521606139363994284651175155786311067894873744101180800932578081842605985859575790946486315637791235089955038515506412453683593382132589411149867938117326619221919940292700750812963425157378652462175288956692794985495942200129328355541853440495206502156510634310051979834669555928690965073353720367205243990920995621181743838563440966295977230146141903661583246621192787857746998939327728295236025678067675727468220462810977962587448410850173860201703466926916822383081637707878991307683664081932545518578982510874296267199122842279334807485240076889231634569916661162257261168546581924655225029381439896838020656486160903118489262785474109962584231897533347548864645827528659757960983946892175579896502796688600246010335573380830615900802649362906932820383499642944261734259027974715960956822763871315366631749186393474199332310036198439158587029724256249954288590916759157148097470598342893817421828873148518323137727092535508578083639213833153456949108317539126122486360915426333901952945639782655793763086635356162467612104792141878187077288114498391805961984189100622646510651884966801674601535469585747578467970708802206260004417377660148489061033754133786874410562633302878468572107792080451378250152307837713343038463150866584446629300569464262180823599086639303596199531051689286487700537070071317571270713455791241219886631956771180260154899070375556628489216942671274652309274226547010551698460833670771270292408673131828162168267224267318442896984325896876435715364501791150594633068442452969908788684624421448451763130889612914389683590144759420109036814359431884043629438931133403714753089690933129394132625601888546160260894630871986306644201471093932718071888439783668926599193936050967834661868665836505476098540901871078429213586019128640164929817985984498859192434710947490816401144098209396065475575359955040851427657766546280071573833605002771294540802592460929086561571969900431962369431921489440609810308618053946709223705648874264992441631941289049636526292034408529592306609633507891208681877070971535261131948073752297188186207276974813345159557116029351862923693955819527932860321355802189145173305394605295075288594751480756308199236548462600234198097218351576275775072302440285386940657758339664165512353609905714918698549716748810876208976928168236912772854039464169305246077746372372946607710889782221421211664327237442004780662139475967326243244304106878215279892337922428560417086973105818753468837309279016957903137539796401323088125648551625854223617643791920982574107662855925834311405564439502750020360817414745761195839506210999369002524258427646231797057686223284880949658040728207985555086006883633804185554087988702938610165111914628346938958005345668939179586772997899260077267109278215716352500093661715855953976938352796162514300886135589567991769715960635776002559537265918756380083620537652354912189407858530627548907773803857332692238246194460120618420249956596285944324146139638808104725362848111903879645736550596777135731022731558513304300004628569130109556438799494802938264312706085732939024088405018208489238213376915696910203439424658379471858327666991549112087374361100081016389457457361849298105110187848457458915405709802869940437830500374454013021514053425511412749768622232674329492855546756380196237585250363971972675999589711469986914830410473810523624008339727090507615253230589042791793850682306837286685381035108194780849339066681704397485716791066913327894756536048032154493054069551742024881048242127991481763401212937369247325715963548039270638368224317207057204654586556985741479374079725770438325965456824935032839425434824266322975446061707462133417132623788301264607203000101468703923625921535902257007355170533287542334867865062334849910486902239216324510477638310867737234764952664167278314845430182031797959670670252868294828876925127069825588418539318737096941606232205062487359797529548858788631346561018451772122924972769527193397838459218235104443112583680169364536025742377692467800977996032268394437726709121426490064423185495692992138058555491925657650345144690965716122378502755228801150939473200151635772431211444799355552940051635026961982983695130765189012929945983296225722774150200152052086231954608411216518318643979050604570803326346017596561813402515058277252079744374624042238667545439804430852023867039475490648057161278494129364906825107508617693701787929357324151533783697283532509641338808066735935037692660276289127740244848119364763378991532099733263678092440392450081860383575762780115769528900047161496528258050294839666633878005111171390936184634299410319510045949455656667182840221924334937405844977247597612963138973894150660755319643310640570775414091115335080683516369796226569316069005377066255117003832309493788346071470583510376304347487134975229416941129259435537016748450534778438942322739162284545209960403271163130807637984645304822403436182871525913084234307750670125248159103453489588825597012228408932308729043019054342885731931844943848505639880132825068612371003605175839822472026245136819936061982489816567344068567767488886781337406242547439001443633693793919818971950130294003424463799447210184797138662892959960608794418628040397304288553281046660641724409653166360253681332587699955296461972550330803240766796099434391215806902032710083216023050941958730741097297808276572692839339883856911776084440389949362945659166187063788346313086363753015484580082902790874251010196303245042411302628300433525237187892453176807412660571905387896375226535024432068809168363485386998896733174490162290292949283346538205485483176498705510980951155410766714184776421292697104628754065135911556149889532696902790066861517464356755669297749452858303106817865963932704609783874545774974046997833983886961178132276790887110397621291123866148123998409410686068970198686736674733433792770565314008863818493067493208336260179335235159212422669615081194776345558873305781534261402923835249701809079561794796667293275679202265606580698658326690206989639344478385922488099080864182244416123971687354725090167831305149606022252528599683793855549951424498292105084923832563764652478839779933029063181271978949317741791404138915545199627789485534789639792946338666057998004362954366205588880026701960488588303651490676895413469882072623828112455593333600106398075201104314953472300814055458605725263746105583635709210232186036835179719524179864930123896197489430511731783506757718782850965862454970669491814180415807130463458651412717811769754209162715879113846745094169637214090799795150660219211566675492396792607043061421079578731729014454371304075963167812836797926646626621856137985528748625927688607412493475631816277881608850638001876903603602509047133247768988931394705177235299803083689079711091644517676636157236211793793931599874008450496147093990361440690419460333907013376401916162006832408515220497982153753149091633078750214519225136253776502373188125687125081951773446925588887160013559109246552271658570053945187608365283937347360493281595595530733648801759661650040120315168121452122921555169478263540021848701054392429224916799600610491528673489460604537510930214185907714482662979836604447946272495482152294249453549729038159367450753023299615768145979625088311480663796027662333128371691718524316427327488947697664209909375878521242272134386718843983059933990026222141686354602362875879026558529772619045671351447318320827156698626499173968510922262958780170740464364259318786605037135119300032373945510936972206124505099592584402391715143457782190983301968339979483626306346306600879324560955711350042102199641162620242235908638575402097996419112808201684470511717989116853650904474293191321751628984302496424081412659814533925947360449156000230549638084860246862827060044481999993939639339911337295355666372708070689894019117696824543406627255531025901102235492269574332926236647337283370344892561997919158274443302079260064618220600645040948251265254577954809767014115719304098873072327462199389971597182283520271376701447961491910963648460889910611549844850815781961110434585084699405459036933224246665851999279280962409030021486846948200006392016905557294738975554300869123501225529619828401883516642746152210388076802676688940518405169293330472066383306649286486498043293437099092197128902751351586024500969873568347373330539755898163359041221068734923291551525700272403076325790163678324084339392676180335706259639241169156502514456250820832452425060027465346026874168584680508528826719385325944038968955003877023098975117011505275541789657468212339999149201226466555829343038734868572483365577954946771313334409393878220172360714566966050808923336610193664507633332919381832629021022756367629234439567966746049640422546797303933057909561789763212488547525868382047297592065653571830812840967525944912861273950272131257462365644593868730825950056112343175671935703383388150664445863368755280524437285714028946522137150889508033161590262642379053433680554165964115098244863831257313876400374935021265041522181896723076933653389122343954592730564688966486922249915354297362745664444888316226026745905440656807069665658023283697940005034754827855090618724634047797916542843073298310942869102278435618966571810819356831671091676879764352452463822729330920415758903044217094337328113004930861805852726455668978663863631429186146783481812924152843838155086038443886133953697175533440440364873068562744876879646465621027084618998261951908577491229027799339829441929179345302118279693569891666606800007977092712668797660564575121336854495542035752680965152529320995992120393102308518751488157405096631262020692847628813627540317024511596809046083862193285755490318955492418177382372641559623806719861767953492750527167535508356289649005697841366894450192471824776050174907432419497891604961601187822778999032663051046948915492282350118322774057593266359908558754751952411836391943800515869963705176736757015950047476092994124289661643761108312303990197939576613821405980401415519043922587471386388842691975164475650365528873791886266844352179241268776202601700243628285795893228163660799195822010682626225320536078585937379635167127936829970527768041572485346964665293339057379170886887861096800048473164166459008327276146039676321799082298868748383070928426096013457576798509071550037560787967333386642350992659546186449385114286810780206255515176589975525529858791975960778852671303036547182189283283558309873179655127977944112547771680218483156331304134917944450972756319868092695750638552281051339864115200122699634011405552557086231271046212643938981121715321943795917082336882308302152867157721052722014910613887566168426167124291462844466831128798389211913345139556546210789999372867370185978768565050161262982137961325668681580805835033775475172867655394847983144354623296901188440398632797928668186916754550514338657052426283724856592152894736047266130073341317348325851067166143687063809102290469549953920898203315187196032776421255725336731712941338687170461162988636697294625055679795817802760458482473222048142688944603431149718896850640870442296389830868744365518058943855049821672519515477777524542749289883296772327589053462701178465334711346790358580718904150473753265548838645051421743327146226313515066199314520120227692502926003204780569245407458325189508574292027141325468950026790858521991413752579265503292182111942592396499514138295884123755266424150775686426793079583721945070837744074704870508473369677617987640895514651187979178701188029160131851794101320682780270020999795407193171541738899499407010291972327926023069407721625917488599124418400833359650181778629563163225000933076559869034416993948788180424757260598261573773995051177378045427228704614525479954179578311906556501080830610368768851439005366018258993245382083580930458509135884514040554490440224251969041725855259160389781249473402982264578313922782714061503673613449122355516857211763870000827867172366471596805896774120626272165013438428296807866007681655604975875716463717347473314946498949041603604745335319055212244543225466320977756640990406274490706431024519164092378981688046703069673389518612636176459273085697664921115232885586754400213907328910004024532991958263522128977427206051932754834231215857093187443545126610563136190355467178650411199348347718797918440550720639589896396622622489247647738167316117133696494151783672222378371358719077253547079501346403494668022693909381731480724751866133955981091037993734840254958451413440523734481728182359184019949069800132289837997703772453030761243290650239585547862093457044446428160881239870539908404482353013745920324313033776995315038656923709195197265210310694631091823880241863754950634718038418629798433335986655683397175701948281079266701660255587589004830144607136465562205315722602862858947370583666010171766523797851056330040335174694701747604944002099939715033141554110772439171038969980426976875065642572157695111003860840272086458887542286729529676824375072387307622533626625687420294441408254423886406306601871909042452424614355874099612991104048735768001521894404807365588013726266927327894578127073709422523826299965801991757896954107271178748172784399529475190927064551528685542953022410736256287756960105745469629075126858788612625581600399931576268294193582481857654633350235597315477496830420345669813937971543320988319236464827829589299131672591695774772484822897497118179397909577847822745688136338068796301633719780360388193715475564706696915799052242240157356797911825495290917360482322657325226685384254632013683494055109623327491138228497609027654425131139824941762526933588375086953784213159966095901575553063633067104873261769932159752780572257927928552289991770931979489416535438104203946773155864649313053314735681243414317082147158380577895299378850995445759362668397651745129451743483771893512944989714782552415476520186863163043477514135255842579051003997040599824491911637382696907370425902193424888968804017207014079867986805144914649940674016292977042980699053576711739943959677040479639924774047030490555994342712983834539748551382909270881476183710961525195631234453879799461396094241880068866639040916466020014935307176475933116836858905957970637559327592007776653877830333035078982090840498389719821538190565674979517525641763891532650663066994742361565290022610915096055929423168831838305078781488844493926305903225861454261208793584374401727452306153426534234656757066727664243516237458584954933134794583800398571161748780647819819735337767364133584841911467942765020952447516847350037610107674037477352013110333804652835714845584765244441712655994135214031476641018020505308425670723427500645793251273664105805139181825028564493439949680602583831950810467267204281533139908259740459420016163055546359388238826403407991351458688350484511576306269069442281375757529962221326308508179950639491408117856842572928800622735123004324273974107426344202595902738766564431247347148092829421318056214738032783429274133110473676461127641554524734517171710898257101871261107284167521393826839660429568922042744086376499729363293707010896630890493523303180556862546286267538531662170496473872702107126017318460018772776716109919071427529849338802630066903972209221837244114562333851118988060451700242392771301385256700085128253929826859524876177935940191258548900452011429656737992529365657649403945876858279500189737622911572111247798850455791873103450471848397808314707986340634334410744865075090594903846883214323580703564033635858881408568073284589240415407480745639082729572580192542019239743362163610035417640852568931201914383162830196979392658371231242071123383122161532971265374622370010020349351938106209813324448648838784693011723174884110806732170678555119081962721653178631376808600890115157327351536262001932216567304762775755107461977231469657888021715068974027855254180308991789536672182988236980731996197614826899756133304417215953983203056879680579152173408693697701470051351950535097824958960819160163983310798057614797682256904569002219817403744588353579749880887063121517884441814413511985799856348502606988686352792685743705336161448701269573257991562252223911690479799805092256586468130999077548191323122470992392638552538392231255932525794593250271879870646400628559255590480183837797448554041371329621339445258874123222339336564494270268259481365603613800020141926551462677249288593726927981362037107294409194113957454981976937313864731383700891527810862914421612360794391526150465955844583278305178853772681989469856003067625982034372068328897803535310088022665632695800362203998004087207235428649124915430730806352854359627188929922729684105396012280799073860631624716296655611413752131492087686602338411191348424468047820004777715696896744967387639514971597523749367714896787375162770003478509948070117409378467615303493581493515969888700980151356482043747386809368928124388090476739139694565138421882420416002636629792686694224138002504711939225297392238580400882920972323358666459278031129681235165789484524631888746715751364156606233672847927144510869027264225811008866635285063805667822316568784988827287703919998153107486232476029064034196801775509465868975123605939224233173487196461578214048062635483364782192034741551892210161485714965046895640945520487540576352247304097085008730382084897744314220401077913251550184823206834610454817701523992587040592476449980214184014297358691716179284709999271734421163335184182271308406582388594349177958763598121517764204676938405288483937822688298563725156659201405625874803448637451694271393865694722586918924960086778117084339927225892565590289084672093499970971727398613512869140019704058183727292216259192157674660513045019253365967361326363446028279615704691025934640498935087291971295922884917002971647854654477073689578120075904561883036280805674323406157595560782725986006178994831920991242870424794485137232683806870255453774028639732258231593425219469864005345823289704245549621774198456920359620844774035219214257012280526023624167654631245800695363338008529106355668897177037781596938908442462052223289408610700840289288024096512811669055585141346044289787894960671924193826562598931834025894305999608866494891064714148141251465722069389717499845506573036191464717228673667007049691359107572772633211970067989578482288307399327744686239947050473915023511818151846607692916898365763847903224832277197847173043980086744736642513149745776720368353983833817387608092246422238904596765659630994679466770399703559587158029371621317731049950584761436558524620363024289608345693764172044627017610900473683152087527000693051568454608968279697847147774248853370991440641714629274334555510460496513159612620004701929764412759759390159503943066516790900685446605791439906857508011008635899972194643003855672562110734654755198751700522229001951264025843387343283702804636465947202610226217485389607373686324650156868831636693904934269282670828881666956692125520875298451761446713822278616019846749730774627025419985438408816605138198484388599032781676206770611555050074147071883054731806115684264407473123245181994960447465898997543866084672951274234100779282085874080394691667509203447994312688480161130834074880547986597359551138548093486005703106272142282108303244684417717735581840842457553031319378649241672818824410965558822383522195608843201254135929707074507074410349360167498125170766706238063638480778880899248197458879633047849541644453435098490680931639846534342037192797774701110930874825253976217407720112708884756618529476469344607051990898887387983669552274047878035946864319041684979659136894873321589551220922424377748052188281269223583848529678150616685677062679062274773875153968326097929668915131153166256981099008056035937561799904518806365897477486817835131964406476723175918640026759777969281440816577357514736249433839067107936597032674192173747853221751682910582732711772187213666060163790509053796307819452234029035106063284251677378667017019384525375695580345046879968599236123057671870480327694877320700403126807475647922881932993450255255586423245983359262441103278864754411976279920906806263287261051153205137217642490999457417571552578049722819302329591721496466955859759617902723412903367497088024863938099828920289818508324983965895839761622527071207582982991227159631105309897153424838460893744646259089119233307010427623683921632391718532615205093245419820462878344174295524105560729115608199521278564838273192886568205595696387028364308733139268168143771559004114432597935933607139033785547707639004602971926167284478062661664482580019117395064349163276783962796954440129835849298578817140760350853218005055073466366096745140613996194529074828055412488051743613998549772971190035370172980564818350652165173932993844679488343568417109860326566387837462501129328668951519130856409079354606022680664496279343176505526455969704384139974262752741116067901249474473863994909531722125674076860208117920116826511746656342820243920434579183113151163634539825556328896852614560284859025695902068476997754620777484347361418092104426292076161366828264587267069862996526268002789711545361202226192079462590528638952329063131143049348645723321445627244446297522748420491991767918734176079572223824965735915001183868047548399467411116107075329819755668598264055171123485605708698241094004404687042794614341702263847581833576470070860045076292905053074733884059370020266921839234530621065897249034371825510927082632516670724993535858034631927941384875027964985378888412674563734031392244379315570904464780504028076055726838398487419014860478550965816861458844933749272765256896121147856254416483883833262702349727153538695277864962478368247339439968199394613055105644884489632067901190699153186609121053697320454719567810809596539271819718550610196201625173312306484865695449351674988374816380664940602449937664439414955439237673637769227440496423247286438026587479729841378212760074449533804914604379112107712924455258860059236102795480524440558575755931086773099331612501928286709017187931973477671636681915351635347013285138846035838795268891764727140045066862838733502841579685978413116059500394563363004751833511435426290415578099147634102933271294155449762822438545249605298813525860420978963821055608789426378330761261171072813951226235537322371700790924033914330635605242299035866899723946729740833970297219730382551434063715495984510434475582958904318497490783585504175027938735514854451197084225417506547823547952435936035827785717401337283821717165967259672646419111521575718759483134195734633262440529508176126779523720602184901334342957477886431498104930990325743837962533295743525831323968615042323614299787369706206921527467877089125033070565797242616821127716568111719351406105329469805847185902428960811489095789273284837906342747252383356940641912780294457800616679524602753384893367200540896915208347917087818990914401148116522350619321321418819065420764026863075531063421845160755135897263994985441175812942824702428059673884263304328752720237362551029104716480982159687859688151487453792022945675077914160589131487402531563970158724867069726366098301447332111965805888397606818105669874427341524943921802548058384795385591714669162166452595293637724938318160592454988875458730141790064562484239245558132012541165844541534930925394642891325573379898217779956964873995677497631936076271500662957650777908310778502870758449912439753464088751700036125622804003615214467206930219298849474154464978171918766209101581810729265996303645178670698513236427860808699048829985323485242041407806668821821092970827264230673009994207291191531180056170079826127323534384363835385021051768557693242591141727979786226905258621928522485598961397547034724696230137857517953638292269348884219449374188628488945050015048833755088570935299184155918010165646858426039005060960832719529926736032709777146214499394400428192048184800717263705359721834715693318409752748768720230694641970994994023342640335926931759866226601024300870511205103997711740523418209197988111346623445076339101601417295705043102275950955224056868332641812134040909149444326374187302996704688284969832645613140544284627600850563984092475065332335352432113561208285937816015391067845435973136790253331849098201569678370623807286136580558017720847525511177814736382540658601448574654761623925291648751696859334277341072182783827968812442710620707895023515681260054842114917323060062109917879638303708287041240096090188185311682085112480710367532822224503893805028551997729746273700930956989968996596094357119636926281716205574842501029256251926571109813399170031081721173583389166627800877833274267090710385589833471867181247270312645289747215740769580825807639580808210930631197801221239626428610746150655588745601529467405884408576231743787655819605509914548294526810501145518433282440094444715843816363745390435060432803686402963452284081421004035713668975854884098074350385254390246123731791082738016397049339021268810477660216411333309961341231523448570993621542987595961594968597589299835234437402819842931516884389966891741330911943195530421264463747444029333760120985393435914170841690451585891263145685660462944562963715771804523699100577372298194844748004175744899206397696842637961447083408116635880143514206291326973983083421079990428793957103857506360215620612485497512297191262181573865070195891498790537222147129722524305102466685233823359127315436297801034044956834215812466159442329980826458521182058351785587667378941543428019023756073253423950480501332443558179587245523665117967241598380137816254882412481835539575538755951418984527722368736786784962989527077015147755670502706387629017042085963718230042675885498326221988984112814599007069340784708412292610730427667209345472280704494470592526504924992028436949810530499392823042994812883087170779964926161020318714822631409725775522189607175055035965241272258657092919089981749125563198491126237011894967342439830206732400826100053805905107846865480975893388920902349920826293385449799073031632059741872292680735252002495318428864635568815179784746502271399772837196803718495956188997898795490517651693313133536511701258450312344070786340648353057579228905348904846699071878950645869728379320508464058490685028590709072188286109013506917307735561077115980869329408169905852876191696867425212345398197807845628737359148201073632685526267516825700266608388144469445806979396257844221488220344449143991680104130906288418104824364052281742030051847987308221191218706317544911874619541670331838055359433246081464422840020374034892888738209759174558955325241440379634491168019269024634816869452142175207074898463088959177744101716831179688299933012703440585429810040154952746397033765849055469588075109917511697810452345295128569334235541149071401496391582910450610453911859656304632576348010002663765378905028413130681181297038418514546098133853402552974897851171510862918968957576210701503518740788771404080206328304825898574538395090876573662500346863801451823487851510374492521294755997560337275652568090694978754603923841001777443300592007883438334975429083488957611461829344907062687042675819963075409573111986024257273631783404996457684961720284469857802727798561072777664752290589494388403908632949746749111473061341584380942404566719840305348700027359309714610196026464714741467643121144796558389544508630370130044445011197449036507086089202944477741357013501361483218373634798630136362670276249615622625910148995717627240736284248661610079080652709261481958273570765588057586033035240464039644345004285002548614769233307376616900586023807448060022386161774438774733498861479043767072818054806654192228111659049803786382072494915620912349841917405366270247087420820458601015242135940925424068558588620359481901847863931806379211833833176707502123404634707513473338393864466864339037165245534157182286078379925234881250406193299907486821357964574727876101908955422494812571794041569240051447695665670064433054197193228535548277885042625802625497823336793099453346506799168509992335610033496399112746137087936528926670735365392799951959212489068997487758886840454691045538618075323687763637354055443654703797207691488969598613783185048168894074890571909565674300938893568256575822966957275938722068835697680163278819867818430977038295314536832253821976902406764722155951244035837631680467390538101418889234555783691475525902334830394498219619651689861945929179394534318273667115821619616919846832092883239586045177227117207844422134503061488551087722071226351658198985653844634916160339787063187916101001031532567078085244036141063653011052122306794259560646148106680702488227169157084496723213870422802356743532186727620887877544947109728374168729903313652570087108434864400055756196706954139089916190722355850198762777768320249530882421148596205969650095222785780940823346456947170687210813208782357869309966661318608476647632798994285080532582441133328420289851951915597062348490756511630358367894162797582518941854159806139243082653835950136033095737355584630455255597188764158448203045250351357570606956125527578839322690617470642972678994075915364906449306542297609790979567987990463566677124668583554631913429603757754722381615852541549768883282061719248061861157598522167762882159297117539606461215478674070724938350495343612444460123350134121346218839420636869856336632344581181290494437719513057330535373448603650534866765257010133871122666999284944001897962581683590935961705132517053158525606705692548337336698707424552688336322264200869325133734010801166605783698712069489140082200829082217024095732210433850401740822936836804352804511023188127311650967132135410276484129464169566784634959828629456974500252388110610296248687851171540455852553847689542381407665351071183012168017906098430892723434020579758474981287389750306764306094621123448715503698983392653609771504915823152905514676714104816683437092859528738300622753671385289891588460548265268342556140903533027408550390204607956385095964949236094296021863788624149020253517884631465421241770624895848546984641740937552713395302054552152060504017122996473226722238683032142886625113258433233176586253817508116870999268014521258509797711498867031750948018975685074014279988534737255146110502329123690400311164937425176501574469976753960881275269719805561688555919620796350235291880791789215364282870208956524623813776629366553648886305429806643368647514879174047432944735209944943553059045926862395155976575023454347983735856551512285866055902212833857570368743125773255152747661581000784897687786549499012100471608677364933059489765404735653020927408384918752464688209028374288303472659890876345581108705201996169850798734641720302084533805589671736628007860422817453580750819225957634044920005733170346208162452462462871542260849472769884377514315307204657361799662327129355023296801790854383841802029663112640408686915098487196465020455201656672776037715726941381604280440573644255572358826827184098301322690679373777773041468122428342002399995620905201289933982225348281611552460925586656269895546315069100685853243029120121084803921260683301778265483680727160360933264317962301905374186467749763719933779502996498974071778204236172034294425473991312860916506653082165278495260469741484692400452129843534894915533817051498164122190290650032304745204464087799457822358444007818040615858263228156136820909855014593241357880472353253289855958576641989212693762801040244818410492214363121901372222998253224879464494976556856489809517388347263121087540169275230226005119739171263009414700200412268181598405289521004664226194657198057476251677466113623680615683836872510285551537313893120077666807784832101727656870468575379911204615365486437843074818911645632258879602597554800820148289468754423453414240220846740579051980225501630039207398257294232712281055288270317757183075581143823462719570421536478218330761181554364941614531254778548693393389362299929155360259420525505471941480124623323573723849771091318947596544361114594941672223003673647417928437106390035014498655719162411498324528176318843827728703172611432404493839541288615722175168555367369497838446708773090775164983485842429148814867081585005013906735810006268577961984804995923479378540079026847619815292023455949251760280567878033360885246522181997396491893153049183588945159658807889003246282596940654072618967749180091613827986712258119654251656093866064633210521712513345128911438348976041128261475673283026173539130204205227505926668980287439985380646264738873142752600590797372563343145469028146033735312300462109330881031195131636399039861686560367353661724488594423625625564543156270371508302152421254168662883520558184672974161064006789560687940072851056133891196301890448952101519304222420469284332138614555554426887301935972212193626928825444790414670659438327765466214100061075295741659616001532806191839771647391750527676490851933058912104219861472524225315553114310399859957712146821803917180308715805565667185465459209841050684894485407008292033136309797908127764017603447782761135645693628077132408906442530482335328201427957591549445529897980553542118797078267904672224790820366391234810812536443962695585733749356200393262671708501199802378353572955202471617969332708571543767581286175435672941997536104200258408121229358818890723498857143367397903004083689868583658003570923217307793941184857553120625164525114158628164483907146248991200686144377443449683166096031011562380024100096090525696266104192906372397302888465459354791614860388966291594186488106673409111059705336990786224967952053109265274890900885409885077840928663240587878172153295656993486157677458990522275623561429147008835865981433892844049275250164548713145812762355099784014148908435800048794472105948160248563976059806431766699416063533442315478865273229295739915234803589932689828443051690024778674499500739190950799055837888881216778521907937421006933906833339291679326956920142363810649645078819382090350502016966228564926253595074295065707369552085285423486375332961423256476110231029008297403171275737249041998130412695369983904253808991447503585628084680487059982260215393678129041558415758054435581447988276108558338719806810896382196393864828389385693966494459846571004545334147424697154370031483464876484741501611899117276761391250538972844340809958773912791737632321796550070090898413724975107823412327742382924039852698779394495727037851843823144908932906041541796991732626334437286397045487897833781887194877855422008511405565438268182195315204244215320059762881246292716083824719885855926841426237362755505339010315632202370816773030450731205911067154224414422345942963469708011337927472910991771106067712813242526971661563255438660048303203944212933111590512331556156107810917330467208768944656442681399867234309129618729133566108901189186834736759981269718214237496776812468130317332148803171055205975878838525955902953445543916739735659863342021472022301667556088016401499811799806511827096676189642769918172988104419562055632870618505915102493383318261203896901802250586113197170670776827114773492999119356277902196099201477240280163972363431518354581522388493733491206031938877364994665845816484223204581625431047537643680854569999049484421018260007472799807689956668223689825590414234186084714641131103724190071831369325475553119193385072530504620017743060556174665010283941223436315608238177702633194560720154009116609916689801489809924463534014049624306343679151329337735771571075588617058878940721095780640554589205964835577445311900120975157856994213224343436192148435131600288389317011307713901309941435448785343095389599438609727330736368012531705255601817647825863054728536065087087249338662418643975210023768208546261803563370271413581766238475255088007401667022074506669009771993199071821502743049264121126425008525063392333353729646928237132106751559147608086829393574245405273959579429934876818986500172341103324970644015078252234399009960439409133889924573350165282386151143780630780774047922699155111621296860773671177545565566495286611436174123750541181900260545822484806636460335293974090227674780682257630383971678922508331417773784296917414161853509680239581521984555551332088731068590724358111693434431929267704978084504332683152658203477647185833648856035267064054323564282351697067091984895021216099243269291501970266705967867754031720444665502722529858175847856295584106189487886367425505844455788024394368280704251091602936960727066627125524644892795413394404764208449316913700253182789603872326952021406607651451019810118000600029335218722256733802267924506649220699709229773356529699822569813046103715287633448506027790650326749167905220714718217348782086417159273311193705585669753852654803307732889669065948929346340019037714190097968592489504444013754424967343522088851026617918218807010025572350682960737111131192581594846228263925488015667208252136007265604577449211224757945805285429421460313564925234196923640306439316167495460661045571476691974953350838797624965464261027130042699440941652876796713456088754472786583663180916561137533953952739850015951573708394164433314152047541438394349487861001592406507407482406312664451475565466842032266983138478565721498017346174467697100931911926588573488505997153681922136098963925375426202744862666640509122697614458726560361972371918114775228557087422820117976422594597075267354832542422391387995053050180400963381131256156187733870857834910940702697487526154418743622363699020751385558533346289946455737177747752100818434029160287670123970728804566143211995961512355809804217933352502502788171484633167165302344780317990415685634082721780097028293487118774765109985477597957949598763414291964098227932540446037784000216167434690385267757067214272135602549308957220526281866882315475975803583282112583664076402592301385934775479924150331981967479136443899849804921773981380838721384155212575425010773495321432657616778652147815642926508699022491262088810131054462619040477252455742179816621279499054682301934903311426453090502337980991326384943751254926626787017952656174045225148478877254106720719517159413946100699042175422540622240957854987721674222378382697905242988209875857280060482727321742280315341278314677347764887528881092011768590510575125740242254165515323077386183287825474060330070937582731511676563249133314382839902656215627011886777216831840471222684527052614148444182651185898740182600137137877144060393480264012807878712594539330383816531647192594900203026942014312312291341705647518650869819173456361591034579769027630714538268767909403368965773942718180378473631223073940337795692689019769840773125685243372329760937155808529611066416240454817463336836843554831669528747975418774690849243589005246530302315812361636130991214889748877874870091060139417417234295331211843869014715716929217907995609474076919318697734729532846902368229425714044322965248332107690437199734017897574055057781182111110424865274877747122031320788373855494145519414539856108893691193355524262942556565103993192478834187001624104675446406446412813228014627976813253269411240968273003516567588790577530063456330506361814427064088521513373233514612484713211547391469545384800315825074169083116201144387255959849773157273912954943391850061447920349138018795280772457309972391809807803864437929489548442456158386371882121403170898547465317105782895948566763593333151866694612948720633107288979617869069393309472793913560192735107962538792487098708234630127298057778643456241448958194426612595310516572257736629337712901746985336921503349611004451077231733997779181873097731363248780451577901975639637032864278619860568199519172410510472852206195911424622146033857209447757009702429474799130479638344857073907441714477713433938255986588380223847936657710772544217336191381040358807991243606427638080909511276189879908758369651500214718427311861020982090967861786882644877630108762927473080180829571277240466529264823732530826664248249708869083456557783301291421837432169707158636297969069955681753741226723846539461149673207105597405605819859232722098640752732245218103937024951789877997656516250193178397388580500801130442052262094491548750903260370460784709808977817853321956564506071009775983045416673136673889913159300381900473962461236650562488210956463611974382833872536061713311003561119716933042511200433062893082924809885209598370916858996507965345003314659546567157633954768550191455193062539518622575248630374899737235939037348806553415438485784164717241243296326137997032161539552061628325759031730886376514015695719669129474277906181951076683361599194160858372909462550809283549849558162151907793776795613144542833597222016391866579303627368791012015338464352703710448522445114966299399477143975638642422844842660592084300677234847693478085478974375289291437163861875281531509578941519269559826581334924189716362904349915990155849658279643378372740608826640411078878217496223850161178957712876609838247951809788471078106437867943716611163217677053164709505465199448290376613228747260004935254188658634913707333018581055173174103072220091085779867503484068169195654144485488372742727318178439886877974892923379576662147071644441306174367870339776174345397459908337448158626764752105954497864620268516861845486451609547742801757961837401344361341981521229597347797688721941975132256813986757905915966913814945070211176471467596290211559187658983945076642740253739854991449074257953598640343243075105856914748586869263014226197827171912796101558537211204349508542072337822400476651012707355461558853118632326896618073747935491236859000346317308722624574155164652619015390384442538251151539518649064337190125190746360119269678433225490136292763693270119776350543833451555269796521099285293120095973402238373991049000589796058972960607424142016025239928988470401309814357048745216986579526523392176985059385735464391386067868268282505656427342139828701393196605107346122087161142190713398815307177228734990711164424975559074879819031521388874077811890054984850910373850294999624184853571999544145309076065591759198604763399641024355623163499653397840185559160419004245049131418548402261714580166823724200471861594547550880054783659924424579915824106869456820888092149526102826248469393513583689691815206158248676243122038429546214104009094943579927033764604544878475051535200248339988495475168126429589720006962882224367802570052142477129639767045379758886432546303413083746691733467174149561115336371775150372998834905881948583619517109510204226903513929146879467169356773225138185082495351086025868544617296600692301202041411215652425047981753449203472893612697799093168519954013878233463847326089406558251017789438237823825126288230400425974492917047112157822328466668766608907921041992315549211410756736313660690872884442271400474539919222878969228452138232411167100122895656583103998077198221027252903195645243009284531059468124686653433502775720681392922043575145160859615115783768667830943475050671779730634761706911895776098455553308735812592963771481626665446700070297821814445850926209080916407376401305287674180807737750734716478694975656927730138320774850039123337158470082335318571409608362418975974880521525770530712126976708999965346663084166360556644838933071970779882394814689124894296431798803506814186977367364477977932081879846613015543826816859959248033026336063023141020438668743592719765504193531431275018945610622048683572385735262607909316965244597223065010468213304944979224179514102079263961999960327130895878008717517281841728744583118627809833593410282481425596488241206264696222386374460788118216089203271592220609005722990723329403646914208513810737492789690056772051811524856510110451793600379211754920619360913871772859907013880128267843134851809039882317169959405495575873699009202928645256204292794977653176733975769074093338974735967384200851565458675415270954653507506876936929691717637989147313390232221546842153134757966898677665910880907475912442365378280721282074657405193501813604892458635779316561510158916366042482666780857825541793571089136293652900104279506762133610684555407609410201807055952413583312911247209060352501766085918689730616262704889121670316252589598590161981756086371131728781077110003307790129934339286968788573513347718310676965659055376578213210633545750621622730474964239153520639176788482043002743095309519742781698266545139098493750326698328897721384121904654187490781121403382473891129688648438886710728855655641420406259530271220503410883603045118462187586691748721219323909967291898366387844731144237039827276547494751034443869537023648034587375964064028402655161782809734457893558611465060564007480814411805078180985086157793193609997698481045061850774549073506415309598680942990747568954229986114502208009515234511144646531642675014998297498360899220109839722080006188127928671239889229593744066975442324631176202065348255455824229399305428568111170946673868357403795125462344176328559872323977587066706589646223652092473976286574588187684049064616713410215022316060826680748360191063730277739435199347506846752269413879946826720900068365742284717935037762143488515833492847487438548026763972320168571347520247450304357078161641485959078845581522441864348704046867396551025366746870740063778377220459139133103327071554056973177648971752275134246124596717725999816380249956446360086027009258654059486326278566378665609980366772488041490745662012288862723121768507853521764702745781466289390404473845083096527636561708728488898256254841672267949593091366429542557898999946358073046447105355881429033837557880650289420906761357186983620769924573647060825064821047660236483796616656275555961347447023107532831142255328360277328318378575127112998763506736889706912708284493142055301943792689332135736707195928767047591663260979601226003191747131049445800346251200326107045883175696685952729345740659927073976578067248094613077584380807663986390839363194293714662194610881937714262465565493689151268260204290053069217509833361443106584662065963728817495473077206680677180441575581788575531557586513933124858426419229030727581921441362847687486685985468944655280109353901524663560007007210433689463268730827864408285809567287101383988407944029137796167320506394032134865674528823800558202677518261849536701209341849046874109023404904560062963341231221950820823453982233325096688916133555166580266538168699401431958823762541330937241333644223738105890835513501069346562010734355070221666174195977967235292694786446199850360174790867614652228742440941914556430564931140866633224612316705335786009997277156984297882194464269889318346559499250335522365165489624710965393832022637391176985000326732498943204537135196691172843219163791147298190304789615002739459044394858602298383637391249612337455439321539585610105355753289329906027424568478831807034354381041706953695507713419313344425948761801143103957132180554687771452527903229331420035609916962776842058479444652308740865464439805607113415266027530900080775012785012841588511354970732356801091253083087844540094354764932595418830873237016651398084085052321979427280096457072751240899263989769984999533234517784073935633876918306133521599071236241870918245528144024139941114031220903031776558879456352423450116283818776541943730317569852680344693707513185969611667883585122233932724615418135065617717536256192406493595198704638787241936866119901555446173894706542340349859910883389022721475731492302885653283154297459418249319683692442001873828603546835310904016524384551389549457456642464053964729918426680437515823581385473267404994782448595402292629391547931896573105418690997672043000029229584230930164901796421379057872919988142568835305957744672562908978757298773423880963389942428889922552488958432913123504207269829717303369503534418870034207735896991817009579770742658336226596296173954146785244128915587789986538491931075729303795893910591150289183761885330884940524885286921400253127458508372964779249756842194755930742216929157239233011112183544399591551781344027131044148077981146447726988452854734209061648360204266693217133899206384457394261967120298450091849283180437381557324713017068613738006378196020209601691954232844885090055606873624359856126139268144778053912405638372142666174914128821263166386564743507997835928397256612277160665748151057396099395672500162276598967511811701695096690604164623665358888026876820360767600664281329578011580528737260634924070675063551124062858481465825388622662467259812104474914542905650559870052569664551977012651303099199442574863546836547116566674344676998683347235099705315614582094581239673969150597783013258072160149713430524685291422566519948654440276353565959158033859091198605307429073263481361932907185439008065833349821861862470510223736068277500579942238072538956389700601726526935632379158724852247691029884648680887650155727161021199606982948493335030339643196974284994845470489393505406459722829268439911533940525458100797020379766550492962915192083056255783071945290036534638167266046474151553287585392507624089266397907554561829919855562134236868687620168880417017093036378169883080922220620376201248677263800321764356896805719508601086547164247900123969968819512492433217457026737342234649701703233606863716178939185653413144886841854503404775846208641605606101936704892682014731478499518754668431818259407569058162290873470968765477210575038204169367596888925510572747307888512299953510298822309916604574228961082432127370597822097077486026384066410939006758156628256704790151643442249777920281324715291590602701710773226358902360721267121289803905228808750450944288529476357726329255712620066993613471722608300095641633048725500174082310441921947363472914363834865049963259675399451197065497014511199290311934839239052710828449778886640669738613307550332011407288132482050276504352872591857052134334137264270943744189140235656346723415271625073022817421559742606467368714177674199889516750572842498623993658652800834223444173077192322900252687259417495986982698832303751920984388955920546262008953223232414057133875260930724203402255951494025554967603935553186959509802326140145268818979514398555516675329303220710877594244287446854764524860968630265357685776475490614346781644976456031620859715601955469963920584308903995553749320417654482949159855398751478968009304716752284261000732262549204901246874409190993021866481353696103610791829538382658179210462462049162043807589611837339091943182061551080309188531886122616760791534731551348640759391244681794336263718712744813868179722352035754088825055382719784688941254719785364772231315005663201063157037479889098837915017834370499995140246213601506233138962248736951152775212600838025264626392002985674977748658073961876332803466416762753919115080744499290176883182680190008707553920572673465504528540866891362041783382032721411143890552203924937792927006262967890040605300715147668562613005617779685348953652744323541394094270104433336169946119426581415227410402942137272407411949244696310428717943097281045819508538570214474191190083005207694286620007916864296364386007467768059872580072979423964700293213805211756848460243897387633056897633560455404001793045230767492667485294516643709634320005577737748392990698307954020705492774361210355762099879180256477468720575469886721285201862472146099360064137167662741723720218430664564230353614701299926481530514638563253067490542318187004776401012611466589278408349597038488713076958710589141243274947089209191403765331314837561588687565664462066069848199758789212511724167550152810094904491102178066147771124966480230651273684928564763185419406209017675322869754414381384169793950486064300070885915653072358218372790557819960310657501652595657881986479191229452305894620368317586034059212843465799781107254812748516464166944099490067514035943392168483296192125825691077512578919646862813470280008024169217607535020938101333820179653619028334857958724112638504429633981745799245535552786999234117247228894052920121731879276298227629900688054964821651065442260957184757981832207182549825990102000146906323395265937549678785064120286928984010822448585684900198657430580077582584267647363192128279696835555127782270536535415135151252047390010827345283069103775221436758095101946890723816225596642433549429968392696990895122620516913296064933969214585629717163920650498858992733119362837966117823146846439068122877373025140898679950999469198863748345215715060615215534808547426990126599228394604901777792117663376689480198138882959727017363349576518617523245029095513181069425610763651233488300775060851323727930232251725676037779534410539164341856477637228243132090667512004894076284908175295731298841216453747493441057951812866644083663713567788621063853922957671652995847412904306623059181978690830890790680858914808111477858735671211214166095928548772162618444771161908921885649927624973809225081413459137194045922158479190414077581759700452223041999652288560456633060896357918731487360569248105337051824299219078901460954328051661966675883710005157359640908781018756368846627302426206254923227173983980282149234912574443710677015033849596927913637102945536215366938158661241242635646810785765755055645702190254728858892264060328006649856471501247827885567993319375067831192529482299728934608712857134498418944437824799599653820251946578956581248905127146719566926569060149280206982349259866305930729170560870469390681422818795869476745689785176136893328893243555260356726979588371642987209673870047650882218624100375429369827595684923033927588366461496848315502968987495927311114253619561524659825068192289042959181688642737896057667790469911100438787317375838800787986166894739079213491222334172568308037179561993833377032533449969537278726042502046145246891472854262920407313722295982899380890446472541552571734230851397073431530845904577603093939480899520236064424413794363505020096244728308312170298958780067024185820196796294990046697952665687045624254532520197785974971276133321124086978412572993055335391556451244817070157659517363853226749482701018633307592831364713121900691295894320990715958879749086434819497421036327456338359659539187992574123555838155283735358938341186637534722584498776828917285995871736317995909068128850745582059714445813997576248505321751926349129483190915481676375118328490632109628513772044995373163597990740563012522533051319507116691469693005073842365444081703031346890266447664876144732988576317618714918788424189370011577022041365163554753203181867727414343845025825548203200882348511107273834716591720477061779046758097005327357568244493706889620060486429252581830249672372542007529368114513672027538242692647645665838965213111594013391814046997828875334219229944848238939318601872325206634045709050113318722506316112088144225733272013881876061542622450452865061767295742272538486280292587248243591110587572395209321752890959784873272502802808491149758079592060216950574577799074634423868419342583380109099141213185066095794035317040539581594810864601433593689777436346388049805644493007229488777263536436731707936629636244002325619748946118235599071130990409413544456956713843271884126275097805267086131712874835274643416723975152812213378324446050182618640172342709488200592704760677841756719472290715399301336902435542527707532336462139757401610711800643687672281882171877281153014447685439488773330082446435011050236913886955379736387405822840863430681827704102711931102589206607454859330386956108401299509919327829195252163745695023446752267499943289607409419278738446223922511324131619089236658188855497153847875964502355814217591466194437244173903408790553375523821809146133139908347926689061524176999164911652215176928922920847422203120965654335769917660512506882513059898268337324270555763374454359563368887921593926312790913948680813563075829167234359084327494667326265944812955931759024937512359666356246084215384060981863052907370796298667788644140584475243050490545809386380559055027035833381688788999440487878408072475798207177872607422722983029632488653031325016357701435907207653023749234731573877593650367115230778156413796252167779476553501768602992640693063558077523596777958435805528294469352307399720906862345154465731152064610099456737705908440169721954814292832902513614587941639199025312848280454406284116917584279924093673166639482281301917514791425137645047388485745163387368939235518331322959891332397327236919229156029798351430592199962884694160305603129205465921996851869855571425900683230925880613864879796205278698943262283628341647364512349950580428202449801860985854200489212570067216203231281757294805635470271411279506002441572384970858642992426835643993851144290788934690332741771151537300653698345315172211876934150567361990145947745266661016716771972955003317664864213824137902666027873514389016383074991589750591835680489872486425285085047187033158524641982281004778579897483209201145383396537151007717488489701678944743562787573834458133828571584210446583980474420232933992657751448657782517991800751868156999421754010242999289693872229882525415125980993195567543177047703928265782805915613831786158736978016081284352092008102986959148045637218017217864033558275727050804227887362375533520046333715709401815726346951313982923124749901073373477059207674799330390085939144480897377426713913720183548785666296913140406551460027816503128457156620009731315816408796841458029861869988518119517857092907362638888728544285749540084541214442185952244743759928237309162911894213504149652263657335499779299752481929938737162558662700885322266547336456512556934877892554229796682687673550481174758252000430784938548032657390206838179011604205195671358594768281683445623905259534611017304413366656640846222144780675183739988265530309042148531185524336988209096423307514282891486540724300975197242993550366659698765978002360676157029929080599460510592626902870858730052621252787070334372839931557826048774753276734075503905431130820714673818346967693419854564651832661496690093513883514286427911704143610041559759365572459645377758438077458356526430468410566107902872371569428009525764215171746578987003497269103860078393021880183157782966428676713568835065137833565049451345536129720942503218647823461209572573963365228324635966293475160342068909066326112957145630554287445242474843776594181875697090447923355468566371390086243487293039452676974505663029657122635565811028148343138860722043324848810315519405337107669044012966426961424722751123494657321603657271449207571114822818745653993539246087931373707779347566520989140503052209521954172283491438971138132338207697392715233278301404944180272634668104562293318304171656359636177601928350544207250542936520327160575889825197434181895210594073812890046539545668314944683784860125302940009947915933828614823029014766476522180474120785683981628585916244666407999613215674099428454708490284934712991205299113928405667834724560834830370924609465673046611038151273797215315915690395844237001079570910989418052327376806263139518512901752133169840175144042730358301995342782952518742533191445465640435013726625752899092421897944899892958838740832546671011280959565909491658058138558680996794959959601960079187593461138762856351697688554529457791267482109698159209995525974450300704599569549271061683070975241136001641406799287499671432695461718224470515511705421366114260670434701499206021503234246571823601958158211255515366369529352696016817331145680597487185983858343862678193422418822931921534096673388490759052267316439549941192485758380474216763874159923384791521188464210570010571857029255816466622793270576853061394494799924766648472171587012283813422169326826719475309982080422225742894283481521368019207092858989642771200584804606671744036625668917732399103411083208131005335139820136605736275204591685892615577587200494323362368660027088740668075917129654950908280325712135116030184636396351219691952617691576293763726967611460902068337933108206992096339522413751108507927029415741843119165155715439420072875739159096209853229175332470153914171307557232208925645956301805224178890050805273424314786495458526156980070866975801551965267973669954547568112824684049154120796611265679769996176517468405372849983630785616216061707490242457963764364442623985566039055400369360692000634132097055332871477951091389008358549630926280751077524642826827697659059297915041925670655602015904564379090897732217007155370392631229877622780269349088872180998348997142334480728925651517664022768012357674957025693348739554012014229722191139437179863686551410729543829510377501731693201069105926915402925023149266546918128069894593244963160499297262719552091419690773058085839025668898504598493813695136186981653052814184809755037975505223970432665130486314771333590471270303046938259831769054527770619080484641291173817327173400110586874514027304274039704727358862415202375032871975218658262134890863431274683071913202656053487674668290556710645439956852933308233480262763782366413575075219584427171356844493948112521351774694796171523168893043470910592239951399973218032833525905035373899668627250697033247534829429899663034635111162699375405058524424700621220429162490327276771753533631835881041435764225020436854863362336950507100202098768602393838627544361495056875057469132245328799927020589656899743799130797896903122247969315632380901066154725208339240367595802357237649155519920528007321702506190545018767558193553725556380091153965531691932270274946732433190316687496562628632394064456693503060513847682561918033872788742058284520940912311821887763738016278097180069931008036394662769960410008051884329436226965394407118886884333730687352418044943803808756167116389864807252668092255607590103695753111567371708966309755505253781214520480121994348040829049388899149397531627615440726832979147513970720458532098402856924627632721622255163729443038587427978338268561193002705452563197220230184617182195398141859179482545838387356345163937535607391602092132776337372552699160525466136134400925207239412658593360176243572460071972904993244559997522800195437612964959476718956463354269251265806577265407451494748342028580376911034575027448770101073277181795987322404159798746749506548042324866359532524818138709433829685901442947682978042889964103268228209074527083766194554161724499668270292393732253629118140847860736220168524225258230945178146629453572031907854064866604888998514760023431903218264939665777879414133357180591325236336642729109660003788711074604990583038165703258041802871054895466768383411766604618203639686222771411634770497527971882822595821242935711523549590836393638007092232940283911742812812384658676081815071429109945356152093984563687820102010690354668924708443867106261216587280855998640687626059138934726969694632231010164991840077706038062793663108340663808667136781807144202474231017091176576582411212586631990566960576511172370080020988211657929333138007519272177435741904547132427962316496927452119963702159096587790618068043088177266353861697575096029971194740182619160070933249591023558053028257419068349532025397860462291335486442755880302739253186886754582781714630576401047776347413180000542884306727119830190210895265994647949219476736210603253199038402915889927080651061481529030852650014143508801029278640268895168748234765407432926323058618163318128365157455378047099889993658633038092941512036183296806055905538784870927135781434261014815236027393302897661060779460057731555907336324713795799050918775893259955195631303438929171653529319253033078442690043927437085874148642286506794045578711265039972985711833004676081151363593578968397935869918566165637908197262336013567553373370554730751411207357859989245089144530455160472739430461609733005052603822227135840175423912288264953573389943164522906124643821220928886205647149711562008561734043762930908000796315594476306550765165992635775317908078362927431425257446637284204381527231232922460611150316163501260385363608176214849586070264974633600375423108610258161130546621199651565630319939693050925562576440479744226599606864858364730731098206383306645677762305843000501873806970661107643193924674790828261704463111314322568167860915949359032711283336624099536045501157528406658261598765238572259066306565140532092787570726167848638201403222901900389125163079264177100434293158042784938281989583167212052601512279778054334810116262174618345432906996774192908202664794233403101076420543044091978626951413403566433166337022050418363036663079770044752766104117881508777893702183989335309878391503846821877453559887449282455427365224900688891189825829517447179714014888931045867186819203787850504707660015326391890704069410681968904772570336715466641889523240414756478069491601230560249101222887214602171077854743370025663966162471579183170204802784779877640277268212236184489104030604573268202402097391891386238037235926488459871983037268499076435241459579812798865598872473364180971335044256019924129983909898521386848793085100679463820714888741021216784653547447868671913974425555620558199879583920042177348811925559366916213375628860709559513813538778193569507891821728367036285671312588663125025799175654543803875788125615321226788555320511513104890133240927116180205025294033789980423863708344699141572223408844370006707839249880977898691809731300695091424171289755996942844829154190268765946802758950803569843215484021761553503680179695635239003356392996117338690234094809242916316556253515049393286834187215227732182009695606549434743946410408391920926484997928448185344942008166032875007048141197141490320969271148796593104818766643188979637281352119556055087730008649243924051675960430245051214066176354590364010732968236337686914468184834360828206223978419218323073260718601873481420134242307802948872589699949946660076899606213570118471340132542956434026134533752825797113280643202061197587912260909055649245232225182995092854799065977660600689290405835737486230114431136240042414954277138309144795639157038481034587928476668317858409814059227439903841668769013500869546046242258552236864626304980700092482267657466139445133207019244577867458110595732261089010705567666584979904578061689258452476804891026291346856803439937166174255057004846853896678312980342915756282973094752628711049480486831906930975022904251981685549822437503283152709429719951447322380087539673354783397042101432956729534087521397987107230310983177083398755182128818538995130955357500315623012432636493767037425965812607959043082078600780996894582021356914204052036804734238751447645506517915015919828092118074567352698195963289420955915839114294993033244259269968567913959235639330358798381374603020655046487529571278357738572467168064530717077423072738743588409213476584030714783793769879300509649491960012638058872838508685668803361309769849731021915323205022855418452432927400647536615078877305606740527009306506678152232411891004054712057686689509336735540029411803426380216134778105073264235592225221694894610412137051530462382754673800272935851707982809450111482510692489965734785510840481933391614272955383305488062387417145536656185107285363224047171799131597893224101931377730203821502380269507391784104228562980245706985992936009050117449685706799235770650776393415971328114636977281820578338759845390219963934236656365885008942415525369024239223975621433871432265534045004720845287222632196433593653243544752452773281256367161367203399534185183020647837101505457917307281713923682813008066352919504854652781743973998773583272104443622566684612899438772825580352767372100809210152746330224466535388878629636535557294963268758134341654617694783449008537325956163983558747013364812007477000885271637972186437725423826578680874269171929195715769372919553960678067149517053512135320001132397264820880132206501563016446270421158107428138548228563043266170484925677923592809112819620465208393220125787184021903632521840099457691204957077786735564273226906375011817225476154983562022801692000105847624041489100702417503240071808796467874154824570935098761056056499666840722174815132287228293647705239326097738870784712584185021093666182069938133845176509960714507914355730071696347950731123163853323423742854566664743283671059690263246295942882519195507705562417476406762033431542498043427903117424731723323217889421495793036998502859035117379258208415204207910529195516480470403532885969236636126124259547856948132494683201107453227635413504539942037557352029290633284818069754931158359352304787555659881758397317064997462599404854804443396257572891928883348410853980352253816703397830190114529306497797503486590944834292031637746523318074070845533874737660565103422963396951322897838150879104217412009790522857089500420828807526131333818378069761193603444831778524617422938586982008287406854623261485194231146537443040540732006444332275054221522688103603692296414219980365143075043589329841586210395454926573503064165631571231782291097903355762457313967080084019712948063402184187603865754247322626375201668288458124427593047720423512951028012562377117283168171897597888601629658496477851550960450624299017512536341948932579060676859116895077278209627193266405177204307581802507245164467261549649678881093417528217197560548296093897604896584848182164071102262815158256372480910371966044902334160235849414333697508103301783866241129295173159585174355724463434861562324162485738706916997403222993362750687696319852465913150824592386939023219085824975148938672687681006073476345770849627184385561975233884759706721177659029415222279890756278717411111861890753354036184407284001173289145343055858010803190390424096784006943803694112271695222809000369237102656402608877548226580258978982211868561998724380860214262275775915878648090106815107573179294033270070747748373451334979088007194716071099226365377102590004827603423624342463235840520260260737402702138507515996116916460910291636470556438393291817272189672742060706405451353856569561811871759617051905541996973879613363013863678522515900242860513194986556613852721858689795303075571635399688342126145839676314550744742998081568283135566960931229127468692629659555987631644869614021744659262422176246097224653144637208394302924599667062716010258659703682148961768468038095835940552032821557067989743354857022350996727695183419087986028785540695727863981068056782374997536456524550258307803990867158391687361762947458115798096304622271495677582710914003742445895218509555249926133321179057069839936159403214866250470503974531223481902061745985107892827434017532953184559869476548312716166985895790124405941353315226847085031118104988739835248320198017781149233840681791852472956533232724917195977920377785219670605182123019490122283716336635892290695953308770170200695395130763875257852938138132626786966022736889509578231111293711424238831014661191678556176274027322843205734694794912693511862258881215686280739407844122225092801296918554176774300273722237591561367711852709614180364448161461124924341161742839447747730334508481096459589955559982766993251210038627439932145310855356691172975325347384185276270853306692546867713168034518610155953850615401549416084129876868587964562037856336462563845987315976040280881788011030955506626502295071850751077990336478065310461387707390385018390805471478970812519235950138715571492811156822467863588932958542880579863869503555707807607955861871480299103801984279685656513085255755065524671506992122631871630524089446139635150300664954575230103751162529351680257037153111984316784660940384894269750688075679959241137036474401432141758901206220623163564429067141621257354423010550677271857226328331442774696685834252843390391427406756517703855364260802717929299973008323850812929961513682963411068662860972499263458676390690216658277543278799908421382315678566693763862014083407609944073754904630518701400694035924962949391270002912476356545421931321784322603922138192147577803459165896787837806695223419061973859422457958338333511088139638216429300828830097233189702542364653318087819590811526493991107137569804086258796405935821637444125105814636808133186087503003352900216179221662776202763141356186085768328873550419340146647803452854064495185705982445262844641795864224660549563878773430172446880111082152263551339745834537432644113890339330054237301483168512288360459323558502004992363854984329697474702817187031942722372758585128682421823350740982099097513091439951857780594408938050144292957947025815418942044369912764411024880899425754901157473577667051936822652381586234115590061784016234572255857858598700514615680263447818591412611769968837730683357701659273172093299838859387442160849176971368019838314096682936621163317688061857194858204197941730579997405793853532128731750188714637640754352848318061400820408599790870219512754709113651588334487231435608686371354553214439944465928576807483834581499558244894023873590120457537731558329899459593524077047756126869329862490918081872259991332643615431240240342939855121128134302983872913662852622675509860654178941492147746786348686275282717435326899892551771182645264285915365427580909876431733229865516679736421879135864811814437788653755264814283346063784338762308282617668271269888587859945380701134598057989262771375173103899866035784941066961229738183436517521363360469281705142250015834951892179994303070400150795971192336123294513356294028641731116382697002121824609609367826446780771477479542643237288134127848376688675813015749746091443571771354645045864057991838129532388184008048449721345457013382688987479566087319027304876021376413433340264128996948975231266243529507910562703891830838967188066862594161327213998302751979905338466489316878669846695741005873964179071362890645287876146139101891582746118532846978662014227332471574632940824364057108107084926745066451414964725762387483247736643133764804576726944222328783994289426832099495525687688080973767440157876789011613631847140045597584837772030464258727125330095817389413591105586930633873728467230477627423407003359611624301175848945601247217574405627125569895328113544064168446169753761613846065436799293684069302763471639005333815733307980235003823322235053018013750041578967873390456497340869361558753810736339602080184106373557288900474232919981406528325390087670313629447093249182351059442663320080187998118644055396280040963705750302130687158885892382975031779160903096292669266199904568239473257624737284481703721388007912767749360128419336530090376748843186931486914989492908849241381554769008693993108366521372764505063623552813128730775497189860172791190103810924377858530563481753390311052219014718375553993243142337347972014154651984949638890594715021154411391156602001666981467051320312540088400617660990962165902649133979886162633123330116003720152620263529547237322579005183530246161256632526058979579790496590839811188763161157331269821472394608045470602291473339723261154835231805067181044115820443327727014740248579471507308200497718976793997333508344420878368932583020685171448789005510371050987026713693716240450181805277788210269234791235821947018292354592572620450125893659358957342902848178767045198872490746653103822830259968749228124025579303832193226243458842199918044009131513215646313853345980488917252261767373111714120691848590124321778614005482254696474087211940567477461360455704173723070337945015860880014433791681536485233427493041082468723295640511435847644871922833477301268379925463891924987022321057732259176343699358001405699184279619067999136347754052058194735249233806596309316431363542969068394674691217621422227803839647097568678778296600634129417060893604457226508200156317392848230394570139713090529230825839452658560922508771004134573212440771520393727393241509503296177655162237331092653779087335591190418598005550487369467153832084223657936421058765660480616876914174590647712289208937468342142271071686616339153707071216254000932440013018624834277092733390055137973633352462855106245603480491626819382074112374456630651730153888939294765482767019407381940533376599510617759047242791866113412874098155182909068494775063593054648796227191504992701753914530556237876973689901578401517304623669379338970743371468549382314556149801487360845119761537014911961131249884053013502092424458023796757774116574982428652333627026134192519212575390850358302986425881033029451910217272318095602438676214983881172949750056239956809346906277237317505452546206310406740880099548961408601923335453465801636712512013873313797643262288048927344738868580203860964650087559172496057451184460676644326447094438297530856405552983695483237106995417708069329921473820915100158453562893701796385493487914502972491997091463164812279671654487265226885591528314313391624034201976285884715685212791445876487692982916884170361573075273361315206635989937570113022006928165037556162507094831506884336985893322829583797776714511688545971327182022747052555227381504246827192596510793164424326957864043335030146206461312747814892507559105064707312089028942775458280284486939812612650153447078080593576613893833003196293244638492193125576278883721733559280171360784448302773676422649386120711289758656558870879402765699344127508210381231263499606863209289400051305487202535595130316876915323431717375673047731651554872486410648403613684613968727217093760242045430006365889971843118668179542972961109599690780185954826762689493407450818815912535490486094771982112859663413415080828043544464366075002914002339280624539907798766381002323150677162779389648148907169864344574936290317818990887201069616732792390207613160459230696976168074904519855735064591669816136898872417102405259816539251193873362439294714684467084102355120588727373860197205040078257366235776421353484333555208450261735321832572966559174876356065359450959183467046355204155034922818916986453833007265369458056936058081998415808936271760169514707422534849070878426304620020956831949954557863752238834046320040111255164962180833916328145401200108941541714321853015262232819809920271184988675359872017690809820157544670523228370166563991724906563106519748610758594480345273780129017179684681965858054342160474932777355931106911548360382467275421107856782382863945926587546781827965658263262999121008295355548774677434767018349769577127845300100466263194748110902165373765952463554967030392087591077134194959878603986925086899005294723193301437349042182690800535808017283298572336751633270719326670212376581395138942939985833594832546983189727406172059895214983639662516526115506767204558687947456156487085098930228402429401647921886238185218124443237770699473100956508718748561451074278462139318389904930576055886164676568498002940111560242753443071547967855652266182247486403786926008468737224790606681669876832071402720453846621839615278067180066084678945244465834930108261312161934448761637002937009047661066308708877372357902363819819397618017476207776288433484110651691528413029424637592672075354856880176064922201801261118663581978452938812803557007023958975695408755544984222155120437828435071014147224396954618996542495826705722545538341172729241252842059773956042049925416521019607146534992580960671693663877588781149594509658580383240714771679620035437090122856159256358976870876186131491080312352183237415309553678800600712977798585563933173548245361453441585564344480978293236441852028283450984425341866406156466044432255921540860740598183814652104847755053350135652386634543987846530181207466095897509411326632495329201572536857181373913876535039594878596499925051740588252027844862702814843021760355864390792603068550454340211675289438174364422376966031683341292472382124517975608161448037440980411923129317138038092773081481747888953491069360985162054956566228463772806773583603241013125557435692866388181065932085308435854151056217898525363889461340403518357299842408666191211396677169947485462689161907055096901649244687625852536201297146284073659487816899548181802531983415687653594890155529801409815699674940820224604790909478314358462710332145600977658054707491210273995759453299671456407823055573489483024394664172514535221741269111351716759983313446700407819257399635566502957703446881317529232171793046687755730714863260971045696334061231237155733382107285992792096046868518623645274003951374290553619517817625173080229335532430667389638145385171343098041714175492873255435840031357642379612817376715036081885784497528376014058699471952438947126986611518651529974560876553218912967422363474364131567212881915443442676940789085987838150886283362270516937174187270164708340292738662627428416886888170751278854579926869346375112533836595751062613635916955094631196506144809646360284884593427100216208189926358063377786127764499758768698382020254895169357074111645999172386343650637906058301203704399187223758830557764003530542791872095477423526351674004003629640979572883091611896501191396352931452457700090309910103614748041391445058026350098054793705398091614706919963044705193312359352892442446093846552440960987533421307705917011211205028629097959127472783904605209595275165728559077067170976454340324338192333851846170871432357946601283032490571901268542820605864687009656002711539899847495922141193254553394527622119010405890911488854999503037964132263183957440237166355976858775556668586411660570700437063373692911075283996087316347673385754041099601371533284092801515403168629386741186460084208934526475560080042121012916882464960890920042600133394514712203105412045439329244669147800565174900986827886111867524209439422743569468496742632253656988858488113582072788922129600998719959948832374778333435584853530633109442458414477464598001755042259015151832479400869730729497511863939148741036161374700456818508030827371311615915817196794264043552316469093195723069601418507016259150406421572981311155550934473587004526275256298772385323485814630238754248504230848390758612856710125934932515630365525361177424457389621512837169974847939604743613016980921509113162635171950708286537529550235230156705950035180701168988142977160816241865389030893580846619343429039446577111361428179740004818328210892949153904927462582349518325294254175573214951396325442695188926131442861035979077341342459539337939954301099666215155342191126569157732970864383076752463984525359454517842352516511608301604549695593215144891766840797468995511301324557075533011313829967955282119941777806498272980063429719872531933445830796801870152259366077082010923431728142758060219718852900524302581658527855900964998928423692857949267041505240301667121438583397025242433482239812905707123459299182362517072028329966077018341591987031100940713699300960203940031159641333178234716415267794942441652405293639015918403736031673120515902253566172563679900033482157615514819859625231897651218832353693767643804663873983595005184861045115675411485138014604743011870861326285901232040217432034212549153880757855132669003947480490660759529034659846680262142065478377307929733597210196377212348943046088507133748694961515558433979223425967078808351704464050094830630533715572174048489961484094977295923728975860089947534841361368737896040970215701265442435377229286402903300857516189368855479749601163192120424576598974180455369886242661356295148311474136168286876408708226041365050986214925580920218876192373458267440858712251874820889702060212510384208833847558344678694790761720022662440172085979119076899346787769866332832268749855457133267754231293480712499904551185969350576750374714215023301458466548948026362575310851386168318295359952169988892346577720160645954751114218406130184381092129597289176057791742759765269273443625233966358574154010309662402086323564929579012638069008208205818796454178856391938915569355878057801050457379901180146007303853109970209440403515816046377476149429275938034966707001616168994524165804001508407459092379049451179634313562729514815695174342758014084117480472740173507276366618734449239956395629146231927447351109486144959028790316901972856681215734864291030573518173817670798823874134048095409033952300069429537452295357399842921984443988563539614475826963348769758019877696104486453626247466506117029022383213665251476706760269249243389821102991167782090574313853159449092991679627591213933209693353263306102445453963736757295344220243024725128146717011781079680749949685168051267832772866772358626055233880610492417509465540046250042104712873266420563894312234186088929296748488544692428149515954065008845325777339933540705964402305102045923211466108212626738836671406738514549835130481034948596287713004745946156645236702872011245532901043638834954124421771685747316958632010379194576235610259132266703257078815175128016175871809737517536533811208071338142942425245506542007667575892899992582265813743597588818924250185940848689445609342700585951160976636188128489243580032845181915373247545105081133956421100810680076227656566394180509659237276058517550489497280179316085810781857694461685566638511429458969552981552392944304523192304921852796332931951689268937777775077510501408357457919306461623578127459282681035838213494250880050780463265152983709711324327169473689770949217799833253230134933414480701788656774182474055069825525964744244606028956428521910035884796532051065774436217637694031828772212034510052414530862215299611607405429272729399882556626667302486702735153166252749394401097837994403181986236966591786573720974898028787032551334139282102919133222312361417412538617096076711445948699100676262422491840195249811548767865251345650792958801196360214430256958535353078629434700792629853063490933611659008958931788258864520434694191347358932093815381372577672977692861535156570920496848926112234896897733984061041542907648040176270099278889860110570060678088841884571543571819677476289477248241078796662015230121118913345347558085842321371288197227728408360117524036168934854357203870770048135142496527929331392160696665137114441025641545030045712171493559653762464118731611045969764786161533664451263814613448203872139982483281253721790920952622691786338387932736529468758536431253131455015175762765943804862964931388570843144340806841842184612723951771537692515903831653034607947211041372334489320374038062645031293114768376142687622372867542838158855704419456944170634479590022651316901585036948021516838127711811448389668898980864331806556043056694952519946260583509947597192152523617993295440127756927758243335448164936287357356746355489706589113439307535096620912782426091973396620911153864781699510947433744046319023914912484662049763246832978733397729665209010362984449737585403746838099228207721632152718277909780213405503639118749696317523072907254259287537553426332576773230625161303937970957062621803851621060460669137617867670988262501119841121614445742248212000819260245385330062950301777103614576555291493475452962067536176563932144316240547233069775045003242451635966214686602860743578926303175748368105702773839591010956196417334175646755572791942123542501651601588819727263679279427343314881649424114211603199151007414290252011977083451232693786532974550366868475256827313301914085083686339465327355487645620527506117029901672803877821911998839132119651418728996940312664892100674255925222831829621494132771657077584119510331612936822403139610516581108160580505680804882167234415173965825365679350531525537896982167984113253948699639237308521050073343352594641633828041596451885022312817393797849571422086943194643866826520039352966602734506526611553029363123028320852147621005596148219563325568387827279690513849884880320174306338198516107262787197103512722871211120775983994422962987613879587324176229945629309752520776703661109586237148508229000445337580438520068603417756901943158957370614788488225006686331355729086419086006262600807863574147590946215078030887731414742073175316932064296071416922259809434151077310531671015094727935834827844845067660696249531311193513418216420168009971666920842978102327537772792446864328691668140911150702916879628271164032256659387502878253830047936551878560254346969810396211437682907405292892768755705302690973883278317998607879959944881801006988156502689578621347679200553417089108655678660221540686251718937335053317643559533684879334601181995372517012809378916926031571142890880430725106177068810330763345145763046160973366106208314744925351926154895314679853235204181403812666724025904422320313777115272567202324468768035604109526172685087605425297833051306415612563339431459292205155122214495749588395044564399816467706034642730342917670602788415285850676283863990095863092411463368186203851505996610255868593447347555753417330823302845265343141827702086373790406100835783030282245357761728381116677559658487097394851310137290883322377730124139848287195144410111972784574497348463714840691692249459538338813910918023754453198296306136240447989180555431017425373670359451495226698330786808182258748729621792677223415797290511408658616968090745441339757191938896248256307380173072869384268638959511040776841579141871265198292528145705260953315768632402575291693560552763134937612508923288497159174394123705292236690561379669217543120198037901160579449666235774548851915664947917023658860356964458706189284766909828474000301024474470929048165572304857115001011381709189412851177933921879879605722501485682569877943299142713889156807170139329215954819572532320948133748334387455022667156367572129324044453880261040242248882977213718976035084563048823705738318546916239051976227276593336099563402632219488187609095278761074870574808615454108759115527761055124390743578888204301003825488819382814892341327846617909898543488055377927522124897461546435073770024843915494205823628640921422990979073366523619198941293194273206759256130984252205345215316161136509807889081437086542776348649720903128137366835632697603858052948804781497594624428718002216335993021658682914748741166976803281506981656127284759823578216526491078865679135610094151226525871756216606865948712267525573871599145592895419694591218373784825673928653109448580793269950531521278972864874904146015982118099397254116864455077436963217843779573901558994652094306645030583851807518811838910160972813408293824696895702723120597845991377043625477334717386646126499850469153898001925734997977087367989632403543607358505456608661695764329280831321941488289475332573013761876660459549822024101109809914339661863634003509051727338493226167720645342479619075990213006681401490837319172821200024127261226657087046603684433851958971595700249238187865151719532784634519270292329415688033292018888468957812043642779107357177017584065002044333824179027451304315561491288076699739535671972631307537867713233115774205214768482663017126625873334731653814245771812985991320538640115526923662308363589336888154127516934011795839850010566004936423578868924452721340636006449618176340161826540617386967543668089604722874116677998580485957536640890853177938637921581708244145756484016328432028493647602781833780883921671686568720629353223005791681486462138226148850771882523852107705843379059566511015311620777428418245122816421777990849611973060901963070966770446475927623157981718597483210340075248733287194494782789583139149519023218997721683386415933206822827681153294451607472784932788352646272660669411651185567325645968372074967488948295709250403191026806144145239124779646888273453518172872212190176825080986417811672857835289729844714534036283544451179302528332558646224592212475424871679673239957806783623432967795010881908204465325303253209945999819354645984372919018911741564330277816738579162738716437417190603435015093269871677981499760348640624366717298347098810948547942977446320745475855743649995940786761643608642888414649696374989083024907527842727787100198245394933982178528761543745466948820368008210680033797000543188695026308562316313440521360140428355002115288295403761350101243273087564584398634041823056558474757080206338583089135478434492366545407956690998008586213536915230540233925349006862632457749671895704584270891101653177924937341950189242702741252951863368420832660978143099796420817966134308691808608802281512096050823851462148716300603757311062616717519942480067696654121070481966319621299448687543825153348773381686151053968482355938334828363443791175881009121060470801578595009491631292039456414360808124887078200636114472649838970077614712436151011450963762469074680737274085370517759938934305211188606769963604661162859084145295606613499642279570315646558199143276615309742548537354514468624295393195167769482457623432532975217567314805679803300848929584510120727867890407200473147264565232833078101089389087467820467292818787440117964441365538786237344092464215341082364853938908457494329825897292025462105212118920963579121583165027292394656338909468057191498067654986229139868179482924959156833755397984489184094229286820642568841746329906900305518856493012094465938174103346361308014107200153738646156834442687625385004591707196746016218879974085773195206971361173887650454191429820144363559004340930798670029059748992678762467367250094847262860480189731966386419531474957734351597688872887456098391806991893303338354354240555002529977209791775176495499371829126467109128099091099803019469379032085639167424927321247242497709424802694817891173962433927379326695492017613583525798065357872046337357850532057099699995054335780521516744649222005384951037777040733804513547009377641565694523473951107153728242728176707686659904951355357500305204157986887166440084797177904538362973590705072139328161606141398401343221821485294094141819315523214790889115774349688745668731640673446810687054722483425590019791873243970557255576132319025246233537749113458439635744340941810908827483251152727657486136420105363999736197526415171724205899546079624107328009060469406781550161695057057943315196875614329748712032537277818714830254377885465688242093223277956857552928092907060437874975315045633410055017912861725281293952306972366315455731181297619118149913151929010815051983167204443848493219662147628674684779446714992713712648280914023838115510799181658602930324830726660284024649439474762062004477091130158108263222932353027928474785433073796624163186025433519557705624445100992010817809176459668123486312696508528442540105588493103021139285093023064625390836661192401365460130070411651135633098940985490619033505553001552279490616039980457527290444359543994763001261485807405110339686190218141606848666707313744363967779216878681500780705646161960140805200040221350858605846655973612654853970563888991308969276195743173268169225987216864622258607205752500135482789276276637759252753408457660739701857507379255266118620151767748147730635139755012643099325015726105518691977745236243838592107548247470329167334557767452225549765201061277170892311871315022826230804602066911855464580350671915770428061608922618370766040906543643747623486149877175213161990471147210439985735092116361807239893136998562372113438517796103040979700322042047998689486689727234983749636469422105916146129344897617028493998769916263159836892725036788277575550074049736736323169838930125055600485292181381151494095389382674495591496385564163604661993867911266862226048259514432358624897508382020044622219745952336683481616220196674032608436370375572058729912361935179639756332953636107145788076893190822174719840192116379796870945944053132220350868099192663015268171138839976649035502883103851875684002662438689328354375716683955652692029063146745745057735891523487814225867390360134927784103043417939591080657653144020601604574204700231797130507088022959707640122492484042589435507508804308743153147985328127305015288644382451664946211559793401086843704368663759146287198211907138815765213395884403616372009571660463585666316822417204977381157499328435726962412232122014452095178687006336328192595375433758297368130929782708615432666500818203864936535002165675146461385213483743507571111408665890431369657364583311130540971607514634914185730352264368561189469712800023843602725783993673427826703598511347990291878038270939852912053408525447750038204990112781515901019251112798116703949303367459371953120733737699695395707423305162426988910147007123573152411205847183303555104892012872737481378423292607195368166477091889496350694667377143076313417322115743701676218507081573779104262079509583619488777196168105983117203651867095483527943065119554504488391143147695799752927726337322296015563224797876936727644656025802481400446184202470188378271443566234096927823491439119311255153691768598758310121423844628110066223607875934688317323923672436404516788305421616857975467885561600901323805291341999538810945634941782863426081935248149247396850426772787691063179301816963783778580901946702225416423673099714048004099024806946327786569651437595521008561789605916936739084616628374799723575845733478490203419667030241735280223317848122691692124650487856469667298978043270805269920559942059167752196053969021884012201310375063992807799136689758816379852496196733310992858802468408175062392106425392031864978132258059296154215897981377658221760271512457107482294088675756613444965292708376856589793106073884701420799543119157796642665879948124917377997436720823310085965746202953039705252620622277179610289456160972432726040672362163172942260549006216351684007600260130154332244297181514871030567808525172970618348629884036831784109884321259870858131430760043947608040519927969607532150301789967427363157265127104124905719450218813857092534566648281055483385550197641466388657620726268188717340895139994206857844052191132449820676379706434860968365541230308755500249872658793569621649507802041273147309473738276431987528510101064159122904849586509235753418656152138145918736139339012804996807005058297981813039850030255256653992631014272856417638379950423758749602675579772163132656300980515225844221095269843061134816916063671421164010988609404369733286817603167691180939295897639235383016003362663582262858071137656591274426307982817207597267916660435504429507133395675868991199514632453723312075419739843673049368609374526848883734710972057633341533074298475158767854604901607182727184633292854244538998770741362652375893400877665299755843200440807551645469079069400397176351404623545596903918138044537162511601241327009388333484318153659045119560794841533840350340741706033112691128625788277643585157434653707190287067333876883059901432551673082559409337873836139549533393778274276513840623592563647728675595006264937216376216694605093058006548584333200695993710638158817808393354667171823256136242378153212834836869020359219193391805425880303207084816031038555753173265982821045805369066463744114555675466438764831313015908515016428105344866571053582351181230045082423621861075573377964317483892688705955282589489134806316711143176321401304797351673040662009607067076193567191485095764190715846758543350587163404702408648634043030024903635785049263885800842276674764597778135602168904235256101218102977460117688289358452114796878811848179226608500535630976749762054001782225469178048525772109688176301959277245207797368961357679995167058840316977707621868564345034218997263264159991365248803925869500945139177997056514829478279216324355800720236372356922045904726548560052197193003598515629356144426891565715480706958899479486060743065735137867526669436675407860431823399070364923607437777843060303603334312011025999801243987328106203517148393655586583363265034585674132703127619026180634034719854131483598388642231193297422507894615850190215180801108003560037476826033714770933441774377159680433229381958424894948356750001221355952968654524899917356666324586507396003206900071972033586199175139142036667329990602770954300985675059565485232211443817626812378829927861902094465479172088591797994554521752679250796235031615141063099080436361059834885114447038784645606872677795377964223137445316961798145529457114599270545929335340628559181996835091692153039638013712917134858203778310860659429041691908888040675800916020428090758942033315788611639382869255828858456330784608785384794900869600675124862516993516935155080459957687503168982701130279600595063402009482036130004700318704306173269995387507706324969193177644187203499520926191562981670894767888792924140414439042484602813150887713522330059692651028813569089519634950539286596178155726535367819074509136847800289102584508861996351069297868490500019103001671437151295682691085993733730279572410786544788876813965054954992212834279303833433479651809719770008060505957350399257124165962218239633871776912676671158747456725478248834524249892719210066943365880717395931975197865705207323985331969948701008303580177019013939597408718397119005675212190495351306010294084105377726237084738737906623145921103150793088023409332968654565107293918680238661048372240292768635067165051773156690371245554318257983930386601854626291936830407594807083123285773331938945788061163305432352583655696185764770947888942760378562784996368166594706092664272978554161638440979894351785709697769366000464077669079496710921244119240537886751270425687665725155651710957536073161847094985637963453166972151122334721452290441094715092948839782325368018720405261973722854327896700959340713173055039469368496446343666853469041942322163212191059475284687652370143419767285785493937040056172609626805215965071508076895224686438911177273023466276181732033059628943294798143134880624892287063907386318797881872954790021072205502020177723076236802113041169190867843454526502194660242742988779599912819879442043739977587566837415636244022538792186793940602265798827183402681545626008535313145368724319113019607484564890803730364520768579753711423617175288768097974641112416866909874189937372415795744171275689843517175869991591905193301607876715235396013850210236313679766828090030320790601859847857260162404010001418692330975245526131076120185263091437131072413433367163976998924990677674505681374091378174645841544241788586811385322078462399576803604430902004060446824418820126151406841347336323144361933731661830274614196157311304775459677968551802724310995121687837091786800240338240293219558569362005743193541153654502379313041425103730793818358447899864553442850720442503924568606396051127812679614618913948819434133481676832563875725017230887289598040947445200471126435846379754400685614805199662872438874541813376799675767975375056733295286692628404601387592595161236951914728515185379105236271290292839679180926535162597352307691527020845178455346894449202882809045819410305283452576013025328215077197549738100644406610596759309595684187726668626511227650924008450358442878347379232152881012716310678329382889625507338084724679454063186731066875546212966370588804900415088547384610521976699509422743554969290924936120709942992712683041981330925245287313804323623672382501702194431953665273701395426411009680707556813911344449096977224113331244479462550904521562598525832739433414204081799580332793751109006293754682955134060618909272867798113263457507337850736113971924174593182416885705167590897176925826088079988259252227621175334037372224460419143550892042533589444067896413403132772181332653085722085147553325675162368631189051148949008651980251795131327564957644917959082790129210079230934679626036706318929129665549699753896260152837890229071410506718801578843329695957309024720893355739556527546365776493598332711351580115318685235807466847004135493012749255901779489685466160832991432937481118569349851509297420131623634189625662314495665419826435966839987081988915557410279073781052409676498244409864976649679599049400640706071479536342039321256973587595381519635842556137000443284682161328954279965176623212823144378731504403835482481454322283952381425690660942029178909864050967552936769475128487408444104595895546516925137958401539160786895909976016591265986334068527487152229102932918615029805633113946328450993915770638887385801977212570193419561054910025165405118501540921586111293383049582575651318721099882309286551752040900277901564299312318425563066909188705198505832836929154402837058504412471033177306313949161469139830832727200174223365425516667245209659204105622029372613857621845628985762767339474770327976474378381984488926449747018562597271474546035904648672046823987797628064456020651400907622619171215811471423400242573758244371091766999617661939078212564474607851459009216563490059738021409228208962613452104385843916939648892224694668911225314881721923507868553293545747159961703504910012142677645343791738196979869961948075944215748198494584569011069824730217868041500732385148044734246131728392965718188423958595743959759024016517336020889108776305075782028461591642895332579556481669557093101761972023715510586831809040791204538944612837846253689932829101634435460587587435812375505886265830552139845565401641917814204028955083669212452010761512187096083078386038318953041205287994664743488054998807309706400178925606059201864860374875117020754653161617344050726517933426275094850230408284242428974843317749127110705380024654467314118039765805697484148085258836564688430073764209564203620429259623977717724344750225876686025741770603542003698148153061501466000565843180215737105162143417367908784189258822239904830908377493061750911982422448732024172716361066199744986411197252029443014403288230125940668905850158102342439542992302994776312120734635803827378201915427393228960641642059258325045946540169551663777568403344353486818751840347592999770892650371930114979593369354153641014543567618420048554906292452537353902911603679531012259589215940571454434023341696705230955187502089935635562750394289990167905242171724630342783510983110680497597207532719979995395392045885917973757219064690936143918169390401575586310319523918739286535749868916300272998122039609931448220470982978982418165872222986910932941406733808595358978782377159290390333307569880987693546463103864594034353711952156989752287646494135932652419480622364587168108815805198158766920608643733239491446487643741620028589157312728060653740030992743870221353477313107756007249391592314581601143477894551513483074757490095537945256388338550450204464712955975979444227658211466978557196865376309031073058341948541444694478006640199858643459932952230143913772370621142249468938531996830028804329742533135394429709046290133940063108633116288759016605906910564805225171441377432946425300384371732369250113851782809117277548174167690104553536626839869267889648623368862216355245799832537962754865546222250042724438554877171656848869964790561373660943338120350000616032468803154244474732524591298927942103242768000723905885846246140655878315919824204463765044580034714232492125186243162123167034231262556782824899156340727569558937680486872620437039901657591735188179455048332435039163785519661982025593375689136005062640121936660193887224343304928818523189487312991195074931259962486851237820747375353719944373887416572687387070169172473493120045741516721025650813259776742845000457213027204366370747813212012401506608200280856725718761043472662816255163517080261590657654290373977572147567368391295537091894444120344729456257551580952170990441484055057799449361783032863931021689316902414295502189177182779440322377264528309841217961775158846932802224954381288878473556214760513327523954117637039003755670618243581468358906235787688272118560285165558616139108900376881821706499018044467920953528019197602671836304841887181277938274898388156163916884240335976146875985527893161424693809342375181350416187985514858581093336034690816078943830169201378792454577154344161444543017301939043926053764029302091193044025281707374874759021758235310445086276829006715951292791957682754068997218972214918596636182086950747192906048044066787805267911710864097900017204418387506139555387972548769537893887490974060252187419785052934405049439389831129193807297519689734973208202083930377792975941584010787066527167583973515155412929965275436866649464047564054836198413278548490282650782992990198059195055375119225253891805007732522048235776565839134185187044081830729787104795859161927590360850067749214816448844148045822045716927227032889112110926381535008228604822300970128382225556108328440328252676727485388360308077747024199257827741879682265212987310440021451944192751976926760765603213350972300471881569743509576392169065824351192529078556078224239899491673992024343742527329551533269854685423756373244147422366129175091616127451645550151958636654187501057200662848555046309586926938087126699295133947203218252420567337853709365664848114541656377188201231402916156570954305552838115539326355828704200158990378434182985966698626788459670969792700472608616421532338345154220406742483220070152913208890277907425605409210886575168614987173174888897022411642536434328826761471201171763404385129081679199376614258649363077490879580684516701663329550282231579445373867553410230181283507699824986775932409715713320106500501139835541671772037028984595845864602232867952434424427051633987386414120061631625574866376068510905327506018251111697159769239049250707054218100190969663035121769048538996602118619825960034021328810530101162969843977132612608513585284225543322642447302685389063668706571204178297791290046730357846097586558336440259075459580502263854444733499887277144187680235804606598484175538495724294066823601728041797093947680154286837856294433628749974534475331967220575473707466798103248710165142679964743497240859460909391855518454487668215975322567602604185450051218604114818450862493485472220667679538375315266167681983977806505875926015390047485683385467536607061589186704298507587489822504202427604125719622371814241304935079956707399836737840310830637334569065464239906409051308955849316467725693038924219807367100422323743744454517273161525156216465216655017743823592555621698364841525690614343755074493080802802603922769139558114278757020105684041090863988208399792801176883679985626631905631565667515156805883228854084075870477989013254238491407472307438796238887547341223991931760697594694813160373299941164714866010787045877983873490169122116485824580910317009468935081190962047051685697566540905377544308326831527288512901398618528669414342830996635488177240247809193774945265519978032013050136639006805611140169389205290437182189495642845211448342113794406142077898143648214615609156567801115412476234433562749353925095566772531384489885426507919706079460591929587573638988689316010341723132339923365049495644865608057751867396451106122524153807564978396596499926362925883209495950162547388542006706598607967673899030045698785238410167158273206196591389947372235149476209852127903152819834625397916024584579239236459571243906565565881661867452132661859688893249486214826515224097747451326236885320828930707098292826343620405327400794162983684042514113739197936135282978736123108811198387837147098910754160527910482847566611548348471171791359605100977605676212257141106148415034654916615768351234149117590228134518846177417522073670953670739804785994737387414621719664202144407542154096282392203976407110048645245082549488721839179510979134093994292661900812194504285389898039472497441797166064292460724220180926279234395085753245676354059904784411864974827859163837268384439615716755111497975271897529389301657014252272606060063069763917970846597545605459803455946501519984823423260776405443634769343064942458965248556920826697993743522112368960675077694464514422015035304187242625177103807989704338417649250591099548771934385629208767446221857351299761240007097870432364290432141729000374111047006556675668269339072514178615832524812689423861672054323626676530717118949155869405035286884879485969300919189584205757184155613879434682200862495890661156957696296992723797199236564647725557934269131478194161587783749807712844901383443241334269666880904447580750456522380588652636223916679755002038634713391672783523704912411807556493951881187883294243273019370768180604261909237027459038046030607876657552440231593979678126039449735745474318512866024907860811750422628230678298159617052440755848602674425525190477119514529757716959410751400207492273077549382129939147292892409523400210426418875048654510489816842615042304202122273325000862154020345391047988657049330863178878066579670034248593253886563042923495203974851078561813754170565118746073132516409531687749932938801549327260004271681860720928677633613945053114060041886808732887370740929553010686341544611601449884466266321617104074088978441539457411646627315632388755283737507081593307620397786792265881575157430557680796234119248011879696588972452264079194868242387237415304371170688483576483572151488590173573245402766000351116383747944256234814345988296201242953680088932482882684731003633652482820857338981434430513423851915377145800723449810548566005891453584373440865885900029023935071828438673050521973380600726132816805912123893190019396941035193687879011420416253071202791661362076621043521760088319789123770001425695804298948151916724813049483343146156337900397256466739066555224308354032714431278007840773723297240252273736130048805816038554818824095877942684770390169483316548628334524121916949273574911220616484863977813488714354084863380482345570201318183700118285979032892857338889392770487279730741682142502310339120726766603501176280074864001255842140420796269420104132607513480777801779286187864419503668159408703539898927229139331860519447905278976855274337731315376676597929008959268010153895367285832046454854135750924922494464805697813227929109702748674835522628095671339116686216187703230478637803419218385737737379268828475931851073877344423789942829862538278041895566090660706065273688206511775786348301613263480053695461781394018451357458408735581325396377470566600576907790342017066244398560265791496092039079897042693657857090451747417320488046565359631676610944082167981913467826686209409367842398308134744377111422609726625275903113174428139615302888818670537629094622830402867120929084596399955728867895272437778620308806454396182348686023792909924156434440386403480695550595300841974215167878195481962565012903098520929321515296476132506307848059455026074346539035585259828263767269542351170373807511432092490977610908979364619298066328787180147809208374338188010398395923962835742873424985647095115014872497327433302146950442027711064637064648136335317476828055714181203865657053056914314095545192508520382855415115967594000824142105576813196743427313449381500893056154211848212965935604913743448547324630717029290832617064939698249668491360644351220692469208133588836827707215859304455345167135718822371034933065118618868579774987721430885449429473488719325375159736864632985452769522319150239481179219219137033719400141471751564321640294417443016191018606058717805386208746507769427110598101722488026795562538248783019602064672175276001921777277545653818871593442588346392189055594294518347828082227835884391884519602342331183041418754059435065165011200672543642239279382547422296982624459955582456000546331480742317659193717572810417072251451385010407767831081615523775325794059844176586222786539747074219584552928357309056654653221795371801954089430766500427524257674772669241588587224740531658438561343168953500130970062550511355436889820574622573196949011714761200579405938586680307762812271783269493937560407883662908283235733391427559523836112157147326136582444934302170844519862043828693530634008263582761064147985669708112086470497764378711603032375540902745876492474875749232021985253090342017124676908577974657384532939186503259168555745520409012689240665994295659800724758958800831731777748082813669669353617884564695342771073139977338538549240441803432938022375675890446544408566767805482512371600652487449044342380980843777802763791893225819574985200531446148666238667227942281464225142179110959975769181667325797262024820117365268315090163644891023105645843261658421822340576050114256599856978334103359696880366642467001891843050442117743450552094917200826607586808951531742322469058824305493474644826012997194605867705683869555458093829438724782790073157988895993268618432313026164931614985529528497715717750809201843445437366505107159491944367223150231672213388861413663043330163024735585998761579833630172849256122719747421979700999646501823702090992134102411626668518309314389182499227422859589816851474584613159311848380394202877275267011700806999370340078304442744892806643572591205622738128411013612646859259225251072525090005711787288792781060741853052726976632667326774803668211212250471739231776016124904625251148964913384325459884398180605728704043799907607420727542255362258143435071696851100928423285927307972115419069189071941803255686545327852861634546263334120264745502229882530094770052321725667690266076321905430767350839615579168998242262327895028779351743476600024345194334441270405114451942388078670794474110169870781141923403275602871370317780163094102178890891171934018039186531441285835823278886121561222601808879616607224719454527791727128546276684651573567239373876292780837238483014908057984952812637874762453961895560174919184673424116892807336852380254090771795392965966972041223541798934290629419697658726361271458800695648677983384294175599125182662494289477074140841213038679906513629815226536193834091725669730081952196800017340331138367280167882859090973286757204362916923949518318500549213085160180279901839635765409039470109986990145076464329032277444321153172440770995962245546120974060632507192025374627655739845864323852587521579559112517849317034279850305145043293844128918922470215043383997934983947081052951838850281976068116556259535119254156442164022913639357775438008441781360486477553789080709772277221592248441062134627980868985082237533280483362261650154921375666566883918273295789134708841997676179294129994929513676659024470977054775395808202356825418370779283656100005704219570824255802551166427650025946323115983877064964701548292770155008986454771026124897348782342107507487239658389914978618942115116176814208275480923630653273863043047678752875392587258573713332451482112084949299006265045438038703155355499181524320655539810042184604184538053187811970131318095422153432548917567297585403473983993561948996784604190209700761518872603353484002383355439092990985013396607995147010261688051254317319529476844590625421567162747762915543828940642929603422542436369474912425118445787047667155069864481205417784037652828128562122089268499602834011233470183058566623666098588362762038753901816579377576569445786840901682301906154441205979742129433304817728226592943789781531636281470723954600495234451949313876720302982600744944345544427221802312429030868850480485653630134577048192796011901230340576829758650185183177458218062452409142967942139349651651450626482115012658170160520919339422341373489200934471717647404971420725021892407927173118490031205120723513665286874453202405613366645471742782656811666187819801056209884584806546135691009876152716473735659398798895950411514480979165535506130268819400477879974625424345040017580476789659170203237130026904745301114159393287349569331214412050170251578075310916610368757238700649658230554907005083467188743713572083118884486182685972590324238614694316784056461965775138135986313990581518296725756625329221567520156123381459915473936057929567164813813200697228833031103947509127045554194473559183750847112073712784964866040548461428543674952330911619804571317868799283846172485782866712486559547807480864686599569935093674257513609576703198841828123753565880747282266967457098776210870133968023123536546473583422103880407715725189727707910803992035577061413503985037055580996908032170284228782773034868954885566874969608583512172512236474017706565549139039636302202988088770016029477354965665572796800326991086057484812429709950480885446267910824853915948567297443405511073254296415050452681284356667293805848752205007591308851984226920968936007901381513904095095364540227933214452834019693591606898233132570083868256218535178417463836862564157773326221514366665968939975329814813715162358832889111907324879706084202932233797779868227590404933889680041588140617504600626435995229526091143629642252538851458546603233263205495426052434679543625262917702226031998080702046028330858170092901822090277269075123588700794927059281162277697434852412068973444262339425212343500453230081904982954740113600800253897649346580691161024582706345960390617727220376645596697735018087050681917170349221422150114179886424877102534107056606854963412722210726060607402116210434156292812187184751217000058859474334052399478931066079658265249867267783179363341202219222415088425006876936683653641528450439380598294376966900950006771595664666529167800861071240740679093266474461371549311962917140628439772671739371703620342870803211636494370154830687002122039358638562291415065937949831159011561529668196924172341922522002419601360462969032179619027421065432700114219159611272183891476518250703683010890807361709521568233777846358122089048228539104011371023377756777603778063014348080143771619445459583014346831185557421086907039740256174172826290669404647348193159109053931253823919695031615840169318317978872025276402768379700788618056894095536250408851822992795424761538336472780761426608967921982246696850768158977293488891625662088104970563181474022329536408939660743184021472051234612679861716135536950424487420712526118845257750496900116622197540521480940054899878433115406984170146466872589145089709659608330247477175506375494656238650628873435633705528590245394018241384225833673152144041718720945054838351725577843222710283200484094044453991383881323850364051552264925495607329680859439206323961060155944945137726393135547244942148958743959459572336427673917339539915522527835700911932576346768762616109660304080032787115538742191067846058194165676680952337506259055326524061594364367132867289141290679003985433511759232708671904706304382638859572648703514684564589895715002448863448252595027741885080886486317040827012218531664018777582384286023978490255089646294499285295294319419131997293734405841842932937406552526753009467944856548719217120908390025418012731459657873726059416489103217459457846585384368679359854758820187996289436626185245083480401473752047377794168783891153072014321339282730999653782664732527911017841954403137801342312257555329140831646064817882071207013741078082042213157962894750785896511502034741042445007999679834362294364584514181848897777990376092040889327405347457866786031606874941558084474603544970869077209492498809511874737153865131466457094030121068740168570895725839078204545369579366639683572898786341742558736390956540555644860671746008225418917538683732793766520306892129724716922588948022197315054970318476055538130020254641133630663963742814548970468184981795807925976341688097529916633191399638253660632419709355350430844887432975504328609098360756529199924455022375372748870213498086622032290673535474070180085533486884760677318829895581352978889515216746588375173539201411851831918576180531194736764938802213822569136259919179267876590281275966873649873429331931243688870582286882516185005654000086236412439562039608483572897494313566462717196646240492339830756513118743978216333841258460655512937979217120837598357952339196106468714418701127530941704239826351201652922531680353729824396004116610739652174274084085926317963506237102543720430640484808562334937922238481013653934346384644133797608881809500674885413780336056017450110168005943134985364469552710650817263635312029322884337000885783154515499252428338954665254349841972341141860121043954280579874495733407901046728095984482564707507604411298359123029716914960956278379433518115416570479941587752340444271452600759896782917042557054249747958419590584186313514660008864266937071654179364285893192817770700540182408085876681505442354886667082272699286944851453602804276707772530631996480556091783479075053012658325607513076949524246237561017915732570166676195712261296673515057302384782776581299182952746051859554503450969357510637970380758335253879704623667865410209008207654793307948429067084932758359190213569048829932760529581159481002565212156356637872490118953826229777575699874003685799496224077419001613515704674957644681051034721687725171856200169291373622407569407637920209997119844419184741336839561575275505930117647004181075483417896212824010268580219430425687323976698732907661074657582859711851169429447917002503102543859353495899069701057771723540080528039245289356515230061950773817958270624593391126718244722018630897225499549585230725328807644071349636071175868195547410210770458260793943206495077174426401934174939955995850100898186291285903443506458640947576606777715413200501116922883208617116064456951583605258686176934294873355899521117493920843423962445260661946633247434128132911440518586633069189941984466179419274696081862985567873766870118838792209234583944708794609743183523867750375865495262974473818317758159301332649093115511441629127468883642692190639616327044254643021944269324782726906681628323535202139329098434887447570477614017669073781684063942665752781332896953532357554242626041838703231414445329681766304420452128408720914956700216885701041519723360310266279831290792530522768215745662630351474563292607526070998537888052908856294146560181817234597205533557414981135626478170117748568361083613171171749497265308882132171862620481853283244878417785787497253430951612343969335434052800912604418796691287593180582488234031102746507084167933469636930884385166051516846223732012674539025526897016183849630586242505171171475226614823411422017765651910252261158197215143435148637597034021642941777211549986310276055133221494136535232277290953339612204305091497718894773798291402170683771995842751940399357921764706988002147927643507974639772336478542804534752987061103953018812708867557146133154166388840590869342265155990238693337629006976662039009849343549660174704574771706306088276167673379038739680720028460081657993881251440550618681301564720636737315567837254481794377874513540139462074573936346765918442592534110175873590339542402970251810625185507593110399713478009079080188698824481279716518092780490750109734911067127176771053271193944239381193033705958761924428948339102939181578236689815715027073471773831556522645433596111908341330930454642946007338850905563559179866471880638648082731193646409024364095662530138387719350065667295619255546880638722969472199814812932652409494083191114041691354404660157477565033254665247991101868227680732071939030433722515287940655264232323923615988125486360078680760616020673288824301173941202470368727109690959594462708993531582927311823607851098489782763542539747666089505222398558397102263315031410954385525955727957935249091907971491805386371458195921900496648557300285266109406350361815955219613813755608786468004151935360902526560179214430513813680371161316617843655337499656999400730415235643564159154630103427680710641754259827308334624870614632452515955770527236185891680604791358039759428488683744264996892217911268142333136029197408584063035105780975720553668033148161601074482283903698437289456077851183412653973812345677574887412941167687842530541270468734028091469916171847776469721029610922602624730694579044467375807055652076785583831399549374406065999137782865243435766187420473670926388692644635443629541617531150941453307581049871557117538775703251386182989250687624607104530512590867446399584333635793108550539285471214355960412086638994318968569850670105134128792217116168981581809414666212259349110263210084734836221826693938578358472835787779552850766315891351941353875418591761829412023765157180281117136318465749133450617708335516902627875825625331805789584288899959853268588205273914808412038332967709639615218243506815431595128351364579728414618597323352416274435363515417436465131595749976656537291682335797601828252448653403369555996066210482132019346063814479208724802596770325621376175036714170837122526543037728921121257526183454493484279635695793648979521251347565222802306088498823197887587711607971731098899198301837309570104155819584970644565687461976872732339456991496760485613855926512675167469987516231126637023094096205189842441940042735955320749835191719116700936230860727599075710957410959236442339117919121028041676159661712906917811120992558412431154477106424840679878498505306044752169353445775968525545734224379939414674825144844075950966440045147002130098449315218435680437990393990482374128244256918873761046491139030649592497172769159192608884853814326837415156997371352167592492756772548570585061388683345052653658443607048395407766561255476953268776753030331922840815982044464149265618174111282725275765672116584617287038116209561076219646786007857052649802379055578917727057818564677673727232008891905518548836061163227933032457760549480136559491082920457602090660849281276958012471165798377774975090398803094001768528016407227105370423690297504522779054966912123133081016118898491288210706168580618140470726846148222677787568833695062035694797849107845776725264433661039775034227458271440564243805872133212573592631935136096605228815681885602473257222701165157734907659476756113925627548950627284142266282044649360158130973532743120783149891670895798526732545771444163340029901581960816021696026803263644875059627707075815705565031447249024720203234747561838889681121697025193021784915157928235337204229910134644895775236560644829796378754051770702546096380499648024354111026286388030576609433753979299897171472421362257403859180543765587988760632216119602398307310607889263425551911152856332737253084413395135496019929519898319164416819869583109279005295281359778359221735495646802109360045080952556115627121448735132289360238547051948335980273131127031426894259149881292478122948518713258845453190734424689914823491259892076877400049696790688531238242809072078888416496490925743651955840042558303099842567305299166238685966282074663872477857511808374226365722159181123635455316207492822574653480377074906829115645477818716648865943354274971810918800914212626907255864131676688124683208306574486024234533546119837058287731484949564052000228202360738094226833880802503417019253081585078114818445507121023180607126912718122893007734859858276918337148474457093803811724271598161641981867877323085880754163644602946796738559040558585221885382313881236748313461258774900352982823328788642116844753695917000667920684334090750392943359756469477616241687476792299896077481267643278817979492646101835858431715483402591604022186007382649058984658940064045168598303402769018786812415988572369471674986454887032774172855987330513004427982990649847620070997820611635960911708166114054801699506976281055754353874169458859159617284618763451576362227628145669675903363410677640215097443700913992242713337180352282808735546587674208416524853839087984995827882544633303908845691914894041243905994412028915713549933815582677329637503344432719270290875524458675182094244632187092734674929237809748019208942744499321308772019298940142026258215542357338107349190840995649100583501503202975436781390758236282991050491291461330873238745206918767233321167012362181710295750082684469745652521395314661666485078639037837253814298084070336102078935958981871155998900219573841722011389541446404407320207906860089431743596219423892051335995186140690607085470345884935976958816910990155427110409401340561421623284978338508332152352629353992302932171637048409656473870195194097761242090996471383505090089096338913219839223685687845755248077378738224162058978914478717363471165379657825828042665083384448495597058406135953496584949698749341517809390878867166036186267665013625769636411893146053396875731750222768412374423730518065404419587820221896710175149100414778593885285918837705887667787115867300494773268222917499740753663326018265604294971262592930557850860176368281531351285163686306002703513300674562799787462894326216787396215050339144193408396603058191388174749516040398727059005541730538722900996618292885945830209056945107136319109623804966461828492198758848832829096789301751847134136753259245777386643249559708800907502510892288053924236745811364793434958324536035951862999073829399040509392402540739377081695615127383038285478448388645109011340148821175796000610447991992589629073132768386197443979983212663886743565862218036298165659686700285010169385579138496508288020856888565832977011766562775779677510636569116143228360158299321144056577717532023075231053592634122632484099511391695918019533157042682795557355323117798404333279675389568794486491726722275195785292724150847024667848163840393133590450763883148226785339040132079093390410042052574223579039625305819174860434086848474903600899592228403553197129987974250323159041231270109883853958378456259758292654176227541492193391062098236019779273193311993902629083901948834668154090512275642980371536920018558623140395578223977260642611506947380796005461806967654832390083091940153630404517173459089206561556389597780304302406206876902194248916924500649884526108041085076896120180516234948048866144372519876171422315628573256860999218532474588765750546282619942599419101607349170404809874733582565676441844404170346444515578956953685889615247022471234433839913568062383833086618571639748210733403339410614387900484578022797838482409488887840103912672272019949153266591028822101072089081637644911262006949267954836606898108726978157105440288357991186685708896403009204331616617486108908907171277199037181420151411314494780994706851727875011337004837227074989327960626989116085955167302076620370406127124812405790765438013571436584370439412463457172191983335494829196422634060498367979201609546050180960813344410652527594464206388890762427649484320345004158068973570924347188309768423315084638812739616145138938390336791383954964377549028976289781692808928661115392429586446885862597541620346318055731019280498955412347232860755241654303634006600875383188551327654426763510761044674334145859628050649558517070438472837799113546830700839372430613452515287078163067550605851588856174389007365426988384059683562734658403506351385826775913698933084786025863184176211557818990332062919834386582310063880412251531036281764167312294920158759927295038358879731920090385337242983712437249276074490571044868247244738861994231713394323350817295550636077585708700348181861030164123270647703888405800361712946546227286349773523683038424185083673977788800764135337098163580513083446808589071170664317096359143562416509943064339510662661292826274826814619362593241496641948808666809014069694724021827561220687969262092875268315505150484915447247488628721610976755653631053911702584291348024256225410432703551490407324600021771472080690856874215023641611866297875508061192379574855539028266908352690781160866364308339158097436678420593190458574913460006265008927613506215660430768304385148931599393722692213379275223525733645801328543151730003395096198143864795917920382557788892043228216708638842109637009234028455297261395457551053071240399332975444068114160033424876313739463759731596155696691585248968065411459562645146223563284978182008105261632791046358409055601435993494856008830942028057889595643318503859904672455770799672925957948621825505075014508890522704520480069537591954983225296303540386604699290387279896634149902472262550958288190474158131833365929525123350962885266479289143413883964016902372827436015793797243200786840847056134275489689741919275098242970237824427721809744307934651960748297424880470666077451825835691582989087421269491980094976494029221722493883700283371258947294017597090744926706079142081154323924994983964349536011254668904200950913993057365848021548770578323022401571119256236478362551381210956349806878816741252268913784722298903789544754365095647397238572627036609507393038885669383949747129548374119595619883498307374809409124096383672810750856114498206215925668533787951716608520968285015907665160051141954570094175111490259128465505941693122638274791927936560578985491953068091194346028612606580414705566945674562102552109101366805575491378432740979918485651246065084563610079210533654679099496835658843468146636936437481423884287976564684505786830804346525980086205998651163107405127883551943609036896537245236378357565345234037856963059252937346809921136022596216698597860915961383667997993994410261930993453747633678106155148756865441368729895720240659994373313492624964328681999244309174695031548702002007340727780928455973818628744520521411170539115245921577402555799449347249239291282094177723845527169737055030228355576697178850294291444900015433132889279227909077109712620637343752637920974815171930672543372702323964053443093698683123612601414222458046702490379876595126183393059498338952632424152718135121038984731520841024973377361269717090262959895679078249036697319397545408351089996583445463399616211100639434328458903336214716697094303468527031011974647158689955162261541217864334192985918010283762072689741667856138037245222277077345749929530282998482671448378723288185090445771468065145091901145342782075246364708613988368944566979567978801778695870916434075223829647536418324864525041857538481878420653395253788426262474354217464472241200227470743935765088532680617220901536803789805006861726130547288860295481361669956899058869067323311621658150132422754165594916824731916796939433522696999809741333901443701682731141671257472475127408906311745760790595514192311360139288935847361749532309822760288704391505652641960319870006655385410164909821000081316669269536403318103475654353867563398264039873300692673371134955541014916101145695653744022266447719357526506341359583914076910960741370365076268326052387640514432191056034754829296285995130830760925160795195053060972083236801107468760394998749379304738071014419408957706982119821563495298500455032637998821178235672770297821078050257155728566486660909234354369673103002641702026109554362958673347019563137314756668633645866116614953479412306661602439618383493987680330302133555656381922074073673930628199155509692043929671474023298020433399570712810350355246094036038873031679839371518900078694720034980073747773703394174976153538797933749271892999887049736746480537485441148543997912362320610921110345149740688171547451259044631691284577303198503236591326240593573746402004463055196490298607766305904242224013581062069265877373185573814352529470882204437976784508362785554451233048831356120118724987885146257416009976002867523091038099838641981009170275808113401150253064581870209473591916894069969336311490712709144605111557231203418108600468901270239227028548997871695082907539679145179641739391669087006095864574587429691783735356559795772188822418164796872645993580360954885084144994960204534850682139206507199609689811303509933932330320572208047609480127202743708478947260564021974446502119708699483881952544687674175764378024241960805556913488373938399593035711227062571746110529912306719051634476018324116881281082869622283726570199048677663746699272011448645062777390241323799396986232413894898184270165096243871458931460491965315049562128345158013807353134906418029504233720901616180777687905270924710077690653792863280187680018867867885369745890613533257240000409602665044209242925461977474393106626093648601052285156076424642534098262919764236639986463079613978543355778742803738759742429638791749011772314504015060228932215764712507557802332413223874162839701713174963731865772780748237380647003457823697848894941724731641656535241540847304578193552942856574503806652716983763320596499397507863867092363347298302123665041544981547421072291228152737295013422639398608137448828201803163190857753541905035322741696689672372397404347282835910729212574515543623264151020744046233418666261939924914378925500331128047998789997729145955019551273011851919030041729177228687973897397676498163965968896852647720454844115202779863931271551135481731533438023712511273976737594119075681213552981154420888540791545958427337179257719149916740677198256007927903757704253517622567312511210592692989927629157898625029080278554967625609534454065877122482086138614387508954954721539112008946628042255916889083649424222997173291532352063615763243320700174032695231524504966121635586523051497822667049445831697696011311669529689282083712860016968039316027963677376229821494749921350440470656632712501259689282625384463876921909076704458497208643983090988072452697308291785755165821996476487778229604426138136138236648393748770627388326306067325573017495613178138366547670914835223963566470522672998002341772769499839443158398607038947389789885098571414649063593588528790698450191209690821786380873047660703891293533640540180035472631303461860575944763417561323172689755736580102711590466716577779151959870585289697368543956565728847874518716493337866666701393313258046614786389788764073564791953154060299475230114344944412706888855843881228996836770451607158466870458291358435807838353992642568703841603579539746689174507109230767794812376869505317597403071343129901012283252690909560208142183760351502720658638739724925548967937837209892973857728931205767434548910870695006988734429816764790866133678151224510820975617293710960144469953755278940922382953106354941712375264789545636886387078451911524316057504446976120288381654805123914135642812939544583563077559821671524815344754267763379495899780438458502876994874060708108971540193923732175807774605958978588377999984521892205915975058747114657769047481662822263646492073866908773612678223829022318351182273953038257140216954438968979743608398047621020845899884750904595435807963212775465811953723979416192706319294233915309116709326108409951644121007697706974347377500641992719382069514131937930682854254904478793692973957290338230961411540094563757563636074418757499081801850336174042989085110971044711367483408075886049343066308773129374680350052621485547744677570744614441640432966257826909346886507303173481692388348128665111571090656099750578190646760516372767264895486511152937718963830802651014397092476684011288266756763595351564686955704148512977791242472870802015092744366639349682524143731782231682740365480946975091367121604765865737071393294360273599668132431136745199190787947889829210425753201804151440397562141761039451109105613712083865845330138390065335408460596578890368055612775532734719102803446529862414300589344667397853815088936846438419681807121570381782671120900785351915733195497169692630084337276516441362509559503921911121982597087082437422982542834286093862828327923392235271529445389252059736864417785358680018529454048245350643703279256118065011066832530981911239274660602133437693400379460948428269447164536775472184778881698726725386511309862243042593149875017954100775228501352398613660451893024533740919597523621435400888064788645357623739464475037781000947232106381205128148452104039959349239826610775703183530589853333614838358734251682933602233301848652648222154800412382706673141611157758038020505344526519035683039250303567423903863632295254513644632627324701416700978987428654465670616730772576840850992006653191061350390993198950989270939759388154582381003974060020064335186418324189247474251723883170958226022778227019665047286437001644609067950219119015576511206926561276632866592393995709323722327731906576960183297313359720729536862439878317828225916770461744292456146884067286302805616761102969127703150724480509477113398281451819005439643800743719795172975865644899667329456467417939685003183977824056898217717790331329328623751584634677770053685554389370052397662383143160891602942419334425916036212570126221983376499393575228571066734383903098780962160646740838959066404888727381448068934263801136066505291298431645123527272349563006819057282608033690532027125266322928038490337040452734498566177325202920055191830711217490727426635185942882831627995296902007953106254698546392268896187152287853983665998775118006184000805858361351958190670709565924198560985342694314634392623736153498600449800190518596406015937750672838448507432713188832859616318391026741671018854376144689675195949847567195862941747582895912923270203088405151240449025285837968041041751583752083939749393882400015710349934884653445871633576068207133971065465868582416539816424456839403731318834622369448495046156919538466881505038794734704970170210493506776840285978915642020993225075371566725228577965804087931515321104310291916909964307242550922458504694545055034592808849503141799101119383978859080281244624605803839811835137064347331453199741909449151295879716574755806953604811009025389078369964022627192811295727133089196774678492402683467921658571501866548103303166480097581940758257907910051633146128609577040096637913611640339963045605344184901387958716261859413401505908208718796839316293233954908320456236518285054845560920011919857007551880369370634103037820001187991776228396775630090358294649397917773087088663741488159010283677874977901212563777003046914799973239951982903031885967413869254868773657925551830642598519151199012317765884370640017339329277203549924269929244771067516274620659052736212205506332168767024445926825294947686846397872762346535696627180974186684216705855413532737790624357679982088415910368807676227767152042023642807780075090168162653662170983288827820057669769845466140231315334052823101441418449067008765761986064667587731846394945182969275414517824970474883874248913382602575762661587744169759119871732477237260385079560895656193782784473988697315946323445065608821697957255535024964802390827005259566225042348965310384089808128114454939006633356499758252816378819538178869582431098523376512964426376721109544315528565965920175011435282493477646670048607856608102036989334139621756789675327860533186657949904832992261026760912611843343154284237688312687104675640992188437159103778541935186349850812029994661907857238889145908006024699259340916307213258000223505064736322888103072609192271962156271316102265465001406140227579382242553732731786067223846614086343536963532333048606805040187302303024553138705306060410819383425089084340218204573381265578161203739955086835881223525938604660298071161029029805630612597518294187553615055789175289940098166141355561471807346032886396739288500345001102053518604888572523973302957801644803506204827938265228173516492545578148969969086654873078970161484039890043431028547696189209817535402089766584827221827603719246918833295718962113063928024552420400058798495962114200398736607814713864816803866090210431497881986253301879158136436364061107346598108027624210212107525228600687785727689503772118303681060842292471051771790002327082599202927377634509008697672684718571279531553597900165833607220644588483656502741302193612835708345546661767941062227361878221426368074499310738230730767089174932976512373117805729578954179822190854990024178256607443556145495145270585636968357248128207691329785149791280532648052479378249529716732878194066555928773774813997457848237777718279285898927821123435179719712596675473706430588525566656734092617390592389823593858484506090660922472219820483148745123512080387899705609653616574645170674683391887932630656660737694514871355751245373964913618484539520113603492652635882997185299065594185580053349652399574924392152613664045020617842624558883142298604126704464756953107340281204448428795052113858246633231574372476914043648484145305407517323497966770198808557344598014804865154240014140073028975971883316025834383636125056082091696875471468476077581122223072666164801096958251451564138823943725283602938267376811640141632167549663314403881093159405137765390997261849936803380266720218487086669948433344287244008052099222168915686096178378479188235527711630769064000589239130862566583508074205089636303753279252106121072531400588080347716483548331632972086746633633662131586310110392329258117652656073696169766031524092702950591262741916120753271346677053392633203366269183252745073586053593958524694734257763555358130094414286231421140061573653848531860743376084621424564284926939029986561419418911402692274877791362890130821520605245238539414665814431051441101851221714419780355224448855011972824853667778940774113150175668142039870723774508753329619116908855110913656587238461672209483772381138627533890990297623868876733007657827912700449891737265714970958446791283268737659490530564884613982619535279216565300812456802831923035717028654688368252520185888922226294369501924006588687285093941249199672363819858862902810677271475117057688121285177294520521833734702698691789622016598079650903137428933404430934874066186389674620778533854300172942441969152618438971941635072238221859019165342286669521584557947479361222541649643093244585005481865112927554063551972246091610703407577249638367851334523045102290300742793017808147465378618186445738014367099438406395385136251731713729932059868553138550124705366052761510158551550687653949834721810512996772973817900325919694896248558213743517452486383183085833290365592215250428384845989189585461878284329683482894528539469623024030313207912336967017033063234751318070274523915449155167648656014458032618557105036330813625081784551850086286129033040790983812489871263958563885074693603536750677652912383534631468564557670237531900059620529480801702060132227726162360481955086697016955751923055286126610961632970025769665005520921178506470373077594880062676991405154248151098498678792672837312081258139563041629302184417873642589100081006093009711681864823528339296291302175906424063506334583724580832356930687675539348169048711942814335767187195697681641166194326572244004658064730858713841685582885846961731166255360853049616026445462923532367411010769291113892770472677323377222598734558126547411786104641383244224441250643245260872681111246205750996104913997701846077327919386024974356179042072374918516705769247954613599372205880789903046201911612338332984165322305368977747241006197312032056093845586517995071124276279155306967857153228749215825147709520732520464395732881884058153650100649751241387730114602194411509613654691524630372821873348823519308217571101889276381887671371452268781717300228762324779420019410970591440758080835911766651484743575438374991582936511884162344492601491505509348922914628922858375698516257966796884555909813434018038726265989384416466713645765554704032111672678450692466603838698747282982634368959422832366774619655260565702330323012819313839519814111445778269922846726305812061699486289841218451064544972278375332794459348979556142665684764109601061976757631925685199798893585554384629078536181587126145921288382286808263884042506450543939540132337438955455472408214500209033327209250024328053287745474510784905379123642664480273271779119202356537882843972594361172147809585153860787735010528353951176009757797992329778597780654786247116752638480002192856528403676048223867127683252212148090724630683474071170208386595604588480216857947047395282065595996637434447695764302340314511955030106399775527266798331063640293433328514511064855933749094878368167554150094170873217927241821534632208636579247644452774795423153045116563179792237367112632301968067286756408922780581185094739422535466438654807026516266976317632318085364926227639887895921303418764951728379291490738324758468102460637711611664812931386464120352069725355525597984962262580309077884210338732970748517432948079519432849480383462668098065495684381049439572986296187609319338790237260323122143463816738677284936449596786044856013006560432792001739883880076439696577627533042105206772738847880532966817120801206455580865395887213607183659512541999806769614960647528346765488475380331324220235398232538084161072837506799451766575274876461446063270187960895392511589929821933094846587380710843182122593206023007667645936844003878338381508348295043774279936083808153182167095648838440864497244476303574137405141716911898329890951431045786778753900818752533863211549127553765365929525064739927417711303237628856050510993173062500273664910742997045865185476694969839771411114831365275649119175410720780099003255069057061867921217553435963428376266114272416150818919747565221997273544276180600361047321031288650186053808985765801588423825142399640879756185578609886661214284840307457373574033298171752453516583251169812422054564672400660723004414010093891270032134204789454346643347929005990762159436369786100634230118317074347906280251247355201782532680592874570555537371481098807869964137876938745738006566391982204752755539536612738398110260183175955325005626798165801871826978729726208279349273349078637077177805902700105383457877995192249999121716331396094863342484813650028833088091955090993010598540963385981637994143182515125568945763711757697446678300183068756571111162611999149275148768582086231886955942286472459487933852349471674555159935821571440744228012541526224781626257455689637533146091627127258598792157233668774490155062549435837231251575837511292275792425693068858097434106766364180104849833728017266559275139706771083006983797879557586747300477018941911643179132758419186646364541533845466098360701078660867802237132616940145396652942897002469152238882470757193982898739880517044882054992946802048616041109312031376134019377483190755160166676956373679450063570892284490155218469789718836467073988331505053933070993111292168822229304506087257825087124165661752185395008061684454240099886345548122825618631774363534876338515078410899808832054809735063922386053913012375673568620224668233238118718218984288736858416675710693863893613934488356559494577931565353777101861702324226818339145676080445895125230736746469972803389157979633754464930318942243989806933214642521603044915296856276236992867510909815191288272254353678819236303075386365729240884109473150648104635710085947711642600906384436874940250191656372448797912527169877747642691559922669247055976465173938019527708808430281129111132168333778095210028275715331923400721690445551584985333233422561761251172875099417554766323782424446436736203481938336580770661859510709129214302170525813814225334789230579852980930170026471008804386007266904347208311169713588497971605623838748695617603084780983651306807302173594064523406819595078661573386679884342069663083805753407252604232556665206685449404088668153487841643681282115893790092298835146397384785984641464211289274934231619167026911300157589805552153732464167723036068304426659955267585026464837613997722147802067449634993216930988868667854000099771262793639973612481242717840729832057344884821493862668328986715581705682835906258854083355164478363931239377525827156664510308102691813614142457541633777752809091688241101074820013672438274377510470808171035973457075985490304178392515616957709284269735845698269680122914836675177045748014285252047427958923515203656633523481581105660631132278295773855555430064761844651034448920328128591137809628032638070790718063698533979483318197871555333279450914721937206383869698184722320495509636276062502852394178693219862985466658799598355833539208343620868651848793557125937277108458286635649775307216250790317136339853955644920126302564916994709962141585500843851375196841707296261183172435877307755979416264225043089092554984434636829222432495492236868998460098546311526222327801246067285467460353589135931815059345875049462237089644700746033193512309127891511343289793973142738945684287168587654274255560250533039587317802164050147614825910302352541279379900892549673366174864971244537287509903137640934322123316686252737255764027675530733092556331395468535606589827972932410661880182951546948785341841865055682732536803265351834088569711241385793418195958643709744496978560454946395483943300410335257971574285031835253390465316454933121121365679936481996403430071609803140596971377905132203521304493916223479027370483420071894400270397434642069580029464053046720744399425518748950001755715227227090673032990529927126495007945419245395643308118865169312112466908835733026785436534733154662476041882741698454751295414249452450981326192191135117423179911626742961365944969449127923073517448676418615040307950992106464860383974914434490966988234116373186536368247225533399475403041150219872594984204666020551759919170660047310366643008750049159825887628289710653867876439961894454321722361159227415224353236226695298260594076545872908167048399357029098436313533913301149066134553561937761937903309269764453785454332561099416395798704303354332963157876898165359349877742485612500465921263318815785495851972921301306670481594987373592847812317297775000676396766716774585013692749416876490513777045477133710535518511217224977655342447576262101939971059490674827933852506958018852518555491879906061319730603460763839555360709714750663645954157039969509299987492494883798739492637488965380555321237576254736838366350764355806632848136873359696908422968958149330829450300522572622857685273869569292694858062129988254968322355438269792174582722804318385550203025199104645492376413525419000449733138230183002445238086532062780132170629263762320692865863923491691341630688315471345417222911817458849059462260032789711224238669589865190789869877913421870101838721392401306500697822981267760676808504166988385005590293014006926826692590868724126092763726372233223092055602080866026996595509168827543097818771696245376889551993044432610510670014784212883957935517286946507945396347583101248779387655408680259447277103816462992147265056948246040538294125061793382170598109788753114540076666510371181052697877054446314073534102040249928073938568991370854734463866651467333161026523917248474056241575261825025532828331857292726936954957107031244094199089502019527992473246509390861946074598053183452734453118916109251070815628789333935843750219627559672450180621149280743185383251640343038436055556379591804345935314395634144025699400250709965667218089437812085345221493037856657680401847210716633537055262221989156019335825771457013802892527145521581508826457402349164027960965848575399087510800008280133547356165679520484071316304978416751170936696293526947911438195099409346126746578050821032475563927047213701439345702198195190803133861668588359336274981551508194924069765665339487775985119075085995467750676994417602669505247449325435637342809916334509025214681679044893119800615532599753882380097766836411392942282632532087267064500007294605941098572144555974918422338382877371912745566171440028185812214752710815634777996359767166831696010116370289380286759189448751642807970098003189636104251729465356836114490859724909998161822513983392019656622909806252918778994377379645248379423255798131425133973702918780035563634523470868309683461371792566078515457056812359730608474446258688535801099190439649104334042139880704103638836481886939007302418625017795700048698835089775971224607573230540889876243926267422801231868121136997824554060275391531694660167144101145634922322796397380387546766767117973517902285993475246395484813326430452507227992965407665575810911071391954301574977300723588162226402946579284059636846841497101397432198757828138553746768310566999405823690417444288392211548532122733702453155219210014125599636914144372015287179176659357442741824797592500558709353671011360059968403425028212455886779169874114917258438929674357971987054323078177616770824154379311816007955196066699503711831045244098851043533369578158949215231706298129634119709310426051489273115744164438228957433399426621911844366492092293314171150595057187017216712034542094958764056984798021125988269469573620215647504914810437805310779131904394055413160960314337432142924058061427460836203014265899681487377617491355302696377028385387036903609260781812051309379051575943868573300576725721904188796827185309174497678667221220667970394039917193530870174019922132681202604135966286296646109450245775080439481933858455629487178456152446322791792619725874639523390613281513854769344076563770004079761351493231234916969824845760014229347081954020673836836519749520159839504846185106885838676318516007490974086006533170963781024713239926469683881972499918107510231678027560294073426167090458757652794348723960445374222620270331122510088197389182585879189636654647116219974126339976843971965390466572148668054816213686508967453981980121329872103482551006239028743152536384642364357180575964723814028099286806167389028611678329351575958353552926472913702457360798876016464117710771645098225139125722275537070775621926015480517817609750018712698021608220859220608648846031017436214114216081737604518125038925146882844828908927172098766944245440377095567139078324756756846594544681607215612106108177894794325941839325523961977999324394170248425744101787621231433043176279719334601820828512370910064100147132272437961324527750693105368240035704678764031641027315503842833360870564747383406990235553245440335802012764181605850843091309217718723426748749564841346746275709916747023123327564471830059155006326717560067456498245454766978057102869759424566751453735697524802732267122610712554072321847312007470855115525150834883539499067324742799699366532332080867405188608034500526013681815367326433016410967803462112052316306780178849839269083564521729744113426906349385974961302849180302035317210094932784388641308655999913565923359316879440485233617897449345732734073150358766023984758743921882841163276910115074634597450060277867075891842791950303530296738499666278467901312708581310380534986668634452177859792857855802579182624525421713082218735312147327062039327290272843994695893864474691968844282392381438835097877994000620798124249425693316699248275599509236058859085820211270729155847062924223341311401938167348663492224087825157880118478807085963938547608964616912876054671868158682109172823841307202833336677817348572139615519070547062900783475522027309218817026808834032759490599238982452565221726497848511290750969768463710356346820565481082228209743227203221134258464311029235348378334290500492793054681723992096855704698997732298502338134431903337708453079173080879482163409832019637055721294662758031463078789110292343662225077622135483067907008477246541368842486946420679547584363847302774531539598373035043002367704300842253389058462441029881240304475934375980343669534586235997714264043185302929726337359252440885520522375498789014646135927945666381483159229362346163500779946037921967988510992007039248434787412381015753124890417996162473003321909304458184322964902519939962195865395625707572863421657780754641408955509714983436423549621512861575454501014708090170625796886779098500329402894266034623319609640561477440624411891140544187330261519968599846744593666060807270530174425070716891855403781524471694616421805813020511923662047991355894669143367068872851079299685707305923292953326581227946221526033230965328288335166560005996193084862025100624032100653661262785231971187656483220675346675322357943496635870556984894284292099749740706629652451847498662217134310553343760315526251765035266371666485702282510451959942931890129201407215366342754022941084394407344028036536870789809813943430193246113958084553236236997896289951251438410933318698417909409244282344536941422843855684142742380405597348183850276776411679967917697899276925323967387349023828503520581692949589837655293221592502949822587458933243548354351494253614792331194738175573265715953067838941839047657622240275925006968502788352486667655205892421126821786063429581276365815481495764255324835859245875706162581493169859982937750464395354692548093495250484679090116644604181734244166320331033908084022405148135779708050032584647807452025471921899069660961269416170322221096078336394279026988624485105731790950182771527669323548119371370443810231135839362963212206508256705493261681531876021638679679190609147102330535248988106909423165668363304874310916960828594479275599056622089988393671537774292320795979412242231772687915367293053007576491463566569028498624884652109408026379773480214462130292414423036592459797111353330160626202736004841763435692090288312843182646844686206977991934739726250178849188949925102011414387377669911544804611376994381683855381226255973534002583197038867756417552800588861777895657560048080576733071951905654339625499500891757462017956979749594145531116614188575944064355654788511196341571411452852727965798476374251994762094995252445914101735265226656612629318892560391772209644056802243021902273973829558600889561262382657545958003347986706530763878642189259195556073842019158913369017186726066312251458612565879733238658274556339694475578439328456266453354480785925184008067168937473306583794211820851991861242074551249554725825912311338226939425012798709873275060857003770517061434079245040317930697265082984963133883256075206228536020824961889537016281189522213934024692462700824008473689272153995293722625832463551227677377305938979056568222774603725526166778380719938666138792281902873638726269954408881160273898653390475145101539060217251625317597829517386555227419652671805305948663916805731540975399850884132369614289923448452816327925469593629200398164741857109624736398195056578790693986290960303823344092343220861276316200849083477167692840711031388730833083578829371750692794050535382150943864133147497796531934742117154067154293232293818308949805282172109129326143539898885177198037346585182097300772065512119246214895324480784750418030359374570140197520419834978316678022168401618494425059330837905055495353853539813453636047138780036615021898262114345038002372101947765084947420345935975285605410191157512686252623684621541955022006740989213720039703127734346176833396138912935974290530808230918773154341471266518536535065828961338685200760898223661257530349568821048357387532661848947709989767729824929295244909852883859396166944744370507642061117256839974469101903488355580433536366864715353730578510837545353719616873196966094431943396989574935659845824445212084500394653339064215684288175662644162531771513998312623104103494877049977614966210683947650235489601194202869833202001740120413105441814510757172222650147663021156394515433400196386271529562508444793521799679362711225269739526314239878371425781749391979846460176816316560783862816449891450771470152148835081765275934583012428813334153844587809822836731743432472801205396185401320570764881940021690034328755614724564478776022834140959571726388461076637491544488672359326036492190479283236211453689178627035382715811189682325488610774938997002585814942068963631313551913828489501228861718332419151192666733442186988825669369463168399773689542437153111438762596917139948204746581719728938419431147806832126728308284481841815348586265404239899235191519691171774823988178991312774783589185488909208821382759160781743772283594325182663929104901870825947761462251683203390714667032989938192180619600690627981743964624514918306010573011687510000585271385936186382933144716393159543948934582110579642683063162504217408153700446356016821541754470041405497449561644255508269320789103420800155645135065888327255205252915200745181120256311363924542937872439339791618435629303288296609585520516525705088617738510567554126194876132023929272194780325404648563331502520597129726881001204078713276733286186815261442898622137674117087814237720229410950589460040674041132532061811006158912067444904064470378967841515659256178046314181247299119665024102321013278063732573535066328228914096212393813740908310058676311376869559302264864663634299224001298654270363752005170599690839310473387522654671207379744590134185265372853622815013630255872589651726987553031572196687704730851562571322974699112412227572258308544075432422366511397413127561629478943949742450095828681268001618286600852240445784383293847650016167347452375204137081364733736440131124968158905923947651723190115517985013405842286634904199916241690446382081949188041650113770503053600776697087647022884171547377295125653465968569023802197557918974480109609104105048249292818784633531503624191190628061752413001648758707383847570872454519189180542244427615843016149278503145623205065154919602664883219286291609410923329991390387015862548863527445199926626083493469731675383742516221675187255342738094366089135380805710480461603124044100351294340472983781795624834847594745882554239567775786750734803313361429181578430335806491714573618118159617230717661617696092541803359513682654853063658747917445995451770791991345115322738625567250427117576549115167928224096410749213540966334776420039951520175581567243606086383687667185386763518281402401551270687193069422749414863000962602302065920204021476424321126071031861384413909508119276711893579508318741039193826383654197086280458981378434295491799065639058322831617430390327465099224547118778816299966183730293893054510107424838590623026893026544432108284259587594755272861286143742646529771284378935171474069078597239300533243848809341903678911518452896792036832120759844246783815478159873309323883738800805478817189377670862435061455737320235105239779443504087705144454340854103667368748799883330361099338683615909687249664626204555655974042313050748747784835816289883129076341310558614888956680081685555103865146748858923648355833898673254541461057113098333611468990271436480240498741583758594285585612719552841272540225396848865134774170991258391022472884244923974935426326727816420917341900492616733664172749934261010139638227269933697237471201145157943427374560448992362060711424602088682289732982447850403709410719822365638894849514713699571558257872007998178636341255807366487951573312588910621375601923013772396540089889883500524455090378291081455666566219764910924242507147827350532705408656532619784252667862210644092620542827896770029790979050304743524064978293415349413053342612295261032587816752796176474483179351968906642462209516307721730163880008155247704556672986101474907995792519845203793246107013854848403373989070909777853269511190619000045101742765825040067068625129598950885194189669677523683557873386956116771243274949128680701234101137162761496707491678761764575541410991802603718455669477274387786966549584410534131060375647483209488821270770442395711948585854596977586893345135415139466464520616094898832541112664336161091752850472548894906265078423455819995870895684225209212149203028698178667041070768347914621868032465882074708561609391621074912668110908535308103794084712158268625599445175420702394203254714748207234086219091260160043570172769012061539004301310368011500385609493984999952676334375109619254634272088288129465946896301648877898791009221069715861770936062046793809582591294002399960448472227433963261519913429109778052319131814865714937388424139611891709564115187977055939230475669781329250432526468151386138439260705873694867231621476695004084951759867516686263896589025527586682019920717827873771300929516184064137619967404514921876386018225647850270078898465274792277463117750800446685584211254217723290235876074926093900269218780497356040781108711500217826203791538327422165969500397638395713191320058468477083980617496633040457256915616307325901336809237211055776473008075654556870139814263794744764076662571847246193569913327153243083863794697909525923811975439008782951019555990219259733630408936127807347635118156476040051915014741115937094251549289160167665629044848873525542465256081484500093426846151514006411332592620343892929512998297021833986528319849687140533536226142627562255340801971258194283689376401639073096799452613953958351779204569275740921060603058163412562208832086047547345606243603551643259732854433591586249386806547043644944301913137690849738374431631248788989074613235068534355476597876671230772789603608963942006212006859025683234224187517057260070094085168890497259072046124080614704708140133458177859041927983842800585691020430426271355322782228410446675674121170006705057704818169558709182463027121317315122643137469791333090605221894147160553720362231955219429530188731361407543224929669487147518905891536177463020379652915617761809216421379107148719341342290074400372691310226886323626042638793309072972522345268216991945298407687067855611706563018444736871395519381357549106980037359996027795780688540784245128778579909170671789469913664980040745430772892258539158495806613439139236720947411993049945963118630823678658904208550099828691564011560205012223322555898275500490138476869732601849752751358821858669768676133801466540871116183414645890475517785599600460666099812526045909305246700563100801004660437915503103334051712024217339016059483109256514475084876940689172219803022119071328205219893305509055854801955326491977181608347678584067330622751289890118703032277931494966074602109007629363605126665075341151289396363372748510346866878398819314181852903160031773553987770579940672461715089142197629544777224749967688597777893571080008960197446762107028430809277683641883251276528466277966668241981574110763082346264375086130100737891619511644531110639785913143381039183844885561864182178369747732281870391189479670585229973334662721065349257486957938433225614433923062782098404759476265588355409747262659694260613455336063153343869903887968361818230091549038389057771688493270323414219833769850686201268494053846297458158487564785576289598261252882325854616951969936050979614617191211017993074129567862872112823561844516343596813634571979086938885331473946682088232537314521265280301399509572970189010972705590918847820337509867801178855205155469335269122365068164030549711330661390153972002916690992851215801117623780437368426805834386138191630684874331226087022885673458633475967958330374432692189198623131004838937120884294950118304504228197517389809828324100087374078463134501453853098330656742145045140404432926666933543294141638446076619433275181964615012226276879799236744636851932719923456927823779330786102199693479063000583663109688822963772693677161684392860598136467982010964872513421533292374381629352544302349943457884513232132815432193606147100660524291403338922524736815008900211454205878513933139022969303406369837196534501958480449952061133633723425608482601107119040609502042954069665750270630620621375894034164014522151730715190573489513682862509692412033264704173718710015572438907791998913238554853550550139406987561910882494611682841945663195372632099059675866931564309528958298924667909264527219364076846416528146186653056393673607947118534800774737658154625241422115184442955021553137408604582125897019053296614792081315586242558181659280859328308638997879075502294598376921798498821691417038097581045356623027835997943443907639415280070585439922848637839132387272292792330725173363295994540491472537225844097016649308784036486452421796909375397387836298867906340761744636953669487010737917695959784411704833957515857099521950636738521245338603227352045035788976034430205833294239896098537021028029786139519271212956080451820462135710519337846597409436922663273855421300124576690073958139814214522016828438158648352405809532903324605160869350492963750823534664458264898936551409305027082236184952663432757202382042710118259213744433518441441279038561831376655120501654330343435510997373596846596756440365448821055870754475648883135299553863265006425018274136407339134296375711350145952672374710582277682329041651289292795249727199058281012982523837328766484351639072756834074258765314352034123159248644961053881880655357137217657595211199941512598559485246871918163123827213380690562277884721198783546375805679163446110301567094061158051030002478961647339914568104112214422025158264348270693393853038527711774761082491719879716548078293149199942724899249602400038566333006827493014645479557001298215288980917379107698538253033027901534001345728407056479055104863939115030836090815695043099750959110717545905198949915208007742475972682037745574254839731473495867118852599691590590917086863708049786010290575518950989371481533420389262389575259170827893695262736404831826434821442950157044625912041604312937525002267950929568964822186465117495758689373657216782347888024307517070796241893823752631266550247450269942117747960488818903215053305451648715521170294387855454565329158306803752458853983088405277516520085252442349419734293070071172318074537361757682664595635696496006281307456708657251119739602855977386176123554923297245596089512159827058042177045219937758994665351220415109411175058278166847096200477672459964653100603110002275698651015661107583555263596254081576105635964085121656201246081684259398301952298921429455572154235134148488899123623278470955874096985625978206439788837078756477901336717966072869430619980657568918925091070883353125035468367439601711581901569791630604944522540773489373873566945403185024237776479387614768500025542638651621161761014526299304171984605634110973684335859462295227268876432946977034277821415397064679185996495791241872071782895608025414486449800833800643341809725625088696049926749453156863736854151669754283939925886868500894564333819848535787298297943704758890215961152585146613731604048867194146378030087682643232024726830594471172538572845392100309987221677852079277604812044688818564961279265364426826993397531196939709701741529210931717770782249953411021994347707078542129348736047510474884782657370398892502379413873938743447200936826512414889491651937008119470082088935568740826896920590805793830468163335805958170481935819428312154175300319129970948307585686820244513244309224263520003991357351204861099432000198923892519036748314187903748036731697826393501465892326519851101016304181584119021304441993833136499129216682446657067654608303482243782259782650624606072766038807532319328067024000581016203123761714696650817062449600291991113644042581633911305491902846687098614176102895514554049693297829218148683594923209848647686870118514597176979129815715278005552339930878607648735634984095043256725986112741927272677990411136484518526532934261073991474928816764793740302810929679605260768816716298428063344738066633285204907707116786138859180443568399675289724321833533211207177009735864602388922404215492612500168238242729109129605330493602470846546503003343841236974008437738913441126233671697084412469431542900922480654243822075305973407130713322489877808371167042043754432076061458535537774241871659981439918312303099348250294345639704255442305460684622196249047813669011758898738786843804984532300737880690527344554509315424475494677871682424771545394065794871178141650247477517100188748811904654882555204822392749388838151172203508552134818708788175767857984136215346264624573870168531798092621931562578311441011925257219442200771278602149844323533875274296279942502729762509123651508708625828996152175433986481666809208116725923198934349760767449090005090153693620726886827641663169780806958860725095188363054742463940178132852941515439197586348529782748364577374611696678185810427207363801736548397192149169655110746347140195942889843185592275830692640881132557127544887229406931206793427115391009215327251469117278691844793946387647071995757931461379805798425646322767705583738291756481978738055263696630810966213872026669112283782088730443701473374469179058937615892257304724665600161334559030278445126856197764788070992899863364709561785788174930075495755435735614630082229512322814817639015178893690610730352265647957521976324633804348858588056740676778332895842595383268583261830387487226066980296431993568576215694644277598213595462906118624881305008483235480288623687682437377831615596507273419828217954491312549028359849229004952128357923577238976434146260143881381419518671856093877138826691960253250993915726645784400435434847996199650595592867376818761428925787136255940196703844227183712349170012997903424925173853873235220329706797468745701836108109775568655360766959636560905839266919143368180834984880542135852509200539884388440896380904350955162072636524963629469716451418383195707473944478150408363822312241752730010077580132531460117063953390414472520063682839934829749627129643809450828560022628011549439441504597047413152766208122216696826649806630449871717813186183721405455320217204085428349640019205652806428167678638142656575729113151708076643390671844926768144196841501530860580334041905373628083058860985540673077826604230315764530989593956395840001791810910262461566505404348385976650378376049338201541983177630688248865687570358046578562645812056192154512485130399840600065134172189030589571847727743593817876342647495621301626753504676159563033735517546983353744800412340711085894258303764242827495364857521185103739237446157973099602262264510080639049446146910721375901832171447056310986065298752250819561182325082121081235531939412922348742738107222056978772673924011712047254821430444825049521148490315258604975734167407998095814583930500973514083936226290665825652012087977238081641457267403404083696601199958549290354069632822425400648975098717969161852667252730201601029169035792330798831051888762428487203927109065944013765179779079328937663806534065447266486991169681922746498824010663698857961959938735526616733427218467794058755723950080992502464217215824182612624309844297280904689814765049183038799616732137910840984480706496396053987795595717279539277565246537548263651273042677792997921401699602632868035898621368522280584071770291136806587874876476109095781943712038152312489564998211541800015813690169879914297835061409969445929105994750676294080202231249033530454879345066832254994101227775664625006777465710959120441906225929780272606028155100707560719433265479807191656937448358896040717327469065141677484330518542133004302550416501911152436399559838716733393883193960478041252651935602881807222689755465906316538135737079966260629213636112049349227844506918106697274836443307320593138680742285987442158201089043614439972150004846162120574424718207935616218114319401647186711768624762878495669285351721298358183494441564258558969057541520485602895998810661904058737557357247733421471373438429102907176163749493253850915534536036665112801222393236588994787615716212162756506798404351375338375540589801598257609539577391019145473264228474205750939187400385893033542110773806232238650824854576355469479343939846874743435325983670885124677710864893921645134535869020563300122724898786009693572424738506598873983488073255373972728951655340443773624254135466801550345797601299329155220646015347264890449479535852137817232932240199184293770013016237194734142325466459909298100317675244541768846698347341134331028183272965010821638237920777466293833274910272725506585278268000483144387126090416964544506766941138947207820619730338543809668343154427400447468416892406800370274211054458283449987452571832498512726287538796810420357619615175445023262475113998724683635896487101176289207533741197008626228474391573390214477014470335360275771184393540636634502840526704114231413713955509851893906878044966184844366867567372191249967450656770264890272895823094052238973426531408974577212366339311633810363565566223095188379288538966203806297614011054406063887000170750442579215022543723167933958494453563574640188414069991455704303067552361312375597004403376984734280798288383057123876827647492221677613053490679964630024513808795969653185403775163917393040988386820537111199951630021222048162480551089222612373906706183280910196676930623508305732335032965338355364628265566370914158194829806530874382464760219128543174390487917470208732878069637069367218118961712371842530855471270807727494242764360378170779670748170604064385172530284063807304844591594873936684422406085686650373245083331181146202983101755489866283064041195162647133937252032507733485208165647704819661082891411484922231168664559583407636037880066290937217878953347004156932398383696402566090088837117089502468429014792936968743145151218714034086714509670176183941374716289933046837515185458783984598521126417618339842637714380543769293342655306287317842322311416345565301819552774171133353874180083180204221851969811970696526718405012673955746632977987502878114692208061378134550805785215629093603557709363222083906103212122342394432603103958299059883550098504649420087793395016958032665781998266556097519368663637346059102880145558208894711825257905192056171940965055044487583805278860802443233434970087186653571115753499037200663926039702328416511092141499017806604842504403883317932301858783674285333424444318761967242061001973734503847283441071609671164011828433521930055782685921241622310560788646937396101909247385177028192664981562931610252743269216451949658180293799929678005424959418675847787971093559455048228125123599540625735551476735942401929926139922956756573002002264866016194007451951164152021758262306645133427903721393411759188916828662425759206090577420435297269938107707767057828938658444818089580118861216468353471462844751720878198629299800363648715483903220395113000502535690145585037139353130163489799956425600746674880236976832635557457558071529731038773714752030644685586123173428346442811870032331219663685737176230992586210969566743192603060349596780400163308953371258469455991495106874230141974094697577924966754288757521155345375075982082067257427402453463682922755171270984783986905494243153731552345867553048775347357091675551657323875872803208423615621119459735092448151649014458955579252923801498657488016842999048198127627355735437205395012038551670469097807416045904212278816634640093969792606026441408333921632350171598482098385681607796924031471469103404826521903296324812133528274656747458002558711352050232935033450861797873386577994197290423870992831061261112081694040656426560785896145686062507463100068440743610112326002986331778665898656564689418825653193266378986073137454988922602671963626159933890721140789860108020705850349256802554908138771761999307115806692466526684824381322489486465401925357246417819544620772984052953483108044482970446095594151196452109477957396643974301059637360440674227071634549399482163335788150794273536267885082284083069200777860657404349908654343369628633662282439964220992021387966014863311683406876702301347251913265080658128116063664194451347811796482438583102068076088109614721816733875991063791532023706605079990100126283041152967828671602336207763516110066779645784809659872465141620662430761131703234550521589885817555006209544430863948017642032650372532607774873265690631542431632499697136589668664700302744255437301726864786683541375640051066309921143286321846029566062535140024224995059381293620634953426289458905559613040567204314531890677195961204982466054462410918096674092962260990767720161391611227140427673323257435913160708655502645563605766130962822977523273279112352927388198462733117517756180461212184448315471495602152708730449835500803232826763335498463194908163816689726325575637437360503211070074945730404772299407834763549825274498403049966512976021634412975336040625181816582683957232699582681739682906971263425978869315921552085473697547471672937789741244355936913353464664327793958730575775350159551652773807062862590864084319519365472578091970217504845998294991036027799746656304757109330092377863744542197986319668018021516421618164393064460825808439859961607371766460468016528357901709465060675869744418201807498521444382138644165664142478492009619756472202866955691454956579124531982836653662465976535720489019590945666832733737677391268784600821282301468138600297742146521967170759543030225783704839244664624257596613406469523428641907774427023755080351319098926487737991228879425265902594423220683597179514245645303279759044382995426896988982059385298937086429683634687356326803911661479438329284307431626418576736894993165232283057487235358618667163676904804856794893676895614760737278860185830420237464710980181633901885851490673593384389766389878663364272130195679447475932564315315116289410497858467838100585838303297385233282315370172933206564358616106018457038537818274624743796043804120590112972411803852089335023536104482380101769696969558257204908753193587773468796594602382336115113021235706079375491916631272856806448171975936909981516882094416964222954697619338683732086266283089791787909479019185267655098321384701080775939864513710855551061472466069399907465513222473229821744162282753291564157881796306548455636654420054263640489089982429262769685975214088465205600950530672104736937210747623650232089404284026697039977406506321551471152749146270145944403340534983639236220470288959480583414081812348892800424204745892707643276936449917266085033684887929750851991869207698087940394635772778918394778836172600211998525646944873601508845951140675735364478744151661753773747432681754510783637115348397071118587362327007125524695994814005026359159778700083937260095760142216214248849387554077927843536566993003645319334299696592273464597889696996372271612998850592502906464041967196172277146488395096139001606537281804234841536861565593093895440383415794926689474375310251032215615130249626198298671356232858764761710923973962469387394175332173795760685344877282499596064647348333742806680863662496953073960866381476627541313318515884704027617237046731913485752844502043148276231737146073014833655360966464616804474138279233483003139238794665986123884365281394894449917832583613371541381985756205234243122136986436869939076248456400019051588103420950925471020407053344222298662711429909584237093444650609132867397220444900433526843693058163436463250067300152289840679751140773651092173286313755658626638738703048021398183056421891062104295353312371609014901534819573610281717899820107802689550099350804951418576060412584714485261340675145057712885646688654087503887021558602578898322664385905596907285923338562035144254406586376803387884165567264529949305364435255084671055725161754382066970446181240999074588459042505641765283941358294579722961524384801718292510373414370150207965814632258678744855501734032305187740816609357342688422199931724237711046037582991382867332875630491817292637262160361542061856463020993167401853680417343096075001676112000059881930487858685372205263437953397029028496816909350187208604664114276650805020462715042182534031715392201239613886779076995976927331110444307532830530385708512985570314524797714625896975798842656000229282386505394369833760817027867969490433232627472409781183957470275234515055933823632293576106806487557969063959585020785766094491021520927583448227730727387597506486507175349468646965341577804985525448499777252555446984846798441863865972158296759238645406585326606245522450660341379957185775659865524990336692593264267805562670288512406672150156009569734725619529241410446578753914845416783888607366634707691120879247028515815408490068925898112418903834618808829769656251517196572026318213013863592298833929455683415736848500188440718980470373937879652779841096625796375946214283171074277173723766991371451160581806097369598554961028443530274614308651031129042966490194720613655292054520305766929789017107123470203378440183818336654371577191771656427765511629713848408206767036394229958959422445850505848916145279258947131998919955870458486316080819782612227214541800885851376687908338635108311041143403081988034562323832370765827960397317296777031631416621607258737173993773377985182975326187747251631674219823149467046249965085480923696583337436632823986696163572862265203395200852963342870316012305920334976242243285463384262131894467256243889620778646866443576148295141102574465942324511971595991811480960032909333481130667987399444235982182482593856490957261784482438996245630216054283384439643862433784820735937186450009911825896285539555071843370641306054096977887903815090941460836207632559397358931788426139120135754783956882644882095233730129537047167497897591192335435058537835371420433498230537886557646311940712076683625355133592780197586769586708226933017984447557999598726286764399766114592492122523368275607094840861272872419618466977147532411617382675462705832336482794726551903055985306541859276906959284796387475459338714500702976971525366804276297594220434704771405267956428724102730832713914731546148366286785532989103574026221724545219224580825017133235708499332217539929595128686560025843945699752207179778303583514515618665993667591792705973697601226348028595295225156257882907958346829850706647648950345813841337563655242566780728943267983370337954808747509469340904741427964448102778532581104179353770228277407917774945814855853952064689248165916801038905047388556544252497702524832054135342604204263051366659412814545987700626472854605571832350026751336165661321398571043360383195703151892276065223420654476129274145980542092587918281863950706210531721625124895057674667271909995318757076493342998456381990467524343935910277102352934208063934190201759561770976703125616845244951608877344258487377103497728916064874840634473144535229349199477519017292272882828137064767596565869528031852810842475856899134588771382530958831056340565339581901838600961063980871015659670730826101794344399139704678683907336558523601398515168218172585830027242526173386988677253318284817451546201532456975675573893024543419840717547741441599930326432849356236685366905238209409306820271695882200220810004099405882412319892652950586137191172599718936225283432222606083344640331176824048342112490172890157233427933382409505853628732066604155744686395124975771606500618509776662320286083243513616479032163772964664226731951147997844861611544794281248112502905906414363653815249844892571042784773215913343751604813208579183605085332261090231298245406044685463034995147478279650455909985378646884170519736130001694699008745418447142875140490016755048351261447032218808660880623895347684900850284311071857680652847598563681155838386829604067200675934997002468119293101618917633115356351935260452288051337114111681354625604475714934351677194115957041986054608059451461562032941499182195288227782232669155499110840763726380646085850458964910386503451376304694510140221392915508215801140580237132945314731269194134129010991743524161200721847066467542855002147930585850012032774995336840782062026024502729640658922190719335105500404381265831761734580467745787444146422726039516009066075396618789427840342653550738612391173690405816253121662795173302381171134721601979184010471170594398552335300514419732438928920479670618971211560536939312025258797149207336096066166430649095198972229418751927223326689813517108101629973486223279396029187200111149929813946503604173712749851191247314458852800580968107420060032589970891862886751740520725996995202383038323568555015793935543457019814376362560780218374545716714395714975376225349869373522436522780775693316062263493270516341545516622456155130937225135871280372358381027303228722130095982128230236105614946936600287449324488529088066117975283680970453111126997886464568023543558226252262334595213468707510517931566538610118826918892014695935136127695707488462326459940065704891950398794568826935712189574212349356223920620934585166852108501137391487332885862531167404663920709283049555362974155243397976861557961733948250754323810242300713992034000791102627980135278452519954687268068529518616910599035969122413113889686930670248924293907517423829210026499717999938360366041629539816109226493345717922469189314135267410671580533154772150883528976523630403142614999135274756452684382437683995004367775076761787201287289246941131115975235234922333376010395379040512311003120708208412529611300376730115260469573283481373500161279336214471445880167223415870071289499222471594876812633814894944181923644804109123323723225955050208643001464371887995161547439312588576647636508045821092478383111585951970066738035561711455198638725812734614451189160315616045779064170475221919098639536864427608458544464057150410516040797846345823311504314827554320254427761256386134369639233409555425016455015471563627208061850316109077155570990548539603683295026509180736719641768337988276248536341887652992606540035027097141974931935444106250767259015684663807251354339925295843663868564513781856239970708679737986553870698543728127286084394963411062960996696035187918042616429905827832223079356184711318178032146734226613351879458737322274193014454933035894869497328853225965538971428766475098840736732895447213667641040565750566044376764011227198454804756975844795263807289950255192736034527011327060575472512710073949267417509282608860654625379822379730954415280759971340382241624469386886144481525908130324911754196133598808677568290197377653125363584808908937027779730108434209664842676152308761777689616716244729890212605260078114028150518686540669605539824589069679970994053338031485579754383176795008292869035481019638679559347328401223499356134329493126031524117146131399963836794225257591164870520459117220442154655852119291297074231146682053204741423731325346920421831084846438642193110566152566736386451110934998008204640688054306050524294093763369737224122788035181648060795257366984910108067821666737545329031382778934172586138831610430998029357788600918333320213796196981492865878435302649783840955816503575238219486901807714391051135202756901537180928347041494988588268414867055077804100355761686147545814092959229036739514957644223504820628828255504946826792411495713541887970947934692308172784259825601687375388618696455034065169434187186282125112722150189189173529456016733038632994066872668515782955455611016473691956562340248249335243468702260257942191567182720639749000607973681571936057101828065925403989587526763343016786997130091582586912824909165607527227395856236671266224858602019025898772589531067621447673693484053859193966768625825814554004915174851349492496215302304835683234521898569351519262333606459024605445478049307798567919536694398547564319409848410637185115049270870530225709097620959712106789224989338235320198394457138495418167681702880533120246157451603998135137765499789803328804876454260989390510064148234632698224885210171919183514636074720702921074145589502916811912152391986965335820332915045061847903742278902840503773303520506635332163271411405715836695272073325916893824585235671689591155429697579599002890644073318503499989617235578840496617168527065046117228451899792169196369212538507995166567926991516102514710536596116476900189890806379663552628907468289808034815404806602203479613547453946918043826719422779797206784583912893674831792036282258322263045512845640950698340688431779016350828987016941424735897025028592329503763246902532722743627380664997164984032316506684601440280434424021821815500258574598607060747258951471005344384755970801781393025995531631715425842284269871371922756077714856745960919292955494898702358431705759606481610889435014382358515238811351923400628410960435752452134017641359136694817482975712010364537427540977817650557082823412246808605754380338107200787512285975767031729767744906633334514635883032999580145710198700108730528747117467858929970462958820398838837985565114820815410756428733989461892231095232054187672198937130723520285282898007530432732165456588328788084212630051337042906758769839439797133756577001807930669334322061434051386107004415027623586993619782651648676928878098435472106102423513553183678507182889463928272197321072976078060594180045853426947185852324051864024973555728783461913769025805769669960514788508750601317746208734753561249142260237597457934285869558173358562612939900849650683648323051002348903842312618901201060693302689334541976085204005325324303331773668850457310303287560809414598399756072008670053098232763977383995673677248842406620879932389710677391235105220741867062306358108015513104309813981618276355037488448389959496582402126887101713801376516842332276217496987819638149126948077202513176041419408685673513474327891839237640050174399121180777498053034936831561370465099723711876805002084541265231888675954954387991433401997338649231954302719146486532868345873802131160121268369815194545414726751709998023024863192433777876102751789995321121139855886122900017795115968291905050261457924702980905231980119933418835336338506404350618349549284566579988509530258493801745175934148901051402397417352583697674355928832909711041245424642001524738473276945469050637520120414200175162953659415160487204230374413638392481660144894175054729931313980815405793816885259995577674654975994726512427786108056027973196318166556255191251460019636974349298921382304193826805807627000662661743753280304255973953051240618195008967178702114367870773872339378746935023052493364221982576314835411307005459369598949611328684633790012252167223413680795410046198284761036413109707148274920295556337704501190198882335179405969225842264777352647198517858322928979146662945894134686276985895086658591746184747734473259576368438231097933772902557468415702327205508097490812725268845912559098324077284807609018900617790463986589560082542165832789047258136561136685025335816191180817341299791319601259212970031535650004299029889762765113246112667792393237069155127154947620619425195992754327679426932082073937271897218662819082131749257547643764773098286979615799427192330107564951236704218128927915096721054300098100391962910037448468554870604057347801442407704195942058834933217290114065448448237589947127272302867406775263611247071203630556314876994475937748734999521995124879887485285513168701921587563304963330982832855592367861706274156834245571029688279093263057685280792060639147019955505612191782074960799957390917315609094630315681960031733134069072397816901780751490612476930832770863236704938564945660297893455536015803893282949648705022705398070937253023566849897715932141962363522608965831714585285181555956431244101541898789492793645557282246033320901164814921587930059124092486366250544610750953198296388158747089108177746286830032430364202059759272227046850095333209758328324412300049563337970892296834677374277469895604435825553462034796940192503749976517561081749241858319783593304012630443211051414305088544163598408906987008119518760966110181835508019543595363044836977825058124354936126775513118467500758989528103935638509459977274879995990179001445149522986746516497048496063585155610928801394822471683301845732244414266322733879175565788492278214464459787774344035152295884973019903743957834339582263762868283027808925416702400678866378625021470265262971038294336369087994516096949515539950431785283319515239883674402282533804177397302201647674287708108886545566691508303047366540361981390615459874799507432976766595443429870765695124070063229261045711184791226550655881938454058450748940093676504155496062425234986930741709125152774133485449058677569245579133492613563864122791868487858949629028599451838811304524893489743804881067644876918149591642569559478391343511686210015585270145741968002189071443715472724787790149101610334743787533208663151094076974165104585403980929414267877865787164733381974587843626195325140950829736190197780889959268090140933482736766513462184646091154899433721976074136301845400469647174106255224556213470658834636031143971447049584690691465863771143837087945082219146819065489055469006164681965150733183913999028417049427157307778969343258555435605730766862447092111617620954990291847234172038146196367754946359914668087702829435645363596593858046924050954965235009443311407735545623443983681613920347845595392238066871865679029916950871014541561334781722391146258380382967031029111789387291059454307511742131783472329020316808882531814994673363941542337678240537766757136927477351693934492607216016216529617043020821442490244943617719001760996249801409466308559192992184276377182162141733646246287085764179839259936545766748488328092668435723738751164866441954602952735217053203850648245522770468780239996538524999197841048632874859620751374349939520592826162549277821963153660058035210211373034996030710678250910048687333683987394119806599979406694395613850266602041453025871677546986609676247898592491879750173460791543675970820556557950547886570241279927777874833658829008633273258521528422876131765074099297069383285213063949989966302211210697812952810422042667542776920980033003874282722918513128580545146289762579670933123891320061130808468761428303438725589309393763093720171855658815361875559980736417863496527954703328087554869685770464933315942646008326086137965592866784528525384758736119144284930902478052757707591046108929328419259400415962451464012910566374329016160468003473783153301895705238218312015739471019504385515152314258672372283903034910589862188031032698829387443495598576865169527409459313813007565283586390336914025801751566124599777947332527232859436647210394294664281665501486040794763420900000149782321059524662287668774936207436671837240204392653652741843089542545248934542514946426658812401902347501648035814385569469984451080998005245264493843586899026128704789762753270940981307599634433005987096111919441628539498547134226303685704614017238698338385323715802416231824073179027009979841609573767528302112841264399403896721268904715827648159042463810134659540966562996460468433998965873721900992696968570405842229248624549915374461953924030923555996369423282945827716068802917096877128788667855846281111997205365229327664272579736407422206744413664867172746338712500890878029013092290819757136063127095662698056658282243604683854609852197973571482878490290200786429142849227481582248139196441404441654518124823590856796849506458446607841549885024009250237984882580557683956224297397098127887211319688447485119509747439444308496857304387700505252070108276438257984189260775139796573270322222398864173736537881686534730500487570377919011563649717292736410235469958975261781302843030444618285086113953116771454936610605736654247085974239216882112751416976405199066136565297998604260011978434156345103087818278332504261672984728790238076852779618289168491373887080043718768282552997332262494654380885846329684618959420469864812973243128237184044176988933381603949325205959327055572386638276036138609399901931611373962405611542798896200111354307053417388904444592566401101644390649328589359492722017072045208366377441673964389236416170613880387006210285130142106212587925152405528288924190083488338144394480620203875857465476062825859831457559508549673842160827344597294731970896366166036693765454155604476404762787789034549697421748098316057240086617075518169424902878271915424491990277671358131312932779775702898730809900332224677792955605017923408548674605222188953310725813778533353975238850084371997418167816840296568000465881322074347229349632278619478333804105080816464884029939444692971847307832299454688681598988903797392865062384926671350449399643707243057646833331272793096554419591956642921809641068605889973822491007490370279795961647618426034892369674558853247858064651734802939224903172923350023416779527209856381056347146263370525522524219589859031604598085572251595936129188855076091257742679358958435110843295507065993352466876758962036756081562013324513722203919348417971508511252410255191121791109722506143969018225940905726638274893263140146267248201083847702429828311321475128642754918437659860856489602039319280094086521773383840010273284309098661812490337139636894260618477979041123868310802510273165426693253669811111354215515376147128724716347516701003327009878977024295969029369279826601387253114578489838774730984138351734635491694560727710123986771747271202851725062400395710936931359910307809340556042751637605883738350221148592166403251243415499793533531566223767857571788584694036147386868308769286982653499321770934186594796285355714973187050536258807755649125660851189501796769839092815042476705319990808609463030133699147195384091876161223439613708821890593945546816441175871787062474941283036682101371908541163042729683918227940044192733713580058279446054117902226865539805355323621404541710068055720523195846839401933341913380590385417986817152068343866479335904071679651093964222509845508619485534431506754661602502731584732176432759489983126733063911794543756042937018937073248499339511880318110171039420010601603797316014437322077668915246431675882799992844598088451360551445126829944152327603728711122631613960292118258497171885161217370082055876851905308223719809174178247494742306686073626040730256384101520429525937189537493566382671105147813568653344437880735304882765863367391756820124114738928172835355964067518226914848681410369666903099368932302816478401025303081569585637084283218542300473558722045702275819173083461872231699950860669862922774994979622221978025533753482903003232391445482897889349262840966129146257494073636111659269357689040839959178709821829966635442032031582158386292991800820663033199298629585401526202815813753812646049554769694421092379657245770021920972070455406504421018921379220908380871451066377052852358835639466775875843066557780329682846136175246498577565947049232955539002583310290213153374158116769628780154394085688809657057248185557917275410737636729649287083012357753320734674596513052855887605796374783084295939170659649056100439241785093261366904361887513809411102801934349073629955445944219860363006327248173735643455172984186453071091562267568737099077297878467024370128903354550599696296205975164163733873485758160139868620605952530882317760954736329759402667128861916655992114277433790592830409246952688719253052843754743658484541640501830867725120502929811600907795297333295932958606704426710578261354233054698391747687525602794086229241280373734871992424230060760558245325452486810999552365132033897401401788994285458686192391816875651017317451110334971761075871389074808729659591302162880611046105507895031256879330318768464600050601429799282991702564102052699281156945649136375129460885553273632299341817381164841173184726815890990057967369714247198439901008689564094048018182109845983429627746756791600548548151481213528586451138921507531309854076178432157881694220843643463602973984556395765710812201897961215143748307564774196796780904557906845185198869289895222432152117564493905489694551198202618819123357305751296343161857999203654351474176797764606774977403684871042246021745919214596290361708342379130739436534824416173422514614172577866576338049003866082200044319511772573689843490639201027088234506083462392527342286047477436579095966691996860100576681617138396334533792858218951186101457463093949752220502186207369805549334717996242454088534557686417867950376034697367244940969516325927501617090772262664781113842333597135878151059970526991148124046810607885984088356776729209659419893837166391589616340467334866522679312801972244969333879304761434342238541867143265972594143615065155241454879345699461765897992687297974511318351784879712694210206639518296719212717798938814354564405718246180220907931385457296189269336054987089795189961966942416333107923720650219202096311083433169999661584125186396416098981000956131377980427757594341087847360685707244820828900949958328408390494252385904543906929515652518704271321642443562029190792661936855983995301633877319794555968849600116125842388745255667440430143221235274536709189169517112991216038669788834407598113399293945048939455488823896791106543258544339855635349854614142274955599957390428268213916882258711985298304969258053012623960189197874651819662732450942235615012458131407585120765432800040838726377846801579603299999584337269111074651682065074028839208698010628986049107912603607467059206746457167030892043506675623354413813844051164216023501394671528820365775418273493452706091224183983526159198652425418020910094335577108364387711766999802051588906712000534237628894035726769079968789707089381569289994290835525511188082816560005823891638480905249790721762957012680177574426725766305102886824977163570962185287818147583041761344298643648317737214169882712643200841856506576619229964092358473723763093930168554516271719270638056477397473739944068684225600685461435997879908912528914462378354770096226590707263027244842021641192988420384203565587406313529732609917854911736822941079528703588445935523900753190505559044006064280263240507318781435374867074737346486567758370705392282868466605956336881300780056309341327704564136347798118170001671141801276634290526094976540390580284877583880566902255114867271788760795118972888846216997720697459167654011379483159363496322666354882710224620622758797541378385635767711115374823810288581436046777662135653137723961108168811410581313825210847931264900153455061174595827432217768748481045547714895292427320398370405345270974329389461716308435703329212192850020852938255699492857417530780143866682948513317573599144682002980749942977863258390500574375296483850444299814593738935167668161423660946819988248046477868951687714831264598226029115039758996681023499441696240582454331531422329997146652425108629105562153710497594340375395222269558011809523249977307151523086788398652170353824106250455537483260234519842745033818988062162508032105714719487868622557272997743726502843089283134576877927556038105325960024985343996192639934956603031538249945280179849017715029521534550469265067049606755022393282515664782494059207923103076347101261286474575736400189875162232137732109038868525813645381242684121309486936700543282272261215702022601844269927220402451953578058442016236145581608937503037633993095376580128965543941294772587418642792312769361015147752742269777174404423825509949838057588830285573009272521883841182824732082652547223574168205300255041583434322870894156754353865523612695126269119124545479149974964013254038268228373291210442729000858173789246530164680420930097626240890260149256574831627719262410410412147178207117621080494429695591468793659861081076191988359869000055050997472418447911504925893762046022503979942773060985972519843341069194358088392241508820521153901101330160148582195113113693722070256407641203479044369685330518637392082411199531463964698155075992021379234152885603000173152548698988547761413991373756003139637363533441318227787366585094958856650112215973072196947600544369399536634459722152202737665095810335490928290722597768653772617574514462565507737525040114408309821495286794468068011359733261040844341215846202628520808945810333579564940184893674611932643345900316616973484754318999529483694707811922372477336325894402042859322312246322837251589698316438671702022720921332437280753243877654309654542446998092226250708382858086917860911174841706590860869393190170095391405209818937283008758994043723526637238591411248318526353533480410664110879925719048894813465513277596651506039947131211409077164103676879938322404161409470557070193398952328715069406174325803337404501664465422642102669120875651943250369965460893593771998989718592662428708549078394601839013611430002360234668243361972416289640733183354958611214378791634480317143082713874245344947199086184061786218934175312577141692414090556055326303418481487052152995492883936570168167325081775935118058792118675409078888209147990392591407697966292430270052828158994386207140846994596607311565046366163829970771866652878567401509508131216199909975747137812644960343098621115454486521148726327629813260393094273912910519844956144591471218952789570882019705917086068249540006370112792947737802314236819243531135675870387081338188202907433197512010304980832841703864693245082974286586715927177916425378783212907724754394890890922329409192727778502161462124186796161491341436851856803925380396305378053345731629639242801912077933356884234718081710438304562444882419590176194029459301959464789257131316863867177503283118668242859541174471455127252609955160496348099926955348115320200961287776797643360697908639395429305044836121575284181596828416755472184985337149152845733329363105627951696302197924482150609096885310476695647075727907711940413183552748271872941622625995664213918235919749041456863453847493992966311384848969585837788165103958965396730298914243758007549842951040763193938493588453011627737298992759844187161695195457686016785599146027642278268248185664566229539642343963875263662629699750475768536813272928058133963099051262952403373483388556992824145015640188291599848175805184911852458090829045375629267286839787479467766318092052077720367131892876742729829282626587363040384907514798531152203361143247705084048692663410122860603961497452750454194256789000198511377385417212193930138401248725070368042551434364287458016581804725278252200469593631667630139322924485385079955417826328913254997897267135837918540429745317573460740009885839845901701245143609867601615216534131237658508776459903989101941951587872364541552538205278874921207788030641301736972258225003544726477567912227372712488239871845143785847633121548559727217112450397961929918094937985720217676690394936948025532816698025177090166943102378603337179523980807274752184357078296032303149400950790385615521252191123467608529209201562224745460318124038112819179901638993616651358855891338603030522437130434423184678301652794215813886882960735306562097566593202087852335489159580119136835668667635471492374446818246556936566413054176240672468851154849185505966891576866857259073399212921568115471247741052370031027607926537714677607138470191724111045301258394727321628874586304694725811613833082410306000831891089928247873741705678751814905920128199097553056982907323661345838335051865675872241087643298629621627015443289954725555345266983838050708274673361289520512633344695211965469633181647554436554770849009019162529786290328566926675337374190977066691506974479344427487418433440583285578136740934960744526923624998774954824808903562898900914397877961038783610393745104691159199837833252011402889564571497903908536041915353093024120559577015961186940895390913559329832627360008949096479621355064651728224376719947305485477486512572321301171823720916624831624910476200788328836943386925277137351524344240239435130808389117329058677806922787744415240195968725887725615405476800616789286979177014335996179871496929733801061810463886258547837618861512874263460844095730093523583924747669355017725104140910581942253650422783349251630057749472542555521213288740837567367152759814054456737589786699215448020611750946192455942873561656106619319742826917446333931685627143272729714465091255301934713803636982074357645669499218765447537027576915652875940436694603813279143749041209163218535483581098445810783528903785682343079947336379629477820783825753492903324282655314436529571738846246503825457300322911140213122050435582856492435559986395105383603415657881816962439222849157729068564463527502699526841128163261030892279481938051564583503850546384230658358285749292422939564561593796855167150903511062555966811726206011405418293298088859578264829561785721198508294829703708416916553449808064709922278564859861539625169004967752811866735480161806043256054598708905225778153210258061805448099917099223886776304729472137616719612402920082188561021497613909707909941842927931638460304894435240695944416642458251119343747296109209424953983288457785238816583364356077244727259419149864962621038453473429986555147740557405711861770650117683153187162872127232347179942550454442882537074290117726766183008275200147343841276375560152267142121418916170141207898076173484646861408910933469148766734472493121779438069808559624472586112635254822109124894990735011643239601293844979018322257348663158754098482890753528484938023559110622831018078799489769621432974922421008510073464778859726490595525421726375652858761179581219988177441031715507481921037005090144428896311011627741221708158515516293062804913776342364173974783880073298284280492068454519694613216950950786890505333095958129553993019116557795316025684484260266660386750003504819407680409337773969257838857387386258130052744923206064141177679342325167238067755841055912551991255848048601549540530114950278689881163495585987689242501816382359747822186214252885213413774249682413655987768946296104608222240650768367780278201902679101107751770327512825768716435234136850082987882738544524545701303001933968300220287375158021047404774239093088997921425062225530944618175173965961343611928055615351944412018868451376448738824971663956406665651905041926417024443578624698524108486108617865132759069010201485898330068591892036967069151401170960540665744235106731398454074639811871319066526217430995808138481054570001969195520606386346929294267565367273016800933453525583220138565909041245431692842226355672062112511236276210259933342456148426937192282578171363492656728759557835387324056514089095044192799237041954183670569668405221909392397231805153610857549627124611658993561557594733731829233877106688162551417959399850194058494150740094098445638028687503275811489747077791967747000782909446196125494133520867048952171896846927397048457454933924255942873685036208796013343878877067822248325804837240728876168524924947126455266611812953582759956652372439111334542619918501202712849916812081106469668671496222945125059925055473916165018390949721756678326385542170040975079153396017406783281956617822024550408330281215210421896094573442441654076504875612857131470132063992484597510187304174148655723509440940515998060286059780677706452901307776818071037841959697190645253355031462687995295099390741009473600924986095709023370750525391198749201940331874978297607816761488114358229096342242135746471839050036972636795636672886364393708950913086944303397063746237022803408621817948562690033272531388909771006969216869533819827038454943382773772823283878098830907035529017458117676439254614428844033060848553277047488430914102579350051575206417715515198255843368305693560204525072393844674067072200132701764479325093839182190454103407361457992006356194708698011205807428469121868143437812997472621750635362782010009843283390929799593213223912938080014205577626298510514290156680883273922055149226682625111284357966404846168053663635801733415597815089085282412399578998729482921898384528663380951912629887394325177937166944768382910957219453658695894230248985398508601308920084156691390353030742044673206930915227196533276244487264710086817010342311833908183031499422816404416281300588176227242350114534451304491910123437815144033416315011746886400870606662424309326761649906070130709788600943902165835207969513954248260551212656962495049389404679848763993451583802877087133458606797818764133215237897921581213632767881747771292799927654021450645190716228869305493141083854162869266931571324902518199971031263888494585630830896578841536880649062559156745359266892143494123389945262760556698924419438083052231816603335059358837214158503534639128272304777389174029083787890896751861940017150463839324397106868483443412993062530006888158042231220692381971163260292429736743619217426970152745466533749090121679925916434939150041642918821463924141496157406249449802403493597851612418075704798246391838882322644246098936757342179861350579857063447885271439215038495540016554499441157804285597901290787351303399126449694770934263604374753559285126166149541533801023648344218196459883242169437679185067357717303976866791266231607490968168331786953862482226566671663381836904850122376220559459463198245113145533242338851095480103435303012141004773873276454881710645247918195426303043633818334642450601276690568463018486159448241006522031616460076012327846871205051057829572804542942688413434048675360054041401137294680976498847132864882034445383454341022235096171767375893518723865844389985794203734216732832909728520187567049468313209788633899100802473270328630575875375048102942448449707552883077823730148340908010073489237227103996476136005849957296736579389186981585088611996382818304233195880846877001649577678729987457607314145671884116204508379431182227911280418604928528380910229376915196904266069706011692966174561506465844917527897691580063240134714760945007945308505663200426396427608079329302439281202427661228088087109731957720218901249979661677817908952242968627873924148868848370421659446687884262479646310853142086762939405538859423822552575680960389132426884949307605266682721559424070544583838777237433799793829488309689172170414126529367502159470717013915973024110841176748347230387737646543287456312289518584341887828310973495164510350846459887046672124286910907333500389756024173816897197141527448469632708368007222769932245145064673878788125946179758460915210786616714463317648506827421617600210819429809061913820654331172669789269065592337023137687632757686825367964117321523495988972581411998365780395425320598042080487434186533504685689744970591240897288030842259827711770777266653581003332410548790388882914873544740932171144702666304072635539958585830348057573595562668925705380299957623564919035535555876003188703263712871195560744902114365199025512367095746665675837247956313759862464929894138887835233865771433467370846656776937929879206514482099883059296119511318740233188858646807129785140510705888171829745825313985453500313886288963465452051201403403987777957561594614791799470949466172571311107257449269013540660319826192092077472640634462932921205905448206267943908152673501543299574165936680084547125212116210638820054214827371778458442941982253841854096124782743133221261615620885644746974002083681097040642770101430064962220589163978703376980268068948604264129748813607306362681302107499332840397286140504072052654076900542469202998997246002645192253073496761206072482111719652797298780576231552355993447405050298519587595961489647297524290731606770605364081860118196665772057764627790808600061733580293030414517494077629447005338860142554633688563871438462378103611692700817078646229871341245680071480211228803210424872666244032527368457674295801304840802290887426133202809200344990887110770473463641294330204258400431657272106155733760142641724940265752385083108022906505929848888238482516256803575332553351316367731637861250992402094924953935132559601273859762670519181683227858859329651402498036662053656951618904350631693028965520022097835783697691375654334049783643332405852518598040193540585656508158338625557110614518263587894643483257992310283015398378752685686985106435224936106946036022360940555902542769493558672046215713797625674491186035923251753551029366524559569662097528099854321697508203427927097559877125240055039684515393989163908375373121655087130129964188138627389357799038951415426758075669402291551911499421868640118712485587916830247523347827807273945818821167375546763423953480492557457570241936266658831490713006847335376667367140203926659089101560625334236125307996212531620692544698770878066162050849814554386281285442937173199447764980687633888480527409788426311992261871458442218579978085614881444733637377361354914455583389854576788056909618051510836735591030321627620401077382703746388687768964854088676996574836042732438356284190178922908050687661163869505971773553436417839071056845931101808861659173351168647733337649117810058443140972314869576806590375259080367620021484807612552741552780709496592582072576678272634071471530688590743996912982255814737073387484695323584694236819606384328365673909462633690353983754650837948512632266856023779556581204581376189925486546653303477410168822638663730243474040903343996089764644902446684789557866956612276918770608355082626403522645883612689896793306392579416349936885574126125340919901399315713667199231874865368310993332885703853776549587457759694931794046691031158617852270979764847782017770513177811757394159360278339571476813389598034026970616317688497606967096962708524976503219472775093380569360480205424675063862852777816681521481156328451153540999082844599324999647598195241473675333361891418014343246318747354403302038192242947661050020635158085185045241315024566243882349610204728928492233598432355948811152855557318070888822925305750448606878379123781093265749769025441832466039923230647340182322332954840633138947868471561743198029284512785097756934721961250706388644271315376817827537708438129692607488153908752536168431666463403620955601296195076450592781940302271510161964572699562822832582997308733834745424836426396643918460828999197279714035506021740961603243482574202786317480928008084892780956215066367660558306032495084767943053210224349566498557048370537030903569310176486325867033520574797323231228755432919704963754982174021498473802254129140320628435548193303507137285230025546423653421589325975840250416700620180808364056993133256441083117062446890986593242664259690159913666554369110371351838981619856363765360419039608320534467886467780035865407160219750929652339302008084740853512315377901911258522997501573747956458910641004141154716254405823292456099918329162236926521784209042003547840177898404273294621461196647334743285509802195919149509844443297974244930103385681060769027972045161384375193048396110308925185413061872109552169525242480871415233476430612836895509207657974187751863937613559318874617256793268821958620382923307187693732208589065401114726740060596162002317306863894276201583755373037373678814343568312762655909156766125473619235888822060622623582593370428008605393096801041770781704214048365692704523981159199950152143534003921395956261458946732129961729413849471645177893285773340409642995886084296159185025550743900710987497063109419275113701404654672005260422495245507636860432779084690109260604232630892608581958949349410438748378236875186720456270899156940741752083546179272547232904786513036791918204633226100652975523660963764931617013074977611175722074696708411848046149606739155911079716047679380423368344077975135173344961725060169630696493130661167965355210373026914034379656142957706950492673836369876967275795069603543291411178245797365830964566380804114971763632226961287785252809459620369530382650453603927831645609306943567702693040335374406522497008965674388608602691432696846567764353631870228460927319632297998902316275907170568858695802465680891910731143683233242137581559164402461302993459420273926010291178814498783052309758457537991856815195406703372405317633795630889565435386021266745247350283059760349613154306060037937671286715712468483584368600662455000122276229410641566783171394541303499549041407595722863563686591477970256578845336789424511811394138371577268621950864740991329967391629430327276176178400550054914154255850311669686441315425171617519826416232122877635919740411968688967224696544580300221280313234753855481858697430941203901708231642260176352016396300913671650636176786395601889477750391749345369057983581437106789769069422830380273151909182903483050556800146772000164575507948511509759361521217347341555392782226332753262820361883427828210977509119816514570893852372480499785547101602321669350553385038166337092249567993496940274388220205205923502768872096192125643960532250989411025252497108320707937649570462828457662571994289353679121775864219848194360308826741544226360572520556230182884000692505237424675456823124695472029434087129698325585126104707312705126217336717973826350389760578715245497450848933118264560672627270824251699898280735048904763446442019164024343501072427832408283772366566988120144577598045049149023613984453749164286063484174711295667590516586360685033063252179128307344453386034055674384783273156279627343841653972202669955110231851048126040744531890451066420610095592695495909680432710286526968729368929059480348935160542264435238141241472843884796713644501085696351424673363994802861496191399309278869209975205292950550356440904568916570308874752726331471043139876706727232630917641760181787768574758797256997103669368330549608264095767116008928027945816169419372740696647554062193938407658642578985878178428499785957680689531425246506653594539840952215242351567963837549864992820019085050274930116082324541139548546694086579213684026039499659448665891800046604383775939700914165461368474284610152311928905002532083609830919419621401966142425157989766059081052784200947404047841298336778300448720121475019539212217551894176446971437554046021276432425297737096659962423868529815453195117373720115337140595875729001330301567148594197154901319267854125333743229196861545138327299943931361598828325277496710673598460621033049945344811207822789588596604877895219921777214566600867710736585552006068449089858784954431193073461976495443175210989571013474937688983215294806952126105794466707551977769063418575307185902109433452916906118177383111976339578460752096602809435855532573418321054406577342027916170560383821604703640974162287140860138371822766345668974928121358572351618879358358637126513722876004344730206036451161241483865233915519815240206937510184223972487475050673420225613844216959916722145351078999489331495686598150409252549271248164495697785053194326293171162824320057853206255970680752340726762073154125917292148632263040069238714362177044618810724165914069274598358587084049119473584426485363485220676865740015087754838504907039476660211923011376642968031016995137085102512477062956343547769681383500385245484145259086563056303759926597856336866455394878273554321690110435129793612843218473669730040376303716687602931097308774272396689080965505547447018601433652179255603488200227782580639817623584988016712087606315822611798128130683437528888107573494855564376926800573253361454088356294751963399641238357769175180304200230303528503625144603433989292581286874431332245129272907881712924593357660710992566379659836391359925958593084485893777128916426560686197881118875781388933601620394543990637005097798574902000658218097153120045535015129661114727552933336242951808150882453120059228018458209093110921966584022048567752025984183011130471642372601261832794688211953071224137494232214806806582632263806104013487975360646577710613613604934757583555943577935933438762947695346857680154328920930561629593966231001091737700343189443195177670369693508275656501315373754849096920167612776465187886170773806056260854570277851687523237754030716080949758799169796748742832892285342613747714238486426941196295657921047081607961237416580172238418139222703499648168288022360497579080935059903418950226597694355933211986320801810580441023358414021856973672280470204857052306927774762041093033303155413910685527556760389639894457727768482147157681250332134251917802375474884820323110218585353150671990534523153654070513377793966788380681810773215360552984674196330851611993776741326955766546730228369080934856887136551589148645243734424137371756174793930955243998212536682982168489740120659543276467058549122936577570433441001611019252848889410910998883918338440341394250644996281127614545566421289240612610104344744305591747702382073231153263126194262612815494562510133231474537583597327966860169564462075339557275058401323460301673606219768337428050188028055383228608147178499647163554480389660218460309754268342999079784417689161940308208504886818713519669454478927821334839731919799787737710379640989321230241783494082191610651636732094411235298652284541510865231967841345978525595036376137606150622940447800597162757577244595800755150242911793420735934816241202868727497149405598322226432261196336504902129081116669622637872977708576738359277928245928801057891496251038724966547520348536820861897975340997548150730223688201106176918542416604496585304643957102959785660579595908538797189519876387358879969533165363639553919387533293612328314740693355944764915061222448389682501410512033013197343657332020612818074795653347578306504825625004376239466701685111288429028463350690882141698099021487101221763685842754969255325551446212934245755558812876421945016155093225881848159573125962288730964745817790492557247765464106157808193309818715791241276254994196094978001097259138262597627280394939272820758178519402909786436913288355322952843113791459882568234264303890573459026472377858980644213587614188297633686504596923763760583986830521127576669965335189773892298669654864518171007571280001111444486042351694984611411101838047297324194879027703673098645381856637248838470063041400010924211770427769258081857412689261508339090652423644652224852312698197178336247599576489703070482766257090399136683536782598136147490231956942955371738715997032406037909560099006028123487453573528264447153260487367826180629311201781169276868015020681399246283005265338907804032086754008089829432901363111511192310885748900614920913468712371665702831271021995022085745662806485065802081075808435206042151460832574308972501112383305120568193208164531579558969535493805050501454180852196503855709447346749010090435135899503956221176478182168779420284495964308545896485165123987412419221819674019151216549215178287012446921438069690824481349604900706296406092783371476972293147939656442799213323243322760301392008782857395813932120100971477822406935008089364550153396598287877123436982885216081369763738611995474438496884708070856476157807813628692034577749740338728268714652759314880015423284577179012248950518974694087801627719810821270803815527541448119683024302644833578656782967827392454538598261274157036216136211370348638170714931523995223804449261472108580130950773204999285990464908933137393867092081921812756795542577118960360805669528420477381498094960994681036309685280238792016599687136613054070037689678454884690243837277977297440068949449575091926499283678646679691422044070985996483992821452304325005469222900018500200051993183904241377779356301742430475296385781101495107976391464949036987626969723578950076088370415128654205070304023827274975034571706682424797887937665094244563030277342534342070843269562842953753731764616896641358419328751347541333624847048323922479117164013102847110750884518735827348126510562070365177685737874239603886301834857944449925586391503755121017426951377316725935144828692627702129650536469490170948451839584134904689155570308027142330060000824074468601706783210009137064126151905532250447169715354584089599644643239357593055856076565483987625990165406799590969703176632457329318744302660862634030441827291549767716966295622399206582485794915840737848039838256467987325121500816955986576021234412621545001520365104382421891169060286391985709183520034042543713448877217732036320620239791133961080197503752769123782153073619770293393965520900201435715759448275924861195502174521545758547325461946047659193162477041934213170704069076664155033001244320979667750575137210406201753385230042083448847041754779992275771134840801660390709470684380194816963999686844561214738933774546119772192050454755930975416856473191077833204558622433587194508489080712587650931478477005303808341823076926794814544634921177267293323925470161931424222544994624601872786326760822638623575033517073102465254644878653501446196903558862306158028340922862382424090336298470660150061269214312927797276794783300562160434488838811838343137807698964177423530705766232529507190958621342474934114312903372495299118813444141718018957286141612991375263184945024429091300647182832849579882265738590102374067539036385966364909765690845848712274072676110610369900281596199007424123726402823112643563854824968144355470860883862503952936248223438231823972430483693795405507088319764471038858498562793677489661027219166849820724314990055395517980858543553665868282360800949909041526941177748046181073541165572825574453547900069432181151308507556019661361449123016361568759411569509740385318821743989722575975305004348001495729893208548278814159378019475113083779767176123471304877798508312781841317699705045627106096611810277173488598740076452066276713003692194468298897334230287285503986124084558775963586141490426091485982702620809124491635137476029277500809181479459535548771346959496698709640926465869589601165367032047807358418615864799595740206519197106950577013910015962925788695588482997361376482915130604135475222735378563337826774890504835604202375987660182280083704519678420237811016536275195233346716265723364156751201939350761818982568014273636489853900286440177237278147827795337177556228812619875129923995040196392022178362423170829204893374678217616380200489138925358841113334147887653769358297100355748415583526096893850305172833607615506343897905172425724002256634630762899209231821441551771122275128405741501640278336685205538724446829222407411651582373709044061667704589081272396427505204529395394422895241315907276793868252658662204107266109997407414986083942154447648220557212641257695648360678791021558201843835404459006185016953981768408020804291430422454841365450654590286686869618896405467993246030511093963653893369012276157235468188367081504382662411559039761091068859308063333231656396757630729897116721033485692795491123678023664321021155368942231618271451214585375638801541416443040457918154016845449221333430948859512202715602089597755970967320416086913976114146003805565532968343336185147962819614762819774632462369934486958417962449039990594931586193878937512422655746387137070076475745069548996267631419928774753398337257220459531170828170458829425234011276703761609068801401269933092869515615811353233770285058690676663637500663888036832936440215261869435927083398700774763694441540254926131639414355004697282797421560613881359939222962600681006065095416652972816492799109889355226641383166939304930268880168156325559607875946408246865061135864797477199246125018739277144065890536481038008445755047088149209165980758591702093716933176559363368512589510763860096918090725238342625554849389771579752866575062923098186053465583319237909168885185122137706268608037410773369715835801306777007448135413751516523536547951671665569498303295664880765842601330329092409823252070851284490292613397211311548896650253724285598231073890806455607614438286104644702275381357770757364633598063878330145385207879688698473297913068095657521597171320642489307003496311699235916191204294018205347931132865564315943594522053385493443672165722657079414239293576907488177382082891526488623598628466178603355883517376038150249469161557716996076339908118714120638240814782428584495203739998421596841476272006620792354361399648180657299668867908326385881580876858237630611902215983736592014121422602095878880306215044924253758080808699962654004128026030150001979418421054434526685318325087981488491312049022095387563886369865340717136292259374797153103241904585255695248166448835491994965004624401677214798807872447902874405954212862308140723770431161849658215432547162418604736399104681918961898980121478894436996444957308400483961905628032801802079856874165685897003301858671841634230005426284807174899149282373656740348421708626981678166486879458461777254885139702798827816019711147554890802809177739248733798809724374400553958829246469229579185760521058301087440879935803733085566087976630424231072343263589818235769622031645708816045925045405194988866701840190306158404182378252694548758157986800487445625076787968348073164007991024708473245372417958629129798030305954169456099948955389953451700877406116265475314641170397715057597612162769720796457091535456762391124039207633786860394311430531565430253404097384760621282263570583476317616312002346941680118570355032498769398278307357522106832687146569283889127008227380533601033750225958074349277104251345005558179456346759574898847952789301785920605035780229217302697800407308389460938786258501718772810667348796269936108538157928408077819591716326021108245924315613533769315421142237618114036931164367045561254424300385834895000065012966413762237083481843025808107970447501300439363191674183166388577315305479723587248192268181798415491735739756226856773660329856387970838986441779225282196224513363959885791449162353997118882412548686861266533041044969030780026712259022007833176387809869379317534778650575627502166212424352406468273698722135187840754004931452792284630171231062945830327979714328032300764588590972177654209465309569889023889123181017899299906362163513066470368013204458344394125313964684631824909333392731669959858927259706253891399782245060119863120012181041674146230730244481814395377150063172288907115358003502454310943433253853943649150689408288630763535041132430011961961174031423781693848518412267258277414882340422873572956286060951975490816863544188268980918174639045806146236789122704933972413216267978001891201978146101159957560897011602580343503859130276656945743201618788979705472949029618237790784620163246969687885045496529599901459252230392621669802366312123413726560622183650614591346053755828341601551485754037432947149840143307650221801209867356162207179340362966797169232433223149518985651978114364308576758479081603195985186449522697082091930977571408280118857170687115188457668224574058032530894240504276647551349755525742165315473959643227900545246794755690003990329382090150923443395420893225725015653056428362925294359673929419513112233005066848181427235275428629570288703413864725115225561713861255239763028231716596495974722215665813031298544479236251995237572047192421993362267628992347687841690716318806719943630310893034948809367902205337382762888944679094858439285928025681611166941199649857266395864347684448421061474639069847267022364383272982249506302131252218536984704487436671473489254047757028988185044798120541443820993295938562361783403036112487598727709171245077186294801184562932176237541772098827618076166150535132866958995716193767999186451367554464045792628390105281795332174360908879262360918656001743057021293133275161016764572617003575149738417889011657933791512547640442980646293190122138140209925678289754712354086282072210783038462681713638047912511986982009001557829454263296980041239935023338679895913780951238400047480502865177423467952019690412801502378643120051913708241031969960966917106971229830014156941953290381098757860215499887302254167591819815798795764480243506275195639005993060570564123996618160520095025568375816905578639387967620505821009102643527018366258519018366428634852011934442175385332592105148909958093091807756663449094195665351996052777917351507370613692926711743424379657972352582498610360116728220953177139643403408269524834343850329791915285604794428798406853710650297164686666662071227064846537211017513240975504758745426277995309335627609089476568715314401615190514221815956528702345853749985658471789306712016317143022826865672514661091661204586404988082874239557305737418028654300563595478339401041854530828390731190691268650583378981890767196951446929292315050686087325486034680224611609002994183023547498247515161261998945065166474106419236129498056121376765497240661924056503443996749165858451681381188373677543390093476909928170122791931731808884463010784346611294087847963554484459664561496182289045389460406057556955737749863774031719822055802068311972647679740645510957898334947550475096865295325206118935535341926952302822362497658038852735607951400530083261076348327433442237476886779978913829202309160521296056231633940674726808613045151949123124632653955610494777815113408947767742074379619445176444391510131357947570014313970633517249282712618139450786810721370411072273034544453025269403076740355542791996227485986739889678085562583710625348294910690450152922559865309478502999953853698244793225434655703795900595004251110358318424710256995710818333042209596010335903272663771692361922698277370944334356179937518679874769420853049145573934580691865107017622669161284927016454830674262251979944159936349528432212769391885465475034147463456019377294627536627025708321946749432426435014506376860410302680790493597891362621341424614688387153923880440235975342877758522861553509394616018454923239242249978874582614366986935404700641302573528596080618547765349537879635972769433337800517425922557872135215879462740523676871020690826028264015053351205630749295011740393379104065884204623589717325673404686906340354410119473116162287039285766929829934024537753955857733683848300860518904384354915274146586733404864624034784908038831510328271403351132331743723522666389885980054950232545368319573324994226255673049283587104999588266804487685772042692757820399041047180637838080823042345779515835595338313764961448907140716749440571423543289463806613402150018604458623523552756165374933896428917390995520354228423902897718799814541896562009202894093535070006809024569321191747651002373502043031892770389158653627926638316671743802262120710173371479902476767304145667882641645409436895288302070480243888826573140291045013247752168333781579895396776309424548358775492391870323261179168475231407823128077052486565821086595592859362566845205279343452557985016077715244008287701953696357768429361463489255159369499669695834015025287284517107141436338310438956899608050340692772546541981189348512417989492633406683229820393077481434690626483569899203397150868094497886504701800311637432973047029937314203321882376402754400378013172511700786026840734633595524373090530542117206243979817747006289513664358380954741103137801876807004595743072205380816095191294547287166338897150085451580402790505138065512527794971804780728251582276302397323471650244058339566730193006349978523039405495045113858616357107403258756154991889243734533089697136463521901030244432346041001142803109971486093420444768186230095447838797022240389141800298603208005696214659141965703517342385316305102187548266646998916413247555566898233784839467341219237938005086074034373351039292907310358962400352931763468290315700619097966135465839262140148461314721308821921555244460510846261933891675378235532686340407083579223922618942392671185500183698755416836453487131317083468421368760868498383733375465070519618016566185329066604637822717588938357489628683530920592735067178028296533424612248671372143719731391481754647255719572822661078726519696908781639901185773134431835071258259876276639957756762824855536464110943091713737110267184493811176022370554952814748616792328113517328097823005415835335023706630040542745776767707209231503101670164873814298387054749075474280786433710130012848632611690122392815885037070645938698295277222649855132473332995612908992186610794484896795390814703876481748557246597647391031724654252908992751929814841661139739362712326561837664800997972624181285817049312948699869547628988690394219224957125866296940599914621700377172362348547289092706465064240551002552212181851397322945966453706601542608297188987639611586568219614731620917709843938131349705644614403471717901769822568570475379854453616653797798803281856343552427164198925314831399491143618836363704797776283806374503881719186894373571212954822473943957132518470172468599327843347498836831676731994804543568987763386505491890077536266901564688804129032617997541601217940737563974919389873552733275632888304888024292321984115209576219359235170799414094248454137819898157839263147761954537056432946658786026524328514619128525740320145116647476034590399482373022087217603143195584191776252269985920027827145100034372445881832022209146082438491725910845178754507318251132165156119276329776413641398401925573271199086238736413023527337898490695844379497833850786611599779484346805376388931428270387694867404682665397866981794719174541327143382514069705951693153322864118367314647014878391351735067142112980244704136978580729150901448791980738902090102018775740566131812999137750998064345195537866582249715019637639450762214822888197233693374381432118003549418075419500497240521529417753936034069493398764156872438858301820753045870171301082151626611896443493520657391929804697468575558893432539534026670520323709692140609514134319389226925779253017923227976844140724355409792092773611103532473446507411688556261605222865967557136014631810699572240870570235542026286253420779815568808693206476916578645073969883055197092989925241169216974774986943243447111193056003864558927764011168861858791340687646626138351062869725788647584845558478172188748929485694208831523459117455376906529163868298983483551322974770604624999997631853457581714480239592450955716974527678618214366422587856601630564011274784408075695333882374831142387557567339340217612013859831152061736163236855970219636448220614214784670907271808650876395852684979764791726839110142154337409608942652884333289715674618985467796388484235115650157037359874008004373763856599865802671920244428635697705177883252896411909337757815188804567082855052168912708492107851412414586362811736103668794679433463759016068000273867084838865473018586771603089563637138310822558546769084654285311801091715695003160164309342849830146618152607054098366566651957040749493086446125544280286469731869472370629853085906467913077090070381175394474892826745284961269497055884707165845975159710102976458287884116018881660095661465278525347735951339501936610474177038220950030586516969645128123245894960149939601076020412387306566542102519385327469937314377263227289602901364017900785927222059359006234585884132584208274475698494931526045877646825480261512879192116728539258582145837299575709277741537690407170084143495069128456770452187292053677354730846242274411833090182163193461359682479569950001330901710202534097440717993505628932248966906873728941982438229094116350404319775608073901809318812607734975559380806665996836597838974281197988589778448464613107905928741100649444748770991292359046130227020470045791354703091037997631125618420040785688739873367471764926428651167663163764413110914102048922631013933664188595924223082570866081851410311216777089569377025193737253750261771120815120799358919179636540019044669565050162743360137138453691150011144217395658085892755324005958163243138568974325565245885832477869897689533832488771908116767600175097154616862069566287170950606882579634714331632421781044951846948556030514245965100035417811649965569841710992045336622711792647544876742393149406036828192016424862500390656109809058817552679188085203516638588397402094016667149468776517045720212030768709491917794110986020558264042773575350643413076878161669630436319055222965618837756398401831486315240437545842459618977037503632037661722168874869575854309126356923617274477513899810782355169982216017889148258415830736888918188287373934545731744918731477694837847555197694591868036119703714683219981469277211673756667619075870433918011343546866768663959117681623551700745661031341962872932602339098698121988256200725386371818000455817473822115297953412839269450633968217797496635973227402354411158483682731819056053080302929073163948974060019474766558903672897290604212512567232972747545237594668804226110264431888840467735994925543265215063139750395871163594317077211849220685320951338475496752053491424462318220979107223687010787757630256820534460148045855491881399441702927590258321530970628283643222120652215688605877086321468051783749213407776515503039055254658521216854219843733109911591934930336612206007539542066434934219286918930391366015333083673242500147319229701562433072763767074552249417105115461109537703690187206740815220874021844888109964855875761081191776300265733224448846803040099452516590227342287924606464809735836220056368732527407430729495568922636696817422356266784020159334849432909670072833435420832820245532474850451325160682034574239222909130582120398926966562730506671928064038264659774190293346749096020000123843007155162150021566836837558075127985890153487752317782415179530994625740733226595507748440453231598882991714482802429286000790222977133991670266016610642591723260157617450371900648892728480862980964735874747770838837549818720474525953630543521913400874577645433471326767898324346694685563110963406221344248451201808415924751275270292827514078798181444639177680265978821133093123222162474778389564208899412199083211496257427286004502719965068694673097291088254170507633724145440509683960116574524386079166535612086053686840109111202468900535584118632732309407862320076867669835525160611641754101037113135178660575826004462868445504043318013080367014183381655459864588717255001934775262892783341589593413200329519814528054266354215549939966216012159162838672657179931892580270363671036377385631860086993688010804293009358298661809963368818070570238414616767645228221014203208012844349216354867127056907851221190281123117696989181571494467733223039593119857544494165502595510621879851953818952092370485454433355394129297347477425982905137484505953760955414416208292023122040479572222864992694923672098545149387370487924368728671078160833718763672769784312576008932987520113778349288610616048010382125998823872517009359606128130703865384552187545781114485894855196081001059333278083789822371284696422154251441668942008932777263005664232317280253331855789222211170547810264199935947019628438501913934689254421102644701564378652014329534780095063217793321292089925511247919529496707421386745713257718035792610582693309914688328922474588505816579015123464415892277573296864094640880540769589807614868108174751227899068404489031430583183312591002031395361123919835710549030027330955845092522232366110712937001401377845595167439049831981277094212111120872461262650614042440815846742352216942998967593795631762737895380247833450974940122679866759142478248918982419790034545606514615861007589473765592369083228456100189786879142367420747578841632567416377001197032953371671637423606624575855439441222522998983114561700595007606028772862281979450028042038073885477473112684447779235284127766871085184230847676539780710434633199076312960995726522102422832373880838771416272069992556177409511987616440216019257322483608203337555201709023954938242088427931970316631785292879348744106160711566322260707013161860585389982188928322083708585331807259495723078440622688379184809134280394792832642817344180845992633395719668667132489799355914641059576369701391573895017681010348584915695453354796935911208779752656991903164275083145092377681894609554615946632151533158094927497376481408276136456407746228554942325667829498335818293908304222618512392929675816414458038857863995698289120504776041824630115389662348884307354441743500661186480923873008050751091339028009997125372498096132195441038068702969273093061548802791478382667318476261272777654644823549095441888110351533755399476983501624915921682332443687339152571939180060903535832782743201067319488462711080764559925833423489687145179107811273335548760441424820500010784939052307196656614868510331074691889634650431929794672419212715802184708276304123190000432462533000197992163659001500658278943365142475415604612103813751562310784205689579941118024295694681799419398516900776521063694269495155098305215907196963631891275662762985353882707064926864787256988758843698318869334935000578005147674504560173513347161679279710021490363114640561713436157819257511982455386556370790693285285696740547334437091659234785044659842420815930126256037403021442822339425411380464620388279004438260131171822011808407994477146725547793952638608460535052591601875829829896652753825264197689481703921683205865226812489570597700561118279095617899530309660986527068134674078517630884299853110141041942311872744068739416277304579924157688085057704559023316799273399222473397725955185832257901933663013857121642648240182981097524394193641151737706258826242668646174926828256666825065100082705566521958118241688519963047476308219239746397255513158679566326933175141697959010919301750128589951001760600410174416406770120779232350783447277672484890436286364862268196954028486104140490644663866079332397896737809846380267475514233511189744727536528814408737013232742068827626134723339574759377106241486507300558506155361385198998808410405782794528822270588693027968522163644854803418291332691066277554786402976225216937109462036504890705931363844216570007556880651070086448253485755866662955509629389441909637119318786502793248146757170478664911950424283845243209199560203641453533485737517419672120271692117005327392411290980513809217851898704563775276897648516739482688753684599878586515793151481710575347821241210047318620778978470071758693253973509499699871138291941905673107351108894488620115462754488310292625806043271922732384541848424755481465211806042762288357945838244204140049175362448373969280788251670665270157537202752863629171675287813362480396993068256031963676210072241589487835333452796561950060791287193635331841207046536577659591534519240672281690245616857582171514422698007605941090988979733818852017755713881366909573029775178920948707552438811718471117443763108293556125490763712734090761031661325782251980632497761882115554380862696475415069694604291012310679803171299460231578062774343276785993627401230278206036688264204779838991522578368121635052171565788208471311029813008633354470956681815350412389106555560259349205234080419854877756480034153666454520352386152437559790953211339614845482965267284617039688867473103218642663604362548249826482390070063940357451172764130956879395810465817457163803571523648282042915568357905988174663346196585080120445900636947146726479068495880609247983403831655083983658813672134090589246386866460390645976734113129153328242064305089261369432883820728358121492294988399515394284261597005516255940474234335461585525420747200383571625528549835576945814970933133647812128080540850066775006929522649502447920907366712044764099054418960259852386678030769371619816701723699027352797568812498227353572309870249797000049684250061920761543958250785774827656942149574911827621810715841388461094681770642208526745704078012410416582096752212728142225266753419339534595881315194049153397409041774801768016668002340222538502620179700489910813202584622603195090401158524733889790662735473927089343630356978215054296561895929997407920635984877552353003684831875175161802665110569257951197911551753406832071741712036252639766250262196654393443305935308997410809389657869316607968393015298245568947525890169596845647174266006679891480071754232522277215079189248382609008081498311793345586304270722674038373243937203865001042199191659158089151800135966219513583819194866020219058837606323192532178257881056408551225379653629799239505940491273993038892874724201983669686156194320484635367086748017049564057136719545366159501434005274320103289423487371492661635243721717996238939400224536784413329079555732442395383953007785073764624328809123406270745863199285133628098825333130118595448136195959509454769194886480753007856641921561710534648955213650617287466898095770511794562606916135075619618949616078784007128523361731863767064023025552041254522213000281237284197430967195820000171760227183925882080384084100949112696017019940283901724067982065659614528794910662875244964559731190374478488609419300652573429744750710600318014799369744958920763695579461773002845771081659149275829478143245407163084527843282221473162866312706980286622267826400875673210802227533152418998000534478481049425906699124203255686805436674754472489482901964800590545088198804208313112507934154817974397931123393117738080738675916997328553705339322655946784457129209073250483262079307091819025059805106792794615884621069686730134107166777674375953246012438471562285787455402208645348452565961645463326820723192163381205463904062749938240289618920854001526042166850684221464369266329526114113125109372946305611116694856899354515911048495594998535422641340959531062058089351334093521673842458259527243927888674585728793466833086303913376871155197242874316049422429351092016392036093535292894652480363103406610613440594139869602437029493732581146179538090122349838770895496594477030048522490008380038586660077665501118033861693926003323426258800897140399767552122268530027846917518558414005830559577880306082351349861166861479349533441919842683004040438156862276576723548015494876948858976712155697975530710095095371375484630375688375417114358021103426300906630928315597212003601146588297888386303415849185578890788113117842004500087116991618815968600110749272267666278664175078536311738529328348296974859219514574279373086896534254169381254854288233809568494016394398418356180782260751550747800192982605326843691898366266804260762784359081715528942276833984207336576666033905589614566103922122825371996627939093258962477981172852036980943885583246006048803135051148329668831092950731451133865022647682279515794357173361639030264649296322818686233302343314882390678390648311090513890307295906224797140527862032695336724052633770138218043043883224948056569841450020693030877217102017972470392952103350477186163898230449150339271489483286903651866803044782894642598488990366343233689310092114911876825006728522769770806484327653761547460003346571235313528474425888263934806145465163075333725764015335322666454037225968332266385032306091845104746083019400890564218974900401896812799310262938703450231183632873330610039995990085633613265544292273483390014461802462212324738302469580865230177175587003553365707243528413055704353977507425652489247382318055909969950440812876304211064543888682690896670863265072757825860417363330975674855796882321757219002125203483813400624527218570527249512864102565245423336545474801197456428656101416666271940746965806427324484486710194245760070172753646944206899002436234523053918126299533627167001992283932305888338962739587044806711238186443844678531873403773215363358861371736359068896454575647696463185244844415927302616481040419634919698167465512657292041532147816245706615996450118810850897907569393771875026385226187396633210549157263917855624238216046996840751423340260947662451951298387027891174798735150463328028227787902267535516184990091002272443122232280989826639913390845862267486039482776569871127096845189139754306708851168521563420801395868832839331129959545082337152860190058072640305193591569280225371195731063086964531251786568526313963918403856247364292944538637525208360541854690403008751733997445313227234656867581360514501107210669469541320220038839821401585686481820379646426052268200663448485681249706941385297500431767517554978778822674374049564460569885258666799472136808285493187475420283619710187684459193701546424137496371806099082843763059680876600323170969894221802563405580655698422096083255275740580043501848346584531938559180481971206507954892667687984064299209412664786943270694020188244666942981352420195489247534591383217909640713925623447864866475029030753276273741978566203783134546296541041303968836155720374978324051383404962471566344861997669274844442051185911188533109824583496627798019675115245166927613852834786811475069274815886143615391955316148901658272807833830462267105642094900842375707345389228497996010401434118189205898923226904597696029094334123503802188427596101230699262437874676034439790714156367009150366227488013583428882412410459912238324256427107709926372262204032409745108931711740924911693553598788847627455730136026184389281839428091870671401171709129503291686141023439083806500116094374806334658833256381478491860187239203765100898453648548479913315080623541297595868234319437603962106493637199578532897272578938577994722257729359004345455879652774565909525189945170445915048779556993785578080219422160854782373715451325099806213190864048185204770895250804397550874441431061099051726115057307289603295955635662194283973925683474875144080120461891740359116654400620208563486824043684529260469353844007870896586593864552484166874464639312363249057148522281850391521854494329582498552874479922240791193189753437801443957851924589776492016908530873901933266112575359905494080567804188729356745448607773358325111162533749363276548368696995779695703166221999138387313091255463362150093474424211052448029909428112660455818963455420445315693991448232385666096369158165829514627691197972679890775163374127221078985448977904333963342289793924256950915591762315473603435757076297749828401187470519923053644163848749758206234713330512634003427394380656915570665066813856062773997043719462856921962905495890803829322726057235143190487531866569955470728981634488749183928503919971070234790597609214359020738581855522262400692431649506962104235425438004640180887507308798009879664629231589350430795458160338951242617834474306426286057551436172568427400834736645434354920780515136997428614075589726597544589879656291189227044162305118516970688782372528635536028828964018053684356405934606400760958765560942194068102011450344273219227561602769920744283977331610475948687522833647255260148169474328437296350091225401505807379215348361250194831103607483395461912908037192286976957402681618270283461492166246046874348470037612235321051669362983164805961135435810843860271284007710907669679998165300284609737723185219340681473490440052170827384219476634255852063754799741616353747439237203556125601942686551745104707601468788008070151545945585176426229778184864896257571152484558626979233320007943885233791578500153561240295071717596671217209280836169690857811451401415381904238408637488440268550378502495833313571040703939525583035854596138070017477701700063295018237472520399686211067129913144953214701363711227082870645799785356923579265787019032028860804938277260911076465908726797357461001627201590865931443538947900924690860563293520481760000904046830619150749956361225676515934283053548535484657330659137477212264625554464464481007728733576078900096032480256725085659014431450460599944910810650699222993427628543896243138955334336471241014153843616463210379882114973721289090615908865562802328732818678104188983806515116844250251398777799956106697833106059737603931302248951609360270946312114362092200766831920854699904170349887135529802961515614648260731820178672172832085437499606728297591649521976628889520114465777197238735154687415498769340555492401090919001931828770757025066685289329719730245485687059960781587299961709793410249753477421031310790911298826232039597822607663581373008723498505685976271389944249811689546027543112462744697336591776078768190149121479824210964469749508776810111088132171244485770315693669400080057937196727787358854115839315544693265992978643834399991278620510250954854095964135028374387782907326530240488733728396406842030733784551737051239123594179473611483561841595944568901457279104208053710334057913780534204413405420337880366613627817035104212430053242240003512344056951827844749139928004322830539396005734902729977585385609554040369967045583866265805457956439475761394388194758256067679447088542045941432739304057672530820992677677617293619029045557753081491715403330755648813643717341281100691702875152569000520155587554824429502635658853244817339277174579918298236016202246939060099137339632696495068557414912113641282557530254879200591427302141902073621766402202510529197258650443472644148471866770006386828843307192491903357064037345750852706319732220768855311035334622694374974570213492397028232020397452781709825264724132461641411054553724664662835600979963460974965896289812656498173932108115058117771806600132753138774489029602624292485362737433636748214191716416918199654746332460195486061679572553037674306678615746491669263509827540154219009563828189494956827891274888868078420573545393801436019251987686520482031385413807425942588976284234017124600928252461613035969955921021645777819177975212243259195021655067560039424840406549451296844153909486414282104166901232237172739263638095628039509595926615493899529819258643718735621058402043703027549961322625292627306203798034982614737507659176988667030925516668018048117198511797630211359933693630471343653916951372211445512847200088594470748617450281933199050423720888979440445443662158599466753764162773985723305887590745473126103190913810524038633789904695348785030915564163190586567738631765765326356541328824397634642316034416170226262012093372124182684080830839212586003986064417207137249861429224992829670476870900029572229327171449643781956661033280092151710033258100567698041261286876146892537786478923145201590776694410249678717300827625628621316395902487809132067582853040653906006191891182735519023813831566175755079879529199220635301694713374284544136847750895934661515154099663301698374941311271524942259160864667016934272514179167413325903394428185196507848477926307955372728145900951071002188118300508453423464775746655247983751647169649009148255892544942542345332956404095360089737608876887067498850078609738879433140308874767756932244097763647017118633093621531228812062427215426415091975549820209430800230329480771772495908305901451705556465439599850927509559135851263546000252717061192417258656999524896151331500184284101116644656776797736204054196571908306607880198661606881889230230249234936780935766341745468915651003503566513685151900929585776125227476562024270228000680397454070745030668485684567684047697495871592238969811919661792134857698280992749741990285025598861188740771764816476413912610058853975277753778246744176164613826275874952820734713996827902749775236062759542005705196867693087374570961273585239003274534206122214242688165424330493625276145613844680432330747601780208931412704108860441922811831410371764880666294858714960959497945614911918382225434498532523644989392110403574783110121177410536600759344796435434866744692578168773557392277643922739618279520622914621276927857394633620272515274524586827950597275787196403340936619350734891302365946616952685820228430205969250798204356404109688517307005382673452843436927931265781460226362589493560281919369301604128019741910568167471717878684600997688517159144497410825132917583203766779302069584609435538271779243016832303185481055892154984356412750792660901126844032783052975949960997657247889517588325161833124425093503391047935552725167922409468418812056003357614017747104592998021356333536433092760973935827838958542854801394746566385016522207718522934850735592118037046712236957966260687947881779304524516338343687212510395856078466831168209354329027380732364121497703425411115439603734193994404327838860880987595218469374092642368561824114164762370104881088282868362577210194969962894857433715266830559039125545876221788258937879128438162942440163371195576171981125728598847195460801193775905223325364498271064488171265946200259355854149470613407535598254427007861681148140326528020567346941078274766055002104025800122947282817948363609078639575325280742677808960623845437982742441452072500593232075514905534901771345333346085746023617937614347546514408765872862070121518662219897100057584480392400316988459120209660404279791690247169129986389521282044586848477708920134412092250070758724083544040114825775666451702313294924621277873468840100323461983691231816967709809781147781237384365945478316994957721375798123946188401891505836623313822967226095451774690949814322590535922639814544179776304631909864916432759497553760205892543628665845536957274142153889714808134680108347112253760562338627169698724425011904722768369408196144192368873316614029613976830355319682005407686321810854255617860776492436709679264068365500948254039702645112794468284265012691139520125771183810708038196371734631391240907567754664229597637035267261526802517148248606039166438576462525079049497593224152241474109594335435492341794965914467920533841963862275798508548973819253256789170310516912327266964991667325059920976247338781721191206292898282181162391524513922963712827992859113014041987717579831522668618965907699601388986238388445847582590095575924675051889419769643178234226698963620118964112406544474956078685804075419077856652735478147612809746852927073366603170175684448105593058017136587815789473833031860078078574013844291296338655132568971212216305991126442531981512490295523628711929721885164008352042949694849397297126495923225373938970234597475755863496592496040146114980052693976659854679716541772434778809096022665828419015259044253551219748991552957098671217679950249932216809687775174848931699843856721531978693698999764446615696253955651021203475361322352933195786360280768845067364335023525437546186881785399206940788834286629640192014804079860926169099072715869172618665358661645308748513623318417747208904828944519100283779314441807724564772056941159539355243057913961468668731512289026508191636341995679389912701722470228568148257899425293948423740160509300623756429154358584796940047965614400312774486984561177963467045013805021531542157780023809631089667756448500512047756886963610526411991601716356742865544115857578166676792505864117530057022078571128600637936845177622897642648925495973664382524242174113742004275849635752821077292459736551476468332286528570295875144220940893252798113671053886924611345261281503530021837659359666516945699029521645022469565785088772204219238579077719611232169682847733546040472678524365552251359210308264070877946186125567410883074225791638546453275496553178497162787375111249278222870791289386434277225260665077898405956828273496189243297701462560738956882169763084172403240250601880100168123120587161142780134930533775413527603370548174997957660660265048909191026858622648338025979552038168897278723187353787543455012852267978268458850680007206388236761966777847278414740059485471254387312528521495566110128792729684818493054332941698951090005480470327977765181496748116467192035300666705070302524206820063322200844775341423682446817131404454419022915051553021644345586259321439585904253840359063365764496388160953782004534906927656802695240875272564628432488016445444785374627958471352594038361669939246489136339606874027778795864800681825654378656295656290741778481376562563437620618840019443130436463853749139254141672250293614483155433478327517781251911503173089619289185766271140473391178096452470837756754006698467359193378580833244111444822853395329019124570543385451926418147217781006508299939139625452051957147102193607029247522584401745809967899885253281740009268570245265439372945847180642160773831391483599327686341920154236690940447328537054024119474423487250911159060495141076442608356897590119740229788723361456422551024432128118235039406626638116893607978997785521808220976174766768809860662316515033702940488398630650327446345375473545915017336673651560813454364519717225455810445482172663460415546189903089519961452508659175420495611438401130052379203297285055634091645383706660502042086221998145050570692605720600212878424579157986932006160700916917704675794423697638987154994539737301206280021838178154660378725129610157049086419436380908224285813040686310387615369055292155402280903138130830007434817946487807613465412635186946085720653414189889874735333287064277396186569331798120147888822693314537682122046116511344205991866542183110284945312638700168743448224852397755709359648118006531173730151378038046539934686509407116795645428609932085477132340586593719497838753878807661315703573734110527151794776846327086133276372983106393435702979107230911324751125350809601972503040897714677830107264766054470206705360367059060734060642743514889406299084453345211244044148402629293110145998026438513318128528229570398098369531786928069179953760081034494763340002960143782159389850668355581506923016754336931167151800563177027209556662004386128928172508206975513756504327801600816601322278957635075173031990509178094482376109427883633691664773744442348491447405184771664094510926404398424486683046103200564935533302154890574102361847818072169982567212652840722387821484016745638232494456574738594723363148600759822868858775140293378359570797855536376773741771645412554949188911672277911575227215913194120002458199752156512650604160565218155518250171920677218205303663875637424546335174322406111641474028996591747583744459288117098573377467494795850654377905541032897062232267586818112775568850801792365012648044438257052138075568697303139439976464816991970013458731150912812020593465051200762524954659158140350887466613725062376292991231374816637472203047353905150133300595261700870458762215594362729360847037045130080142931363073542347970719416430477388495342746498274320180490761285957213876508224642705984413743705502921573245023759250252148603665582198738745555082005872604879339168471812064144503535887287379877596915623553829238167224075583027738261458954830656819063267374541630283701577349396637497096760244862697949199864581742194509735400292713204482809774872867812579686266643031823992165130842588363816059841279080823320885221080909102777729675541898354910169295891237196299040208938081599053376894457290573194860765500211020903332090755135029162526234788344571583714057317871036297280822601119846645459261598800468459636168749463696246328327394529591793826588086759878849802947508853414835695402666970811279736124607199197677997999491883786535805508764691768561242909705078479548484547694690987296567504422960634648944063038691442240793788230279054973974938250455451245874980312063137756320361221985937808354055826821898087080779773732881441832400651872587241535315346018120149380539138514004093968096054662014293454927973537309338737230835580376109067006063326605458324918985030354206753857064336029350552460947053191750362378545663549612047153139072167328736196716051340316194654425166311383540785490428616843978699947880940951219757547821106474615838282904795158877731136406009470263069122643459421154303724327899213435636111360852992351348976400874979206887862565862229905076109031718051190407758077741526956701749722461356085682196364694777789421282184531045080774232449101671939307036798121865942229025661535011928281037039676495643196561849590243288630921743402751711809714104313776675852001950646083208190929892638086700930515340069744349653190342903779935361371635716675413473215407903589291810282652731108329826575113874392744274457054424773472036569799520206030064846468715820916749650061865255828532744886069820414169818858768791756392019064093301246104553888571373015817296818418230829370575418900529028334442245701506957379415826162100850237070597961692983355907452506397607086415598391961945334662096689574061622393347496432687405911219726979556139421822925610975625007374446253123277421928407656749800148312378778730275571375738389830109429239307582982864460980617651839415704732830629537117046876030747452829722444012545521039324125374814855308239171118801730820380253340713531213494604685053405108081322933000291480018121411605119652315393438668595082131399943598564676011938102587344190631988502357422946450241116441255078407769158736637297529115965286830842032993793787593705050418608540511298585103307199196013445333465880806923980701766247975460484224852719073933042112097472367929131721129500559041295906755048259919761783831590849308628753553930493814609516422360214440316192151566249533767590399103559680799997123247244283156582047034547432082617563196225652742748956076907926221774418112470060915915901479783621076348241013954148101651335398549164979409060137867125306485065472815392983965044185963633683792138316712534847881344464255354537588650401612413065503596951979885294476366803747591686865679970220776176062030624415547184197340462721155495072498359421732476723453793042597865843151391442561526339131112138520874051508754242679774601344399047787430526747308527121848010213372270881933622953916630685006625127865890354099175691397609006908893396445988785562333306414701598882666813209608403932865509410962323115192682474085308814610275879288775529668291205203870092527953680688775137685468119982994784986777002304623302219732626006667101401472657990298304057210505258517104891120100053062602404035264814410975070874864751500230665113169337463255208476018339653513932006639408422725880110807410974241130321865982815057687549661711173863961855016405886435334585970205504522537092961226508927621742352770930974949808514897895019812390405922446561858490760171562358766470349517435454025775209751382105968919512174233257874304321484475804574963979892220966951670987027888554859918325655193327950329721434546530325203157278799149443562011538483932383231752430366464474407735197432519667505205717132498034080916103667950325153951474484944929663972464932368700663456131427579131008329048900849554351972050349075310074987263596666957362309555534754246383367479753220923944066285840640285105903359460892470871861946192343660194099235584607512026019271180489404102386138891696829310745507183526972953104681750969676508166279113434153218330277472591205218069699382333871930098661940556471957604850046688593927602009357848803534826505420733555000076272504076516739003029835233505822995215433255557186161490954223869537434714962111269117886411808933816163714520043918393912066983478187500192944557735091807250028685431651187055571542925198458571347237640830242322325991469168760252125255321587194703381550972223703888924536329258370193674774890136990864966074724614998110981416302085531730333440392929082367146319395742804780951022951653275251937110995993016204791816934606271413303660595836033252271908047583549594498799274377140544997957041754488243592021836910791681691878982147831938228373866564964990696019962779298529203519134172866850769803454819266964769856086379702385461198782204694473181260299460083396812260201503366783282064977860117978426804247348995998241332539173316404976634834809194097869838318717564199228745074523923588552851839913638612247597268871687154064559116518278714367209102268270939849940860409430309593873802192443542765041668266403202667109111324656097687480328324227185124950213124353454814602245499430208871795351781259877670782810972302545332444766961438904520667720898964110208140806759800427943545452519621505315119272740218265411656748401475544766969712821677604547201967503817135213699673548720558226495171654093247479233987967821845495975014622537886167265637338615134551429558453908371172401949864603298192056063926903850488326906757094318566578287119489213654647643857975947927121243643129863509752943261457170108910875234263891984546227552243767458852677642986832794260733594992568792603681102515323724247937441571382802747049935077039467391005534680737148810380145962434943826349321009252154954406424966173222927175660623314611797169121935519157480205421884181000813016614565727671599667168701858217807797114571279895933665754802899370830396278139580352086489264332580448649944841882179179189766882941803936796076299474927851262114423307615284191787785246903914459788967055330669795001357667722207811410003697365722180078184555125553074251624024646152222803186025822580648499816145422782884191219428283751433736119217193312959994245021375233464014576371047048275194893650743622319219914575217638969161368351321944911819801494317214727388349831367814505181193807795462285530464572223922974967000584371877212156423369940278685956931583652101209988931772401478820675825022782022624472909078520876336119561057554668737663500630893030017345007131243592782713819232564808333453393598804528866047554144877216154775216194510530793140486545343475494815506659739825255358053167105090240067490097710658803393263174551665687163723932408653903785900877715150417238459740356354596813867845203199115482538542886602948393494180448278474508649088384962738750376139040880176235393258441849960137793196887924547070877570694444629113991294974556453843080275710849925919495295410505792309992857963531151525931065678683980146400699514632569948945588953915210420817363791359183385850269912506660208958861031817951543734176586829745435112972566348609345287413665751770714726069267264937888516156145570747122920956781819752037932335810815770813824111729373092982551675657950917980678828355706006193446156079697796204548042600673083062397268445333888459689736562509787667533829846261536433436390007627682972153490902108563122513574821643539539223935544320320285887863146624902547016128477112929077077250787608033755442624976079122183691722705864427552222954504479361324749126876112084956168304539372376853217594128247633770799231802971416250198035756369612200453910635894417358523169655315821456849806461232118485759596553251321892211041114381657452079366290627032553404789308188225750806372256846280867913795867401275371689617238574892430749077612369542982821944605773050425158803770558731332665188032158629880034991545914064203088594620607064683653733558620115879966662332751272004122058861128204054255230430465999664227774945432579404745805807828750279190227832060005024110174982046849568621626495635577210693131668900582016310510191657268884968793719441589448401444718744525473657139228898412419435625909008480217993069668510370478641977643361109978025236333634334889484760284507509870996914864767380571999101990120312884858181413531376617121331256291441037561694655213122847618168199249518017586070769767701921368584768978606181444991266426028706201281989319096311264796603261326985482367983989270864231627043975497716525520919860427697207730711368800409866664862544911089000492912055185810410744984609664466118358791649459659292106681866519498267762246407321776754742083828610030094993135700655179758365796438480847144155208550523353597271470422223010235041806965155943093500046241948884873837909747668379792421205927855143596195944338208965717681165767861565513530448904053401802291365307591014045711506793921842228594136991111700685263656266880623913893732555762778180087847019236536526264148344063168754026253222256165463012672889405681139191231751774803140363902474206419452859425683132731214465988304814496508619681796832300996881209927728399274021739979394707177721425423262364776159251886268467672108125220266176914473432400167973505908693699496637862875575249484845768107210984228671057318877075914474269070891471763320589131400789863990030762777052032613352415793828407000438899166873463270694550833805066740761358193581142480844585157137938125375493958166991575156323511101625785416247166090559748110146772212702387483896683341356005985320731182204717506093597878342087228678078825984670386932318924530170132769245551993961997912954989996496673934868710189748134854130348915464928814489225076709545056853218892677834885324460877075844029604922485842885364210450642236540594584372376167363526267581685471436154165097598236624569632721587590981307480299478000943767010925481898188458850359763611638164861848533117058794563886658345672890231137893190991244929324600609399148982963462989242908955320640146457858835109943118623880426812140627860120496906914580185974794009886166449317155705524360994701186327886873522062422448036744011745258784705439090007442928008587124282102515083414223931746630662815993138166620027170806108254008162791017698746033574168681744475819627168460406953599080786833234516433993795485973334192417904255549957835057181941626317629028489234234153584337600374218554447232920340101074285889234060175662257848275764293062070301941938753651235327175031403910739720580434783400264627188967344218008601020583332712397760358010088687572441581362956088499927573903617839294805779868264239644288659249183153522805412687960230574934510387178164618124720324740233012811718856974774780644980670052028152179832872769960857777867510362000961579901863157083789015698725543965151276563772550723512158680780615345878155544945329232706916586051936170086341113833711199793956325927544020353795321207202138628097520708817853406722575499297780988464890270379879161397504205078606459418429097385540763203924660098401036470269073274019844138138054309037280137947329110230553123293714792257384310675237229763578395493606710494228988383142251891683206357533808486114725973663089274770376164434509124939587772364784681607031067019888824246067976744436365433977745730180564186095069050870635215141888954912876640767298055266125418679725749591516257186947747483140586849181655896505468281823403351613526320381952419857008357094293363801519407206386030279007792133268293491639849890331733607319215156625518252686685360787274857987989831097302860344853231769849805800262980855978891938059758257244642127955560226191739620422351841413924980855677185821798592260690745337405507910330931527733750382926878459157030253955167496097084294824140055507863724758488936685347138559144178093395795329538185191251093903401393060625727225702989700805514861956066803769021426376077103741089760624259705898622413963272779562398586180130670703671021053950014735845790522018005872652937698128882963080692463656143807036773415898021620422491561599567496032352768929731477925336316950578548989085190172688160863688348671390005252172838280556353461650948696848929813889911389975544182453405990081876186636974258304592557928741037424148115455720845987271369934587249141716269686518408956651336270228191444382779705447140661260994343246830077395234458651963039324498382762047160950070979072026142974400616319184333780433011924670751931647679908277720167413165125983293404613061603318141773489837079083819246524334287999967403054114961456982561205165463106606364237666702200257048942109593280113539885991085550085213691154775375661481020265865497985128433639985309424697041847138406212514644261964105283138254353950807708331430824658470158699720810876879370916163501268729814251273743668033228966445075238728105141364554657149209678908077224552008123500257075919819600270170348724829908174055805847306605489792289040056218030154404235942020203679289616464198420228859744030973778831482044495377147405878794899362303977807534182797917121347425692878333504652675360018412841259927737321492263385645812385915791457450378083545239572086077136312841866247235800483607119778308857466200812056503504321713213906529814881086939709570807227104767229753963452638763168934549693986201116114811103005994306494750400826664731718949449943700311055201897630877671009102183525265104911444501368237546278275743029941064625659497173002082186479505383732531498813204522348385553598516062116298622106603034928284618043546779734851328442750081176700084159038734785945100334556686934060656237092279173506068392184634316581904345487298920859398898658729724667650039799634311705491526998917499145186114834981609232815751391209222201255627676045548038022157344708880286081233811672836062320360532512047258484977951793764456806954234429743924188525400036903986210392140521199303253799033384443804681674795845031689365180455330310155150742838161056967850533503565289407859032527431312304092785239410330881378092502834377140280209968144418752888900574311343475254153735936877226197400656714101989803647622280477242047706745773800964528378713839087491855840236808105353916749035111879920452637072520330994370543554422780642137979790872460015567287117797628844676584700095287583183421915929518930631284258583810073843053084543345355784584305635160627036544949892672654209321079800185551543904483173526830283626866055923932885502664473652275504458797942130464218521265609705232806834329320541055234130440086613057281221397962266344320971801515279214359968935231208432977186693518486935437521545157244543153472011070067349425197452902212318744384492448202403736377530366043770762556895187631689244709864872855073273375164895728637315768441751945942170263894163157061361047210827121130687374975838143226136129100624646058596230395419785869762958136500668098188698498680312902308710093142489147121593553654507196857679507768961144647737218148411139824687670682665462465502685487078945095841701718540559292848971711219751354823064833000824871851107492833624614445225419396456203285813009131492118732130534218926407983297204190270813778037391003090080519855841898500465746943802697053583095914043284804846497265653008719859087847169712336928232849028548602269508546580645823200400320856166593488380095157444702992533194400907041128280101929928508325532451815151400944194337121829838681994582622031611377494126434374366868316780708500926597946730782410810333227351639702261448942591362006247112825749996923345031567865195572346717491843760132262434384193629354749170840302189736064811492569253358185510179852594684702217463531797089871249440712257942956071376513905250304656745907641480201165174344805604317289314521404053718303304924931927638026622480404458965923450695649344655378260914302784568829446049500700903195965957399869589620844773373146235710924719774703212291464695660658460331154193148070538477900531715826205358382065435052245668007106229645058747515221214897011822237864561827738820846345440281278638765942994562072511940371883741638882963246428399297374490781038613876088059088021164881979429521142690677543434302619847237158696589825423530491919766325426141188313820562823947339342211176457116681069364162887395271261314361318492974537417443995324812269000048287406016917522703746714681778627360628995304680591516509770863146115529903999231115510371167672387508880611538394090882710632389440836960478206113070460453337215856700822114765011404451946023151680065498655138602908111384249272152889350439890385354936591912338096850238171569443102226096614464272817672503234915901253752481770336244842212083442474541005867541378374961858607805896751470774952524078174014283721528111568523376850875968851687932179414532302992907824704056131629341793430674242016340983635306554078694879191816787980064491130432066236194813695104422631874605878151980374076276741374454321495113939185617121976038629620788126536971272965898312711813670399890965000255825856034226889291216876751171383494866531495171785569725671921759374442995300047617760453142454595893874400136432011061077189478274429412989778983111560785404441596132681639135738341789863719348169206140561025261638957928559010463766311101497805030289633955359877905489615127106624355719957521585036848006960008112771092623569074187720286097904449448871921612741472023790925886508518521879523982869982440122844504136522106083829652138116333751138634020449968173173252833945729055545134310229234611197193020424441893823724583069817978483732370720619006012227025677222174330689081532113430509685395785642580352877225819133822957521507596548759626524168452621802628696018541978230230830857496322956787503347524797906479475486893726807110994879746361333776073923366655702120867903693085354290051049611692804198433120386298657246911479426115695532835795200564575576316852766298999542406635019075290424164928427850326104862155828807310352770486285124768525141915282455070085602478378578690346705372115104224535566307479037900241243636869735044853447918035566074514768061776528093486291041446955612588658539806286094929511731815733503263635376425647548854791382722058949693531303554106621195424729238386265869765513448251077547409220444018688838413796645606183345339223192756011383858488177693680170045321219301203834861840424667255814225018215785469732912636789785202067322752282332774763061664284251935340405242200879697213468451473609422257337916792709669622386643196901421668032231401635407463728463342808250303289987892618767713777191220964405464622074960858513299883995467521436342004832280946940063042882917251054957619673452395144409784378921592009491611479672635362020671993953331294535308522377291108261827604282937105497242151798658970000579151520067114876909958186209729796309224488213745469042476584293832270191214734077577349279110164871188544155759087434349288346907427264294911345022058814380268759772722258222521973455634572615400859957254129423015535640522992628395017675115152262248944222957981380104367949936273321015504884213859870573708764353549073513896721339680664939489994712406203482461918112408458030287541402902991390949119385149720172099093040252571801814056162054139263053387204926053197538463052301317722934621516981126969486883411029692246721963328744380887058812460657182712821153378414522816638635038107901256305741465058150339074922090403708193554057786232559922313830662676531192650031814850107294710034389729124654425360652631894611925886864532034824968696600680946063564711857378343594000009126922742253672344822392760664422470858806697610014245647758475905136527805264176042349121354605561354573551401997667831471545360039157209507209080606205424154055705051273600707819347126776112959390476487236614177939484064457324668840732378995850501697915149628089816684696188923301662971524619711192731405664374750022746297883606149579771256863295829213184246022256326064963620315785140494784621507245001026198931988265011125872629836054205598026220843446255620664039973819468688676024235546242891485353293447069657203593784696054115274409036992891717179872930464965743287158777182009252222642595445409337829331594676893455587728143147282009297920269983480819276587244858408966202418457635631232426616978433013118339754114875420261781631842189819161828499131771127928746011947778965168511411452610075759596949438387134308215735658772234315100186403504707986779166334634713327400005615684457705634995455719717238801999780276034217072312225258801975754949996411378035031819029657107766814459594717512515467557985085209502847397478530262850366451347193884520477478646097198775097510449462345204487705103623286073676571449339759969767273353912077874946453967457486668678924320830166987810347342804045666575215516911994113879338008162689187857536535235462169211277284371586990175153206396680742090904701374400651460268888707458121031626490672147977554812413780855893820928757883369569764908456960204391373360640267330630473879124303078647477187167424549320941453694498839767537448993657511161691085115853597708795522000365234730976248268500375358363165502549953789545888190403968147891085768185754746272567408033755259339256167170582235130691844895981035392677856734838280570584825175274072926988821757183190852712656668591568903051569902987002632429241046127474771301590944678738438091675621025327196186827623467261900983507503477338869652223689059987028138525433197519712710696089345144248902836218857382095501289943363037270426516332464080244236736431781288660906957563918226663567979110465704120862671721288580367157140746834190525445944220679700993803526994456323602562629035118150153990045257401066980488364424250927166032576262632880295276204158562791872250848635590894639918541783553703172465477687406087847491121317669787981148770860445309710453408698993349859653919681162856411229387959161558218531265456346808983504030449522139568603745865047939095310052672982617728946149254508558850156842579813520131280906596043683922928632876618035227837709049778318952437733905553728201805461446292102567198773450335234820725249634640320679898097165649492157292993640921956409188412415629847348341441812557503964411845632642577090613485752672057776551258897023631944429041593083593992505535447457363674863672680430671702890397300002599303273534241819668602061518027253663861711735610126143653240262425984541730666684062467577534668392080271775404394760721892543709290945484937009881970951906211782993613577686391254259756133530415396418707699716249044734909407299221798475901853885318164967829066516142142888191358726792769146507350901901681885729423928145619488104348640255296430904955770708788034918222040335220586737185052264416172881761467315745802589609863857373706850948637081233207500971188683399716501619568653331362492045004460770695904062643013349161182160163727023608725808573323871371166859487365321348135047530312886939404569486666344852670524752365353199239376595388018730371237339009903236271712769045308206980796372731743604642116003518365572303309321166527449891034410200300904245128885695601286386792785332362310194982967340432605450384780005268164256761721483456968636149091487022690893319149882056143411421695279502858849408563991063829549053741024383871436502693268549214184754602207294421277384820793858615852020840301332406554884296999213697193433642783209795941524085629585285919197890473739511035030998678756375024640729906107373053527428899806970692131395595782253733038133080403061475744704220035056406998588569102533984136241310698261923144618708274807462658776537129270797060389716672712412279052200852696696544941582506860648118400730468573173447910248723104300258012735936967549517626403867995278086427318080947833684650788043753211333506362375205512982223071535623779138738349728704659487881894683489967123798359118822926182037776593080471242641201444287004181790943464883117419479134877904910348862103051127770283552800411644721518844767890881354845428239730529789028444748381929831876113103812292577150053270322507508497800133039880781047467586529482863993300276960879365004370244160473056909776063598368234306248158032920835036146941445028470376638929799250898799654944626462262934866613244148341639342602124597156631745290812084635153008880292835647417737536442849618013180980801782233855563215189884509830273603309732193939704522513814238711805671856756934899818302928543049427795186759588381872784703725646097946593581048163461642776415876914830342077303756405363905435244400788986047582318649131388223991172210905434433177717451386550329835715940341256396852216844788414555550315162817918831214788743465153680085655482667917480028179237125602223996494958453739255628454830089690929497502423192208624493953697990912800474388886899080174975701138362530888792735766456406774242831559116450179557009935985639236326104209036086064489184921608383242086505404519547522143149828664787346661178910870923975247455671366867836454065562948641503300716256439974136685526550978094511117120477039641791209818649777127403914315845478774678730415500623064962324589704724505494176472586798323925508873314618220739116842253447973682225705063055683112762154736362298721445088162282539594813499865326040744958179117591803171717257762969319407193085092740907404564026948611126095371778720018252891046933565470858381497384721666432004921238241190313531900547406529298958506670530225050824609738243728462720663829947290328953912381397229287547054316492518882421241149235757216702154262269212302873561269557398248338100382367254050161908270478318245225328353298807223289719579254640751024540505245508477291865406526174539447987353380354182938641056248454050401737433716758271771539008273182178503356117854932779837432598174683823504812102306997203558607752197728568021970660441385764821313588349016955186711489375940865510616659045825900144520507295084527874725769877562013041576211883250063228838303173455256464895845444788657325291314778259602155516685813104364981290593509697408112781026044733779807456419174063248187576681361401045600278019777775307669724335903107813707502703974585768407146353660054796946580761608144100429698312421623095133233361850687894370996886639830121974476163064765392029421238548890311278263662175944112704009513470856545833837530603887412744618123765614112049850481970353560462028107587644149980200412944853309184269133731818235085365801536657293727460674402639037326289840503133187079770302660163863132216530810297062885325344073402698604881084690064137537656828638691435874928015709032770688175726576014044614237765252395126547697277780056956769855916408494211748679396872249562789962794507720573411289778416804907338582192289235263692748317452181539919598976811850401941089044262781635731193156595469993837990642886629099814349962387470708378658153455751811720215784721928630993111864479668335485343966878265525277288504757604575071590068477398693353054300031517461364589244983395641760455540159665675853059770154019747177982670347684922024496564017068242270242672352203223242236356868461899707027495845597391924670638031039040729897154019735306255451360778872237942496459328986952463819294780525190095641471192955024091563688877062763267474388567241976785451972791807628151609525719205391921029804050611610004642652892585782239782104377526588934807587913740133163624327059475624129879808798941319626654375762899936679482465188951525513232733989654286841370905426153253837746582763255486015327988114893344992788916862594542998033878987008483483611649564924984302835342403606688385919496095850221368746498889027109964504120667158958460250174048872557532569775760328844767790483858120672381462631975609670082767290627881889114519009601740370043957116998848019638761492276009280123203700528949575681180632093389451037495909696653202412940335982863593478387321281396850269667389493895136427922127211842060318809633968613960988219659875933047881951820480428049691342225322991240603231628305693693556368768279494335583545756965503131460215321818680008966739334230177707865951001946600232413144437974488667261736482486344849260738474849865603514228248612186378788256226584084295414189300515560916023329918259465566526793497150481238051136657734598103388307318281539457356019766509630596622770993769218514105595710400369319381017123193219145650885958911092959112079601061832466753203253915785577715165057798270815699282184974590489776553672142759981034627517983871888435098169466622961430641819877944617142485990179711492669678529204620386138862635183243961046650778572540420202382071343621326136363696476505249118822741094822177844912644765531658825915316250884428325460769478809736498289040199434485324947186775336618716368059058300640033296568602362385749282353493458193170662033595106220999318712649698299669214711850807901840824638274938117933195344033211275403266763075005269076930695233401989404741298277635786565972181902027610467495542103426337193841570568226900740478412818510497409211300738158219945530453318380322596304468657302446313003200380436583718253989424044713749287616097047864258843895253938382447795874700876729421334434488698109144251712842669938620661712449031630536077166083871497911608670529859359736195895432097948737792764027116216380548530044579916964623251107859987747245512794411767535873406269377625092625576977559764874284165324755068680506001358372688995393683092123444350497206501630681305837557118304163825789984818409317385022840249652400356455514362825226652557615887883111955988717061729716394816000792604714931435922477004318442616234647423308185934600297085775632315773809282708182127599135521456776882740348492700824249010649996432006002525967079162384583766648951976859639543941067126561313575159939263267193543955646311807698645246069812692052294475922884056463581696288997521815414549332973502997447134158598585084743987279217926429836276596006466400089803802482605341386541884642258070947772276677995953511571463762269356719260706228932591391785130296240495646352672796728503210555836100216512022515370231945406605887623251884714755277200176213951004460861565514339998166092552079569109646016005881208618168065786085431933329065480441596733116873841502026618348577060438525507761888960935656439830689854502107957539349953916013015595062582863462544979629451130617096147783280114367171770151566723870314711470438317481586032175818015054859361655297421597001324813441453518127370992306134334574223100059776446194258061403533401612937227709078698050477451652899095385964691033671820772377390686537016941504521109759180261003325849933844198445340720900694013699583259360891798174343462542985379955746875177208784906041704995253070948228132330004033193030351449928001729957232872422182415872731540854958572294073324523299531388912251371193758293107899622882959885379015475094616669820338682911527036100846198652366835297798711465334063954402878302666315100110087787161125759048170586377997448627855382836499811792857212089373445508605315769368419252924926722972717680306823205885723921495810618811299083905900525264749714155799855753125479194723142813911209901387508007824752651945696284847466967407787808630454830520338745559416212732621204046334915684725840130596290371069164567221967862370734801264835100143955411404950622614018071452707828267273612368866771271281328117067736783715965311793969174359854636865689337865687145623116176157923056570169602485196619425572738558221531285675476879579921288214535358092407397598337702069915842888043427963037512372866630996576328846519785100814838560213057527669051753024335270302711485473464906495474869639466882155493118338279141741447492425858231812358493592076822149273065329462516263006227771951474611713615750415212804476868299597814986100174683068112250756950715641753386956720106144816334572343525271900360779763833471990610045688332690497746084700548473432870768415860068527156488992965134144669082212180851808014208134382062105232492218676932151297464115400456955790577965014861514415348178749523328114804372772073490493308262300657985935919037098240647141352382516703330955034962917195130593462138537243869878612308338648832303946499431459306015169996055339996092029626149867608548105248678073490004090694184544523654440972078331019046570229918431247759079419212391712014560666393906201827916488821830312964474877519354576950866924660871350018155639779939677162801715088918543616898353698166095196657559365720790834160285198717246944094525983304683328027364509448025269427869747766997867477548725409004299836602710161978719105040668278760293075348564836387150324245722003803794360433414212872917729598247205769270243712671502236017527903308972612377367489052505218371041994253211987045095770100295560035852814333711174561345413745636500417053309729873470363823664648876187555987802436346645244770427529051979292914333596571411068932471642288561901018828028295069082352355167667535999525735736229635037814578191323147227167291398635335635796860333591393288820157008810522926400961949075755867462046148574009270151572695741695918319594614229837407591065571749519497267045912557430825174732395825553990883068226417099195374012846241421336879579407952420295701336488753352956143922360690209434612476209953517951546766349134762788421347940966607910565324304080446058659532198792767036179208756328984018782955412024290055447747601032108611465016545297166614791448059104936036011036049846012909078726898646575004742752025250724786835041915127635298249736811875710602368902789192906910579779948160757453097764008556357165436416386419139225086002046512203363601604001549278841149881602362093807848683877418288079978962437213444870676807237464045104316121278003825315293524285285693344944832353791377448995212811833921549853262782708265346401232475060040214057991295532874639546670532126594882486613387751698708566839648164901121493152134650918652943171912754171529058208442831529638937419302622325157527996020658949390752117476523168480302929260802434125098106387298409096250540880541104005029023409611377511309463060533745464008949903033844671573097107643322110255162549503198374867361422120840150902255107035349262326629109010382691309177658085572825770260980425870358898652572885131155215334214277471694598176647520334739122893009893025967057678829721825637027068381723527417988572667805093038501693058591710873625237793025409732471503948835892145941520554521499742632878162472720444375459431488852158865189220649303463727612754306089152178446978459086279554881829870777632920571246316993210898888013781072761888706319574893525196518489860640930662952358882543213035270946880171111252892139882509706950805449308698362187276695469651116294441059854762552788139381145278737085454152285985222072197039035456885919058126210744156651881233704292327258732981682697614781093053450975986734561397432102119150310609743624793712406862143951925492046570840107151939900854198759587009648981151880090698324901365665353098206575455485860496514420609468985955241081133094303297591720952444167149197977806377247125748927788472586795435071245593528218148777364028866956659628855532992925457657094328490897543064082905641206946602530026619379874066674702621324019719728008034120023172339337234070216924974967736352901504246732252620589194346928264905471592483016040613554734976640060230728478376244569438142014591627165878441223166328044782225506372201968185120671027284036006517305463100583624991042954556086596277243491176643191836746783537121383988311013324874214908495772167180959056635973099366520459419338949042363088977117821839987716625428706016111769598822242832852275928676330484218144590331458765645958242235516660891530011087218603091146686481733472501166501113693111450222441817033578795339613203409201558057607124028378934550402843401292393487141025474597238380477355602758509252188008167135971702567429775268799937853068071744463680888619612643112189543415009474401787850452856236693732462734185540240312341519258564661512529482956556562427669791123889087046859657360192533244242409125263697882519371913588806580209265722742467209547777804864536524140274075851941696151755661798332777615776598042423168759202450640377536090254006763487664257689916820163772722741971198558060205485784027931336981613495225813583248423223028263677637029214015550023935166571069016220567624371126038435822633402671492389131919627067045596686196381296638958658808032989186529750927043128320926135120384239758842463388085186801581960729234063965774648486086768424696783399711206081902953071089723047587705987919202397727035468410830037088228489968121206038108483632735388763341755529133373476607048699063149786509912494833575030465725880043957165364521942512768072315195921861871390671857989882126983838039372047536291516800163579601171857569884320981465705195561289670431933260123418897650337931767833436548376562206976718718344335213480801160177536062431711295128023900821298017377005716195451408995260384368663181039354397993811807267434005468632421502686800859284381608003871897754072104699083207961389017619260452471128011447684641011187053571884409731252919313351521237254724518904890157452027534341147009751028421472969651193187681421083010772180433349343688888136915923471856002208502131944983633125743615966381086419809072918023044968969458645154741116319705412447538146314200056340893466443672518376471401061261687813763004904020814194058407961474223179253689500853768643140515821103218610765343355950660203779789942143881764078180718299097312955202977137277404635933382571078756497332465519424558319257797649869444301562119192390380799253899019592391562613161327721401199098681436034157628447935449217763232107986984827901919786529346019474606608580565163197027459823783148296978157384778868517618700398441672554868476148348790862805312695120453805515101579288302064439787984543994329772305913573147407292810391920745220979846272147246202009513012782823929797154708618565999745172959264304782966747483827358501299027993616454912912203751776416042291141293731148494358094429677297513073813131431184748794501897781343171221071948836189038475734970792823977006266203824923187602211201885158454402502141694416832440781012964537128334076457097915222604093831077787318016670017794899704679235810621714826296278650152227950092508857564393032282635852135093101499839037060134020871878806662607699007204545877870968668263893681033738208612646165502986114202717766816700494673193881637717304286042923063287852240074564100037914331886320864065949054232979295354983369215623382975701436071669060537748509473137504234708495177521556316882599472681184522841906602487222233770817688687473356070370262901825487158824929653290530260417662501218077580457920090592492291370661049414505535282154540961902568976379217394867504624342974339893333619682373707394308505961647014072114165514209285840949173964886962654237515301463004761431352145277082294824942227307345419489477235080059060491191364088533582067047150092886471876610227983319579435695981706317275400392736268084226872580117289268165397978572108792549573386416553664624555246682857473425796340428010330095595100887687278905400641606116290958272029805970812137243645660417055376680056599116259860653770987666536855259849487694903968758456742232047109295066875297918251372897592893687637898673020207071402906614809604213698838862969299449213696908041654320139234626401491179036063573204985598906863904856735554805415527843914493692393587617787968796458882795161746986491580976849318592223741688806453145830634527587317178429151337920073781656996405386618384733874938047941282117451188106711929851271726998215134040007595499577957262697363121812203588723358270396245082780703225449092450897944474830407318967122979964611050264716853918750858306702507188036268524881381144664732167668177850562917193490576725533331224811097419648634941175212111156105590205924559676758958926921696298560560156629762487345076126147453377779511404332394375303228019482816660724329479258027950704358027504805896068413698940237103446054728245711823562702299757779173950012736545181871881000534056394985585333543075494533407287685663058518414298401705664100555497130142566560779323159866861852807214648492000699586554568027597235513730000779035992044679774955783850291981241121323760409074109172033667871556291476754239953398287637874302283814999858452249106515804036856274977618323801829055928374157275356921972439526404042474861801609189112327838672490619807937812321174192845624932918645720263361422374667381819909861449535589311214205697188747271057484953697881276670579121284977163835025834347439123912697538375566485171922632413510158724236335609277290743336860207003082779904712833996450741139560294662949501044363791764052787960512108373761219705197309813233129266900095004074158573017538560383743685513294842510703297458662362635751554659066733250099588760257207010853161613781966746177869534737704810471995978395151590094856025325740742591515170295511776802999480452008913509751673860956133392193547687583766408133527836283542334149600319712701573145514698034279889444988125682300146344705187864457542811175739755822805422663068947810451535628968019577853710697149240828805813510033589779798343277514607134796446291703499865981661596828759236887875481955876692709019608319860116897125376493745991843964613756263715755685586193227195698960641882841412724081088666225079404065888037086753605261616178202770960710951684802090148945669156612361911004338268175799874486583799564667108893988679928412836479875984137110450048735723905621959814684720584856148849734735005116492669048495781502772423467989954074204347892521541689303037657400848798886157047074709223749351804703205179985992163993919791706185006445999754133123538166882999663142466871516129054652176967536916586147164860066821873723533745529695947230724836703538135583380372437986271958070760165686921031641998752388912421892961831779042900047070233033857000056100477812706886517530741058852088317331130371034924486963881540946495287595180600828545451604578650607823292084585900561091738191768728488151558259892777004611121352059344123859174623905488163111584418031254692133843967357821719154349421478966725318317368793766483694828205743197164470698235745952658496346115046306784859027831688050601736490977645463690579543750170076120268797532139141856159565898307680795412574664086679776044296804334795585114830413780930447992798366555427080662727192051030776469171629203970974591757019176021891222491766304923083000435776909938905566638946704820132582921294693300847879082371864334480894758414371642989191522306143832204443372436148463114043484965950961194134618507922614130625345636052206138204691319000610925453369978141758236784555779058624643446825472978132770896317082831778178916874054055850737320177403255509498480439864984935073692182813167771065544188553507280899448178769842582649953181913382696921294733698433038551079211722102486929511883321287679594312631860312084917262207277002399322912029777865104433469958729314232075618931267190442641704904416054326963862769127600108062784608784580186965666273145165737970122111903015909557617856469634991028972691355148557476035688379234523262934637649857325038122213455727907386131918595394173635751221979444236226765620149211638727867479370495785211114252496863424532778566461254240999099653585871662195471601578860850763495787562089686609288350238728461580797464811485191624582278102843448645305561020031637810915009181262612304348333090337388826089741754360785256199262572603169973276820316143516208379283465099665406157221617890819663824746180971706024075409262425084995549080648345924572349075104413360808349559484934854103695781476941016592964676693265014532257707027282839481817543719912069314091000964330050215927094938898364144124091363839938023673756635623411323835168449835361017205062925525343487158001420920264647474028822455736687113831110453782812798717915637565873462860246045140397636049831189132026096315420110703788219863739958219779580825474540549307879554144530214243631687901603776528549810732730416920480851145109695211814945928164288473930324493031664482713916560908540392370099993220457745715066617208280632554333810979159332138705778591344544316599337899500199163011916832342240011943880518284856682797277531749525490968128477039862752986097145023932015537250112221767727623797927190846933110921667524600203028902376995949604933875267443599203995197497901656219988532199511757657917452271656330578835729470426340949229437592451793646249058696133094020343643444893386775808337689598611101743945942725054218113558006201375107708573493323343277931600890625358479433911973893211377004404462139454819325772912316365138325315188287883447567053671734566849762925126930287393502679997452593840541545202960803716209880259137963509721305390672884127476844389325956227814710435036362425685659068762820157362176590326061389717896242982226202078234253691318232349436624338429775118261313587706160336303537508046327986164944494330272978052081870973114282630495373625322892898636266519717214608952210676705727505285593185074282162537521356474936013136576542345675519340981628926958964267332730957021713788848075831117123768182393659917626085550488424073365406972516448306419856632357081482361739466660014357071325353725055997463858480901064168388984568611281734154171408472967140709914958185967111378922653456460255298355624584135693368412860559729533348602322369368372071989143503917127811119319057670356057142872675262973610770982889782821556214856778963410746366500800766198222136914621688915366613638396154832227234868641973615699335360851214439948893932357162463505907817258946173721488228371426127927137909032642763358752007021127979547239366845786293516780257360367312000617498543278323076689837037499671604067623753162702619244199104924097235258470902860250297547236662346654553735863662294556514632285230806540592864126143547022780564630643964354737071984509642713058006939961264491735753085518847642946416535910699763187891825593658861018374090196048652950077778172674037730733231653726839057961656493075256277046291841861823094298739401815364601826853061771000885444624158721656662997196129900884231789670349023015335834326036280774355125115197559175449625221219017715444726185587335588491367814527487246381438937800560334266238908989069565724242611175058252313460894838714436787323998367958536685393024011627207673415583240423421075871618361633539617070424601938707751607295566446908432031074395899217109350791269803387918263440944017241197797443675996167070818494432482786647562010823614810509706804358167508919664040904407846654663875681937367107039823294287404083990772660249599306389707487385107149396277509707049874257633727566279922983872798890437754594660150736871083326472684374953047206285871956458144939352547322365943664413701255482317306767733724303707120600567193332522123125229259735750404962672962912208108592555811694475883041151108142622676484432142763262649092339949354110614314480785727722403019693235755835893572328916299594834710165006812934839734051135666203438029237359089257456660285014451635892217482801964112000836329043797879732828133871799102746242023338348398733065663750187233714396608733198225560185071937603236291185836683220898877931915506462746921354554289371587911080930652326424370096671923941451618578115556683352834200276146354314974865806826682434855965362199486317455950150148452892851334704565231326033094088500120529836764187747850694577702471388708245090372966540801257170288335305134946731648729839945272340898453121190406195540945672103940294622530002236392930981202414791019431471839138877966090811153351778230953602679275415887442736644815364547874931047239118175331334179221478821227197409448788607350958049969451468236476682987580797572416984578041243287240057942786424994736951700042516636706409988675782358124614796402535234404245152980117488719029964290375573180605977315322238998304102851166566261428155184333945399775425949010320948947766589779735366583708709139467901668822347496164045903560347947393716953899968720906805689595287649859889579405942484718789891214440802366516727319183274974444828260743507865336484240343008575929343850298146033742737937494790046459091010243307464928214507602419107188001329543202889608057883263135656056120393062740790875452491832636167201507898327914745510306717919083233947130298490965631344231823276207279354898362400193952006683821478605711849811370783809251375818489202144996775996022162527587842063054721759440182066323512284422231648379029496637821958737033903707111633040738517559440784491862106692572921536837411450883533369353190889616517957827915135802466570867753267754066870619617925196814347840778033178324188487226597272082277560141095088595162694191720548308312667112538001047682175644681143115754117013599334913504212641073446895011369441996538086548710646562876252546195812310085403869005124848773867624537520644287836029548155265716830376657512850256688703050245502136597129829565739173081094118634866216756759983162774527180592203643678480159485317333805945002572756818569952987725551849033537112913094639010604662233250091812801087492738196686789434918702664846961011195212330651542655545570202491931130951369363388017504015084520535699988741045721468464890992835392209220348670303205370032253279577282300222129470332986522657820749132009853215827690771781810872777437143120587701677879540858779454826481934740509553257827079699346166186202003616216783696197502178704246831464079518333519023368694890762494591087171039856892172754363525969803079980859335902898091177797303912344081984804192813232055289768192126166264124687730034523132466211804215737952916824167888194280214373933924648994994949957146700609946230088596586865273467319196864700966599863623181591890710248541821594614981509200113679940432748042374617526588982803544589941505718583364294317450435438999092683067751194485565212307785458284187473778571603703120421042908932917586431696579728085969551301172590930850238291597237051381249149497167113365634070926062815002125590510307099671706126514977344832431068731425275091133369020415361878370241898145967684226303134999181862554965118989487649634338581918918989425266636052901882590077637361016699145268709202950216310152936843436498632735471069767270281654896319183513977816151227318852343923241891576370048161386795586426467474771209603184003623014199129507519448549076025409162384012289358788081417378255682454165989770104891981864275505403605167716925649393707954889644062640378044098645408955100556500184111028698854384117788973775455948769918805486076767201461393137897678790856939934439520591828079155757680937717887004154596826603157298297818541970003503502777145258918304595048503847684150242824558268064969188854975777280070076089775101180054825749028191060928837490363127385979556199528021450076123991077811028460257018121108311713686105587176297941854464758110351880695570460790295765662315395394392690040075941995434526620923246625522043389742079436779295260772912883733342025132243816578945323633609672699662936593732812928460303263100215037214762066286498834107587116580769603665309958642079644815423922149498390657527214979634673635314722366530089388673002119826535365582293466080878319490565256861814810346374904213809410727420655007933845546516531119582868518422059127476218629115933696810335720103492462969252161386639382702665191645806874912205868177739899605425659798639803493309837703088155381173260735878833148257900608850944048059599802580083810471967602718383002848940682796356683439273920115715851319286158775293305534458469571385335929971873982334925961288203641121418924642285124602769259250394681377014155089120676135870230815990449994751120535188877663921736711788695301190674254835995199342766572922553807008182030242269711050651294512031819140477049313849690904226136533659277406030439681281471367621687526207920808355081428253227349320751952873176500087551987752306526347789088976351830890391156662673759258844990933126433553545714014008752277227224942914349838771001047484756465228655106715627214763912835486464784068618480863017261384293732944862693012415552987583141720671994999739392574441310455191114224235368101144117715821148313556378438719892092726038336557892707256351788618222036989916595213166597579130550280325145499320153797819559219643058262201946377755520192677344765131050516953219288913886130121306133962174203646251543905446731971678355546562672266564604166340254961064948058868329678276198783085108789590107264260356928805980937912029640306434406174926228764695452659792274470812347506879182921466766481864786908903837915447603275174331738939501348666150743612994084989107443719301049141967822338599014860871080801536991178130331465412147138656806538773995092019264702262596498172204802307671386657086730017185478886217138824416199685254159308319841108264475459637991076630769764434866606934265164041044121232610526241741682316980717215522127964705158628809551026962848260651582916872008825202553500050674307254144993226372046403347828948008182058328107133877959012272299499726599055014304605294884097971622902375296150171658924629208709569600555683192561956478615758612257828445433724259503192941523325832390679022133846597688251833139040376580956623107606594885520167709669990329707087089300130675428225293526913562362823145528660725807116180784302779077084263723387445474677424590054615384532849268693430020234206063208897568720807165223906187658057172167791509939713372835416828322149202021881168852128192871932729809952987778949026137790122156241001157026859671031917635806311931044087703538291089106978715614717212462967518876504925509440361481991133585147264128233054651178065577422390160210311729729945910028554305326815568442337502370225884933766882802950098376730592784955908875960762123058859339586970453336824311634544735914780022904497821577744095688720232085243920738922592294973878959297615714548361728652652107178786085034577538936974339363600614128196390814327335556654417975519930585115943032807964786696132324070084327402750391160184866480798234957187437685177671797285802064875805333924166842959320946817731999639393308347134170586413621405141545242742016580809355694711410147484474071203724430390227096335073680310282576254264467273962008898096173614119690842456216647616036436313492830896012159198587214308169359149853348219702524877667470610146384643553531918142574126225606012582161264563596550098240406978726972142865867634751200819740874623824973726702145090192207213549037351588670689740236994994229727018279251483930737198990555180998220301212339800087559775192472000163724573403688241286086882125134934681784898067073335036723219209588203494315315086597423260136441885657223955316612892259006831721933426686493888739392266148137796847713973130758885141538614110669307886821689430756538598028369419517734611799459655402426930328217705950412839274764631654344731264540140917165642100877282825763433386672388006131485604980123862784691079021208769892842909589872320900809738615564161594184184299719427601476333941183504647447098792618637496826005940059347134129265735158939510177489868725139265228655152440096494108734568691002056301445496782256738397024272051019327160339987868324541328066852169619120960767233219838358873686879024670727493686059378790057883393724316204727840093803547771203353573218335293146422405068613292542941714367957181701079481008628942083465370405260782119679984791966645909728522712553548213026480421708975217433475117529150230101972730973120462396633700327287530018679716810840318892487817421683407014736287285778126897925783788770506642590101719361551108343688764381098888898800347069807486679172315727508341364371921500677282298857686239854454030436427910476972704921692362555588170391977454604192157122008489267991290107811950755802163179608526185873720957245341220051914725313612493139419978761831765484420645676860638802479367387090138310529008997191567165106387003265550357264048729634812711963291119839256559137180508510226516422261573577865319565851313408421297304471262022320042292719749127803328967180246567672441550038720339710665060710276159718706516603884996991301359094476527586077422538989288433861585832650043338222390871438938570900895960705778044030148466396116973498683423395163921455971368291764587983275665460103913987512386488592982587986653614043017767038696786751734612694750063121267018279603368797176733805187639905558340385028366114267513869424523794026013997462476080736750426034956065333877929546395446651783887291292425552554840174043235752030026580989733302100800699760862079434024743282076293782499471849340016535619262423692693203195904673606330353789792668609098496497680240017196835035884678681062812002527740082865315227989726814095772374281258601398406154792787288621037449475926283721715200021664512170767136513605498078420509093949224445704047537013020559209787474948424280971893922829181550424686665955227421134916958232808753035889560962906867839810485072227876788149931565702915452768570656446412271590971335371894818130231124985374664695535629386571066032505299818057652282713813606125250064609053597423494054146837377174162121754699124334826727298061276731906061339276290705896136139247474587114564383533264595474249061427179950195403598769913214867363094318919577994903156498075378973131277581614283661098664032439786254153483118738330507555765459570436980311895353268780530282594139203293714561915815018300912529092641012189184656175316415463375626840333889574700359610126316346137666924888209277906321415498060376240660685360157800671669330355292129417464123064321031328496609090014562655824051546342151491414737283928438459755666999977177591674576058259920016480806205052768935982322602193249588690547851634757673654072636810632732994795753460802561088111633175601913725459472225559927498560191197393436794653569379398573896626584667389923586550405195813511881421827071727823636876334027260352514926339981182326899893255968862203895703542648966446266416324337356709642049044215186391295142435256374839285913787420892354486567406388431488168592569671134931699340687713804726537173666928593813732988290112025922573007032622767727549357860264738962437167785891169207483085856196817248271054752457581307157960200495215492726147812728060697265395678896730245383206489533188532086709071834672063242151004308945706794510971522445481872703176866696818539028512402135732691384815309899988385761917604776559862553594881016637691569506697744482067375627501025514109717462405553931719380846117276004541236816894396048988907708789670460565371103773989748496833930916021980854400951579446633904483899643446650690776179274899791773031620711019609198312485285534233040067825946146574351630219030619588821282978905710277015022062148768970397025322169038513779717659058313644090340628498466304905593760228373198144984586779632484933432813003037653565907586642933362608668711061942077515376048552654045922054332937935403814784837275729693556457684644968228314746109710674066632410027907455634591181377734629518780675030369766748276611665573464561303806927844793284956824003649458119456381383179696898018584697187708939739144076596958575673561687837297410411775846457899170671326202422325796482620908661031293587024727702429767735337669738565522084826843277208240252188795101508624343145621915658263541379380797590472864941048713032060888875959490029127636164551009904201535034775620441119400686269863390893623063553830978816044751075985916768403712005477959409268409259541557756388782494524502647382595195899661993423441406573793314285965009737607280947774295305563360418824839625071464053356225811540352090618023244539199086202420315578741919771131509043368647620690712668269056010518346809130025591517631064399039033316137412204178292273134134326646068037156216452914978580923611496432047969806264045748119733884971332252665354991134173868725118478371697534896594375993907293246419294365146813372858469223853658952694741335450217371533010015467068559490893745217434447854396302421782861118454585588228096900707229167859844899363919556859308393509999013552489170478626489372975072132542864821531387227633465830111363156833925626485415452310158637356923725459117363491634572487959586375768814157581236336222740229885861643605214771743546419298192910064520871714510463464099676555448152687647356680115373922907121283348476300136634106479910097102769529400243947979658090009197623138296861985662522365084619226345895734876787681005446921884450393479314588808587507472962620636348980723884813068019333686550556443137462393912519816451949916779280488740537998184993125446790076924538866397807244981626067156502925803639440659017933505153762816903046513925667618346901806248236895976680228739231524698461250307659731805082749564995594002292060442853040720234630420200835832172136392232553735245744804131714010402533625587304388909092695101328895890144846187103710887914490566797959157244455232997560464082951546118254025634153740299761671595994300729106067507277437540658037452231172208863002315752606247010713530993630424667981911268366072186106789777469993514037496285435467310886713917254518766988252248979687160599063479951019570104829864581817086940417015461936839664667173224118120356426641967719602339682924094247319251549004214746281171734074918476727822717819032337336255639232654127668541031234199118458432007410547161830720855557022742430861031814686860614581745984739501800261492680445265023654300033864516929702334155428633282893312282569766315856275877274870868700749709874966112127320512559166290645893631179060331827391592317087612041376454707261484282051345396178436646127177295950034190476621284920135839277645952082228374400261722920457276521388570807139469543486875790042891550384902134729101025407040907884723889569696866348320241389726866898988251999117063518741547756499837011094231338371643114870331132031054676635486590934839319228859165871729496130006712364222919421867494064176506797743263927193652819729598045240171291645960842860455561349938931969407082638698103396252024186339361274564616011433475507758690664088557327061752880385880749681122983514678717637979615567064902814310712998617193681506453252328386796376125319134789606374700028953444978021559823026405878787073851434066612332468688201827060249021381157186046445549465769364547569578523351117974352242329967207819941703186807968185357490391302158566402285377474958854785522424815147615224541687573607745559447526421098166092167349741409821500766002978989859274032781648621439935033178397265983625761114821013242229824675538892457288354885511701488380521007334076064279721487016498410890598710232803710115962434125674329817832001361627955312342031876678888645029545506386049454146335695055486581640707901246038437221482774174712498619625570889281642845945380237573720259570292963813826728527064733151412355646383989854015492637526342714665042408061328734480334279468827484168403025749524901339117203742861636551654185149951452961042127771810243885361122668827698938716725052267491632283502374793545647951295498636903909438697256278120584886414167231732184914585273239310326520476693296444450137061963064981176956661012883964411685676002250563260459112237347149999256053599269936419557783768023571964920425782086502395507301272298605684504722935024093553583894412657889945071604605160453963092756528372366257994699637547716877782006248739260659774671488785450766204291139069349652652412742896647770765443473725467050347489181582541519766239643759834880568924947983418382195173797645339360800565087456771297201516399097167504260980143889826069050703670267023508733082019158223699505093911116772027058851529464037712149008695603805681635637764377962792490932272231532075228127185359170425397061889376418941597785968720833349621180657754692616586260411601068317298242092949471139942756533219811841283374926207343241277671295000217769052462506388674289911146668859823531620735289020078922630725401765599129230445397391073266429114066831372172553008621999266331865868117606658334937395787338545360361084934898673046411185772334729667968188734273264571518398828180976001075770201831479510113168331900793412831199896293238818845530050069626493183212007803640172662677105192047090546879764479385551287210053151473294323988026987742737146424364941504690786038815238083845014262988164021938471083662043105200632268313575170226609301951732056852556627184245522932562195101995526025919604301649750324788032037599431024817495690729546085304522146042369165898555595177524594090204741943013447674887031701125628290398901124700065249520689421453445250952142919235795666472255508491148789267940315986487127011838920789789310092221006859462512934774562269344156761200738611203987204762033495667355764980741072437521703596797953442133128518749960613383961542403375773960640882345037429248229957672172335830895695233597833082091596568188242570112928407475062822154287796215143381680628133629093618800699038407943448008821862518088075522151257991374547953778803379848479805440695056893053173345559636007078682670659980186088413217756456132957079092264720517182015605324827345349161916040398927146227923109041419353338876737637531356824844485786228677837984619722837981727508351156001343152953638051173822286374788823231957823411950613293890279509945858525851572932611319484250294428593881428082694665018674423346646382667355153635682068963987670335054453124687095626597280446421858270561436055883582544813822591823665550081629277335138578388669624832308969133654576923981661512824363023044098137428772119184911647287185182836780212863916774227213448823083052216151176101628829770273743799242220143583925674660652610853079496108633455479271264594941029381654730506695026166634617491115274450507759878852686367091554021009150295442868446525619691820306525098173526245940083181462207851780316324496235047983970757210250250736155526611481071111468844696763169974631857487399198793449907337671602106854329748957150553176797415121214164935172771323684996299448669460497350555406259734966936265773302455786162243623513004677480236633935895726816599285570077745334966314881639142332843335880464151513611576886044189505627275065133341198623831101279663218410682054066315731500029143762101908908384048338862921937044027063736055761218050058999125139194992445114026087529436849864071099721264209276839452061814411269789414266534031648498813027795457948441371617418626207288627110732895449942678200212529267563229233882804299479928866967049334579515406922187209899808367579689886426138570346268776355459303086359740929321738551916776374936407672445704635716742322058711343583614710796678702061797574790521460115619905251788264413444716886755602352998216808550548440978065474770088382000527076069999196098112922158151617110642109514416118341885061813144806823712113746140064163539262524702200246608215827216203950680666687837908476786208841111246369568754828892022616429211225077202219084332889460229960867004671720553777084067392081134887573328223235055546628060612806660266860890934369453530261630542366944687643114681008463014477084862661979772723205382186954425414020231056690171745864230665541125816031344178517182236465416879941236171775270685899598170216472927254417134474768926728407994073306415551905660532746269460024024099560383800881486296807264700629907311695985829868347050870329287380163130224067154361386692889810905040010076819447031290171096663292168347710056537844913904953770074112472965196953277966061410751551292193719799099416809320346802765238782828697060408816447299629926118847534078117754239654043625600961834268806543344740451843849677689855597088961316372693221649488143380916320140158600083378468569003962808477501068348159160927289444388762554220051388755074750685347357484278223111537895480607863979107347816177229365988630083404235593054193792566512529717513206338550897972994705091435108455032493962953748542684030073414662998347912119466999577547833508502497755251776240418233674552376832414607640246781569087360712786295466746730936286924213693643648158029712763975823892222401145441665807454238583938532896038521446256440407341734554435943283425713386525808429140173771274423065303337320928331152009564162924972356427743749038470576356655033724301218872496986128932405655379144365300890660345065480289994856309480513908702548898882404043010281327175627686887307619643048222807470445021292698778360760402493683347506215213402248241790856055684068183447690724051166513522871122402423387167507489153301019666005010857798389653869218963330518872198966837621637017406424594864746100052051607645379239260886591899382790153566556205003041583631014574057293826089493949148698902677579589307425240311700863535255675465852330325560309455653295990564407096217237274859102912592759719167230403785432650600972497664741736401365754554776026240204785256333287137603366893465813787058906502903965860566157037281164412955265954263162261398572604128327417256017129527457440205571896077364951027080421194514626969490115062711750599059277936412024557400606317811575532356482898809511418095223934583828098275840999799286339677780687217126142671401758343635011006830839777159518610710563155562211761590886704551907091446529820088710725016391697439288070712848116430199005733808148289576731305769511570324424597092585446555808290775988799185123063505013133175065530840880665400466440211068065092945331044207099442389590694222498274232715493399714623005106264112757380591127861260689845934648652243512819470911541482345158298894881354796796532032400121080985015538186640743582624064473299931897084971249579599839230529182813529944621572049296735965823432938767409849700967032254518611410330679778970399788630340886653132102010892773569010130657752370595404624943586655605376012361565408877001670473332165071887925035474342525281127709942300735485275487801301056982905035194222214778798849288928782270144656997659567733287184551407940105562637990799971280125837703960526625490898594449310508678709999916391093415791502977947005346953767186717410512359759673412536724865792699976024721380601911537496811076541242413023345013318360646933384736850043650974657664274834343489849520309797356368650359126590721523474605779240626429055995145844403756597536153965852455367402159310011836874744303359481730565104431015165531112512705893456917498470409188687505153110837973398416997556468498801826855351554684605562543901994846034710560799564689681036614135687523856199477424902527299443051192261890840294166481146478828181962008584932862743579255464549557113577018741102010077387672995433917772698788564292690826231155737658733510850175251133041208451657845686351491244664376354105714058622002056059203060768837750728335033264424112143096256119283656746819095470096518443969942887356153552821892526795470826828189992103346340086349838844972667552790452126415800586256937476931535674436731012825655068604951908159673882173984498553016223847732423837040020185425181429809709023252952896824561939235557244643932499147823557325443833848048815308464695924430780478213173701583605839791612241261949948593699512855836517337585331708692177159599712591014339591592094368681615727865454969504566559149956602587391742242806751866344157354652818234106472309278549558715106678390477528821761057309534271172367128273859431128149944772550839940969342609644420826862778488562834899795120400021588595796503133124986351670367624772741497060448659983760245517431071005195141552449848611807275521086317394774449526607714582508080708712987646293160899080971628095047489298130449531024723392457716264967730634533575031159891264363119732143886625648544880253372797709953331551773647530903301507124832744907532484224695437753502860108923202798543117011883880135357480229666846632183444775146733027819320255651148955826776350141494438748127313290719352799300870643972819747041906692916781385366114629052932025168629228614544367784359938800646314610982672239317402709328747568799657874312911431431483823236591105741497987074825106195781490131389696292506310291335561234811098489157819878950864864981191037890744468330017126789554766213592443755554111427701429006561121734029609775499548577294325234828775410563646646414983078224771155787978910670696147988116418842196906614343221224746010642663088223444783614109480355239261265134324431430961897565981697931927415583322645159120290687714051436486961203123842107189278771378735728756508423144497757163470640769157626374061580447233093726208378058576479000492416638935806160078897295278905252063912600955531099717928980898688942168390010676019570939294704209854979686995667872154035282233106083825890139558216073226321460619411688182009901219466001028257399957267625655676526356897142889627852514538146784476492107259301281295158399225680580517566298583125480363644041577144301505107245885354751875934326423695616367635392360310130910259085603398292559619506761919042688043484431665383540868938996126379097097229827989889799866515263041476100161345611315316109256402590700911577061402641339592006426496827568300533498364201928549953887298219534431972704222761385445093769186953792276709491074707991236896670864108236408453782309833917543152760187539144508640054463259607757771690479400918845208525882583636998645810903720073985566545543969310388008033461673900709006038563571023119490550563623656895300015317000423110736881291754651096110258768648496665797841683442933687369244266324089006385821976117426519102222221550766928521744100978771391751445908776695740206616113869577497299315882991060889480962907628674750960202504398499080274950404623518072653058994465884864747383890520007624861377427639695570436344856078821503813096544145944403830593685267726128911571205420106207027077487491445993530494366822079841147790776072526059594316496044545165975116070556358604790981829376690478160754607788129336688068209954059190882918474970567949433593028658665021589573105778980702955828079870642491705653786388179312518767009754286468503191203272265312586964395859412197803661955976753996382645384873785971771286538560297755032529724500536348690970882294635538178707234769377061541743560718094028724106308483515554358831349703811392662426110607309433367561888741793783928134852976526478289097258666176210204364510424998324978181835984695836465788712256624542688135161244456420069190766921763586137076808576583647515662824027998305091401300214687720389763830901122651247453425865445485351658455757726919323106076896074251890906514425775404232247390325991374249084278471868666909659120122036735796293722883317870299396076639581617614366650510024635968236951277865548177827658663566012037921825155782764797617566296031578856523804001068089710990269954194471700631155809213196815873940371435487235095499091975665515008814156802507701388122603267725523045030325562590251739437605355494259573418727961964992041682129053845857885473334963794743868613885832838061498880910667229887516054422279357824956235562718468782649911430818688745425365362280191335425567714209719699763311487372437720644662835322062950260771629458264623715446891065809733063632239912544668473328219387697945075959278055595337532818721638083076890415206375637765209062088405820282321669298004960797086626577643031518338254465673126910200334215517431906310422377681417133105083996829676516881939347763839531634056124754124103972119364402771350347218778451014335645146416038351645641161556245738479251419857296853143775305559665225404851080707433192207785248414618198538209931529503990323671778277883740506458765019883246735357871397271826195869549828843646452753686447817011834040897027301311802869054340021221051476965984753073519754176982185782551388823306596502301952982795383741557304540661624671332920294320428695829044271480199063348295405488512421647516783330444774590022024490703747453638179232430558789560135749130546874462244180225704564585349574618884418722918222851525330001800690963504480304917792114670993734135371530224009556264868467993224810537510135341326535638692302144955687472775622133486432851849304556790829435378505046203412708172513928058425771741441012130270334972726437717022934185354922449900966915918321986551541347082443528359415003351884398339036986258270756298277999159692414719490007630878512617500878703473074846388153769001263664566685690096492421528888539148182271707306013048867896860996251247519977432859528152124907190064784534296832199589429529768184950319520208353100306356532994015250428592562248393313593423683846546351604454294480313776693019091308302336058507397090942664303660249635121189552600173822679757262964387161694929765580302214949073505460476779326203095807871219199868449218108795740196397841116503334769351662915061698765633420559782896540818376478530242596537382067507489338044510789555241176069015777342506455398308595450584919563311218212944195192618965484402040448540557145937829958138690123572152946281127454798797941718395887635627188794476082183238133159200077538887859037419014870681170274465474353376078830758409829614267490375394789798028376475953886583151341786650262624608309051906827214376237473832267048315388617961410707620431606135216568937854582023772202946018615166694922521031885732499595975455311701173389767129726179585022126359067929583036243311655556659575285597234541047316895851254188859225500774670889609975819590734120063215111188449250338310438220002370467103012197705937344547614376369193926218573107691801254802266262210208763971438271560800418824380483456419094498498420833582896971128345478118163149154570493039451936151102977037793531282757770285119360413815241391247560578880489252158956088564966874944060734074893955038436057293001041518142814983060822216317587034582916994314268775456877863112154670126318694482723628102568349680739101345946527733785479069196086917400396253638885569172033776782309621916086911367394761618500921241828046645836672261923361504218506744784934999161346572880744410544788476530320220940595899472388468169341519293881988587568662627551752594497807307963824626283110411837657331585209765770313975149935020999475564173930478007145557717233323980084659419376950946943306587110411038551282229319795564485370944918785827046531607770623674064463817991380716778627666076276085540400780433845370278170339674544235280368701045088939067930420873105299751480390796686513751478079149486378383267581630866180996014646251379039868774729009213240281241671092106922686274671941451511831810725301942361253289166027097369136183333546005222941059569945639295742849226562098276099914896461638255841260433145519775401219690725518932731593882353853342474112636915379474254791089674413062621898299146896055892783895365958895109063461358748144753590062590027672645791554934223502453715712815068694503789219093891536318913863241493705125481706473996261084182983998732384166498540760939796435337974542918510193886626820007122139579037878190936024860840445958255150532629453414090114757103119472474244766391641849018167265555273710592946284948187176690977402573049784027802782243472625364229194489353107859753544400702742167755694931727668687526954569658939057322307271089733938621028340055963214304006186856769630396779565741703145481259406202491965112092307818265643796934833481823083936948767244031175052655226978391785650945632039951467412531217754454453236738757704687356001225691874315881845835292768546071751106596696305674383495606962262693913266576187294697902877421448824173032614386759915087754770718160883475603680475001023803492873663443568832130951116370633152838180005293203512652249997442136767492968078973966101867082899910953233261210184553373740088842010552949726652583661359593430150427404025390747128683190526573976096311227043106199462406611894572358862022558838861096783138688783220593570025758732166344114986046349980965077685914626277993860238606068759126964624950025198768291325370042172524341572141946409296479485785025722600453431604897930195557132455543400361468138851839536815571180132658948822557502667994332627329623391730109704462769822896599525878795086636753139226739526587465699022609935657462636768970731599638310141760503271869627604424383986975282038130132659524944688815858367415201618193480635518208033594021134212986062232150716523815279228263940651924040780831134754464465406594427868178381586094162763264957392937111284449890643220206467437472747086590940012330902903875143097132677684415402340092201073750150203000643218807463264399675638106637775041145770034163760230078954260969211249678859880699651235824594762455435647172352236516864426980838861415322207529652920750883409666839605947811321049130794063167526194003672494670299235985580257860715140084974112385082822696040720623108322906665114277317421488150376158744423584993222794994083565006488642496258409059599238106776837431693854950570523301791672225300025591150428295885398056659658089127480309665143527064378171476468237192984674989674892290673099965862154415913486244405698379817116167783478398920167786863922421940958545484854546889791058556406236562002427323321649559210210195273447007129126408304646214547467375448117168785182158116028071936877255930338004334672838431753408140457227143545235839056621745444373422569302311205188888716796927665284815716383237619190398782564334001612424939381707551052199708693075409132939268310304047443476038479451088196199738551580578894780340649658441436123542192185548429344011886795392095253122466689050419693205872735687951679982124224181651592716642070122274124509806369114737014937569048666737903910236861588679579413921970635486672756692381637650011769574222344222338551662096831956213983920915923732486779510735547529831876159863029228880989000047659802535474877373127177673765457032222058819647540636366069287059488358462480244140066119078630295140372895249020615059120597444438893973336583960159385065635157733437586310576216413596584485306697592416832956994498004710444262907047552119577642185509854654709530457881414700889991607612086254933308442830358435302572364946463166492074032941916797444026565282203783367136910960254696848855590408724932673797586805445144315160129612014115758247166543148942404067248235036999958663313903952189109585484612277033242576148919157725674387608181702755482641280416835832865751926632734549227433656465724611689413006524230995229404351371675327824570870577322154490023844711624432163436875795389209601054472451067970420340617680582708188661694810153599233746465329373433343542780715858250210502652728103733890274783581924052168193988848582847515114472233196814924687028346589805317431646245660165048418534901222719034468841637694463963135877405463374147751330011147641012878739048203413832548624239417278125953725139950384684868088812497587818097553137219996813202140837343001526225485258016255471113122892186751236720154552145578677123197465377444749873044461639245638781269976077942931776633690831349615678125599868128289487331355597727231136100207909004548853836110468786800165089077007340458998256743360613697698913265130071619908034308709451492927250112628014538429592633555585422743724566530646203475255948430907361881427431517002212046680724175719826556732948205565882840584516040355236392648990578927035211915484268489413650598589515790573633329853113986120908310197631225175660384307180748601880490117706198014504000141200933252846191864910505329071265546023561210409945895316684989406274139903949077090439196195965478179717296734237997357772051415103475067062385247604096551283354716251646130268994403813553100346925076409757618426697551945488253461058176946327655674519446986997602086867560253929916130984234074797391702617574159626160456102463382622283756976291909441400973426157202234946870668563521638431356682390517129290938624984942296353312107632449980150796433169031222597682991353617602439188665824438616433024657778432421718808534873894992621571454565630987788319376134496726166543600909745559825998222039459958946754770519100124194683106070538488906014136958155083778082751889113609848664818643990080737190852502645339386804441182464895560514884696693931658444782713076470546473280963479167749390573015635574924640124559115818301553638712523122563822879544505273304308478244697005580096697361828102592111536402954232457626121591223707343716419597345769271620369055663524954688498820815407992278092923489901972285950822307405595825369047371195137715314477633064923023179172562023807750781160891371249530883319821838025592889140592133608616600372355205178503528283824431329301962942128705973469214687415785328207172150786624700533774747103481804358628013467292766347898532867912668993188406587971452798551646135862005606982139473219480025665999750647614112382248118201366775586361026507136412029292616120321037653503830193096242551965423787666703508834442388627651471361908915458662824826591566149036410654416917375761633619308550177891611214405169760105837171726550355170989170357823674153399564072528720004341875961272704450141613005531225742930659991998040678355403442457011483950891575088102960574976435932154618308356548335855948048059855280064812153873736796647622424785619381796405254123654572344139552303806741877940544738725754117701153056336886569321890993507690099155546557445475896102880820774992663697037001548442407633038648460254837919922447252816722625254738635973751027630435421991191088212697405385465203473828729604223618699878492725440298207528176040309421678144998546418494308581045615331953392331511379133055371449624166161297532549015103702481959367037793241506931962419497539457158878550877912911747210291199593126919983514441340237336262465818609473951401515541935348082668526847397774250207665252529313211707460625726687976378374484817980485465484033887501782368581078298432019256899411565270582150084285897583615434207168791877496894299317127219550194887411874879605151601541046232556794643078198434056130065608120358844736724629695665978209752531953343226540977675199894378153227757870966054989749139435333455275514464720929259027253911193852942499403391410369217059641980354546278559196987234543701255486900310219201330442591309398440141802422952878191031681554519064182421745163482280181624405671987401927263769642354743159612496228373124540924010739517724458978505279941275670989833456236426749622946554154664503384798705263570499751174636688837487284881379064871040488905131000282959751607009843826248272613747479222761746861471924595722123360937832917607934446486961940406831221994162633360503317067280977850901276602751123566143572089169172310441817551102605045410055832062361783141052252113355856301997278380098525117740185617863288756350884298318348160348341509349412094256147509576585745511799775105200216555479768907062141484507242207589913375607451442628449942051233979655862241141772314261570410475611111097539394180614913804127172114879764973616226307064673723561411737166363096640855074230522476975199936731079585486919120570050193544631625497395977689825814811742846645307195057829792643673881455917164659899948224966874292601183668234508030581187671283351384429059048338766788164189564879144500487323996184861541334477037561646386417519108562101329742659652355552214404036435511379592828613346666411511777429531285221044859977007733094495981068639336788845507979878661748609026267519864900569027970267479394314691164143182598213596507582908327229958961133318244580137507387450769154634100364250461696128026280838457887657502161742743634379935084400663511467248881633370701413202033409328566402468401836932249995357907137454556214047466783057327583811620225435721156153129103489694192238570735425427351375220947389133919580561888541097757360613597802066150441964814168682764510724357685027389489273375138336405241928358603770171699880038148251394782747627365195613625235930701921914061325295876838839844118458499594784479378004177109092777567212684376367177600893652077678463318657517326223166804521533731049378876007531942530378555011694793219960587325577402746944947297116562803054667221713044935080427539709990187888758064883599026668860378099156021454290735056858571205642679053043121144671570498265777080449775840066669063851804106579124616737584666569951763106755092488293288998750147735086978401817743814527699426941959326600814814903080774860643987250628442063836935563029489678899943379064136105570063671218645903661728025008892855084610089045744685068085049686834442307528677974361189376332088242169382797471344913641122449122306867822099558981083011360572084984028316690019894523416763680048738823230189376089538619027248278753232824264462459409994569513667783550580515843010005222969207816264651010332799710387975080553667763459817144167107985706585652632257968364725506632229575719196435522758989634891524704930349152283358283547108692317484106857902124419117177596572078922356198171132182803645793992492821132623398476177466719166755932320276093556080684202609526539673215240235113222689676349408409804060305279723643230757521980205821243766621998923111692073200777660328692018580281256766640095931235118798813596895934740955136351269554197168249886582913613029244675610527377630876464510659068104754042171527755182785292880682522386955978155655821383199133575720260678732893682490862612446140055445188200773447837454810581299708206301447183583078595423005327728861133746183235630959015670284564019503351747903839030415661234400896349347714261991646545130749932071976276316132967346125735847033482874629417273291290682688198599036432287274384276594693377331486569903057889802717442853562499244912926943401627288245703443719604035792900274486432964973083294169417832333348061408979694203893119756751860241631828409262485148476332507864243235540935024338657199360022342374858852303429321442171594964689672846105891115585929978171782398227064673623395062649970734436557123135783711093652267751022105947417324175341490393387754489320694936710059766617736466641791223623849142273341552081518533972469300388322710577463935324561634133321516987099822133227068717390027481816400324536328737459044419813790630941837726626737159263247942963680143182795770397791831598627292438579974003782634642123593125990568902396518333257345049293243318251361060424694426467576877959325260126712191994672916030436423792302747843783109164834453805513347412423715298990129058747496058046501368068120348529519800431602617834102646711152572647574119667088288284455605229681153363074469302929934782521634172926217595854571503662013749861890863858676448920833827275297001852383500421320410745192178056436867534392694369826603886095436608373948390113909217644189611826254952118314571971914162638465269773671035160092669370473457185401963733227820890851188923421000542538548036496790846079684179047718193385036798646942005132785141999604092649606487268034139345605202213205858543170147097287917402028100181888793813386123446213457712286265956747670566842333012225615231834858883523847679559001978329479059899783325661898187983444218822693999988104948644050359345719056278626498636746894902051643616919465958397863800571771964980535532023939601972430752682999375978542804034113454073436152007097249930057187113981035572048435327262254392859503894423032030388913147717674875074156262133982910246317288988602109686067818434658861115552128929226292359245938132741527549175702763329484329636193178946715127944795053201604088301764726982068640810533328783635432061588212548894130257453727317678419604128902724942058756402741520517487202161381057590148082292633624831782662399351278406831230578953137660936157204512110453179557094650961676883426092474571480865546706515820401291465423010922065297341757007679251631054517178124901521974925115762956011292982823965926829322445308063114751533232512087903626586224836242559737156017481154285730795906547811225431257569762434533039824054396597375083904739086436953936340264719764850313906893217816805048868071632122895608189759476464569810539569621162553919093516100425099866389130045377292883641361599487562125756209221548509358810091607087647586694722719263346982797291421362411986927324092654489989525520997509844127814936602331029359330220783344705674197740497389813944529613060215879720367937212180327136502224947763519977240283780722046521920721253693591127458161842697472396611313662244401174736531693841564034321617648177693649590314266798974794833894858470563064279163603883355579323878476763361530756458043981537166518417161019507423280999392911458021399303530604237197280151974992304052622915434737368384005619813201145846333002363688054836805081460609698273326029663859616626120445403881277948195916991633416058292481768227043983172240813388454974889098715305465195326752855251911452375200949097679721545911268697039509845380906530115335301806077942160622859176970000343287107656110117347397457099538927927127957275043687092206809568142120855265186410903336800223474124700088480538368712108868814123336630597478087522621249999662670010133978350990171497411779577555553609824799552098188711948235267902713284731669854708624440799242495939973727432655949809466457917625736583214964595511416223124965422928079736963410935531235642142784837215716337850951494687534029846622649543738010095146754549733492341897116656124768380247688366057044207079352389459909850895203538993149214368132568562875213107926697141377560712419536734269479735363280862218676511925735463690192762080267471706158752189482980172159248160238301425636170466520607004466193654684897714716941575276993806481171635095890612390897042817894388029401103378590190672058454382371210638983757879956805518882345555951737114667541052088586080382520525273506245458328537921699754311994864749774565191302379963641773874737062978654553245207949480225368623363778285493486002714282054705104616351174280870051892932905624992760181652305634936932590173587326022197252498618835837080068301685833201425522724179261258918711986888076383545522912643558202349777072942916142542513379090278692978749466532065994340846982826147822003903025565235219274943299686533813721026921707350219169280478664699061428894562877320151825749403129127709238525019644540615061979822411464771146467854584497686001056875545787223980969282245980886279824776157596343977526883148076019521816084025979509019190932876669713385749116427527812392187224066043188581012919611079088393770221537548208874154657022864494063045860886924543745232782739104128830878960593429063244657003905122985410933208393436549052820629750818637019076885977938843004555697618925085810901053224430989594977040818959320336889958560761146043028024365027065155500914150969084315253171505534689850686502305839230425169651959261052546130221568756003283942979765149246048651371681988526717770828705488855429200000653853505243503189468390195351187040154880811660006746949932388192147719443117493198462729289775482549893801590600738429458125202682045047100013153217617424451413865385538101179500335531523994785380271186409579146913491095451728572721731314441203704553733344219451805361292001594634555930202753150951619778422595024582871551346794053858106962862172630018702911938535596865504581465421492570747061554219906668825410081505976517684891476974957408317670033082963741702442249513503770803069025196423978582583190032700763952857769970762775534583265913501518347816931119498904893759459467110750665358932912419524613745971877637276972762657301080203206785745848843231055022264032183800362944208858129219560882653165154174575643397555061992305347115937251811240568929801672449669794697491500617723445916359475368064823941625286511084698058321240935314090729260638461685377159948506794714860629137227572918311852386432867304613571684729598575609033730594033949516245534042712681620573929226997177947133025531773996828543914115022231175999944440281934591794127088380684640658567532714473571721305455347710042849372865472119421041314597967013991858231613552147515372658890089935007657829948714864527153371377452961761154269361913376619664486517267091839777402703651868971867545220615209649550523609321977060885866217152028851747567501469922439651335627722511290786619200308902652631998666079904977706031590396381985277529720756436331897791735615745361556266625474091491661763840684115075584402894947343058402040115631514654080452384712121233471682649985366113099243279127220262198117812769131495278223435881383544218320126875651210116877396138442519308637031130663538052523940261347547827985700423003312767924995214648821633572661185184579599562212334466361961459385312610555957023989373608572372687651250352490323068268744772690677446861290441491760112441799435342999875723083238553182825153366789559360077124454635898223621401568636165089455183269131994367684870994402669148503618125328054056603277796054064395311008172928268514497363203540433752179394776845933778935606359007341311809986101963618106376485172495678960635970208066861481793615009951960714231537916233767210100786705785230217720804511722384900844343865151832082009179359772048954588604179873693953072191711186877320064851182688463220850038647729890680375450438390166634625253372737245163555189957407775599106097500565877423593708281100530025319994071607971014793600480598244335974981280678041865120340419321065916351334028865006984136624775144249937333964297751630065125928737946686530015231421341107985099915738816350408307153729608135005138205239253362411534406661979758815366869621443137539108419072799565041146402700971633008675280412008183132300388214696922876234664427473686404482683173179169690742742518230511246837308796482928084800676662825565655907038362897550921066832885373635317404297491966702335610144750525467867533122128490278229163026731061979683221578485191956922338942357488445087415258511950321450195700202755199355962118097823958414848277484538212119156076929879845069632675322294217316004841250220852656539963700850459473410960395399007735028862846414714736293644697519406320516155234831596981675533786528197066251672168609849610953942516195843829321524916058011872134533545429351526183027715900907069583978517298647912691670485484890435568791157670763798775415357365120619669018863563329793030091290130001459414012943012608053405102287589228501757217827407294139901006418618765208975716800214201953161733140723584064362343254113085286096267236222728227986903114755722887562775408196081995412288711406255967895266297841839320172953410091608564252021730045463646092065389520695623369179461306007708785301114133857638013405462729970248972002593143545881321594314422372120576396583732440099634377224777575546429623854230223225161606975402590580353467891405677454405660086755667161882790502839543738488199490556716877033437837629710537716160837935652259176689818510323770492970246335728022402795486292518905622749109088250833557572006592305002017211547582030705725320576665095640107822941055556922406226571821454664429018866914104667765229427818435681807959030349904331900827033888646584499639020333834078781921602186549930763049093795032892549743716919010704954134995371929880944127280003310855610126719699008413075037092729218112139985037422716218464157297855711108824292572040558719663897431314666672930171167181259295182560743752683327009863885098430364175949045768408641943006889971875280784673430115076097356991618655462874119924883620750334746608233521115501341499511046099364331602022902437509344495788927942468311723228513154020660737507695446236294669334992602734543447453938161937347112553862128360378531482961464282983344668721097800089763935065797243644528437587760611769253728159012605556163201564889322799595765130341135913066705586938617204507618493841823368986505373177621687934602902197984996364623803623724526195608128283919097926135920149038557368653047805770683650042891391475447748981760600879298358752391423596043692932653595981491760293644373060803352266948912766856359345023681451026053029717582486614568077170739818992994608431496321451229680752995529544794684012303582766311434372210438508859194600755218563801271821009548639440317428574060873066778346455357571458808969186430338458503389830312372736538240395934661116434122775646965916047192276933491779773468595654066029971662742615545907019707296665172002697576577643101711275064009811843169388712982613506429520977146460036510908820873563987801673138486074342065596899859929165060180018455491528941572480392725467266922698595411277534417824919641280634705162853495756015190752856388171556155927564718372843438441898188115227500317346301534445888716821168084945729939339493596142201923928293329949354741978337042852086598038116585388086747703819941173787420808313254163902317625204121466304318822607151124114728830927152915300812882049807330717474630300408083411677267123244826517662214990473692352886765234170022952710157546903258042217770881228477892102699229051773771460935509985261266752286480579166057509324873849423249037975633763184481247786853010324705279272257016328770579641173661706662382015839475908334996694433275962074364214132947674182623281201307863511826522850347930724541304286195089751627557817213139643894793783738803140833680911889950305716971802060505523119028820726948759594690351903838288089337807313623565005734602124614686463034250334658571339344872833372241488084664526276884100582092009869214644399526530487641802410909952737902081087967159076838107883225366233901871988328255298812516244829474801875870351315985357619359630784266800366609350832101090252459845826851574624004182861350596910063021713480781296407359777485158682541473056603013933071862991605422854777218621685477025891987491837658736529398828648164614114099770952942634097337431292909316631107082741015340073971319436300244233349835346439232218162401733679615797291727096032735715835531389734363873217130827753804996470421481687555039170622139139956032908319054410261658742551607768316026337849232460357902047442724348209450622255964509243429385181378650683516846299343645635860028436306167316019398468362032772273294527087745937840732864526197265320325535657099690797505704350214322366803318982519844925240551189174157741755714466886398090941635759892456282701152317343322753456535007667196278431568872425513123220651142863539529246105965512576925575342921675125590227349667823547934165192272684126513411724658354036027415576844982362792327522339816278288826481952229153195400824760413615574114835999995647308393415022663984558017014809115111987119673404804787675000036097171857573735491726979716335642219000258026213125362008406821774045321138860033940692163991548981539251737613041290431923429177072439664723133290247225663879998912163195596858405024950324448126797495512663486061990778755227403719603399483898166594051752682396152730607284430166728180934818387393670485411593891598236523676113468683832273140938491786250015308133710973198435993759394443246326153752894360208341535698204365110648012224162553179565778119118925891570663194479770574095364620217051993074578919835732741038098562974954245019850891481943595976712187284940338394115753315263904150745844515426256920447555312152509204342897813998809747966260671828072414672076901321349367911882988044371980500386068147327098562251508178281852497140428094272143973909634638359197894429446817717650917315880643717628588695267887478510665124941795127492949946590018714933551785760167142055887454229638762309113982150279227136808610837452359917995463079159621392955508797378192379002400077143078083731656444505396858473812920281465224669282552357702050818545809039524991826378155853064800944732559067380873343122165944483524383884189848997062703056154114562695041735038039626032810119877401534672402773489608469849060829462287994265863026649094616044993001825579639713256927930067911684637049884674473545084713936047305535816647501563918881398488041554157789328846170826250846936391527322335488683530990277231697508574692171099655837579391647403857330547433324790709203360576758047886983121569343571323251114187675182099762683561677657834788069236605700115609131405748964424962022310897911157516657768959745618174811353112657361874373593255111082831400401694599099510668474671419231843936129568354987362899252877840112606392214842015204874162321468323709937157985524409980040630405486169792907449147864676629791788775050586589693909335928904301087656408403783371880135393415004384403813290913784577513364857509406989050491229156591901858346479209992585205527186230059491870076912345105185710603948453939040146178622097870180187903936506305482274054872734669947228390158750710416731080516719698301026681042248139444034798831832920479012428139307083722500638183289634794545968038729703092845024677727148280535399828536794205675502149543567663932269593951246336140928326375497419916133756861353823948923304506633740336574730175348144846876558403181899958901094523729127567255517675314412568828046393403765986295550270984051257639409166862772236002491166078354230218256003620322906805691148141310408583582332255786527253778364328947043808746166434584336644561162569836183428237082012190558055655453063664948184568617923666302409401891839028463211285117431491211178254146770334423550279430497548763311997516082151144864219508545252309942183869197276873480781663567379542967687385378585362853735084971190412959602928476673705282728156079035450090436769033911068179613185999695104594553815886372991843529213314754367745154547889254752320577477651171889926610158916012917723115012793998218414301692259643400660945277887625642654895278022525557469699343088896416829980449535464275856642729460801216991041210121980672447667727602938390173384416854642168104889630032665623912269704511772960595185383979758906222583232582588169374787730308480693400562659310380853440582224906351567345575221713319440373635252443019940191607417254589245489366471172745783934307749372641971964592213676891823347141032411910228367302821105807816683037023426227599315277721183216681626999250049717941718860319309395348694712968445396597265291323251168589750683443579382700191457140842606722751676489667782969472330474593153701054147984172933792739714508662234354287158259534657959647738797805423276150031502916577398568737912132090655329753887102833145786137849754539809545693526261792960412163374257104821344618531279741722576434577596814896992620861410631012794469295285014076440269070435550739574541747305839501030038753037059018568636808415672954680739219439515237022479485420393695851162483219497896494013885142838265570750569992414808026392488880044889398011152254703897867536192350900013215131663189102990696395623367015542635711737182705347675278799517474206062988030475386854630038561785265015004842260523634842212840766235508444801284065964442122589769475709054667978439641080295563912661812665888094975745276625718633820593652568290727795472368901009753365530270266952406241375334852397498685564464137271226269836732791680586389506063067972872183086136531218463239492870047855109094557125095653759052538803178828652341390962711333731631892737586450015652050257880216910930581370136535792037015336164383744569921626502137632188844449813289893101714615143902396669977308796978711169173844754888425553808179878741946729564104507307515539652204490016223425858618596987560834137174472650324359108644959666622637041526933407887554695394646952175025015834858418078995377659416878998590334534478064003051582418724013288389454848391670988368125417737612387669535843615852648802024424641270750539179902168570135424876410664535799879757368454462293559195501860891364898590183682083147956472322825249517935404079833850174425816610786880227403378223798770929930178713949066049458517137808045944805735611093384777716205971882644851948044894042282008053539634477575341991813187117970946762505507747213352664421126752056457196900771494499241211768279166035908369074495069467524674239400524482782565005912284997485856171081991248792955411259364042372804838636407111282278859034777534546403320667150491604520905717421860293204471096052274336278237836964484155025109754295083148878011754579375213277799652050807939698298344305664281741707987715099891074413504213079698872023702753584058059828709363925916226101671371810500671426245836498928159764539754368266734021864177951152550073864485416120300162045191660727045642151354045584404125063780799657950902607330403756154246189209537974137249414812486670617780496580489095770475350160858417251636668697086100540372493642440104767851416377143941900444448526309591904732949104186813601454146689665567298988999826246122825262576747397589802374127718919633285358798718963751114507664743015853346962504862713000464458753594585648718688225812065897224410844845628906884234345596637185500741011774894869669556409193510178060355087850520639140220316914412673629376544211866624576288646020505589100239757996299800373442746508863128564283334738151093920428652516618795323775875195915214295157219146514529908043327233664914280890624909936105675911961667185711685714606921340747925573539840105512092439997584633213630137972406037991959838369034276182202945396435292548446659656185328748314125642670610940601833429182383685944328296533537502949972354807642437770310094238729834157584440339313869943002002761125903072865463453959784906285207100679690184983083994970962897169069597959448630366597082106925730164101751245378936813118692439596848672209024991155425094239918150112942243342923711303266852703837798972307575825411377790429560616320158969578167314791236000543631767158435120345693177749297808226148474486734412188894495611300641169011355338677417940395090679018626793172622147604014636689949080527365260974036075518630839725838210585925319309358126630124021266228563003341522971708079491844707856880876238710766514899225116766391424211502629131657417368167355705101467630257244820988107500354374604644731927976091967612350363082331155504378817234562615809615169689153776109858255962863784160327917878108628762098685803578300363523622456756612090023280397224623822277579473881238244170216776216096186305978595003866031627074869638119861597738413649150782974515639611114115890048892584938376704164285199098699352540058457610487049551150066851003521964153906724160652525719806447599571603626538179879889414866326880208306180923645213449042276196791827091904144357895097879459638873262687252891992422741753239033535306939191254154908023728485720374960243859359316390667741581430393322135317881152583666137024255026842909961540430029449721659720508103718105937790058159264022463137331893699023445549221248968087329872032923780601519141157043545574360754295481690745550801133057481070378471065317832154180803751517587211700217223339128239490821280480060219372808684553628527029820631704955002535027501112238929821514601402613174446020332679246476704584692364358346327658782723465592802118224637872381185745404193470292498350142192286726238085499825118241832782091687098442622353885251849658131965496007526842030971802164620942683408152268290501948795441270634365997664664120457204751283871778673858344929006939482646058014283194682270829287243236543614352340364039966332905290272998827266125306569402474115601195353191982643396087985179828302362988239817698291719292044524271939798299557948601809737047068669452666063689478573401654317578143453794887529905909225970232626656963348462139763070034684713429462407821087813671847937169959950130667476945349607578833400916163920150423959910195724889591064053591627018055842813387665040850875160236585661707262008164907538635108383488714816898586547902287393669065889065246159784033605230637402421845505597823423240438145380796728346865464203423323935945849183569853017817498559243987604991582358926839106577694207213254282624799958746152797659747394632695040508840604943657853882858239261763374571297579942816451513931588171521529932965170395584867426001172208009203803064948127399916031598440151271666320179228815959387572767982667629792998358343846958940400414406059673201244687318174152341095226311014046503565639532982229380484404425000863813214645309938386862189313606733454548672101096767814982880462847984995682373154524382156119894346804792465704096690465235279090055579812330599832797639775192894500026697007448640960974817866910209463177409723484366209957395090746878500322824748209442243480793036592996841332491516518255462304777893681722470939799051875687603868980513329936065628147261781900287937980936923582557358836670147880112733834821608138197256658444790190502087007313836089275235446038147895928103364403177412251190059761799097424886841819655382613161657150361660898830607424168445444856164962842922972744625754663524766651295899254345416680459685896032722674103876043108738819901214778548527931858343655384434544957254267869597169777272965753280734914592372987590566767301533029276675945106789202269342994608996360585168046840624786579144164836109705112171785224231561236556733017989831085205048663844466928047231638156745895482648646119693405559709607198572654330933258403169595459095250863584054778072394905006147439593681164623720195156495320280475181024994510621084192846656387722229832701680563491533524080764114846268804697555775189379314235725580957848937025332462323200116097439191452808513003910915397864469572538646949499726610839214312200542661136846021763601694177616823838043339319050807559874393798821545863279362017392326716425558092300236500879252643626231166062202954276383604497155729949603536583393552887616315306717789777357446360207480488155666742152321325083217506304959458419565788838822444217621583201647673263067772395974911902464402350645705929652469885744003231237102203282327148336619664577455638199508755109230472968855278267494095885389496379735006217360657339722816227470183120043728138160112240368625414642696528589780460506437652674763375915107001729201124707978364826874581738050268451579884061419672541686310524724860270000005219284571149764711324379794533259366253508186825552923883736060616334890345884572840701801389677007883410012184258383644630050294317436055591436916352376809159384388997971963232592028105305081201032287676247225391234209741856262363914966526562962260876458215000188521252996855734074901374123678789507562181301745751268344962331466712001783953780288952844293881519601276042972137231781281553749197769099955385773106891031506602502674403119696960154531041294696644080713206607589201233427777664230899265223818953862822165576060618530382252834305319998554473775149305652256949393869270498187929235971293927059641887422734828756210080738478129546057579246943651816761542195355607937919192553826564610551912510151809740994621722606380493372020672092013888645546352155766794103751161325300036261485565687407103181864273204665659709632586202268843811749774846063127072019321350601937718037161056056992119455129822239734893423633202247659493362544058068514354531753258903994672445650228734918710326011721171625169101885169811444234522287245905806392257776628100696270506806987733387695928338997434346385360358167064841953120009642629460988013718234967390970594651503085867194737623605743886504022059393350889345976761349256931179673686554302835984431017354345189850989956450451014771262619508353502831204274558656150851016556222469899663844474386128874933787639188645391459888292562678340856597048007275688996889841442762870634255520529674561257592711108259477047794687667778039703324816424052076796232331346437532660310156790027060478918402833686479113693050618543483794313380520809188540519193087377806328390110404405569645598572261322636598426816880715234958783421985926940112601871902130207026522881344713141576877270282859307705494454509730773880959950716500876486351259510974651133157503656468735804113475004625558417159127497313253524435124875598651211105722662942618523998868532094178389840646695901252826016173594827166346928055782966840310076385547627994659794191016139623631584326510149732365517399179800360436903464369935934403451822646614024902461926890602837754671292304557416826938309242593874507237076840445563743371958664041049128410890616803745819536754462287931504600740002175552961410195677194430259690022408956292789776173071984249033640992793353766259085451167953416808163697247362667838930604528298093268881109829612592348936938630576980991336752484323294830401019343260078985860472961594560764719692817995310799234664205187139479113413366981305138327145632777158298622448238424864454716771612275083339677023626138746718229781903945685447774451727997110754548274330056135547955469418849169922132620591879616902317863485606091900575259179831877031029860436275651862030796485467568095148990371767048409682097896172949691182944349822356362760992541298953798629265169309677252425823553678181546059531434652044140018717183878001054139149357946433073208684418999864504871015403217968479291412249122372665492442122871629395666737331151400564754567691432500995175557538617042350607524925898260387837807686570864937672692795964822671103262825178578638369536395206497461242023455224637502259643308434077953382680477655246051334287909807614750443208542614909120720537193022693926548529305264898802091247717265678376782863505068845585907495269852573679934670870781234705079128731558307971781748605445601514324165655065829630461354570755239838627396961183040777305371723314585940363809324283886657935475564686840584114622533268463439645800758791204185251608605955946214194707055001517153248253282153566956473577666533245431356474794865115569611678235233311238489139892522331068541379043255587875911425119359001140218304050486268286708894003249990523028517911246841013516702142854512777908016738795989529835467363207715179666244673483406687066863976621914013349780634103741930156183622458681301989528759408225635020761173044564327232150348857194867680437275177216681456159746860297762880672778405064886492964920978494348694663065934401361217838515194495107021426145498088317131005862163478316655638954023259944769028298730930499728342520957832830265030185664966812352624093217691259229087947597402928562611025058681272099992364987943063915015569708544384981457536433947133199215575166576908003147404889516430553745255148687909040625050189759354766091820161993006664637980965892348401728041243424581532301305697994328418605481660621002006176774126562938684635396771457185193608004075663411585459914630001482966755015178025367217304101085661927639259233149330418710239572367433764858097684260567328001647163727298274518314219077756393015943336671229049378357435255298337537954839346832729231899762760112421709895779049940371627598481335100847925756160931779158110088405820507171691906037409989568365712818209629117947012671319352395079432745572745093025378190177447251498319632064767207409415225156675721881578053673728566219500570043868472561042756950956502648830378365255102642210599314649260048479154477595225150077386286480656572374780407772487152822736602509916109013989051875721525112380957989886660582442101120312248966229740612453142766675923366554433102748250605164243090621364663460117615947157583514728682925185557935789300944585775982228480585081206257841681753034050549232701359631245087024490969624353030459473590779158504944339233954716541932617308489776770542906892759048331995745091800610645329405961302163869416359955308252813795968126532597497769400199737395781428155878642416530559483815597340897407450448821097402791688215344922991191604024044866443234746701743134642290791471471738597748855548451364103040628119200259274325029747292956861643898255837587254086383435946523888916645220117186792539673326546557664503217947060644906931904866717265164689970433893903186843910810127977003172105872541665806759586629240506926821177876081714450653151452700405138038578320386185310099512132370304868338817690249801883869082368126576995603842748536298646548363150851766167540421448537908172222567317272340401149488599759719373853959312586225041183243752675308599931378082638720096587003365269601897263651128992551734560833244033823543995846252107109045129051888631761835530814666110164036288645434998573687303337510710817747981221065153679003672634743403361480119123572975950593332638492820525067751739629954578667000506839217392554637013684858746753647187343814909551469548614899555098399584530729861524141292820461099846565708132884883424083551508534858317133212280139080455761161941876228766794578261627501008285057435505511541087276726062586058714887255754556170067981433226244762277723952204467616575039640010746117325609827815566943588683205010358626725211162216182578261442299917914852259833388411566744056242823110764558278080932040965958177975742047602353155681316389612748317283600139638122142484023516708971789681282966826023289667435908280219014019040553553699457897699366081824150170623263007095789269424846878126091701774260224688371791485614583025872487361651558349719621310842035154622611513302516241563429833944821748821512478145207790793197285181537389958850834413809318847248547243655723346664304487952352313733584050812408007361636312122534713251290085489004130290191054019570656696873366432400603413956090921827074694431053394125912292185490170793506323499416001115561257752744281742570615704694060344876831510997083095860529087306623505126547007188426229657127162384219407854010236800404775529427088901512940610516674565085726267445671418936362185478812313535116865199179572281491235560049523777833633623690451200471858907034796638315377703501419717911222749773360126769009508589897529370966089802976096637154437036315709373892160230288876354524643283670373482410861469042790571285787443327212872950952928453844955320805769126144967370495255898088663979813508126994674961134718446398808051643696098088264622767859863909657434740687137961186472370256941797333095910994155803225454468389365901404906132011621085698009351860875097493438996985311231748022635809312575729315706776609367320919537470878223282642568675519609556138810320972010687310212254261308122719885064750898405846871893454986530625339255965926358228925610425835893931866625569083045212010079207855397718938136699583690472429011945499921854801148144644987709781837544278735513315027746257255461319067129914979243778534924622498788480728769147759525109059044567645015727511095802695444937810118161219632662685608927964472327268802227642729075391956440785810160770105910573446193358132272754311620897121566849181211652726286883987071977249119857617923322390692795461686361057997641610665656860668744251008633158948968182944503292142154268056392399048120282245608869474973819764099390382717139210800359690141409025228051262161876517819330360327151323833373093995256423847954210380812244784047830169754674650986890316203483993556668718165399804656239179495642399424036049632376883650398999031613189918573115658846713954581943565966121595694064118426146539407199780440956625009382306975918540198095498865075185379089680744267657910530688942881437321105038762371717312232332020312667604821711826662620567781446063368785043323684213373005816869104512713757312618267103281022553273543210315647993290397334883268521442270283121488729098592926847642262226041950028886176469289736752729734956570247013927782513332982737410733091687159619011599641463987385909119549566176460136273049463712563658606001443609710600187424092846361645446534346384574844244766704247834573626042962249292824566075540525448569756622254516881790592444789084615573885782504579061215643017615233786240960470753648961536441972072972454377288309300848488080302832484250115970791202273145451297818938848844900151697760735491470915642123210518866596836952037107446446698500951295204609846996572695392626367898743105516173628604473256579319065653296149312245154846787518694108631593781864142135054932790986199324144866477945672214408956287774005732016156417610916139591590854466840948179322430462247697661687597836298753282235047686558989933923708146627012358087491744439541486773330065161139683896127922597782314622682268395705942395834375286948482775207638536772502221039547303092218797845681682944394352213501752634649544781822839360223862131607947003336808385466916289897403778698679560869880393040332608841200473006357716046468743310676414726200581279962180307369339774220906429632914156192109191305621291919009726374876901806998659808882855615720203042615985097174376887087428815240355298255413447736446163863793145711634068888317307805312053579751980386218166407976413514614037655909643310324836865881588381026054069327092796034714896686051087407505815709025376677413404020075398325812082895939558382259048055275772072520003014282043748097311132921463163178886796146672825112096866004840291576708435529923725806484749703099361394136520238016867579865050425605063411283493926541863048625296608534263978228638642675318333906656374990687222454724965262805856062009214627473573566355456105119262064987866834264043892208755988712794374644843100008929758019499503015408225411436117811837764484243111121611612280411235913543593479834399517999304459468524299461849168389000971027682962418556743151134806141194631340099680138397100323108889263453642555699086107803966405581857428744608459779119993254060292080195555876351544510579951607952668548576567013087017948981670679203661343440880943699003622148003867310286558498450923064935069410686360472386913671794361109203088514931705675616353209533325093175113773052894662032172559286300620456724676339294386205692930381192762978556697085772944796947618102350267514810522425489743640653426911545480342673109528165440685961884103340469452977334977473361140944189443206440484880978028649101498193791587570085639610833093452837335827966373291953223622168641445559715465763150610616269469072156424695465096080780736309847620142519065751738437194312279899197472501390815875759565027380123076145598272458589460197632183828212491977788366512884738762445776071576442372441951282603794193345034684414452531603718674053233421839018276830404248374013985619630691811602890231203445749501114017339952849238083379447165877084590936133414792458694079912674249881800157308703920603124171240834479728574849129195730761356253052972044863503234111767079166522772539115065333492058873696193226349821553112472933456799563085738633252876627788840733989755938550418647760141200585745183628213557143590179621849801234013272083737072815093817367696787411225492580085501553130831986016238394462539350973539967275612929649991768005282592547975470210598112965255192903539808557244835819940975455899213684345613082214709415995292637195489641157781623003067863699986495252871466154446884503909537172533984518714508872232486080717500285931968135842856824629016590154628143682385285221020834532654166891086523316329206933557728707367576094655835634765595868698483819771861054170040815983299735795659751984885340318127500319858972024323247376362446066148782174536782384011780658269029521394368424792856158193472600134346415075943351536038843533127495001957151915454315273038167110254460132313117802598428423829241441438747467331629241494941545010810190103827852073427180792919263443902425149853003622517809299705884006023633072138725944841081199553825849887879247629019904539752169360014724423488695308023254857225178596939453883057091507476267773823404740684124981707084634864913939504235823838020623757280030106031295255878104315082462347907020617614657924924777668751138919503183368126426062606832907426920656988381981657087609313159298072564375373582573979044203481814998712080605781891026025357861029811139402558756567449965551893596966726936746408567337878165153350042436065971565213427750237843127596612888307041633342760760526094302715101772701382222505009090049007377180391246981850265043847838547550593938893976252109063584723051824219345551746616520763383425626186934237115550552554414554874161941941976518421858945601995145440456731630664409599491877348012601894145581530711544360365761960666874755127216592264793361133940475802956179936424910520880614344056628215180616471513105330450487500992659814482431694081515525420049576289003602205982478505486305154435982617606219520107964355673811285386221786298573250233235159412137249224304229147686605205717511885473066978530978141746856835968709162692522689069295970770047185312623803396298574302647759476814395161858526913264989130927589020889750677890878956127858004714184007126047085465495032263941613719687827229575837301256825143745697570218923852310125339082856663211738599238666216814805204651922611359703626832727953474703424434390499800462047477773540111173306153876006267204990655062569923033273245982028508272659857823856481159362744035898662831620425958914667353559327917285913375746441709384043916040664614019658145022591908362800617088412971224667585802646261777921519563782482805009018373372781492600877767391137707528256019288419038145112177635834131005039469905954230451476920372753678553764326212432750817477061552200089158594010753648615259007701083732691990266767706198729562338977012638591740349020833768700742145399075227518555757716139011681766055409493723044758263147084838149126908795908545742615207357536781547773144908010629208509134604204467336142260196846253942693355381774277882412289220311458601464800522933978679394448496728140442508357846342232569376709814262649215949992605309747691371887736235012562338999405187281878916121383013791424142063931630108446746350035470859824401252685739636261280642887940338061373885092963866790055373783418756252721359704127944691335194890031854200401121126417174422738612810859286610890334315306154396704326649177346218712384199968107761011608263151473933021672722946544578656926132848010918106522364796172579403494449180091050737648315504629347486154594562844446320004324714744729281632833145911401682180641690956631687468444024850538268753158509013879666305853192513307905371452825018736201531678175022859818539351144420696739314389347006672332154702377946426290762257035234157646215175481566572860926745339309579320013438400392678130353771121064022087420677112951689282177652266628515424244826864364772744544136874001282092925591483463717633787484779893517154968750772820371943336130125015034319251988525783321403272771843790606517068808834661745514477813599477821515876178632189913337042732318513404497188218370908479127463475002896033496257495897813189477030333219381378802000480788211146362188363636701860595886528613683156994349541653713918356194714016706757384646310273511025145193128922488574570245873249160478685288424505140368565413624696781539412190861619275899121531203948430823192047332337187385500196090396061599366145044895940343499815736550928277619111732999554202181063414980071818088974775682119565504349486604016680764336674947468371147646010417012636901809900679181744351218756200630652447920704578954860906087813019298267735545228376518608639461611040212654316575643057330404550914090049671714340350078680474739400454311463034161344436977432735857531959814197341164555074481130592074168367785678332816512386752828633037264027055056547877513192240580700779365067050577401320653159812852338097282209460891851574927355108623567767212722396786842555598413660781610371537352142432411946621368018746833904974197606064776037518257435648874784632388971291823671262547764369727604157458897118529890326906919886843117737732428748328328347745050096779593101970037643512979852524550610758357729383217179666924978644467460963467943408543857426473391629437766974907500710949812517052249913749490808579812105379154731986593326937728569159815943248730203256430998636167639874327590846738099937756062856229853226405866230393088932852753635413095243471542057774958101321629746938729932243711662290153050347699626077756371859498203053583579090202096267064383137433618041597521773664176844886980502903097374155119532749068438722354561683706130766007092756971005547832262546421157227324503882852622310752775766879890168771176817979196018297609553267241462256659686124501243377575447040357478720245765479508233104828274261640536002910854335614962015394111980746644619956298605348621531763468331568888132663977521543763875505856775678551451891965108013444005533888184380884680342876659342732621754005561729863505425577159448613280860560811873388581222844709208985302584417438014147902448032144077988754555596152293365940602750728502055138772550742398309660021089689649894852862016402661132033387724274419916540064918051385790983562911461912958959345867766955903608277576687861759714244144720228475369947754998978089769779708849768084383744807196337773247297927561170137131780479539254190693044245238597266993487547771701262229660216101232995778862242884619373145808237415638581149055619497384234669833240405925014986975168076646301192995151275285050942312358218664311059363184757806282272347324495984359307949976067518663740316982278112627748886791250966446449245647676044800782310409008837519810190128155032883342847825022407584645482590879758343470508983309874538605700937555721845527468196087935482356496538515934278474055768054725451192176722670700846758386133997536180589696537517112320226756825920155953008181229546096282231963744369848786910617421600679277884715060469904235510069667993328321414791324220502193001975910711367796595883500177769783671484058177342676103946229869759757161716716176232303781349865711614843702633181635726246309398367725200037105576371489895727818088149977060230978487070508168747801759944723172379677697481667414799511626364683913544366073855351555792314407039995831565802411002634599116199170128111756965265971316220246699593986052751472991866033682632789985774423113612240188117964636766560064029105801796172774551191625220531492008632436901770421413681656864236605087773201745466147844750954623962739953746791241623436152006826964230165501101020405269880980768050492712380684738354035671294863340172894866636174657012148129542802966695746525229798221950395986089089559456073003135298834943013791351943151418466295070095771387178988515220893137852773384334117700305723336215694926795901492752958727458809864871194315855573833052921466299453738044705610177793429048117699554394709060089408189383103107252008452119048032562275628644509387962400289733921907925550814133487974850770879433397715150223377533479986280819277697786578972570049413213843865474476156561335226555668037482011090185891162751328792608414129234266355557803126997912230979952300949778095726625434438083773680395414339977237874429353625226047516949993196336167228345716393981288014674233826907176838386963153765518472884491344256850167561802423952996340070763267857990159320149549171195052715723128243874003012286408574695850936980095734839176472184444875237186825785452069776890170404622394510239507982917025806042923572229376086128782865863153334587973058349145834068413170531771911081906957290968811758798991853166004642156045339085240966435040005243054725321973741179896407075326918915966013434462893544865248761210464723271544489195029323640485688449455935510755000303992970553668555817013100654004822584866536681148244407780340291675076878943731750841559096315678690580746257893091062557443958480912556472964376141534246316471608613524207988432806342804728760147017075213994892429060142974989475610363320564900899416343098342106814348359168173134949570230680493735100256869700786608757522432028600464537515930770757772199925388683057652316572748051675974576863788190097509249363604096099408401119933243909362810355228352293425616618681579719591253146801409107104325521076058929143314539771433255809174752228222737549675911995690365236696591879128217217092056709314535684683939436056759119240967301050051033867213613704623291195658261293044207656982409526046973071469143935798470758301983019439172209438765431026523447445575914160641025442360001254220785372105363213728239456049960488430278404341355960415520765645329537026572420303810519377421119241735286571788360887638541803779509347882554548262332403707402582313081277164608647441945201766044072058399697049018405938754919868623282817443566638951168190171626869393124544047711676922468305409914241222788486304062169094556121585716139282374370127317825444296539353141397138043621260914853305694753662733055309831078957764019928455263987758512420356080082506088472452597949113963624609103421191327024607541642113204466187381495138760444187407611259534122936760485595848012724216318365346162327147262706522977113792626171385931080993887547375062719506235027178828983799839271255857125374543018576331902992276847171140767205534298117624951774037259350557276948748379534081868837046524883123648694096902393701267796024372343315932974373973340485021102153966779956510947594749287351254174776692306060838976779078720782133098666765288758264459950543641220131712490104500808190567244616854808231064339366826542770713606539200143914158631108465847584263391633497997745130714984627741007393909934657610361615936485662150374252082261317402167379664278389435803251502236629015236840413588552868841820472050403135699118135643556403645389405479748215010175627414117504462948678058317189838142501179553679446203310351633438286475306496582520626788619939980312035497903635122598271556916173489888678336045998877688741875976214699697855500854039845161778605594345635052141788649008048902980373557135732671050126549540720914653768935663199685618137200423833559166048751227763714257567391061816070405185951234893549058767850604269076259500724983997836567201131380168621711923783574527873518859231839501307851488090837027878662680063044082829712238395955718724944666778256022579097685054195988896310270242538169373326324070571737132429332836974148257126356993626727944470555190014113100057553191770237083555639166904110998091783602657943870522103942329439772651006788156738482049322281638051689793231922413846117415548187678586898742527783990417363621344849853311987773496877443559943132979883935619801101741490927486864094939809024149996782409470161206100978446565910114611276351803161072815401698318555045112428775890791818935350830622024905143030679894336953668823159572348211880345224617512087423127817603072894917419782073916471411272162400785965727615241367353088039654620096589480920597871276841300046559046905000926888892400402401597151399416123053773174885271355213097478645366738333253949458154080376657312155854640256682562080479064071842432726738449534188846008930319193947774146669359637966515323693144270713485102936590092462754608950125990682492425779916200234229966509742249165465855229663926411674819620503471598703762954760690383784812824512965910054535814003681844940914177627805305785273156807238422361451173925003645204668281846594480610331797009626645275920923898458246019278806687398119529240456490714985049351312658538500911084531575352511399948177750126952868810660350544171602453483024616383952445346412494067428777461671998078632540201859639701653893039980346916279024731070251661195883428482633943415319295045118701070806236168624194539219342809611801111691191905204398813365404229895949604536985197387020831359641051771097578719401711063148252408315541383303412845892489918509822902532778948801058448273472192865867252401888929777876390183926501319771585182344344689727085369099128822417079859232211276915563708701706497841488368251392220358138627250090442745663765873252486154941511264907882231050663453641706155554581155284449953400076825471709971002500046701426951492657855374346604552576052246165857469409627780225735166824263679624178482227313733082596498426323706296143519260861738000006409309044691164483715365440196891627307307301263229664657918035282421470027558450058734820279411453240063224283052002329100997344928647695681431379227504179571149061212250647643537374162003823520795009532897466477094450875794918310634620537833403377339685715818759972224118123517716008253708333985349750143233209310952993367386197539680870001874096677506848328093833315157720333628808655721219533732476106616721918189658307267018105527297783461521116173017378192578227761655369812762368968507637937529554505424403679520801594467214348108370217075959842653774004626338809215611290422634325883311965149909620134035658462086513724005344609203437687907752738953609433154399526755667983859599571731426995361419232814880697149239151743376504457123792541307683546340583590290352672450680231976238753250063793263607027124310782959075402940304619248776564807955611213922233055608160284601797467597232602067443038618276143702014243610254516866723958584841880555614045362768326499088905502396835279602102197021648482281329758682426818171162420176719818186212554367546887383068982231261062647485504738886850853348559778800300563439153094750141388322215917709688578434544891349282836769177468398854163437429217523261698311737607172514457350669017972824973273763431452311324438222169637096345430437509733256317958454837204876169483623295436830238294572481434057052329793386896659277504407202242309256900546725420846138937795125063030618217123407398021573255987393784827718162432899245487612508291703714979270080274826581109780210742820943591167022617070770417616088771465246291790758233287600797079932721781995440272869141281138342458105194077031021146841838009793953802149113736633154535667503880077486578871952241300914814048478168013697897512600612810573629488799600766540687516398664585678974497305498045398451746314795450283438623602837047833079499074600634561343177243294052691017664497690049978275589757066314021612646980401471792520282266017226228613927520940734361186026971189058858612992312843305821952149321355789086441546486715909491036384817880858281438403498779327112712679578900417393364408723909168310931655217847766029645833809339391325905743688303323492459970072743551843000848992887290374742589712565107807094904261187333405970373134090230703786570843057700934826845702697035896832286118789540957241371186987145496588691605923842441217079380830768451050565682531028567492368836552328431749283173538933369800337962960681477438150875998745877399124461422268959618246348355048247269059641993911571993624305439522312991017330735361620910180427405891685575793429580342319523063990902425678125442066055346881010893814948818377222609273109631031696225615610853302918169201619666171419141603397371179938333110973446125864402178427336506206496887625501021733713238941910847517737467748151958976703566740508409779362426076277383695486990874040678420642096353002145235960495135665719240872622429635490342095922823520042867999375174540113118263516086508524205698050467726172455993954686251481358432815171148344066992604961397409516023610369120768269753600283541461066862584174516089321921322036013908957267684534838150624398339154590272886790681063496902587310703509251606111543944044795741267326521375300069794947422058068041955984865204111009125748810368182791243949329129516814799251053062315008538617051281219073983957406459217515626051443315335178199261250331459261182109280391632513590241191960479286223600191064880095393726983129870224515066521831960294357967480043365829700987378480737280058657223036696506730172934748280171546657080315133973916905945040144370440107038404008463955268506126911774829229195400924458536306887580781755488376541701915126863173959140568399305010326197933034365981349952368943444016901726616380549208331714278608810001618857956149894995957750841521792835015340409929382639949096951605962911810611324486112180969086176564072691097022518447109538570807693433175988739759689529367542574814013970784275769815341701939478670277599074557966264327775673579493279344297686538118761931215640774796457561717823256102458583395496145672871550620541947764653928384540944308128080851529601645854481799093617094915284290802180590304311547864534846868356141135028600938655164114301088052289573784038650824581140346624370205560531688267882794051859835610388908798999238910311330914166466859792031694487244721578357836803719893558318741008158760734807466134862803269611173809638125259436975935679228248474751031891687375217602298450287074827260826205849139209169304793065203194287317549620276930662948805240784705627697669128339616596867990956064004329849401240059358846095483758574687709601359429676972269132000350283218146144032544310463816230466053542353775442333315214832224508815992536659146414241412022426948540379850752014700639260211188259662277297621370558880312802863801432522256827176717566413608380473670173213301708154467163383894256789305690016377316559477976906784298611728418289774629910618648914543419020191568667727238127298219756707975557265287675879627155926077424535397471064542504974741629760350322649925877775289726917812134744864768374036132977701490434862448619684933402483081489395760289117216135817847318316578779840479322646184605988205021354499230885350561692493289624307602391983993873703811618767908238234046575206855540237019058362270121114321277324251164447888486925700404844339158989726358776550454148921453879536059818312418647601403336411454995056925232086004746103336800957167233125399341252561650943951162479363008585438186036768047901929160910055667063653196640645155012626452063844930887901901710646167324037393673277332654770735759884535688435759879971735052272991748286690226713882119599738864034968433490917711313916769535820596247875949857067173828111427804017983141878705038085968357345510450962144952355081169750080235853482808864759303075405680740267311750820566674553816951958755500015279716096566670908086886135418332510330060937819970045475944355065460175940010887302953033365686875379441837685810334380599914450736040699681101726565744975355670516252693349545488890111099094475261302731634624584575239398948567570544074183011632139198589805912685477350312453527912747037997196753071956166605770181773655315689068379925430249089653664930069917890837782529411780840802664950857982471076164097744466236438359119639625986287427886064767962640027093300969429882586111476430032831941784827870250572024400333994805005200353881074191313215024580172151804045172703637356283300083315135835069035028003615205055391873471340751091497813872034300113488778033763862306846270812922254611434054721058874481923444003336787725646073202357575608432289854093811300845442096837480701631630777808418773385809914048490499810476775855291089607938137413918762280636880492550898231015196058642409323855918399871562639409261017427933029919099357327096257428904128283833532338628192801970832508957879619702565962022007601684500706901368909646390213494385939097714062455083561820988374767375255134253139761130127847613595458032422258712685892949817840500360212403601004361972207607964412329838303421323688355383079274016434849184559897811971439714011976285358283600911143441732070558249809184248173155912383164278602914600749915515266602953456050406325613334264969183530980714911366390923816133486217101734541287596840998303483719268593660563036006176122938336391753661683694148501928866418962922861710320011645405370926287892091593206626152980083216164341795992025867954331021231793862727927768030944333812251495464992230127878038618657900048041993864235450796387143220757631001771585516595010255704845509765279015357199034470758977110023195161344944338323469820726543985552204582656899006538984098421152234256575561247193569675318323962286075052517195151014458108543948196583359657627186632997817955503117238607328214664271619873714208517515308332313280920309543922600611747821388163024652206417785971703948192306091357532239902419496193270384635093736802855301673410996593087465030758374374645356350257907822640963076663513486765605307073323625801623789392539895253146295438113002256176151369597776709911244955524022347239989735843515286775918288022525590279799548122750538988727557192397699016335619840496764637936266961215984170343106246058038220123352150224126433576213722772925795168789868923068392210752731920056256899058586180559053574170796630073142438467848734881579365436469455728882223539568228881594770079303598251509927987343716385931050648327366598193138745186107016867066809942103404980674136420062681213644916626632269214854118115318647537383230132698953136753077593422560303697275402668244679939894837776249042488276094646580323065617798958007837992030447685465498170916625138625286403952799500708475447532628973100024893410555557494836087971515143057428240754066948911155518840214054620101258242500317165729966021311013667912977246338184712686301540685884705885982174185978729015110272592114821751866681712212145782116607578894452756786072324588786826549476287817987624945491199240668429934773666281939472017798441627927200162992066125948304752685825972986583996262333946043368928026512808665923534735827133036294052694052692516028590526410574378965218197770826915430726161890041901342082441626566600601257068602835026979896131718960598426144089022716252298425324958676361338636088806608087687251486674596528728932769149236897205518634917907164233399925865270772326712885149317608808992911426479149382496760822232382153850912551444699641374797794638130828809750288907371256833875398715974093286307772624331995943914104941332261237806179269535501204450467813192824799116311404250318929483895332013871944586090610668465077763764732072565155885045878175275852082371198369776060030868231648757773933220499458728147298496128824545823122393519078971029706108551250001032337571928149230075573012355528984019563502848853030309651681173736344413478135687717530731864909586015935866365763207878368799683473704192726639191174453596304243399888252023273562243996295234979370344659424834361669628047845002210596172670937283653980667321142290812225810420337007122030166062741930250355441152882717580842263896150411282479379019509253159687902431282240790492819864150512325224768201059433379494129133099839327057099330096429949579233492766133274181764687321807539565507920616915551661899244203253504816475798124297371318387614854007491549693823037488121697288086206871967648354078687236668492707576005761503223807234367224378466484741265875368260787203122423963417085170133145984617213050974801200289628702692244105715935874665076711674917734393958652694565617773305905339657654023061005897561511467911387408512003710289796596580796170688022398248709815644174516859630197159197746914063700422158504172385679536601001501301597464293317462744098020246332512047444506149864148731768320899458216436978469947179348115942647320552236238372723805153830670445114819261732226569597583519594520895526198470576110125871965907903140452781228158346054645859307973272759119083232399996231907748806448293666070660199180912405846511038380467620299267601745953948188944709046361456745810022611503177772737740241118865230267477494829577323212111844277842259937836614233027726113006756932331701245391064279204807518402723798909197233358047773921363986379374659189624370552259339981775344153825906317599934292420570970648196818315471095103961744198723295543678438718895500546318708615630053108922440681041215109972246463248346834810380086150757785248913568564455920991927738319178544772443751611183014527229855559864219599293847399151032039462338716230278234470682498758534842116584282647446164630321345452836909605317905142492289514001755251490802986315073941062924348336650292365124714935807945546228175713740528122412436943703298410226165601031966366393066909239994880283686405031806955694753368508688650485344461589836718958126799294342247482177282516161969207714593337355724734883620967928904347005673147915158300353797312368100472805086796462039223158687214472118944655118542800497266433102638868308265813372584980856597195978757126741172141396801530908323112239496039680686617319823810872840686436339901567736276272087059494348522285850616541777063527561452408542244065067639822997376556423604254439142556157000498215288880318768463701874445806108316212468186125255033781968446607436492746799297605818786613437260657815176079677663019065939892625332899985284541432317067483242996801129593931041085563959697560307154908080804371913804553230073363672001281486597520128330695706749560508158126027215374795530377750837432260212164878819830530535913921360021191179139274385699265262235747269314789377537837286841065002311921072068131042516029213309806374110746880747562510893781238707059258513809568388818650310421038108613573087464032684193699165199661306344514721071865455496892839233648698637713808638460872211834216016912847658004556462464807029150754541500266124756496371024170318065495876349846941431680672022309724717062159422792835824617377922295600911799271793684214686488137660673345817374144400463326265278941006825624033965883593977072683758622096009534324114288979829333603933659513300827408999723555837180385647916055667293649766772962099017410498424153754225742733717193565357797572270807919185465794754739568141638316090688082131994142197917360833895583524525015096801232325099819662241657220946339310763379469261882140319194872990764288481061722968489022830424194659234220782157902337875255894286287378120995715721981089149100438803130372962334897181659085704832937925778431890630002544786548212467830276364310683562900722256467849007624225098172219096707777989973326245684338900972170213760091141180933287681669903639668874467763684194395302914347497094724891024841396643303003665074734024160141487652454957449298487233287573340234810190270261519397637620238796994726634193461989925651059855043253445446686042044421931145296340281571025141531462474714402653157918806851918958546700909294044219643536378114811549826548535214378231245739155867652043604140859033320658674791895236474664690743166687855078763503264546458819401347246118587604119526868532354169163670808470878719209212328274424235518961781528854261286872171266065680622441295094386467492414476843736101954776390391012988062896808023132254879090285107133238242460032861525504058930499476944770613316533452030954992347607455924388305158416897092568406405581362487301685514706065871821140943786109082822240048704837716179544941303286878853214660988733127010166190569319449241304234099932649485346357494333839019296656106993220747781002572023650342170294977874697047916781690090239164056668154152533620253616875503560160558064916021801494670144576279946572549176216230778210928368356816799308920039122830783167402327936921740485097695035763463212729844160103517997247067324151019627752038303818134403512386703726376636543679801853312129176067830356275870848547996836418301493324959236480328290051324765541493648254948618580327883103663782353129348650229131536211034570418260727149510587956315677584935010215940515693460042903559920300720857634226891103433319390757458183484245509498651425299970140472959962876832871530983755213077415987767164802718394050323286739389338258681546150128184855354591026456272125712717105281786405826365860120996973385716239160123061286423245678653530115839844343783232387080313237599619212146726642526947145861215903508106239619861419999937957314641935425754648766953201474584707587252917743446642581089747367784139085607437129714780341983681355664350929358752096099848297069179207015873981926506944196574774731904105164883820730870333116883894593189234300129047117747344430129646336871568350217682841818295386233707570591220835827069706710889975457694005434809676996923514117416649458385246215187516912508313047967142404655457842265744800131485096648168293468776574060011656382556783925139609092284187367773254658943387593658176197908652345323608021752250824616191005128185498507371779356646943632203440027543057850007786093688489750170732565462839496959675423110021667955783234449855485745193514036724652950761391149442770448759346683052198057605123701607332421471093776998175396259444614286243689792864889307636836568099550080897115421104755063616616927426702099910850438332640306751699450660634537374515052954955090975988838250983331981859566144897068436985546808179139477074850402046181833945250598045776934492813760959657399672239875991710342041702001626199811025857818356699849860518043975256818555927045062204845973979668223944288692328305812884027130341019508863026937535878916148150326678146106781417844041578019731062301578671096877664224480526679338044732534782392228316171398455064229616581715288260008180950241788654959548469957306132317169695067808533710328640046446769970519303090066958578167455395329481339900303613601695534122382124851567302210474349939465660727402309199616141952129533081796084407661803942569956052858659055080608850219118243544888938547991830577170455448116003209965254276327087663371108810149103589210562636431461045310799424427637609696863388857599152972161792285206078656667478007964407971186699909226096269465931376324284996369817342446266216611560413017499257262444677947026736733795487300199369941878250554001993619807553763566393184745315312823907433893670783816948963562532270213071445848989702367657654831406601609421458328905623683068115625890887922897930693669568200828683613551742162779246512863239838765066375034129025396519933139844133302561861865048258896537706814216986281671845118249281720098525746397349313904919119335688119210785588523157521820177916380222696947349624763554770813590138641245979598445221526711533584173923154664752713934323284153380318540406638758196835922531223262845402187014011948254049887631325727043270118960980821750317242948639396823570518204568779134582107782223560140453754995934219180144236625819869674133992730652622757256842363493624032353314413361146819017808266630061535569234541646999355689957844524198768084313681935768878519799859525493969820929529196020298574596668331458537297365646395286393440913961560657414202224921649659392916940901712043666068962915384582496757427064714525600148034721818033002641875652478884381126232450407359714877001928774006132919443667328889331285003706411303335467518293967476605829930094425976088634058177677353985641232953934853752748185256790956368676578772263397154794976775635616064609639520797761012555838643672330368233373505496884049838374409416047663830838189894603477823686714031134242895378629461898588622975093631820400416145261113907593857285931053417327081452709606649754939020361585621038103570207319564366520005816285852235507146000960165599048418932678564173808715305396505545381508634194731485784163279068860814830389659259240355836736344562526138990649105702120017026714509892745183032786934913805048131721779763683322435730703803083090892578879113433708636049245252829957892163608204120455470357376580594052680092336828930269783355728785288801969977557053666396454458758780000708359067606652764354417613271726944681296113188297200229953629187218567832930401461568980692906067547845667672290034587676928458878655580909554288613294402674139734521930296994095316046807593624271531944622604836060814436814567109974382846242502943818530324559368921920471666574932967308500787861539426775932277323803634083998710648020822981601832736649614257058975206054906842618827049871379081336789667460835567955993218545814960573192005898151405219948413153402929067280558030163369037499912939564013148675779767468971871253008886881980917969537989911898960811178487178034636330287210772299259127096699515238129544673330092470849189974216047512837834109047215608041918155599844659496462670680990392909055986768363224414012775406543508903939688112646151979026147884699706354274864959855870546813961556317868584771156508562269988775488068766987177705238321540700745245741739764162500851456815311955521038863760179035831462452245183714366228199715751680552450508708423394715955640462839244181274359415507877538971578571705158184286457167475578099169428287396432680234916492452464129018623201244529790981955005519538316279367200793796693441187981799248905794580190866846686630367160007794367031572605295015282069228450338947110133706680556732443342857032394016099628088662193401957605365344008895026176117560849041826628595184249756805566929932465115710942338906351849322113217102842830389338385838425351533164480029894975017823300196153017359591290524808896278501033996698553419332953741830229825858252517670755458232281952321390226835986253328721206070391858635616305410592537166310404775382377425428128243078718902377603670791043664737275651360978664496960266097545997779157027026119462914919132851183023812047949912317864463424482160878788053575418300287817163521658847232801503793360790346136004654006308061873657045821850656351515006253961248110479213653381933459395495818178871324624416433076492233159366951902817133798138387726749179044965811532240257842580539713065340384865708753951538565555319652080807164917193846922961859927729228329603933051631118556386487799657842272829787129353910774064524489556295440624202715845884305254478218332316096125907456438269479227313656180812865815859755981113267285355404489764196093033345558108276705237995462305793530691327509775239513931754593452218900337368438809489152162296095611678378421862655109021519257440984148326076932312827350726668964984935718605472862728113976490491734574521163770083649031409566891072916320155933350774468974276531922177733629585376844449611066457338522747683025562530275471174198682329638415066535228200967279702666249991216477627444767025606881139477151117398039871006377068986730088004268334606300947953067686092527652820463523573360381327430597340760743122323103178533271812786458066248904750171028863913366422763691271686578430989598495470521222541779678897614571982419237160217134610953444654346011762167476752228569076067508714771174797651701878343140730298655177327768329539601098444020226585303690603293695778086745946297625847985850114163704070345670149826900500165154606565096102856175886089235513535442990826358682551964844632552470024829280215353696743049921222322837274062758498543762066421095567350129384641533315587865564906738487025164009576960857823306406621368394190182225904241975260027494482175369093787112998743872577130393381623014533983033304876975787759103371939811769807265012969920981792260044637014202984284636182312513746986577955510702951748238041076813966694881530533174713957342249601177242673410937436947453722553537888958205847666099702878913028741468575817883042219753976004367238389241801742967816757551620721279532375334622526000621139646802469297143947185664327805961479667348829393305758073453489603293932449061546807433690888400318711913715168995915062368547302796774502476490989437273957842388562450480900856483179942835424023963544739749526758141691755321261184039186415531635379159238611954496601955267748649297831191164605171711783863098438790368671626127178769823757282986734324649757936167333793112092842653601557706760106172647426559645174976275764603926436038254271465811424922642031446366540261826876243719253558984054646338372843654345799169020854686791249598687092835809839553002188023054957974081854901049700035034326152356491864969258901460543255535161463392592756166263771392265456186918915235708361517371662793861509443530812923771449361186225896674485706880602912701023079294466593402492901804856737959547517049449245062089371526328483219759064995809901218131798923559820843785224374389906287812849398426240409679011033152741873518798773561007481511458238513746468564918338269697564997038558610456573707469382680574615859873948518284070534512441505237282000861207118881900806342451950535996987888355087247250843846135395551170641897079882145588536941036030992276341964913739668884615762411961320519790585986143311670623299287304321140626219119557558878507925482024007745224212154211838682192725462281965662779288384205374307209974928761310312735250325206117981315528760880351319116495477627778481956236780814692652305772859817731003025748590278650010748635759095267936806576597277573331780821868109530485267830082230328744569173066531779302192042104386050755397591004535962496008619805711553473625819802540763836580285683704028880995622668355568406930799169159228875178568000690508236150696920736803634749910017993642909125571923880203971018091035674510990862713586582804611672451327315917137518101283032317109734526979969659927670472786634303974845987046374434985152016110613731719551456481882204404767389663944412476396303425416026889715789962507845201031944433417638154034125400747119723386806329766280821512012734395593776505124670310134838956275812702852057724722496931623358170025449785800907404773802577551649132042331029182375265840920258504686627434094718751836370022790236994713348368163517727892557547519669868671394288629647316137847567702054258485538796136690985560365536294640860508358504382910196563887159534615139914333310936300165632725535851489038799010311337424985165418524929133366178054868265372027403562257901489827549835255682830775992092742638054592823814215634368899095415045139153423307034321650887356218860134181514331766744584355954471039912854839330515317852327791593449045440448511414636988374158440556411976969013049525868498854933758905992278567962590205642539981816495296364345584476909235693590560850339063383198707497663757712019607938418228083437174517715302414727926871174929423515621175663721617168781763919172946507893372293927963462010073281686920758885680787493672351414572327394882884259651686240180985925212620105051954302806844424659860752106710883127663414362754115077688079579149760094217433747832506782389013064749073667314970942070881630882894355321018072397478070595205499387571965696578678499419787284356496499321118503061035542807147653566958253254920269246166451018471199799447670353997263697312883009249401937179188519765042476279034572542298565584593037213001680351992570142850759683540052062358484297097184056206313841158697564707531464025903966010017278327301612744477203134120209192527308436295447679532093089605006487384477529212929616036297383498842359512313897777980090145143775787839745988797910611049673259935862021233814166855859690090961197955340403505905351338588226824487342414831434115376052934397393011587941294098631553908154675591667077758237086135658009596786162037988662756089654578396452277491693405229625393543426133855441628144409304876751762545625779630804795792102373769325255541653958166746905693273105427621020083452850017340688154438175606135093781747572253708379908847466964798396236407091578033584408806245285288317552501147973955278064891700062237523812961870399187746386306428742128772163174760796079390637746869634061735352067602534863440593696218389392142405435081853987755414301499111113910993007098917378956169072669012777060751396793536468478683320217442969404669741991158441433400691723328221856522928831546545829550431299129694304041907655886541282135641827696793468865143330687753592484808064097666835169927133555707007791992847859083790755865804047607177372048719924222405450415926229603714424203590155269703515240438713647398027739776984288273363339500249640381870577071293366423391942535566010783862154011439409699902283511365690536549546228645072967723573021632878261445753051507872521582141627084374660477415790846937569444996691301444635991949119449132357196558535168180359931373271993709656583156812068276430314085566623566958694649997380798412209729887493428345985076827854963937266196462426116774412281584011702702692530634095312647631989769728129216244546771886742054682437954110124245125763485950531800078067272458872376350449378569573189495287250187199205588823378720692365336151840816903233410056907949382493134869956141187251091673172268163686185986372526365738914368657085029616111622671764937153964039391021808321370710709719281856374652266773470104632723627602622085410959966249320919998782763809593461628715437968389509089237731867393133370415579015187021185623370932237598621542012611610933291411905750203522348162005810350884826617088813592388721287283428710106955060242322688172625427823404786512082379174979550822786208625170320120943605913547483068355121753121877826331490494204908786454053722878500992786405742367715356110023753059679128957874192836869713731821832527244107996321179687300343843320410518500958632786512734417000236213495952652241895442781330836363625548438007572366169596748222312127961191317487892637141570387018698753575021734177975024644375837550454578084481305444283213475324659635479586479283731244873009462217503333910254903777872437965117483680980475697578428112887526071144925699762678943347233919254875047103816363024348494822327694672750877603775477258117362791433090057025244236613084903831363733791595825543167560808428344384418521937370454294143584803125141264201180348632328745817204404581499685965405926338524348444571524029041433439002900788327490550968600638701723461626384205565702089888372975964967749390315025514273076017857562436180196602069476422945222913922473513302163866311748852212457928687025257930867798678665791608162277570786035102281437103636837275166252295350709836112075893542482111098081978929136020755576774524638699583642912599278517820889251388227353468020914603907041889750420208746077206663577778109940564758415601867846813057700836657465811889409545434899281972067117933522822949750424019721197648988955245350634240710764846438291292923170851968925554518504867612336762906417853168962705139288355656422442753498849539921262647479838546605870167316483298258619329752325866774534759002989796649952751134779883925765962262900529050092357073865287935512080371014511206503860459562575788110153357058749059445497121605032253798945389679666362229561483767798152085140235601531474133211181772561597140485928235958525251079232312027730327873098376901265853480517489594310082596961364691701584839587359275119381855979678264302044539562358959723289931497003275472450005660041118922113248719220933320984366138128743260530268234047326468577883294122414009082732428029119943928964734355276281233613708894025018414666544874206580746024563894394487435420612725039214463233645903066434861200862346048873374788890362468249873040933878296821041583052107689999589881444775477566197906101171060566527863530035028446445260153700479414164921673151226604287145530377936196056027876379831872314685727831974683366392967449387464783076334268161326899408073186415866285491519272736705926098852273170556574258064314534984694404382743496074865276251373991855627883993289233924328158877681307610295284083190941905135190085478265571023869768634170168121747233027091310157956331099187807138601407807367433884900684817392926654862881724658119248065459434388598340012354692057892644351673776647743155536551373291885098899272838493630349287550812304597192746472138106342511207994270713278881795432264472460937741833044943981093934979301564908308788432334633870287483541021774268473937337256168795125954510044114743138340217957184158768559622938898450803607682968235893556762156050590774687100190963317962799305217605806175213315933343309113801009708100760492794759984901253432692031361512155969745413248395885585070630780767205960729147023097463917996564108453844123597323920176632370769723874006810120035144992993163863520533230352031239297561977973821812289696520191866095638968076169292998613982466920430118993471553206154750269751499899392099416428953762410279663711840333243702252206219395654022948718382020805572882535651734534044653245719415161976760510748191883996048215775915930469050982379033414216729988936826035488296458244594595547485886983649012457920971925596459575166025661009065658130150307240298984149556164986392692446832751228212754487812670161262112455951405199025879973126662722047759336075297325944204908405746796046040984696186627085050016998917747123704227074669397352373671771892879446255443486271753869063022278744276195104701403264395780573612316814761567626848268246550766278811541115813256348018535753004890834437238089937247536239696950970331003318597980331270507219010679980610615242585437844142384624800014000655750313753884344361269161669698127444887681359826109836286285657397766097272660735197979989409459782710218550821045729179783798881899321858996522367736913615229418332079080613509085683185148388026968549979696211538817927567183914740865442367563441634552055251615179482280695389619886560642171580348194509557202800024758419046547126201676219253438577221943127618015967639072670100774679507976870127160360824163790149421387962618968383499661331581868500418064511951126779221822684764905263807363108808121262084300310686517402605325780580671913456676377370074056200082790870865913645640823358871566595560753114874114417348372016285949579389937131144358534721144917796749072066533959445078306461526346908945886338821729621662384733736184536107638346158814368950815284291808553690483971024742421273684887463443951990710958219343559823985665846067538067487843278762016377032118762198299701564590677235960961349538301910296859810597274518222414482844887976382637808525124021467048806928808947161591388615730049239283299056227755191652048377583436971426786930715954243517655873495328998783582586264513698855962481077516021724101104272547285621862036442904837700569708058255066454536517362267556567813376948107436418337448803537530547526209308058736272097951524570829176781262622616884002100320428853336570967361346654972702953110837031809584864302668826601316923999567834355776628407034613409441488174712468962971139724351178937832041355932014393514207460376817987312067574104706976259730526781119016546589199442250303949904254498569689412583688223974849104311078791234950637562808447417431446553386691428064491316428538608763506725446069235555989343810036381520535904824851088856755293100718792139687029036562903310518239747759634079047299873528521063227564015742845749428364110960994881973616879518728637452384744738622984195673655033966475647026822324996064255390991463630832890429208931877490776893400722778981318987350826952852837585437991705103488977455836203551235439358302941570664071424489755057468186066880823600400496754981519818669162692848780666245440270313681693846498724209017093743410354528739018290212015708355936231009171669292931457294700416897101621303465894168805504446781745679417481959255674897943137106663140640715940759420363088761403239336365417582460797296585436982731390374166697722641515025291425343073745660841386567600775349749222395958868405965177382710209209481896064627804741208917395013459640950047044413584140114882765706977450729091894925161657580178187242832804593227691312011109789139761816320103934990398810635968573380245232785366309785984027881887215217455238602789402485719549800384506882276771970850344449150197642867645972830724880537263839740925030504223022575688402735365134111191029867515205018833354617484950352378261175659412826348659128405184674639696789190233088112559494855532302047109815858290303481497237919300897787121168310838021007050830833826735322033166055255321179771774441752628504895671812583824476627374677012288897665591545094455525011683985901859936231891403141579253836666685402732395878337076595539953361943867616997357394675604848411718538909463091361988114045669242637908981143232272668550123491335372283041655137964137137856138067133116299917693879217018654590023140812569270029830028695108616774537365550541966937848685634656733853282646934899314041035897667129664015273692901518749172647190901225737037962096148581818575513978541091825526441668018923632118463489325825491164470293460642133129048154367613055164432371617694097948128617626516148022197775597094505591276576394332682939820757196062147954293730357163759846303471103110809431001170632847896669529827451392233397318420133553349701566622040919882200239352132896300348276702259807638699105085566162590902376818701360837989722246572048733809867004494577744483895125114478157972436108112846011677756379624709654554494078815716460851609696689657428111909247957925094162558336387229552941492361734858112875484337375847709855056616474316779814549730818896289440996631041798220175065605456218369555964169168657724716660835404790942986336186932727935596051973647618471895624958329244437082375207154933090702962601069232060470982019596470549919152545402919663391359020584288723820135410901321380826091701987952236457593163730592927757977393563831725280652427528934363336879522322431515635045428075494029083432202347037352502282276800916252629723162547563301876015592215005588460730293128334028008602243603894098323696884710499606939352397696974703769637519412772238482436230472107891018197002976747026155591810052008800447486094418255831263968810934297509859976699404661314104508944717700629370984309441821617791275530522241935315217952755043461042157723286616499534433538701194972599128461780014195859578401081888446724714768519878889017765476076022714742810994260447451340324362174478576470963320934901024108414541127472852572488650664578627925557193676370818645163459378871116698025156280486450364117608105992829508100218486535614322072329203045566582459143874719683356049217708245545478085609822533312145247671038436526892573324904095148088558323395245220259636693542308948086174906200541454583038614898322010367857949631386699006019008562989654530036953402199690161882542054056229388346861631166845752600213877873615607237356801787321306919860097999409086622208138154664206927227146505366501004453335824193441393755022985526213336001247304493279148594839655130226616621328675241548809796382711212559098682049657515158586723134809987266365062682476346267970502972908671239678047351236665369773258912966813639333440514655523038761982501957491563166589259717929315306163981887925374705361903904425830414215419116869175954348507586223324833956118078096117589833051914676364572791047237498620572268721945762937880317543634668124194441620022795465897634484488261541088322089931204637063667231523571272911851282712096841939270566868658294448210051832858155411474075437233446228466552591331861809530056670445573668770862783848709281509224049362283230285422968943505843674772193098388766185306349517358755346669684548395688478870394958619405046514379315036377074209791328638049715310291418086250569255484099827959239158576132562216078851613829898550196083832729182056267807813672585297693654772215945306668223747582233020210668735105609563368717986502421391843733541249681795443153689614333262424092349864745381258820321568557390563528366670359880989360904067123646739446398665480047383558840573295055431952875759711257116361915880913240922389062238137243212648741620692504268526535642645342578576312216883382022679345087625838055079946678878859685528376843843994802165323268580960143506924199042478359807447196805296290122205523102488295878250184960008264935100371703944039963898424564869310311714533609186427300670277139772353172637287581461530997720564027005239890455791637309523822480367232948159344816161164716392693398111838975730275177782008470627699310426781157097175690771752734928966785802616509629312125500918285893882488089369649761299616427863918141357022074106345184429805602512508019110269969313245558533956568679510470426748624565870557871601141592191174647367937973644213282598106284954222029393080786616637106337812027041088913270434661593798377115569638800271470836893205932699196901441016439279396110032447862557366069899948803468487554153052060469963204850781154162276516561113223658878804348189547909164067797939737038897065684236415516993455215807998528863788199866203105791255836676464737329665385871958073277053645533102036228136621130427472832569433822991501999224738230298311376418973676625479631931545392213218951272258999458366512231821373782165420568174313560230794395170613724973275478950204539322770046193635291004750102498152942244336035153350456315864094910029982220880381974211059190718739905303863101581894932780263617405727805677860139784929056549650970028892638633775021226208057579109315077685325986314095812208113378069820444261479391435879197864708042997336268626385905561074509836346561942891457104601249013994006455127023479563823861295849917308449688753589642542091565613817682448094972447747702647930399158174031395689231367569944834557552213949289735184840110713630473087089584551980097041358940022126289078307534529595955746575411473680197335669599807549503173251703492737989880262260733225491406212496294675078020350595960635463853039946187439531590371812804707963691253445459910202288204113138795819629006324208275872842533531218780998576984938509054197592592717432489400535717444776388479904791262211246769724313199532845941835749413052347377752960498807822403527628400744152998101674211995603496134810373379929588335384770846302514343294510927415624845050771844907236061162497361624184442625810573970673431965712126497337484451760999058067971476303013974018888625130954378149002060464616058280712812419341345314232518747791497504331709073645322290941457719226378979524911226619654681199491203729704144589001573440981451297365283119208671893331161492087294385911418782812054258143837558940940404015901793876377846637218781043710853700830201010717148407064441084259918021868897472803085129008863134697588729386373130409545959481781790658520566916911705056525093466984395272884635837003537385103445702432663216528432403771618992420623800459850544314340944182568328822970261544065861387496354430767146960580805778345956240096722984192965374105890060845441703006945579429655741000263386232963539192345384457641524955962074219498148349671364357467634624855125499680701026325001501454415632298546790708198573055509417528226321662245827431924537310127256642990185033720267147772997609732945229059084252768976749489540680296418906057603626819977736430305139196091448171383137908855741776446934551588716768868920315749027158627021908373302553149309287853611466792567037915520539949868593274687392912497801298652221136551358738300738992307160440509607185979856932806004792285724028952375344490542774253584752600266053085695287235755532827912516561850412168162973103421188025542638448706340833837094961131618938427952316967028985811924073192458314836843023391504347623300887173391612375835690510798141641973920835478279169532485946838810561231216491055267421540228894576259060104004056218624353568515724304383073587030230520515843332066798146869354686079532372635757201506671213941703675981848338927720209500097910493934875310144903172628207599978490696663826501180168595793922399939497203440661386573114306401816067961145403863475859240454264774932682313975717680989758292544573562921043628692030640753820297876059877868141226644768505151577268392185803284846604861402951986525683801209109548817396830944439896809267072626629198956318595898224833418467120469998177871331963019838095265621334472154508759266370136384905810865197624819361331367699085583823959405330882706182177703266654821597031366246148856439124154568662778903194080764843153276489624972091357841806916503463367410474307572838102117947304198817489336726541085565753710571654772721336227916475966539943940811187868914717089460885587495103647679803335800456766280581266040269070887823828270599897517325615490909951841847706779545475283080467149385985436903356372628750622860898487517586650962495722365355488371183689437986103701989580114212924568404208011454109657583480489282256195446176331609338573657357399628074281011867445277812681944406596790354813893879710956467289649459742311270245972277212641136182169335008535447004928740764277650167069096235069251758201951072633573783420090948639730658832867854143023512786557383706246277473759663181914968719525312366079438281969617961539610397913251136178465099221947105068833522147577166151178564457418511264692764673303835534874331160151588634024647214033664684809120589888092114903080460218782431647191353826151453003118168766384509368472655839272949000414878863427382444564535367235921130254714478165184964723829458722267737523266660107341487898292003384542947301565947420319891033668035338311614023669626426921457980588629478280312812392239889159385709645099990082932320033147020289872828413907407336363402998017146450419695532834239637805102109817157955171403060675516468869426049890912631366082460001805952877507791359217751265970404770179461251925678068642115038639557861194650138828603102700587110701831240215154230794124922372804706702132845264482095577300525458868985769394179294278276158255817605818099611181887844670091250801748145656592245579200813129885327648695935253052761937680563678338451458151180019524793493507320915452518422341457896136089730095953167799521349467933181704331812395549158169050898688910002235763299866913731649456357285830185479417122630263815685655946247055184021960788608428915650010132728509362515507721964576664360995244367209955958255932124365462178736848757247673974376938872049341720157599029903836208144931973349758899864467567526358639690880034940032547760088825568374099091257214873369406476970631939410479587493698750297075921526845845413435788301445462166293802418623585530432061439656499181843579975939992672596018681852391760219282661316578589387576391713397792464867350100961899779341984787716668110053372159890264882279995903384351441806149548274889895638313949279219912896916552284809344851489098518209945548726065558591252268741831466598101296422195551689589979080106549524926574685947906802489599189826396022372309118317787110302295143106942440472566224825853442473962030257788945041059821238085787162890732430625384085919861179329902534040914693158807396070526561637570481052901106098460754666746582329048713710500082510302018230136236871544621124594121808866893052113430150650886196468758699927423695931523142977690240319524860555008606511956153985486389223028276869549444141017401737710049173807286239979563155150054067649636047083468470910845175616896182222893233703361975462213012470228580457728038386776675532856092738018139084590242457292463064621629976330979149284608828504280882232055715730328702866765751382105914292607703393890425786085237713032788466804100795558063716156041075243520375964090832864598394043930559909564545310298193048269149179409478407811563711806922015005400149890875378651742876233407200156331845080902302991057437952823534329367776905367780047140146886167681216612257223161698205444021243949420294417830384143780917428221425704382331910468459640322732231212296139616993321263348884896537152519550936450025386834360839522347225837172114421231014439524497531212505731695353117447765088482232390147947820773038148859455718863608894998635028827948753579787454251593585368310203248039974540589887888993693748768310047186448298884731254790971316397491541138675444425038374872334590332684144800837555413314902068666419432324426596088310488095353370089278573442092700830415093821777429364842693199327133818630136511582871197702895933730576914697375172035510749316428575354310947899669738639086935241588792158695131431164297465927576689193056442591606623000504330710534914299827900441805077245277098602487268996349126497033442961764982989804299806176444504777859689390137470105254830461201315111378563058470043361278088772138255925710389450655239187685741303610246688930818775004396311491334174052156296060488073032644670864795672061059311206098244207387478057052038589255698654857708021926490105833090055179443732446394489045502034507396283322373902420066042406608420612221817728647508198806963238508056815065561109031555872024783363066886891481696476183900506450604129673263849031234561820970084040360591243120300109123655554058040529444834336139303201170148569233931708002751522576455314488146997082090486338530711392580970873425783157709301372173733072520008955062156520667710385788915882856399020814732097368067726291669376516319222113684379113116315393736721486860780186100417470355944940999037991101609651010541761965484867895967773896939892075329574465593988404318357161288992974309787986626926547372452880230501675667729772695633396849809822862881529108695900958900522922939761945994439090546832248579148316380185863856879026666299340824905514591587719707798411111263858134894228550199964508111536260589579236906606270232353893521411769146233476390192667822336052482539868811087346765502215876923762647442831770691702848528886539654788255666556533389046263824283093707989809977945820971605070528431423931922048898105882990213546529891347651087362170916012989874095750378793011989497357371976065617511910147911754194366323631706088748552889468381624724982154291121496251455361988999959711732164446586812053919365491122460870439871743817925953580718259840145435301393422849590872173270098160058176782780291639195869152408170870656055895306840406113457160815315245380061079716826687240178306450866906087721037524804003700299919910795643016909684075481798839739570104199377209800655519910214514355504384545035669058333258628395733365061637993268956350962797052164186692817472998539289728328693613456414922931700184883388197661319704121844412679590394876804108860634236895230079895545392562801683052303837804924501963258510986203850413120589257165103235241555169479583848813772131919411905189508162992840440755166526035439112328867728268159310330384001443860247733637843809162009788710514541210593851122121302474482704518537462565302715882247565958228508237406985342144705207231242249371454131400358535416398561939095602491499821870317429908763076734228973671430174455660575833226107305267381636880530283000666153388127732757750444085062362306925783933201001501729186757181128673114836599884415049381515559486263764063856093786544548196723302225348530033092917325029856816626691526292267779580004646303103453352444857179566355976433164071847413332965899184950711344038730392147444750127381734728530608331631431347565520825870483124234602760342313782715620412946987309447225454846138134857188666351106597733403806137980096687456621545027521837393405466148539879558794333429221707279633773529590053263070482524852113348554907105768812028812232993687190695146410439331619836967971578787235736103630230596978802461869734266960194189069153499486171264174235776037229662529809267984120167775273839358598616873153724691748644825756018592170689761529906243841170282091369144940028975871689982162152390948513591449669774800137889848404888871092331531175592117511591507496475006684403102761181834875505956993223401356270393943251596691203271910089876296896139239043977732606491548757403868756488487974176002013162000327322699100083832262468572564670748587770452840463989323689522588589004039393265376182953579002410109942923858404848069100742345524405043126487817593625701890077571343420852239456689388890610057079941597570427172429129812999799961983684875815009997696028582836903577306753774271591848212237339632935391363506206483312059716280467338374864963625301046063329452325685383224726996013935878228654545391471590743129308448506236184068615900094217676426410397813791989487236507187383555919951042262631952839257884072941844580356447597957425396823091454103988129788649250102560184232420647431980378646168223158529158089143712860641579177269607437539330891102820010972214054302652589208185920821573732849265377280639766301496884936909508471118276772959076676758662587629206746643269611366787736726322381880890096892822304708400147618355090739039336289907470759247027544316444899564851832851724573656760250016175766875643785202211227642082763508501839083226890965370212323486063010162954748909928873562275413592943011851488674053881187676665932216228463432837956541008252328634524850429048723361441879290633450076784164240929533496526884158442677939089612511581248079684436854927066532340122030732420213178621305398683214737975876707921659988307403545217751590101275681312565594540757547385714801517585668836373107353179141877465395663826244769866256258527573445353353822984598852121748810017588179056184887066105907869078065934105990481277163596361906453468242325846687096155345516971947751883906865768559290166789887530921383693149967401628234218257809211855450524860729765586857649488131477387822058994624900702833804585191583174175162284285947901645337607832196986737357593895437398758825169436545842685476865350541574914199434794917497754290839801842352543797700846103985788059325650861084865328851327547902418070978048291683284212106438966979785505644050173455280001169427812379399750289567711844793405547498233946958916368050218762029724550454698163414279371521275674390220849250779024578933797197064550624302332283432673338801924543825606761581727237511886789464083758203277922051692704522914545248871029191349912236012454643269362460218030902693963752231174257664692709425211741665329514772714230182374140091297754477991776520444363867214248492916820169254726210003425831344654795095650638782128834968952697572260531597629873133714725768820978498506689595185228214175858284615015193663680287324199368044906115301897597735635507599350139674890798716677135554766073179633611194013251374423968794226210785062959892001465908027902323366811607032208436575291060004106293135038171510163591488115926897872240310253435503679913230673143751797628743030062259860742836683853636773346792077798690581645798890232131027147534378367797425055015952324237660510399748505333649691222679527145359464244025570271721100735588656575750972260253069484466892208458992204821977688631019094367854842978983474610198510099562028489561564695511756070303640931410523772845534695921347327401885041246456824078443790148815683976798072565589059998580717765589841170558455034492964775144934550029626935861265266022332834873567178324356724539255707235284153275210936553264651211606402543189439605365058419146672113757111390939393945539520712093445007007580015896483007129283485827166843825710617332129863382128561955826237684345667189580337243017481505485002697401368544856289647978797623383078688435147410022142122512012912535459416847296157804079086627453174840010019890793607515097800937179773852512600506100089954595820201150794147844978303183734251415280240297004001051809057107552366090769422757386529483786541410063769395218207337407900969330806906557994795909592768803522429700566097994937631180713208158889484082410308338903808227183824869522792389400737866626859401783190431764260932828485595832680445102258197315187756777531267499501050076866313435828507856969470731365598261444599612324898770085527083761664334060441768562275024100794075950319453459935212253580672508252100744635405590518100568979075183845153413522245633061934428453745911591109112773474251125894442121130894558506295449214618579770644582663700419662039696950570229039503978362576594316287602492217083985105727134195752530519545380164657187515648364674883556131336495505025854547912419204792434669371943709312951868213302818556488418005587773602573321269901740720573935429545852835793859875761360685776297173196983829965906903351116966321861318056818342824058020798052388748116967696646149194609960032251430118562206280686113043171938339565450896928868706752781454011611522307582190319261604527713842194487297945956398545484240825351772849917112472302911567493179586124881013289180159295561732780124141377235513822425574165655760823471131403988166276979534041942140221127011564084079129373288585312823715449564728665770248145390964216092618080816923561944300962100537325164457593522751876644703628803096207454650683370109951483950955454626329935237636454905291731464799314017829033949563923723148992087964660074219405392029744131723867025247039028266314788402029060294636780098942004656025498356016366215106785905513651135824753712017667027219755110775579879742767132647244184359635061640503535561464607821250680040118879137676370682128332729285700832385272946704407101920053036673827335972266027615736638179112549827319823694052618175885502601043616458307166062444353933759448928575004828274721983691360085083185754333489728483055855762890409639339196298872242269769193896570586007113965755726410146022642488069240092919681836786045213777135533351137994283698725497242274459642589208049521421437420235479588962961014343946380321768065903106924970138651405570934148746871241879846924124377552971206497339336180951045521356635127911915185886027700269867132640576115898182816335976840098993596733419880293742073504387120979546627814624015618796098587179734551584782715588832804501091258539173285397382792660230489189356048396280754418505354300038629919787323187976550377375170147595008226668480201983698375705058742473854099954263136615371690082528916485341393070971575800827153203645476269277747750426452982062342264305704004767734792267259269607390071599801472148611391287417263561405546879502277215264787050759790615000215286416373122975046583811539617562047559089715591025083211764646087725889897435225689302476156547762265317202551152698337205043822682748266266969448202784818889476340300824302583209635662866626611556919015870347379165983397930888006483661378876189584938434874337139031664587488763766653798568411614412925324038632598550491413785583238703449669035774234798169511060073517044994607111144436833668939700670719223922207949782981593244946766214310199990750572372129492846049145437788857161231391324009209622307606064118623656754900209059556767212993078879762532449074542077152189074039626548858003503822919868030094365022176196250511835033474754094798342757730257376729120678880188153631664110014499053444768805117445554585401042019364030878522490943801165684130274668891294479344420325244143364244015112849168791272357540746720902766444588156645794981505924089200080301640328256354718996144916196677404776416210006210953682421876200404350654149160215843111085666230442487954297162290823068648625491670982740234831859705684482612923355156877349829217081551930818413686613469454493283818152999126597339015823347903048539733151380888546931440253338775319927847733667753291424447536924638113746560412297270541811016406389987295970362281095319060994218840913310256015531028756247206681576503494472457864923296133207137557072763951450928835769621457646421787160676230931761061029746766870889599487096525477832244000509255006203533184189400228896770769112723754081669598766409535710008625641702027973528833199359313404233282965200170408082348260823965736097262546897977292618988056887360343567499184728306436117444245051874243223653577554780914951613611184906506066035992549661835717142232899551733102771304076072535499239042136869545967774274116324787845612219903121937990462743099914879240751738254696173744098619618218249904105319244574489602685271288106891656243208079282082542342039835206759217245403775608386937932742588043928754818514531114105245844383382656299267123237071599347073640313791401644712171285175289686250817343297485428134773233384508238786571411396730735619757866277230181584038800822298384296364760779983672804387717177448855190951032097433483951554760738305145221083266237313282232648331055997649593644429439211460462605730270328182986787135286834636142314226322434061711033706519430893395057461047614844377293804594741137027503666573850581862492621115096069601080479543511063915916445180982850004408338439715203645122492569392824125869999687799509471837126465760125688955148924180720316603166661797651172797356033542742697864969109736813039377423605390177501324726252973490943610074780672166229886591325130938606871345620368153848839923988366898372231280596257561508036972436280359211066214152160253517312314241361142873724637044992867754142546328069710530610512343120778102964120044443141468822010528219888979691508556369464031745796951205718246339519477126946097957060919570672721841632723945243184113055650398649632792639839009122104327975895041908063071565168240133590247057655324260803941845460434438751955862106131346024377541578559647322836915382677795171989643569923337620958759412798829165388763542444989319543414173441794147520467824464366968457917619949710483405844561449642712315452818725157206790903345233125819776409547859869543633926853990200408428101417651533328915404360911731851964315256204481223573088402833420784777188475988270454294686793056241770138885636896544565670254460386752546442958335348787977912101066702595338287827025066505221810722997168132155539620112936432793189568386725903615799248443861326133612110997534422885707111490873923974316420299820157349032894223387770928205420793515740585179043030931900314214613763507489846700370653660286635054975674390279707318532708805794010628484956598384452959690523367795254778676505139452737410083342885635894861688633071397724898405320768670400236581001171882580362118095891023678188619230873095959109941909872940890462436567796647884528496131954684995623419161553417936295888292446990483048458303340873708157300179256963435029690557075369955200996424736523027120672554592427883599353712199423292365439757663761820269566175931986250009606512587096788235898457586569418136594566945865988878604658596262256316323517962605887320197254011795296755504291112207221732389458527371163641279564339897504376352304696579268698197994892590748136687133771968797416916719721944474794893328893589236190587227625087093813626817643320996241328032965225535067459738963449913151855604494913568423879035648999555249785017413509408310198010840287032706597881505680752303890865074268524197981627028001623287666770912986411275393469964117025611456492570795540377440171282410585011115284815428434687529190470352239023367601122987608514348545851953931768910653948598772773824258021674653333352994152697026897594665813004546527406303611892527350348702370840035356504079695589890347034532984919742521234528840446565286205128346274093286159193897896656103688624913632715444197153861550200942723088290890020219471724191024503001417259489989207696767652744151920757525222650583369510848234125972897307102647846779436419525379053324849740538860287073601261695344896089536890025718614037890540437518510508558578400782151007099615598964621755965317231690000949483265827960256608412149130801072187444398312450885129193148663851709449457090311707022552174669884420747995629532435087239306740147759819560306739258297707060236726872318608077605666950777264219125866499222495500518548818282814152417921358063261827551872143876422722315394612531429409892440053347241277206591910369219212298314750460501150273982608566892736502769307909907456487344968246355501323676250069558414183547920457599744712748123237252616096653724770035034928332620845000930852038488517374602337791263308074712763932482858784625699027081567436342786498220430030066391022394202083170444765906297013819449794646601713667652138044235727410666021069386325034480872125806257560490340281183676318976272967152370262943084715642641148339664171591511319300327567198713292414768893650753230518513251594149463328894549622872054186646735067945876089629236348608681699511856280572504497909875158284718990701460671915893737652201997937994741402876745542431384679655830628647655922244957892342768316047449580363198301763489007943711607634473516278691145558323361323083754537625894317014920522553437950143949651152300500396022144310227331450577484940593203761250654099848105696109837416245594902844093475022236013498978436186883033661769275301404649046680747324506979527147546515461076548811452717429168952713916053737303391160742545435801461934078830927679300041402675140881139016476331801445113381719839062253323579821621207794663000748815020135592495510705947099583480024482747221889630446525489968037617888492810708202467359520343180668421478903708908540896737648721692065753665952419269083176893889135670507207808680373372931800816766031932885675484528163984811330568754599908942601222512782112184996825635318454612971117230101455798677301640252393555557714153376956720636217635824057247376128067797812136780126254245214008246624129849619574789342135956107044789921557469730498939173392238373983847578363697240808949170695638728741098726891460639391566387195769414097684353570318358661133765553768081253369840308946555689856747126364543181891320080446629756393906187170894431840112176926727186036433626109659275146459264452613363717829375980895562713422033728547135083808146988636704597293253182549420911932296718268823068891116927563256812891204923473800702460919766937394132496833719364232386147577085950381461822313780548912440644296082144396808569537892048966619027497876685375648046557636181427570092564232419781600872109739442112001623996531116912339066638027499640274524633269365097749165170888066706002042511030443935405997262815118662265012599970497472679113805472741293992861855267451873288337919874901917911524064240365164897490535043039889948512170842121119831126948704335225079554513705171602096429810155917465039832429558263806124583427195952305969880356578231646829321997238752219489720107864256762293954835540314589489192190105332778901878645453791720701060887000450735135659075847928412296002510022351946533679979448521162423304700796563999651306201346554387610380843029950749472443508776212804727712046959798637524946465392122107513421735792390091714084491450180251579990505447637722591389068482555551831026232555990685964519298873140766738559739306332549535343611830217865472642520631201420296810574735651622353358295831725151973948856020674294277050916262217387149330614166496083626166650572116124690658220741941421481243477205989543189702543515338588243193855351595147399235875337482721028146880508978619873193749530517704486908239333558321328545863124793354117941216713484821583807520088514740751673802676532103315849754874236303661979656421757326470312710711166285080154613120175856185347930080647647526085192620508269154033189326178969092722912076434736080222003775860793262441419297615656416289518150570886294558156769761271734216849727713401510930737764125581913950059787925886891270520127701583076575216809616953087443832798030674557523850846575940584796956244334906729728468773424946367770431604504837668952892715998246320925287345009245086067631795015754531306150377074360711940699930213385689773076736053765603014012440699857056092664598189728007332615145168877107798287515207857603261041917803570549548605929685012616469315248589956008645939543645037832309639354561276241948763266276442661675320770513780770098770180195949231214225770704821362714253628964912559016689675999217215167954291558249145694899806710237340945602742455274763504529292383341114946863028409468666174288099040404649290141079780426940847269785483399705557704246890117334130054141128814922718375185851229120806847628561994830756219453077613412330172005474594521810644448124302126510682281043601693100527535295893933156920193429502663698160082366055850804125344952943089687123475716793155144940850356731749928193818593411533922752968536649387820904295833945999771782255224744166689080999403948404570865000328013175513020751248134090797706081002094634450686928817941908424075843167897366277781740024701899859516104004253759964752509641927748615776914052476368323933669704277635135871093744062676941426948738538116649630679879643601687252777242127487795078594755171879567610815972682730747366195842679726453178557298639548269627372602486597170121291145796461335742551355995626094722026372536955572149004150866911724608969958604603915208589125940618565215474483562865835546887438196772694941201671437920858865583156724318918841645286182116799767505619456303330988196392535877384397277645561767045867697946464086671456440479697674226457111412989982621355302443354783547895414842674756546075304734183604247055462266434504410571227580049384937534663762438918447766351227429967409813705671099697463211374831128024056435369411562401855706924602141452367667802121388525652970328064058216169879225775079306328561201094542712635344754506617449017049447073722934951343920211367510098321488337927430224934716546200269157494964672873638161264559443350212374657087482086276157652699575702282694141038200991565484447819415273293821346187358491518953544917896960623328402118453271506246732449184106944507722353767704590775704888422636396766505011490909985929661492029871599028213671762546731299462491331929122707006658739999181997331551742786117723786022164396931671891427413846175414162182876936505555755176990009220350925583461256104091147392239686791694433600086521987627524227723581881761338668483640302925768503244534230558800016201106710100723671525502225626287035337341744140883492150194467186464621729360030195193635372133892744294821050472946898032775143727601605045606083124883103096984506504938001491122974396589307412285705640494301871121441241828293078205215537629264694510598164146123304394439195537977428941940573951569983848765471030132487793572105228339789715391681566374480493576936613349089209303027933938831772929492687269780949704513409899429243451854198971515230704895875543114396610486000042861573968760391059000030611580901485096274762704110246125947500236775481322456320661665141914472922320451546842135106369465918376378519140604068374510913131065248842692801002657211463956884524197382025835531224365626234397210221038857044130312336728754503636580759288258383532776353709210842446531932178211633053941021698132026861663419974924149943803514973772916490977221322545185175885963321232760367957154772469519993713940142528240321526498463883449770412245186261073050060093458260385734494718221005965501901737836533237016220170385233749615318530070408797736839943955336552675422530729662506503851829812854229176314561229324283754113629293317613854234742432044711698135075068657728819661940489197195253330569004931517014648773580629430920778718510071910199523396626987352785143370485684017578188895974445873593690237412023964525487764076493445332338808440773586631993381435967088876509155971290233455740738785627976447899134565074403853901459168404174696079559979592754880406046713375144332001172152980738706168436653861302459206358295901734987065177514193034144753120878533413713025662444703183688769859618006813116223595876176042881480148918622914541800435141325985278159052169476357620201333470446016561640057637723560268651090149532843672627083128484399395172440400501904506695652446251871747308095254290936694670950792466239711954364810200411596010946757989402689417060938502191509471645594469176437354445585674142882516605753834887273546809371780244239324227948228060125278667182965861338598401933369749905362183481509098040243773544919639486586794246500083960889269564410805649876572958983637415831875370485571599776203149617765237315929515346225748484940938646449016137232350204749526077142558668940169251318760711933143724504156012048633238940946453104250027268453361939352355633677946752988386315747781180968511648754324264170838228975596009921097010907423162581429468130232796678959162370264723571136073807925248780277040490528169092320066467259772748663271658520010728868948924947066634914299941791284771315630158425920405207536286830485184576264930394014043636244273998826064168105603278201227724380781174120293947666102506902292305381437524230151764130545491832756198004189088975336405982216821290848574588213444727422217431694710985241546362012570767715288376057626638842480137729615736191204923586109683773502018828054642977392585716611511674392268583040188516193720097908148084578955793202614425645806248743719555724983864674402255287010512192777065744683282252999831759614987845603733805848886093211188970812871394754127368202172999573173601445996212981512685732024645180218120967800661066681512481597239770745190799502727552255812006009712704093651024803589488000020675899984417343091353967749705881272887178800211404795765483486546257891848378916510422753616297222715157993394210227633090070264135709457010996743758660562151545293632904793914491669950125239326425863603015086648630582069177613732926825999466599843444173895074828387652885984160868238266071141857054507265261848465242707508211646280750779706554724937167893601288795608449581288614321982579516577483914105615159305181055395202558929839335452628893463350802648518919797779700527665020815023030097632420294552711009059805981934320627468719600585753240519608721179760250089964769670911859915597078289586774203530457474549608073605351091497506007544933610670884658386940358364270955533485908253389696253631442307958050291626415284146736432649252764920343733090359144694435830846439816394313760198769490910951286813706997547874777618830474236656619067124414806956205386294557538419030002940647272042033851058068429980116157267158288577957334591893854308611428269480083611314666111403038012507125039149083906955380530438643632123507472041539101957461887452927206925740448470987981147976600378920721480907570399114095054498712445683700224212987702702263726521228068443781729985311707786993835691136696836977487934150372214501951811491970822202131812285592244776437777225582251705359990326886750282409641848800093056444504689263986800148993770572482306225452826168915834561997227387840455244031967163453966978063032905917092756656896787018575002815499910126743235158645484409521716177814879091220875337146419291854969070207715698224398007599561803546776249220994361311683249509931371502094752011886983912875903246020896141894208627994802383710049335093585549118672776251169267823331728625363848371702554204719151283849732618295466944171459093949620572838714068028639802784210395906410120573574644495752663370577918294807085303010739917459379480947313947709566177447586980308312476708641470939783488200274798010722766467820200110573695030476116814536940028007960425775920854847158450926798450786282726211123657542705420038736100825571553703985072079241385669034230064449047985636357288854828457082062832942362888435363844077580787439915557414988143448240671803845752531480147102584751418204213365327188492964137865307574101794838578323884945636360871307059836007887671304809111629954921172962136676023765242181334355021813183471884852015747555625957259535433582317652683182487182906728553269462006263591265608607068586092170029860993624191715593214670363723614227196175119887818744535799613313419705213817181089562145864216995111689869255630694940992497924431537069265584313827679573006502069522332059923446686134445011446646367540225335883650967136539482285876196083800443344456628677421850941991249174332977900358220839723832691841143952862827067075999764027366984035670135539443426642634131937443356283155800989143678477875673883665640935294596477805440721815866824809733980411354719530927860443385366904247858640798997117608159638790333120659348682272861909087825797620096624500710894590088079813072041982902020956341280077453789597143283803701645439249035406405051583245343134085677381102269378216760741759874079392867365711507506668056149657061039371995055026295982790604467647109148427161218320460087455210218701273286237882039299217184839336212804384960937646666767174399133550164940799003714282963080991520610478397071758353505321967979304655005090619554861953294214773988125113126227355590217940083437799979420277087437253189021346250557400579698822026755620063643341828118414119923598353919120917070741498490352453083673261463829731375546714535878708812620591390257915727348568684170290667209223951290321819046800324503630593905959184391720134741845670864347594879420073376518408179060883694038126690447992278293804792741501704530820143736534456158734526836663217658725268978019501579060023105925706746313461141073156437811384330809274213307995684950010178605153024606269936987250454707912242078519774959062772608683828521443462405230833388206972649397076339948911384185341733801584979319619529601187295900811173545724689793769147241248001219968894342251435233205345704837304756693646495605876543783096763819271512510295448118727319918486040849891331751310794297871852390170862188504287627781326311381831452252714393688732188950645779103099926608352740881060787196697720221325659108223627687057801369294724767390335329089386220907828348700563640379266159117345517700437326789701100763556965176115264266654189691592108524389871589354948943587642764359417374841998559497581830332243643717760657127312442939715939006858986529748654500542865604028475377644821034234933058479661108160684347823172240779752426225296225923810572560812490738189254163959084890509261792026201431798191688386872173192196062482324399034764664878628811011570647198245994217390756697962327347127135385807538857420233131364937483154848235255987345021193891519883138130236448079814746636776541261944507249100754605401934137536868698101982338271982634519375086658276783259888900870718032711701668159945114302036529409350129959363054745716162924475358490207842076671482522684004373253985517316605711109568486151652249125416211581163712435431671813313488050178438005086387239381353888377020036564587103564724659077116752217602243573356194157941701942554509894816364326411065311755853135533499624942171815004111056717199118516529492292021808476079434321813817220445672534131615216611807977625332572602079988449418558415889827019946713063783025244909460473406348228512043257740614612993848415895098913664384026439125529117592405706247753802767145102120576320119700992469238674183998238369977649646841205122028150257551066955215173949518638103917989649827204042315096301970428561029315373774897816790913529087326505214575299323216605280372854912594876026166322589044051715937794435546418706288924719206010483918431340109298292534811078890219058074441193773972286121768871977235267451767614259229049763771682512913310522684762353227099180596314152564366642938149077780482868249585331225702564202088106090754790314328150294952045056793055337353056076441451780265034588040314697749374126917839353238908288261032841023774298670995825651275264838673650090319552079453046233661111881130906987642822956888448846152421778916925621529963400918052767611760340737922733311238729476440854069201055041334700355098860920846648093891025602482229060794268577510479924199910924491687481965842434212763388994918110245670871526775374464697787706340330506039749337742354337210781703709171059954058624367924545294305037872959159693330378388101639489677622148075805666000866346179955801918577108744207017161953475604196776070846647499712669608736905728627687785291220599779779771227352060333056094816018213141980996661067147460063940991578546993789417073124463452952971703943735811863414316112424769345895443729562506527917996787475496464247552925723571832620092258373333584896923048879543327895006444921810384465297437292278525521385428118336464303901696278067186177936305518777287591272286592820882470037073119287596088538559965234506893296956978799082282523689696608396251757888831341316234655790221043442351943831247678133935760516517419099192513024244925529507848055843026259133315358323749920574681045194580836468491110001672090293521962205531952296319066446813371603484862735393783778907393843230242358420062650592163714227450807348187605298424514419599934913054263481595181884542517050104210749137313713469151335103834041416126382976618564950345225733838253313113839069847348569536238756629960112382631069215865890403734246469923319327899791539459778606603980837091248043875196413162626381092755471483772059772175995604189072970921918601571350385431374164637739298454866888578645559952530689322725246009178705477049045729809331856687806873857469166399545006892272094238624416164626758248432519757373742952910499976028799104962272016430562861141981888982376927804290124574056969287597433508593826154860518478040939302457564569321466238984641555438551394966607829447898420466436405363458319785792177938883947950744947733862964273721633349096640625344844654433489382752438950264265421389915999331186777224855834125997713373530727217939546299335031409284062249523638645565402097943417516254283826253695525421746560631731892714313832864310928025569958934005569385615139386061396436026376246691666210423490524055113638151061620325863265418538673679836494277169127824029688920571014351627955016722062444381540415693824575115004476029670053684312695579936100626209936850593890356146369672001776476967232733609449766559002614828978488076355962007942204011821842356775007395886547861592533797089819933950913268463570235974812188255277097704256472615430413896317426809729073489898784352642039680516304218772934131798717520329654381327295862275714639802694044374427181251731064717619745683276802705403388111060889859535416935990394776278925503885535877126478976436630150731877540216526501739081242583196629766952956852178759510234277246821265999507342140193651586262790865912091214547471093859224251990635413059307840682141641606721167368984148764852743357667987053627625123702447426202279836731265146022217218174780950190792799760330231159447298566973465834423059964924334158829297080666946609234813924542682101646925902543932908130972579571913154952644412847288203157209231067386084293997759654835576415079461379919208807798793312786580133444157538119299321746418570236993914896811068409376165870762372051887679662961905119834762009384029781467842715981853646626590575137140251933006856532557516618738624325959647519034755980614642012341065406772354511579498951380513165142951328535050023772811922762191456753139957906646579849788769722097441091853726401597194461877530973719151359128268954320634556737027553547094273672512260713639236034479102818308427926090342543422629194444768630147538031721805387327281333953707516245444677155103112151051757403300749022540921545131079675240252948028772858028064696635448265729040183610380142053940884676669338364390693457538556013308687364878234593082231245251036323568482805374622504379538245618854066163754704471830580590931410692875641865017023356081833479843742031051371817375508178319398225893174153350148300712990960457024209658688852638542918502240654829612048789542946767438603945912627182116309856804438303200801132911281547004596335206467346078296809356992045409817354364269977166657163408249314254175309939196941920018542148315868398503014775461891297838891993148789239344309921953258550345312793328524870021332937892057391404253641226360688673311998451991571650453999144075863115025702703598057812559480442639754439608946944233853411765111342201088356315517562686712575795392979673164365141567871732230654407654922791847838847421797561591499181767468843516400894748090502444655427884476151791317353601081663313255682110248428801838462733534234705442786623542674631429625074430840139766431840580231938271932442885529967581086611705029275319808580226052125562703878561711604811763502956476121502465696235234896909286239060525340804893093037049337923248372878282370449067091315629232643071911238008901968758539642388886458292975530083026591328972554908095143042808298352658533783646230483717790088171737718159664377849254316484265502621643639183662244944595104239999173045852126338502575014853047431311706719056556230409115217062505762944454803133935274720706415814198581327774000599429555870120165387033603153929864385816419508258575891860792087434771400715761274742959332041579295748228153484476262136642803404435934110228006333641367135192271907228880949121806718621266789471701907770071469368447781104536301083993974777246959840736772734487440206528095002427053783713579465156052679213564905861338501774645400532963681269659089006520190538193674884517817985458246276575610789944932663562522694093081321269225828802950618088296668467483688374350305327455686999443358769515646124367653143048425128798453865598032216257878866735890399531959997241190802277543040953436863032527714365603130044078876932066358478278146249012735320874053235089195043588518529667770255611192139311402401101163631310852777265615907327988443742140233740330425992459224195915656711152676963292657028305449128942575583122107730851845858502417834449328039084515498803753460598201070281693995429171819560170251166836044435255198658179979373657034841642905013099913606737142716150129709292520298944866407753256278101356589295794860280603065297387833309554297346449151323448466458535538933930863883091167787252612891098603995383909148786410083763377213312863242469952198620789071572827819681532718286551668615337154632115992696013003668981083420855483095823071498629504125521926195654913338082304501088874919298676966857979422415095949311510593187988162297913135701909199958162206025460966829833788374471539091347384379350291881735175144783828534302857931549379488910822726818953241832058288177735121189958985897422835870731993830424828951436280430919439679153436483127126469493600294140424667104657083694232258146702835056755840913995687759150960806110262807592600178813237471076183338660084537278868396619681236174689309873586605075468768236764833054090527876509021207496269610431724508575046551715572477577668674825204427451199267244315729782098965157265185059741841691974638568503519349933895290191788830467119367395953898339494038125696030622229925116759612511605185924512116911021945369407448166831333185620416482486776966608060294586635390906527095351091450131690826962826052079792905481027507356162710543906856787365027739946282669986030620515936902085292907729438937875413399169491616895423441313877605367518354486432365999316345123295454266727081517035101039915405026991864367410454427530197920755134928477102385332297517862115361023277977055205813016918190863169808302674880509257033434667005038447081233257492882092968549807189218138252163144485944926750558975635105313814848256845360126467419039445061083464417461611749163944417328011063877601680908172554384630737048972957127088209124493150534779828585000726046621848197302255611500996579022661585970070502400766184590630735927108803168164268252963061809241731634777856257743855702325321071718043985307672180403237678354372400152365110659315628390354015713999869229020110085274611801482415320178594878677249072490855812730539593023464411460848858201881808471920368813617668678426128882774554177305027353048389253165557973392212050141772213556643602696515880176110198271073609913025844259676064615591603994744532731538686632597243251054465027803007029654852481316362940361174657749637958602086616554890169276291412718090121057985050403159982308554460039660546390686896261303599087597478286537079643910210359783791449428104512172238510838468538540489855443930003136415343788441791719333487020197349929559165309802882991759549986653063666210600360146786084135501077660321659042383844891168281922846487821404797719755648136249646554985432593330556498863540651784232397707646216629918296748774967497808413787365167172354323081144455549127498601551850267552713935482804358372692405024621233869149776773983197919970175475479301988273067729905088520979473746931205442062505501445047647419129735865080504307000437047093961974998149667681367073811054261537989767765503794491395976468091530754481811622497720325425553606881433788960848498070362776086465345868184080127970709160621273409549060860214039828171580121922281145617416461524613370061352203475493986306687055106473959220156280661354801768015937470194680237448730092371502476963018891658449176880776714364540278474647726849883568895346512411228775269981437575153727884824893628311772464774892044420714107902645485883955387669595414491624923041580248169044814450830816716261734597226411258381031765342879253107745937229724144562269372332840556324390388985328983483494896610449774171670377448843765698074808086651737904952038993300372154631704891793640910091342537881335537163635781801476894896231862338123708586043799090858018740353983268803010394840659829421752199176195234613041768097430998972761659746139190040291546367542346144493576055945497022896898857824186694718709928169292057720031722081925016235609772031458547434263842292874858956645533126504218147961827479248098640474187004873474367545028732509289152417094803525880364300986715690629419768353158702947432620750403027164172750852705779919677839933497880468887536205850348428438594966496967294239295394746623445642705428231205948128646088760763746442483152801760008530083787371644772200512214178868390806524482615328606204414793662411862453168105690320262540745409009880169721306524163420961853112852139543862472560498903994268190797690103794435399189324525233497515717085735747530390395499409649478794853125332201728945388691483012358142029254662816960074938890409668726145535982079611347421335256004480965972852138001384911707732790891173149305928915659988655179329012168108724253032978044234150965777528399450117056602991898415346976557673495228461541048173519465592176601094789061790264339902544605844424808419324057377719242941565143568492100497404388435614595465337610507214199618439340835506713342539999147564841635659731453754699680696346303825144414572996801490268110955591161031591123709076962515753422881459720520111851949661174931007662338835029106008424688301171244842041880829556818989046555638051543948000472735042603687849180822400860401909527549036336289520212770654902703420394368171180813208774138993580736630197064658320194256648918043747656417008961448294920325456128321711585159412930056266856959237371152569700616089793441123910708595332698029608331442774593732676538623638556002588083613665669205494063165788803210430142318257457158464187526120920263672156435193152615941714150551900229540933189046823458994616885701294815260759419429140763231720069318644001613441389907701001859103944581986753299267376249230396001010044041918751156579543913703278383892551164482544129825357906023846415766576007335153442820520392051499512084469704282599625752029473786742808140405256096779412475337907441058509264244682533739442065409535506823205682424494814790172624066163629563696441680008550428498036433501818474102253135443731327090828162112980024313667046308977781525543505120842702286849008017384471743507214075302069566685208813458010840219534263219882088418506678062608415439407040314367894210120350666652392217899672381522122564697165548643495292648098267991739660192008412757781573511351983559346417916795907646758587616393907793646967619601329759719311197489597664589030245913267836486760437808025462650682167491961155012689634464417008196076294875805992237743657748208104459887477396198292930742726543725279983946090426127868777608633008175437127877183620801774853688503942365464756462891162056409613354814195535132117600050457659656297108313186291996057902642520345369744802405973276410180829474496746023912549032029944977456969855733888499659387882421600575389710761598629264101495042234015802493620791240229555901487837124254239869453901200716745602017574331408276160654244703109359493853049733702072383840558292965049193158397899504569246350922905178894201458683394100535970972732091940935643463238652418523573032325775776154523990835853898288426638157343576692713504080270115452167267676771486763246893910094289330465731410731992272061540824968486491561025047388646354229100328024761593188634285573570341216080590457226091319484020873993742586646438538892881799143119369172271695516147249090260874327471586396134365241798663780938458516399953574684171617598437170154364528815050752520779438686102471598912375440709310382543223424310052935451756979198579957361927780273939111180429102998414361254913249961738424716013195697447337737150966569411988558242863675317322627665573364117313606104175345869509103928280230569516974856000780233794876162912309281338640394908580604618837183263640858485101353714169362416466313732935242734515920746456515700894522840572726573682114583963461710682049759204815955657490364135897444778479111073750712831133593466987163943780840996109169202976890839565817524727958849454750464931674948353426809949860446620255214335367810098334913329634746830232123772529421078107247893849908186552929197491829388168252924286511112987598757304284543079847987936083257837945747907560877514662817176808584919200130193140333899084691870456973621881845442312891354003175983551335905373950384971060289323896063792953094929856939259851082635119371633917236671219952632886771817642848057940807808209993077960759305426099365279646990094815967190688051809436682306921390248411245743132565683857153875098254452457324968407716742225727275980701719736537077096894362799481652315598653464282814736052911253482340156751392761325931775021303710118598335080120885714000583515557891201686921076218549480732343295925322374197868981264493785322555638969823910966521699968949851801051911039489381242928251871412025403257069915298222349228933814436515866844067016284470523793266767468349391784465199301726632242797994606152414104182671518963207307018485989011177302114680515245456937771395556912308417657528310091704634883838014866134971728987099467956334132171690230513955521956565446002940894371954182327241452529671602355388753310518777382295102901911746506982079310899427712030591841273351523811113050972601503253502018646315949541916631668434154959521269318033623756640344769520032554553931227998111141092556163537586567123890494616553401028921162687044348416722215578415630177000096846144791109237886549616047231339507397462856028649952635956184104983260040692516016013974459600865507934080897657802201105163449431255650610258488604007519754507063847540294956882270592879469278220483999973247495539069099742251308999697913709019681709957430300312087077588070410122389487584943236986860440817651021954410619356472284494695089489762881694616449283157729116033485216271817762471073091311835591364974276039137546614233549597780812213025582123588509860201243362662027627109943267402975969633250322490048193256854443576742239407678552990659898217758715773410618454738180651676281259624297282959217584055826526524503503645951587384215562569855667974764249390854138994287407344766140925255667411497606213373448889649148570476010039560886172964472801794893734152689403634220977863624887283138658929767976634391981562065263738365354744979589158794522600594208764676539856438561970401675367825212121224199047156353493531250122732625073242156881794144544035591390824884712702833822172196418025888520292303830928132332058359630799434561285669309461013179772474729401408492723415441950900412515058607197062859071974251106180508593794319712151536198107785848096151620292302593754884168144485095421418026464742823293677404334996410633323155878002367073590040767548008017870449749930801149125646868820271370440352809947255083565969415002526461089295263148857455055154779027676056867082597879607230032124861552083008439823278264417852715237552576624596897381151689205767913107255395865570069830679446308548493411265435760123129752357568531948611708139757005390561399121912310618543233431637638316257047247610146472021944251239833705682923392617794139254363327063530602402421610880254007844242997992793380805513894651377340043044378768595034924672149402684610156466095925515666730680937603000272400834789199162401092182138636349346469241644065398419154941820734819648079667192773608927302684005248145904767649806385463248514132889007596806559655318886120344254095404607208022568277027895827116396021631768899115305866853419830650284417544414211437920704326956602032962031946470962362144399522958810352793724715230615261703342122012698255098901957745777511916514350050768128016377382579488495375088858817006983004520369250400572096592978027509492862650266470698354755547495890631421926684369237299030535241756110498017121372123111136705814077538572542000583470717961114350685132700714224623375029739041796562335854465009272441983565677574938575593876763642047523883178612144895499773673194355501037456684035586120863320530568304968062221222492625804534821930635231528785362339229601339552089428603024639255026905196237913365692240236652661177547168305414092016899829084699169183987654376165139228923860054530442272779270341859739002593217900218656470388491893840009303428895126473220653682083362020515491782371068553954811054908825391480311633287094999022019840520767303746617864219615594401298631252245384430200931343934173018020946079944161654273356375035977434832019427773644634392042066139701075451557631430921797292766312419050755106295179311761157026476005094614864664663791082942797185102274255428281949752345477755101236796119861938372518781166817442376425974242404118586348285631328827171652604302023595768479006648317499041960116680773497435808416565149086575177594349597632310141738118880172769915683531135133563429037493748135087626780783630809548031984465308948891572709480055382927158584469027487376455166119373412687231859451989253541950542372305988815934096010173665899992810731830385130573871059708957823621071063810644859652756031581956213786787433749626852843763497111987584056096314655785208452212212915925194394178814606518153765752829875208543269694592405798245492619344226973484404742001237204634273699670824005080062497319052491359693582620528962869355187561467248627968392553357592322150276596715352687392243613925725115907595986671127723626046571926174127314640723751687404087650155833882135193705141077955516528454136704255681255029108354816833796864148984989930500263337363593188843224259715046330319533281068855502638818441727525240713447931925656050003817583777044135370537837120766750707438197486147213916095811949774269687085356304551438393112146945479191769768056772867808330958780588148160110311070497592394657451240996172647801969057250152871369445234119817068910107175841790321422605421540219883551568161165417954439134195295871674437951312618103685428248126105501792357967759345729309477767920889841585833428413029495463650432134392013664274707509623025201348364883777576335743461922149364837258924138141817097701712654648509677437191750759356172941937134833361158412844591625574800813555529828272693784127124384316279293188700727769491323249938648315400667488412358685248038226522311786109486480322257947672945801274009743786678516484447935746525014473231200707468075446357616248527593813404404519380585818975017477347339662073260564901706430019940299563756497443154162889063499687468938809952657125440051389694911026415539987223314140591890318360340232167855640314351370752586270517310620103770116234963882129541617068152950007988224574757067126697676918886246147841073961090159974778830752187980324981928566588607854175509678396491829126284899189463358278186122231165706023097266509753901001529091706549175306770719785308154612550883449409420503210216032370388158630803620237609011921817247986282737295589478085546441153630154125193330103762693319114227731320605973459662638690376271519484093725029267296469864283241277304529656287915371252917096037792772609567160280700572118194585882541669071689074915660888539279727491937247672878156094804342210500952088160659689345838118499215315693331069107255556599259853010768389547762581060495157201679284651246975146767185978536850584399881820293218114861213832288740058071668714379619874921974057937901102996959019209382992728565413549938909319094854486583074204635026908369124395103245173934853191804949047640123727663961486858772146896019852399954652938201226728075358932567372221348486172361374391039571860685573219027232073614689408026187585053114131814246142490468389793714329664856001697106190228296620893085331785060497626712654956199883167393483049216931627630351659724077461220087040195344356159620771127286186836613514389646318249425151742101773746634832769773699716227547750807610376543449631288305492718555902744464315396039560140534812615938649178570737584736056521561391452067552119102255183852171007352684136665926181020928043784470917942426053746195186228829513024584175003211910423326863037253405944134814479659183858650494610999709837332853916358530050889799449974477655508599756368837068605246199857636998254634591608179189398713570596171392006656167170243766070754626911012311279238470557349881658017745423160589847114503848018025970251080850431435934907460908926285211977808005930862645138558998506477697601234551010399103710663974090446373800272101913347684376037062935571461983090846617412837253100002144577262644494774390811192230569995704308317522555196767157465179501627045143415402698550270929985747928083518285130392405578575073927370227411994176662612802921485613233620609404501743386681883949291874893318118274076559709139640363641608951155314690145903221001796572867749142538883369936236748713542151866603724503030620802826773988798300442621597936311380991478717841628219410125402317030242840322421402679318482632693556599780120283718853375310734708244046107072959154215030579287049533172397441681781236844803581920249261763394045744183604026907107370509431931637720774462069334384748615448885511224900473039300259980267801159031717005486195768650887789938701041658060602231026837611364388381175872660907406878302816635270167075960882474435568633840154980536799770826841816175830325618737162186398423799376851213817688775399953664726524145993561150787282344399710117169606357266701385391170992638888903847548815130707686258162647112722987071905784295849121845467732985104739224411165725946345138633015315014445559958432585840246593517787560518994495030611292517339046125087004203509154763620593139621646237652113698341529404118329305494243853774715348676157657610453941046377603871990108005241151561914622532073503900397714174511545197756466032152117601252748482456269051459045127099308825901519811657267005877311379598079245209518933960677905810397996081587045344870420355779162300851845182767226379325286276360216929480188028178803196324293498518780063394097495909838614444581101625245559464250370497522045270564117147112130676710889907133671174672942383164525632164701399480573601177558609590843020185469912577939043555395414048666963498056625666690046499403399902806410089223360637737541813964962317222682901060043823981572243995336364613449406897038255269710977018828701488347767033057096778382851776718170147348340132398305022437001639756803465026323908711853414913568910733951477931583470627044092135852910115094654789776793881789170721976779992202792726231465228206855901154148919341575942129667138956376303158840941473980363633504915891633034586499171364333232315152209464180973352507737391961295721562879461705450473108911043405103853258516931734738172825109764373910954754301272303996392990462408941243976850262619124535273679321940693108726722429385539843568906376623093137670376943475909390089274378000682866469210346490468510530232139182783408642896577285972883812336177552262547042217437585521632098874767661603436415598143886674015981639720981538699839186748097274899544649320308393760496011967457970989989715964209854263903813880552966382506535462027767701777895165441402704101430898916544652847099766401513198121857629879711324857312359098494830115714937211675253251145277824818348871118146253026259473107257370604902038054486440995657240710783208753230191217520946058492663955737883798811524391440354032038101505174734910006598693984166189073116681418632493100098117215209570473453397762522847740346750213144568857661870829947564425282707130399081191874033144203844691269135796603494271495388795378021164845696797128017594266873173135239388759241103059977473285545730262485160381851993573909457045523828284781110014737887954987353345532383291246962005269403600196749255536549671054238418379252804261200630081623664046116989560550080241222346213438099457667625537560958241333740845735221501566648225960551263294320843594767740735645616143529026018763555516278873363396716864760269936697326082093161485050317539011191752917277671067781110812236058942722593202607013761931939125771503182247107190867624295806469439110980044567609222533501898650068883167255956896150224783852370422681049212713471097269731674564223975592336928169396603298456567867475365704726813804989428420150211288960581611251221490624130054133674953246243746915259537974971073088768573341888519155903815345221026755021281273198074264394313329532409069126469881314220066195178203806016076588785053769828922311928940724960123988536181170418651892141260900138237780827718628540551956624371832518045914822393509928327266009786424738296415929110320848141056422065384242473100577134673845996127197297056036155591480615375842186673173156574769507316859789505363062653518592296662929298523264782245568110081207065293031027351818081109039968378564656088234500585733038207157952380666171143381352090703734983035990589474012453555993797739164718341688946211948559271652092307012840546306310132662040763410228387510327004016270980247308996897877215895269484150820242115591189311471739274754652070356111603906731911781272603639540756980461225197644165108834533897045404636647852286023141906059562306662546721499978184778702630507902274451991042258430354988966028583928193344363289441763857988293011916779296054560707667322872065810881905481171072151777621520562340600423134332975381024207169379269277858280638261060139993573284454444712256295224823085717193940960907308333669879496222153385692983843649686137102656972062975360760935595908982206093944876480710388375300221248099929841494762920793213103536901892887487024602748854068481829776399861849341526863834165065105654762641536058679277089162399024995729698615478702880556220387410273006311017717698321356661496144085487763393446371416144808626146968484494762051698823855293054990023252387389470072583506232314185366487193663721280002963047449756639047118164283808427796892101741222567931293754996608079979748848000765058326256916538511032334606351820990857602780893769760553022586608928873830094188587969368912489585021174868220693128448983848955125888374619931429568251889277800886305516933959943755768327360216390117348829367239848917047980034378213385733810485844175403779600702937256230465698359887927931222181841278853627032239876360492235840966128849023614465347464370543027329005503240523475184118497953869968445270046981206463795200746216076947940722439287202668557515142375608313193719645253844809244321820714265945977673276023066305567953883518564174344668993257087313007315372923019491769540628024369558769158751875012698267185129518801661441529728277076014676262783355182110160571850660471654530884706342398986401967974919229906167281367754789806335593970278252083458625687048631631272947990598501293917774138051337173067629539157958259877361076853571364657891115479689928673420147011031124993415471889637801656404604010645872469696863351465197009321352540306575051335918581842843529036335734234971266615863699445841846522550711005168583576874636511005004474052025328535666971305719113860858237007750683220645486796360947280621658205313932440805674949654891618172098534607577097043346107432082644504216151909875724067856156920675635195663537545147265976429592497351719607832353038420033422786196851983315920152486904587206432517602926025882359390831089526317887082096671237085974270890505731096553670609208998529366207642399100936376661742160297302464253792990631616816856111507184192152303517027698529378526690694488420759247989606377063199807092137297710557930064176791072368215354042348398995947577860508615576104622875861104896621215263995268487768349525729813293891517366340926801571865030614592955169848002849409744188471960045058664787696670835177987083440822821488908734643200159232688809974310703291978890218353556616870829119215919144655368407634479556799176229765499717992369253871101972612530743092665759148886369027051259438394821593157526769970253568439206929394617286201449606511518954681586270450283648561678264294560057193934363006947645120984400882613970235378130209202176780696439002708647132232513248796194927547444881134068892353103593050194314078435426002883029488686336915059061206180054305558779175350033979605617524670729219114931217754233943134510315768483857407799755301025347634138400349260819788419238462335340040494938536190917231210577763189342605453114041942319046723856527781390097725305602490218949518285842887288482211523286754885441039533565125151036794502406383898042779810849774748416633681187161592064015017677163798731132611795980094488154895432503930830178492562792468975103515889119233731534174576017891970127762090316788751736793094644107975519130796828389879420853581737621558851596614821581270792016191426254865565263183246368737095299756458771636077187840286917161893627138354518715946880316504195782461663739249764113449999112091858939310645690184371180875385197376344693048998367458088645108904121820383152418866181246029555150691511711098110928430263622663919196106986369646395923925064626401972015357723577199784935909288346124607363073675494016356679595592054822380677245096232660767993060414178215585343895192376227631360037799830107101874071007293113677856595428114947225729220484380714482024887560443809230303421585091187392953142957272483796330992519913010569393775686026541319558084304991233308203580023401030438206657655149246451309393099509104786532063634264921953612087048914681512037360263269338606108570128169377369041993091585434960245921030348470216732313402256842728671765452106582611113172856364523614094331572894023848482974992907531263552303987559654552658031703402757045144087992342012687242692496159505248635992198615950548345536944786520041978550803007337084618362702405008362556752878844305450082668965122451861713208145773276046643927148656398001004817064253458892904435273877019326080648965494141613876966916312034242085560437345575156592343852736656705504987198028315259480163757218913714067944907985496034208734720665427866577401529415560646995556265587059511011499705178023944398684068370507974146068151303527235540311320139808581247167247116512605668833910993539471099473638898416663302570190108316252559585351280327562798409642360903797861326344142721028807710563400914265233019814433109779190366155689405669815431044156531993300623094908622264234088163210492375669704689421519831471586145789211900720456206620951422184130824639071629148564434898095106306153105680006990761211691641461885168275761809825799992055848436592213286414649387763761692143962107012496846096042571555748527446202423824567269584561469257011471193708169226184172750738251526495273938688755225347278659791598022012106076451760486700840320143135645968476606242816921798480226454740332029763300802113643592397609192850196424682671439111898684019401160237681810433545606422669318052475979864349020552356871357209230990347240790163546738459296615187627832769641384735127887752865986111121955747502150953856495414084908702873176992070629823016488421926954484819785694395290561934117502316655469868510198675984618729043425018133345275471550083625190846372496734894368566379235533062213524423136981858029924911836429459777301470863122308451521193999473362861854105817491369425014806568125038701742678472967370759509936615751503464398354864694259987624421369701633950829521027572714751983639239671808580444036749555897650164200354531530491987303320449993393520471222188499268182996344253072996804153212122132204651280226845507975480952935964625674572028316193570015988881214463094789355781025666781025733871890604298920951112055120599745417277586972417836718978693387926500327292429804627342379787757114191352912041736969016646640300499665405949192341245816189583319656112831927681641154642350051391667647129487121346022956757675994472918724881543925009771861804035092514935417012785990305644365552234359637647013734058724356438976911919409357237352854096302973214617837851532196884554198200588026239318007037195591696723929714045401864024765643188387673014597703797056828027049138322264830327539505330434219030703213375544446034700806008612096696388299743023862714727072168710795313141124502630379748646264353618736741253123078612230785184818438295831399236221266676765471362113486989740613754701385585105776251159387634017947436431560838614359208784995014799951297303942754325158630763761623583974279662871988814744045867368417931816692419862683881359280905659792344497712415774871107556741117573722872016631818332686676214200674366994591400323751463849053940071232121276694842433425192881638341110372476560375044035456105998548681792009937639389690121530136203577165129398787029646251283231382795569528506827329247798173819474756403820325889122901731750520834653823338893898700656359931052052032220993393779071951541636628018157347219645541240656552213033539044612003480021570848947349215998908067519953221766911342964113306806988923721318557191053461417702629016825840008318242663310089550563944229165807015427625018699709599989962240411739253857476785633758440896890840268535352611243006786482679787181005838564807628796778829360635081823295732980925894863347136403491475953954902420225281911537229695238853693364438290234728750591424544274731707331395041489436483971236764680199683479487780288025429657643193295279743461980052689402565591662219521859218237826801604448339961979045681136016633666836065099925501757536085275476822894577124629274258189713184210314205375494234238776930309193797359424153918163803451568911560881377206130088942718842081118378014261143755995293516171924266966257426258082833588514847542201310136320772198222911713390097535564443799547526936861998722097572406481498369710943765462777955951597325275332016862650887654614270979250428184579650014091206388751428937153273617165264564044886088837132905211016294976852501792217506598070559960056005162117651362100094810499358771146242963569631334948091297644087459256667995045544269037341115381439809889559836345994132166732199334210275537286213966713677146690704904965456732214911167834454133573435242452774691245123908342386949253166790967482569476659106474862590442077081717364234448513070808019602423157533140750973039798771621327659556611997964893778282440443832695468374642366567944303157459057477178548240290200130013154252607077665975400940488376274754565450656647464749006797144453608306394729929677494779377799765100642769467075788562454552541047591004972832165875437444209110906011399772996309003258549407775236144032379853586247982733306084262860948854769826422412773765145177172961630054935105183654839361685078113240248666186959977751130449724445239497936404195444103244088949682243017548133595070874416359701225603013401402657923761317944967640096737000562802411159493439130853172816987219626298284235965954866280647010573698752053131567295902677405226847685191165740067249051859460645226004887215804768962210542259376573671796037931652542071737300156551863485015125436217163564995650424725780112214692250825001624876233442426205641153573249994181743665926097368933939039371694284421519286037747545667760525533771353986031673601874836258198655269483298344507830167416194315304059398326854596692853088032664887129667846664743720624286410910989463233707532919511992041333418763552460801341278127061122372529454358541643587787754671128646684273561511020144760524954202538335074317142686943372656396141456901666033723333486232408569891387924240380884192492296078968562132370815526693089820763506948138878913068582487019770267004983342761828701722521703805155644009348110418910758074807927007458836507974183502634348683627435099725731867287849817512110378003756204949545325158763717857886460790455160779498298613060577860814703847217124773314680487533123813009068057930772027341922452157410508328459239380489759134796829189910780052096204345583406854578380997689678395651044556130470926213488826131206291797258618287457970850302304343778596766904902179740962360694764603747700428300766576420163053659755269639246953667787942599029369324898848528953033598410652302353569282323442153593620147273384664929613711382327570663088246760288313012404327953045677788728693626234989723888490819564790455886713321009257702716943916432247698501488547917596072209549858041736112078449803708649390711862666551191349261461265236889929590654703661193805014444061557339691107279550837241364933054629957194081491439299346421522503370654765915653794827573247829627750728107885086657683135617286351278455661802960736128197438138500784402908537462026411609878773092172182353361106437096750323504837745919249990390424849793430703741999336697371809505104318119191565215145179210491498988801126554228930011697473038559053132907156286332937037035756696227282520550157585026017625035424995463926891430369616859451167239468661285963149488797992645912551864495235777770875832680646926504244806273477438183771406081468409403758398121164941283130120436083851348231478586569910090179258054420866888342120793698362904044679901917610274585052251045054699417944785254452383209720881370354812100349583199721357565197246662054644223591214553994364742884786221170742232115973230111957863099209658185390295431431191285572848723141822964116751655932654215962393317603268703362726283314687637575469771906891344188292452743524650580286513262638861060630243151363993523888708587496543550331253456070915376059029357902922967273675176849596745100866166774989811495066366504670585594640561281258238441878848695905020001277042058676866096893350970898553130414964955568590667315331125330568201602635006043051793456480550048137469381108726333633790933423458679138940404820962462930975193487058236822368028692178228967565473101012278353581601424725638949694023414724045455481574133895503158668194521747951699358307635227732363967369344199867526631546944202008031695752704186708243446716308032666277651633502602321848771406400967865579587785827336733290378240626000362213814873923998436042692652332333345174120282023261508112344043536871069706400579782148459693972134273579165257664684492868533410695682845205546312538948824364093485947492145839368670797326648570883672434904198412164292905232106509229911770249890821986064057302880682040827393577566798432294576721173820882910041039279918873856918315248449153175805135146539961114436985080195696265817067706258233273844638670131037059838648328360508715384490733800365499872818018283040300382355808147700690521434966030696432647423424189078048096883011263660164509918209969295874801282887969131781711712749795718637067369752676221948861679559068113531961560569075231941868239492567282509443579473955448398279351060343933618986790617723342471344817535483220711130600069476823771558590425721280828549610400728437545010859683469791264922758094384861358710868362426215885692081342608919774199630967604315320805462199146488205736867283394544444024010248923878835209107536285891028416188790008383685427123859525844416355144964632983994086487096371330411817143164771097778726625236891950444842549469592342598061375014474087461813956256602150244791685865551385311302054098250097854845921856345262139364190325854061077533468999462399863298277023650002850435342151004919984376251812316181065288826131528374420533025045672960063438297641182617502107792613333629239802878549423171744678913906272771943461650653485143437457360094947036577596454269952907751780758370305504007555172099441699118233877091040849734333905443735854999621252777058643861673760425847531660685276187553937314817839265655590154709393632433984943233464763907497397420348602180599661352528134559452856127966738261410430028142401272527960907952278586646342463757215556626006580557795790637596928179133941733865235036220535252148747446803664858958627450235642527718452202539901813931505509671000951573906754603655371381945384377976010820014650478831708706379231846795056312904216365169032949186225149674963064160116733299055176761853025098699418508939172892159637473079959275818785428235720533246943779189145203200103553829868886296747716617685329774036910092690049891342499253188715809521036119411802853101513568538879557519593745674907808469476285839324518371896308495600806305801578381941310355206294149503581984404951632502334044775668714360853743403614150405281199672179510935838302519102016911593592621064556124511495301631701201439232379980031796468396831931254620685012984671210574714881560011832169643165412300972468085064433127603224586098723331177247443910543774893726904863018226821146380091891618410195618226984186322705405621231222814429170916329496553415280662477189577055189812317435439274728141634983200961727189771520063554249485411627479331283430303655794546853896059096522914877208836897985984119205844453232750900427230025086783511189458287069220908714864887186743601321013942692776009178546088737914903347189744103531043802452351820221271322297398422931187662645178512391407638094212456498726726378776237688464310216633500434818587347637785614096442608606485722953922019484089003174479996043218484422170867296567789813574789534699668001993552915913592934798345957448816104126032039655323158666589928450723999773085592364096974909839034474571708106258197246401388144852389249601809761771112255937161608347277756678828954241919109155230253413321280699822786823803548299376700710492308471803543892189541278489909005711869745499136415829026758463512876890287499219551160859176792295481663530516998551706620081568952304501642904388129683324901934690454990895743363407937152401769773084032369201209473204419315517551442738140032701129070169931821152057501667457887049247842222460755073791621837024077416866827140614843509048229465060238607435441913127135365882536603199485754120238699365962810231091575070551006501887354514665582125854785822755153377759895508379350343796750119648460815216065510826697250190630030965400160740700014965275045533207842052618569070736112785980273930516922836192257834089529617224862296862752312491615656067040917382521777260230783856240887802633238620090316352131507805224474358724371184909342462544973174585253391214812322654316412949725637117929323881952523981404537396227324749939562200886510554583121353150587215519650950889770768382270254316699649414928222735077655943901382277364107985487441573715936124518231563371067758758048843910356621118017838640308337485066016540925455988632492180399063690728077906910395932146571587131412633029584803439408667653984138316835848473324444083600741911971871134550068040753639389801779354908410143710291179057173707135785595273724229426254586687851189678296144295830209883949968956150109976688233324053944354143550856719512829274337147291896737915097888542421997124993235488729596963039209436910766230765212005873027906457208155312607301518017350070444815203440191330600543851249003750032060973571346170471740322652833151940627034269162824189438088944809110527814176126515460636383461308839123107491163671634027968757317078139044661733248327181595831822146739390935132818141851404275674608471953653000632863467449136008080528219072091991832425178063452860086814581055353364138054594113049044238718508605358117505023083057321966953535174255192385090000641669287795675676046826555483269808133529182670267495435966987543275421952498311000769740627873232578784260393581286795891320926488236934750271520814403246053209170255203952367745486937513441798273210799899538514625063284249194093816898526386990013050470038719107076449568155965914130610091012290921574627153650802199886362375764929488046037163937117538920460586972011961242855726073990229935831268942785437933181039223493665828411354335594877261420443575731651896904469918069050769678800874680427754728945015866649753012837797285472498367958144319399660754091989971168412756698778776547907964091957866619178922366527143213779784227716761104822250014376453272667187926763659837506405201905606686274625320442557115242702561004112493229921198803147621041384046669086337231908658530269385148031485362670336146057675771531463702107405297268305767583478116020999444984794010339484210687323518893182587982980181394232432417688189435638315314811048075368222479677782956288375293100762782786215190547658537215046287501879107243325358951308227211741733687317227556547114838124014512886177278359845559834235422262255950910056014715281088839199554247727612045273976092424630323283314903072430422375160353625004079464709112630774643225779863083827007289642488561459741798646612221338783150860904228600837424353800028088069244029415429092317234645841294251279064761093249170973313395889648299603923846068031014734964117971609436296455002587771678036913236986652403794071077679131642142380405730723893832906970465410798227189390349780243226380950997607199287758761239192768283354873727147070299069675594381937025266320098807923195643889725114134301188454593206896940624149624410630636973020991214210551415491838324855176173842258728394177950360852979502704863685547613469988965000838483007750740125263667439217365606364299151136625503163354088723715805698853168771399198882945622462904567838151949845495054852521868649574823570689976681347336362509968162826810676916791132553633771721260009021359550804128702128972809196714992460317974061105266856855733773068492690947508009810128494154120081318983960481512955394775353139612805539909199269553540622645005836359708262533865240492972012006974106077269100714794777199471190242645808770655941688335925950473811233004983469953543588302099870943621406332463121678975590515624001010629663685752030109462598926408386077946841131664777520772306755537330447522657608120664868708514983718818169767568392811584205338582340607641095800745478323250535605144377248552553547931323064214894012931387217602341242724829691409301599779038024161240928384258763625257914914022723370777676248791323804930184182866545611232504877666871039486018550339685872128666483702964265393971480466900493758808131587768326972426688063689184128614763941790689029018599995262614663017663711985389642395075871946732648284373615357481431102024398215186976842185001907147638984959170770453426433756143845970748718896037831387888255739131434283303084997830343045608147521297339778271325707056847705685459746222564783297620917769577756951634588983061198133179304036783690845829955098353530486084540081965707900589247874276075682458325815596635901530447400396728341849084248713849405775610184387230624799676482768420513009881675749995574276640952945564931196790860763305000688832381178671202522692997941571213159129018191440891346907327324128810808184533933842332776878043876543519837757900059876540425235769748824714250259428471721468169205308333383225250189689065459850222392878344653577544823131761559467658007559871486667057026954643253809191529592172254734254459218428096311729161253770817974758133218403215312103267097995411793656983927433698332707599635157002498773855348116455061488101372356027394020061550096667691150221146200158833595608369324260048925980270760958468368068516488526837725820416448620718405431253698923680324867571860387984253442714409731115766192388239211632709972336288337042645885092937179907269848610925260400416416780849224379968215096978746048055886941013534414807121638338899264453936690855865908601872095185475921337350031000881220014588652675842425560053697791083171852663025299943295184048149892692445368893929387416988112001005085176209199492768783497836911997479029559106189413997440013493156388068819981365964284326231821925654898991774939532193297270938916008404918334025593748268024050148566159421048118492436578038484019687839980062436334483718971477621391148761555674135980851916724179534093813954579183538088251502375274850531992180731304025423879153579313252002010428464260450022846064491589984427006069867500970905348708570310915067371766617805029583341990815427484616968124767419350315757853768598700931315838647064654877529023339710019664999808844202988643906737262599652556175381945735776864041679259840466626704202097944346125633574394530767137065887111919767431000529132406084729117526522046412593965834573478371844643283793757735538589809073266164420823147924579963467461925573440992905236486605793005878825696043690382788192055476680326515512920996529663542140635328242475300136316196644149505638718216201379007561267920317320979849099704254567035165549562755134259388113463708972490264811641325328829171009978290100502388883931824792150597107779467623955017159586394848791528474560026522425752554326947860003134599565114408957311801148158101896081786472739775797127179172397167785197609660379701952165958417097713100729913300381246713043901470463369557459487493492321537774914996987947712262866590639884673323289252049383826060578493757455572044670625503963964707509886167757817481333430346078432330702103544685975417065865040654572210610178670738538852596492995039768054277333443514091705705402078101289579125827917669589435094366298081649322448687097980368254629152398353661635922976472884278707734112900836784074054441367699767806189136340129601039660754506329005669772267634047608048466382047948583242080904346481260944555652810453932660636051352683327767484504575125088259222179108001096081293986548067932144274288888167177727816045154861885396509247927479058700021050157892479374968977906124603588781527610631319642126926973779356999752375352676776110860635737737381894842081197590019186751363896879396253139434488771393833550199193474645891933170415654402165355321924057342969192615824524568477113363153909135447824333123855202915633237952181597297738931775682892350485063385991013701229075913323062767372605515731168136922782262540590057930045510687326711430617493394842799382666602245846100650196492267438791229606029895570851482973446950707068060603472682602483359398162675755446610734155029687476882393425570568080692572217856327373301308721582570394200182510934820935210047582577675236449668182637263461475684153202956787737888882711835351481365731448957659863679462591113925529081703903516794776344698944976152974031133510919267496753583439374769657701832336812324947585592041590765323016367911167302404179871017262751133067716935911257340070840572314866176348943763974481137173890455172714614988210444753713512154787244603742655574080240557388731690284086404005764346235355865132489015742721584237678074977399813305743528171014385092090074341987618333948488615902629582081337428044465705541905294384057452649765359330127491532976946411013724705318570052917074143201328983553237925020077636092522178995878465423489283843074262410649502543830936541939278355470042213840389324655602422478417055304134481660296538854654474444684578113271457659899078902637808056366908357918170360078972459829573785639742539568398508530795332757253616149711359713892847835478609976116493943582937915792252206837255890192244636140873810077044073952259493612356034046254366339156769754545713283494529201851487990397382932128188285837284460596195447091446203331677404712917734133265743445647342815557823686630063730416239443595695878465059516299858851192438548007332877260711185277249661118006133462757600393498236099225157740822255175369220309075962894449236064137240356984496177021574462203393226453653815859180586072267033622581828089486088264885552388954762848841957327201432237691874570466887977961641038799965883320863016440679333806223044527888267603568301553653151946655439618297724662925830094479784530650406150779634448219935668269051368479143818826576946809739677996006731619801792509331088006516935927145068901031709014210064783361432582347215866638723194714284488478771745256222931230334638418132269125680023123040682612966537073488752684330115075974101032748669919836919516560812474297179752619347364708285947152762381977416369687778225227384571846353858519146925363296486784013636304579252281904180803776825703205408871029385547805877947063024674836304159318731367895172060535009204024415294733703178970857214064658535824243581558070024963597449792662129903600590752289194063039094887212193006134151934576124484628596178156041019349145688037391249892343251351023305576337146903724988650425780121386951847335357985634066351804824110334146907853726909553733564715296667168248926609066197755031864940419850043240621323024798757515675226650174488768851692123126988445972828898408426184870716947183324176416282133692831842398943637862908605983779434016266186857562430972262610301206432330038789968032788894453390924863011050360290715857109470577748169823067871229060343659597738165929570030900135337470769304976885735784630981983815048545944802511064808231183419460944414791615853779559917107055661244061711526308213345031638910111217436083300307230908681220285633908887169171063082430906054340090503269471182344340680318929370155913054449122023044597914598532576573950185597317296214642042255584812373959178239453000473436569234394934338532386643609362167196280192297554639401955462494268141699650206394940069014959782947615382059630180905620552770384449878464518317265104394394831440910095624906019270951236925239062803461197915360812512193339949018655927776525765601562402387585778410373445538209823492936547297253874383908092272773344826592122630893676634080886556622306715457014405890806404195651052535668398587833009728713312640362815161473546328601968548980707699201111924026381419164811322528166556306180428472305420070832772827683263829751352292608305856359880909011744210995134665090062553565616837120890505569792140241195927009214912177683636266632838972089221434269843976292205025931600227652844277837118728796574738775923540578563536966959770591693730227816524057919746039087041996013917710441488969978569458522616770559770137491528976389415109539423902220405661375454957111597653006913255175765697680611640930793248879160852163943199144835731442476360354339079654073165138359997125093968680557940401322604856634900263657004763029253677767995489698697013222029266654169353380383358682032384104678440540273637030505541071926662810999847518515025701196272462567612446860756190559705509148243265210742853269451815083070199059177038442273550007142861502387116792291906067590276412524760983186844178136241692112145216950668473318056819200729147451193965524306886317565972790855739768993047839865416918837684218260029190215753832937724884319020883421155435961101477236831693352831562670832154548033498441466481924920609513730946147934528482536871557015499239082828862100002532096884782052831463139418710270450809107645976745522130105264531534464872535493611414770851168496746022752971900426028878434244881341522495948870280399974304673239242238456316484006145705252883956945246167966086459277483251886153354171321062209731011993767272510906753428647179999424869449740708429128816759944564048934285179672799839746899801661292265689538556772493302864661186203508881103260444288638967505615423456201561738632588550699239618725923498555503169838587049774366950373716892765128716269437383363981777743313231681976273750733704405748591783556850009779352866752902555075768556692398991308892823144743142688491685303167517825281820727885896132525119939603197699757670295352550780257508427681605646170390117710865790200662251924118010292689768525472710091038089282798888548993336674784265079021836878024198637936940234050272311468318881928170641007827059682555654147088189290050455611332560630717272474019744547515545017141755514464968001946967398108317318349523867502597270549508492513250207732761256808020682497221332413383909834324237179494307911413270372379085506955086475253107387379279044393470437125266337915632447248950577515681673936503489951499245400700332069646962650717200276255406467399173330945229262012602020908529366932904232354529758684163268649265679758236927440559386067564940093294085483810304520626313810352371492938729194442931161237299634864665776049464802422317690384913081228055993998935281436559691313616463246808403954640122592427515061389763895309579614546506824315711187019131208071802399962606299204325075447948860669815671801683487368497734299437551119090487923598093073581596905510715176923838556530857579176612571153746309214776518025093179477064371039968331766412568055906656527826444236137482341690546787514115079850170339151032022240763129095506147342881893050707332225692188211782069335315438109404475824181531989203575895125049539354228167181771326194715720587867964586071971818421071708957944599874673785357801536705307788971982206021206576819238072725006515234377528727517045518851885907817201544621079637723873940273240831664139311168899317816124607207439193296959325687210685918971173512843855923906920327944839691594412603767510995476465344139831512214583561584459820467833602469518561444441424204929874415030212156416490346682730639038539039832223010675753143991789671026306472265388077458105316578727815908512676821792559106420321495369495622255182252879672879489467381267594715636570353809241278424406825130082923021180889843818234706432660271269900613625868563340100745362596351824431257478490896195757903617168058056856579869431369882605569174597035413542567954346695817371137451366305652332943851396365190129654490006704646364043301313312352743474108757213721899272133424861405108404294522428549702152439075371785627624244356733314262434898646388506198210508787018349080377738101355898936095691262046850648328811847518951336928325912859634207228028839285789376315356892691720660097845657184752887954417260728984459186719814548093147795073618162006876623389372290207223971444331219446597325463580375423563751948088223325185551232327227797315326323051657694172131350536647022487034073768153861201447635590242289174670227079798184948237615067437657768398466946339005860965862984473835688288964953625804741885808885523437561575643552157833942584158938347284894243805154947568103931909921077486998428741463574220586481430640285838666014032004448937914064293553880312567533092577477965251971876284491342330887088686461879872071861889150877108288925142276100711602437240691030776898641466731293297758641718056683317363989363026969597419770229770159424185394024583857772973555401968052937699929202729401714519149345621379770697365680626588531833175704877852900294339735067507277664225695255723264782388114832116267781843262258096522438742291212213862933744313958874784700070485780816211926927262991199946181107365914638878209316032446834755019272767159757111140394515882702105058263047232076003808942549461658261771101216009704372833689314123460781266964023826591543773938813799040282242218739983520089177010151601986038014217855901214222150136457680527464309953439971723081841245192883567035325760566766290472260175405158704512111354175636115313986718789088646446810913582048881150736380874422473750051098382070608821874915361305026520155161881412020709242569153517802563458512104951691273878915548475380410080621846214320896432547446348497031570857761061522307441197166861419525394606422677954710338388463086849620605082687245462776287716910328374427472128221824300332210921151250427124757103706646735785991567566846893718032404658373827158277467665793855392460032733547985082196156122369012030341754750857395547055860561668191105763631078011604057678273788010318741863710623739845731006498302357342864203488815470504786615400812702430736741512722095305147707210691048531276319200270767204314026255718219759294691047391034541405781799774186190102587896674050738052904050193354607188904767157423268400357163775140220705256366929174284404034974241633976367711394334165276089932193378985216550999941241196164144993981894717796633133689488881645134686858197072133529742422686267868449672960543907386784292602892903739806970918371747837964445943905909791969206245399385815200253227206399584316827525029038177184202438816696310597208525603956645055700976385776487009883365690628140347161219249842519091513302486525032742914064446156246538072421550937242291610775597311410119827228734463484853992109407449095906017219953860679344740518541719511971524238246042700520146285476146254013720029123086731383984344781148622109731109555989694496240857410243337993602570138110973790575658034607159327924393798854033168294523620882644066786440782424122780523132185231989608478644397930511318003990553966454507711424734275590910789402629566891508791100439177432527240667183060787511145776018748148274925093298648234762742994528180852935680807785480029115078197797581912154924980550918734822317133049919666227620107803378739227969138384282395999536599567436029718990927244425263677226005831578878303478382775346697690060092687766394990971849681682512738457644583238813315561093875491301638041499554620242359451839064965867087757132181745025414524929753032619474681782643752476169625868368241829136101215645374351998549564299748035242221401859909295928605418685559760661979694904480110113086112777092450207900508908206978112731104323646469906068222856143390318768683905700737356034718624872798028669742495462603653654366815530658234423325125092102432143986128064041512125898941066283925428679278097215533447366714161819594511328560667334829060827949289464287295122420022931215502819177339701358022627263611143095657924447776678875449122317906084325646548834852572514926017359003165754493116937244216712922725224273328105900685170319418319104216767191801409487620908068050296927552023052601227511478422861795037642265902042884874099983313656870398058283471278172428748571540034974965126717300027192397441707968997526692243010579000610409794547867785583080893082106747499760373599498532409530505683975842855829102648005908670034502768522235149664889180564337885264859688230811129791024777104673731317944907301192689100830371310603478073937591234619092133092983971669698380890136568439562110922531886645818516501079390908957143223752067946312951857168683202677938331059962153731747701440151918421112105175968326741064918663828945912378722192745357432711147674255561974562501429964377682246728374113560186748418246000466545324028352144324463793246911594275796048690140722813013777285375442494404120573612898622167689010564858106144817210960742177052952104700384054882151928020613473997393423757549064375976954008389233806443511807085531889321643642128334293479432890563480359531775425975617874354719197170456796353319256930221669225053723777752291931984797795049578127288487278720008909922063246675729763905581569537420295029271906282625154950438476057906805590608349571129625052856962303415384038472449538831452543718103122401591160743619176970976891208265162580877369595151633130343095516509873475614291436580076145404555953172473504948670173585734825382645356807921796322999444434055728144550422512593575533559640051434569053929915898233553208657528897061210097275070526917914047206028460498728186065341729074083567031929621397311700187510983985644500694915309979963207792163275087117462672064317973408240358746634231008538355345817381535646232062599351731601619831062490020768636278975390333823942851807435573175039865286241542597951047124710708585681108276584542189190312010595578853787058914203366566264429055266433346208970295792429402068657450597066052632870344783515075387956404223277367226083244373815800393238870950701800425040920856126088159264193897942965979891805431878608792450172434939838215095915492456161470013999539877311759827851301315149518693515575199099819730428634145023856098259400701392719100190468985443798458019136717590228824629722237122286718065798861188043507011046699095189376063436865249295193962522946493665607959943180926081479041600770039836907023500535655310503628656597183818648882273797611346655098090738194923845609812330374485193890997254003812423906226066595618192069573119406889079801439801268122390436810894697581345747495595916600486642166261024431361560084343215776589223880723417885830265491636306004745059864049237957410069259959583204832910495204727380402821415974471172641210468132567267982050065598418309806226983254870176218886255449483470202320300398323361490520136000876906762772603833824636890105811042523760944502608373612405905822616128865955507479715458585616352853054534744263118548673172990688969430783477771630287048147498049204455214377592596490958044137859892879719714290383661516580627156708726103520830012315025853589539681052438477977704592964928649470672493571358141637085056903767960771336129207574974894523125628638721918013607227160820589597188630911080231089516378031329201534710054501818742229844611898661647756955181562885261747843787382029201092778110790786264209987009388915935469391919355334707064257518728612803696631412043637672402619278614425381402507968578206865570884949583396633197829876328471914779835542466286257077712089932516735744320979099255223714095324314602880270130774860150208671802798854897485439274467577383079535216464390314688676019001705816503981150563884680157598666238841443799124973760391802407607129684064070608946480229275735026583062103190893324001980750764864995442573728927987041063294555744196421159370857561768691800693859746461284162620931588126870204900354734709863872559220719251022012609921421817209439680351060504680386402490975051515738300363920223870167876848482554642595261176695767185146257821181125565241938436340925378591934916763027913530348471431598273536134922568090576176807163831776664104045428637358489310360927013232788432326440484642953013587389164999202965986306781699707827428865410761369584366260054944060096526601134769216036403845053830434172845883158119015697033165419185308321011069664768504292466972490188328559275990113462263524045525054349723843701342129395755971571677501845530158955550393539519384731912838266013121214641965793099846435911235433501144738401568800709036121611859609796696506121381208053571945996748135457452080806236800665778357145585885357760883519250535685527935946450870002390281447921155555846018746356349819122621871176044836120348833399524540467853400086395475839496757343475277373643339897025234499670352778563787100946494563399424827415875209547095274393633723388260022194599427634623935038858153153153980293782578088417104009228604779281798340434847366639902412801978213691171836136009914077323416596932634947539702987858321818682881721297605731158610858489116180969273722642270633320035247575328957903889042325394504539203987327180653233741414062536331703410631626985003899304091882323693461033492842814058306097133759087981374717828515326306859017185657944854330053530726781966860169996316387627494762969367634656847131537747485490584978595337769444681749656784346301918930441427469138537861543298301762716874575679341922969689960018204049286617032863701632302624505016950257960827267110237158277980315930488266353948460734258561083917368800590038460335175250331273123427377754285801182302105430015344927257676492435080545795284755302598388458498101308583644147972040835285395637891204839475881580468450523469125826966085241906219833660807947811086851280501716030493850473604548682597036063059923596225863784739869311155796553247870519473004463619521191134368795283834691598323031884974661561565914395349915140827907875380601673427903120679899204816084788801853429374423128053958417437064278265179360527841651155059617888430797440368041039314139141608794567610704446653019404831706911382707903110881534256393205820758628892859468545448529411109044834675120567351310494704380473029842766890553125336073351894858188156597400740418598304011544343133869401718102954915797159487739100082490918637248833035016121134684435258364608028693675612831225234650960218433682282052367374675517333044287915602496870940964008167964649262606901963990973391106725488766311214351866307287576698649819163913106428001567210877433814577050830526747981459246613292279108674717067754071110990579438014881763841267438636249418941114929116805436973880295203101609386950047252740770796342111150108867902215959339308115780834804809716835742494852462211137093270167894597010166284607357647853651442158910697239257377196389548399528537623776690882338824104718846855531235309992146105158587681179369645025576681079901157852508512671675531711959150076918190300405706537458492660019295472360240643042146241628068543535782685220601748701701514214751925895706955756304206682267660864455627842845497727109338201968877957819088765489585265564477130655701912659800725516561818678833121125091126342197524127776685362218888158278563310821381364428023211700736511839700032587120595251682554687897387863911766848910115416833963911765083351223609915751160187461535692321484640567305578135179966510016552731124837294136274132621228045437177195295545791590392601585857140958701750369099449376179915510532433158221761385084090183746769396935104045711958403545639719548576981167728962666636499178567004922955814260678779088743634045529744743627687483922607692900622510382888255415553092525643070403059494216417880502180639025914498018205644835681485787546730046132023447837076957044150577336288474120183415534438359770719645789314725539921142646080965190455261811422692596146291406193487320319605942692756878747966309330475092242036609172710013534090953344745447593574058058893733547728778329000737568744432439290028905428491505321048601773395053091620266305066849900693152551291231079520858931393393659089876641573071842139521595150297564393522096211861948772866028579107428994625117302372893744133083031491262601300831588729504500243797505396283423939546597632742548883818874859568304643595398241198409906477870114334010155926381427700849604620500101733692852020874355137862796494816479199141959565385368109761857754338337765667478471380555875648836679963296297923556193194233534070065366346248238466482753782224337717649721240433699162797717582012105241541302956973969141493753023879876816118683945969467702720864818192334627671521637964852939162255518433009128701451133372602367439928070670394626097069660712613674370631890047318698225942260716580095204864730456610377535101300817087538179602771791022512265993327932662159895286950517985987671712085832474721570216729974823614689759999846646684140450070671074804984173083859645453941604643460476255691194332968535308728552461597710853477508094644427289755353026950632782397917002177890502100439593237426261515925607873244829473353807360785235688232099107054486489713685238478297104876461594024161783495731677923231987098200937193222708573413929884299521480078755702459179653252641315807107210085917309721320105516804782855248609515885961079277320899119768987146544605943604871363353912717516994872660939663543026240019787671753323771238157668805445449347277281824290189674807367944730911185727767700819379803365589772443616320862243678884965764975468930102473701653796804040330996379281272998361160790278709780607756537107439400786614803041232348558184208127459137052615392115519149330716523836911429373524667223214296899247442721665550427801580179117423893968600557983756968839984834067705887602614497373478485352214707899490438659851290873614150920765169782773328468133703410570585812046816050804679802683817391879036455427793768773596638035895813583267459423504496633316436698086883440205577321987380355220243414490070185553793212339235351083582873096411796707471553909159450218999274128082765845220064955119715743327947355667176174665521641520479618311726385374791037987304191426288485427743302278558245568785866785887301724258341497179324153952217314521728441854582147308563067863484938429033362080164838600143374210165223330772852588476998280306945154001561721145932061551004054806950077269415883939457783464169378347519407626023521872846284972716906829514192030659903974959527063838115114305154374149924366471327373324578244863914168205139582840743694065969357019384493098698356005016256403593541739357536091134809347297136185065440544476913871292003202217145266998752905295538243867033738995705337881790851492270935716981676216916635367558760910777402201740613944143048695492544145408290113358779324398753275846811611186248726820579571084104952975674484163633122113099550566245283277179034433559459759799219916981404921540350687649278432254799987567764521188054536267250523947673032328434619359331121334778841354717263572881233798427033644045560094425093801396513625272245240520308910009427238149348772939397299323000121359667711841425519837696123137872515351220581367107260521901463512836519130628808771691070377552666120493193618009249332426889652648238452868611038423069541939434328200449230513203714837593373301693466170000976401541658077631461061018098457914046485618638356373006933047399213038703565214982170979814211459188571254946990276634904425835613024146841038514591773873999350371498158170830352994168929969558581411999090786253607019660896248300090068865876839424705285737529183658767891166145011601472821981219889965759818154110588047763785051527019838660225046018665247220106634642684113367042482456297979934837772309195855101821139968140744334718282428122792982799520835733211608499029844832306153961681772454728529409753173065288338611082611631699672530446470405476083615043337254379447564209755291540513513539690346857509614219759674580756211611033802883325492829110822096776435994138567655227748156615524329760126570355548049702340857702868563115344945103712743882912419262450505204163373748622976116175102605269883971259322232693899927921396039559201366808441558140333709757558842549537227548369492349626973557829756455462575620607881188716446070314441927506062801803281640606955665804921379367477709163848383319798332713956664705472522682803783298114984452598334870873478882190107892972299048543150767585398530644029011421302748766315631322733151715204708592228781572478850655953167719860548497641445928016004413642457170407921587237982003138130145435752607455632119983515959668675159325502025287590111766149146526540170789569391402294035135902955022926659655496092409447537499207111438150799962163009628702478480936085017302942410038838769416993929107022777123047271155874148787371033097702186222174348621887669513775700512947459761252803113815796648484761879389006546937493440939293029324773762086336315051988403400875901060562611923894857671540067515245849467583029577791808071161156938095847284784829680177124984192369484986774326539856851471505401141263108704628858041939523496629110069777999100668764851762408287129867187678332446866171632146274795942906451836896364003888109694148603808023517281148777330112559416927568716001985297407643521170177005847240048747389164929370291277324337635619996491266445266714274698005397646649371483420270553602236730797069224552011140843087504471524007071439002463698750963522278348388622050316262392956719843094047832742070376328112553126711461674899283024945838040680247274239934034244095665818256731225912762376061188141214980364101443864858316192093134676600895851445545988559849378379730070869686671723081661066780072748442465878793490888653461029319016012367558330694005025666666571584335517321581919166315988769424494020461298915219330117077673100126618471686557519692333586356134900029341744336735693016661096290102482258207022012574149816023901759334155065155253813999272421312617538147670610501817667527331203996037572103431835972111056306096289737922815830164619053696194899578136032820383705981837931034603993740880375139438835363540622658994076603988233814406413510376677042779949992124903460402059213307855877621228975184540179408941786962450787543800172762503745861993658662275123798519715138069117757357361208656612222140886455093431306545471139545886773285193566909703664296277167641787842676968301298845528939632457467507611761593506759978101397907850274061653249985029314719749992286966565187327971578685871696706060861589202150786077653556949730256152836277849338939196801821806034042111035843744842284108627613622179473298338175237672778995655155074716958144685239087766257877088978064860333176277097008581750919787576273476782382818000879797619860599739860587499905468751061112460337735907462258107599979996989648115057363811632344788376299892943156068369943932488794781585208439134021616954654733585616344745982171097009775981386605945235915309978268093158886246209273074644922670887315179639409857533197747166018832905217417888794279195382642657119224618578828320762533332337598498428083413397219768558508372939661914029277106222303064957666218547340443718499020359844218882040489718495870559510872883015850375768617889764825615867864767959414318629141408977992300098652077159592443182394424466537812861011303183361489726621384252772771241779351012072277348665606022075561313597386356206532339471403812714981697321345100606451349794405893698502781278409137460461065663438015470239219809007963919841057867190125358010030751673503547894066316871286823716345565608506558091935198935172448670849234513723106585827583385712351618444102672475002891566098837677105952466708171600760051482445399231265101952637135673834774433406101972108526623566665358736046613215305251707148751301494972554167201414008979148335218410771898169653288925351432685739780854501290209057444242435079266084306380147883823424115873571097387487920450857264032880508336217096858328508293644289488399403045651207604083298623978891632922076827029090941751562627368959187225367819451444329888100578995324645838293503774065942760546092079440428939269635217485200138666321949058924497098883069107659025885082801151316274364524128610948066986218615419699928302170544125599657217641696156621421269376780919801955000446116491406210847607167288171747747101730324989893701104705749231917391322546829308390906324861600537433957575634041626483379258628902154402474968942739172858530809143899606418736543115095725364226591628751639153103513081903483212321860586194903632895854961881813719553217972497150881560967492747507727697487198783040250850479561433102819914872417275316137291291871931665291376529209110951698639735961637732714210742009486779358311225665175442771139441979820256970889461296415087357091550477829765373147526467886389515825371891233201720305608256021236598853857368125207523116156054685643693142268827040242489351356411533168278811521016096589335232060999710831707326835966482472890804851124619535864414291424568313003267269065039520476858433318716306287452703782905397031941762531159147776447280758281487832641301669232827625683755147831989748961682460806872642144835409055628561091257822079003961956597457914140224230177771827764685965654602715359964249906218664098273088132058088335831562108744083954510754771950970251962633462271055343292357570190333199610614214419550052738346563585902422415541221392009402349241103672243002755882125151536462148753625036258462870765275230659222404471422287849324673180159698984873212462269924644806524290552795306897320317373319729127888305593558563024183646810451828206042011307165116519411706471119614695406256968397603114647671906379851275478758486760590009752818072437422311979261309383800305648234906072714600303491869958718120135621785773899274496374249050535050862785385435390949573642848836024834292628861853151622286042973337002018370863310913051323617919786324593640800111235804162270215780779784543542460877418980107937622377319747985591217949398670031291259326192805795449734591424311098041213764462933560220414708302585564116666334781190554502053111728983522779413960555904713503190101273362416333549745253947336634840321100240630256403065321387594586341560234658767151357075869290570833985675867318168148521688504629540842733361391384379429882713546969166469960353007470315686037155515079580994300222701355070714127352847913920184014872974078431578407110670791431519841045232514354844005073215373988358054345489531521994044227332893105011017887887701224977635525230549974990680060850804425787434706185274743007916194489931350711477958280029609446683801999949071277662849193606783703235374330762050491488448834808834224701309531718873732311820556374878502992441173922483953269636759273366602261756037276853742986052968179767203410563785917375405659707896551753963161255360158344668999736467756894775278246427051060540861274872004232067667005685853361128878682534639977112885320034476366488578450725300770456360996922292327335401647882212198964848560054218677543180595074267820234290623574371563755242311856978384493623739124395864060109265386629635012905061593334209286479748753113242926817632982610488484378656870917186317002638079892337006926160334169511352016670836128495624989835307395962814641697747949439095687490521395074216460449648829222830035480799632225077928964810186407984722593947479552230169869917978985901084932034093794340607700301007026298689904952141887431142037226600258549072125529250921580781484011092654535335181120848124696627782259342296571849627543681232156662896052109793462308660366431084358086022105975663851257836736322020389749921031697292547184578568449416222370586693218803565507785162542314756782334385169396032896066631388048824772614348845777824311825509347878806157056691936644243416282127824832596621550923355706621584686389857010087357415035261111445085752936769797628947953393881669820251452974708515123934800923939614288906272336598970539888953679210943104428836005018501311470824651831861782250843270029957172514898863156841371504486947623133531052533585540015918098169932978736081092618666245432885213236905668536652576596230866357962076352934492029600036938585681872591755734057941243446900946063162349235011912696095565669480405292031097986658035721044165393949979597266907741787188504812662165955006087882760741077073174146282240080796980087659764791035689967950396753703827415514808168041101182051244190380045285414575396757918102012950332936845790890151145451082646839521742199555762585941380148626689349512998782535288827307647205924183487570933788357208815429015211931517241246949892392031620600070351721601507794878112190265096701670518178662289539853423297950114021621661851825622840423842657244908276131740568201633385028787207896236311524264166298357003754263273804067000172553242783415703132883668841180321465658644831928657773918293977309194220161991861915632258627914069532955609707796271789445975424905900455263270791125449760117240956575379302619846037327967219033490002903646116308851827904020818161778419901062631576326698623878948055445645056133710411295035193691988911870552404387483784133090562440590778350733364977854826921526966161638649006421206926312768437207493226292831084643708737475943621993781391451837133341373100666601490320952252475119269463004542663002088358997662909443369250571861315177842739895853961273739535059495735369625061914328974532812044023813979264361672809878789119228801882965190566576466015326429124967273568602523086779263996047197104430465631451187044494915540148220346038364744428778397483880328617939239276383718155970458730507041717580915453999944119486072627172415306536044650452099796579757494884447626105781259991915044894653140392934779908338352923580739514801222016009084945674866559052723359216706465676543992120594126789952022404062721732480272033012414770766986822401055714724217156225259259443999010496233200549640622976678388704204932230446038303486071780603829804802978096880776883679662288748525481673292982704497811890397369506176795794981769623777758960526067433426734291407075064123511985848173760071149453728266023442470516671784698701112417130938827369426235211193589533285066332561641600701602233463851336454338630296417351023185892335178367796086563120454592179462418216743718223965708095796560549966876189388513543031780036999732934972432216634457236171551882544217707951064537842011466349571387963970086272569893675384122510546063769958283946999634019190259953803107590830300458381336449936690056194811200739276442541763770428803918436365638760423320358732531455387002299864255056803038548246400331869104188166239582998488153859472138648461193835902474142416201506420224833103435969459679465640981970829093115508298700619220487552920423364069844472908250825938006594021581733095760733233109264663177026427537198424341750211742360525686191389333099558986483312255727151594165924812570962385301767130197409485703154612237103668707645641568579263830874195569458956246017311344793412851852822001387752599140409958693013152386593842537667249512203080431656069908650561622180774720164751388094755732006955443092759122503680974734346125673053116268337356383153965776422244531516911538468395417634783575421301152602104393491063995998074009485554996281350660210500650939107110915688583845512782796985750256591934205656643684599922092182620287772674610189490693972731437921985734515357296894142546245444554483873356265861901317810333924124843033504769319612157504163727583908422980305856591636002103643280380224441073327727290954042755353667057437546718739543029275199556684583769898529406746576326053401183261520106112880396154271274481108038825438380217112921958211196782129594976294321230292259402222882543814525773339842673570299989514361052443005063892606418430512990591050144253409087012639726862288293943573774988873871253263015870936697735038250905550595291496691740545985795308971860835982780690371499264456487327338060026555802514406182387444978748961787622737243236340490609213471917941159631342472965797782244113642845426074845509544891897343980520119435221916183740191857408889659549530020050152840146308561362291186187803593608140121891864992128704260974381544266569881083776188444248053239056973255753160595065649659303061204567439260840764353258898080950279820844866116776677986281825582865073195663477534976414668598430853132024618507217175805191589738818662966847294229504464861368777194523157081843299978448260703078091328908436094460006314539200744760923673357101082732803195586346967015732064820638270732261380159706249057255600283017768955325010585024579105605003236362854527048488944550906680487849544188450360947353446959911879785756223616697819252323862201652233562993939149983519031425119640738026736535962888403201841118933415961078285337002524080094877567639849037654256205938576051989697828000333614603856067083586418500272522105541544465090592234781378133664613653838771359718701846347538083018133476035363238943265794653556855324177614262946047270563732764187779942842028014658292610233893769576388053720181197014694145749647551564651033535846428034357074694873035148481996370502917818331591084743921595066667883096021322575985512044589355472504817309859541294984273140116536427760059198649751745111820409971282654927619752789724944410618966414008316164432143605351359672193521424401750704710999785809983030098377766283372906553003445111669440942646900608823342758160767505458752107083622533151333207898918787880816832650243991833811462147723849781252495408396192684342002514034878100150511160930589269401035164310804888726447548953768432196712384871850769902757227084421555232323111639905680796513130698821540468855088689511551442838215762981481071271582475799234561174845469466674442488802323130182475430129597036954494183185122129733225659281823152757681766990676998975348686059359467702502494438026132467643419341688538637276703402710751769255416578480819090918071088158868639997893366584369687458632713900497779926747360143146692600897815948481251373813659068070884708875131314409717332499454142259595583347459106480067055131501654802413641787270008595294795357346505503265835503217998937341164448077468192972963474347744031074108218791712002231034942533350824812219276985762587594572245772589719475306081683180981228106646174883033664529465282716770308806050274195948076227097721453272250967015696694245660791297715920440487437545319406229645800683338931758716844799785253239155357285791829515278521079435997575880236046680660204595376858898102288467063398123544804859333588039104078283005379435596923950789966242729137560570988438412921828517851815599097979142343011826010562045131962380066366088731840413069984131825438625605284862962730469854009606811776535369188686418815041951584418063145228067919171615067666915367697732599495244562606942296737277655991830324528321097563890144991528295695885720220047942065191573887040933187048024754622516411170689923932954762955120648967131758759480562353332574791769470854522857277332829990984264202459107086093710311159043881776394117854934788070684765316848998047684092252451514638862341075836629032267963725457552981279331988140898123223067480478506215005630039036768884589241074488259880904213589913134487925769070169731213773535239734945473067833482639833120676576622512764672384611528030809765145531481844134428142062172158375733479723631678635550099389783570249629494881904617577944031485917983905680559296215052771280269984037456161903021012069602148491128177297574645684688271452575071449422602389671832397578441469538779878959709429469601465692889503911607729882257623566280879391960055164634558707944964397629024179026559281165050997427574856531491519492568222854291940423758006767268341130313358374973368048322097553680784291905731233899131370028928227813721521047735539525693643133381499340759565488609014905568173951300799626780994600402627848594522003674664081649465773645476048878314468437552114469248408531823032969469514410986696160694912576378073383081630007942590847914590726868328749673785559105063247817994917774230034391915958950502544209795413635829867108928225714179427838804429194033213231592260352583796777871451069562831459524182888811161045532716717456524779408098982083477493933908773132578049157076300333582154942483576726297640150513183655761223896515255516066500223222031467570297024567439944442505545158958948925369716939198350946977721886681973680885592496814802242149483076808645526344934800222543730119253719117349088413563762482554840374483813914037658027620585077323763895983140332018815700761056883800517618872390549363912004790187449688460181018928310239056963069879312922257820105973544375560155234785114074343746793962382592695977979298833599068459919769563598318767236703594669696302467010091427716116157938370004320190416620868400336580914093270901750909922990478931427586090616106745647028334087378489872667758193548290858538283473271269661919650474926557247198560478339008879075054231465093939467717083869677732645020186688013106710335798938072635860598288764779747922475878364674044848636119489112067793616996374025317050059700540657867952305103010810691962168455869400193599842099062078297820289717102894208517554158011851669345671104139141726912263564215167450702021651480854021368802724383373116590248800500011506720220026997887708338336867931923936919548760111032176124215972905529961905384737059206270043425127842881766716967487789832499384227289636807638147581668405047514165453236399983150766648206665148942192103328857314867249164716085530802855426572532459504487338469591253302764615104793335958759525572037031348602125283529485605614655408234253227616129834780321540432295812640484069893014031808999539188602609416468513921267907983966781675055117035690531801543576376296483288361751204634441097167419851045695336899596729886799933584507866975004917647015293441880047988962550554305536404642736453863191213378907997563271868169533978091693741204878465733573217457593018700603887976163823383949325518338470820755474446031017798735084543828083626840799564885518951693873780972659283910203129302784952079493899026574761489668963452794150134088251380298731302375117095267320734713744107660661116483752927203919455638700951155265564605792761454126923174669265541335233513927203261603151134068874367165407959444718261702322393375678885717923306701112400114535419701111153531843887524498080432423641345195433853106308422294058684632309180135103338254787281463722694082180463467155253391380390131944297425904631141222366544342667266578054797730364901982317830149448979532741466989523092182087380273207626568256579323452466383649252536688681299570780124544796992765084548966515611356238757716093346862449291776287132843473232552058368668859713848845197228245070188057981805243892640671177259496487678583830432964400775879737545902230520238781323797809838054726682251248468840491585007882848219456852075351793583285620759876134482073797541888821008353137835045896705405688909270123337384053051805461765188737918280659319966180762229508034041342424334865572753639280813832468235527406176234098459514839836016694372359351332165416544879199242347068587577732281979344566771411119666943195875769089129220114574582291116960617308163929835735304149725288928276759532893669251870969130585000070113798077446657189225738623020302063319701829861471717576330088970385958564995223625793251219740318147732751480942009049984317161229064567183431050135151947150925329407878520537302336797090542173962127315447372223953402454186772476353334523364422248662871345248378010274259897060094970510845491804278563763444180233636637844697935691344026594181964128117969409745055062853094582827918224133774507034627034200098072714172034624057709342022323106526946641215079688788610073692938641481015729447857806968181008916481009239817843652078317618175436770849764613107772325034788562943504423621627931710186344406496282578272193462820884168560771651635433570837601556095071726426301636499579825511552934577779839470356700453390628249550337406361597950497317900197909964512216673307630949723511493802354553047192578389701118371054410744375857199326301658819517143705924299747089138521093945058604040149449847121731030717545954854280547838101796742341181067729334442906410397053017027519841373690239175051598976501472327782352708160374032525040621459030667426244541620486785166961580638455233846295963671615081504913373378296762499200335321904643725377397234184471118229458720228676343689460228871433500705303249467357549883010931374680022416156750340607081099106246676548806742806616711183793221122455159121785443690340179060910250762701818464575095159995222859220567579763482802748748118570342099576764945149373687483175427071523276276463050869158824309427804079461300868650821508744550043782279895023283659667565320250126495157560696241260399504366410884568148388388531263172542439906291023280052602049600864960535713146814993648468844157580649345194899947667266530868332551656919207455768623568174322607570572099134258906775475781646280794222590087407564157730547599071046907595084231582431347109553282000050904968760726686160245190332781652086410827757137260758024948941762297430101547350238013343632949631452552588061564480458619583058458021937683715209323935123810904454443160459295916643937118519508857279749640818425228301266695460521357544269566534511594801570026742424765617171421560801667137405214632219670296348479157431510088533128512110095698571550559667952314871674319784181074278226032388764405824745798227566732616614641965932991990946642934690369110082534019521532156174828947400500665370115589052779938359147854583152005847414729808008503349816890460786028021810998727389433779220265844431319341414914925405834707545646404987435504327909886072445060093531087530375438019841702970537068671961848646881395773949050056320759221427413655329340263090028596148176360120014033600380718586714591091784661256473606180074944997894141799767238560889997885664267711608285381306591952592185474637926077603815619444513169891561799281364216382839267291840627899746571499337737896457991863748911747539395979025596497461837114784470388178343480475186557700825435886262302479680244023137931570459712860853286886031665311595074097503991835610246896533947572844148312942181744015135736063413566464571681812686842138673259273408934296189536412240288854809491759294402542624322326812464248641454713154231263508937586003915544474640507914244962332593935824040766031921611048040251075337106708386305441734718804988791916742478703516114912783657108754389517613064425014141222567603346478556438382842013905592864716769191318872985005532088763750295703502708181207517858045093726899045161859689195532536994959233555068193717584060397717389892052781480642757705179803029421234880041548259108698109840366387700996199367923781837030748893968801976225672299253762081620495690892421399561103966512725889255126741313151705375581360140816750311010922066282914133985101522607581598621482529089933618406326741114743920784576901168455632210432395505126102021661312543567407158491898907574785936758542513707780996362131661637104393156242167070836506231923220154640008196410369935530985778179669817416161979413228923944750536005078852956737117680606988491746029601970032637410285816642481983894553352540234596698086120724714567163633619737360306146316710192525657724988781339925730198696040760643061037692884366936065870616780942626658952535698989259119916145002813188409015648591333857598631130113051053644287901790235060698413562998315561531174416465865128483048167238968961987561458211206883453242383489526434635394991909995871345263975741212088454585632981342335127388551422564650781072121595347281215356355277368663177814399019402814525171874503606812112842521437551452706231865153919819729392178243627413175758785763558672529725139114766130258635079741572712180562219234984187933029813516487503931749321747869666361295312223046400581136339592385025015922832539079616342505446732449987972338652581296038345269709164461246122218864141568348038037212335437677319794173128493194994804951613430696015634880002226923686403278498433406047721766343295703324749097311068324242149373166803342432452574797285200015460528383772821364106612659046162292511262320715491198763518177763584153432071749429057535125717183936287392912489056024322535919025913585530619872123509294036683117414843291640820753942617357991145837799570728342580022749005066954965030252646182667544278361679424181923846032034629671177329571094105854157071291518925022325991864044120483247451372396231283303713383177921660836984666819985457713849264009264880742995779437997675657369191706472194984523648808071043364100309275866238504526627921790010732969644283044216624840347079738934217783591850822220963724409115866211891481053363522387132033667302526515678515365739859620822667622485701809797101482475620274047994511997883458933699486992652223666292713512311374699053228567912142256029181123694546198326994276635031684289284348655060936736419758820670350250085161325573123297735009522802856475391364415871300404522060098156956414081005701570318050535685612116709076631028575117532939224916907350227394448159109384333736488986581733478982772911872437026521219573911481502643608461264991002793015905218927630514865110305642836610855213679968086363780189291466716561340659461213214052428378499201182189471014314531470885128005155325150366453405763731081524200511589114997177453588064766055476600153012638009175011337845658229066427012712110486967522606205869722227794925488941504219695446755393584594332395172254796782123536428433418200129359236411699542145947736402476604223102020281324165461351549061136558731797322754204561460639874348541500227263925369329197384223944840416547512754573652970529195285809719563332197195447388734740040935410309967227843466717830733023935138103219119222708637995962737652608250263859630875267681736370069319628918766473271236373947013076849702866090847806081471381922236588151288620472352297448251398248429303512321998656372600145126825885624100900778244941822266594385414827649937707589619043637940761997921468654780428458368334515771272646197434286509013746864572038549631557015231149563686337963911978566956592995162393350824977776397136898514955354906366965924432562073578123221048413588775436901713510571260386981101838958387921199422345525321447636436934818112933467967885714199838581872483551600786969220757593745288318408260643236746537404055374061042429510129639343830330075953909394856536279459811234309474304025007452432150070661125608582596441734981597865194646915775662054736135779278425855912069768320947805501093080074277573097169071228467581428398873109088581309017159575531384167926198103147624834496889159405427891265840299514036013772517636331413415312867567086365842693704685294248563057136846901587916516644273761063863707988340497372014209493456809084505707380657450169638594027393807082597759076789717752943722679325305119167070980925334776403791509186228835541326020437860461134832323018118722828656431976793151236342249282489982281818225812804038697077351014992090284053700769954953293496481685338194400139886357005988911980934397847359779459789165231996081132792115211381097338074188384150800125516539805870840740342773209386271824846364112513593350098888889939070690925152427281057241511193058867611173824058934081196074550952953506122172048915863536217858797440565579704931877484131220889921961114797858627117262652239122566308959844679000158193925808085438613760432414973420782188901440584733390218422184631441583054172925370290930844886781789342418099314867166317232431570336042789631404856007457082358434783001911256877050081473368454104732307285293911031907609803461542591264960658097970708549240080753775835114407252121833131382954413043620302139564183022927107821228378528517081559856326718775493551162066713481379125541416414246532948870983229373006052267660717121766757070554876547534991121633837041796971208667862946712004180304236189323537460642370187433462763363254775089124640430191516005116174779728236046759004290486523454376855001161160238725740486163396049561036842187561128641365537163596135192186051478123681875252453001725120279797960224294099401064533181990081611477012522828251849004168802360063022353394692824333098393773105635643834166470648369736309461587176042879032371475766263253985034504800224049993765590409548711590797532708038700707186843297059786689999452623860892848972158392476020854334161662404604609447394464918499517987829128928453192513475157508163988394843975987309519406585331142646392817810849223530090522575419308291616693768405125407896996466062686278267909233222336860616486415971425351166112845827938381952586696851217273250777391235026345930234539512902114515680328708277720464356436828960406273417542840584839865655752721759690694078382049704286618655558744830101308864270603536600087910310862189584133624099449941357833734461730284768934982163576307426734060232714357677549574186763490184737264147792811114826319243784903280246177047054194800765882391699438484776994222132159165221714991769177110290641156277515019671517774460774298095635726122149751011621016351937061789257015665475306648651688485408627646189428570483879294931534641739497294343677302005503590390779159852144861547812051934353280819096147288873966463721145368816441534696448340946039062811716978698913078022888853824048017677374778490313895137537537319989264595681251300587738500331364071783199660489543062006942683538303213914284009224626955770659037562307802951779212984642352544489469039143219086596088698330238084736345978727067115705070292756707947770713148533709409174811815050600838427252526238485481307350667079828792273867790940671722346300704109685230378018818272752604478786387686503874110924752243860476686693160747029618193745307492824085122927437213405030350060178047814260725371807758032792951332015759464684206739032739542295357654777434872800450986483199476293397460864500193497094874149669843017852579651805183645981551104428814017691685339997572447409277708128455604733584079572787849257568934032480478696833907326922367776890304044466652065963023352195167356333341263869392125963650451916069453730736067625301145111784516210900272246517211816422911523137627237131420976324726315261069115561479133252668559108210169768626806879626748471180417592578878614969755443785445672650280665015009878954400348437024275355812197920687885193913020529599976278825932646807615394771435020173356140580100351798796442754090540105730176654525221905367371881004249890020231822229916893502253283203725275347329133288950434517316540073073004322534434964273384387493124658555727297971037115228394727689917096958100486929825917083163044624655563684521760371714717394719179504074047198051727619392944979616366133116237861917734215044853114106553248549726310052824883111590324696558744239459363910605616383195980701254541427157383813915908679583083892235624228365266784769379928680977010498730731566581108258887793007842959092202109486654870680239298590229539177963269943556287536742762334810461104360785200452280964088942506855184016568255040729747791616644370253299993996205780675442478141205951129095242289860392694098764665935463414947129364368497708822471949712834107874020396623953317656048754658074187703880976769673714077314683903640437963915931338830119571326815777682188089650056879405681167154024892861548756952121194626434672900190807796858734163779624199957852997497726010704305778697780258127784103280699884731161935876861139473051434944451724335073160235334329606318244234073392437896766376937090960288090077512151269317518354366302983724929078031720318660917220876952526921290820128236825816637543638053289441039262633786492845898948662920949636305374568840019703146105652331771793113627772316133419287536012971507613578115973283667723831285638425752213203565021275129199658104754461164818297871050287206607655371143758642774659329440931704748169157643387589437108469581796565077081426432068876629798105571864333968154997253248714793012952679367698110717362918404494939110386418925348744097482697640469426009998406031640469737775956004343921798647234689980528028641533003929965640099377427795497430802909601204388173534544964395184918707976635961583721768436743451754497752065092102193629418950375966596910106473752565116146083011157554372025057451784586138588572452548347558010452241281463213499548792447641484947228900273345089778867778152809798251300535606034077919167409976794608650080123316397458138947836790953108761073915600326997698331155180550601731228916855542096094748735494003559703358854427418935719725964742593474473991842260632102858595007979128282326104146081287755728659277567920486143603082082717417454876395158073239787493629599013861177627433945191522529003640595315371811164206034814860749384846493670768918904923898191433035463995943462372517221308990539221151621541418440426023640227469950540449791347360249655180628090378368910092914409753116567577592549295800531638590958686496311503641476578422416915109655349030241528635752242624658114645394695813464505558332820400936890437011712457730285208605617714509727992910214449970482202054911754115946457163927045537560916848090814365490354938137271956006567780276517114972411284127896056465051653020660345939810718089942220988891251600187293327911180145244523878033745348933914966527231792587749763103691466014905196443535290304318389648855826574679660118664823891533967969289893819190917065502045226206262202104489469863526019704256168437006874982298939485450227089030685727423998626129239433853029104157825011730168103538509688546349265898372574000713666471741781001721616402750694662162082640003710539036833509105205517161432638379563466346191008829479931200318467166532044953454109873339609498757175992174983762709204200550846168689957159402037135998176881624041588387071022354935773540895104637432917500763372638058217628420105357650321557529296743004343882477402328675988910565643351229767188778429274028538838470885687738516702057618492468331726569719151625693628429052149791652347263015035734880380831150876525986382551615972062621252471616304877860275085073119915972217907788676706478271126314132438798082962646394976875160131943845652199709738103427349663506115419259123947073403573601615250581856827972042173799870353371800957417450252936805968231995834201152030790515372129090738704326909739768691381212695842430341935364891923487521970614460228789007773085821729110688363245447222482704471557164768797677843531330456717081375610161388538446739903726446877716100967378839033538362843578327022669837798938456676976025350211262039796781122965596986854348921467117280268118926357094014847308357803288790027398029745419301322254183026442769229069638180078157202847924266898908398052783157517005015921013391392863494506594980991132925879787929293507648598051819790098242659529261523754056829849636034687065700449150897230449826778915698969680326209923613663870383840281911016522775166958002661574069636786016956812326596353636145213427015196653975694699742256335774057524248275532853612399247770669207163825021428664545012072546359842932025807703605200638996253041542544511505426862174662729783492481204380256644782283562515209174986952431176439514255846729231964611468832494740625880725683479464826521977417700766894645004788864430773924009009752900874771911983794858626741780178164434094480909894548908071283184006221945714178823531774440433920759769876294754729791023073711288621686398335201372677068701239678043923908203130362661045255218496504643920629205487182082537921195952670444779773045685089224800773781604001182939499122020110602252934263301342018365399214463757771265966930745832168089872033499833356964851050343558345399634383088576012522460518047748843351171859942307543495957960468789379398782854549644724207653550960304988021704309902326991698149015886954210404732456653381696382212663341159913456873988598488647952435282175107168070364344129163775015356539497128523204599848793350285207364565854526575735299269608705071396044843369486056561804207058606311292830230632291048180514333647649051126183332813775891956586713760578988486364519577022571019313583749395991887406566541633495044747697600004736946543975688831002741056300552543924271173568203257697991981564107770623849926575783838850549738697685919961743027278214759469521832623200464681510354048257529753653405044919656565502059042189226805423770230987871411349945846463694146759424138593294082992386221992012230195958794805966752758659041960564665822879806456706626736740758257671848167746003847287988505841612686479325723224862242415400242697111237297250795744584505237560285525534295534389192057646835488446273656425719210465351670059614574861665469387332350690804336710286678833978308928909038386220561813475953986505729198916674935220617165526169482548296159346391596635247508451452124278023622315534527860375266356529789295341398011330405235995992110087238180625674206825069738668363396330498374377980295154275939521685515795078305376000803578763978906515933785745030971422949817437319617756326735422358055455904671356019202655791543084920428186628535101993215395958134353416924886313052750192614763227105226948472195902166130621708832746133633622856713188826666237901040474520441759984534089163925177080008254948784212056885076300120847461559788043358172485669146189620439578620556550620079869715675713132668010520042920979752443654067983219165166877708049453426554805467460116021184394038338778714064595526643081297183309687878875030848338887061878696449260038418022106668541076518941253797113613457213862858004683823809207854670279535166879389038120191389210231926720792614183554629375296741480117430580601703950423977386169665749203206291581544777113023140414085342124163830410708390003009698778680457274457753165731032162474846894572169019880054183970683122223797069380677710432330333079289890027247720670331599289572479644627106377598389103048759110885779199193852820394267379880569657916558852547142393074110327978062046275802947972468449330103821138879453754710231602709980711622441832117050015371793192511074999781437623444537411354860344348332696626756401382873271808245812362702453092981243581158725023730024013569347193151870335631378200766286432198377886172113721662634881551228417167412039846199424119742185912543794197496945732002978044789171061826538249868410713899814608937029339027418167754500315769796222166758361257283848365509438255921128613317620256505762117366379141400003562432419283233059447429753187817736893243486581844597541609601815564471698129725200021345901617454576414490620157384367754849560008846424152543223807059337518581828644204222387120957992613207632286063317270633343451387422157571085854360302560970216498154641364306469586415674424421275883932825742891716087652134292725680068798702503005935817799323638326601202539769848982015171762376135876268923175472767648166327024016022540724103146707486961330825885539990016816141179183201186086534230457033439458640978768629931638694479868789600595636434587454144994067722432966612388214040111126202133701594398628368658635550189254782822978061525486005212391714745677340302828965980388061012034187476077472339198089052971152475640919508855562607110399918408710147911887714340377734280506323237492930951937711670194282485619381629567857242778043390877830169304411588919580874880542395413066572471224902575186088358457772425865619374232369816602315403405799854895216963371230073863947454643988037401680630505423707303695348623143114681229448468731499580119080902921649552762919148070283395903539381118519795178903512763283537507765025016987855077726515149021682428739901070194349690848384502466290176736466852440851255583743689152830723435884213886842524949942812322455625385135137222107685525512019960752343320443686885628108291497436771907502182619155142683030799641786729010949492715377842802144560487954295538421382067722463127649521063324297164027137141839903504382971669986941509767647309383322212425073129386777644514901106422101595283282606188751393284567440673702129036476074021778585817552837442176497360189721357034632215136835394929787762032633085173530583809413059596206441113886382278817338878349675545216502738310995705261385287016722377775741437778039053950746392037781216657905365639498720438165126355194072851392170460552506124854261228952274399660156565742252006493612995309718147889349043225874721763941466308803732515340872082504170860468656516031981457284211602976742916038313723625037126887252905006960813358621257247939429700091719972219306201643426394647754028983400445830311088583922936956790506945996723407126567400235672377725676324594508426456376986193273837539022708572349842678571038611745529153376441679433440455860482125554532828681229465607294855032299513630202909451348959633656615529873946774267244298306805553690851516506964392323761291604603109623561837507512992534282844167674360938561119131584831138508631939947584573070288612315165954110036437365603155854432238649581994285016437758751806944061397994551680871548055663313150924795736857186255687656736300638732688182476299131191829005909831022493477412709714769987480398779202116197594954398404287247492810321886280402646057693919949273525877224939604961466887825546983756071028610583129643724609067919159255417846370540897353085604185818838531441191967518514680679829795369125907618044898698102390327523177858990185038430474454415100050268585968599720858064822851758903741053176731198195585003253887133172630972799234212980514955900749053619294813925618942046579304626987637355450721139749668097507274704409536739430246117997372898522580911386272900315172261431834602353462609109588324558010998571567122608784810875751785856635386036143222693394345739143160289263973959962056159060833788993568909217646560060647610438202634228400256846256089589683510678740293818070502062620252448321505302764389743271493874196752804136655251801564854298700977704280462547173088931150119703428368686010367395926494054964796578939944334763372005116232056101541982386587647308881976875268454056888736770362325593142424844703414847279534358087662837575712231579668025742957550698256632606328333342182742254028296751581509863977078929330784160465949860666776003044619480219592008016393793767989524245282933306771333505099630770012481867440396271543695587325547249039825602553068977333641511375157622762812663217151757309161119377068877855876804548331247967213014508033088241437025362739643514768434701283405822290469310147298306532735955792273324160330143598611113726913913823820387849806420493433582056148907700559278723977595130047647345982695700168127273957755149326425989964697859754203232658191691932242581729102468877354227283581501915883791232323937062703242726532446972799462737431623772819601702952851640075603670433796276818510159733659085270289388198758719846619211035508894149615011071582430003151973026508197477833764642282296008985248779048216067108813746586293193581495257992027225692795426922248580880688246347465420869573701258476022346268992422362630910582895051491479431227048173532697199571986150787926295742166016692600886792331403890207755066174950078064393248815178867121539332498309997628713737546799258775122437486442956921947755965908586033226855542717419637699853557596011805370979305376048039588050207421135855119415701606915145455505340378183586234334160994295302677093710651144059886939946305899823393093711194438194352873160099418590112833425691799003209740537738898664945968085346730456689170250481320484835709953538565372725349704129900411935627414262262765565018269502782463813287812157865827718297186968932940429568959449118378852860649780956177136121947001395803232161561518889586466867162492405106381180202950796254300363569322784658899202046677792555359363926086747774930709189606210656241287225314823257783145902751271756807345715572764466921128365927987200376279192593966637401203225184557129907348151978822378792901896821860079707305118247935129651443640244475024742071882331737150966412587502827653224766213258054148610765224613676917011745292704542683038303885068915137138274321118032963151746450333519951785455965400060357808263697559893651575295736208668793375388713893734472574333886574484216382416193360212402717162494799405851476423251798926818361105559656840916018786668647049478408967634119344045474168258208334309141990231068100876061494062305166417899944175089715244160517600905071192095091431561278684040610491958477165907244621680740288721862503238604981396540062545248416915275025057741813936869416714683067965473521590002220263631883288428011159624994186594829618189555542656275240693174125238403237469918859947794791309741244527600541813743510384653757300339615607904242024161311299434308623902241393155782596881599830185009928817567839377148362312109901290580830881289127544989592602069493140438945726733018550277383652683338925656695860283436312069719276735388677351742157845967876170723316566330082959215280502654603349410550855062041969656678748878833110828984305063278300292318349697951494555178353362830858614942877994592014237415302539908540070466114164046785508356361836748829046987550855108496843898231535232357061467579772819558889556198396781300638941082239345559548878566820033879286822762138866003853166660929009981979800905845514194372555013859780907293950713140916952305386348689449855568556241194160887104176946280791761982503605188815773798473758382802732749445429659286287181629853777545126275179117011333762219342987720364452380372352560789989917244719282120466915245066253935271895659248107764956136170588339630877309517795436143124856161630919027436789025040938966296355825218725106647274541914225805399630374154939894179249308373343708831023783840639516924668707656904266367478355401128448773112336373281972897802488347192573170540497855043910980936206361675016264447216625626029066853236954649779964000223476070599410989609947639661142387336477806586454665804746705040330468704092363082192397307365823194189303175493757554182346785862978080816767770489056082501433441567252049135349168204715994958619062186245700035414860259679961330741435600386481418353051482655039158736344389004746800715888621295056283869777531631180271109514502169967473284135947688868574663275730324863193538571513930134911121775713772381169210445506300117488082641413825098424363516765241960577606362068961193960233138026449779325780996942169190177320991438533552883876205131741189691052631893645494462361252325180745844929498392527765125784915342796726727814162323664719954383181626986213286600478111602822159492911623796969008821156741126555720764469979583618682688259361903423834645174597670859911887597376536016569681740831227578908443442978571467495269029892182036251640789046651986910256359934862835374643610212921795528569816431414932138685923918785632196510068852717735017440792678143337855105444112590555163214686482977541802734090570396992298763543473167971385688483308742449344252216964977581023971474334778682542801701496153880645649570263328885425652619253328766212375464982364866843357045970928656735877741175405449102946827363865438730189472770099137134009903695950560851662747907635144451371096682369840390583286739675028296590699951146667267746858104341847153164689887184900511919938649199589339355265417192623290330838663904044289699045427714686638450180766006052686044527939932706947186950954248444525345139618195455571405448765948460761063717640315592342500416742857452112649128663772391665813230150385118248888632442671534170908791308164030752260323170571031684433633889242766854128607077788231057309968191782442656559809457687481428837266698259792559775164943480491712759104869601876040837549125027651298909993113599402881152037416504404875259390908676522680269493768712946571028248804324370130015447377754783250651636559038345585702828575288464620250824013759735431757210025943057080522922656529414807407543958279847546545716880300207094693451067218399417648099446327175160697217891439251474507053697088653117943691385834768604333697889428135745695161986473339642513376569853304344302928582991900321404596705963013694998486047651019352078938512386068273469884150810094438312856585755208228135367849864418494248940616691025862395349490042613883419472209402741365530465476650859451348316579142048368745488629654639894320860296171633856705948947200997792874789649486248776818840429667943624375456608637189971299318296478232649766699758898495365110454549691864348088146132118195293624002990589671684895777860340830965271569367610225011183201198436380717932101880513988040181326802053606566011658164774824228759801037600143371163973583142862470974817678087338958332667502968307056830829881564948115211204304433307454493109592546519273864669682491755368857325308659997960060770848991895667548080320161168528439368262435630627835486315381488197194894296577710414620905435369218879041426380451989066036961154243481997016050436124255298839426095101645718095991882741360370232001481326931927922539752802640768194721735486545291641625240231711600120270438247251295702133009740096344260687009283419122533162151996595635140502920839902670596922587104529302227974533363619238845372372527772185855166113186640946076998706081409658055669423030061087132496936847933582265936174009234998504749946677130810357235904498558599500217230898349610267261886498749892393961400063056234380593117766446859081666586026522474189159268575301941738950162524605859408604030088227306538954216126558701853581329034083345431513709203402435552935238107561651672613286661642901600023334232062220090848392664617302123005692016538367125190659407728240957690527136416976572892203564899498342929360185489887676473357070537310437637629835313731046930685394005129947383413894937210980011177442000293568659269873145839106332826919021250219395264396675777853007097025254458705877608938047915699879508985552129692011639036491777371342342850143675139046434446271360952742301651610096607509978323277417163452033535317767294315503579354487759592729295893649728668521481660894245541440830359583183510156502161539100715119039923184385278221471793434001369672530803111954085638670471701189188294133329427514129847324141900334329747073581611860921891198455598739678859060957722438225571472201525684964354699615483020994921540708395762606050978373037437299217898732153552695408354289447044332225302682866647629091448645872065214014171978103652625861756523381634322646979779546110838195803873115132835128603720838491418232867534574800960022550696991596291194654001496614714227784535976293747422903474144504610618167670445899871327712297009174786551254748940548201175860260910981352181846427790920857993292314286130016389630287638292543930052549597017910362261616302449675596711717902770844243880783953016095252610510351239015755951250859484544787960895037035896431042673478738601533595156702332040460398999083540238795877371034340502167631639249645275808064013292134177253478114752018299168540030060713881050790780365098724454408656869303665077599144826580626327936293385794806021719251338641766997491341013804211747127265224224458466228944750709861523522974307966395864365448360692068510311532141690936960788281311737634091098243169488296701668025853981795252964928870167093760344557781061717697987976032531188330543733453328058221289785835754349381111071385791171378844089749797557749521026689213785637008169221571266053483810161298550247856835581214276174122690055678124241547819166797770235025093983694842466570372577943653487210359684361272653152817273399392547640691857697796867393210864407833699761985110776926693413576265833304912302376640292666717891704152133750669110350620987534818532961353481271126134145556630537929883916083012368949812698393123720465231662380281932624026140105785656784164846690075017695792744387372318134805969098837731293851577502640162881771239636462906756538760052331580623698334567967987775173552607599634481586296736076116642834471808442504141500185941892127079059538376585869744891558544957937804305008425314881176449278428142948902304777519138331568330434267372969449308400788851500289311012468232248823472504972840564976945215823343885316546465218874178061971721536735202376813075701143409492543165013761781323107073879601844922330767902611632786229604156164700090830850346566107331093160142800272204786809721904843668022389035083516702031052433947629480954610756410025633220664050047090616511141553416090405804457737882845960003874463015582554934232722977709638068724554466492475259112738927561571294405607553532556348283527402483696437409675967935010173531727340514642315011414912166060522608450945485589875919534843823669853370654593919627697676273697464577531957634062863725572668272387997469711475562042375069425055154558843995104342938703437645107444931911350430725059573607063173241942727768472609638675803752882712912434511986353137796318586514693337932003725252330896904082312994454753590034480046618265128873538139084776764420632831274413097404200708833036609110291708118137237410656959390541030453328977588634262358121537008982675247186001029440157687193484854075136588900302932009323136644956151510498687330654700992313941448809310925498043950800534072272145250851897812069928301511791705440642461473398573762609661797409323078940016104666001248989502354849015691967015278696597466855686981878575208606892904716851650881507180798420335662374028861141315364779886056437575828803345847918638145707200107883105905444838019497039950551277859582624934638836890902489055601651391935406601360760168419201177622059860500759559625099540467607138769894080400849025910875114137051563891900971786922933312964625365732022607165139683853428443780636829223367178571210752151275820329938257933476236029205216829550423294425489623939360193714830882368495023106182439164395365917711471108759052530349149479314155833684510415606866861643343048272378772927454509556251245967328965553820934017200774861520974377602078646596015055563926597458583319148227765120936509979838660944245040625028795409368132337644524601562032677374861158058799316357677615109561363163250190617561801918994381154583779158139881430350630134710809091247339344492518371220785913203867463170985589955816354894783111251134094977297326560505394810558534350662618413777836588642606517932044473491316620516759235838440463269257895109713707304682372714730279190353951593956466802060344759264292307866353936605600014146373005202463898399397279916237347107162492567329038571192642139830768871655066737484155910617790422052844392735184107514863620321288268044887917373880673667507418296909517223270255153410601728647644246100450642882387730772404183047098211324536227123268439091150506682122893583288218797117740220828841853471057309515217446842146870118842489114505498182593875623504151709624820183787109088623238833644313593752818654277612515910145083032897797597471100078581865110399035860459624483043651224764966540670981234902893268064691260353278013895050808866086376467800217323464832063699911081787891234036232924969133587248094299272262718332954193430058928361387777486363659706746799162881801442528612071398747246885204307411637134070805107800333803238978327513012565867784794283330640742932679475725956621889784599422420068246296442137466664220237393592403348177792127740772151228832669992326433604555314170839532231557635742179196672929432075422114772600813825706681758306573138824730319501675032245036963973820477297941884310620549262597492730378988951026743835007188324853616722426909192563561541168182712984781670355446792824598876516416124221286539640002406197331496154453391123996082029007648372349532869277986108827109452416688659480538701613298736378694488790086058436669540579661646492415653677249656422758463889778303316738147211057039457206630699788829007787430921110354876337216133189562442902504639931713210717101531603330135137262984218442101736181746508239703516068932400150211196603872550483044134018616540056030646289143150706691679067973297938244662698688916822288406050093532876281762248948710067049531112028818570388223383089268272594371131961862042201705355804315455467853097337680128036960804202705402113437120228928846466019168250442118538682121643145974162812518903887950798271120209623845400487788433380815172819697313455487401628925135475600412543998590864305256789077844324387618117053487766509122920487469061853099649201863632150551767167593199062819241634351699339950397855671137115016032533661608522633034198042183791999280817532334464567642230268280115034040546850813716979902018901349420236684824036715070907856177719036491982565295444595380913310566641207169163751793341807643792325316503864959682205290900218473196931950841576318648797254389116398787962912150728114984740516711899022216371948760918307473790432976602844595201137487430652882472576127231220959098469782013377480609781038351285617368366032757768270564950194452292309967650351441937270158645776513516373662812804609198912653946933065321788012112548959569746770682969876038627225699562046692442106741542067836940708039713659530026966286376659353889143664583891688474946267934940936736939776524773587118650361879968878542446038685258501321209286527513123322143185542376547153528445092958315365728920933269567855662612459691081961743346890170777572978058874085423136311869220525550000647765803131128531023058749108851478252054911383577716304701623627254305627411832382440696118927047360793416686163911415402316730403807780214655423894110806916807755969718269850622164660005532094744723645669758741452676629571897266140865622698501718671965548311259807257812833988956038394294434383934285390989253671388550381387850395474936277168646885513629148824808102234545981162036362227560489659076203607840342424199064814362841652923852772967067625761404330298827717070204212279056944652397487728773387417001798168939606129998844129733286036188142265393509673047636097263595187193123813665022109133480788099280862682303715583337628762694060156919329988481275328978417043166677335290532732971086336934425711345720915761654897535788902370138286055132211705571397331878349311057190658464177907929704245349286078392620247309290154828682967570314551295269878785394944626413398058031981259900425219115565169775325192155100375324284127449546685981796149425791016084127739066307153513831089707888494549614731200966550802122869356536712598547095242839694774634044491534215905980933819821518445743650940428583650343738885005888336430700731597928636101099533883319523205080822507590091196633431787866764483379295417508702112694366531031479891274188244892474708206192151815137199894235063990920736975043732360577562049028458265510123048046437291734730844817109360461720450821841420643452424877323783615419618626560032826205336600140219354289008410342964142213300698182563335326072633917207200465153567553294086986341945291830706193232210010345402474919797234905919118414226647199545419355269730646765013893592524653237423452667946415867462311862269799679798530538297463390870019932216614630037180760695693968196163515667475873327399885258175963399284064933129107991442448987787752960659529047330591101675624634562749747847818964472623296169125968345190843325866608017983252142567694964179856882688981522145543269496032981793144548326115324019312207423629797176758483353854881886908525997854301558946446741108345297147106266530423492487019098695172526738659804040160393544066928235293110138590718340116496607205029149270501430831466884225425237895495696187443251279667507887592666152991724263564937229769262707795816520365479340626769438060985286753294844691309729142811430154363719909983605165420075667610376000428179505111792808086372899461201843368321649143952427059696023720696245805034664175302814640066964074383304711791200116718019660172832046811380026542131415697352889486000724181568476825032744380276063606596881403606885006446901766258688410907824225759686085243749515609352111225561309575244358437448856302116594803113355038753206843781004914793367549208634161228209899745338456477083270699098917931807793092932106658775557379423861705861559747920008636182977392173799769157544115949922440329972578838643327565568501562150046560999968827749544358271247882025333991673015365047226637157907531483166100427561231985048158287863926415236471488221038625527130177881428126167228777999969859477996438830107566636514271995430767151031086700977110936345384721039357273934244219897932512839912407166173682391340246811542051621611263280691280486939676392537326879077641466969814978594901072977870309165237655907359853561300164638437247845336737266376617945071992287216823362614816834360917736552857382774834160427315692691362432898339458512067782580777940001775484677798963657790576392213186019289022837637990477016238526740578072840699245133958608339004246921619605656790531323072102199980570468145603964889061655819533882438563916265650779109326489658194580267131437641266978515222543991712753758019758706030268682098666167213894077715276790860393130946697955841351054683062756683220557245540639114458946349692963224324072262714993981628953490688103997325243792809598345157258720790087988530559239467011920515562174932669299777307733011373514664299728128906799634046235798096492723266406119918040046309336113398500745334054013371114757275050384301461066705893930223526245758362882779487373070472151938063276032673443612831899713462896445041726798641735759343615895388950656707658263390823335077137670576541960524229546958505566190416299237111866729308358114134905473888756155749411794256015053413631537928670668410428698418566015489824017352554421472052662604101124228673186723925068777654853617545241280142563038771658909811532070804734957251540155216742899965914177081112372170155747224538649526654381744749328713587977916638557937970249382461277106494440024768669654464779004179873485806454045829067682182492252664565470971612772737507015462183822060995488703127861965015354073890572822677698926301467164023865688307114302429665164807906885501874597032886157946037523364871545276946714642920919537729528314291843326535889267127189803038002132642818371472095462271762414181691081584503236431175777895032443213180404647651516073614863462879504024258564779750845831904627511433783787858923602821825042338045629153593101522051524036260066356004530370677940151297556843523146765951813662076947173470746885605117769709685956603277398222695270449095174090552557511663714434324259746913164704272460591909872273863390532304128679499062259564634828853724787417636186507609937609762072759616609734078526366467654356031430764452142536607137318034276684640099472158086351235867394498638750025250687328866178315108381254595195212866124675318378376858456250294357904691483812154149524750722853862346753007444897862888008572028295955913989123540579964444756711852041376983006277522175229962968093470742466268122928988016223114688841079731710133652403117463466452774388740732631911390903568334191147335960799579874987172374210046554530537614671483030251770474149866746214180921100526005118369178112459421658220512083415654931959979953716201828610352590889352598154915809149600205213219054337399978486779202178938357934973772048768764727215628480208797197477518777198334153481294861886094659359426784101501708171131352216964686331330923607301201054747518496777759290774124007157420892832353733421151146380721753903075165393075254828232474305984102427030733652781574706459200553967995403563287624973880461127240671792959873555781600917984486441234885874183381692014471748996630303111290141136481125589917107557301356671889047638841771807397696618655309075903981914562981538526023363168715742644005840739213519180010749479883497936145706480767615916885973963859716284282909581933919561002090502901969958770923824287288664020690736610205794028103242930790659517129034816415077839115585498526395995074006834556134052937281378383103531184264575026388453824390829229125067935265050112612172577222946316304204808561331414399058658651013453954610797408894414984123333128730751653406925779294429923729133611154888732901882753616667625031372954539232106414882050861337997016185183647083778128471392133278548951837678230543789549710241757262564341319782488157386976241552267351242022798563991403813686602006678990573654799505227139505326984944863246358319871176077590325218514931345075361436268340264696941410007897194999621925333821682690155786515458108692813666730991660871738013341928359083940957487263712872261108738349802360834168693886941905258150433285458668574308213946792351050635245042076694355070710913373147368318250129824190614204062216251186536881804788432593225652424674104953723778084493416982505904720271019030645377828455405121969016578518458882771469990752166703823757330388625739618991070557669251906975577125497376030312045780844441387464768836905185695478337276893753951818503682278329757288646441326801241144447033259024080211315117009442944935656381867952795483497025309125886593009915352667733862458361838898438938475562092678611282963185437207896138414327574670401685216493052514967516774097484285122425304342183220762515571742789906418256531829476538686811045063199558113406486743571793027812532886414535947017204728636088560695952720640816683506977611049571688169587368762856262159700004982318083526386506325215853637538870896455616970557675841079192496963839922879381601336689854584158533254878638409743332786507401935101786814449076377723157083117218398914180838458705461655866170094298241719020939083368789278376045411131969377053938765862106293993612650786645274784967437858288079227588300071411833782357435609700320049013937653769033921786734659746185908013080508731491832891378003777768705378359334314394136939109791749832336645387590242047857988849691821746746854894708604811977207293494726787417077569342440998418858710009023244705186660071234993424443067606252114190255230720373861022647718376526450089511654758095660993714188444944937577639614304536290571399813427390142685768393600312124029344055028326517864532679532924804427814099934367085840075918764094175865396956925273540353398528616704658455779452071206616405130476544381213937376699483684302222087056156922387120098860111628841409938359647140521586059093635659230664092804421732806210976907737982481333203722906408642468526300677092320690278376973414974291414032923942022294166268599064791098860429015190269960032573110874966291512758609205920482776548752190573368797086686131510933584997875118581704294837331027362624768096732355647433017668896512739615658441068468142134571033278597967490062240573026152798804585529682420913465118215066345023986827944702843643316451668086793754003941284823410150356816764397799164508774521879558041894370272124521619077721650772198156581506404053132540934827488718681068991960213881495393994997342594326393540706429554215512600445723994603912492963501710499031786121205096766761399378334483744568985694272178007879609743727303601674750220248356740400807930223165198318107947072560667552520021910681889463451626609914222809795012735866441949563264428190225024957280270415572803330463749957166248016223214880405942840511309229995294159096097499344349006478947196297233344126148914221933899116961426766667229585729221952850666450188071579484296177777321425896909866417031388323840410833204910582325817475027669362605981730802349083560486582280402378589610178109067910927142714140132788427547953149644215989053337999564122066220217251439181214408663127306734255370124307071880310526199802687370775269692300949915518901423449133591716639079458617035305268100503965681047495824456212706529929428733625032945090969516257137355237308662021651126537819463833728248127576196039550399883896798616279942644525041608346181648365272936145819887333838005158329272348362609929819214264622644226074733057826161390851392728421734364574379348422699946883368828709396044716063364614928171125934183443980595737080279329225004589371004475541621083563499462920134240055286715340416071694277987038729912078050984562063217300485545482536195189528398484190750560597743190497517560283018126557524858484750290642596376791475101271527173354322615142006918656180612233180359912886569897994117682680354435644324835539959018485026663780930246294497508159916893303825779968004947359119958776298192110186561249083026456013457491170812823114642608408017919780031626590238012671868832103245888838290963227309981375874141516429750808708423547817362685185222761106127627511469544161124977137592719455254660898283937557231918172169152423167659595470242891285541542729055863220664706521471851849514295277881212342947326934671865158965532725394946609400376418248389573954090894741568964338816417156285355823718682883649452468427083241709169553102789483750735217673569129281123193206510474128976177941325386498862182583577035105312932262005819342564896515349458942497509236460014746834977608033153036458724044480817051311848669402211240716383144619370246802311789572682735986117764297237527876413076054497369422289839405441912214023021954262381253739443638586726663479270850079971912502588628898994108870197044665625305142641758120846413826435956626310806979763615578339679153576963426495475965225385470795104590835941937125244436813287248335509921031829404041161276784372659347822283976085020016690373794576044777602298738407653337297794123426838815521751220799765787611281005227393011209163006865291041790313176197444550680171717767496526692015783264228233319352570442969427729499553503173082888771932548854627754963399353603477714532818343753760644826178184322617422474152226450565284143491294282421722564593754986518537338331939173512049692734616224613751794855566243137060148187064983932503599561878332921751403395354994404977297531990157482229033808271554728584322992155219283454176436657091862430095227968556902183492603646880704887477513058020538800267299236348173190420653907090905142439823032247785046137534869878843536506485522070487500494295173990525745342307298727243350019633662904741578366168713006666054120285470051779196551648863170565217564279036009125783129590852216462581962487629383825152986986497293617653743903504700613696634049755874375314727137011005778810853627413152855730295618366120348975122173530856901222570166208204550131359788069300744651970437418773108881085524890983218828598397233655448314089504325077770279028821078759065209353494661915862848617631716034028091005098533813209534969488192395904325567947846380786172351471567018598859149618072030426535157869624689235967811079822203113664069038192046186496798909240882220648966648910976677164332528588807120135627366559279684911250099331032436472136856516600024011574362527057228392253822389698894490241896269577881814506558316773239291113822693976962200767493679067422958011296373712090426975178410751650136424117438239619167970768222529886622804574100837320277139924602569058640571765935296849755182016347816116837356472802605222315291791527048568779173611520717788895858818475791571640115258986469669524160155886408981141986024250394602266651034602699511878108003206878082326500811694849261463359319498659172606097775232060202917853789608160074478569995152908109247614082238435855794821722664691992336799175694118388830441794570127482687724166639379340138108192910832281811441608521938998572982032650770043648374224585726330282961360839794673048198046339307034665937639644930905608520564657183714563338606880586829139416858469163895006323279552774700382540993263942794621414302067013190289637681487029502735656984921396419030798806864527989516839999416663005407259241555906268920706371890498094795075148547027993643335770635489347455420638876464365392600755426058796906675979512261278119214700203813183087416992314393073353030769721658879931345258897910679578196865888795163403648660204121079462920789847720305053573191756493081947859707098442963862955791598297936458197601992002000813514061022711811937557461142831471226319997736113443788226954355752563494703552986113878644999625318999764914340480916722820771188701125083534506447402588681303583230717894150171657683640252634729719132582123460110204331089474050091284743864055507176083006990111436992776138925613897725436259961738716671991505951723129670831756802373493650370883232335771838541907451765670698989658695886227977408725121261198768721586049521391535219901535203143011128489919127444433554676005227932315450668971447873680323290000164021581764506131986834579115926897836809789472696398052458485358626925238834191295061624702054580375883366029977817194644111589978177071828579692458376914539059403305481689908949586714654324901797404214889112271190267862493681926357338152596696614761779323720032601740451573647017224897016033338234199375374738432122270048780249527043924539688352340750250903999658717888137585304953912553549413967768191754982875353906876141369692658222100036936723169231483579877018505734025627117984113062976751923221593965292694237656827317305612669036124048905535143259569066153509805316931242716431435920860087795383359906615283281786577046777211541879477874976137603884154835407917616781850489101115193549622290760989055240796867134683649551226166271164554749138740907428473831872411598806207951708617977240327386270882097208056513306785608938653831577581501572897376300295728064844396874684507710190805083424771681565294184432051123917989677566878624511946105075973817367432454865322182987724709773542572412233106798774475327623535337851279753068977746769463919079003412103742077178428437404346124817260341869757225058554188780559691612109829259851122821056586333739193549769179766976905082179448220869175440927875333168619533445700470753979925641306305069482984150209233367951910439886203943106269364436393414154233823366835174238818179750154215755816843856588032368515617803298736935012223880710513442003838573315819430880518079703271981898136838470717166526302139130697059475599708424550401351220306511822258613766944406667653828646050581152220908609930170971337456375667827826313357437804140030346966486142824271123725635470867610732797145550360739785039780709527597211440234247421601671422256213867243830577604502751696557405568951606852954079340587991686678791610786317838850070971953643721241116434411341162757212860633876007500797536842495042321705002521377053274133610147107852965182048142563750949430184279602652207602593003649091202390661484031428890228780008103730918914616785768552333209607717896221447337228555793531445232742182756222012156509622755687757895650488799991620176942671938763272829774532445951424970104989893795893058792841075365172407600809782240878358321514633359519020462253636364324708297783307705022356354140283347025634413268143309993576498282222886604108150143512871386288079255243735574680397038093331793276741603409943935912855169211332133388631317644040896853085316235100086131141977101919914410950917053563387309436069059988099029904507482097962812616412369442330206643367457681541632725414000283382139750744750985757365015565773529112747025482767809756749508690741715804849750567783546575083158086470580067187668858805553248831097724160195508707584524830681641733793455194585959188512992049635564678310984474462377622380449749354842237272568202778914193764886288098956499827986272364876314350864772149488359135295136323573975450037779069334195892535625586835802736783425658536314675086571148899816749241438116168594451473563536230931394508162916754526147364090495628532665564158538271160267255831064059412637544790630941082128736228402510423096662049912636526563979323136547745922639545817618914359115086021048778566439412718586225911643214908590947460957931076161324930216277634475504587306461230642611352255747783272789179283160506873613349991983279108914883760334786650437640170548326736994582619554500660931887456818959540143703424908736314134667264030710664513290950085058219699460077583359115872955380343956577144750556121009355435037772240252453652229307215877902991952641171405693065444216106059786222913234826797672400614958721081720341439880368038088320084942624438640624988395278038094980458613303160700919456102804423273862540955211189161383711572677351072552707152829250616209450690657709982734233257061406394618105899353559926897427602945759798139066738183360271875352330253507973801524862311268466536193520061706487214187764461963816378304892618725482544712818051114070399272023882169324867853583253615784617906595031315842919286222744601564444884965981331800861806309836512602812646844833158767260859049972686950615883991653666799810331529504767217593785133937500361155765418411573239007901158893509375080401537745985926861046779112140210589658549739550656148068894262746692070707873338247452779511445969687192198205418103441032417593955834957924832907797220621991795483569794660605692375936647496398428238671389124497955073605664766195399746305681166438902610639831844416228655618995252451563983083756932009535728226274577062325421952394804738613919491256496600145246842181995681495139406049693099133365838263755790060290825219968821101765784018303120926472787010322013864105700111466862188122502618341407802750572550557171454002089741899998018686097195606777844078913840829315063726600528055101676187333314618161906342735418797121790892746228635380458114771498971036533353770839520359821512027779282393789173290251978542502819359197872026057433856867109326857515335353877687978142872339320006485800014166261156090574698838139563964391427010469546643839299847942220593092104101178865699326191709269656048531893917496819924668375698879705290011923430978413689099769728648901204942436063481391792587303711036965269413925224656385796004194792538686234828924096621660037047963371927615396984609567035607453331511669705613307752399866656421546539991945088601620449456122445118811980270536821467243073086204855509223123316766489059681784616810899687443080945610204089721211281826406657352744767725375896123874404334823635340040389666439117196834651565125504396739823339125759804224294676508742338163922862724518973070660375224349816899584836662387503148171041270920621448559534486082466036954321793880121469466097399927465114760529644946083326425613005901672602842954678892746260591513634798883701028557221373058143670487907370694542419830262865302625974437867518903167921712585514826244945578887845763967373973253306962663417260237781031702017205885387384401227188851875417837546392003273545279725889518410858708237952657146551086189963806711919242915213110323588276373687986490870828166833189128323920727231649084374347997837286281811874761101541101592680995972217609617030386779234820539042977376243888413305232293417888385670793610711252704710858232572019711547517202284416425341351678976789661008124646098469322661927429167174891078670316357231221513144029749553622685942458619846682385171889374938005697983015609827445417199808857204933685514630714955066509040597778148729779770081316658382803158809337229872896871802896254850052952641850528938159900106699076808190156802079897642102481352502009782543258486806755278680969865317853725528715662487933841342659051002018486736846242528148248875844822761549282293494271474959882539855768331720044321522664472232758587441441552958131645520625220575960814910305559941129068516090673209287724306503104571958963350348211633262444692425499742684513718877065856777415293983854043106625368271347698137128227538180805053069146558958778056375501827717304062352651935183923706937518726294550038942576505311759908067692198658867943071815242137719710065204004523488203975264992676004871301653804379234727364136187318063060664251449731086000948545022699238647041647568221956065608829376127043550764712779371344155303168329983580926832263219803906558646996336132874504267138319193132193493327964812419932590893265214476623906348932698755043889468992925916274142336709997318036528064878595922169446376794813733458887196809033974066493551897867503721323989395700858595240171851354530694372524659163064553024527635273078201662946487206983442034961040242452565436432713351604794009931074968380286070756492258997235430553598559137746243093551132723631916256823281324147462916998762356537121833297362358408961545209920567436736504675950659276691130985670209837061298646438713650986721747437223414027396587136589440768837732592846114094249393024206885900729390685029644322033719350198872852952913455820383463719537023490613936309425171722705783954520030506039829986897164604809136283855473114984234465417460598840743667637459479843953181171562577231428200844748944267504786636658798076052856905908111152955251647725816262295646845010806023480482613915593157477670873394071801111333968761153600276843450119876886511643702637157590573832498980922312931542526386028577127540480711719148202451600408523194564813993925410268848096990892959844759760765503334648335588254238955823478046880791299288498032205337605969265558808961388386673769067094893475959747135847193168052841252757387386717795058537371507171182153945094493895099387357275522290639304738175833922963799582798415728328291910462014164425627677325142897680722810535667283439657405757669880352441149174479936808550421909091821678079186546858598818711061805502917071591544645332313639575122184011125324532171818180771460738903182980707207187135781153213083181035341064983297582496090377971873878473914848376854431093120566668733352762923205311722322615818335103657755490137298534804342498102805646599251195388937284372061226986859691326013323063380837577514285619849776010124854009462452892979704913054493759772647569269131244626399595311449924322198429798504479777804720831750920970632756663520692012421542122672042320852597353944292529327416500196884907829038747347213496358738651584427457957771307010836484400552067118720653707376628332668970370592643350294563189339272055825459817965026281223689680896332254821629819469752388923068012153919678732643710403334405926160472790161859948526532760750198518712727408342619091844507317456645598509131320660572806768938498474303031002135194786738710596188180632323318774054234865621361089532393662474608302883882351175574939618113952349600869572789224342925717738262029323359575293056181214153042664159584773022367702191331290840176305249225109027521062943252328483344885048605559555602734103054491805105316933740350513579124907303042632587052806585726985741015850245995975948810826989505279682111677008541407492020832182888995266069675597376549463532862682702036669140470426051293042640089664542738546422163080058001831194717163948394899006894383986705885104849697355482884738589757721696263586365228254571383500314733025074899559554463067470713806443219660702065142907163983081659075730074011923939457605055873890214647708999994309569077884529727545206214975431501267927071096194489127411923106479742891259579972342943785244269393060530779696821865254188068580603066078644408167534194209826701387804640281991002311993065024016721733257685268683932089746990960911188791581087396652365840730004857416974000741680899028359990837106231906831877362346189680891006872893203486745718109326328902898956893546289868737292568846572329429506144884717560794178065278289349339679520280912261744171423962329723276839790912768533336865668919986012387386365846411942384012301628466824270806234355688075885747458081799490966531344736033291631929904895083252221209497837797984890191820915843169686722004487712266476567178454556544023845803351673208277264699754441457679708683791768782771722982113263086879261645604143147865304828533900714102421401752276534277670396667751666542090274858966471087917038494580306093991196110190669406391448942830846319750598238824615923434366045327736568203652019856946203926768420872824579369205100728915219013997833814553199822060709439357467548974412507071240521346139602464726529187495672784279912795039414972269342746548828090425668075429030586591788736073696102180046397150644815541311079477790106873125578826325688911351477914494512761454617872451519083518351166334954824224051726698119850039867230536389329770165550730303348039679236570109642040043507646363017006326066762562424960686125774347261859740438252220546480585494562648041868108818205107978325782351175084336571007149541556440036477140683198132742827567133561840470019488649553332940102790222803445064000699302343121454997489771101313326602057293425126725884533530448851144800117997132643840641999563312356635516692073923637486185619925071000795160836086469836029204373609144407157320595018249542195505268046617676961030325711449685279878185786528689813710183432778730140570851338052770626982620714295692593783045487898913689219417600696601381568045018553477888953301697038534911350320686259960835657828827317013950209278365199760309197282090791335480208108818105880323342192483105872111774519930571360985098959532565282351290640795523501985563857858330942489296232305642846138323491477006947627588332263277378163197667804569694625808925429049123398337997703790842362810314382082801560357505338693997925738023474479880536364602664671042652709783257120446756082521559750279438511839242967023984939707847336825080617847467832484323932400307694350897241095648707727087901763882785920141869982228752230912181535241009562563789430999820943985035338228923166486566888108069646462329732617201776837093115103568764334058046158966847900650326619562841573638822639509286402828023355271946738104542256006622035161313696185218436463869312835963653817661787586107017111647665617221446695208457091798292863163322059938959451943288703971668873532295296922776084731362246358993167082258920545229085823369413010126110688787523896105048721197769812347291035422608721588866830337470307107543877777070108415178079618301468903278794101200144564154486521277794122958152334526398000053045696778856125732016881634377963891457377294972990428725035562741794587275568490970299177120037098219564240733832860546297519504808004357364840357775380019734059732360164900410191079541276807609586273019145325918589751218282843865031228911169843675017600155648180449462057716335342487755645473745732984192587734990090946123524963671431670079455860376091490804525029426577092966919005754747120651588302695071158647711367229276714940691325035221443920011197941551592701262306331898205143882468909485576775907806743322641653961438886896769013788335708918316091368499173239516251633911233778553616922196624395941011521507958220362058652008882638534738358490757366108891685758593514487003369444123854840101959261355566450517502510642798443016933480758304405940213744470793838659173729409761951610746830082422482041575418560363645831466675105568751829190926133324397483607963078708044113348540442652366778690531495240484056768008108929521755661291314715501171619282180670785687502739862510954959592260214913515081683064138070906924239279659557716909510738017422874695471851662141560224773688959802330964039143729235155660041927513991398588357085746673947547792780789146890601124574403579241757188227816247005039347944535883094794568682849642038721583864766762762044579059296348643933619357406745769824553641781024389299702727190548188115371710159926120886428565945677679310697856837960358580948849157259720554937344604148452791749298481995843061256952134863014922124887952899120296669720369692895423722005376973015365826177424164114473336827610933196743202975934057159599425765588540167730020282630016236301060710508469525658805604570979114025602138241443440871853499112686734370207389116256385720528948044437679170293163049649968460199969980770727223244896597922698286972732654852994674289564652389118426779098204119568979389893835427046285262330029829375274252183358033850783009659109936051685749264120193899845397446491787860563099776934678022148897390094070113893031866905303627833117158528506820518815196742167741738276621798140492249101203344179209961583504505465076320740466412598150742519703479134283703224558074651594418881525954444391771558379112298943561359871487030096530424059297842045363632953841947674341240725501351626572318181547532588294150988092768048472403984558680207688048031554588538976360772917707480847812175880620377361055525808843840279067027157951788701139457353481183298731663239142860024396613626913723911437371922614510169766142383839042076586597701614401678231981775440332823377300579410719741429936315102744877688031204131784416458159679854988248554981473581474688986434513001942037373480800729423593381816010620269361652834646163240262255947232829908308995073120315773386239636407513060095103302227610624795548693320928603183742910658014176889890744618906506355949956730986365912944727060172606513286051861648753751363338745820573685695945448139761645861359172595590207351111667870465915558077692574441222228288076779621846680566148440191148345770410526369806117501392849739620707355124448723585415826891459837178141687344010638365295544981144079360147220012854407539928617701275997236751407326385065760136275434801286294003010612533376263936832112568318850311875494525597303577821967273613395005397160986023279150092403832605114334788175051919520928686847216913781913502637108329881596705903376566334657740870329272896403618150721122221626811169765319431600184189759969012549055188585335402194792392187944240638641412430250426595591268274295726059209328605988235801816525055858222639839025352101335616197979628057019877965009110683092841629083947788943189901049680473828582796898469656835351465321418777106195746751328378180862215051509272332605006739277003131249495277542434489852352273345385092334078888748988385410737400313901972485273649878268596323163479734061394873909802939400626588520925802332143534886221471009101147859546845942199019698016151349605344610107477107879451214015039543021527545653782262794810564970180557224096671050833468251881504819844490289828171612427564784497123780887396765231263203923431664224488232047441304147890429186584368097124581603601764002452867135605239680159677327319731825411822400058244277626865895252177316083206773092229968486433302259933228456452459982934182238079336366685314208273194487611612083672718831432691523149622604784266157184790839090410048215980120278548279027813074193010226653475449293420186415716899052397109475691113461198811803147626974392746742915790973614713608704504732818647567949955977767644833226182236987187295032567041588282780370291323066086397205953505892347190739570518853197656280434107877147263590012890656250173913212659983172909070075362939804819746902756078463011913347090448811237817579917052041228661415113562731139096349705911846498930351977345907788504099267082872285492181572533907027841010309792580396690038217957762875910820676560250309373241373059313685968874930018736475254987969043416271326249960917500838773574484911772372217803539508707848625282556383632701622664816137179562855346847141373619360082491605950259501746641742815488676795394169488381272803426562634105725514662812567853309128815819867471393062367755993001539311884094992173612657507966483677511412616150193390578740973915088454426777093660642907558203709586331858673953527881312563542776160607452321265739048443889882680390526684519778376092313941037921461252047904485407274454084951579791438755181949206759321812890797094989507651291833447619222554007958569192336421497014073492622668236934317120618356978155944622668426818747779990512585456422072097867027767149049602418713751945757970876734979940045357471194301512003852114849739536471448480105792432435487104790988031444854204828730020337866480588062504418795178549416993684703954227539395601729206424817769650818213898170862580511041681956813281760702837132384265223913825508968815401405459865478285858763511688676827907427325863812364045685655179479938234214490626334103988511775890800054163762642667308476729218663253719176934733514394768655790487867014764250616033814982737057412192724658814972024195683039844828349816947416036612791290048917350764931347269767702210495726805160639361877755414278043204849079694522005390070388031890101278965430702773793681101733162105789028813594578979435581772382955794330799071099331833981707215269107292877976886337819617470124346688864051342343571271358588968382586666593015615643560415105876578647229640150336020711871254128466849274557331194194549127323172559092430697219189690874704033745473956466831824916814115420461277399686159297824436175912989585393866028782647196038466750091571264867232440948683206268729767223893188444605654603184426861811421040962792274491217621539066362106844494598954113647698280994166133855795459566891987527678576195242907028704535396031423906753410570876114000056077921291073962351271416211903718546688712536701299803179051254830099075154182480374241972833031250648199558232772650029464789850320920930773480088853713473856586012702652878738643249833697131184689681340199046918439120351522640951655676230837489685595316983737612589137761000812864999191452648505560375365154317949604430760574527046738107619350504665693132076080305685425216052437376792142003446400763760831390511766771287223729777555513481789941850905033053184156247567302430723795381382707208306774422295401774956206588818968748184143350139965390849303170005364036082912018118555908882435205080238123150822064742470188782789212341786744291380198090034772242054435764404161164843179752028726615955875605022115598794193369996068977551882114933859679044541961547951336242955429815136229361996259589505583373943802038037545769968718540415985577127446152216114636888819887018516358892236309859927911410961595063892009477361251267193796383098771782886636653499808933375966224691308471138737890165933060237241723470019609251063023645524813213158910575903320563449606210964836071190020488623987737413819473742124209015595535921861216422233212300733082940114480782685841907631233869880812803060632859593466005062692690270150378271689606240180799655933667504592052812398174477780385882760747108196999112731660614416862571758249793518182967144797538050000781933474006593564800508210949120623886832125212855191400518296693895395492541753238716264963727205349212133456540564550379513961968349268548187791795050032714317272613715529951979785553321551085864688960208134050822297259939245930004292033698053540505205034467116922541200859413475466974422716714556336884238765986342624947421755559823138100531659912036216343525183823819010001686551205756143525085931071104031499179622408092158294346447189474618808817757883073555718828540364169055821817532106413730777776699524178381959170956440042460317553772602059766689475147668585513341364046479822357033005690618563213528427407386289043939780826460229336475723962088007273200063877430123748186078910645533613907820190876601727417456162352043104384307657618233755313679779151098346295910202520299938302770163476915503266155545569740932488078497069363470333578813900559916055534633053444644206952612864641779110240872772624258534617937828420433848026747638197249924962580390449595461138304231819259335342492319147214567438508829187743937604020357040054136248931356765782702292604684187107818604550194663615634550666217515589660186145728043743594269410898380073685959116353472557349052057578441426108195665879228718187584765221019793922287116262144930059039965329166095975871862815961533284823156676260983111628616871632853974203417531207553977539350827206965533960803388559869189733352550968669899856313671088789448508202943991413590902660688895509571297939470563696848977409553688187328027376239756816022263243109856284917841461601611783175596003362933589296410492334164607613636585861502163721534537878509632203477658943774958480175285803761679750997284962845739857977128166889478861698832804779473522756755294001320986736594753095063255686498308030482425803468754362006560535962209984823244319975627992280057023316190973014740651839905203482234288232895490530830220098806050995977146168995367269690704033001312194327262484604212231079224785215555815458820439491496691050234177076110021392215284783493037619006037716450144140378909771636271035111569100800495914759171394434034986949549082918687961476382743761559874509171168975109485281453508933379839473583113207267481903199153846366891429181269036065705413686034120142315193482670450381758282422092778017334589328282791102269804760957791807829481378713014628231362633635421164912981961867566518249318785341106893325359977965639812715371478697356800636227936198602919881182765128536787262996023395706434735151704405906856052029973580634155731691623865312992712096301035572388777840182119968120134295287153820167117898794979604334332085246618023842269024593861652454876772683029158967550124164142091979089402530012427016912609242836251961262713602083552551461829409828642251998483431841860137533004054475136663023821198858053962635102762453250346425097827748316453165577598731034993864895677797579401769999067083279954117291030111068365530197763804806590581485114709741730688697014917731162404041336117420410305496592540577359971644219464529558166976209310901503325453258416076153646659367645949526312563692592324620126597558384544923637030905609834557323958507432605077211473351506314266561653855611458530485522811200925000456296537025911053016448452770264465552888052292324853102618052085321255415137434704403376708050870598704739971313495601970338233033120154954448183237884443532519058572150931195245709269099552598206939483063691259651432037900094882010291334286364390224716687816984113847501814201516829296785541395820375436253474941282586470392319760464620237799398449130546311833849108882255489921487336725731967973892166189038877129730244983413588516120195604142955029893354155758541748327024036831520802434330748843784498975729776250149114798970246229222208825943514460387764728500589473027341296894740865256491208107422526748892489033576364248240898045436471983813775859441919437997206160374804162428218191735400802977718666082663978062562507147285913215024158506252649339599920519825176572738660570178973386032926695296050903511257606303077637700884433953450425779861907289540896061683784190026933503607203153913777950315275825789700963098749701579103672760915590411997640413483837660257967619543735394810827972209137680742380206715040351520822323545119564543531343945379642917672612651042218005730639617986901627383972006818412452871327753525163823003746464463658218466544828446364760833433312708095370036548175588416471683896016771206745942151107452630834381894730407837213379003969650879817621879307543106842164985480560942309552673929554546024643887969226572925046350366352379791868152541087511241019711547457277926098522322509202134147425669011467077136929918616078178813258893564052747503317814808214681016506348612248568109783699057356418823889493444898857480293962105257778527631551391492478105365741986931504845383926543779297939285749155987646081681232721974917836804805368417427924786707352206969017569097994626554020108308373204391200462590893009151173388656961761693749655152864695976597300433355822223106194240952803780200919991077330835194560897517777012848686483781058698536935646989133323399761935570214665034419017844709232705459243215837650156115404006709099460095473527211582206442912584926135169878901236610067511043216877534072688530311029919009352944248070176342859121962565956824438659093235380215797655358830160383260715716393125365088186151125136874771354821103145565223367810286984488668094925405527951500494068025522006703787570997997951377537317441881147030332289704852192746180432839362342722804850250550030993383061587036601105741229574519933907347270592023034533714149783993043540515197636753698957103251941508903507553492361616893921180290401607948126173869027861581801144195366049869342213302298252422165230084657830384937173789741258948497002484173996680576326733283268780765141351118578123845821092924150079548891964611389886030386265106982023304988271606965463480649618825289190937828664751913296837323844368460296612482439450300240668304535394440209170926961420119070582572477719889852872951366024852119357075104957618394506821092310735186552830266874652921225730648412565261331803633180144445578792847574495310657885152545148784306108557621235016356422808691874944832010464500804857824642318220993288027852301864798699327474164170385485380818913172513125552018787406242558411762758583165017303885104252326846357259861378859272836829719613937197536306687855478956737710420543561526786959918899458609873790931687321236641021656772075507363961757922616347898422562565133910015243624012763860606334838828848572781236144113879247506433229216757707268926298692662469417219097088370811483228452608900109674797417196041212786128709645606601601167723371387453286175413940154131197920546804089702018955303540076727245730616444279613201410075743745409010780705366654619578328760718749695476219348539476221330418728444262570226416685347790524617754702124122564919801095330709663661306353413806936244984991767441036444792144781301893610409191553402492765718253273276212020633753512527645883685194443643195985689545090549505066486595489447704235371483064281901159351334786639762212424760633609618458235964354025739542806422230685610385210608250651041225406042048060494890518822222364890985489451947072485684574357466007718035432383457698970531389259981628526638604610624873200505582606341723583824695515225294437308116466665020710634366463780376184689901027607958347602574331851760575364050771477581043315312670589908251050570601203113433192912803546111092514069870557182353303359464132843946571738605646483538694164770492305703967735294150697752185028292597120047389230040290978992239021725640350681326036141429598625801412188729733356848503898596220699529919002770449305822153484280567256840212697491908698222561324319900117046821103623549441732096693323397850900934453880056118378850636539872186127579475656617426941866888180838201387300033033721183600564982762177193935520338931207263832969860085810480503188697089164371496850745661635674318223412321769956471959108158697570246829404300568199714426815917254199667687004235329788553105917655717031632206744849774036839849477467111707839229247519466273522498157832943840807033197541404195977379709978499830078925454833665302188187978353344271070975116481070158988056112752285943814614677461200722087639284638545041279731320733654434367553847187529352474056210408096784543230695642312831134319420597930711362559529359173018356697676175343699479274395647320298230063992255634827973687147079914190361822840318982244862511376971736027519276582094047046656704317067860673731285567022999852667350679098192760602683479300616432269214700129122124287141884112223085569586091382858704013098619175045444073428326240242203309576832824687565441822307707931789880980551132472486034429785131734505862604640333168709468674961729857840547587758048045062899428445362139136652980473721600278884524834712324050874012184089987409194250071293251486902305293474188159688825826383699103698111601626570164763306648835905038537451695786911140047808452444635220977402328041822687878340664369716083757656943547216144056889588214411220915743525126520352755677118455757279356724255507477752937672797612791356170845073629751820883768811684494624232425118384790512059274957967910426172579310865382938832007730837417233473058221425873530426656351243588325413676723578999955042985155314862612410048926039162622262930572960013975610286624331898704158921505474970002873809539017806361269710586354043284916698378278557526604063919261001975349328741740377072963768402712043244962967563268448906278147051241981658224506868042580944751928950678396551134100565093741513686310595845135527000166514498993040415794376247172905657460372914406371972946408416290679082974728912394773726555411159662545829890527562747616891574878641939091482237469907218427475323535612340392195276296634840388264728242534011047624555200524464340920340644437931632352129933425524053879025166172000469301640372987535430803652359747441129260391455144912518502199040492567022945759531125297473482262248526037191582481319240315620616129993884312525289946721654477659769536216118931359044037131794632459754103738224595381151833073238777456108470949982815164919377801449487972019737911514900608552386663249322411835005174730893405448735243380644124810802966287375172803534344430461023900949272360661938304963905822376645603895857120869825335622248116635155237446779818001155574529442755981619328408330099941806299281918098917069370759368160236691277652827393708650026651941236925906386503901640529534026326345362835970178868424729382877926201198219819657592598584882015407893666467875869386349303744135772959906712428903287383251730546024021075451673301087401908365969942758703015876927147533427768127686602311266953303347827067084633473973606137092199123982335958218413509732379498750264452647592602161306541891460024964132988168273554731072038394199103377502787871580465810550247392788236981806714317059872465811899866975403863315636271856216056914609469878939163151327492622029606512917785996910892429327558284399970059389613835720234554289235145778568577478855022492072941818277138847501580801814824508861128116074659892285684491473614482351948891709949457853074261602497301684789517256554708723659521765580241214683509398153088634277140052950653223055318303521392666921500730786688270099993072132298418627794487042889920445163076122901266140143133625161463321122031254752272328945096760438695154994497477567016682384693102215142889012133790583907833116039763346120676342996219366603115558989353164518382923965014821864518743063668624475556322283990812877543554490674911422627864996010218508914469664556601295227247692198598579345389745007108377581010262263216644442205292668881525721120133567558443352844535766918356780395923358028935692998456195344140402033679608868647507837676267010378205185879160290160419238615916840493281081092497355589978088696906267223618961512542071239586796210541701629950014666357767210584571262390889016296230958965873460937903952759364594099176996158566629477061367592757591141151006566228657178719419812984123764794860572619689302318166278257545506958507574066242152688250930648417797432003745498108022275032828456412764401633508488630892689006267902995872214043330274491580602857170909610737658221838059581662776608005439860047498835667162417393299932992905030721422264057894329408706069816155402359604798916017621024362087268786169848796742881623239562605951740628464063108598830630714714599052267644899998484365049831905171067500126932441940432490917508010433173575613378579514736198982521863986068483759424885838353467636709946650969613565968043766658663869446101565457936914823222770948570481103259289397321133166749790123790366888221095700019986365343336176264297420366112109899032974624840404252997631443408853495895473751809139526682787673537761949843562757628068685684638607239452408471642016427373317508704684744067761282974167966677954261860421801647648948020503930773073006554167474960786129008971823933943529190614822818622679319857396931212292536078292092624558776097201088938734090309323506530305239938903634226358937812214326066048056845293889644962940352665073510639942177357205846918624465811735328833304212745519464250384890249707321937442347022469065959688993112059426470982212773909492375765043448614288013665147990687847259714399966370783097934783528854392386402071216426373150503241967883154354154140635169590736209096326086754016513676081075431928437512072970825602012411255528255794410346481065293303922142215881505519088087816293838480879310582969333088362414795956975833495154062685104543959165163142357647839311139393851877565635114738937062747203613249984920635657399031708782482489604610689605246058705251398063618112545915486781680152339725345538203738208722997932403084455050335390948182937162210524657006134640975702821684743092166133739600681582819947479793362601501085620341704307583742730605713635300478765736802506823910717592400427504621769769935134796991843699696461829873839875371154472095284088606452450607578638719811694349566385651483394334631582246394917203253841895350965254809274754653505376567082463482499160535138545279557088676393165165331545291622917085547965113652371418686176146951535833434540573274741060376578246797581973957596840515380575292826157424920825081503156946538671843850301061758526831947859000209425884829921261867228605674045381388265245423198571432826909428847166350002656347225218673417336394018945332853271642455357774528236697115012627070170651212948588350515279048563672343633364009938735955202608525682377213659523598964761222782569828383176711403579364657936540846288225956145329418483872636604583230395546184533277886505518376486209793666297929687888881634327564803004368328593736954588841549130142584021865556157430613124425263596671786518533915387261019134595195221069943229463639942600145302722450223150444785952707778988719447801585609796402728790370309005071860418101218719280060094517715119470847999701182315046401554723415560720815762445541214772436192541506890038568358038916971266543558929405639945793121383735400115064679241636839871466775175761045854499555885118656781150420523297207064837413358009585433063545281817350765358938615085000811202759601993585219290406876082699089701037117650255886351834970852824288788152234247155856328937134298358444744321765518595733904234726016087976055964925636734442675661811964567535420574016911347419699561657260963801244317102767142770953900791260480241629141622001034980932454486943387868477953172766640898480417581309748462622247179259117380105929056048105846990262083244812410255824615690714789489346628186431484473339736960621267744326237647120925298900343600413393792222091663566691710191526139819924511288454234294820196055287435574192165307235323920916146336712585640513842162449749003009208748603576474970455722832167839794407262599310759039283552105968536931463836196516103554628985848979959969760597703755800707589273211353166120667379960362971262848081198223553385601783998833191917153935267815039409137747104261326362731909656317524291479826386674189046355250227455224345590993332776749174224759584604696482464406708499999845398074059415814313560319479050864697170642733224595800320535445861162308522881285258413935102363720381504274919558622551952458394514448829956656995081268267980214788543485967476362069628207582763083319667689059960005185728230145099176996038696493699170004945960791413067613945662262252818591906238684403575441430515904331846453159627489963620793812362975492116767948842914905176460940867995163043684335903404120497493622777446431616477228498498306889051844056392739975734238249691720561929972381081797441385363260283110290752661378386260763484891972967724416132618645439187172936952137793944083541049911257972800221523632778673075038443574345380272387127048877486188466387175629730685353056061668123055526458629672147757576704359972784505806287614664685819209631496935379400065781540638260324309253428266887532136758861626834909173564235635170168996949072481902044912987634877929309226884324666498594339624321568510620701660327130506470724925024050552941280282672396079341893970522964205095818479858309318835124027583345497088722750888550200452528842001843733127152811244635811353457080146648380639298046398798622597736378752725949655341791463094478154734317771327948071647972230938929118477867706224635939143767640132169553200821845054312253267881154575152534899812640453494185924054075268270298995696044646943137082389199156878342278685315317972553297432291192785116027396583260821700487667994629986318571371379331331064615122855484332612189929418045711355485490872569839491430338829993786036523646350878384049082864227745473387844680870303982742752263335813135571455692972315261659669209151160146688500788194067069553354860457436611770211928552489766260471589040077121920730218290133788549955130518449607455616800435521179201290025087201363833881861338155571137640308523309749697521014227663212108134829979058601162555833556068853263363332877529908858001868196563558785187088202188838795840228555957046535429243966703375940554193647930580618885522739100051825794964909115965697816586204335961167118558283340733939554110310511945431118706413396434617573455821874782484576566265758433686445335847841787278789221477594752226034807961511632482450825738427338396466569639727595705187104341858293708776757300085899676393558416993650003198906894518066328070586509075280137343487719909581390050155150107472107263012718156317312717614909273121811819579728677659424231563895667051493266570007367065977552240577733463205500884268461664182458855314155059470920051553812761416157494143105303486080676195332912173916201430770543370328064816325972164185007471463493005382155496061258392985019117575683358920785263363446038484826614705071635365308331522892863767641911025252720956412552415392127040595800048697683397277431186145143305889948756195238581860989077935174170790316887495793567243456119912333046057352816398293076811753401241133202703596952316589903043594226413858076510740739144798794635190168782161099695901533499603347936709675776614984562936617800121584255817581987848271483120849936759439065807027008714853619600381263418687331244281315146120866733878997385479787028403543335221777956216243308419610420812480585871231308126406759935100627983964822634001901191141953732774073412160856652825323864853729472301285837622797322542174010189789995835713170281131965079823602169287036494450015176121601722605404639976209249021730085414597721444036693495293131674445097524635377298976692160030149034447646680959248022391385444380086668219425842509231963501892700574916153046081631802188585865983336026086118374048855431358407207265384105166917779888563084613531316012140410755611162532692987310999897406596583436101389629526457639887398401743735174801643356265153259035644527375963393927915809892130821794692787370200664309942592680298277614550202770753494436048070927603074104271102799641066487495790312102760028197409048724034653778286281194046654162936824521883902148687598258310530433620616737557161062677363686072043520024543676218078853664327120114634699743975148446310278861064470740830091062799788157612968565522722699978109277416952221331287375167463309304870254608460303518489159847042310238289341425242171853486078574645607396784280009800347207138216492857387700680065840973092513601485011192414390584857147504186477816903913398180231275373428942964152065606997066782139408734322361276592750093303527019279605735557625350313719296751460246709254032944358694620711522767378600560860895651528197637645887000235393625540117908882469532042725537499264228102399471780782800048191277443581280534218540530692797608062447540104413504959834175008280393854358989726950214341021850974692361234170905080085119461388264335607709859061609370463599346471686058303197538797115822234510671151897762207792586384363135350912355843631876918775707010126000535632905526906416543199784923343461329432714395270666047111864727773979254798488222619329812994007726907696655609775842935975029529714876393917148135133715862790907675159166834802816557594906893451966782390986556799741838647730857604710239992560259700110465086751375313057908542815532591283718343940190017428359751193632085081134196515797161203306108773687325099334156261359576577447246368980283967614680468632906700692874178233632898263343757554420090178821740587286964134822289006374917790483875483771442274203671027055685348666088674800635684532809612894328961595944157158784952687785006240188095909726913936033648187517858004843992072396718344978033957662251190539316608680454407720523767871430311813321969233657065915481989604009905817728338555416141760107999923800017966528457693839336142403116321175981168853878748527491615283926939696972925500362087509181135254326618824448136917337910223040717838911338225303220134726472721539829717572289595988041680121269371527298878562781464818536735513503466764792732991666435691074910980914043785621638017589530691131866183987555748774622521073046384173145546132929390999301665247609803154963287575973011223437666560354629344800200588622038586797017078647945181349424811230766630809149348026983936348982756242782200200340483526702913441499723161621623640357752502676519871285048342791268186831076982288784783761515421530695313238057257445664758299020106492287253338747414941322926430783807980911392860495918970520539684078532697937164308490356824533541580497183162931939054978838629639765604990718042770762070862248947184772177441456934652047856224311330486180443728394271547360451947317655261224285779483625220914521207473446231075711062738112272142644278079644826333181170669031675237305364540556851579661994589787857172364578202437479832519151865419326134157712648351131705638605700676731940976568962489259779605444250578819254067594990636113023567067321612480424383939644997067053626742511768719280569784841734076075877080558916978187526609794248673605892663652305172753182878248660201838885132003814065685862562584440402367544962841120672681984907872443805386688663007072387606576640160767022076502166436271260607614055656407611326556759714169817128875188251341634204699320051411035585643527264274497706577586235139915908679464630098851088335187391029907456918170092765832083040521635709059608687364677657342243308286343663215093536555444218075935867170864317503635983183712778918382992247813519074282081001720593961869105819946843897195348611339389152958091004173887584307243863768206507751888844511289033832929414599453674456904905977503469925660677659246593556566584081877509014418931760760728143966719179946060813123703924942289913265930220506178933752319087581896044337059090150751684881762366240161086518499150346540535135198551832114468698843527011282805972044992924549595595420804603581769340354704767475411820467745311035184882845885737136004015256279255189697609109279891483034673377838328772535036194752450472632886722041693461401322038246875284335028059462347975543362012659621616352418776877067167271670334641972066233969858633031097316184117053713969116413323425517683691583972389575778729674696773939371517585609607424797849656845917402612773830581301885436610460622086819867884463888738944194225358633345751706367198825298375650573445141306269806836627389904385318246423544742421248211230480139404726786844302569460176120782255565245335124266337915460502394505836310203599611504209393829755088920821070213863046132610633758834405867486697989184459954469980665715239861121821354367234013871014025258764641283802946029973042507456705136219476534760685101118096475282582408872456232338381419391029451229635139992819074536204154267533850434554688025492302954907208941150457930126731978108440086931125611897125375740775808680799455503919415992032795485148466062104369849281986385877131581099166689497655005879002783999653677431048242591405531431848392631210662017383304735097786251143912091711339058961205170534128956317144960719590406694215323443497105931662216074125727876355720314825786608455361693652004421628118213812532814193910606687440913937019936794682806684445867241679610097999212089697625596894065537646954618214925719218283352462882718956165088395138382091801661706985877054536534966177821295949856519601385248559651637899628910903380127629965619307607709703087103884032200629700763888300739771801480944379748717704909737568478363289717190786478203097194121243978766701895349511180521521185172953517591091804096730578453187950309022130097110284208182534762950985977731039896071692244470722427059569415776297977858768238266577668866092816381035214150807365063628520258069566363858292824398741580989325611215675425709532644322113451824708836551496367784178214465821044497466071579734130707373525327977693063787809517295983280196995985682633191453738453752042746780297116894840444379629042568634215740094687442250851635393367759761182500129249697751347782605158068339078516358363114906877454243490260813138492740870784226219114048158621503716345173820299349697457241083448389250404490028576974117998281997709494549364559020271439908735887048870187825432345947158699429893296643153899948672717922363067668695738026102960587153532333989026959335291690853813707309990235314692110382867521309664973718644501018935973326399463667579223870610858026092778873800975755185195119147720232749427139474175014875518201795233465803694422667225858153235698894950350337167055768099409115518642632377252919909067361513166143265679738719971582166751166214251398402660751809642137174253164170867248721316584121453246441796913520070775838139637289725468064893518610972854058191642102919506456919926296507912115416390135254100457985051999713232407580890454562666206309933119423566009007311801203776665518519806854471663223432544083364899940942774632452909425683271086425518104988110842938692236090835227734232016988989544631281201942692118152193840037513060857040344713315401892006990459247096553504617678604723153427807203152712913248657692912811793736466613582301419928879554768887013824762093693556916663476773986209546663196563298744929909167792092308654534172241902404615920630448964598360953570614618817512283510145804760192666895820522010147339237115827462183371494869632760193597910281528175830297842877587010922269432268831172452484075519967846667399946548776139353790747619204632711894133127927202703570867188676657815528554595874982688823606064905748352704604940365992214380432689174641251168112109618941405342411994357514118736394913673272264602758865394225221945596098761077020089473480780890113119377746222295756054194713209857300572683518839914911487575676767375078924373788328009081361396078083840997393150820324566137129361794786526126851254506301718101974119901925464195043544951320932836888953966088229405749575913298938238637175212818932394298388146767531029307534027931962300690276376666636536037846608327889276545018279619846782839734312984659351915551943771678766234294055280022265157153324046856927564910874083228107512224776545839551816445906477844246855570844894615216323931284106723195600387929074317607718450050641420140895195902798125434096875504894491691250400337164482819639736554868858469646949253863850884361364048195768616289760637269774489801504853462281131878238493433586977123312511870452383953079137136412240150532598083467936606061748259191228296012536259038537165253106887907815785987768156826556137043644867789759591715940834744799777029706583690638125208554787168456799968975324273524274985955108859711363430414170089646174643281287900183578785943122709884280876185397171179261757970091949318757671345141951817517303904533860802160794997967769396638758517645923979663248777608405052350216630779914350711869114727016544061225435973285448410761578196094145193661024920547992800459934798787218845434655146124476080437264271369228951117179040053240932984666466141436056772516837997389994146449634093056673257702343352456337234297503664195521371726585496154718084343186153935118884472884148025551272968433048472803160526392082759234615495011744709878864539543689462198567131045448736310843326195420613446400834050743198606721530776012081354742087852029201117244813082786818990810317642997691032681443986217339656675272887500844753018414757949990915509947056053266421023991535594274396641601600228312860980483665872388948757958859734475564528540295271524476666750612246886055315563485469737724921398411990061017475797963225504343471827339387007645477561700392473689175614591924032949160049291440304716624887885557118636487593376934696860227814425192004000940936541712902218123228796247357386355116436835438894945684490383303117339523503731573490272686935802734502611796251597762148904539199404471203660726168053729706182844905415330429158722145945144658840772512908534300416323899601401251645543878818434856614758873112278732817844568632924826351710830650971815797433590185982335552454488949383810958578355352527748752518672278580789340233653855389624191588453920723541849581548067188250051978247016761736566469291088804701164286438055850959747144102247254763834592885749839833776676562042719805492489402731472471623391897433167380166046166654762947504915535762828694296547851691518080221242058108910712775256708861858320806780755906027882000666443259244403641396675195490948655038912738321746431613538771513670052371778891875343987343451023079103849925721391013648588748519113092179581391192941163129026298790425975012791960258503961334098467296120152683886015944866414524805402061469306485088496662920269949597367107014843955607414494232703555147005455217632676313142640940484170713015756554963144547243365170513090269610230813725031368625238359075922318199368854894634934064524632685753382115083601343295828813115272854296069864630559216621631354768151054779704649999794942595851261525434668816604194892728508983720861465138374704103498560920649897719445486028386278453025504635916068257253386497071201058708086311269499396634464810026231123845466480690331512744947951980556217329699595692083548147708011456736789391795015357824260409316102608261190950481182424415027129307773522410143365694236746868534521842566276115579795607662351547483265025627885671551916853247024107809038787671947651336421840159429656396218868215097129475505038239581985834039462769258666900041546470707234842467552591550649707080926954835285113456168931191297705917444799727826851366702233465550672167245698378884205267761743183020995939449610454186115499461138173607136267427954837398572635804416469046612381419485350747360987832043550339405717671528325920928992154842972124842849600344086819654432308875161443911943267314034356731907292250091811368164598728561265368504352101556712179234796958372839116599648742347986668403553892619787731533056761022798485560523914182283152402027824467460371966342706569787351996876652261391265049644083174463599216656551467008931860007824563391360779064844939454640862404897776149696471596302740707332340095190696206824244194193442551822917499648493415547863595537833193052640046290033594123637782600877812334524306037848366138100838570147573571154902036178513683236485213662393047182459765204715694506179248085818750595360434088475787645802048487467067045991553487851334991084705345859494428395365243282344016959858779293950928508952460368560150578970393954858712898781382518361725370839707957184611126395334574485337124244388351092486510882800312762455340100524010714807192023848631581969103988854315141025833733123803004054283314488577720422157934271158693127916916231799008825378327564382593959477287089404825921232588764492485950548426748816860141042354636381273429180129809191559337139217074520321171694756682333852045929373149255606706372696394040336935211678923292653835605282054901620992221936218503959683214778233994068994338816715231147575380861607524762544821529544738345380378612332417504029959611520640422054804156776774800811360596893849281618633423171158582734950304449516393005491932386003068191792119500285885026141130365647868543055092559603398986173016622681422758399807245425899192910540450818379161579033611679422835071056344235668185622331366522248023880485807848395413190567081755098612587222920869763102263155663958354479617714298143951500003923551515296732787543812094450196378402614985481764672942307252878204268567172211545829458975179650780767475835880818299789453161957074895481800114765194549174554760775225747259439293234495375440263060308042163850908934245977690226044772523423748874324602188928385678965419820281628817633229934167347428401064250708192078866007365232410642213483255736156115155487755867620717282330917123935467084222688329742852764768625920351417239011837772481836479254600715349671216361889966731400820024441402835889300017877886176921396680133176172512817551268598044060368509510638231878153890551067371444578592614275537216838165735131504123556649613529900405976868207918132741603183060696031420031311203562914374327264017223361412247578522097186647606400895927717325124789812152520024742832505820481466343369673202077796579515820454307987330280305946986799671334995827533548250946900814671827379465591968544639760013920341806698878785130504346474301417675938816588790362268404256297361076014082439885599536489733725591749511779538559160225670157998460884274387067698382169672950727105113709667229754416884574156881575105118869911390293772750587197294099854245130373034537738342593907897003162379536021788355449193038270168049854687485595529498597466829276405894518409414181847414740058586062333923825801861797587700238279887128007465970797535649046323346361449594223066502882574885520583182568933535494133241638392144223355841586395239613820271660388934945577802008504667560991186165791607584207820693943157880857223117973199803332236420034337072032488119619555507849046789868172978832255196507273391992357490844882312440347361210918942903293309271426664407190824869143945508303651250207152404949470351925131499588522586358310322901927673387448931369971918286823071291765321060268688499906354119891622220894345655995043603001550745514283607519462215208784748632343137729739264535868014789611340056191105199914727267213122082389543194029229802005878195842571045661761277591956122221433736011945278236489381841469861916312356140824494295009471663555244957484171551924720572897831509292516932140113642362296265186941179608413283645237522782315221452477768729990675990131002459865903221887151646128995217679451117865017645677066576406095246830927435907933353606101397447983677339337698262057813778836427038848885804445892336310815561780913142035862268773962636197722921548051203478321663550537374695287087111723709227010071292497682028606474034222273664253122604725127667440148139873039797714456946207952899526804812654091980636099978782207298384923513649647608569954250899704400126610636067974939661897436551204076040144212703784701460824719918835074793338121253378800663968659364677061996328687992676836099634305644448660813027768795681796643324312405475200411725858106305681424533293663688009903752427433786565961320981091761307556109927810405102240984646056171989392028640354943428032828295290664291480975465755973694934249997808287386153588073444765408426451058926097412610601110551757929361067312729300018466078819360565139575194921582606993356287195560999515865021176064094412640976892709707221668237228600363319487381805572221376402865872730882647683357121613690277119577707561249447599643837762799252630454074077868579310476507400415970297918662252132150362253982367270377410747643955415247912599955230261031838164495936257160062940507990560598031049949076961204252319768060428239139781848424176017467761934366372394593371811497031097949578826824330071201629574576405849190746854432509530637059860853858267658342451179200193765538967161414532025783169089434302037528736897772959003803255363733692818129804974164406346644162929423574063697835408232291746652512267605829824110077927842521606303771221328594243714725080872142092155800365260729574230713610536040813921150655613365184208220891013433918095077399865706040782841873664766508545639423687436375664089058757981741663886897381642791979831238822824703643813436241704795036561874053111627706777378481238410445828894276162381941747527601541257622346279535667666600220416606543137729329954053473725336875368717509587130675569726352175257127488212750870821829622713834952526821066173483454717588346699683774295875133088723612837844335641970765089551636323412301771592788100188489118459380009232874075497414344150943208523971825190205315285091578630349110665715435843392626468388721005934789026620645220929575057236637704489030523282016270879409149244643932959044236420796820570116366086266328281931285190850702719748714096414227151289474971602539303188154901525354435355821749007772487660665567322475502658492637670852135188328632868635824584550558937330061376889813430106913208270071130060569188980366979287796509544740793907708188020272422499057977883991671066438878339578179330055512962855014694294609972428512489646524879287183897596124171670514507134123952996027666240626227448049450366206872312697692099670267717542286368435303729224268430625010801262443550659110239783684090801605135892826989819956241285526489891586555048528581937775365475909371288064261895896799389077918043270388713261844674768985014039031604357355350647789863350727433050843653084475128875664935434705580499361736961380309909953358117703897038142463962048419260347201777941197361218343587244664003439387481629664222606712764679333013043370172854268526082227813724574876642860139286903795841511951533118968242878226826176735401206905429165035718826845429215680750084147826043866647407992923441791710273099137317161633887909350441762514466637748136467246891938843914410024621079945173491755138525493553186533828862289295616792282838093502039974903781793324010719296248697481366037551996699522743853512150355610980323718834623857713914349720962505973404726682562918093375961720063377440454530457534175148017019014806492268753357429171742479218261109936929319003315938179407811713657732102227790460136431767803288916953951103149942711341208683570790427506403413791429538767759333990936356778722779748109224676779200060224061930966329773272896581048839724437511574860219253853135399542570359982289996881386753760889519291732992167489716465027492123394292754623235441621175504455767166274267951835654885102706942229202283797197612325929112622635145164617620372844747250135601743492066098915369687149288588256790294465497583756402349789431824408253135033785039204761328496655339871346604411357032392676170397141111964239119597690862715517203429992509260235924827166421240298683261226596961276616676559438931798673209375479670933908184473730976372260476937090758717901759683015933245649843005458342579949117553512889918532785898865002308546375660737285598559085328298388504960930722386600142342990408708553845141707977431561134119076630864235825348767602965318673006697775450802136451687904559331589663538486009859384815997657369577914295730562211454562991197500161399661203016237664687235441022586636168770407993220031318892332813880461801341077160853642338671323074523325967080420617614685600357049870511342058250509036185454527378925247108514086025847098188014620750902378019374094088750228001867435716313488668287168687936685755109026651441651311820996925542970965560021387957673030212029158959207148637081358169121625244271187324194870149877182818673884735755085916299011431275762617722246490061733502286388805255057454752657303933690445727910013789967103973539919523665266458208384637931847829943408396164871950924298981414283545664474010176836507080605128398772411626679580505642712621616926347265916042493957361144731846635766663084969031174665657506843936695242466920771985370934374628029994199820941941797272080241707578610527138773672634912593189665617526732818695240958096536918093658986643810855540387430720859038443281471903813528971107840765004743779596436504246278310505964488564921042022294776106456281346468198336759027731042873424498607657691167833856917470070861179220520313051749940873777491962395460347843123171020618168811812049797673946597146699735128791178607743941119908932709484871988779998131827352211145721297014049836423204388279018723927827577069907721319667407470832877822366995709609004214116784888161264316821074117783768800119094865344418003229865043254279682266736236882399124630223380603537643011316559398780916623330006474171734605181740735876514040288191279339894053173718526707879190152382364111556419941865229630190155146546564379788901122644719563113039730495428793582221495366239916666003410796232257141821131184933368566339511269957366035558160907653926513168250689326265218942333873679777141362784833084993699782442273307654966911855664331233669540467673244442053536289178384239234068111626565405482130032131725106184306981031141185764101872029109706051445979039509568028704658734173739524420522454305357995952451317934185986211207749369391939756063999580918274548113049684736985763186413526599840757559024108190377083894338844668808442747548183304017595571572250289846056508363868020645462363126480522374516340246706808770776305543351190987150851030655032538737361080308103578729867120466504089338333810820910005193424842425987678820143148156742633278122307390236481945927312697030950786485737497467892353983282743760750114536485056882174432401026553775844679178728544730761265593636322823982325871372658974821393838910916457798964674330848318618373218987460870563816625375428007767794564030742073235810899541557044004838390051035248186969279864151148911632229435145986509740902817895717353427827394439910116137862477257623098186143489819389872931388962095313706612465200468110220183345477167862968341670995496566028578577843514056602580601413529558792158145595342793043670885907646566874439396979652539154329577589795897242845579337854551776484744055065706409391653254096788127082743545080711143477107242146370220760209607710587062993757149245197177188816105855606266445807569923892040361271907299366404815993505069259789494700784507525260742585550484290454356670557312601086294108082226279645198290331855198349354417038568050692993483279579217348200530004698014181100537081427173965190384268282468275958582543891980557356653539613280072265273677878163065740968488168467886981366085578417831571847728293457195191735878971701823598255163220117059166040085327951284009542057050443846169478892296303111505770874313899454897654873333249952646736123727454321023669504080252015107407262791898458130825934151566132376833744372662618711407835087907494415380962968206178210004090586702890961856100260471852146700526220379881344940951156944569806371777005686728149261285036007651847547913072035882221882428915234274147237212810571998063347360202079183212828027267102301345587844000718981874889723250236341508429415594511089420842618318165247148749258757752341866789428533764535224606015116398401110178277514239042523186827629159983573070449759179391735553867996729872120596363178753096591699298813337398651798685718731936503835167586265370224129741437298310441482032430970120423104074231620660475560261859175362931468254762453574830437938447148218647834495389408219523829524866219231986619941639269339481839854204193676808227528740630992059782203932568818850357712485765123757785602504712557672566138715401318368981112350122975200671804602976038723760603986120437602664439136492157096437328953180691585497861847784006387134170535394005937376863645135748289962290833672132786843902408135956962841562057106820122359365648604519016197354385315838230028458856935280948267343834913837329496832310113411570872124449866959307996424282364060631527444766532213844091679112752912959391132277861785637331507202681265964578352598679253796832764638754576043993807555556664997827057657824847215493507178534692452946735389674123224219405869382555227415113816879479846751635673330593711673457731590757189203992694979595080306043442583717292647484237043128455707713562322243592235840307260545415421211367851166114160209317169518655905045118816658666751417855635324243322314670023981008236484771804346084630825074695756574839542332109752973504932041076085105268296766055583410823258367275497111225479835722363918474007109170488976417563453923261833565752899927197275346787076023101836847028998596567734278678061269741178638879650795420681293523405246844018698193861078765745225572379578474056442001819767351399893469627454287697584526615866659848344951700109795769551737217596487289823620181835404992858502677039443533891059465485377028947644706230389670226232115519298979216327809274702657789115766547670293483328702326109858110340582936340229233671127320460544619729608961113112654033996232129671430365902657646115455700442102331557215997318955445121842296455483414744906846221078076163741322937494067783991032449770603572169043769279662063862986135904802694994163257452697140823167258079637732285069414333669244187523300122905357186406007733084609335122026766355514963983975578324275125012575612185638956715099603358508250927518086289175431370599582913004263247860923528321885891860506586232526101478353719890177581759602598249163097107239457894092452115367305489942126328296849115938088943964694483776681629119390481485827548853095441197709924367923095705606307423992103179984495940915699168316300614933766147149800006974760508769919967004433374916618070851047704313603240219295918549498575332556691000409126847131417715807006740764775188534111740358962639775937704589963023791361432279192826940320312010907440277869312698828351602529951695780279124345437445244865287666314997489407826052276609419973516934418341126040257662168682926416910720530732581433137237547190152357177417070001889917924599948692886578662833049542115361424721906330938252879267894585033089508284086027116947085057761903898744272099033144623871894840833954670562535867566781565083161671639882467569291621926092787617471920129422430785475652580086758877263572288635128012736183863152773603286050728265342972705230380971756587831384576162157250202591832201472957156523604090882148282365010599500866524650918206715583422168215962385872837790719221064285077924184509407319536525284013737752975905759090417679501668452498512485202142746501841064029577213162053343130112280335037250554600558362534952266821972059692228749689387634817721042646591193561860403759063623656787637126220696055581673082203185447400407680540351565812846577012188841398841145560960520732229690029482946080413366664238726549238983952870255745721218280391799537921010853191109590123553566687369961615223267794066543553244686637328850108600947260859997613716160190218215334481581451708114699867261770782635738595596612882983321293674066443368434472594154388561197090458131278107238020875961468132528346051303349774612701668306896401715100840857564529795817037638963201604381956301519800421986516730170516566160777629463199503100917799035548987569001203673583489393511582588145273121777731573280432937311290764072526124307615966683462050212166435920793654140473020518774545445664880277858552058266607464174818603863759778628390768452541520594098850286037534332405379960649873164430706100524334762950692938777553316317057065769140389257758141108375584437998401287281648877049618630808733550569333305341997288213449164253918724328449171960634364304897691771847143015716135386029577185409852860203780359534807860515954634611653159994768448274210751297899888400763874323846286988500337128959271572288196617795680821162517526663707978899708137701507188362714662069701992282470683000283832044686670788576320962829252598174990946472194092123802365366087561446662596264778258516612619732775126924332489026539462863144890628469190848759424456231138034288773356676766733735819688567258871513604204241584913473511160223910431413852084933563855025417493633177721239848085717391531017419353381249338323459251089246660580664612600961404731536120266556358171561025555202887725044180226345780178464660269801939166808965715802394960494587022279214796490967998012331579173221278380696331457536592088432394948869517247536549862066882964088387990997243454386823831716381171224768561089903514114771774863045684153545041687914839137122590959395292941440639814823471195329435881960547609846634259270236164062645887671577608413099904566121345731165367421761953463355696943026608117274870730659171290018815442405257417092351150466173498086117630452421476979886001484333427769789819474849262149150952387360405379934506423136788328697703870284212762261800160125921558861986291530289900744123425213986544738200305065779272193349577513532949877188023529936521259453486039761261603369291031704218707281068053310111688449470067648522423534357414685421317305587059312593063719444980177564072485524441937007245915161964952251979215224202180154793244065380475183397023352481733033729909391169543378932535918864871814481310018328949155531048079110565382053095595318964848565792697293436938820040630454731256311980131201635489815383216211181723426652601768795524823166439579086066136493602875975140684580502221986755055762208056786403856600322605986099870581904973584337982610537468395565211432440964743140465586633238302495017656990284399842951677066588755601694547445535659994313367333936148705373729205172223487210955316700388067791059055755466031876744791148779195789949488144737658031067201095145524496384261277331154049278794582980686384387884545791364217582240895677140603716619902640465841024301619327004051636748718429625019899747473206852018593776137725046645308068629893999369875246986511213513919541165679435249775941053778220938366339530566795440677591629124606487058130767060542948939405021896372191752839576610654545067949803641366371365175745647216087739725281465688346070418117386601159972671417620462015778097037414308938488701698700562635422123531392921627874644998410788539806478530421767090286391574326002600463451778629792793356280245760162992761990747192189503536386404519268296268686027822355659112105426244056477632261517107763143377314173227748899365285770514196904628193777483540757437808024355936210735743270987969652072977133679125836788756572913428477683221039216262346485253968491497239377588969871339325975815914792926809834323642791369281468642034248988667010047031444175688579935852778121747423640898129487486226178746759355404616667161778345321218602444313323277862293677183435025549368865063095414255602494413159763692292313305789684066920619513993049026750111645068797649128369940706242267629587472548598460378374485069067017055376757001998146601360559951675470197333411890554265973791737684730860465161021285548770659998990406016212757250531831638569832759821407172423149764068497250034696940488083221868169344339715560164844221903586157529460051687126336206886353013047833616741434719105078222296302524605947565540727591510130094871860763918887210249457618522107459081542747600549502356872837595748840738135964550180344018673399945694837139512850446758075451281942663316508232598694386168051450024000262319645072384337685414586347974693291427664490251339107153870802424620079583065322010140577608181034817273084165593344851391613353823222122151058964647987067596858248025837664502378783259510654135681057224372771422278993008205960915494888673656669097628974773497531725954598014560195230314457410807266639746327898576798206803445301739478414298478648578848236763844711840215512032114768466750462678330128347218234174109908012821835578579788684005907899503088088508970537818592334225147168174098611799898559586930772272862507504528123397116166654711777518768624480540289163970943655974993563358082511172711805036707936924645836684596601698132361311101604816226262931865942760840676837658736776255679731818984409364442341217836197010546022298363454974681374949818540438815345027366251136460335170487751548137269454396580692357041962851946930080232545540028344653878877172730197081502420757884431758321212680295438104685300165440017845487313362135737826434557480043430678767567272054812622151493704228172145217836173291528577469513657622390076035738549791380048573493685693633747873813045805071052710786647511747824480740763710137762167898342906187949400658091324843676054637459860909558349921745049577478306194965762733843812821133117419047351862821732217952122066554373951736805221812471587223870383404444821204676221250089433951657624292018546917233792561915943879914244397129982172725310965416343934590018131358941514825623908601151634601222738116539463442222328078757859045152399460996783211980326444698115941822473554042713306621624530031971128521228485681840914767889081600418892864396463896117273054378973934543243373389208688755465417957889722587385190177991770883605162223622648788328619172584736352874601041000516457907402579753819127460482702114760105624700759347889296265739083165343051526220829874892531722978475810650089396891782089136250193454184876496641540303936317345258000707079128370051633210463918046538401632479036626501143551928119529804547736820805098940276008027818790986553777279592147822887575635592531807178392548720844359921753903974060197461181630539528691057387108956560957546849509613179100973275784054808753399943375221727140674074872440721964716893269371670662593643130001948298842082529345655838617253737439998329824661548604601755682920789400713921669160303395432914741464457018384260792248168754118973782106013260975445031296214814324019416062894281051646136211125983018900047389891119761963577334252664180855456459034527085043892823601123559573401121416439064643694872358117272097436794945237760829432247915117905678220168986350209214664926819250403182319522872430716888826559322285005003288368748521538370081253768011348470452505947055515897530980784773337355311702629058918897625138727433090027435240326488408461410442078708465580318708057480997154745782193978880722931923034584307128901225207226107910537975695817892184003657153113486494967274738796278811178742971686679204698132972263136496739078671717771838959678402140773250750621621199820739831477087947980324628717488634682495071826878568988328985859068710883722249761147779829059318688066217585233441864457888979715188748702265339970913405087221673616938473705708525779346647752159151700191811635378262646421833803745508953338815217666667654825209490670929334316200805105037861997856582577610399682527320025232812805538113035502675959727197586941446389325508966717202276722484806873547675870520953585918109032721074685699163760959642559202616277103997030772413208873733964888067174887774652075488457052293989640643034224898601252943119634066624295497555892941679671606765777894657850001678392434309925248264866645842718549730557334423075077388146233108231652468770328914573237437854315291318349476569734930553125691838209679644267661670159568085306385189575501522886568777794641208931168795132325839249974197891869865437450555365922442928017583970949864460737111415236909990963188126549923860593974155192462038108907852637779818459501733492193031762405017396393690904072315255645649176471909044246594643277973707276688006805657257272852077158680340142160709633134920496312903974760190656278796603751768086067748390874247252520175435087848002493688420101210089560996065069626852958840444358652792089170642845662877590660557231179184386767822077943939918423246493665629468719317720296702898124607136441773362399005440075857853756354868858133789156866990137297452993554022422030347339586199507043256450430991789257640540627632645173475982329944506326578006815421182292227993205181291164219734475269845592513252323064155845262881002955805675439255631589753894012248161751616377938967380831289207323183455426697436926357380172785067139617254547160325364981250814704379517215992790154616281682620278266009169308564852066187893508068936882438192628493615827963945054950298838501934778066185581696324255822670581166272475731824550821076951863139164985495220267752967971560048491282161707656610756496545065040054952455632587777016235824168687200134925455936436178301314353964961843499879376794396815711544515753541125498403884566924601149496419375443659851040129107483406218181876600361179995775825895776523143815649151879084852332531095394169384358868437125553186177655338528269092624517663676235041968944694871522188293567190294429460257461496463528257106059219893979918939363484579626213088150012480176357761844484646131768600253271258579674622679391916675713531863007010924473210394414103304360741512197665235835049299004635114351097151628084908628018393056252374494966632085152465920636928932665497757792939491856009831065482871387652381173607278665399892786625990952431849319546333245382399844109698654018914792989909404105158208321978151841075619928797456440277704615360891005334811667752822251045568438950324407911443667577048592840993284128434874182127087911544683106869327086644440273314866426867596273616577727358528391882328426484052903731403692824712264413709752956766186175517727545501982220902787288626607833164600617544385471151342359691963430437431264549394420892366127619418227462852033185757040418036387238154030797713219773318636290352818832011636841638180580578189831565939743532491441255665348129356562464953266977112587514207208716902794582007329754239079808827796788381153922971939270223101588828007408760864029585886574346748930598388799537418111890973920891822069121578585597055196453371871481970709317402826733208306717113914716461579941866097145128690280758060326891957983655473328958724417617449871415027767529361884634266252499314349404429639124166476637256037189998564949545585693735239588023127212970432859159838583953204341955909805406666729103493596450477625845177624688814589990373794704071486478692504466930917112333180579535955009058731697536686460465618803135654074432100963870413524272731828966426504077682416417627425889188594556055780034070142452981068140971873547048562113121347295180533060783189644408651565070434180856966403438738881913329357856093718322928357378504259385215847071768812400261564726705533227805685383707978205880925633101228198876538446877117837047594373014939169400042032490458777077649244521259834762900308854594338033161770512124401421716807129692108597636606949102130217905180980152288933649854281339280995250724491446808653038036822764114842229960574429633737648121067524938638756178863555124702403889256593103851122876827943977174353743491484567382826796198385206499502403982579587374901916246341677085044353590362459583624807822041716467813730384796652545750690432251130759929714900181883831296946734362379879363633246215009556552823680296790515185349576614852600977801720156565987966334429700195305577418383266238935938680471207596011616512922883331774418059472052304747250403776127729562736771780732385314025611348072739630891131372579274710994773391553856180954988416283948584736559081513271372440344416518253901552492865520494113239324480961993497831446516750909998351197135609515918372968624712374047379655219563664270043029199445624469222135325429862635543239853673673756271856982407462054587965721259485935790750274390505452318915095731643110913993255135372656189588541394415824354356598582308113548235151718261016060773186149002823952782789404432032689171814775818114187356935614668560695411282220026588966548932040608375390087194912160425801197311553553123986654608838820461623893565404242615467241380856420378272500016842226178063662036368109989412016403852074631889578861776600077004339481614890481786953005591203470552537112134773871580110842026928146828490568931839909104171591688664586074876287661546324547268819809834836253266760731599580817020473739747622030077527279686230660978424109830163292545142588203495717480528216148214186763449997668241779237961469022408416136422008434921226808511759580292017527791375357267557083225269072318113554035639805145147809156767249287211573463730969165084097542427110679339205962209994190648649933454164269626503277780445547044994047924606104050725056029700870135308480925362774189009424019112489675917846688802540331645111708665447325502180288397830904122575248362294785721311555968029196670767683950064789277759640262934156077939937881969688853583388410419960581581519311278437591105332837535690212319406808229245220913221567166048157768285883244289896112845206778370408832724034136503555478031381361959054666382947025526043166937196243615774006104920533553022801597203430876155469663243210820350207120890113932056827867057647182251910098971818314072889722639433015618447989603371383100408234215570362362972118189588250277197144909211007049548186327373070228786431016272495250250216053368160271743129571689930720683641895949861780473767800968891502945218937618427782284547057361654526877556112850645021665155626178597140237229160542616402338081435584306911447188229703692407947433510384648486033581105203037547196481365417451530578020756515134439200499664918233759033887689072734386118747825921678091658177284176660484753234225593829155132339623176801411725957841638827685986498842414231866104664494611601007700230894363918898254099192553996607320476826440949874115070672634428840733744644059234099988153993480978551203366162848512932647907015975663258907289858221196553078590111530820612111424793423715212838312126916266946234326250136117017356207287534499237532571068374798006381175098654759245419285287151667907146537722234666144268561730883714400566277667502180490740131854999517883805292500392274241339732927477389335368867292036315147227465890538274422955105660265375908513904414497960303738316410863323089885043546214719026381334372980918196927956534768394139459211427923912102355013904067738380616757925866884107380386236981786262321903481273738174630124229150439063795969721097247741146236082112760729954467701272474042702541295208271789864231228766133761746744067213388781227560951885929326742254371376955619833876680286328885301358545081568507883149089243402846334416396275299295490407366387841980543867330266866585442923937944306025207215226134311136165154544623819788693601553395540003809457991221915769893501933882547406411302828726052319120526082695044579016697776902951691547487350888078564093458570864448686502581156322906158443606424921590546624219672071411037463995480866358153159445633463622417415797537236562456531738870214663051668129052738561983119612976109073512200363731963757464268644865834686352840439730411008180648742751947583240664856684969421434550148796135581476031746572848597605012750236192730054590071953005268047895899442325347485737759947543501362728814991882481588808216647771609133051364033708952455256472259309967824052443243135084053375796475848428369134464639424191402130757447593968977333911265324537702487269092494955569529960934092049553066490966640645378569078091118454862741096153348787335184565746294861354222474764513831293283737093689428058208871115122868076103939343456949425589703137404905960170194626107312849606176174573152721687294320430437225811336684209735403610644424608467783278789702016048559722383161607813769642599042073590011417851707890873963652772688042444191757599639619061552966960156097561131274032620005726692511377912900483376658452285986300953066256120288334354661595834513957555120505876567928181892357850541802378454294827689356262912001425279852196857973202582680063381349881308881083103171161894136427756946235087322323560437501673770537847203095540133314080085491348086710898037921745039301330474055423376028701348233441048282675255349310725963724154621432418719982406049814737385535973004770291411348416492987061271290418775096926521704296508978607698611659133443392086651325769159482555516078776967067636598442894779890916821411622118701294008604308721804214993439997637847037452136047356805625035367654144858481565050439404301985923823439940483652007556821081407242452942383270479622420993356953408076284773683881522329064211584863537719848067327898298098880737002359926830328485605637575422782418476625509443399769968963642760632591862653617725969782546078555969720438098254710007301363884968350165749424390985235102299163728126868554330856689150545137521609436743836506209187497412164225057695019255133356380604036307308196103445529147406141554849824192716654298883623656661364799673265900561092779069401570159307395813266929834228714747934999308772539071475683014684613808288773346857245637940594259835513765199648814104247433740411148499252089278232295401066833309047765437636270866740401250683486216189542499250441922454944862563886463036478040855690119958371602819184798914883890112434234410927820735962596328799900834137105203303426947303032107432036605647645421032117671068422936551160829509227719990750526548388793201305473426741052021731433042119440697171529893303064322408673594655126929641370699527113975517398020149909033167738493146953003326480211554544445990979759889504499967834687897700260016633325416841004525809950343315293440332489885121342821681287599490388992966778537215962660796324595633123885076427322443792530086226765066990221042896523167545132673429673854164785192950790174740575228884233226774356519895533518835620102072423124466733519349375271658444631718514677758826375233693228709143385194877146424934699951454557865219538048724185774932293880381086362395343530456518304554046503927877216532790253153671786144055250288131030603435329656814238362351048125642411606580684175513347128100307247457140067446774927663001576138338445123142326103753498140839557307093500525605485594699149850851067950892092199927930405369234724171180037837599820041602274887968295351404437369183075840189719890786075126400792634596907536348527155740472707118789927148560079944979317655269473323985674043175177830832846242960940013130107493666581356727110334331420949870719100369350435966337454788992447449153755358410660958777271937205775165502961092225159578475048152717996866468070822657179012428271464505991537071925792489070281378848463459667940550681522903236730213304052253919046447047666379554535735835993444663650568227042558121583697226280449059743049760838533049077231612429581452973719259833311097026610983949525474353868243494099952807394259693640322422475700459723450138465370610330543480245644456143643926386428467763229214711466440572600140394201923048668067067723340326833937135395334723041422231413109963099848254723028519922821370724147722820521163463927256090891344314992023885675047687275444166198482777068191167618186038840284291838407154417731202230477701215723759629969170372322568926315646838604793249147897320416696910326769121009021829531614190715165179126615176413696769356808440703377157319969333019180683444778594881361505633144095346900032235451782530941528276573684428177920427523778748021907459828848211687287605288973495178880028268324723460817502817842111756480205545500436765269294947916675528111128927714248494333094372673686359855879787056373009905785580915830044220552117586911043509027503792249524647653520723061543463448663885214325887195287345186600138162354562576326088240212793065793930701858650391945216264364616012112583392266624717278174949242797290453612251320197346981923873437025189243964216009280598794755147289180945910497827137181075698998561746760735792705441285408463184868715079916133872213727093563316443645336013649751253706732884039166048707178418558086657558408357239089654353110858455588943670235232591768377663850036511154981493453075231768638521625571614494927002319388530168087744502234311854988019783850044715720836397335675192860448316120727915944411220664475280226402362259699031335842992456873728158905323681029170159420325056234626690257645276087371359934092020444066397395254993972722348103141067384308886930290123318562156982767191567068347442681091525280054970674795905172892858121657957332330266193609388069428477713105660219347409675862366291893184119497136011534536447610970000175378379437690163541719394632800378485200521928724592124618499486261290919768606920463276854225603649119260964434154607969757322528522086601451557505418187811445167367320878303356836853379765107885114190798442209962448736257229001828405589654620060805165641560613548156280808184093079035990593546396991048566050604943324185113808336465860212635733627285190125120813028410179053529029850351989617050158117307511578166873769474462288260924570649807665365262002107027150428301414853760890908032457546630180280810987734731497929474205053388518590244558977900979680579600129983063340930716507344293419321855470082325914716323097999256704751200176179086784155155617398715239090630303211258140912801730388340979528483657058005368597723819349430404548238098239403593079984891261334588455099242327120874887986608969011627992752038417088856884273617875136441738079681579805814073318677587866491240458166443560884859990260902860845365649272760900872927030898330731634453548687714482356060065012551555666290304947094089425879295983642590430497925123768528677260611836774720386915707135801611983970610436304800428827373172591446002308445615287307273077472807533305819478459488610951351409827939832386569971594018580410669620024258506546784404010927215758001768319424428908639845679460222235924162522377917918753502498544612585767847895993591482173085852866173798176991176829255098475241483083585842855018960469129110747295779285244684817705741107782532130075590673249401400900653784607366801864999714000840499340634419773617472008916551200922775721357328402905099517012010027547159980891984521021189780037750326558409172869594675383952160731072021607258804879010315217190693352922554640895624652725820945871090154370637136236840005755553626969795675339931318807201004797791984221944455734349088753997502512172943988126199959501499151493742729743331408089497484652172763253351956659050924428865558278830480564505678687192815330265123649098783036374730790875573169719739460859391309878653668511370829218100228754868084421000552813627144581952950218446008253246416340831408820473345815834480084432380461003839400132489269555328636669106020063623795535974268580139725263908031276907352889819704010594326799071216365759303516056824305357168976442179673358978379198206660968421616027891223970007077728268603425453280480549152629346371501845775935650415019478520728746656815663987110930471153248506302031456603810739144624268668086203109718416699264489539120172029353560086688364920747356237346815103747680966632386979707031341052602627267478389583313804271086830760971255021112940377929897513802759227363682893694907192779642601384644403686236962615822531449608519002009579078492048882828501180777749301433332949675362427497963018004082111600410166059619372668564565794624637944540617091106149830698557066433075589557761057435760809499941745849328661305853565693854562977214846011556536401813478524730880013074613931513762703420334806167755625983844534999980586140641195711754322442727869519058007390457452990194559322845812013713409925264690957635001898714712114071921106724973805422466848487579714698585977460073998764259672149512349829344786061276337363291924610963049946798332292326812200817922072209119719878660240265918903137350622018809607105712552625815577883018988508775483109094246164853276156598126882198267929985728531580098220035747079159072408974447517709295551225198779768251066685722990923610682068001349431270025619256627606656629133559051045954626766180996443859534703864355176764637037691592597867642366405091916463538141384028547850663382335961350200581542207357422841557250674937222031140155195080992526396886355612208378375832145859387836495581925405999048276065450829300448873479834679260220803385222294652505668873171189530704287225772309240703447327713905233708730498349108597328352619007984118290458454736414588434758768188783143155179341096159779568854168107721189430837601504650419179516441462769065091507148310556038605030661893313962218250048225262789434785484789807132298223344418259914701764432626732917807631051877921417603945254302021733989229859056993152101868755467742432898453050180022310399645021839746245578405069908061268362718914122358611496555869768977044361965730143499746895945821473167387325585014607384134545590827777491300743467580869507816711751101849443578556401959230789021342386813439374976126067760214343561171171073818638313254139153784585511812117375018644120205729123028102488843841782727870609773976355499980799857657050093214350529517153306934401803413502546400558907404640831266077013129903263164239072500599367764286353208133127569822613392510342450235511610680773830386958057693254004399009445775939021810386173565195264942257692418048738125882929399539959826020200134986203293564047716000360779527044522731440860864298614465392390885822682096756316514252255633802241181216320241500963471562795837434675738060283693481974339414119263677866161276024241732064046853544642199651260190267195262878447531809639827714227381052540284364876547821550568767889909356567235841192121371036387032696904464210719159592361154451529592787196970934556764915374607485672358327701257901929943117091646429283205194559782997884289710771173828002531978929036378014411894045852697487271678052796945644421255206857010684379426581786287454136267328417379276187396024584285690420402180779134174317031588787260043654298858286594587044392052847128179127427035602133605770938385515824133474179116299409728154860808694674805092416247792836734781739124065298402452975577074053926466589665283276822788689075680388982510568834887752470783299410048029928922544866015903051753278080881435852181162135701099958164287861906419308622630822527933825319614992484099825532413890651572620905979887152152356160676902573045819138327021245614542194567996656249153482380892561608217183636377419903995407028478759288924758359578159561413118432663438646684882310007902466573647185480625015315004015426573652117047144965318945957753039881887095219239886348138863290693157616946373841920826831914995303160045009400505148735499404540793918817759859148913904042483813062353016238593215926269896210607027960052447077840657607239385187318405299100845606622334302984696762983878511397529993068172517083804597730820587896220440084209926914628050753486235930101989763138491524352798778006973742881419485070447246771471378385410098236318252804384719987041411748079296155160145788897178464504471702836896195434025754612675511122433833057351402995057965649225741345577032073380114012906757896455916866011878064010509619682914022509484350209138321100765348402033547541220994140371410595385211861200595476618569866502564918277057532524858917656017612924508029926325675660716377168317661097442606146257481137040371138969329096356840423355222500290330973208789319326502535402224959800817678903874308938424523746409577358297162357672449122522530681642190817928455385804874379496362661427465243055839721673845883521514272370188067548006689122644679029389296624312308441518726803775826252044083835186647795261042535067162369986399331596473908176813964512344693703329319107984886059858569899770416730299250975153064845718263394004522350104837526620811180709840015655192472737358656580922298367780948756951615969878527768954913429027824028499446168750212926194259382164533438141129897364462756076561145388486861152807711020666643114485978973017607356752592896