7875259492246490896388906596501429670339571297341247641887866288081682946781771914536488779256328210666929096011694165260380279935255024861749166865116295028565905186556930442021440382905990629573498921818575390611452327165630087862241846332960991701017186528849843746960698510563837585516532849311625574141857605491126722042885929884835343466992634729589243126593771166588235605914019030558211787211157824024364711157374050736745849485729590519449063984609608738951533532877454039768285477501086266790552010725567996976606693179019724821526474104409929918486993160673306544013149867919081543563230352119248490523602625169176307178279674767158192985060529293393022124403795800007442210775038137303697758227561918595171145936565749641068498310312954222244181176171127743678282452450152640698722213829410165496263871502957715484506863394098714332484071197170568099030058751413337209043477521443072520243531067474226994656243730744070705551140014712707887490070122240351034350522801803719321557002877436067253686717821842092058725864446584655563473017093534390943872136034728652868470786191229360279124698327487153247209503581546848363478145960307601296962010788164978986916454217493454140136746780642862538051779238570973874016966457452082618835641711976908741108431277648836493936525448154334041040347317303041580457308302321388445358921704511285358363104598502450612153650479004692017115442320105166210571372449490944259760033927394737253584200382926181754944834514565279066556074000011398320974069681774711420897972359217694819248738233530987843399161936407080227115874972923984051908770273554066073841528900352203832833559132796680120937986991124013423939148511467117289485756890767216719189936442491772303727234784414039810045820439908491399184425103736186235789780487692374062652962769372226550940404850045112357382792000537672312225711161326986816824839331236379013157152068355175559738537983504696276976287107616182028551916956465980957255043027631166761405023173262512587251898931420812955122287086401967951961609174235066736406371252945296098451301274034423144568945622804906827419400611842214143040678837012769573505732377968975378683056369917363153731829187804639088945836246060481254785496956528837510899468212631247430255888061813297136522718422437039726500049649943410190753745653378347153548316948801793996285448527069635754143679775168434097710979988827603875350666335862454893426479195756456973714354312636380045888147058940558018906205755847541118556629647108836203858239121039843045128666855701033826032650851735488108418138432990501790347771511921282530780321895013378885173762751061806191092598549855340646691867082420627688358512289661016040013550612813776128817957841030467756589780036589598723216561957145591064902781125254174454091783289108853471042444660396114696312940192639179240155611399399415616819224202022786344160155189312445242193041837651217155575414498058644415101822843809538076777855287890689105365356058852967864724664595222033360131189642492381447060175183582969763363501100293159530906599515052351817346897599033333986677498614793233118300800057271937414095728289580012558686633134375671801257262047625948983735169490490810029032468640833778807509786255670582884137751855661290341035520296035199477985792159448013085851645582057272336623346185891100352634920919116567746151455068085692070169333797823445420018986283342458757682865823463926195128304034537468883725206372942526353927773138600414336091103209291011585604217867152828926172357383758993873187333605737208530225782401825994574884974265554945254849492188983273465635052785788063963439178628137157052979770649991920993656642465753191198376842962610715440633631588680082162680368074504765056573525438262755276036566608481493668915583970175859901900782794676909635154258542253259165713279939327611375775213043141683381287531822563287439050922588863323919724339158096424433135494305813027871562187459244989078322903323596855296105804506192305944966975385338969297352739622018191132012942927812311769212725237623672627530980180979733292939761420313069412823254425798948069786955987690021136877523573236590063597727682566680219126337274010006854915084000755627184726954266256082620403223642948291113805071785477290778050220232705586982432143827464852306357474998988031823580640386794317062495824584833293881560719819356196832766516554250143559278600512773746011595416456921254656306609387051313205486215459142908060499512849551804817919114014515234271697337589834708004127459832321652222068162518080723905424750516717148604606493184260874780721764679083211920892066525694246888383282309195894488776423807584642353651075633979085701286047482545243073679078082859883117761359309773690212111805563275112621121076931815967100596689603356097908114487364830800203554246267582896898510821487244578344487712988203490279263276901200345141179894328374420907111181077785735909947895862687043892909872653254942096031632948064194299017514150873404776137683368905964297851747106556932715233415514580920791438057681197224805443623362563624038628573431726601424881569502856228628797928153695110024615906167540797373786241581664629390379086161389773624846431559382039609379018929189099455493842777925007325482841147938258421552724009407266306254269573866768576375883273077285117639215014274968902147199659667154094706086909801828307053066534611987420615019974884974703073945128882449779193418274073628335666089018244410560965476014516300401201339993055315737918007459283401835963657396910157258220497071965448987436060053912615261457557533157217981125033306934918653087943690679473303532325060813856389427143373646160411166298278672318398639904231464343422212996469033877187126105681433888607574343510869715630511720593524416050277269582171715809584485008534276445335213832270951746689225094899527957437064282867252985601922904374290421952493322654754124551416090756782193310750924951016587053630367686156081389159113964929514978049323880402510799442739266763200234082633256131972452520906601629237661681958312588174861307692153690321187067268312344536635308989572115709670304927971815479577818878619664586623038190766774612185152530731632884644971700294504230047040736913389007820444134622640283659313589790450730960381611326300534740785544317290931337770116248081599017474739413646820697057939523569181496304070350116190296054420584345542439298667931747898543187448691467375190839759984655600824184907646336279860443856304586645000582200255737573947023850205979117927823369066600370797772290428552965511476379460469841915553383140373575832139382095861094905719222909699401988527028738827867912291738330646011648878049417182148869688969808181521804424222015749814295990813032556133443445684406936732681450019946961536074930531700582344208333663854439065765081931836351732773126768637051658811730183659260629253932329477579382104394201846743249598930070517098851486862148373423979326321378384889175362579270719301843505448476358324761684715166998394666991300381238463026879038257705375886927342382743437879796315358696367709853664650336840608061208478538572792512165492174675963864419502176415809680570629495360983709256321575987528329489910680552109032324804451874255322034574002377758500457455970639688600874070208311565597557869347369905872547714756816318014291563394840679294983200343095089157108332081523711403008011030985142119654121971938367505818630210548159274897604919252854730002380142377808271710462005779441927240756163235458291963038447393588002096320886021014095411120976065644620554314241538859268097544382138749453100788934810648562291993210289940515820960956159017625210657765587003373223004606127122429427329546904674449211604053846468384680356760255378310872226560054528975896493480856714741246478661562649242437874571323088763941783191811647120346189723858497639174468276068585732675106933341391705587881365526266505497853492476688015479483031717579531773449899884815112690381167589714724193959415699246693048127230017909191974197657724211168507672930778015561994157940579584059320116698961964916335972235018305614177856908961456762335798067956534084958806427465253327838988805133647281453836059169320714597900129482796197400192963580292369444270667737213321340403764929943774212943412537786092894151674879443811849708012613294088016126863318387515218503896058436480561384560433577987940233080498189705393493336258145954023820307134387269344680673224323577156308610296098650933215617380080901203596048613677253493169123910509634633627609461372751714447302801493261976545066263784882029632489807701078416848113802660123224406526846260637518151868714668784300031127763102350517354880228748523658693419451120726704615099892467970282384532909891282803359451609425943431008218900128407693293383258484784089504044157191735014862506052533341819915812505664966921600709161475992519895999038756732010911665113067235602670176040463397160822988696151102934084452564977917488978257998826036318647041362913472496573645363784150884093688407445463973599268858886369740389414782832017728573582961117661369307447502677863026680655367427064832103598028425453468975208018560203192318162683296350685689457056712235115971251582110061740295111587095014561433787493675159591976977458600659020740871891194652258446623888292502874100417635394749057311799359858188715893899748445254546330116777621603426441295080450363237468602112684282800414502531725836595873808230627855372385517148784768603650527191497955421026676055695815272175831665073833767698457250557278325518400198175205757461868111789540824829735907435242095365029931862538192773695177653745456889079303489604922267995138711708221279329168894971228998493168278048365284772624383948032287625099084561604311687888522901508766877364072134461160073747707305283753322280538753943869202065667685161873888321895335141454036661384369216908098127023154361674712603642612814236691963813000753228648457441123903408374888964285869569713342179009635594475049225626344478493170995555936418376412654266425700120505376069982600108151563902912638786104558537382560197894246315625492499469393552045243188196714390299916073759169437947120320264500235313916033903738735216868671824882301392009641652676592844433510802043634210712792824838045796959883961904237113263168507390793726093883181059083243288027656121040111947008754720644054896513696091997139518037382548608531432430166283351453676923015838236669708787109928625595540942532705668174588882308611373001875625439425944000666763381042165730885335287267727234500124349726921411532158601431582112976109556023520570145251281813481854433359157880091206761491874264277503679600349071227418304248498351248752705004170203685820942011208872247560329007819466542880968489539705611559094520174223946659284946701484508379634821531675895227414782879961566701535340512558827186485295156900819479116416931014348021524018350263945896907936314256289784410805566816854211469760410408415138610136959730296722475038516739171660132370077920179366257152921966953659909495169666070430207035811196751045786109336598651235196358497290403475419860931254442684832770204508518682522632624274781853263966632373685005229015593981666432856690935169977662324837275060714214853908032490300301791931487445465371942680487465031352291141159702502935810155392140411207989153078496219543114575990839120595675717790583096719331415213836571486849688431774231116425049485300260997965298353969536596089029213141323324012768542576466381794697520263611148331047673678494262941413828996422805974692485286935919691821977724559928725903753205050320314371466073691618378806777277422851445443668050433195240850329964084926393523872773323760069401360396641789262697864664132396689115358513253359846264670516425409005734924140088245042454583118875425411223943943818046655114071636565283471950053039083977929615131648753466479406103255358725376672840528651650752340187638992718079766558560360807303558420262684357099679252736709440552033539698690380863329679446213380596514966403542857712245418237421088435936216580446667725000573907255332287602982888086426242546331832400337912311768482173919973036005048874840382187894975848046388520661951722252788614212919083746285241693315258635776321774197897607643702099766144707985447740641855198107433200805209071120606244790094659945213683534178407750128841081064912580791260051258789972646260147926582606885878082337503093342012213467618308786728881041359825477256551461929420762423127111879292142926631912182816395412934969262627873579111502906289772009267164946403272620143206307394577430195755549201715285596186655192684142548866609667929183400800945751657374773048699716350173163882094800064430936221012840158311189195389975281913793276924465174334184084214765813562790226091379084682860996226965151254496709383467112069189400013521873929615161375975209117598669576168318345391713413831276643094659510656696371578515574488276424163229285713589516458818402248916120724833086080865997625571704679746988162582142237291950414312831724498683514243946637789647484964142783951833516136510394585129864010116378594502034834484720783297850601024270907308403063639658439765133280920371247479488706146674123216512204225831095037633614334625802086618447030557819667390886960003891931918557387671514479582158703766697774873340928848841135976074351108384959523122985582445289780899882056388251175408977965210526962423983929328410437191191684676239864141595764770918977023130934318964628560643791466825174091155134571538931647043856758378952730441812983789353605720838629257619019612197306892534701061219262616033398253253172672281805849382579086923555770704659932512745986178419675973612403563254656317766850239508305880023231382475225710675227406595886538352546886328258511570673589658968736712843007833626506877996712736941279863756665692246296881613137088145663302132101959975539725061958755757398474841118701250694724017444529268716487484324649416256345740659854344410734069379510391247074682546030509551137636114845200734505151224890174901943857860172087404608531221376030878174838115181367920331263548303211832086941513001800053791128081187952594339964954749325714186896042604831661472617423186124840754292224980865323147936285657009090718048244232080069381800657788177460410869294367703960991838155515451055941250529098511657867271378990574701873121805799489419877088263952471978373537667840005493488596894221850114523031031284798749977773233509099197944646551053310113684979853128459070433121218929998651296489233250423967945275183323079887395498896859592061502039591028054556255748932382090827536589786870504571686419721992713602077505115287852924111686878306780159318029443314079848039162770950760251518223256433683101024635959354371833080590623727665823697337490105185011043490113178855813575319041863155478029711421125037154662345935901347779385498881672690181578478542078835786817455325230126620090684670384681326312205321295111579623277494055879021878535348526311270303480026632518079108793897874369962739750860690733117150058225226354623935782220703015180177142564333601027137773851210117355588222889610209804339428134322525543891498314191130301605919756708465591384010493329122393897173261662553991759551543658617270311084973076512054423662050295538367977567846614555384775892368754814517786571644673925369208419909289904869819324779482945520927656245567916544987373042623337383115218911146639063354361351112962233967945280699437403885485779828349619541917076278456935848217536225982886196741959136140376032338084029567073910736749008550574386865682967816646630559807656909369604404378219281383482795793506854693123517058837551598691970187246558726086463695605426600224243081238882450112727458171995759173347236771207548859679591933313327687448177686434699950475620246898995130150190440961337720282893179854955980028517037456027495835701069591644779267476572283646014432645843671134722835913978695453924652163399114882327851976715711711016967252386380303506267644757739377545069959933540820484821240464701286844731871120790899261381959423126407664305002977381291446388134809438322496537898103293496028616020353806879580849902160694229378950753420732390518971396065968650163918557242820370140756478846108112650941314313468750040754961004461761019934105438834717290597930095279774111664943327975357141199301026815959652564461312981163291126382641191570557772809903574276752628172011131160652921748916692472782959089776141451482188926542966837770284296177523008969492244681030468110889184902985787737793051414715499817030734279624263041682777019649587960696988188044235823435371552004630344570469807431476443432432517331499035296646411153728680103794156694234115678592045351270882150249971791960391260075989531335196442852125349098952107426034945677485840894053953348308891571728977151201121247308059736858326807607570214618765427376823139297421363982784502809390953178444091618640144458231122999757828553879298316915559484621109286082158058993371607410833393266900233476659049034050177614876589209304722176089435821572351859906074962923700053544076762705396326901446380887229831583020126763647315100778598448555573397021062714981362171443277710716492807870688355718349184485324199759955420186481100147631732154548860685381909799412495201811237554762152486573104273214255887404434593726001973870705334040636407104850145720238291660909044218959386891065961371233583719481583677085240050594867307546666631957138428699342312562428513042860800236633860810324317852961538673943118682955779261745295737400428787621672499719227683764837017243608264017379501828283592278356425501195266548533629995910508566185490062292794374572643968059779046303356769321523309344243191242274806111697363743636060206016442615772629775688944851610469919514574897091739452807168099420371915001314775998190700245647447672072345049339219123056066045487709381685565191633731362601539966152992744849087531264534768014550993863009751261399879162822373939809476716587340761467083004163582235292316357457160246182536254200500547815162565690333605366505115794761232191996166497680428131905786183809040336944961800323310119611007269754918119603497676048993171593760104641429141512433021076183762594328293552985155915063812855776754619314957919192775653051644778513043669101689376299100166777927930604911554237226857840298799118374976138854582854016909931511134696225062998670584419136404451671089652905401025002762545982050022668183250473547845890944477984448846691951107243521513271471526692460015383873623346392466512042551477340512949784818020000350234122214590578952783712452146708037881746021744105867651167916789144016103678061894194137562472024269018875408310612269401645472065470177532873924175075575836349333293043473663771029608980424028253963112250281216421063530351934440970780644869811869619942386121584023573141967043917473193740452227579829657707523211400092072269973957418882649522724182648685638783467579251845345954589120982315385516514482079234067429423669693656973844909614064835885609285579832335012351980869485886126356833077273972343362842519305520865641890268640353376351322467265211769246258396905224441322842309343968312919393646294086934730394905203681143103929610535693468261549734351284372080178446950022397166319435924131037718310287322999621677164241282909458975613100292450035064406899442343174506395305973186339347971365794937643966900092626601472762403960004553337334688963919355598056304909717226303807353994164896528003977914678294178069230973482179830083943822597062745886309452259836318512530738631933405468458157365065312324566071031643194015447236267652017080238702662186030798622981447963601488774566407051132945725626470858555291306557348672176575304708665950593053917727789768198088759798149808911255857692889775150429412858897184693313005791847364749284309980469518184632362090143233530901312522133828010681120883613697718332974095722522284987042990854610977771612516119030283028008414101154441327552687081332794976229840496458896657542033277835057500761218162254614733418656366049138588632497092212122318111484101311602609092065414491672947624729578060942221604597070063966598536259744344944033202775850400445379535585262612993229575149833490956559772741314851611679449575186176534355683372598277927601029656414731636699606607780924893333502786876664123709441196559093830308682972102689008388140623788282472411756908497998545126806829381020769753214113678074735661592651737613878180268325031728419726056248695519554540317762001820305102491072941117497940939324677520444104824481098342346517307639532077329202655723533518492780729494901101303486157409602357564958226182143120400552231988164454735516007526647185790162724791878838599455460433007966367388220675770959624579129069480247020022589475214833188716916018552383850198065475465606830400646192292097298975143065284645344055286218336830786535667191755675224378883572834395980839709555366161640775218535736979439557923710566374410561026381938763108374259706946145897753064178289317614630122034478297645530907151762953115652102060998167108373207027152417298342783715259575574245407591848197886558948277867683305383429297616169901529623063315579259203975155069878277565945688113790969864456809353730168436739694137881830311814622448362153303575266247189985751210615687472852783565738536847749119286068977432619219647218874972364359759675009322843056106718300516826955996210854112921714393037559349589715998686429758511165286966050563311671671760879073831342902252595543784959441509607762196966841817522538988190030365482345681701753407706888499683658643528785618744663255850484509814300088901116975501030288303418580343367525473341809887402178458263663224450481596151970283118907611967868532702167139738348900545386052939333757004186888262885708742600520049559080536849778904352491549365674961370516299383252668605854017117481762484620125610301525552549807280149918408562840771596520083471394547148201799979913569461993403626839263338473100345873417524470817204965922099888215774341273885756580638095041864616513286279103734339867778930041927914239346989130743475984535613717671000942188970939855293979472216155964343280665567496248703057986172406550191331480481090716039620348306194504647256650508179042156108218339748506987297084913704244854894821076956216486911429462449475218346590795749876894236446952658000713932163361367368197180063714763906285216307459539991262397845950846107398078360418487264399836144661242260218402642647357271856193360917621694589618459630406131412403273402565268123763362941048028208534494717423790864913122235453705068826865552734726329440225836361773193805857940162747662860003928195153252459337576352410033370182985490959410342252656668501987227635207640299979011752531799896129361705491637852297647400350885307951720535199383659857295045451623089157601121006722545076568507356639340224506303873917790368919487546737232047916473343883898130411985703568465344144603375283909253503166977531855408680851941066821173007872573443850167274212490170067139070727750711566390988548140237661018644646167951467624143268751215055864523238128886003796448689495190659309181513986510136832593384293822679450592569387496372781570721016484177534092409680745099888086054380332874768816003127049528955794702935786122097197282724070392896310417843091643075750207785438322578668944873342632714611372130567807540671632443380661895739580430644419103308883985980500180119119289986145849784560444903322809328850399883575049654967437555434652183427056143828224435132283344992395613780038472711911695113371125043360174400371062397069040931991342945084618473231973798331013351903802730344057670001754350306136756032914245327434234015945142421839063818750902387189174108777272459747132625404285533166595413148845354904754860449164828314162848755982152831172506397302693984290610445601299714165545035329917764055205069610297881964568512679443566895958531503102589048768339027672199591692701857685352712651951382190398834606748143222038683974131875628751710591371715916270496056597251547122709269232586944726466300301926888346112671400121672175630995820560750860378490928025470270612784083937180179614096770519947915868330608093429056561590457308917531128439768608988135326898230917699892713273284841077110523910985090918531204260348894947836970239819393243690626367108104207266197444094565035721051312170519507750317137264307857611477527458496738541382405886365198627278077886857831633907264009320710136230452803952356462091496755603679530244436115697424813483370719928271612755538105727986605697471619731571215895526499203266692527381837414667081016108241557498879840368997453618558541914038991689813065811078783893023793632090687480459272083534410755601033282039130233475070000758983278841609994449417638952103242415685249286618566033025422573836657975317845134454620938016376544095068061528039712910572996904129004838665830907765353351317116640993487334564198923876665252145928000427802888711828277323723528964518849607477743032664167669437392410397967985507949529044017017907523373570618216248886236627994908707467505933680177912029674558661951888027130394771708567878304636262929889599927978795248300971250313185182907794132694092452981723961479350323061583966521072220028383376233477939030875733930603939477820763215413328924254933563943746121911251852638591411288719037167719600300308183534222483329121369591889011097952649383423538118894969265421149636747208506835190219309248486138399136169635343933182923640881137843595315077390545304536659627849859933777794525934573221694679813753150153783202368326662824910897177187332944748220049619123624399502428008461817569974846806461765513579294014721515431575662163760539499978983107495532494791703024319111646258255477823813560726586878738488514544523529159654082076247763943530901629296662818330643720685068651974246278067585550398718193322791094319437575210051726315604284526648014185014298327196468860425204956103664129141685732928015366081034112443234871983956193818730704811646329969414348202583039461252906024763712430448140222750685761641822454987069902301277426307794179861678524469078245947330505618299004163264395722844813152007281527996417277304487387447695106508376873642664574762990318930021166903761464477301144460796883251159767199052683063998670511697721322854405431810382036257814640132136010949323979030578407494985420868427218692494451965463851596380301150336080509052445440556561131209339063838235254493486159486485839071248250122130773772217958645330618224522692735661115775328051489251155925962422207422483389646011347341528071299575405686786528995008496580441209907160575165409007518108892513447761073453232008043468180827805271873793416497588347008868115564705123434095269233845817390557795278146491291260988161998882397720008019745351502066852327025310447126187842654627922086867108332590447687990977339848746035908851915317934508689976958485441268804995191180413744692290253097576660468377476896169757560463210451485337521482346682881900990516701531182223518801752757957433600577181450056739219875494358464951203061039170111822482507372209500443524784632423754247970568883066966720769887595954525357395580056545693348718207392953061943417973004925118753809829710348475993073520247783520713359825265645011578028968103781875263315735459267105179549072258387984815229240993658669661324357707138238984929918860071721348197153276541967463141649773530799089787664132801435719754747073584298868558641686210498932493059065761366715101315185318626537459858692584477282118897374603572926524371359184144332866257399800154175784743829056914005937697254893906855801342824288614914818649893515906820368487396518908204716244921828288455533124337460779210312445546733944276169190755015806703319757859342659305122169943193624186730133130346659157024081466662746367509893959753356706274876746760929165722002161221604919263315719972418098316270441505501090230738319981261659208296311337042875767785046024494178194331798283848589152324029694396368143698776227681492687930110499657943555364870290289468110248838757074794731216092911928982230742511322549573689424581773808155308960467037145529381615183741349316471995755453738886478378671679782814738585062001245284700332308566181305898320556942459700449518740591983949648978536511738196527958096595941015256197212886389741269097104167061293943974511921529085616999315581418579728547628254708657704466903940204025616827016078385177536154477794978293087735082566412748955245021119909209989017191028222924784261497355620386993805499289607541461861084530793693098987110864718982512281085949501454257465112982180108171780126025336363404706819376949227356634809765681660347587084018500801777090714469527998087864979016477099234686351558050182481201169799143865330050342096638550703351665130528474233095806316058206208839411157715432760844534917121127630467375860062653645429459392658879130247867485557757120091797320118252330855296484589165903944044636629542736479531283004234848671166985504733942331276053139569415531355578936138150630410374693432741198670702600030978502108097440439705295060767355255423899058236226133567253144074218401581624773453022279817974498301782554284347979095194958351612537276156798456909549320772310257271060284940550135106221759474553127593935537011227505094921080038642254127078373815604803366194450937996338791655726532473999793252743691827500160146891845390763454981203470487372865646090729106415628983332035802790780788158336497164497120405482731662494983599564873730265027366560473577040462083151899130646651693918030679970294420576133282138986917402122926034123002687474744009338691844411724890487332992737891660642226717675094361109579800762916314826161532774252046007231505575867943493804712641986020759465595781620964220351986468983729493820802191092170939757913780790056140955988436670378964580702230093503908477948600941118265924375743207737048763200128998433797300210430320406050272425684576393073744386089759148352598552695393733220588543583533894058529278178601682886394596905249868479031047598294191765392226282874210274535790861014719317780575561497482723950136417706489359496023947362209645755405875590803332693729815440774459399014734655897695202659033582635493367898425954207915673907125291040423730413418827472071936077223381487417426058929782907948776319002643995464588704754038354864000605527688653235096266596339902035498318616548411887884401829877552884778755994891702524098649883909662710802941602706492778602887198513908171215793617651688301891584218989821156390827944782559737963048473882943101097453053542909418334235315273935864041999492088253576785204878960713546643574232792045808874711152236470683220097108682480566293242209632145268787660356974580438007879757554722278863289522404161625090880370224230257571835635238300618707290839726391314325515513192462254028199580884799529229167674736313638522692462949283393585042585456005009662760572444202014258901701584428362072556913025408084175096899892683903269199867618533319608676611143249581597623827136827320569358771446895182207475857421682991214885148133174412219450024075489397731223771335716078285476016265477768198578879936940001135521740695794887060750607922436553267682727323105293037481471715813162048893338382713352587521000140004225524415308909256158442789318738849872716211210099384577384519756005048334123046922845327149820656510404104045423758781177889851346743642773038172506197444261524360877001600704960734425920938015966830459559663039189094484717358584712038496626790893587235663229018821604150786792646599648736417751886818843754987167252828396864303491573864699385925940996842108945148568348722800184835259572166675424736669217394101301988808528114747545827604118895527343683703000354756658438368973268739395201359486303997891521483083151536045707898266927184787472736623487795119362311615506774856397027477913297432415012101771283882233584469220923244037492570663931420892155297174794985573191479629940344287210449587805694760177566823445979825265189272334557401975362504193677840498829458988746885090268407875661701204591362545679185913041157321704458059999686219558688826333393083012112592345493877302662261669650219743618648094952577145984183268517312369392417760708217475952437947754910784247631355930083641796447901678842222821018101766027808880963067718776171077824523454104343286794049399994672195544050251333288527277522446942124874173478896560505581791161420910841435389873687534764207301205897572917929182858388625653413408408600562673402455292616191850441177314772694214195711589140971122223403051091298665463058827380056108178266058785220566916558577094509958729699013205058028152069896328537184722754436203648179665989369567786430540853269277045751974238497942721853881261009141202555530235532754528297060223934574917522264563934452390548531629106874700692250739958227347909054435605065260829789277198942689064871402398296742812988734776238519504727687889220086717504673606977614709429184455614280209004408181250537638841022808179741460492100229408755135708269991241906723674179240042450576113210997749193155152892985889143060935327259095929431331123401769603222073464298096960263880182648948269745886783440470933943188081524983622448619674126800522665770416946785749532441496572446006677719372744006098911427494440067916272216864246534718414932592278619982560455314781525859133072369653765214895961780174375974859819666002620095427229129437788046508629577854427055762078022821357459770765126400973328353960674549607837409784152184803909671009157779314581866881749974579725649063647286022103379025018310959893180223356294246644662404522622713892305566871317431423178579172358134323919552311419129962472539452227210740361515765322917285037010909310837860086676302031002570224161644449414620936070897831825654582503285252638263415327380361375003733288453510366213826511382387652442022687386090516118722290617586781319023913428186153371083297970021819609581976152042341033582593230726644479000714483778088612608763542649796102387800956274803277024616184498188522480880736873551917867061556708637189724398030094627066541822492814647219347802045218156153789199511645640871863877628366758343915728140056838529081146125589739785513573766153722826276860355031704290550748096176680351865312772544842137543886317935045342523807545122354271708990483640950061473624028558176453462232390527239379717487192556359659813123350132970663607514973316757946658403696067668505220925003347493301429381891564814271573339035866426618584813453842322283818034592414810668766998629353424389955921093993265441781931524998052070383499462619707260891430719494019506728157891519179217994378997759929053264454929032589151245925913158012505343044896517987780824953077192007480720002839517133178049096770451959695071201446996882944172423248756753700673864078456991542364805268924218236021734589286520143587869505313876442052921608240407464826123916531907718155515126590630262683901506733369830820009742690064412515400949222070943257325881666985731531916942052912025419961927233733940224147383974395921157908871822807180137167895384870278321527655006620589309910358794262886951050189866339087930027895174383453834882148136517584582315500458387524215798876856689897041937279084998227978454965476849958338752988195745191869706279214594099921647586973175718852148276469164526011212939604978513687237001781855879664010866258154183977411025874909995966647184252777199124208509134926812723023677219771976065713805033686446600163139935294984691922763353323437680257486074879175568840987660275739443354578958314896884037982579813073121426102934648985431537199803524166445882405793192753169423639940047244065802149570176099702115356475684879825627315876304744185054577498630716407470948916084068487105091724659834770501666041456132920238821435724039798554995026752681453168012131742734447523389468314368552053286338491714382987855471737427148334705006659997557410870459097356595728274872184086073855424600939349283923590727401038373020367384283489305925469710989197515355611654391163244856054740409696404921471532871685276929196114470576831337542296881331057573436606130585394848790023213842835889183505520694710978340239328875950575428440261813185644884417775563324454089097751578920668090076479849863166479776610654375645391252790260586418922445671557312776411607535917786671395667014295870909722480076476164038075368334013687695980569154712074283335315505279947915750621451293939426967596397487506953270485430224041095726432307478708525557205606334541012684707806142541643741072696282768584075940945478289726160110151348305757880113621700304242486489950717252284604659834004316336049115280445711953773655485639091514448936848928245255348472964145329641583681646639474617507597279260969476275772622566170204398630148677990744182496470218965507753453404556633512199116092961249298162909292367545230854646143330744444929092462432690843442685595162309031186127361163989000223440620012255876721421432217220970863540635890710337879100840278238500218189654140789210066379935656220011969054569959902844394824499892067724000271998675447662704565477798127773311392572444440402044570310945766324031198202335861473974197162767701546184526708508339345994493543553422538834749866443836565278108324518579040024453710061686736073642435786478553071548735382184207637102792358212265552481714360217181696975637607992875524648843214112167967784301736733156694702142358482591774934701648096546215453204324423138276909150325284528632072948622485737030529388903089550620305153793045759710278403454293510662437659486832073945299269959952408627351891662111957546326860943332445668330850684809585139049184733976638921647618614384721552824602671716156458233047944824418609604503789822836321877766785620755675373935702208719772293881806916715195784196447681107248259213989558261499809743311580946793556020699932970734841680140950257784277805347960911284296698073968518655604623227993896258758983147844136558057347008907125089761158537375633720141197413061814789680870972227340584757463456646095413926112418672033002222741332623282766754494488350208228128578979448937624873725397131596463727551594941367344439218174794157390622212135587414192341947779978407772221617259638005594877543326617064297073369704197391289477839163257470742050873923832577482923420555761654923950381623168909881862031825117765352253189738776187306091856641540254762777320315803945936030753819841141453876153174769432862101351047365149205988767905930837934142500670861022787343444511653821406347818714480814058070799992603962633942573012083876332665891600042818100550667691882662906715187297916577677299810982848081138447337077520409470799510545892544812095184246133951033993689217597559648551536431194151092930696674857430347235624701234656760796486257466370375630688433920076055175947734596427002910704223739931419069385494759206404547061390465490704362521956443253797299798402935849114292611495720260351456302802160304849558820377266548875788980833531631070262693453661153816156709783553447850219552617238872592346391080021329260650418144477185550481746269581951193183714651294586987891315956352699236677718506509497439277875720860435021017281845795516905989198863606337642299503993434453004181932713945797360647519432924333345035778905864608246667140989861244233486950456822608678798589904462047485070778315626257653490794699488512359802026328820539308437507983711380784146337677884911382229503360743085425200083900879909755563206693470849507223659348173332095190339053903949253190395752904785341788450634513417980579457714821769846463975124949670586123074571375366151650432376524127362249949474958252882678079705625700481271095832726223468326913475815887161158323708849123106426761992693915231000321553579268164438632110493489110509521842242574079246721005918905755590779087892930997478842692333672858856674411308891837765818664311907214070442028454284409203890900939058676732288921003759890017943209849550777602597890628025766978907808244307219842905258081389480969468964532070681396264872686591724948404171600170708360558527804035564389219227151578335448997626756550541815023037522669911639158256169192642032495010319654890275676697742092687914404883740520147736589736731607798676188284611285494133466705204383156055729512555610265511047308033702843931495415958312864401831047974377632411652135971094744209935754167168035284879617687953242247589897770305955933021817621482578769507293628190830922577227638872728543573718842155165619237066584547129634975938457361600831541623329493652173339950911394739809224150895461953650168071203576384385818816555043007964014394721908657883234252516047842926041318454748521472076188868316662173182680887751547995096354003717545828039539101676967717682767607020671886546725232784082714527292217000518026195752491394885725835341713217596562887479091321478228174493927470722383845535039174837738748444262060919447264936375353308363539136397925548947370207880875155590813764845071535008323224651276904713451646180924015727758811367907672264667713362616127705463028828335274005904554864077087670164988503644112289090815374024850494092694122096570768924850447988362718749679238855419256013115713462385291834462159157811579452485577546011832255196556664180574844898560213598932425683980246644798735663533317624804826190832366980919676204957361273996253583117642660423862124246018399375619308721569075002403923610834338581355340277793328696268579888623059465716375681650563232288545155463486387089398823715982617726011912716427514299972234947177856196837500639837742875488707463966142845246160510033497170813914766269599663822719632056997193222249424153373335819337171027240643167238457867256228489407830791373026758097020377091225466949876658322946939147645269915856071912137295405428622829360664256696502700044075358722414155147294881891582188428421553327134755275029455623023663661673046365773680340907583039357119460197208094043322265318001601756322024260948999602584304108560724761120799546911299826201791570912413757289476819736090746033912962459754164772597283382266661426641346997293507344663967028218273703124028509965921786377432778991980322954536705228759733578224961798560872184162645013224675462056590776888655940567984756388440012766287923567973480407274348734764228337006118940505050548284819980265404240006530823870377915228722877409171044264409501989859991128366231379932274081911198765917981589727723194757591021617846646205078426419799300741596086297017799968806550192843689460898223849100943283503589435332833807068360009180940585720878740736603611413258024539224717619051036258632816247174321150189509136121277680731856044572097616802267002599764031933255566303456077846374444480805667365760060813368628555871018540789961218620462011228600159365152003430741093441809732107871284247845867048761760746641989666955684560503269444510043869685520018218620014238154504691171587407314012699992862043002532703613361782413181579820943439587120998562018963991096287376982229428229290681298044849093252167089844466279650607884837043496613260234357756043365437314180106056639047343608109913127594504325170941332819460608118383803443291753716757130803399511678703898851770789235125209005367007400296927813260038555340478348376237804829738584423944206981757944693222363560289481542202182216288498110157164579237540148013015737179036138503850298864834000604143640019040263425271786334403643336011028872456157433245620561649782741425380497734511909038045623377430691895523383612877371247966712039482911341576200059906945483881134322085602977066565203244653846043288896439407831721582107742285592388777987384781112555107015415480445395360572295116304727076246180333682618452571920817662821911339285143469526459422637276185079702328588735814637159970101906748971302183499236244882083212767199693222406557097466295698819941620053201238643512520199300440356492794315496794520741143064376088115181720479360691060434873994931758834891167469477402777130882653851186726937631352643807160390851360729177584049943000095301532508537052247522302145784136541754497651288075247200949781340051148312475095670988923181461521113792693472485310145103796784184497298728554169515048590999691838709712231665863616904689620912761636079281683512597482411919231899413664762290610731528812506005989409993271012139849936050115766621010084825679946626594335987851549101976510047017814912678409607413083474097429897993752642347681262302334991415861260475143012741626649455976113747532189725832125089921280449992026421843792352384012382624163972280660414513992806588064389677081907271469886963236738421627083653109453402818732634124247564438522286377223650388544942985189806429545526790069727688367039128731612084292715191546121805141540895845664339665283857151080683365292935598289214096779263485497106446225825997176669669592854910118286776185336620883743785346091578889088247326623402636459143018475873080549635872258894143084423995175031218682426175958162000602663970722767555055735793701203161601945644329051794487787927942859684401018046464950877391491779247947628246864056399197129301924979942732163152734547904972732731288410466703406656648707596999933196332318110157507618258191346676021032422058744948232484724007144302547418629044749734463720832580433139072376567925740993882767614860150966208725391674944924730476260676487478516637694982612622572245561428756541710378128806385490526107616522506181219402676403226602560376160529929417011443010229690462094324115748471868001626583182856741368723836284773135047884102289263959037889929831961070457452064602072310725785426121818350267572522775865025466193694288372115324325374025679398306388823430365070004182856851907481893559183475969828311353196253298418645490947189207806953045292018754027392141500795548146450920782933517951480253459747960766746135866718758766510646194597275121434549673109819414509004126943252733107196209578885152132042272984607531630280455816819960106592421486025442285258746616464742414785807888036777485774670502228392740035186758968625663010439465073303745969881153359262972950662078456598070413928510580043089430671379785119245992205159741240953974165882446180708723552253853525537183632260255144212042190202992065262409138299770920259498332926719088171390399053206281586317710148069175996800927962953749275367025108402138577549975818421999953888582846982427263648210667740318569805702893690473530466882510556396735884532606627678709202328233620473874693418589288868642246520807525389311689473894486272053806251005480954695387272541135232650533837841353157676553360986015830316255043128807766509716285072552273131150014218825922069996906057652362435979207614662921414515396756546359618979938149462194881057345116731320244458615728335256766062481230713195933233261687158456417107747491414921343280170418236777782659586016212610223703622916573714869470305319551554408992666054259884185339721335492931587671335106977646916926132055232839750390362536875592466044837986413898551656469627074037371655237511298693080957420091248652790632985832937194631312424537354689235707269805414391047811845847734786993315361812296354242396231107062740773244992254148054359717325374045558199739398695901848005682961820969985461032862947310644251687747773691538606371091450921473487429419834578204798969639674222814028786226687272768552888983460276317500164395140255425214979385540185416738859384220585010352188874496583868746569505595517505465907498873661626489358227988897840374817063283498011610777040997682025257128404449088513060786707559036385448126250091907906447141195541379317484453661664213083729602160972169951109458043033728658778128268859526288336055913714341017207128929340754021261221445450850897020813656305922984507567356959986609035867513942796639045355669632922284873005331316235765478010787101040275504091425330726680586321723936506916138758445748536968927226859973370955282788607539063798891180856137758177513951931981957105300193247078098628593925986427964277732061485299333961237420681911371088542153069709390303031248947491724541808345097252197704630320657898584849569615179539391980148778829976725814501425102740650469088079629280447737962267607821526573552280582129281359781137179765396428467177457764027779131501171673386298151468940474761728685509577448773951876366160791165860255189059270080984131944888628291260679721799071027062831129042097871031531015481760022942854977860119998653082663837207493917656315527276136985029003066271597199666603665016050899864335825668994731931534894022060833433088709711121885722054089350716030885383407380018400038899844990419109044864670933120609209543840797081846617312991176080999040091398284138398288664277460619179651692460694768170148572492757406973758629458360154892117920960319789441251801303250260385583865814857060364120651761905940396748699755528990525592209490891767451542180514290531489353920895485154807241269519036938819862228513814662313719430186844724404501274560446351409032214267818015880153487963948322447139790774242057124655524031859557874145361271189119788150466991568418297828335284173987961468947960366182185982527172858154683998146492708189298894076511220149819674602536367885689891152427155926051428153024433556092752117547134183415074713709360982320921161588034903092803840817715175349490312477445688952608024386385966460158036247203612363037693518248822880457187707377359332355452809837073191685989524189959052490437787939316764636692772097802170015810159476319431689765578912724675882643339578837058024033124675264354904533590007577554085841975420458205448043211610871926905266717055926101504252026565942130928223525678366942264313014211389528337063645719890986550510830429983860529167730432039206781613211683603946639278040848967608890694614682809356740357237262690405604466445893860095753235734299149475238490243430159465136863114665348485736209239404977433936527668709167473983663361068891554920864042934659444027216659990861345202961133731834742660420404116230414106517281706611867587145792640042054615223869850536293696082554076465725225427583211484835752267989349480096727849934369152097306844824382048701890333261018739379087202455121144010696258270564367871468788813097462967382892198185426265190844428319240958856669973756010677753836488983557730852187076120856220501017198910927072456676925713732723883508805610277486382509238528829329995777030543525534127326037689095848160547878599329529256874945145778646357955843826056559129660272272177216129102001909911951779778256165873043992665936336122654644184584502587795900474291094322939870707042374832664317099358018065882429342191616175751188145802321905024597489764284320360328343086061004125479847151800064479615440369217910488048028127509753550003847884388058542058622376955346948529124483954111149148057182893101992293414832173420679056203168074322984663421590837243184509934576785144500662470322072113848573884571579364252102960159356130503778799875370895163560272422444976157331208587945096694240527733149474782235179557734728180770356543747130346906107099831128300187853571060448228457335770261872015804262693839390094385118321928832331319573183196178773969693167500606877570102413484006936272531668348020129276627078259376969594953407435488765955456231806216062432321953376051000404761260122842523363340395474510655876006182143343873716347578560129775725725714212073784942843752292457804898062235549643482288296351285526988598951720355897562660271104002275498322747599639796322821785671807049813991267157520694256753707578159998233166463815121278315029369999753235119029998245788167221479746405188616828503012320069501373038358306607233862736632534658723279024570661382573963739571364898495373726506125108476953045310686298729013613344615531244133830692983648936223070070404594458628202135197760501016276029748818021792193487373499344134128238727873870991289864635857389767485476040961944285535369387048401340680282467391219323101518999155969460424380299573808813806238231242284990882131932634614556428505905628890893176420560653873856127723620473381047999804534275504466635389918626183585632228845496991430261088581709292872441654452262564232465463703519312908850753532824496040798784093385966537170282197901337210017666025786796896951569718194874542051425740011544026954784782081224384552572960755075769826663265889625057347182403701645456788921707002902742164326956424316926831647439079880339146207437378598590051689687654498788053421015048138937755661977288981943763066353952546103239144373706618527378830702563287870351868364723302973440844270952984717550047607816131443050668740284868532349324636472144176698120642305769919362692236813078184312977233061223471399688373823657559748446916468969788562350431040366363294267180486387808648801497609269559420516904565356762438387957112683848812299693225359601004356889288140885024978472285307184455631041508456367603598369387095633949383686472894958086726175340281331831090199749304755622321724519145211609652642503642571951026557059319214607968812097657426068309568328333796308210346039188325539849959366396011775895343813900716756925097064307664073449613646567035574980737850533674230631145140727218909261275201398270484373568613331466506845593475244673463579355297983177353878008247865709392659039548206721959446000842118378560484846004113484084564828643092826057460000673873329390655510391129732652455325586966342540184071944413166694522003332478628157847347106280975892818073957678591974617599705240282533887349053878809018531936860639695718726844692634016400195057931317308128168724313561218561377990227532599734246163437900874775127740688096258431511445222665881361649647543175244215477151802210498688297389115642057599349784522268755602808703615026389833951286785798645478154516849697882265152101881747181077834443619791638031694372410250670442161849119000905047246193346901029596075526230934462310697759310808131897271085231144870899921511643289266404861152816593724287665033294198836603887860405945508984872785762865711030979553824869095172119209863923356890432886090287953992077969980140210574022311958697045471346299684006647986975501129210484812772373794195916940573517037352282410369271692430453323816523534291249558039292460799985869483674740118080439462316373420638907546545124261855649706729021958917398382718110267598929071651427625356736798851876345008831662039158490186122012078408252741406466970337616887571968452189574867975614164089236417053801388076274881295779437285205780317323608781434512238346409287059347396206165574078345207091332172219712592127182411870314039597499236535575217991881129180578300472794698529510604760626905695626573419728250066086454984588899280203618404237694861926259983182806976336895074698393836494363522133071752402128429478896058297337383162754142337593304323691355507574536771475372060392205946040863575306762385832929510537858972161180676453991011402124294744788912364234215754673747003798592167497974626781854017003191857564115825670901031293458506320601706257692933719215966310660849406920577459041488611473438569674243779964841737818223802348190888480860874652260174134144033087305234605735824908892575333672788735793556930922903528473090003205608821434563430166915935160345372531308108481965993628967365119928190885881754320435175366493208956376510784721304468475383349157279804391539153408974058199317062644259017683622983028311160407447640925986646457742393333208850914698106713166571375505330762703573275954658017673658530926744400069329542194631318805503234910015795724300533529443559556509562117993558440496971557756514921484832662588400915953800536137863696565331896924560896868330642562581434052200451157606783723578822444312583356787849486589771148437801784501233793562944586454144591898516497524607757659332522046673180505645695174638794255598344195152625290463645830898893590620050092201249378194350439725812457041354353954841439537962037639889233783099747487447281917822771307461765653721454028169722685022733091568263828646774224874917952008845345099590394835741822754020071979042922527461212735791358197852832578282830539280834628779482466552973344285172881601811379980037397620748943369650086474160346425887515095287801022095182256030251747214409028625831342960426895503505371859606462010880887778860351512055058336306377571262750309824494006472244136248288024029475950290127109801762405053646097700729494501018912236706099755413030818227780303572476009463973919807800400992578618293693044525486140676207510789435461510375597450542894109618236409091452029161015013753026190113918735808987403859222275697536280615227011487561333088174314837279689753221178703510319243191317321787157985700550021795043566291374701536233353364039563574459178433575848546168929126271122717615491089818001730543995225134212083077794020717948227462026684469691866385996441819609462095000956012617283256567576586013976127494933820131521553853346000874016675252365634458232236415893205502594539149760154163287916036906003195460218765463813132567859223375606870396915157209287063851099549986793383654179101408763301829737617151580340868189713111339245482755205081741243373992349581134496810288472237009587249931671385724532318452911247164624688961708740257627978702932312019984435674326098053765698592938573027229129438593336924438683274585397183453616099950264968953585485320624256072268332431042822087823167922590788679414395328770226925819141993035415256242774815236476275027330128336597077303432676766913922880164648863930896259576445242266418614888370272601667330471930560752127236010517254059907823294770052057443121986468651084420394124056420660677683782612997752705899793004798040684661241105866896588798978881495617704464868813790246288568245961925908211393916409124942813512999689878293489565273674707219460939432762192146325833831498156973254912351058255198363600893350611889131248278213306751064311999043737595711442257004486982572934823458680004051115399555675492377662970931338193036654436777218872638923535811758146662313520272356555411201861492917211032539336346519273445044112736514552387197552597363477598732750082105798524758261446203795365543747938156585274057021387940943308000022328062741120741246008811328727492479231510881255686402440764301463737190458893907304099002956610942741758594464786709736473424473795115555550464717090110537832401067966025428691971648367557871304839684097569283586076370941815301376128764189727438522855974328215791736731219011348678941024444696303669188163695297953784961129762361777959988743914663261960895830122451099470512721419800080715314861146356488035707432022146038316664067415242194591897274990922806236173992687904153651938007759334585741899469699677814430706514335341831185247940807142905593427512425784562929286671718333623876772551501357907531785670419216079615772416945133508208019104229528728286927963527671887169656828741731431138015568765874066953010922279613964804418805387667457802719239814180925244420453451116616218417999110764120237135677779847370672653034378608537808284012036239345867419130906021946238863109703835367949814310590528300609430932607165490642345251927552476750888271332402776826417900514479964076416492841577655924387766686354879040901516893682494978864070659769850401277186299385980028592195613483199279168778126387873290918147371629671195071407933550980836191049749770578821940121372063873500393175726208216898596076767589607743877530517475708500332640813659057202095655939278119731122772685732859540477661053544031518932396929742856826355161803170123161808164131178710426276158285951969502828103973545960798464987927011910869707318574999116013783027595152509098105640302780489618668971332149001790813271570476288143912321815377869980438640086595086877848236629360630860437233532029108203129202072585511534050570359015142674112425095640756425264994395744384742253558571836871730922712024035600417271631346987265372953042343523545446938036614787022846323939882334271943391733766649079812200925338040518944558916314335436963347639571502113535339350100251465459782833570112290062409652931914775374349577099806130204013990156534681571382155312587446136134832046521556892185868866818745443644001888192155404127607522877601214708397977475234031594758800149184079673973914754357971095958682728126545752173315678221207362539019663781111982264290450781817322215474299600932410823866888186479967678900175984830659934958600212197484282278090335682902261929085278645646766686827563029421226219381268994613668510252115922331045729455856930585370505716634656267893806430528534606143901282019077378156417519819005901389252331054016544973648247301306598999407546489355003874091503064742854556509185704530372380890447163640154626591570853447946466516191205437574589921069472669368811039936531597246754454772953517975254098552787532351435626698292452108275589298441115553053830035022543408584642715617680804443545426589861706841002442734273896503911522574698496343010268231606419282948986704577645359375339197827811440502345365395116091761889998676620474792996379171182078961245769977563139886451071659364250245712749160804319151017301061320288416360190085494500922830178883051590278082622656672025667529231602380422284910842220192593264984191926524984164777791051979716729981882569521842858628304004680815417289513143913686700057778787970633566910525118100300445050182527237011089053256968756919740572700887118832049279321476032826040625337985981486057125132375529279232394243649564686992459395135571125366287248281194227778309810707834822961421000404135344705647643145727225625620931657248911622387885577790961907470698590670559334783546386728791315178929589614053722393431286198923425576405767167497992164763238079053714599776402979192135171316768710478230239736036998782753327201769159185189544428076092861481393806698670269311989922467638870479573783939583244059136033905980088074710699388438482024253088795840427923943774456750805481063290443891145807058853104404504585065323066460509732321009593938755983262578673499476126406673913770452647084233510455253958758856599394783903216216356851750489812873421566124963154250064754339308144389478962678633566171966723782672976478219207560684206331375528900675608796175825209737554410378129788508551916545021827202019841705503670128654796534720258648970921103234079955832231707435493224773268329964029281564822466873185518156380273240520265095180255577941112427364811525392942207613469539940873762137862028590980571499427268451828917084044103905920237260960467667297359634532326342169065702468643670767050272753311450812164726689875558400979294804618385759333369288876305994386981196158089816751900502831349036234116213989658813338638836480994258264478761318343679869528073308449065896087651813731549963639446387827778277187616056790010115754136498595326177692348959681765351304021745147393241241528671673996576267050281238751401078635016214081608429023643282159550852294306615714297294499172306452184612472792857795125545312190026252068472260631451032763830037177559472775327568074999459913844409207198835734626195328819055982091835087505372538665818038714284364279010871354752632727370627332000725954403677405154253690838253925393767722369222118784712412514065200238742122060613514068025521730402287903258035190144113221212138265842551071908043059538896678111077924868303222227808973704688386992112819022466334130300312927902733911408885133725315658279989202973332362141428829258607573141968316048204241675116994336576921028310177095346689703596398047238212226594980998098612852101212086702336320960639995861546001437190318666229199156122711416532499377022123863244685420547990103373981212409885717284796873903292958035246201065217292967600820921793678194749480779599909132541637027253919711822905133278454665211145351567928721953649475870935450067765357625062270256176057062156876328729284981865410389060738447918694242699217620673658635809173797217126769985300877435095934251541041354689975949929636121118240733436951275612008433291482914543813141397735140900070754104303773189996614546533190356215994798306206001435611857020332787409292523933709891069403776897451960224308782331143061709552572658174967776162133464338025067173502325728629563641800731015889069356070874661946241536287030093866920766193516016864842206994988170592547443376002312901372387211543652431630892089156517912015023183344098026057939705592673041561761964416748086408521768066104745528596539875358753394990290731109245881108299361834034162730670866501296229560192899616418205043842285954871559263777015009309127672791694573586803136572727665575497747208353252249598009907492900709805692712856542597638874080645344243490629705095040307003160117650229810700906909560594623033951105476512950700615164715669677784879142294754391341778649981694527582047397006126822600623015159022670820348163385486182696902114798345609225245963076393008492722347503088685635193914749424720750399846099861736239880860707835783534525782487879749196942903916307820270419837283818669659252277518005857867710472910764716101813222918895179184878036685328875504449855401458453232388663659991956474492252413696564322678519640959198873912614006233762489597351156349878031096451241728671928666046776736563139314600942866894046594967551415454150305610490984242763445605942630263363098456766627378071579966775962187867509894921536128179402267079354940147267404423973390745433182457759508191290873419606329561318594667347529954565067385142903677379511507117636500624011841443484167494456016850640304325866906372347800517700509089308983262844074350373988751536781696435364877373515871642922273605247891490911138792081994340318126103571337073188448052424244118279493412074382126186006367932622989469592508713112802217213658034240375769340855371982976115594456357383714387745727605226315916498340799726858947086775002006870799839502797947847893972333779295606900757398716525907771750673349133083604567351724339783525918405868253239321439985891034056769605259357110946109502260382319746971617063768109784616733486793736307559154859128262502924713026002270223556298426843123347374502784695703994672638728397982294895341373014912876464688449771251800922136560337501572021790269285311294333802700117967887922296638502621624822899904221743336113617329858534305502339240676939440010457914568744773488347674382919328515441477293116606277387352265931526893697947126620305112718811225259981267034923563463540307577571296764904717879524776161967378046272680855973243794279402579653576150684392128771457376786011119139619311088738380729520037366227299805204528705863039960967194476143847441509223159318833894811905165191669745163393415721095253059406705875908773151749943410640669675659864081222100130046238522424909759198485128743043862932024166731345093155111087938004671716432938649804061682004622772766328772327234703303399871270916587357629836486092947846745759130164645577446339428807864060287970531134736049030632132329068428957670728306082402965483720117621809245080472624756556247385960178517325787501119646017555195902029301633086874617632306106213078548170890302068157737061320431000822544773100303815523058774935830224551205385002762648676387974726017825431866267226329255716332166809584610680912975749785100800870035863261856470445732612337370081097610157892873946413732243588077548372558482946433467825446766971532466495535020714461071293589150041307797139041695241056027280637498930676384214298491908428041659164265456467180209214648941262572415092204444134784243551532418399467520691010481748822895346088504476725354254115066056657117461340590502246764112091154881850899390462456471089300536919571964144747475063477389255025237089049223724193547343229160901940938591424455506258899486088822187325494582986365474305154241369227718076330640961245777226024322275965639807440428912344958205190847400651697077569641082190643460660302735175797163555985431090812631725790590739258981468486063436205633775449479174282017324862705442461411592800799824328831880373303671277152442417288112452962022850702864616639947308418021821412969161542449571301561433167003220477977576507955042994152500454922910432498583621295022522447712268493560059667998815880948899478621512763406396544989737745476158103547505248364234458889377629634829290748458948023269021417087551343503371043042860537580888375089750452088807736412791386372500595429230855868204185338736307057820221627184652716732425678382289704707245715408459121430455234589495801859770026082316826334100123591365726276942925117366846675854753461658955049127500513552815141128945345830170744735413091984371391027215478247206040560595436145877872751094575377723182152288932246033439957692906932278472956305133833339412545027109096856047254146917250285692783910613607728115739811094971115436434453320942117986287181563248139267137658005286413914934289917181384984963808638683421433385764092399242995102654132465985069919971524843053632162063162740318307613012028931224389685581988352475501805904412041602961203212466656672247468116883774950420869253786547936549219633978260624247811532023574840010112638452692278862877660939432950302518208033130507714344170802063286634457962780882423605734849697994497236738149901964068089051726589649518787759583763392530727490166035244527022047705218600878129669255752886551877079484743536640745379195333205900005018451121523580549887414143862653472791807371962436021860420736997910785898004217132662260236007037495165023375511369333474054978196681207753999572474770402111015418892916267948547249332618908563857078956840255466387507627400760408047938258136243218535944154518085732934925959015654287319287363004151128360909504996389832264655184495442682630978347771532886361482510844369719139630840286356532015845759331281275763163122449882769428387040900507086895172230055842185738601221283179696425514699506832235828484004797624576911391171545184377703051990298125631442721355950324787286030098231055293497270503086444734530272301480403028091643600189731165222596812357231573299766112265934880650573035284726786655537355731345092371562182844825723401311839394962430408244451081662269006072389897148521416786075773170343343595466393313174321099751662770417882022977245909601135383489461299528229902141566217928249854251695637037112314291214436138937564055682817970592566394616840910065726850840755554537016044974289781576670645485039648304877198665006408786647165884464148670957298938953185165761230310086872783834912793137997290961788895207030233175853727218858181115512648500676411501805157635994902756220422654144658930945490351676465527137349349133596181182016108778812080250514122707927434512023157021141682156789430074037756713646709065524438872368307298339596941007947445050997345423840063603758777532196224843114052715687473120222981322762622949960596284471209361022272995296543415962670685155336082679769098892879339945258684996045174629257189227699614641118510174779471969807935730733143350173600455711764483317288934163612188510658091907865993389576629100868697376828603629871979804492988004927752746186290933998878397394060979211912371719104410505836435202632162197559768828955946447558717818703221295507761625768562464983284001462364083089618115923176621121275916239447848537507918739574396170369297547522819461435728666515177716731936010666483474464052103245519362049960799902260225168873387515702042450435219197528319316667228420011776473255329008639263589311789908574294615023821979074829715247641043443465746549980983365547836848278853551917317626675777789662880727113732235723020026250006499802658941393253296663186347700634232206407963299680983562621124065901099015621314801965167067537380739759196793031632209083403148833157405277837393680508075635605896097412692214500055822508287067204129517780585002455996359913563500947143804201317450121877060421798405531209115759500237917008248240380192991166220081055049852296197447931823585177725629423134970507878314022256367446046791370785307829941169627686642345018793433784944750598616369303295181114762684273298274739133312958876363582503208610402145108135063549683469112682479154673115534754076992793292251675581886657793545850548745138085386817318933509074739102784575856231672854251424516334527403374317626830188595026995942160326957984489767514603238637847556550423050164722832756719722004682211719154317390400589083169105547140101259130243159410323755005886924039922084392505513682635624425321901058723836340937323130430865906069355495979828449809877151896893937168183725060131619718119350908599038062504119165518411994872381746110354611300028438907703319921346295526470059384394274930693479905472391253675402453707225482290114391109201036529001510725690996255100125349519896329859356640930577131887517021580457749674457541803175453134223506057383746643907622730490450544185149352943981922650187655782220155885727089650842888390849356962372514793319700584043175503646011737833819508004887291819691004620806365013367759975981981713180587819751217855294102863882555183287993922477412541907762493729602357830018948536991318651559029386506571198872386673829370538109866103041922977916234645713504299901517253180730251186411148043662206630897156408234311258946921941843361028926564071935004869396610455497328222147295901683949273130601867450677162100161887144714419243632854090577606306982361264526892947721678667710800226027158057477576967520470455371556581057262128913484370665670367582108490036824143299627691538699454681408323383142617895441686234737056279030420849507166823971218965519633885502084773666113239772146522986428022199753420849640400345646178723809003002861577234602768655258570703053630857306883412004035874339187428096291035847406869991886542821946541581390903792222742720064821380196427869088385059929482152647951259570488263277887145071437521212602647944111897475071528714296694057424929195954904523117382365741773094104132385928107194904166445327090942807509733663468918094869796793726529640442288186918294703770394983793937855168151988553172586904829448208033963462931643062134084133970278041911811407228538606305883059166369204131268780543266164613876223096832447413600251690929559035504478460071965090252563317627331191923178051895446887203015173274987416717441241128145488780709477691802906986287405513959962601706355021513840240330485473193030517982247390900862127131197183857322226719208546322080348679405444268864631883264185076797464630385428856844956531432947757039990140783523812273193229734867181795381574881902457384566130691643112789251844772141989712914098214789966802261235845075349986426352909327407745168825224833098948690923642866860481850103716532846804413427246796350608858711601991006506833385701927113704660181535579085487557391068477739193665174922193273614727911215783989172147237887410401446664386914810409057749913479537243251775131296601035470764090648666715827161762777850287358777449362988520721990231388838945605971240088822955545844615042394381475965914255688230985135529768453147057083936036305430534944525689243127290220958345292361201246724679228713921498627049788281694459537901747833980361878589094611956286172639194529033258004881702588670419913949456458869818228192650684961334416533424472886129182128987159753539178566828779874124138765627572934694051530910737452830141294924683527916360874588002919355376760532611953557026670592267316253059924187705845232970616836539479059719149288642118428234309765723578641272033718441004071540038455506346714519059131362859710123467820109439946149190709265763659115223892182390357103375855444678983091529752697540654574936735840430725557351326790302340816589490125781500622260993444809081807885020100880261865658505621660960384623089256464822624838039953092988613166924926774833545668413526347510856890410317826844204575330758916408674425719560059220528146066230041817988976576969868687052845857952823234265156909637146476404212862414663332189593621070634672094239449507370329790068088187998034794015302460920498292615026150834663567566661816749083217998925152535792063694321940085135667964041937095791051257797416749003500855348384539318440927663418809218110581830398743166358229282058521019885818637477563296089130888176672338144969171548423402074592045080423514202095834075316936354191319102580829007966897066348625010067672248459693849829434285386581893928465851665588618152339685197879981136457361080896274168978976488559647160497759530050581215858197343014810367111833632806833221130941651524912410301445554628068913617018201888432382078449603245509979238214466518678584426831595528856204375308218567791545349772983776137321811852292882621195559342453233937073449757909114504186146849806985465774580144333963874192650984101365873050590250693300036301369604296809981469140938089032846169099695479431957726132151416305281246944456964717502003784718906315971077167528669889227845222645054984543593516515812619712685442257378423672433871773334527286804125913648803637870467892385124676721795703542088931533722263851413680608476324029619203209843285213930832206740823323210948086528011119988609656902986190299174678872861443450029208353181181970303187313054274927097621578078047305794189430891726397377161924590786813391718168735174903752315593910480300555809329932678305097522514724486445895208566134117420392239550544523251079896537051606604255675801251196645049679159884791809640499438686505056468642502746029690565014146238863543109789778166780559034340537387347559077633598044721340975825139181823158240085258365600767414240441612067209089967687347016673300054453539739167844755219350639480802551305761794873864474409399034926538345055856586662632704191672686834452842965381246229373314437217964111078073980932545745103740475732612515039942340567121801723750815822902071616139091751080188128912651756414028469476805474181385370448723534605172974200627767412875802064237177801931006981106611283036090097345986647086882096752599476494101963611006419624499334575550925288591947565517975190486639706018012112354276896767572570185214055759475384521084294853554203603022113738219805819102919129517267049987046563465849350110298421005285592205545675467881683969862556818924704566452395321350262244208985654317602650746612446866146035757664100375860259769653988727157680308251206000599737619368638321718084140734688722832096093961388528240468688568081559871109018945615957237440842598083865703144074295202332143036641986274024409236655738574172267749208802028792280647181231119275766903874370087288161065796779274202628777281025382111460020619509687565938477377039606383160806777244872717299264267080239340413270012215799809489553868691453120301924194239142095085940131186156950746545953955846713446178301807219224954908727623944341366713305564661285853845167896387886723050216396175849752154651927687545279252877061044802456840939861862066049927758997388409833932300520998775352808194148235212311752713899860215792473815228468536369018539438791051083783648433022395578394338742640655367637009630640648369934490589247702893139479810200239632214742049293775422046468937901816057939643052742570659585670403847672758339340629542025747236824911406972222923495096182292542241533912256089272383182773810443008148047284010292026806876910281307112323589876361742619126203709361218069222600965854978808512087041514267238641634885549231945724465934058663925798729240128322251418579982797631525690522571662530250711973655259680665098509721915738081372687621198297415110114273951169838341198863362821296015741377903845807402235180112997271269971085942691478488065026490656464752015924851052889329495568428513762546213126444877713536745749523738024201536802365170923689056450370585340290994338444371544515417653187972962269471701509994182588234015046131827404360505428389048492545676536816667811772969675618233596879407860172213772968690091857316103236509849340556053718931690385600954645874075030135238529581856463950140894386656014036242406392760117999544413283483133660873449262643812549283821291862754612519414164966159448794115830099919903976876732470220592739468407494715656292838236076832726341836833875467439990122143056199920435590436050849372622978387777644790449978508211682630856611366940614992374336016619401493372850266760679926542960475644912151951406025694957594130238451284851797503594587179642791171205473074225909154674128254205962620801040294374363759617622987926337825253483388994120291218905336803643859622423309370504651724705658534037057888450605620998202491777586424244787327400903753682466501196317137521188509087472384188817513008376513159495742471303395870357449070086913478316414269598164379294566238549082656394228048191153427474027562051541798406651804738666428237766699765035491181211383338412356173005214979316433691547226024267921807600631391298876453677918960239462509190592482649156812069167116273527626208452532008264053002248611911242951461653500701857362496973162075520358144973781906488955458759153527149812852219215659667490048582026385666610313943349385065887337928292999294607709413264021087938239475135018135818781466417091126647723438724598516914686205703498259808435364182948411195051762423524870748931211285507715385776283156807766315473048682581858507174715548883149091262850157405915914065740980843185633531466813386822592542186920322928138250993660302068319134443558145878423164852662826351990380744542443463424437288162278397714241030912946283656209257127415564927339726522699464040498480350637126531657273552794151342985847699447282239222583756648577365571067410550181202039118104186992766825517220546636533546295232456831548642298855845945822953027486471418888024844039741090859562471247442616680811898873438055921655359659612530004766359770939668402445124926099794116429558871004403765964243367114454208289624291269693915217629075755929447623905219742053908066954843624924628121240932370101138067805168582742577682602257342288656121608245963762454546465781629408634608446728458983301966681651555502874600964732363609666801688426295500879190295939785583507392254743775383047650574873170100247794545116349253684782837056356504535211535852491652556586648886983562847314607566460495704856275987982980424288818232658876898003871058458997051503804323800618241130786977375181429510954824774075592082782695862818862117585120339958933773735995286510247459665226580397519938169084371971158311750931488800031928067185461924919828823750556183022034356456055499021300431753927790198556136670415615271259350352925430157516385124721152993819588474497555865486323553176353634893890163616638640648602430703491197259625994643871399529035036921543148001261888693200257812459906219062228736725733261129623664235467862107152108662564509044966359036897016397741499276195871824189207287445711139246718393101529221744421172137464267746191318691559048571553525564636148465201258057831568628356574405531158327920456772216851900872785342678314160880080118977915755423510319489269111979266637465256864637066063970870387616787294322230558490219366658597925794077264074032298640632063583530476341394539251639838515191378154356585734500270185369295014992647599504309391491118379416156083295278068095089462377326817345822610512215027343669371586945062226336894005239947477645002467615370100677436535699869467123442638096883789911856786785581398723489844971518054636666695350458595543201280417652676205788349342301240142548527869888238986485183810541243366715057955417225365735471722754486127032713840331687762123432529192000722291253039117672309350029374832085446087030330252960037227298820702112621231968802286105822989821063813033880525838654350729064141090509825332439604116670218406873943533983892829935903532929132946859507022287848846086040150474195507032898025407029585971845664818224080329801564235550962619712311627303826506938032935826147151658983693162335568077048580116676585894534976248067918360040358759685076353216123115875712475418612765308055515381713387386259183469446780681020619379433437905987204683593369636663071303501887569481602687616489024191580108160570915406148378611175347890149342704646462894210149708512212535680667407571354257990964418132382711464373222626795553561514827418964379262674179243682914984044670376141629199744468382694939421790370309206381524058639877120220730936416807621241437315040228997554168763272124588988231488618791006707267314292563001932367914548111787061092729604579007433024287617177593993954830996811434403670511143798500358918328079664319931343368729831007658425144158848866900455069924855666140619910098107400619346522039217271638143496182744595679409798187183577256595944038472259112935531999816723818446476960493435521105394511274833067546956040547020170204295478665937898525935496415466376235147748561013164537980905319866065237719683530229273825513242869495792782829636519069324972346782404543748009687772280007081033514622297621021428467340230646161549596547565898565366626448265146958293292987434118089582215728241984926207363890404606646508746474655928187211831431353523742845099923548651843567621512003128633222290898270168027521347792032091762127683234284410111287449875617840689984811351852298057468780761744382012637519802342878212110314061647917542095898841986606090222254825433433522632256307403092721973097230744308436806584741243170164853492656300565581448934508667414358230492844067858871692999499888620735105619053080954276524099395543701277698293630883445411100521441038967657833046841119828017706784269291678868705378922120985995004888764954196921233875113820668285482660307892405475113876483328681054857246831142528216151518798820134152886703534089037490223955790090737542944708361888364492983191343335249444542458491172624465974346503653992994043579027070087357920594573718063942239432943257653497444809630990714511758864122606467549743980195353214274867977792443316476776866986849128277177629875193773749890009085222404929915608188316637937717853454268974372419191077969456711216125481933125542852677649581216316639460014374391495964947590071780981348155337529072035178187094259330914680951006009964481215116017719805735511708199538594969957394338719313986950791758822493688822637037912550791825563650522672506431376384626270176225908641523905336054928902435240538142262475162183312120709620538337728379244284034182840834263294772446504297541569634549698300505950159868854329370455023385719479158141077669436903014993776405848516012948845395880635526547467172181999007615738152420209047558067320488153880180820574188194255854740876337731896662759313129399793634904414645629858319542765694803826166733467859953148308124972084189368258507481564075542704286148376068499079064240791863756496145911450667647273994635740220199283315378913311648359250016022046846396861561243958284993330835697747535258878886306476184205692697440632203512445352811155223955618133676417267285024077539431824899420167530489803793053050323558246775485744614053703173536084407113202731731934536075516223940023659175097234269144833260698889060738545007737205479529038848710716442169973542249241954079969739692075331065548660846986236219013484016391098852030999271574801204116354345488748417802410343258989373678654379283548439270500009640946574925804106970954910306754572934707341446549313869592626817023117227361357376633060333117053431342218640723525017396287411930892602342541951968204503506480771093192267585432655262638919696177986887604692706382540946517257130844677866893510220363604936934655296270577304399793686714974083214732405979539963613007857120648409056639760717490047911787527532102090798433613972960058736810113860540024958807355567105326387731974243293510092946565666512464612782200227458532343126531873082980831963533810797901058514133714457870137969371017517083121683071836392786409914302529736364845498753471572068321737055200092793191125083094676794301733354337978986729564405053339848236777074612678007473633830190712065095249978337432237459294698380960390122465449266847551570055159847613210498374542154230971016630660165253606219551390460763119486761437799052366245534019949103322054812369040730797494165148858572931143316407810841693788966350046880955307776722891798924227606635103098528591223455935895563770113052879326032309414070031853475748816167651876325335504392102684138359335741915542704913351305597674797600986238756988012499792014424174500392711364951966230790796181358147861968833806355794471950562990571310426185788083656476680140694223494436739517248933410472937659146558912964707399176081302150917036078092145576464847316515576204676021017494572568516062055342593190944273092293290769760406676580038252433307086104172432954759650215503732536231057230750520877474686060044090661260241045597396406165508619566096850613363046364858350676252247950153679380245234471863518345001518621027907043092887609654522327862650335396657435322481996640467917034144130390618790448165469583863049117825060603176657996878564743667868361210576531711504323936122793630738667620192302105253443418787290098293760373382959747639515983290220490248306903583844246968888618315256859832260230044597442236079858732608541360755857372870452285340249733695618257121157696224635592950501368716219406418255340996901620651988987901522908369525147280569974452037834947309326113584170644254745523169019988113275186895718078255479294347418252098956863744003173363307083937756698039851555934324488878087292699840413341275214951226872994255895619381014759377333137206741918547069457921211361782266731353919511131788620609448912627122819390169922009464513281590798401987832044952691216250963770046152101253256923980947214002305200789058906300303088900883700994804514393193191460931629099524800159588869581679233005218552576939393188106213842939170593193638364237504599800470954775870009546884851433467068272268458835659595301551851121871173627843602678396275672131622605357696756895927383550540049521009622060042988721424915580754723488530421350866232719608304230522940919099366462452291387022629072891532361934283177832156388646928367082982944283845123964524362590581619584020100580180540346752034369122563894341388131004136372298674035752664590447380326508528059676724238943953683591724753713350592371204238264493456884197152459236121228658648822090460717305278902736122822554923945887630482238064618587754726247132201519673068458031446813281414400576200890379537721569648822826965887272164544475368384183748896441474055840419445655767079342436800399131244367429214168330460240460914551351370281311163106967099390751576371795927993829671759335108953984588240103910646108071694659707491923042065641446184591299459039552971205590605320352389063469303508856487809158313877727291773619600646387448981515552588155570329044866649038830926815612158081601994674881345022565351332161756732693524292436713652635056140213451242893015989645800410654738498807547075852017650540204068815551708219773455863618795759348816930021834176785829419776594997095741573287461907441940626353794607093334513221468644515502512058375480401732649498404919258181256484607723387386212354336613232948525478168163196286899105809459033976173428626342604615841967961902911001346147855675442713411545772332069326879400128545010869979037552261612694400042712731229035673185896693342646893732571004258691121525501849867314284051378144564141536812163213683340606014646737471688737299716546011444441127632684209560341720809072502723651965612234645100262131756008148680838611767532749245152020850408696427165037321436890252881875025984521207001469842461734363539901143780469224032192356415926866819032606200151922133664473886359241400059604626499363225566972084080942217405984648799602693418661053544614571958123339548835980974392010308402064528533240560972359755511392004586036244015154943505221890713124698483611464046635849835524542199145645098385685417727476286917827499099075055083813446166946817155818531865232110200438032314216799926437157182383550772678622665954319387237194992166592634781549223896327353458462949936268559678786019584813827532859038753886878576234336401244091771875735660704525030752352751888409769149866670661996102851307478129486598088578109998230681874249744128540701428219848099879461483882408044853925355430175424807822754581179323695311605370697423692117177425075183849621647488375562158823317930540457407146978805940203402530470794791716500185451199923794597667627401422470232607927186009721983346704077644345288974954049179158788690294943266443391849265580759655769867000087372675694832470329361068443474917811817496182638777172620312121092466850196598681460674518140526408017282708513173176142794770066018066428887690497735026522241173159511665725419427222008243427761344098506029000282384114126724706417532872698813314537623097287121369364951151531340027878354569447744394968547145583710359091038270488695616922120807572639529282937675789719342797112060875916532309444411876238682216986780077328794325360129453633331541275343455853426795685723644498615204992677369010664595554279995613811179391736362373402975971267274629958429472880752110184620802456174242508259218051405443522761602661641961182540275194072072974654665640944425198158551758867808753887553514064797371510390687304577221060503678317952713249787510949756631190762137035285398238308272966031161357655048466445740379249027090412304157235070552039178200863895705403168204317846406133319328444037515896087488391639857108473985938033160915692003671517930632309145936846894251536021441109352760545707782462278800638769382659303460683834808992045213288542503305971722770396138950408028203032049201121254288140354290795352863734793783914474905268875950687849054445666138522144650485974310507531946069274732844228957856135652199019869021124146628867408992451154372446893573299903422161086757906986317207483579355863111135913567720258522477851640203277417238481674809634164438426236345373038308527773156810208970115523952550676581064318953416515818300482059623462781589666953604575728168126833094482323964343945404774451246372295911115286471527032821002018658105793339949798071824046381910762736673470297220403672406830241928606149845374816040608022073223937951336383712102419121968406551143795461422520987180480599392982157830695760943741947076320616944037314659561064565093408151007881681633639850425504184053825364178937392236465762650379752871737468158721295759715260480928451149999751382817399306656608723026005586905488757262815458239093835680271349126884155021155634681155217708147533145593881442454765896156745687451248819737486424447174608974819399011585505877931123927764093482708731286257873194378546135759111206819084777088089911416269652614567627438387904767929988065933116242146148303825599568457856149527166261077168514044464788428099978675933749129934210415348773308729984801171555959488946233725933030095031824388272392087274008513842595444701295554364004272093220053668794827607855325873732244048013188667927766414880517083544078959476676895507672025859610401294970604711362258697295219985616469052696720448635181499876162819590319699047487034952496928652481084731649144238803786709439104756549239230335168974869538430254548879957455537426112989600189908588629801741490000313156927987754605870720113710008958432270282409689422068304221697979616260043760302157599913794859443007226101553381954038960346518432730583138745941390541413697068312165137080912440422888032789617042378615345059014653642303245747297916280653308366495449096537059886200736299800597824184792975369441115666814019604923569140785183045838115836078337034688106588062106377570763307244815835672262776387196046382589824425726060431708792004776854318233825066003651468389772064987174120797363699111539603945176007893843076101518285344846128451126579626846250132798175204662461497504856840859699576204037596438485263883223544406388519356736930237433578207149208915996691605738230706371931110742702524084196256981959254395547085292670562217467423889254812853610195420139793692802410603775760860636209274046012905019049165436883396560224555775376574168703474726272544479549449905030913785684973949383100461926456869535885889556559952292055186913710441359821080437640367648970886674611769336006564936244379338993441682598002054140595033923132134355587233823221528749740866845687779865226221969151349451571149813645175241352880668334832829318630832408609719868147148871335683262204726072401305026158295006391654766331117547903956611390971977185663978494165810334494336646014945124998821613405153368132632148012968634657261314085167709136577369153742860186032805285426940808999125034329651319477208462689106229681676186577563042168175345421342262870002189512606415041622165423429126105508682382592712124794666508248021953294088393161799140193207303446176882971527244755888075009767594699581716966696364856800078320303264417317111941240363879850339655332184744979803607093938566607755660816562990904763156149462803711424279153104755284369841144465918958958490303560662945158213478718680723596953767370397279963592168588093835810454509832030176909389427938656235951899222645781783553092766118689412511905687215696268285813210406537927264731554142131012669779427068777900455336816827551425748421448637522066733396269051624116192398727920448579245226239791331686343466933850215497097615993569985113577839238857583359973847336497500291925747714608552624072050283034638133322503363884488622896555368996931929146968739964691633786614547684256857592771640329530714342142115570884313190507311705343251435066606054522762383582140912653287803380036718367186895291678339123486899244632255557649161161160668488128754165941388247422472807397376632899409522088241195675584677857465545802284072915527005620572276552260629338050175123935981422900852975489777766930705352637820733720819073315722449129559933866904494601063194690437150326188610640133884705645434333984306751245345345764335477065428675682612245039018857864983969671767976215209944805767080169964356336203253265504916491467680634084251759140382466595886496952251817124215624008522403829876489689946433228016248833084708724883604515118827581363764560414770934441172362516611736102803400133798314028049205479203473253776223872730771706269802083031515025272643264852167799496413073021475652362653713087471662885866924237750433773360099664081287659662948523694798842586736925657388300131256596929333507383602297531638771032914090631377102743996905438055146437960165615443692814601855257523076488272038908545233273501591809237611454167384670138089397778122877183387901621682067124822468694441658774018776508515574225191820727092338201605595908887743258218704851518626251950692283925917098390063438915148129862541182560062896089615326788788813585997197895234104025711440388214921119142753145357489876355771957030309497206829502083514476437179501494799157052526887351683305912621800728435742381028115981148314442071616881684092398340682958001120930941232439714602609149965787046316235611725224330951089197644548330846799832374044719423604706627698459415124772250073880713299320468568539430893154565480873512580330379244345081004585598778491685056377531004589250809473160075275002563604458429923188557211746573858669710592573114218754525195887457035436796574863136510314362461411507987295895122275193762107423416225525831451923929631883587077238990775936121028440388433293885422293225469565246963785045647114179882511481897805792173725768735538536334129325784232290616774375525826845704439997350324892066975479996738659517677691520102487972905990161166428439827385888335178751267653045467494804461011273698877626127434941093037329015647044759076768603606917956144750057049028102736961631962918761422660066368771512018312919402025777016599527218139674310965156334200350542879469137334145604043318301787803243040592990916465659845115835952189255355142839421115340792465794772620029460328631373673946298944815680019697046482432000878483052551295036408699970640270570252554549429649659128840340127071587385404055190061135231121342135715227471489514906593625616406191937583475375160633554118061006528867641212725945576263672942137875630299134248302652026528579917584930527702943453058485911172922775337112521357402595809901935578026801693696355376942686543618795223150090111364565853643036897599103222694246417805284167902419262225134315940651809220593521027498428166196822734051093163261229844223263213376178696649425590586798850078778089618253219479876372667821862897144598123348838120239541278649042233528825921899363265759231047320669469241451038837588647329777769123980402420720211084201113946379291494718622750945667582177745505052882737558945200070160931696301670805383003323243443488195103015627440478716750735296728160018098779679396577144436882989838935061898116589925001668121588974145040524621029296482737794020914144487447604709138249141835650460788581893503308589177500354289723301064744563853606028318822751387990642543294640157370598323108327585306347411317260301730122934587615475192207690684701685517441293470188510943242134078592085775001422040528173127421621497709274484182018445032986824437092523124369804441227545581344994608058421166308148321054794278946429549289548817319667355425425312988850904151688685838916411485422682945965310473673948307144852873800574096259593771257327479101354757319994215855008051557200488499484645136310261419329220001940572547046282513604897916016354428574862436303770630704365552078286304973135051324672361420831936811736575756820422849581498304220924958800761559041819622924826152699646394982094835230120103498350885030541473093008081257943390653111889479964610949926962809614181088212851239232335162624807085477253272707573366638902946331487585197915236504143144747531683132909816872376634129723383765622110360532727136190756430861515024016527458600614657597568049801769212066229783924785752744747755783049258036788412502591757721847409988452771696623525219138242718937952404982905110832119075910995366877101032622313298581887759308664823262108735250760688508045162396859902537215140963807522522794533940076804128289420959822637984377120088799340324326368311744882985116844115047121365791870923491736521847214336351341628323592072431160952857654356114901719724514280529139987177914596752935012733346383707592363281092853758301615383053188815967183073149352449698797012881393879012854123479064912626017028275548342773467463282637115300473584882172124826854373653733204120987267101941338944619082005997800393869617260230425950090415221314093517599271277446194039334349585623691736072823787422906417315078655485435896751066106261727442100317839209700976525886238365798379633422690656174191622318846450033123310228657228160665722457623961295077149375062729037749185260569592308252635639589492455598287870556942178510455668107713780906475508263631494404351877284215116103494730457521937664450822394841428091962142965228855164366233560610393569231795616609636463473858135592428593356151696097383008647366911317104210632115103810941985599014928898317337652215319146621871061819731440350423238460488127744626583348487888519853269132050379663484098097360960889036744029701821513486426177219058052673997929654844730260056781065376884948840752237431779261710695337705978141029355353450662223825442552155262813236524187613375531568779220829785808639125494988962024455620436882846699144328533185676045390978961104136288012719624011680130927546642905938892268024484052400636057606772907388786289215169949530173566135248776362344784143772247711511004496749268628549831236200095584123028840451452817268976829664368359551008188474818831615710818509309236616988844575652664374028058916457212572687634294663596159783092702844019178748485424396106378969482145064431740030756840674774021935624046986435523810254256129030081440571085413814021067147791695635418324927873221491802330387039088840679714026446029373308704698889548072218730483091960453297402524690894716456731059681909488470621679320715309745645393278030524683415162897650973382422830039918071623947249552805624115067503388857835033528328812439496556644395179407969159773978185946127939922215831546923688276520022327902023646803664991244866230128240453390093246286603108214678352755320059024162094341514214972164058096565307314258490014101617786001399888610699971377403399484762131386860140440274631950700030495846768550635284921002027158683064560340517021451510948272860087756072457049599570606212638858942037437816289877228047044444360900746203279093376152990498208354537912192576795117720891924700492556536306041460319153473599739108424957141374055449024907293656784394645201109954339017452766348469075179372270734931776784287996363087925963517193140679238098148590674601670327709375669475982681492652943909891139976392110871899882504643166057475370510953206111991862433312615249642937155043695506651283629833796746805370639962601958745821722134784869027065475713284790007464840517773183177035601885009386266221495793919062207185395541839792685653080797594707808192594396312737765319460895602288458215968437485694258863269978312338844944002241091703059505599002405775931475092887751937834934509073631577258350271124157784109686602825517477957366337492685647757175835561667982773335911923086062077243077682469296431116381157460580543026833955388063086185192911288964340538343576840659436783381167741461255783261507153843866714618683547840465241178401389850543006568806020347751463621629368729635977336137003110818948484844720161177303648461615880168748358241693293241529902212894999243804440776742253954974603544679395034608812557064193536829090519734621835505105647057586811550830381234226802072344255215870037477581430273177383811657506536328832559090497204859712681997599485423473481015029278661614165150091288037632066586722172371931723192484113003865757842791880619680986410251806941518388139069440432297834668099593810139174735180146465477462004057553920201219857795202844276717068853711625315851430884470975359415109498458653841528627338374537680064193243672702372079777011392106387742538466657116461038708194057542462954120145417664425804444331801475350790866267748301756841978923304221372403827758259061841971194285242793934201311966334237040031954241656603664955013794101475389324717030062057308401826004927032333924898272104316688850860300392072338451364389951044458215348798903107823658648135925862402301356548675321179966720376314179551139209055960369254558098023340686994076766431695591509313128660537346428889156632885818768085700690335806361016748587562968843207855529798854664223621303837605306315022978870739361967654268209344724810164243200724333876085377952601454189331195848591084873479738160827925454598052846151767160050292591056563938442688200916086449429655189959773861736109158596002350889750924113211471321049758294641308107628594438553103883009173946291336360354522064154841410744554724622673243957710889234981562589970834148150855302366558963001165398787674118412626922342286013608456751578244955148514205550155041005687544409823097518315010132319294955097089572606852268056640209052814141032544843646603689845777052079161012550289666234922429635559177448568003866601172705773148709100222777681856393338647276431020376648939512381785437145395524555148965539813488575558323034340595624371099722281605800772593029832886419456859075364569494188897099049528644382241875536239123155886093574692401293602155280939448849515729193472882045373081263414356178787206280815740357642456577902661425707680044877400852533163827824321454096230169049181989164485222054695575639300387764244129061090811544450525986409846871047651463948874230361824365124403040780816104753551541922338534943582455045561961256396202745137126016019559535037737755737060081743594423673667771739947128805956879253231408116028924170646652871688851750853891187693260951757952642717616331674556417842899009399015937007682827610044589092761704166961941026906238924553584423687866175800355308552388960347752733914016201410728596130989572815761238444507654062815560203443339565948014252323551009029093599126708801380030897999123054584442513551464972998920659099375332683752723553425105566489241327603238813619600657416986520450030684018629284687859490072661845367902663879779193259154951235787392668529562130257759510304132808138742572068282098702887136348766390250418754212204309535051622339288184839402391414436776529888542502302057012276921889341266495086079900137875424395775215114656292529701064247573119921176479658067380568470006753044636134322240618028255145016962551332114523612039773489958012836079937580373252397719907147400279654300128200560571401606278918019459809769179667793976795813110919111176174153651022513365409654815054651670254115118840584577751934760636084301128344506546008481822934457286527344831732722363859348818499632001966365918911209432628953634210071049759432989618920037301272170894026968229596392528904464848725219569205270880597065188955112050328682222373458325066012060408311055180483280550688698321652171305149324458382150072062363352830198541036424904940110933377696162818460993654736841171926416443925219547012727964075408098295355963851739415929855236842712035165675310234608316834012912114970325024353490124339519114376320625428328148052178777445020075802386470501036006219754318039825224677570826630902485614706843078570142963883877813733061087073784806975952272092893923451916588010996183888188808417085035405936316219671914437201706102486067884186269874616059820412021382350312035094183158632623736116588652420402472633996274963657691850553072823024010312921379876270152208981435094954728992927329564396281232049638492245216928066287170776258584328983622817026317676155762508763159907365426374094091817311102314497640031072949751466123268515311198644396984437235195826448151675185000616914872128912536120614531825112457880256503375355898099238394790546474697301126557932445764195280272998129169801274776800060940112084355881337695391140346283717895672682989547246565996274717207343291360925189993625299840787467110305519497118581368114345157245796859710579273220600900606035115231163154753417193763489625377435493105645524618884245175244788721702308801885400648329021895086689281658533339984303949277041371510611909078569291068274901350726182826340496060875020323561955824247736472788783157570586826449556182214855853587789735475080002223150184362462324876072160622384263033659536390375613624008956108720839111644577024666153892470333757944650107053192153257704664021081907091595584937728040024098517696119505165111973730303197309308798781821288481202587729392110586741328181901561600771106938970070174997430682782150980464439921083139661324141424582009061945741860965348965531201434907406871558328146924314343974430695255857731720305541959306389701762289017757261266898874694847702995811643420104402281299859516095527545425544359033441170695202642457796686574440948255345694911290199134776550515535439711200276527435081357888517948585047792440092218944317283369232794138738991688539899317885442311830807911642659483933237734339557985872297877413506947759207268208467460074545021173261913557592967804613587311417519593755381357267822656978469113998246304922212905359595351539527746992042763375545485449298486530547600221772197609313139660356513382783415476619088722631804086515981581580766295027779164098832995172859713197550906974681649264787112227706597754893602049010044840943868816809499447117507310676164670002478523061150673244655714064472834563907335851549142644766446959922510934622995341423918979745147592802920702277019453691363029957439244840211660272569399153999084473777550338979385739814018195022618649400805118351435556976845521535174523800889074468715276356537468328681175508686116271989716726342075577753067777932118633887444825661053851892204979413333278920914100597826784158357440222888592097709338269764801066346397870833369735992928146797752674041156732530517606431814107218078469374619561628014514322695852446205723281135357919455413767976701441228033218634783209189105530542391669132119503318250225211359367623312417696960221139216535777285287990684352925112813741687773941177322054585451966547144521381041184778976825522670640392379176344427628856132890961040079230989958119494288326047910539435848796618378047676175319396842867465649260767896385326952949987550158102690454140955643041260928320673818273559770992291600793266213356613647059149902512907212500734632328954465164326460044930014631440657465853214817427469749784073361376809418072529620407081867178084244062794177626434396438593233998828566760391323164378781556956017889897852613617007962003690981327453436741517793984915487510697128616357011049699709741297582615448917652699343891089838731977530650078204605185379062660017677515978282378422364650747799995063609921608668413775291776817838631581334394117838512976192210387093692244180656898921565539811301711423537889643632135543815233278894547449478699527916616850829450075908569517421661525227779661002752361845600933915783474812989751466920967051684665521838754995594946698481532213831423963827607256774797603039544006307108287188437553813471082428250084957641052550198028393501585982735369617132843232923178135515616972583830115076835296966613400152587174908205305877032001597932906358975028765020753201048558797530905790100333646628969420031722113512405200161490117866057466847711003312265935964151525645403946234938689569112140278629646881822869002547205552335376861529289764725204763032308345654509857325843183702050372912093311912545743729822554359322693523242217016631755308954906258994121058661443762767738457823695812140960664740014348126676412406563161170606470681925678657454726728694216842019573157188451372698964299670883663787066863013384315304538447620489759552110117528656825825861813353453476229431081907365392468129686407517060649387991698816000700975467449030564308012708769040625966382044266825260268717770849830459701507853183488036625951210442636546865196368645179383484039631145684127052859257426225216173655421395105223152477210582947894349743896132190215370643493935830097331967108848272142460625996039200297440253565476378762761696107863897460111715952975144742684415570167880854105664423171905587570514488508528954692098149915139238458117581464304089547146456337929950557441777551014078021176025443535453109636999522285092837132532492555196838528650216754261596700340796619915320948231663839459912718895360684883064857967696725990251215387008994539415585019863568362284847086869218648477519642353053135456840825065581999566420473380617228153779467776106456893536653435726273689796379617425042561601502295082287709626693690967471197829417463424833293590781123751108998011823017613327769703828471131594517277767350033334818429234288601880959293647743770777519803258974915248561587249141783437114694567283853220592155311718147812387791005629756283496827385804503183389015078196196432646931610102566380337085918970716144644840596563981500455102274939641274559759835498911669854257555691271705179626677501807131929119324322721649922767905388404977595920225578925720926211403591884405499243242745268304037352662379351033077396876833348037703758087348422522773048683902032422931921952740082526465516417520599068174119584382950696732450332114001345124692213557090322662487636027050447113923687512377968364696628640664211873870012465919217341739503785715519449368316363144696004336722774940986898341314964001850401264654142315780875302176767308957552378727255831198410809889773345712740767591083510053765358994381901944775231779516228104739186210917157527843368937806270720569901076136969035137024841473743606894138270193614458353405060248226324100885465785929534348806802196739935847804038422979297629398226894598368743386837012753131645967713392350045424255011414136772388556254475260771739984630915668776786700164525446404349382633870749408493972011447926442630316628377503890146737119695430676818625464394302529680229792293792798141037282428380008658893216059160338855394726390369314935881022236794224225416692668075630297437249050604418852828935315015392789826753106466778847849183394521262903506473995833655584963246967510487523036519845086577893926951647445612145745349198094268369718597230937443215858786355228735242614711915064104340192224191120210059004677028111338404038051079485314533651510508988270691095250853379780485252845219021472243839176623920879434924904173289743654508522139915193731883509343417621483530186526709591277100928971129370029170608253382644438261221539733857100640267458948494275894816851053453478709376258033867231573431540459592547541865781718621289436883670843131968971765073182830311176818493768765221767180049801382988215337121432650954499577968247677791543095850615043758963846887386595931039372625310482873779710846411901271969111057790362225122852511340920090365876305605968505901650061687936185935554790647231509971570572767877257934695942344542711435507292376997467427562813722405672143749256544718529397369447087031521377821526801497628587329226951218615156574254569930204304760467568277257291306566701091421039611779638178301309729365556684612857063782853268012120924511295355655324503651238766248193245149740761368852726338353810756118845491146739839546691789593901425091723528151397110952616589713521484881306252719689056237514380563091223964546376012347414626702569872735609279113736811557759625197649427674824551207575732407608307246330914772310832862181791907542630486665105908776644505563801612078934529608678223180803592376448293073112489788567853216544224326937424997732480371868598653989705274103385547415384356834986090803610626747205024869445943012738564479576750953995223046777650401873054429368498012641542760281634918083079477737864876923029423773348003867206503232775808495454560338975191871652528009754051840264516426767492683282645168381425161704519234135137755761845813423233187967331092214477939985870580190105078843975359895529320109775090111949809690052168566178487917798414795561072904750652493345299180153737399400557225614502034937288174092235399279897447665160336212237212347820385413983051982199918693158400073488582223828622025891268136557308750460668487552548518212935677552087265412287158390978954742508083456538210593578628667402341381319360186266746026497032504318792917410743149165622499327686586757383860564499234979529258973416649277175182593834160722713599714875906770433776404825591746467647771892848028803608488827325920279690451108656384275915984457681785820315738027093175536470509342686145386017786736351625945080549533094878841868377308096029930546814363158378307760224043706483730495391325072771227922276166766454881236999807193425670711923466852798009003236997323087407921342305449542656658503513276439007876183045788043074942773912900943587056445783513235516400317013484556602749709039967542607673932239805662277670128814683285892980646913320427492754512865661087038692321449415678204737888024234349879933316234908277229171439611517679927042054412596601960850369572632934017701691601481561906678358277066168326816875709106002734944342464531214408079254806096342348147441117789269365578943536718997535163803712773707786010481430889172320266423175201110052567137383260138741058730612976801076212813981416247800382651431635906243913474910563990069355047234640009398680774197774484689887524036945359138857194045016641951106674724141434573169257891020340802127246080468116889285988270489152135682226632381355162724807650021597129695824698812309940178566651189313646690920874762155694012826340849975235015769288892372963487367992589692068924363744857700284865786660910931394801361314488840729314869282392630637249346128207010108004208992285720248907764007537142262303134493348776210024920035403256794486226165986083213848319998919197273379885405842093294616633715678981983396380415681599256674606973696011080832621713418963420869930771957050941305299356473359011090284085635792111557068429869793984112020371077114755303285422584280790943768635274504758192660778789631381263454025808942250727299984653221349573753597084648155396447047158669378696470290090506604203671633841427955882515604665105406592573634856355071269807796874692145331898074731903423779588786026421973037072295586017836685211295821003948669628229990968428872688646458217827795609129486358416697108276178304072316346815919970022959742204118228519035128226619728111257303170778146109773151659538901625162104754756362943710575454176742093667830780227606781469764067700427827597089523657095062499387298970987829348024031070435433820088054366917572447524622743454409935996976405286308520635630091141863645054711656705697929035698525442275247591398438655384460946619610343934043763716997905781530087278708561123069723062160465140496658591742588162170701401734232173740112122067229306979414686640931531195857944340493619333643558102678710012157934615631110844229973166177350728561993357046886589217486754737148138332662501928177040008514961080864824665597472566919713971870142116424338551113139417005184389444526613167116186863062401023905900668752635998990841548102458915211552700143750202315336246620361967744804030544124660088431618087178346850020570140579187920329605236587771006795047741709132553042433366279818113527285443744412895335278147199091803586608061175701378734913825365251820963711697149771317867287369682487130501321678668394306268534101566163170553661970038717087206711910140521475269666307274817687383265072050633272753930473532283309109468435654154592344279143087632406229550571948879196493031444892164736288370729511753601319801577878313381702320192304946341648679285120747199908961926392196263312204596266675744277675389202348387669437476071745298563792429481729707483010931856605971497790708424193781454375067378684830078221140766282342602163343084935370222312530118523213881598816672091202038963213456172248872340685712731027492828536050984233068827750071405474605481463572740895957407746454440962767745417732160951719863490802278703711109901329359814290424451455435714061086206145335451338764754598463485211412730502998437539722171878184013992692315269992595658824096241797544593631790187659936416750617356245700191713391968275113783302333494185973469246874817002292689948990777230174353742742638198328442134519658792794894629635168990172211812308394630352472250845176751057298131023152753869906106713263258206424113669231298204119131886999445733588353747197495319729222667988655571675639379840412501426568586854292374309995382757614405501705242465704819142118583923989786250374381794279425248311221858502765977872689865445444784914253218150454846662135630215807196252847071409150712177961399335325768372506413015408502838154774617339244956145728482682382921872280577526354578332539192404622208386415085522871468924308716290414628281655366063325338308760889511714227627994174396407621041087684524800870141359648211319227653020064958563758068243837211558221601038469064865115931019375340934204602977476245543238969176312903066141396453302070679623543566457228849293251586433223343260773990607313047637205612222398468941026088801017570605405076731985410651111781110571785253694934781650791858362495625920925606618709945978993788019931876163509513066354964792723768678782278247847961175597607443974094527407671795575169317007483427285234366882581286871577642002425440923189242552519664670758236346714035369122519048276086017494290684748439445724929816062701886583183529983664129257547461104755385164049982239858153804572131412827896520755512135660248068281847040295163205906999685168973823990847193949703316228116198232233921416970673645556660588465896161577289025844254277567344304008450206826663563311062850423298592649404834099487198303559088263716082391622786004609019808942657027330470777087398365470717445896565876313923172164428165761303587051142105254654427046849001400034602192222381010788544020113069421094133581445899072249058297816386001565596267432499727104684576506979740774378076541766889697192075155265895383651792484908005367139281038686050603630069115625043815336976479895830173717017630364223537665368932988487000822923600556220240735808475187621270574175748575824726592455842382595077656905989936299477711833245508074717058646690609302726572376047196157241817424254520624823468260940354105091805701241756123478364757490931453391875602819322173773614731120929383160265283806776878067603347189903991250733092444305121555681819480278561732461080278487144566892360226684339908459153100203409593919086469304823500674916991328484699837268489648989981909309514082922367240553634233949269052865430662551264135677437013275331447511297277167512347543731638722082651337016985576299380378965855518585100052774616242369138347116147698019833869324950215835775383663701813351236081202080715234306320652064700220827170701050158030813020021193623542233002212070710150802250150110701320603210408061936141809122342181301302238020103391523222700082136083503350125123715241047000313251826053404550504100407280426153618560227062116132127200317290406051202182030130920410220221201220828060700051107174017502205210318142115141002420238094406160910072822471621022020050444220404170204043208392012000915570950121314561939150800590549130918140905002412162303094813521933142205291436123419221447005509311650133821100627200809150040090710011800093513090223225822230359065922291141234821040234214419390807221915310515113506321615195017371703062714280834200707271238075003481312123605570901130319072233031617082308144415061024223405410134183723250157140203080533233912020622221508490708001921281733010512480907153817210626032714421315091317431419053818290724220902441328010708480251211420100124153320541105233805451444215101181704162606031317155311361900025307310634232116510320030205350038223107280320121021200712043518061108020601510810000902390248191602181530090603461019231006360707040611441807020519270129161906001831021209060913200218141818064209031458183623241032190819182109010110072134180716410253132405191019091822341830230921272325020503041224080420210913025812111308164114151248124223102248092318590217093322180431071113490029150116201907010722010224091323280110001307481734005313190313115915281813094205530148012304480402213003230918161616351603100719160026055308010107182820071358181800141250171017010403002311240147191622102135120222002317163421111605163903161200055513210313142102062328082917321246080007501111210512040434035404151253073007591736160120281733060811331816093019390801083113022310190919250902201602340133180717052333061112081944181912070113133501330534222409301216054017501021045311251408183600320125190000180633112223351504111611361222101418271419055518352248142002040408104321592328002404030126094100210619173316101654181015440319190001181457040900301917195716702983400977727039657986756318106954578357103415988506972523608276186355139977333133969007105474893623863247799519057521717914076408460936962230758541736191584826129115901056947715642477226834104510164263967025387817465198906785243765148940919155729614597526628288161277942417885195553916751221273198455166117964052262524442571014379664049670988717900166391259419359448812385456486411321237378915162826808887184587300793821153337939355950353304289061536800575444025413235944942786437530254537480938987582659286889801748425970756301380984597106875857818946161280288540891625031819489858244482320782822596629380425170043929640929435908688322995395725064890395569094552649171003324520446100739375380084208689288796004964844190989571233022185781104236132524900769961746298278805209575243970901131672045893885462860129461876538714622325377145751804091210026826417173954584122502572462240130944172857785051709841335394593272363005975488741053138951977726441369760386595665343913340102824803738228384236631148343701866756178183711453901446168655002646162805754742688089931958851318006529000579132507691361420404443673505907946271635361664500860512556899279332424977907290900403732362573519133208698350535599976569916230338806769281548282607464357329135891163972068401173353286454944004564601972440585515588260471893896494656248174696932842630413907864308096823018687485195486323333021938884692861173542176992267259098774860159251425088184493651734276239868102663084226190437120841407419521998273957751808689273735116667479510125417309069982924725316739028129856485632604677454479480968837184003554918260106157364946541770552056480056111086277072916600213771804966730772446550247014978073333028120034113415376243379009865743842842021399155360719074802126937957253322108094340403486793089445119801738687581788643457156923375387443976479910120080166265570431120333576707713570329522128730594779089750345945299011259721573610393359066818617254058251035818772554184905443100322856204132414804515216905281882449581525095258153959410695102334907422299022075612783393899642365024163175949851948965161353355775704054961734404770330996371982027305698409433694957533570878398870709818183056277603449383471911155289403934042469178543132633617199198710940424101283250214786032784236135860271853143393898303391874987504839094392388839034783256830686563956489491000203584372058216370571597265439224563619228180816202043970622883382375375034231645913618168299733589743092600864997696067410707620174189192000730439114742133339507068970840495677027751633205686250376155836424646520274543567516314530197182521865915508582358831000001543318202160150081504773824051085336128028019868092840686058324018581385357675496605914565917060390038760658291165271909491647829737536893535527384189839063602373946462837846387425274999746318016268192134199268628700995661652982011833313979057879031637243058221715679449691650377385037468025575723229059203569268094668711041402682604732573480975658016550890789197656426108433016675457615393189329232923190702778411463093003292910387465126690361476886623882090879149094524639374171502465357213681111138125199451881826777373721104826293338627690643176433486449408453558758805067318793838281789811823618531763831913171562527707999324460925106444977674036118182486440754315535508272921439724184272909412225849151080045591192013125359885970668967310323641721020271379119406593212460370260705395948769719092605851965080101930301164455375038766495442985855787968144049659095234544595817960058716962145689399061124337332617869027827230981642890893447963952772936113489435568072707668096427711961677740400239497007537711696162460730406625876793071333485504323886975750181183590319002635489139209972721125129200401477324027094198451758797750528972883165870403093174965267067340811231439597838365744491751509843959285264436732960160541058992975497817957096491963977231813727146124405211354565602800715600412985026646865698725712524631989580836953895503411698560045039576738576177182692012929101989181432986593551038834302664663658609675071552837806315577876721383585146385275083785634312179824916834166993920288393665916396645125925852863139199043035081786034789436353179188710760209083407583835075279996599207626448934284668524373448031349310086738704109532796492328841668586357288657933959854382766889603552217551783538489180329468049995348163220350823839041312284851179829021596906964510994392598937917099371855531531033018542753366808896423914875195780389945762748963264560910466655767552894166126591282111946948800798031147049489396547364661585525532746913517155765126243446055141484654962375741582939939939095736576100016396870557320255472497654816447191253316943841532162852973295300912899116554381228437533938011064382874295620768297696348885109458099835414280326982347803308818517166835227216855922710119653660566215914611958755288680605628166774953090709916080847197661038655518389129888078954821867729296214430769071731958217482365065093357363818475013687097872217560407847369540801625248890548414635806816532744707158122261620884491490480961604683135540363519674725220666726166604675995113686139787935246881310790499873010608959747877832800379389673980382454892257292355707363031938585658547891812209621727301832295367163381780645182220786835660560545404524093765675997468033871021010068869668216999556308636075297165550713789082687257570232178347104144883352865449794968432853434287853346412736763954313561192981868869545755669519057986328114343097890431956890268392387144033030167171861603043895605060074639881673209643078309024743519719722281137058695199266550504805359992088617207515731954226267733160969310054934398907449467582198404665532189939297972671049182896652063337435053829411583262534029328622354514609635237517979170230672510605706866380978181065328327392611462271100379936259045537737857366840590096495849114367692444424391219566804813299774299925814667119362054846278915465009139375123779392671945364789910210913367962250852288306486468521356838920497210383762190443689834090491426781927518586826648433155222098123630942617135816485399263570442936228660582691040560383336637216419959781571766142998165298293236517218178971157949421735366058823414992381028413125370488185212905763205614970794282345393670707901264981976540748002966037063490707943020136874292260403422782858584389507282915286112029341033738829081266222051650563556503846344418619585679729038326426348742998753203108898687471802808237183267096573422753866037009695507691552068180738014537014625840107682010079794737068006058793612898214599446721098877200063432635799541256865022669483469825106670093245752133403076225132971614928493932472133542103035586027314710590013475209943940198390781516832204119965938608436361110922296946774882123336207308946009418666908193354324887472498790966446345633700395451221194627821812791798814466109333964434271871299860366240673741759794825652694327733996762375153001240494461465635591786292244950868217633942539774055222505715041050642896783465257990463661181880048913226844813946805168797160599332734377361875724408498921616535457111243879782133608183380276172542760225561824947293636483096779713937337362145633898891538612989211090085536423745387181249961538293454270235411487769103984111300812039000785672847476909056916882569945866841720227492390307208490201389261006722578948027864765744152994723028467563054118442549636156068411599849629168093354128348220149553252859281046715270328314062957961473149594630240487913494789723307524112183478481156005798936976133261527573901539857639272618610734422952843179649611849498890986226701789488600307899889402316296685383893236078858219643720937328292501499565232355897694155395690788635681908849768153159834610397455461911568630652744762889106161039339613159020396764369258280540759022302060386970030677007143361936026345220897121040907202416979945994369444610092131092982482925095123767156358131374785200198651862587846483552434155120082256959449655442730174876359673150569043301387960249091738069087540488378676358838832405872098332473648287031548023115413460538033487418065536433306512795018765990815050415998703713151179249029063652735600679731595284963580048593404198744140951853388969815466107622639643981352819521554537338893333921363498746254768516700230418802998715706588117302572612113397993326594370022102300622037660140859588080710159091098636038993412926261422081288857814111244918739722272967665485013650771502740425146658494754675980407804177022614923845526601782675091834158137204064204598120238444652219969638849772746159360391069355174423585928046569750294857856958469721356334235440950497966662906968783849386052241690896186579442736666611010190332120607150627093432657598878608613631102951608302675778563273855100436222970689957693284417892900549896644370897322525281592832006004915105890462947948436820371137388240732048012098506857709583466318360620548781728262152053125968270472787521892775419325621750567051125548553125034944884484002705374165097186240671552226674053574774087985770813343114305859003351147658467755585171045046823888141967678575755026492221510073457851362750256028189649581934659501780366464297558189471836942709074424871227529448556903094332475422202430715320750425216043954984210614512619866357295910625847682001014680369627769678929908866493776434360454099818700307200572397695122531756490905869236823378806749469527955071067752846839925395075143523227175131015399363960166000681312861876379427967578066306106554970243748759074804201234645576981445771473930623229225363569727276762813283830492225666618121164575386130694153316750151014379211825500509407246480431442437276148233870524174386898877037217323236890360090637704138726019556329183858553788740051228540988170466055385558404836940510063396047231169576666004504113095699199850026267746394305978183424656037771698724746679029312067769261070861370714444775452662561482856266571874869762299470840839098896717729368780289818337632664188606394557911215954917945818415427917399526132542760016065048613258329866549181326664440185224181288321280447797472104980813463245780300437499349775198730750872720191706166648147468704605055066577815707903208150330491648674119017022166180149680462507627613278329113717431140808474741940554290171046665506647771470367727226224097885170914429287271080421944828165089539944239704994291645423609636429774213619123992487334410523569338412997703529061624908535378004078557048963098145294542998652969844041367504543722281043655939609314300382694844592968780148542880412832299834971133673062425173081432166067995526740921645040611585344907750617790943305989712535630017284326192824077727946418511408667266998878798746880217076580478316680183906772076562845018941730037206570731120350391657066214116574576008101498858044937014936651455687338245667735507163646217254993326171679234619015439193111099077341833548441159824945412205967016737817298075295227412192853768032432290775734790973050453495342093285302674746815379408207870432273141466148561767906359508742214146267481235963610242591354261492442449051502353513196155591212984352117119108900174829528695873952800040508605658114715472441223625619003332182203676814632759927408004911148338013765770098724340468420966577639374516272790618689797059389810346835073319563935889883231422745134478260548748635402156269454167433855652824549288623207810980537030587985932162017544313593576228640869074726464886209362609440871452124757968702978092937816062385501266154230399647287842420868567319060284779751741410865984538677308958790317277802605744317664500235378371955861672606265353012571703242432379955699190307991426947405742917488540841338140524100643255085627281845168450936411781684529475661085877994218231957383560621568288984064389737539752838851514632502934789290382309180645012254074613460407253747911444195791143522576994868338126533252941766835373116092668686666560027952412803295500953069436500936534615468075448015551795752690287665098458509398749437584986277789877392709219645494174908110117172942045662836523188260496818169104669234940117268603980155522650363186485432028965946521451471128074407221855712765770483172401321405356762477664860544859022482042431731991800640863088654532327042423213964205847262896477610866375812754011335978406515604569200792902550787403274135076011719570164296695682720139517471598174021723897753039429067005379360742166009623275343116901601535452690187332933382002515483045456327157515688496722953283711614188561622548793608721359313434680149093510030459901398283815728785855461411131885442239296517879125460454087605203937645666884354100632409824158031384157989356962349456143872151784396005275215296180868524127573867256534418083767697082687297779234703954544944036998577557933663985996463254773326178066724502197006813953432278460758581917185116677641212552345614133841499676732650172943692857157197282524164682978553128024864242854437755777901088869496926766092172753170844001387548245851109978572823478965181448845483799197087653945306937966076002318913437187853859254845573212108424493197884010312684756343011508932935606696046299941377705917638617838607815039782155666413079906733945134455177613547295032462891929584692121034645535854880366155415703994417499782725516569322696561883264043748058442090824356181083889946146281126415456006980785275427959694353223976663678296535001660956576264276771960274865305825265202908740392085414039508126033900047895243356231041022670478170639194751989524199499298847742606262703728014204528968144135701927235249576127353212373802856891609607937839102677159954432348277441775638454470018964274526469856165090152040905122030326725926859821592881212452023682583936422529117462024800326389327624766535879323466065777350013320159260649993100282325184640651255917319541687425973109496552999774818286278359622567805652085764281350778682003783932196826520051317826189912254830272208443414862179695684228466179987810938277405908513469798908623587536866730771346865552701292954492746264772901756186703572467377628869969078980943587878817470749537389611662558241379975994258833845366396610635823946055138546273961287498235536833598789013885034766463545781960270267428127460310186937005390804361476624824508436088323326213831210993445210349795371603714931108229744263201298752746051627841411211994010749251627935216812731278008676762521147522358599408238956124394116369576511982040926843466592222723122993171796417337726380297429816882792377176018498409783269565288052453445911328903031610953370288895503495376193066124634240016562242339953523375921406316136348981484073726011196408516692629361563299084778920593983937589245335554780742484766212538762670984933247570324155372393379788211985744051863121451629858165355926943840132053915732768202668869693628751049780514051216863117236246929697171942214470837685564371354468436314582190285540824413379969775694441219236419670353401204562231468109951518696928832229223775609594057149188351763449924987518681819187179303087291126057006952050753167636062190032755586218012724222303349999481682030427794961433786772840658672643069470451948856560480928086911222846431631099180100225204038354971691903875983980670090653149227612758929734031105878497193776355727112265035552203445921455424338920309261345163147391089565674179753299318468629237694694174358627640095797362193644647506801505974198814290633197070407913418419138809573045687371353457618549677140439759745232604606578128103336753684250471148583597157221065640847992044519607061984969645219582029069144254752390365598824673503667709174970589391911743113456165009559018152734538169291468672780547983289259148981800581709044637128655487093231068098995617424462192932642358757797554912393895353103913645664696973691727963884690565478490934860782265237594976096313059420089310300243432787341483845772273515827466685387137108859557563796991696987480845764506576627090388939643011037870170918931596899619190511048443885681037999805722232778966996049861111767219070522620110671514095093460157455988536431875044915211307606156365578297866322741613113358182028540046562745597596453314211010473787179505037775059556412572444136271931795727744606182737569605190059401886178473884804444447118963778419420555808671138650505476720570447537399854843773401880395373522822459036164152304717865613291533202132337462623307871505674584552195926237039399088366279645785390053738063346537459518682627145273934525920282200822577136111192707260383468830931731379679840483847494943811839618936043869144307599253778746874913144670463589950333045515839799413115292879029879553087763974076306683503116659605014543535231780362219504096010437995175304837233628738551055652480478518690467775348269834312075235676401003718327920321064410652513200983726602598404481361199035029512703760445291114812184979468058298670072192590881021733783439148799354474009237857603755598663294380053764663344657254504376571081495770493808214400693087567718268295987685060516117138730711368553091941291801795059113055417631751652426594693992621834004643456004914252351836141500091765888314768908737857216749184500324947494707724277314344803812926867488935340902581628697004367178196688937909399133139716038357717280589279078761423404937964057018210854385064827793430334351412105944056802886313736358898650386385887263752854893778685715640652540053546269504475650870006262200020374013131511116409177004737405957300153764859405680195226027672566370524530225523171476217313519128202405655490140449108916211002119621176582071716216901039518455238152826352693550488511759165812774256438964944696897671649376153081820304065671456991510361606181195377549251606881015157056979787458617934225966472516594722066957314726318192208040627096489587726865165619849152301622922734782036544388401724622628509483332192670351801322019710105452615005531804437182728737352298622763589588010437392362497864233318267350213071682490635936671525470226093115832517283368222077868869146549641000406434100199402534707237064461722256133375804713711620227836074847714649032233335065009203829730196699916169798450090883841171939213663615884940446974021284774523048579637490980172495528248894135199197733652039450102742923074326489007466186611943392334716476922564045263656531212003414428109926305699702867818526382915051716463923652329054651057363448953809649489496306296039065900058460852041426156196714291373373933102645325551291871433326857866759304454039873008259259078579755870299642630344385961749932687538309280950662963328488402026606509204400491018706925814989725424415265892808749422977069531578597650253003300623929345644663431330109927886466880854914290558067196051300146827788258641681936881927083944476847277071855446046436489070431326474366870007254799704035729764942896168055637182563262244954601615435763174839763719068055220434302164770019740419099254748054273943759903905930470034515842561574579775909534870757313843881733132135160413508096171325073688416639263568790033489465271616158209697873351263503010905145855741048034660510491800313739355192751012446935039564404533730968846885948846337870088078722728247808814452556810696088087805311069852805563551180112216972190803059705779042542562510984387060465949238443317343963839317441871967650322307666794409753652279666234978363043175074736120400704373042172513560948720492001456756877912280212255945298487003171575769393543918074540155748081910873648665275456802853142992020262304532697588038118806772065553400214236925555496391235652147704418772497197012667926216465109912114761399303863047088820121729828580790552680269105182338454066047527225743513985152473514233559663374287934982456880457300309119394051197443953278777920596387881568849478291435603044247346570956149442920862915168483721140299723529616001438442040257241739263003939654138229370824857637788683833450249511991245934815520186644438682957534673654374992782905296646265398638195753227054689094123792738807626469625296869168529340430392542033721037993683256027727692922275482644648244774604541521512811462720061237857291722872495103183788295463321367331109859023485815417909635854013887107482917208851685032257300491069860802408232700342775495908141624898088352401460005828337589335661880126341308344814679555059892674968988947603814551108123417655962448583562294223533046583447029274037597854693828312181596413653202018693629298951861708254118320049181971856220745178240475458439824987089084192336314289970551342740586818815528302201564591643874245284050536334224903118598516404138212725192816642996012768644313120590218892578287451802654317178868514177721919036696232894580172470977327307063528048153661968765954806936882472195202321730536964211872111237019876255252307639992825132308119471066061896846458124419374385614393556392192938684098495279267628145390182132734570061580728702557388329481636353579755756556248068435614067095437423379162186213357782795469866102972478836342874363764473780039607434188885544269440234740978780673534928497992841159937269421010487173541174785702662173526559748640467861785358361835731355609243603424589138826818781280900126244275493735560253879045131352335388465131405672065735710804313140918179873754055928750067866072836565398595196684848448084121370092858953915486127122338748126722500383589552260700314776300082629388674463388648832630783407350692397112595148876125098850417600278525161904564462122560343770588486024096308439694458870818148042507743802616191317513960611695725683284054626471772053864613221688050712345834414981377272857172303831196070792929833031087895416252057289529647993824936275420056344096165450133980268232678175947339399666847613254078711231898050370359050239496492096851815886789733389591857274430696342944317355966311359590363134618338043518449220712823685257017274662727784104014332278565388549017566799514957014377500509743813419744854365451827427241605604579054827952323414881639626704914979530690056581828071393043702203745387428158203498584267659789775373644065213483921461958773863938393085352894316575830332596119237518094501905346639710795049823266779758023942614058052781394578764966688068675233477521409845455527875846098300605019024345783261315746852052210824933540342916373798585926607103586933777540384667951123900783214942044991103564103915235293309322634152305902033558930860784069277092004151033316974148277347723662494154377883636819412981566632836082171076049370191415951269864504755463743684218653142102181210253461463767137604011036255237242342075718037497548620911720623542578462920290875779862232125509559592817669971195484467923633741064037395129226193902408156828392780705709834870753073965697056773743538720257438607531872511864215002611425370715945923187102795504232508501650279682938192551872987558233632253693201257604005763866361134839693996766162995323896838622117632700011890779436681194276526355943029421199515828552543842358453582631715090476160870230927607274503318773755337528768334271311872596384209647458008850627804636298384024455868772230391196957057245816498330475802140599718716739851396573295162114480675510878160051351666639364650225828678570513500075272403624511883413277309502575358495341404305972019779896289104925249817187200363956668860805229038963210159258582524835748990195827240063541860121360410212532096442134155138497787882431603853154432899711537171485411300042030197495588806189352137863313184668034977699661411069099332418230413804538454710289101566970155936924761652054461212802885683448241889552855850241994313303907720470367166005603444254393847664413447088373731760945346608641950168126545597156207761906683934632266254340974944144318815153261186589904332192273878931334100117889835524907672298948215414479412421333824492376280216966331014558515195411382314829810655409271084385009470457492619563886968623039792971934910700655242049914085641869074753997515896778774296694826994067149915249829996209478716816061172863985995776583068459943209927775602322357203032299361381967697790088064510174027762840331145576040294413575111794992495075691803312373325837421035168355522981167179942166755754356674506674044366024109299159977762558266336702138972015637434660738181776786358701009474681182177607405710623838963255026359068450974139639984185212892157105664217295472361504216385656881603497576799974942055299828956040477987403842740070472630366861964850696565144608888567773651053287799047490759676808240707693451195680883117692408515594708234303965399692413310429593559198164971363700981318139881480031620043743204771960223105838349023208984756493501951071742420549317156207546670233739794146646321607535475343407128780062290965112596379726444174952764164424550922180084896362711500335743285526541108397796770260294068734779927981061321354996301432258346351786889810997361383847859472361496066701748043588696351493741655859030458100870598467503457306018319445823815151214218734657205219155114354379830519179058578751869699510096446472679504919763550251923199918351209618225568985643628455857969566845394102546410427562275475026600214925942690934653209356091808593520640262058453146240095783303409731300303729863776135352485685864871274583637592953627437891571885599159265161589363214743338300285100389346136630111856174572095498638998387761670818942803570725064899222247930399127754673441865179788169579597218050821921578048175160106718508622370534886758152132115894301341395576764127345766536650648522354536358537708745954570464492813177380940790884280366877307195571362045491377968911145739998374421842214586540043827442662214612685511560766818995444708917990986496542225667674431817797769366078942245321904024346816960887386869962229659688364501026108236804403515102725728141377584276499385417485839929147908442692923960344031165544755413858083371556197868511684280794641911126065061935789789226479358780427563244552324400495178475670737051711644566414494838424909857382427369874160206018699952780289618398712595426470374979257468859555181730509452621081473813125463587129853336080473687807136761414586550213704683364278677999219291249392347309344330623681855009351243396283026765587856766754624705809094343055408051159547764256832095548340271024566255625233018711230341380827563969067747031433255079321487479876005865358331994767258464757037726543738062009059270261764001732150544193918546570875656478962623094850418734211753195640407612029555262935782115611853744334289570576658116995838100116670083775511164995274675950517945499567534037366420594290513325767677532763963858319634119905421827979888872023675590612355763734213688852086208622992011452402503871998763862614613074119122544047332763322825984879843965287612971427194075129313877420447748570094345767577773686384445108944649513407800994266306129554913672283725018947355183263841095858323870054129828120983041844162025952447403803402387597537293698200386577247013743178553842425471469201571924951445951065754415276654344250752889097952939354706574729600069131387441822372498055317815039798380807626475235721101371346241203308168132994268931768701856047516283755296847708821944460721219548707527556185314711656271392497730909030339828431659788153622516834440468121735386074804284640782398399028056641823643203026672734844608695574853381714919536344622289612594862817228002993506125085266366921914761911561028611536977665086208008883521342313875538403600683535302083700562534121066959428383770601178183894006555247834266531678183295297316531173752376790265211581325005952863435791681650492210404984875631482772942080067550374146855191604927772936841381721426724691785038613088834730447336017729207024170277774369298314434801188477081956926956165752099359036909830728824249757863632638872192901702644693874959116327629185563133794522993985381297667408245913064115469343374480336557538638608091126573821403485557741758683163537236385262512524215034937889075897514927247913515885849339949529672591038778691337318994727508761834192485707063750121167776343000786713593328766384764066632504270637703662773900006933671008199915813868009229273140723606679556386809723892434272595918111719844383246441693126139705147869890494705002514321408458904814637764129932103729171546134249088046484920156634528474209152097084306624415148959962151484732292216123889306816019202583382198121282272618275466761299072384069128453373769421782542682220099854814700338853065059152644513238480451608220382925593960217018609936251445092225169874541023468051045566415887708195983448523798604018959236965422526316859604371618378924665758310117139725934586424715359174010139325358954398008922359586795470489416017576095016619877984955348381959190477348067985160153206123761416742830953698736211079598424458665124233929051749654934614440640593361298805054668580362040989237946847745612965077106912022121957810882173475017491113092382462465504529402344790462974371740061100050397161075868100948013377943114464916570330698186125103792021795039329346768267876709825111445864456986687934543525508621310789180380188002188157792936573456699775316233659653226299715380763241230373145838682923039996993557941831284214498779874011133437069888784063881450722367392970785615550009571013968371579159571438826599072378628900140314640142814218647939819042066028740295882946430926221059459808678657844214787261113079769173697437788318101636229779559998866061625958389497802295482898789954104900127049905218657167973626943538289206834399247039794602740010546702934132368447990383457646672375254409465134420212926224529846098318248191832321536945903098051903501106372448119731004340524014082872033967246487831099826068136835534760804709413718209395597472040085316118401654442763523916233266832849108088383202928746239988524582260355454463303024818660921055480193167229277667559966350033449897210986769848236350641483313387038945656320641270708924672756338180938069331174214367801436290999255124163968240744207027859276933282819019494218644679222726498692596793428763354053136306918252170261285115156946233546629988526558209287702014006201952354130768859763795583350597121469585415794326523240637909364253638927828088993496397183268514143168760632254890696786555465831494573563575592936882735661229470086032702321196253904966881123400440689308940456407556511025157991065557350692533462685393966425004938194929691949168421677269082459759437865570191726657336182483713119972065500706835680142234537285697275359172648565702307663752831401956023096968697247239050169634123760878920070416558317180585346284592647930897065217670658928258489691481048628251013850384461877141837382652292976614562831701917048731473010808149415268800567063524413424154202255249278993180595728473609011460730181334642933355947487264016752335041339473066576551235281632888960831351800410743010109075960659419674429943486188877876085549014190017959116659877187163368887092838617082876933576183693674916102382116000539733521190923403216666364145017216484138401246861379396247847517260791918816411827364891924729098307517045058983501024337877719872700421032884304021706406063922517517208098145257369716530345711036678681371825171656270108786227711857868843460426415575557099415401421478743763726970124630987832805809593772289327353428779149191095791747645135065048938712935457018453550587354318414315607871228712650148735046852694260385668925953175726557055192863354137557080918268797761222946506250904716946614793316658380561048475826407082451825329969252325580823886690957592964662940667408249153703862800266935192798212828271743916079003039147305746448194353942201812278427278196509747887565019794549347792092525633245492470341848455626105579494937544814787735024416090704092397640329354094946945408894683082238909569505199686714699974674527276593748699269400737764903499598881308206600970526489041269025819138709153015492296200983014918178083271622602586682860925478524484631992567827043723631815789200811884578930209733589184382511225791625925460050604672172640195771451710766462422291654362897572969960888491560022790401619992228349346230225379186578246734099617222077555918524070574009351213161815601891233710002803211271534285770936967287663020126750343036704704006593692360741305891059383058386901353216797228439880395720954407473005268526106551949560663225138085443462177951449256781333193338712011747648370188588229311926984914932840814396391474949370072175335624573831491463440906565286873996066780001787851862443816829606759430676089577732590145225086040503741129635433909611560411469994897399046140089107742803232066963053651956441043235225109306708018693555679645229983073895324424842235067065555318771494479712015489399392500834990674335785524405016602938998364582233014451386700582729874534631093226199224154218888285236957082029257349240571931575280899013114212596043993466492640674845832512636944542228632251157363874020048183055710734610258135527206942118955920534662825386290355684976752665533859186438066592860924565790025075344016914581016980460928339540308125774400908477404451431567637318399020505092096213684668320676368907838395644956042363472079983863409947539802447452499552476830277154610483357062252047485746179962539274291510541358713966997431448452307884687419481025956337786907209895083938848795932359606910768021958593192849998106484029907316981683734816775702166153693869688586721536267825420414082808087523729897162089677834816359382254874300552335209312125260747951480710426727248014096012960366360194449889540702262295447884016035715356510747225819317565766487250408691568469955810662814058012349772612874910681057758768463254511927329788880447796559091324852930865373796097802655805282699493584057142375200352220713468267320341384540252907224726386159997595586907768946045003369395412565375741132795844000389312519158420266030496157345130217695213198426567707088226527391821266071729872088732212937979580660529162535835343856850832919214921255867067700162572370979615232191419898988312275763155028515173551874367348266643956893648028371575130039670676297121665723624907678050392612296283025081031640577300713772995342733087258701975114499547935218668890748904101270788085318605294013207436549544675453958348114370919707224253686493974105585932117853597823969476171039681311138104672380615023611975117727227579476579388042455769925399685516204664713159707537145764317689486173778105676669204737154924602477252385804018865847464902975449210930692893213515986500234930045570893415557069946946270969665284873372246104327409319920982374927228656469917664216696585239987227619884284901322806823174332757278995442130258390607039453555253673233736378291593104013954199788758515797176016195114865928854759053308740783794790357488258783232706288646307113416440166404005745109851161007113437789254977363166191465527805839056895695487379793191207116134804731736050697814701174885968945067364806704060930143363984676810452945099546081503870270337923999350798405372790307303028261716655662070437599763661568633243769862613823696653849714508603883766762605083897108039395436300993092088123473171140585337123530408989511981591236525040866486459397419163859373588700435711202453229472735219048290774885160795040615410607422666201277843320293017843387907636340359486277108941340482381336020707084463057518996528586806705025639095788732577243049121028775803197890084085433946197641897791382837934305513668482971654609229279269501179102723821941117323407624439898179154188649832705227876258738393286206214486779163467120299634925655650890239047967592615691667045002451357689114267743303995922328403550623593557639929160846533436171071712080044728230823361408906748666820718979271529624760030407430515241911438113648611389578921154966537861333191776972912566298038415700084905638724517204396157339577607589791793757341021030492757515112792840360339098845556619603318764454817067005376876055518313704257554392758850333743161983650436275871258330676898095109666074231267555159583021775134117621528400841834294652654429819704092453017227094193955407709859014674183054532642571575969565315711331991099186405638743871561773871130158058587205968706746042921620427558079539326580517549310512695678841073620762544100398814745784364863854482864897758538903722793640777025681694984893683686012178822412962284730873789006719001241277257283139884523949972669296093355352549696682457830220468799603542816139928597684926312599385908304963060120186011578723022785302928362085528230226342968093128572816864948319589155805906037995694631445249464850397376681973604361584771056553118650832795046263509236661522003776505343978973589204497108930979126975816626869704379938830641299974750349886133822569929713516433688595393005170681973095594773234344432717681353393556968399161077083524915641314048977837504255551427077953032707502300924591065008999606101379580665215049248688702470880619855501039078294945751256610978460628474655972318694486759889106150867547119638329138408386968555871255104636602045996875257068866476717402376178481355809599704677022532759449917968750056622769870904584850546958284581696590098067900237380051066458428820899485157905794610154453364953817944899490316166470766634602129408774082166403629757214030928737091738249860022098236118464306433941298151844301883959087226483332707189018537406251248395497166750160360394154081012109440269294178624598195414030504354172919119997646752401402613869971354267897542649485295367020634001638159450395906338378608713726344000022674497202339562393043573304099521570310141048777260707900009211370898298299152462682982367931183077898896250875764652839743126611617566489672158226742023804476954916720727326669490096859375190261823249692569714508696716744453615484624039438965069256500750413985323087356638778849346997397451655353208189097297257453842579090497242463116690000029410140072819969995479333725246907098719249120663110454018642582591196018523020305202644208917765652857600293198733627095799719085747845859135010928314865715799110745198876785968879177188102906002437582953708975791094365708686077352039611348912721400817188437663062265248291678686557644594118377495955525251551984000641867112982427263193149203313336685318740336912361191759256370855574294434381239104113593515237047033807766647891627563207077929723320529644685662351047372672984681347110781861240556877504794666090321423125641142242780384342502586182902274196265142321904718152305505023950618707735916418828412288066912837038591041749918710554843074172307938932746053815719138219442687933197988770789915836217862958006911071883135843943684062633492076387794305217101990532284943838006946625828975443159254410285056620125527560420949077885243633977125522752268308933608873497199358220542621461684460037925102466391007849097741171372922030533916417068762093028392118346897630517022411261983890113070806016002248500598185736300641643721639425873429062599506971645150487895976996387058915421465777062304227652261069358623405532919882407383125316049632934889868474337966107450818959237795761841565198818343447496081913663219535599461003198325726476064153469881885893407772423858305952431854421753083307828262961047593246164335076086509812426889338316974713249319597454777181937599675000189656200728188454889278575964459737411187120831121011080108134627935093379215763373243764631205249290603774177433575038326036207406647377056959629762911197356646777088620898136731653448555001030928164014212395051509322952362875711867753923615094953060510175133658328474530834736782264124768878995767657852068634835038329371666193897912531215602303385743728518687484782250701376935280715318401352812862103503135158249667937374834855416307721117324211214593472866837974283294671995052354192392485428945902801081158781457388289071815394005944210023479406066671383017576378541207816559141822832366129344700186586986472496575353527518746284995534684689372377935666896823028740103077893824547825923864785165052216496876397228510381624929173776232133915656655754577059256660351108647646606736332920918298624430455710682035242923743118935991216637061123898394669079733778578071861496161922063022214799439365571643327390870170444585617195780545031070592391835881098693512151023503847409321626989845643846733136732294468927198527127886009167629499479448671665721690985529529120770904767920434334602850395091854189581682296408419442781951877606534485392066388758240230752970568987393405072566312846630462241149730135583515729665761235683016383272618736202474367548750544246722244794703592221875874442217348958922966383515722237084870248735463439991959192649401186414271854805128233613577750822337702472019438751017747284751193147842586150414890871568041871091628190953069687085121268879170406888570992759936389686946021077256289940423941894379181084244881559375643816309423770817419560653149242962526478472010163195608326216027180728194118854207505636420916135493033499059956290941145430827897336026301667747372529335750357125161017353048778254526890027504454257526517538607200259827198984859441073801935142930419432042753267825613645889195694444091803105776831631787464384615872373471953001336496276662651959999445726072336395711950661071909401188167010332636613703988474416393510664394923834538660710079350304912595831905453098862379058503362992103272881551525253164243733753256189459048850708810973895054913720533579311549392493327338449403402926423056125565141049210513080803737606927120397335146270590006621173854501219912665576755600691049811358063496057834115542714491026019020740235954275793327963367247004870336531775011532278216647399795949535779528735570472656469914298906100759969791282821339306676532072846072278777863146667779307332671834575805063880339531516776593509693967186161652600303931780830245318737245534401489320675117734592634396206840737834181574352950093287709302472548989940006903425575654012488909281407105317170697699689387655210672192836933793289021959211945900749849585275559347628862298189102304443943668365160838187755040516325499467420492391937311768890305104977046075736275867990472057711438842499034593261544711359498836420733246885687989526771748200110816352820792576150830965809403676587053779508826204928985144341601599909716146708210874869291832789622739511284844612172673961897335607548036367534612060705976771385814616414531543618426590267126597271099664616433315396832344928803327151886288382381110143975463570300615350964305253779228328632360798277576018956020980117129671860350798619220046250137968004890415750533236188718241172239269381880528562780187939555934252136385430828077848215123082684627642630565711058719594690330284529142520874031293487502295129938018191628872066914779692784739184691200185872022821425842640699968747460458371976280765875956959691328545007646076330819386141449977054863576812888961877104139466877801257734346436248700085063300004498760413385779322707781529433324294747728660929308829670714108095057567408802050903450561492361066597283032177876410553458516413683556272932848452685150304866761848321913751060015373843314241517199903176149924385138700500777214396000120679339085647939840230882553727491712016168267645626098078788525714622772317161491800130263333753244391394368190629772568445834955382719940687107371307178695646040380791972188123855255711401430463682757933408957179079556838953262443000821120245435138402581908923650307824733658352713304052892320669402820466992355610024635593241299884998293705953770963487632722469347062173182954946133549625646024550661788039577887533670743752605839338535450915776949098082802543363844809822972797565674134673280755293204926600900497779861922653121740436175852466388308542128136348825996160301855637471310831793840353038224823127350986651516536655050159915749660334385379251178726807610006191285610126967189874792286272428928807646869084953022249899833770803928212783329121830568890770209928002480945557071193923503744258440112935052234370901599449973579710685825786127837424784067306248251368518680321103614502561852853897546881510373519253375970776572643465772399128723269041167511503862005458097675294220260139815089535572781104448132727250286553291814071154915578178335228429523781353405067233560848596568664253123422476227899496977418479474180410904836237976916838561595299103637848113128159256725195940953602323907862534234504338854299725941573634996365060635936447961704659276096043248812908000412666228160689464889229805889565875332072508823344311119385143950570312281771108153524375605693854734292113034718799033510571658791746395030133198790472121462146424207139399247648295831961582398360998155008288482385169224564600197764913972367310090320066469140719062847119795615460976769844383154834715310037085467084230209273664178074466563276992506059341603746290739351766702338105702872286281697525324528364927454149886607558400480388027340735883755863861797085444607502154696167475461652632026439017624361916552051097394487912716705984019074517096543171213735819075707607822097091627262377127425443129983525921674319171242957949654386273363735545310627297693668526728814570840740162803718857070411982740604634795259561291995640043985841220807415281084968075495469171941734149457046995891686683444723324035081951735846338935404160463361296080062594759749539852082159837365024797391930162382243409890365749371484246005298645402262580603528078189809730369161024711990364348612055669242212144159435729954549264610546446967711919827623670570305752351209985213252934699797687556196965851874835621736015266361232801729617282496195572918069949063292399112983387027566089375076821929370646902578192249720302313506136764792908689787467219997822240633242754782261262604891686697966704544471243773655963574165515771546761813354881303199222948895556212799415921037420258222372201780866861478330190136529898041611413117166987999127216525006771976792697297054280981349488801138490129652991847181578952720489616855305133935764161955043730927238509187644502796621865081257510560715407330044104329647241883002493108012342493605318092346461422864099531729475818879330085164192063850577737287165264342401347663740195820160370890982762145922016354606043417102045777097804989815492629384835493387733935689105450271942538316230150118146693918847412233519451945804524212535862056971891669879474801322220970864740597301296434305005062464091189512997750913689666476967702220910691141825515888532560355518452909208752465045282479734023662337350568078010431032507226517409903878462449172469163072903304057800665256916814405824592086505848226289390606609899812221757975116768822643499648771592609542141558084006726973211910351416927040194055476487572623122119657717977678815554397494329481807530765851999471757882126348748687037579843649494863401531342610230244327793847684498418559513713331815953560869465722272278571407050677944494768914799115863647206380889888778850956671884471320628838813591033700368153459631755814091214318974076106157438818273622861814483547455465865766330503435211528177388045271875610448487011224493669747838433156950007078027772187720696360905386536439659171916625642536374616374114574816142534427074399906494279689215072548473928930072456832187285521199175053247524960775814035128849773190630359555222484538503093440785186003555458999635414568664691877013648007205500371426062734985457098508731625305431045095180411284751177268543633855431299241832944165425387655244755674255193633659857733005453409717636080023174400639702267889178382592276670083105377001547920185578180836302117368489038194425558550491443169832955269543908531075366697693597926246938900658281209447536857694607239413745593830239758861918131605105288669193301635594936750551499873505018966760659510026843801770442803047697908980298884766220719622884646242893492058256804682788838610664153287372865036507096455305587239310252630991270101266870887279453662634435546313548697253936545143860746672022457463086531869898039245279191422158807206732997688309310229498401870199172350228141311384758881733112758822696099124609949533139152711649248978875865702416311479344338758445006076826334930422786852444701726631023565391949822575824362201461739940821156140498915071665135382920087165476822171354665828478576321040075060474395402835515978689040013028950544417317358642410648043428147487597145127268146151821249108917996014536451088428108656635794620036213252547916177071834048974172105121494601961952764919216528736480094568622218601141729590596686547186710629790882669566159406103576051532100089970492707192630351522473012635607043670187995980285856759638906159568678033557812245075129393227074632150781219281676017333937481647327908439391911255196620822230056186466768804291622545169708619823473479843882563161741101675714897081814370138714545817227180312998448134647006285116898986363305713036631116911080419609046176124228224847478106437298611408046508279376556123184974883551781580196992715063148722417161462759597693718225982040205917392543095656555501318128842145358029016422032648579459827460184020852558499619529357589810264623790278501106010883082744094128376591934175547389947054004518447372942994990710671418022249632663827543705316438484692824079325222688213871371581014707190346437919475026182055359831042558897634336100599861504509750696791622954861814823127004439798474941897681763368483646879728315649697292643623116030472706217836512466128000224651228516689007571701074090137257266660809677701153851368623737833184190080239729908439690794707173361795286102999482949449349528305535710215248770431423391235665880635377262410166809698214447565946804516426098117875629141192969757335239316222523069932766231355623087163520291956999081567999896150854599530156438446554252016372404100239954130046135069669247316774233721650902107024734443198263836680340440965714029193978963238616641668439458747423463261147620125816236176452012571424338042071823283118739771802504969157828309553872946279466714046695313529042912703966769069110436386746932723754391008092635340851662605692304631572932729311168186218179541668800387892983328453311832239339015151077139432584018725696815755287717737518240964521038045525248415487738020745585122324867121227972558779390839993012608051951789376293634393402712711437459772860146279047830565813897784984396243225654267369699486896336139574168723916962042428480035698942569220197556992439370009412202406439371222183403226967156081799415955305714781500898654928339043377845791015346447089075102706566030475510653958299106429273208544830596257941125451746051110130110901869395858705884780787847502673021358234110231524543011492189227477352554667761697703001096615588276327299835363048152446635694817948527940417662266732673979160402742552111102996332717426554788991481070451147008282778432599733221140536235627945649612205947061792595774553380465409460984569817383435997406891447255233260111573599702951295409201166104027487593229174520404786180940749578546360217913763560023130654258069697304346826728717844441671506994416516568721392643012524673384992131119137662927895387288194228373816153398495264549860584292580929911163198989392977950222185170847635347566260590951206868898701703175762038306258512964076644976545632428826846153928984919801806185152619304713949095855172351791075009130867019685281033098935861274794986499805276541093200129509673589130464419276821028048376698922168631052988185368865553185477559610818096506919132005761455567543847454977805626634444494936352995307268803885583893319844251762490931936554151934345858545200614048455185685579331641653248673584000247926927297686896238511650219156808472573604008668777272636570704078842466581755154137963683509289002082521168187131666611426896629165217251679449646752238166562544991182440593107725986683615168812554755331274495884756721847737168164296055440811928415673380860411533068779027093580975348191619503937786964654538627954519496715951406570490078355299155942838924869302214745344003041689656474146521905398430959772587227965684060972319875314969769166929393971347008646361291300582580394392580306786102289463808348985660334477088452437920192059324241101587881138434591096557828405383734195013995451582314555365938585470940608256236792207827982907530998054271620903824537755305869062524863803629707907399324265830155738805073413560896177220959806246396909122680170594497851785627617627398605553088920185844411459497344210579239770669752177387714505674360050660474189074416693286573310529869151681262453125766777408716455010425401192302918475209274297580743379036567400689798970014010451165864844974187461888277325591600623481485300683765967298853835326355397939387763282564233553864007322836802891018955286112273407428934144565143144480981011065239537308381161096803992654691308832651683510881092415224797261607323843421948277369989260886331191255815899428541990271815395718975702154319973134544191033041918045384884686193126116488377810249093874975940583092579165601796444619924124144889382876082827317850586406735501082140457862610780628329288503148074517639372378695488365295295371453526308805781981865970822144400091507808046050320440558370425340469048405792487171305944213648260558138204486588325493552572575742282893310045773431386600665563873320643117340670913446567223875727244289827826099565933786231923262343563362863123421978445704789355474699267081211850239389775867350765882160036359283802608582339973154607716835332667444816629072105329457619577315977153833707764472901211083524931410595249665984519530465516030986635388666164600891439194597821878834812187420091613944754088074438677508825267440611792317072411299132311502948664835373536942541497821730929037931857592559646996054084200534450891078490526118303208285655695700974582766456818113014261641279471514482154182984648279570294048798429372196008865653120294429700548446537517256242939457812495338646932912660204727786118162303217950020092689661777764253787951944324469778442940152545270633204164533730899670083680849905373646438841732275569954952421553735714214224294757433632868400628899655034472076766412900385681450639510240816988263321689936044301243625626219430632703895057310541473563870437950640250834857720666796617882336709777929163960605987125402346740815704273763364718735868437568241215599071345203762800594637770552105922866352212379533071086230089300874003414241539091802393552536381149552966784569098759858054097785048054984651909353763129159787809852004486529615573492181999419775204634837650043421340676110406784440084956443094699833453851442197659343649412302580794198712240335543525519493155985230246062049818776805518470556726500439746256068537907961277550621220824616936141192882954825118652573771328003402636874937690950837467741056385031257178854618047816604589471754155869365850212301956843766770600045217745074427707080721210359515027618320187823906362921409738555930909866054339645325209510868162188399640597706009323963048999889225034567571281375983911524174071858107476649176751389520340048259043227851727244842368122876643739913352453770319510599181044011808723158081545246612214082220733296158645150754589840858474093724725819807715422863199243767355133502977093304395122062558104144158182989519693847222217104476385815611224344295525682193008751212477722590896291984060362151256212282770318120681786615200566124357400811475113146957969797121318487228086523918631017639860379906763692797044587858939174736771751725594922969428342097658885502638385235400711430842865306660832932114201669694635475976297856467877832654020661103536796681734520281770382085663575392017125191950948042214361101816922716365429013462452307874692328493722178779535763935461494266219051974928352823993839203132890246947479900710966027347085784103711587651383848226686380895169589700937947695414646752742168149180314838864868448141373705786979841400981788887362000770651815199401793716059591841487917185916569837556838372116906360259451880949966428565854406890029867800404842214058870430505598092000851815101119184124842630490684920419696433938630386816712132542629977452730979286020801379755498021875382317673295652281859770724184831063749370546084684901661268348945458843158912364950082930247192160062583085264880439885342850605674230146690666536775238461072347969965929219567521483933676817435369757174692890454095303639811288319776431833077645233996612826341458067866456955217594432316460449262967747753065651984601575139690779335975668934070856455138260715229632591893264115974422329671594260434735555187405484189731392930900367124897613126501008170333351428703735038201727533999229678054518531376597987861671853858415708468228525649223271637366568386179952863305511463423406000275923956926131733284409586376384158737156444628267382576644768964298299502896595700909267119339857933096777078015805706493018017294855271412119919453414043908865077315952338438309866388071126364614160440018661569890969933482697371423842637031956646474423796741029913605833299142694080790014588590293204063012355315603921358124579894838092668766927389637285593954255058660126368210728016764340871341096962950082628313623828321925592722385515677271255771727854193458980502700715005976972090552142221929165296190274911648698005966759317581177590027823167323015923034085633947009807714368298356524455594118911031321710876688738642365430360535616602570357891548036976699135033196103516190754881240874000343432479533551077684425478321110227276837435779879732681895304731322470084608969854238763547043260345640965707383655059356883294134852420436306615449721008875666066352012451295027785540275454587924926332626971284888151517766887437100044291320317979986231956673954317473396018635980754197918751747609950659911222178220921046453527002593019517568668242778890419648422967520031448779428532470369996904679172163734163011098948725014454410935637973610698481562044605928974208646107501541606384899192104463538984446453306332268041844399204700361184834678586229458713904624950507008411727571398425155817010961807921103708643232543535228030075577337722244627478842836270216273207580572039059156212373016750696041089836980711015005083347472143291806648638339463559005874245383642020835644491790858419593240325578734362335037244452512242758532992206659617456500687395558261370314593789389479615894459675738734713190680791507964548585492894055576541510375806887428612860788664503041303720968601662695467183170120274602589180107799190757311964084842705011628797548093941629062510526598317913861432598199008605810717004968503875752092143749070209215432762068522294282867336599729456021923018422677691744800626223916526236974890382103760122139678551504136586091924401914530410629633987707727412010517654606462595635894670429611730900298937023413278721594713598573268444786654601544301841657443955015472393493901195416131688624279958607100834775534844898389466921494358820530790319942506022773491337027601325768805697899722505714836238233117026486879343829400561192267645477170611994449230873355693412812496675988867774292686212247719817105366599449892822923518332717995956992608786345599788459792387244493592931482109712720649710022053294109675707658356442384477291833991460314584216166560081073238396466789613879015112427280049707619884938794610105702596818574080625023117473356984300402296646361309407259402255158067011372647100205747614109093158730329713551139105030034391137858947997693416397089811769593757560228211744762800415804717749483594507876706700669334266650047235016739263809791717905932885773856179383907045696823022008494458095251242490889629984082406199854804043468152222876557401285515254598567542582918422239740276884380862330990481836619291475728176720214508134936944917508839751271475051100016754887415822137584695256088281658218497475554382452532040870813417391919721069170682911616751656213708044271107070012150577415706485637154763041878163405223152847462244286839752654764207941409181658962487756656049818316420388674819369127644039435926234243210818283777069066139194364758511581773685566796726711312555442525647839344452866702180027812824294015899636695978863933552091742026875190354343194305025046280799456919367368920999734690073991965588617403875602538005486683647630343128223082446035295000202385613536840087139314750134423282583846880919420787098763448810355840438343474171464529481030896965367035874439836645673646830854640880342874495119315138162110402088905620270824171043941261823247230621479495724703835813763479703368344067345543602940142796709978246535977746712977785311565826747630706696249697372218382406914190817227008907297745352834720968214977915511948520926974707350603068232982083189510904124017066581797028894398061873979984421491659249259111083505529351170259739274871161485880182697239816990947181963345787529016704103405427154860922834144229787313207745881863276819487905927573973056217604337095387792630172821789021969277366892228628032604588254706432751437338959316198935569900209579586650537552993760750628152602848073943840890700754872885859782461481072790082745195806518718305732931967118180200459766486236338535081322769833841894596644563187965522903790765348454303843786868187732888189687812462356268811683167850666511315586449573156306750542006180583485222424468470325086186358025999967117323518353685450720897430846950221865356899543043814731998376140236369447390788680203658086608965921768337633121068683668737384843585782196691596563928225302005289053528659607614171091435948908130253293527852768892328752758974146746088856467327901581240054554371502271456238543196256540602420109671573902500151045801405167802502996262335494944138530817531500099726577247500121376306207872082549412765029221640023369351960515406160851137698622106927016189450372458016223265323731958804376167631617418969474186662941364364015553371631299842928049478925214485482181493064252134506607534632781345083755540477317988977464685138390614074006616732479246752917930208669280386175895276914495216716640806318886967701266439326307467953408895702843841444011047991141890429336162748355591293135180365094232111784839863655060739415670665411337050929622670003450279511327445222790980979399065106006843950217745831246939022135124812594793076154423495906671072409383324655396387770273890591261056677110883051028430123548273338323960966038983846273193313883654562716756318466433705513055707338441112942687595645995804976004908092432076383545016133354613684778959320392851143008876464772938150559578584040257968590158554835469068343028232352496065030001375867029952457281519234940392734164347533253451884958203082762612828284308608158851787595025486164052259054950593481092523316892153309569163364452100506153994316270628482282926886378164715656585608473471831423600794801590383560721841399633329294589089687209826169186930416826018898163116308071615001854857286029002700596962144510000603420682928807880540589171377502949838980404433662955911425831542596705256908573761454792841304995183786779990384117008789395495101239007478589155629798649349038479905510952010024077530259965844910924000874662932405183864665501800009907666669602343982615044537375182240841720495216791739496203838341919303198554932058445375354888214420738764094136187990663494920034050232067038022770121376623383406008595593253537215990277450877463202428453802318617840573013461588033479753746414126062262931409121427513809783669833552686053824351408660225347927167657974056908443115016222623902666779452350432780481104033424114323166376366689094342055273692724500851301583835333086227899377354107823204156143825874737206293312963841088217065554148037951700073427097488651023064926492688938724364755676938583863515792430945083765830924045410517421866122472185572892268065702033765180860845285983761416289141933932938292241387972927134990072880125295457827490116900689804812036015268747921749985687044549064588047495826365805483634806161867343369259086168873367185324033396802144523365873828840025894512668026572973472945020454688624001179684725587654394849111343894797239226039586792333015195733093078932506781063454145178103349393540786072622313237994790072915648841267707245589911230974070315797357196918745449390441886729749154822281532112853002535646047717969162700991977486573752827514371415379139154377965014420623418651046201644360855065825709474661040232175447906087844383524673608221051289948879238771675670849273978402555534465433493654538044976490183611514120530588031387451156797535087104040840348846879616045742200559092734660171785066546115829854089984304595586405623391388690480609280076104062942313068859671400597622564729631575817764142040479457421085824812709669373358951434017414383193922023081007407303339080439537517933582845291900697085494259444348947471058478842883053253832249095295322593792531655139579353870848354655145945120159485672697871285428609908362322371145268296827366960145948621927449013025040317199645222620754737938735394410562053128122648236120347935325180205769050871509605728922512770304243347617046632671935138324727047636536801197598010847801402298909999503512404173671710082503351319760840632440632962628881609025118530372108853286048868087824060633210269952903741297724944245804711906688980608407276390927691415729184461974323683762741007909647598822371532659390875207808646222783575138120944860887229002372420997672573617796388534555457375569904729831451130699489634112419704779166870309321677617036050731164645143351833488084219664211514913568642425620257175695497183274781991033278404306334832806145924094935613141799378684085819489725341046172178000776623000802522332635733250181680960219123014355973647494347291911265102241261880511803246697283119219986049523345677011791951596705167063475472325151610841702554371718850363532852643419431526181109051629024621994991096237732417142380091438471953119001382499661657861499965775577920813199760277782319272904650681173183476162979809326865780854918909369893210002575026431830252115407943052254477837988147743953109550553107317635242423725929009914491728477082901770178673453300830323342404564201833884671826417724268732876311925246695674252599774904210001726090126012959457027763791193659394715146266104476207396239893335356473288149669762745109848635393174700201914657012069925762555285658596143318418152222315904874563800851691550624340305323359137974450820053085437043426858659255467517351934223782118445869117070762891069159253487713691275723485445199105929660663036606051533676471838850877161415944873814757125318973427683999002863160792400364284353142729091475435115728191721871575871143160003583906853595099722099966406265819723796462237605334791352759968878527693552772870183001846104650436817773114967987988476678049890233605340098797821667196914873322363428263748898112822303778147766532449240335802675059006965001607136576368206786657161653548314863867509878189927844454547392894434392905728257352057940822920798474562593962539093084659347997402078289045397839393661482511469656955170404825251860474169576758574188311225655626059917188559374625016344815840384060866790986284103051960419133816430475931646862064733300945655716975462712932454716908313053028683089760101036748093870765141868334936594670728620593471232362823279181159920903751037486360423285745854944355132861179588371063664516889619203123756110515657387178161697156937525820745390022222213496116806458803246642376167482371312861484893121907657102905842308649138515847394558471420086654249547286914135460038392621814185159874637156729552652585692536182807558549114689225243367428209096392190310236190221193844913923012728613483202122898880354818748721446151860954188012522147389474558078664602939073972520929887138640501045881021830640292814878656338856183764880805658834779626713578207445743802496309859308646604031150710209186612041361899979914876134658954021103466376926174039431958838341786787645840010757481558014462703424939638468093708085922766328204659671784209092066461859126231015443412620061376425183280055444329355865373179874080583115345717574202165080011018146473613042965559466291440210322757110159801312546265195492239361010843830738013877316656162781943939179232545747946205536368115889408360818310142483564849270102776523958648612521672131556808960563452852582512774853964406705077715807971064893313301760904504750570786787190951239166505590346720331362662456904226558496529633046952997650315858602927293473302830905133980808166002102965941335757584347803748431620062703928155505058276520912640061578577031875823348344343288128718393658013465409830272612529991315742079923098778929744678012811205975785124851474006156107396611288280213361081763770405986839941257219488388412562283077339337441972445439212647437766818997914093643001775386479280967516345752412990332699153252872312613766692387457885836745319397910928667600786679498758586745639437642922823606973980926244191296124893747682497977174850140772063648107013323374711401227474396452984987915052687506065132073362687038083459516478778039784180354336554852260552560468364735389209427091482687812262099507182947295103456807668782212721992980943538170970528193949063557411157596413961134119389804188098075882393278097882933703225240741598525282611180620516426165614242750926765109213551023506236956736843979374022695215321914479081847347958165948454063141592949039218535726616696602491869585401813573991934743489534753834895022579202361056611619596615973819690127317616279712217643586433955146559439197933515059294653098476113316378854554381880694189544172182029977134919961658641812673477247125191256917967341343010629465776274546739599571513689310457188024068379561452114795208796309955157540213312896833238271637297050529557457299580956561787580391625136637678107205734048983197615567345331899358038566757625243006354086039215962516805880972008879290394152743266273729156311492143576112275214660573405903397275959969905144384275182963866381499935469066836162902218208510262365445870501603779437917173695970346062602271769574082445736128562125671772464631411089780132548470853390321997009570648334544822409488701165878312297772252984640858762177858245523163563712582751592055901081300636048639504959419665356816157231184671386245094257173538912157126387483828800181299906765565823802961787424562873096822951181700499822940257229278272708990059662407305114556472190252778182199059482296316715152786841962812291549798090483695393930211741047402427545379645736642835132794704298117885866067601430557638474067535652985607806509326474157841079952204855484073186563016050403453794430456198907465451594614335102128874501682714203890210982501198677959084990289013130191799290959313624471522970359806848616988493196538865967982984014257501849212887371193098073409448883993692664409461291126843743977490338849032356394824676714095868700902244208359634815272361375427354549258046735535095353854096978009419466723662673932200168516106863612552853929141303580924195061789896037934624836470228369846789123034526565530925958145143629124449180195366273981173098788189643008084475387986974894044139201572217580770761080110574896395427480566949412427304908099731029424238151317116246908051938183492998719825359098249502047330997891512842718370283083399095148882746757640679466704691349242669382552452644262962844329140640597128781434204607738082496241271115614327131911443281240562254925309909331194158479898096405117311551253495905531477413630249322477359611630308197463999882001306253727285577233215296848847661023314536928731155988600031597051455491978837700769178342237204986638676300076322073887300315466494016208287737590422009823735093468120577450067372593438529347218337836984565985535359092960112913263044551996263381296933496686164161249079819660683162723965897473219203222602482509399244828318243635147993902058328707397537580446874636230623187099943624760941256517368256776435059149225987529836666962069684733599111738248173784987808618064025493071592772489690075568059266411367071238412622846494983401222625012152883615632741002738467900688761068451027776848052327379497303686167355070168005252634369896372318078170625620148205095270745879875903707190873965716621379732585575423550799440677906324352397461529854125683293916457925107015223791082378073016947090450474701935040183317895209016823233161867703707686478256426469411271692144018149142034407663430728243698322324737721638687402871428089655470208283670819066528555199574807516747911920051902313681501870986329321860763414867149392423603004362157144292809600373603680825666814160900409061490372166847721962699443036220362832438374832327854736294734584648599842331461161946562564870479028382890130473266263708592407295243378804543218150320622089939394522999846826438335686462128986514978615158479665050371706976095930146971942899256382624326263816243941908832880672960231582971703654531547478243559194601246893713822614142286333841161905329464466532194494131490205154182628567781089165766776483825921135046593644041113948840523464176084411827303234260207239442302956795760112144738920397875406941445744859008518561447255892026326060898407039925693450318994182367145767293022696732397674290332466187092515639630844997047057796155540864077194565058756903003582857308997092095348163730854786048423615715165491765542812754411104456172345866446291050651186030496004469310704520811915489508521547044183263095665511858161495079816748662764139483390968897278729417991694818392291177895784149494572258260505050598765151111754541481003290639063455063932003740695356858456451214729958755990044003360650661748079892064760195840144885306929700782114293960056471160328349513595041373584192435045754935376577936490410857513691346884110590791725503462480632278422005238091016689809788449347732226961926546037304346873365688125889962787214130103249634359534741015833265865913558488625461315347201526008386843507626349947285941761292147034852770771196158972333407221557830518440417966414317569034455822325564053181544181723036147309559553085936338749037319838941764352108009678769849837214062514327107654093774116810182714814558524156218574443095660323438373044425995969151837082899819162884453091809079026260029115450573308460783527381979289185434753023667155648650272458139312203503949461481354052525139599325495204560071197687426977746345004699515958244403291299952846822507640806257772224205481473776812674785348403218962261701627703933419754896698725571465186305853446070810737500390223256832345803225164465063858590553019023857583428512575718307374434920514050857042998808729061548205840809842596035547662619054251164219219896623393600164223074459132281622776608676164000999514534658000298838862430838503229210823195066597627112708360514587098701566747434198601640245268058849882565606093642697634845520869958420604604325261545120404604483703521299293041935821383792599012061274034682746277865132972960928197076178760105632215693929117475365829168746276622760240414696129474071215794664348460511540446151670265155554574034765996242076853208408331495697641248578302207970026552643449054543450462009502352567008859512825765441956355303019759754450195017484690150164354659317591198086034781932850968910554579089259207303057361746662317853246469267265356586228282332793235316768819348031683063495312747402094082841894420001017191035506193504669121160188264649580294623560091644188592185634244492446540869008662955098710909931569910863873318606229930362554093754964109121540220260252965730978955363102971882222482359200947925368496616828008240749660606225404651383677652120279618660878938031344686706190758604679698150574851177558291147902933345264642612234867104538745124754141680291668890204582870742941896819227681397095482927226184835076198107689058275655986868203375632089728433717881828919032989420442529592745305142245772204773800237526232516462784718577931482893507851600315583298908276959475072396593311715244828398422189222523229770559745071464778486440318819292505873878600875775483333924082688895980551873043303470927294878591208089493155998177921897779567337184422497777229679067030120993581771465543312954099827014339159419545821441462817699475476702538399240917738554151256004307911880217356677263791154038238494399595724679557874160575675208986237876807657557145432472482952679232009726391711705245385439384508822504560618066124642495656044179399910067476747226085543795852653977710467591891871709384512420482376050562895199407184469210894601941472023648932301339791773077819324702506071037759237125060904683951850982362074522768120973260148718699925575299637182572187671112325593383265467462305624541125335396304380920761020971670194216792917005891570387910446461610917313785491407910070639625654639497415760152803844063028778703175201040421047772180957546974795707660189463298099652212875507573634001200059335888413348589467288056308835126344972916928552274376037947967812223458437103785655184021702495910633872584892326230173719174603228205178369013838616474781369788066311105171379624698674452380867195651750139330164519038196872531328307394754412111635716746587850790286611527467466189661165180680462193401328827801176013901043083709537268733233837941335818235824412727490837977721614246461802291972100955049884140421926636659854609462066819667665186095547439629518568845401797898367761491562628014919623158475954025274706637278277297863361202551869274921299687010875616281340418631899327656477328267524309267088095512054806971492124011748006057837280611371843786585408377395874814311151373999521947243980221659793937532413438787383667142193962329669441472944143426603688444954111812793228410894944571508000652883333163238516864090053931478357552746088033308114565282939278488106301891192962225479127071680954520171366408006794300897932021023844205411372897499665362324834537515248988952413553236757198168673427114077631081037129176815082037808633916902601603054435130809469327330321226420337998337259301744228337273310961957156108908002057129109062592638835458702032826136374174719460537016659841716713546636475064934140570947642246809582490064169591757514359899313916444165041587814158928512269175125214658257277208415408882190597646159059977134595065971642246766063004846643165869542166441771210116049112932857737721389665316532295872033923459303358972748370639966186579836520691228331313366238349211777903611867941153486220250717147944042770150838628683545774389372999711061616032219945430936848088893990751283863207942655988422253814822919415606353113613700223893005838502313028216814929012169552169141550020067201708808572543375195806425499904586785426166901665487239427240957805759076874952472351624735718510900691531136447586850517102335835404188181059828813176049259820520004230867955727351175936593925043972457321809342157845406774793180285589484403714077810746578263772816666845109306061627054891011063089731006453626220114586286573404621622052059017489185950355443304909569815252617809421976027661865410891037960874854397393244214438710601749490624280747811755782252215424265790261992379180884606714831986648102149388988302453966908542990672098874521772542943367220459738831521368844412500905721486831478384001157441371785973310904552646513740874728910505649506319760489486793509959299304790600643011323853470113054711935679977515949753634692357664592208674497586517420108734321130291273117823600683014448457325326628424330338402474801685382679159708225968401995595152403303175017979415883318349708300629491279249391507026819596346760725992360417804710038380089583247867650466540178162663234491288716094716956174081032067362226928882317444671706930015665963148093739277458748665628690321635339667797676365682730851930241753102808187794223463990557762644682215278454206661788886264514544210201718553625109196580694176381098546996923264930445773060764116252666219065633914693522557623181690237313560833674051362901969587393268637096171494913932732645308343930531437673946566436153608269782755338159505969883180788793326798029022838654873838560297764582281683075134102381948813782236725536318985242608437263347890184930867507396356017470956219942889130284182996708087270308464766550612673329795041096451973281031644518640494060231277909973939138714143244695681294076464463460036635519702230328264515134067977456905677427423314520652040045182488331369708870075345780496452124493597216084316907073760794580757448657713869617955515162370272533687824926990117653514237537743023592913058817226261901935028618296751564945642931148202166698434952157579795528309756908358486550168987367841653739868794379808214536032139916670474769246450855862711779762878870933444429057138304395879409736758081241728261253357347405394579220805616367760824638930167685625994135873008064556084028974702063186669985483219303864087516006103488788709863575539910910815297938973052415421494047718357887341292459258740458841024021062526416313894579897780894622716148762123403495654512428272288360675570676437630897810461959994404381017384508153238154021352177293335888043586289665634935075421630582744000143407340266849071252285570792152378156817147463277275895892655700356181444414801641588758326415233601718582137108190322269775502828010983390551122721480043103207930909811703260865378133706688909252112281078678334882989629222379490874318605502835312636349296870927756947328411748795676442501283558418947431882755718425130343613486323075824456075546502327869382740642273260168426806698309521544171542337323216943357504124264271699688447937418358729666641806204152625580957671690655293303654173225563223970907911564996932183588334602733122339674351833863004038156231982177459251823740173963919317333346966640375211541615701825714191758677453358860777672854504083618355296326144206503751980407337064940458035561929747096747588998917026615461631848769907829296013765399313252410564913900010632835887544845564431872209086527967142762302917833567886962570001687742277956039215296018018918120022908138093993336580567962326972690621616791511567254955504570211029260597377545186861864412603658048120776757895849444926484789472859795609501752685310301264599737593615383531472119305155742101987315806903676979238932234887327255415620330157887296204418102967642155350759208600903194090752847250572193545510040196445705469891204713770954957970264180586673375321623731559075759953612322610757962534652252141081441261930102170110221420045917152830669160454918292086092012501294024954115196602762407583854755826989334896189540983979753110945927062343861140320477294623512485015258853000760388956873333882148603416252318396213342823292406196215787160455493656979578921474512118142618146879884021763786578693228551326043114269959144536614955355122369562956130864318301471219886803668967257947308093782188725217032619545105352380078211157013193981569955868773544524981156252190136182111335337447966800040260376753645141264571880423323614184196967470171454646848084333002105716761441924196807724501152436707674888549706014620537111550890411651291827480414881527945332775928436232961963004691999470696914255107764865507122717393896664595661880683702396247310795130119936083633212468140931618497575057377530361310823708918831859605726408151066920866386703954677066568331454695180009221991255458499946142592111777457783566718600629524395673878048809061547043488148125306101069776980066897634228562982359395958827640808232767188259678463076183980758765375958120660815827783104888733048330340484641306583008116007948762148457729856257124904021324343698916803538836084982376712712337625824131136628433946121110318029020025074024918328839140460472300750841896219719108029097965469272325848704383174127327166297533693639425031460478033284425954017079953570239660682949041911446091449141456295585527216703704212313712054049274532582988563633724497186357316742827162943515831032488645523467271081655244466141527326417253958623385048723327848283985566339139683286558960319031566464882960859363366263501524730766312939368700094567520395235723008304142689479042016224502660464479268932593082618360778470257222599987307472051995109370178878437148262096220632825201222981943904590373201305053504212592637114332504255100091683734868190763519697244935901259194438057331458169139444880985793057917064090347774112075054816153740125107444353210058108185225883650655900552069159500564193988165160366515764512517627319656191238789979208479968037153785060032353582363732984978705417590480826601638677332180109222693508197390527223003808430027159491802948003255297611989517716923013642016470517573943740229513208924265550550809924297926241259317259330849229032069891190792330123364959345770720828041615963840919567700055532997150118175809559475025202809607397669080139289140615697194731956750288039598602265809160957524927343995157519858256505669023151467025837974254019927831268387100505272231953140490422362586754086364983769698801799678824279548687688541675276478595530744061411190112324890254789105215683458025407625527073059928130698542986677484715458813163452988471818263049656411268277438843468900380718577450703172020437931967065513155970007814029688084277761948519002714043012683837742887711806839502797304126507810177611499313618217003033766021399575288120808140828970614395537791413302898313462529232886089368210773741608139082290845952721353910379888762465600616746471092025412970341208258601163726480778573795373936544712348086179558066272455323822627266733949651581487027135601526345239132222370474143569902113142230535225489475522737388522602918004084981718052758040495101262356047144874657056994386750998262935190561416584804437706029615661271195633387026618382513806184685531261889441900209628875838845870148545749216280688495766533293457075275497855864725647448290145685910531299880077846781963698524227094319434765712239889495783376566307242734720797629434750963506729931498604477599674602254638922899085613173938347393102768776077158741495152822639163878721783700577059599804983514690438902961144235557956406374717901914814762766075895674392253714424322074228463030982123751255194733264282144593811283230066181803463087560007816734490150310810023013083472222224034741321277674097480275092782709688537178271679823583375964953857809546021100442296921520356221432387027645216451276783527829970977806517827621489405574985929877524965475886599634946449291158705900651403968839538582118467431608068908244257145152021389118406126977163924785032127967777978984712116809900759318627826820918494997391521805791756935699639598040575291710601002915256830876193386522555422508752667378364542551631557036973433101353590715800396087720462130593034010703074213568634548188046022276627638464624857185858583166705104693000618355328883632803346166942026318523023774881156189965344231329157511977066138488593744317888235463363520190821675283540310319872166511497354448521305192204311121865505479628597188757707431617613368301592656361713237306707475101523877616514107099337505169412745584883652189160947586392861720386962310568541509947416918192283170320762701884026277397004312838437117917471502417501688332545086334780926981649299433685988447249427873667479668335655265979248874212241687611521011258326189341960445508397864435712761589605224575108650286156175452829895680307329832615148442343987165621297087982734374777144233732926420041806056051860239748796334496621323286018827186278767234557156042044605273996815722896309863995188413256249433773133415664484237871830156554797508975176384987190165293308686087687526260555526945363231566648029639967499474778174061435505951142588797897386779847406829446143822228948617415882600474576825164345355090888930455354345764201344206052751059664547981000969088853362440360229610066446329508376219529100662178124891231704383199301909095578324147347507781481656387611589566338914574179312761392103742586793145246717110730981817322426299848617741467599391260487681282041737111223045972312503935103546932675128993644260996953880201868600239718450928083264998889492703503493018859385221760360145022665742459014613959327094213325709518454376274575628560567042813321509550504082974860623805130146384396517805547417805270769431946879867734281836762224001362608586966765916198883366971286849502579586999631790257933151478092540452930736723948668257841701790618133722729642742033428351112894600581583653729895975729977260992504226045977453131681887151422276121567992075252413920061706562270033156479871190891834605086043079511835645018950666044542717032680168805628958703548603596812851243878286131669490359407666298386770492425246293641140174521209775588990892325047354713559586112647160475034775957394406293930377077897788968887463972813086653566770715050554731646649415470012449210675882226935500781625434494701441197175629943550175758423149741458330350590658083353568377303697749412082425877505638888006395790280966137114349089705895041578672569654840177365721599439481566844178033595572867584717302926238432329768890396661497103687601635714944881591701636583022973216726458271651650198597504268107067587524345482246187561811229906359407367325102192192059576629433912384981013561903770430983163888229981721093500472576247139071823524292195943738369121208184264927907528048029439071270232600792002573173117217864519375777491725602785690705291574627373789667248261508881856958592709733800592256793096573641682107543853760828950015449522618222748571284032675468066766892024454818038973141694714015597267925067876643919362410721933821177005708382816100623475619402394557580455313881482320760138520598736952926806183802007478644283481404443030385395572849135721763342567835806609334971063137972237604283864794343649679227933096366900405110736888422255737634987833834214456958105557301026286013389305410880988843942043171803743266870904641113733207124613350604672196393739106706043613226664394744163691338440765465105897063843546254235228478590993864836653758480450112098731946295068232767246998814977087519471656342211735484174313121898062339659065659323269243516742454315840672501865380753982971391761034447358763165045169032397838184082083340512871624559199215042967918205171952041511453488287830755486241838824716342150452092834119666527951555356059750492324900360415071420899764587536916310204119494097723059366031283459866122578027058970295705426382693422160148134808320226316179528642352581014767052895137710508152958154574920165902762240454298285271899732121765569649070879027563499411293011979963854620001070455826514844595890916370887831912355514235901012411105408594977392224927578047986542971684701026851888748363736150742531053922654118600870361885854028332972571660851755097216927816752688662729879092310993012505576491827309236734693450675856606725337826590176637881211582697060241139686695049812881551385522942083559810451653277428878975406465205535206110973125442421558431399635863221166809237101388407777571023736122025464820329735736644468578640107925293285725128809947766799628912181043235964334973015015850456770294786571289235474499717519377919303019744472651407127058726620326982236574523496787079135539301414666926164242433993325775660727211872986081488319630808998125644792055001624428635019640398485144779626452918456948053405275751558975901865673294143608126344060036947194719883298150884085966689453734695999933214690924195223813033956346599515164109852954937208689026824433567915871317009240838182514827432939692233626291668460537549194398506064869445531215807149105214822878560460009200888859136795855561365275543603090442597364287450454793451330542360530396490109708325930709026672181791916839324253122633083126072701700630910037476255945871878975752255248272394675072685693985103438412100677257720390307755236307995515287100833526570203175696337936210410310691171072668244959086380730506098347342535437796555123330144047566090650754185303405187490620749886070689446824583063247959903091520823381574067613777564911068645539475078267389138921396590121292952813779930762293961313298584696433621515136683793833163852528423322956145518660579186327986998770325083678865519105934709597915684733449651746246778383652558565318078665627395325124639008099008543816700265636722344168807057652974241832336447136676448400975351365148140272246982107542674086607507108852626525409215372357306357563978325592515868748223585144627995252199978974154861924939328196561951564924551098075606121277088140229320690048822901186482928783541087974490618345417795483730291640684403668677468226584569413420896866101303671636107516512408013878150202517188878732338925379238980247699599842462938154013583228810753103283818290620973523311527093161982586019528369793722979266671403964748641388225730943800322043801430404517159094094056016432650858789522632664032805874442396185720121446141434130985508323612645694491135863200726520012279783359674064985963512389602567122145251353575164405875649464610784173071215971344805225640578764278108043365076711981556853349355179214585186067386678262235569401080659739536088696267680708902578598673794873624696313339094072795848092347381617421526416868861108777569406604838664126943212348628293086212971193019608183424605807654468881496111933892010065150617344955171668720377290564349273077887707762035124488341677951599768184356042843821579573520975617236604912120982312901028556337132461721656634263766261510815867509741168124538328267097094181689813552269813708148669940165797744562587600828338694292996238756106913665105912283600355257524995371131592819608395504685176504111054014100744554912948078606509879754338040383051259117208530860187580958490878565424075155689717910657129062742097533610133437867286880730490330268128439951468210455611770312070227874975693837117097564744711698114144647992883329497265302916390472297344956195149229094883163160231102214321911787717047741318189685393690476396148544229336080613132538301756145517954436605760985216360923357229057266979683254077182915602118947661361834677766827014713156386063569371524823794628193294710545751319755648989946176797027455007906238486354530587437805438130954197270779944259797856000080025639033221676795128843310708728074331511646618021596118131922450260235350729760178722285520068819634888613549846075473708461539180003629910964578498244693632717435973344646284498203184540909610342860415369831923340324033234592693153889872570908526991782617076624776056045256232607669147116280594523157094643648447906562994986465161955956549456874269805015301818747759294901354710220636583965562160911506490476158069801116523833828380961313511670640326979497355755887819758750595228259230147405885588383157721880203640664667234287500683519141935619223592461681243428961903041373152505401822292780750675721944009843973792704971125152247687346681234981605896075081995759528535612263624345645051236469658535306028480146654900446730914261418904962667009971565708857500411962775903878872194270570904735124614629655192008441613139277027765326847462447790628450057444262832767269325169248730831536840220950402245803598819542290113032909510874649492703702177866928810399397894499289841933973265494573900240691877768608788731513230981627960023210640788688527862745188613064865441197255130210009738712292761372207576549095830395412763890448375791253328871746247596953368609161903904218389214320178984798571970973234238766314328999302910573640824018683012738314307167132376401558021921528917215934266688631761018939337663911505157728233239976790838559750276712651328979510778712167659807806651732436186904898145464599152116395804628597175590865019613238497960808352796731465135127618049910011469241332397177226273328021377662099698389432096168383814011905462518863789499693511928828457648496947730550431542848453479030514109274678037848691589903257779904623227717032653144992420602780813221447487186159363500119351592721943169641523344342721200218598446421519385968600725099063295115217682372234524260787335745821417964091834285554803442898284755182656926894215928092897407670708919389888755858236565329525834519639554921413265934423358085495314512877154481526999018537157853509864306626987745949530608471029088176268338164040191307926583469780856977029143432183878025067587848428422327887315037681173190953129401466054124765245926724422237365880466163604942471820377694381776888488885301957076544441376188192806309394506674730512244710179711814167624094470245767956168812478575966389824924093495385799870251699427847813124482997228916650856233456565746266549826437141018606799092643147175000192989620544613046754628328907500841370946210843302825657466162393386277670840847459478419380487481646713525581661861292586698619335819174694393862952619915901480514574279659729382675762690326220478938778395918652971485288485233935034390746677176324998374038306208352868074851120880894676935133046971456581441390841531377583293071414943420223463538150550387339737087580800014401975481096465609049548605834954688535434698012529196595327065604277606361494968221485709211836899473481273500146873412956849542559548574911120817405247752664272104059730949083693204621289581074802585777539767906196747386924897527011743708142268587805419884274224988435203923465630961269185843491837905150259541964425362835935952263862481091054498997546506921420737819193427087054605461625555967132668989312942986772427618454855995549572515868366918560404052556794634710990274908883742403552995817362110857023904376395123026799435764567388547055852951214908305859713971901667506193657455965898269833188105054640120229136891500330867301545239031567704960728659472487381867399686003352589657398676754318584767104155511980862356871282268577882154323305577355513788681189704419860702347561491205409356224460116748471044001068749890040357888735474273336534415571021679712325536669346656341693221761470446091109785612537422811810486518899955524280760812395863428161226672258190853115956412302643745296318755429400930311580437061445555779619099290171242471697179407494526160149014688010308407153058189564417222258349048708601891618082402450207525980491037095262651326593669850008691111795531618764610838673118708767143952105204108548885244868673295161165763337801926087289919453200993747201181606674720787115631013690728878509831377848011552266007800595594127838436316557916561159203077225389372482068124268892306752535819017863418808107870842298252994715900640538459764566406672950151318310613020383848743721832878948714045484247629801231758748783418266970225948320397770695539770082946292191580032738674756134055586547400467911459703130818905804699458433721684577425144663949455321100026031822433738945578558326635347730810274050672747552157860528619599703529440775499778468395975544107293493261709513983003140864480666819638529769546165000315263878014369325458447122831556650436464165527683964197713104655771999899427260425858145372336950975668406476944368980762562655347738585634267842797707021200685013911687235549561985853071727494925392111957148263879925984085083061317987480683355451490940802696317685698253530073952167137707478327567086314640073974314054888187410250687684248663340401251229713723072338662080512574690900836896151569000283827060714802207240187582805246331707387507224925286009633416547857050986357935897095032217486005047797430074269752854172484349925199810056595804763325186530318005907994289867658958659901337963759089687813521887236034509665621601867837084638944073771458001118291002930995096162065893930982596534684203378646283805240816105730945158885241428470968029477700854770002502009838872486281668007439675836736502053893737858843449557026393674068961521360181698238604402649915389098282818784570434545345887234489250004579671816958174374230557329422942096667497028631588577302124248490607760783242979883447569454225853802382778315925535404214830656738907750166815343968045859844112257691888434849858778779305880694466765108050100999544347839509783938319356972820488105001883550936716267928847500811058883652670504510411018726428274987893261534723399049093906712430561671715058499212912589488654909326162733403550740952707228305015807204028908583891495761994342739875343692389873551461904631968617971744779237102188036786160273476289170668276643978958028468450675191290846741042739452715170220869045167700128741562011347512962598190666165259733865874770855583853954190694618887900671342070068139588876418916107857318151212962647829913325342587310172142655445536938794399271873464257467625897980664852578396178298138947016950129020860267817055659985271784562716705733796103996129123484917660419034092529817778844269231082502668496103750457613982615979290901724838163050988437862904342791375873288581856408185213972058537178501515937004794361506199022994477889666938696726427657141249293253790460456859339657781064841773433292505719139180964557273651868231503615196192566181987602994395180758625946007009568734490071170100280755604159489583635536755386590782871312023068269747574499022856970660131240269612684320737129017718859951522412031926155993200212355085373289831419709056386565120916795564387515178140329870870815881562423477877048607068791469457172360662685200282110882387095401969578793437248118623629907267627323071441745403987778823056053580991514728198349337095950992438815451247394062471761558504151138938289719979098742066725794708616603418195158941530916210258400135248432487157785317760039316979401260210842805357318336520911651865551400792813306855016463039819004079581764471760579675808847087281922626424209227923032817174477729083885225160961916324800554205747024303871675721245130417233092931283760244323572305950751707087863343757499508365079607142295216645023955846125233290826520055217286334111385192705102582840280052993980908944142735901560358392132229981519464770755405132353161570191384349110658753763718653835888367846116692279541780748363050332129080755611548429400851958305525014955092503682462093236803245909642447430725736583252288715175659493992565240106665265646463226407533369178694860850049375752833973357230619704260237546725750624461050351033967159269643753147909523310097550285860145482830720403444374816209247728686303047027604783149632927369309272714022679950455357805338678872733297812695307781394147637545489611625854520903188748759655036621568506553061673345764095106972790834557128479898268185746249957127173888754661631861360419721816035271548933118461818685665305793853645932233730036090734950513223935582588644293537979312868531901980444341119075707524451371304664331308252810389273337652817304654564449927254109102132667949195826571583440049861820252180659073132762861878162808736467439093436780600996837301784134677522276843148119883062903730820201218762999425356434150551954591394789102016258747449504076680839803167722204330310715178961352128634568061639064537911473429537008669574265343899772511626114842463139405274602952986558794236042298075026624602415185680434526813130498796982408282185650753040981147101748970702633472757964465699125108034678094131651839913737337057652443817996932394838618420623193648910702202779504222803301218470228437413641674011987183461858372245016780926162610649214597555426942999529625629913762293052813549022071112968886863175364894760617660684264032516605937376717735235022627990133237716577028387752970748497703724357992976700323024725349831876439403976090303807478990800805119936091014872594503330844950206087046681646302731620277908213170778544782179453111967680004836856552329683800755400111219744994532389188227477024933663423367578837847532199384272906187885581075954918749046314908566174095195012443035316614057167250877991364493496097315055004703775156503304222055006093571298756061723059390083394870678157430465815023104770359890487639366652883527726166590880863907727676654298682207431104857679888570914941229110865656661372908530010239348088473681322191953104369919053621857280822610792937514472955462779133366337265812702501748533446993165966028610703375917849472288127175684558202782007097621648383949353779146853669917112054393617535242933895076897836573630937542932732608432698759588195260209524303416513714194218896484747240881738433306438016608172892966827282336577449994563063171894647757924577002162380730276300144292069206908606000850481657152432280919208372156030039481131205457542508154100859001230370988809392551452187427038110311726252024480829865904284294969997083529016304621935441643196806448384523589898056302455633042310985633631185185403950409275158027990242367137045753946058636857206829526068227222940518083261641982021623787872041391779773525542634419131782021011035021234709714514863115909665250440761317533296850715791911266855926385254557270281543565874905168826947546123374197530136150034849934334399744249071852769088650127343086214149280096398627434574851690609464862970865482862654164929859949783485555471946872894439094212081570948619969397297614425439124338947693328556969601437604540948563035050429597847952389123214248099393364000801769398627381274518059755359828831244485937200218948274191493979845902912212254413088966605399105836521503596293607089188929751310642899257536931169111664850284128564180883165198769120997803897331847608923840966141509767727698683335106120705694764572108097022425753003548905103393300012611800728983166093419288372901573049263728611922631750332242781741012782969166645927981370692103787091094879017650775376063218086547964493210235203132830003778678247969538106573891495370686171563298723450462442988618387728246664237417793590723319384591109411470811546092589690492637974631728112991186229201240902973383781436336669820541777349072523860849578386457017132251544135380370808006248088106539060920533290617720903601255503984021998756394847137553645966403931558582215630640746642147592134335329855524791532666639840108018139531188001844506956769658875641556190148752790659206136087231346038830580800785721533432011281641676282862633520241980259571939915900953966080848103965131660093361762929701317863373694987929396371817627426471480671067778490031503505565516850544962431313922748597797410644081795516906219164387736374645189622213612269057835625635541086071768694066557722780045399767152518738924056917771930603546882690394999375698937299521291429203146552387255590550969216819347017245148590226660096824493964294924834431236808024924118275228329620173556469758493926981655921381728785146864951772449264951863518703070788011670314883145483438324515860175125228144973465868735068615455461801916438445104000144006651269840166384239662340045422779526427959494861581434330011432849685870271384518393123429530541755518671015305559304871526623072952900072201811398024687399294704234254923257071422494837461087850757714409042022877120940779294540622370808478443820063080793421540240040622146123547357764167747792829387034084457098419248597398444320315932267060064927368189064664913667257797052622341796123686760215730777966002634132311653356193784689256473011104263799408632087322894487594763125182999428161439668920077620574441689433236632515409420410437895361075923578333501506402126890643137053958694108792539985985802282420644854780701710700424106705640168814778510528418148209543814904953290693290368829659295926096351657412854501827508535475736359683960130780478400959882628178549481795736775599723540080134205213099670411200712834499949166142155149005312878932136172315950437815556283818717122491697383404487595238594226369772893522717277832011288380736101372269406242121638324849441388561599567361594625809787653382701878053217195324571558878393618556972567168268222880014390965950863945291339951016182744157269220849438669977543895987702978892211811157742387661436323303755086675663173723542430636689750840266560200826250076021545908680232355798222070933878471862165151958399538780846497571286148253206002264333069192676868077224127457373413324711604668634802493921650171825253336562946871347192930306142384347046693197477983472232202941066253429140973283815890101574374113122446323235892912517504284577676015147956796567145160662716275556988686565171761643140535332077123068946960548095453241634334448795779369627009623751497143361151175322518452353560169730763600757683339124204578979098244456880869577913104443628562076843997223443400005699370083831788363302587000912846738656381449266513679310227916109404060702113783449816732742836434076145297720744357638276131886568970729451901200858970580991341016276362727626493193768849972800089503448625285450824835742738981763799074414356352208525385061063341265184931138537678313730390345001418612358424743349493852578469603712896595421654600660865613389981003044289732181476904294628220654955055537103343191397781841606917712631037718127402925627321492019563046936006371319498208531054469866445609962005007262035451597163740497389924642595610683198400179836451087300081899254305739997885471614362237201651191552062119042450927589206842824678392864224329484072351235511929446306806225488746884221716634339597207826602574787504421569917199689053806851823194772517674880850389563360856063681232717147901590053462141165050019961857132535826691922819054218789263829522060533946909704270392475666286149985852026187945854913958586776076072932836539772032222502736525010186391218742871463385457920520142868573091485085416173563947168769001398928406183401497829453692262608411714416675365726217183532513457509967231388723743549023818199222885686997679580987081847515814115594706755145323721223193816007246499627022560218119398249189965790893419319053269899894725043815787931469908818582907589517847649436623732099680645180820742462235848286917458092619155950698036076373235917346164974218999759787048272838423850442415176747457513929889214688413821637287152448080982156310158723352697574263676560852077431703842919639241888374368887027525686042066693150029816734505488111365574620866462600860994153667757279554419586703278734037032095301928315644140845048892313241242328487496319999629695740951407339271235864257331452254767742598908972848383058261905408551348226535936951396060947168340932049906641323505310149040016829409481138041952455392979399989082282311327210718866052652018125905866914497576858012393063920219230485284155408615001250289309427834546382813765520411897010587473767417972834652487990693752689533099801254805236810957216475529230066257664589741686858578333572557517055339373772484237148782308202112462151820566119731947826303106155002108621822529856027553584872330001652331509478325903854862475948251829478594310645732625679985666012659553425054173910552614948393829898518919962580264656904560512222427440163265246703817399405830674005271348364921380940413894533359023143147992557345973459147781400580723789351134618738566490536549107661219310791306276291422224370102705752825560913927381513899503969860151436686230034381118286232150104387695493765846967775187419442513575769672541149528333919017594015226010710254536092327966675107753692240852375548040269726044550240183474156468002615758386529639212445457501236794184458170694451725656615814705083545475326576215050013747953446461181624922913860975496989842198901502432618183319346106420178273490125753288889543285170518226433568218369391764053499721061752774421133491688985416294474625661651623292990713318634648005650883093725112330365131602791352753211772058241121874051818030246345801869317235156958779239373171190532990564457298328856667259513514451405720577107585234397463194184373681302608905193727915493162538372499393178956809146746819813907962270433374654726249253567957027199352970236216518765860871348535655437337892734043925133948152279156008133896713639460051258818462358804579224613552371819475021442446583588172763536609044832954778117697988373771149583340174163339455584962076005070529586752282593332666551037306908270087882178047277341406744934537331334477338298903955787323284863071594286306855603167255390029356412730966847057868170682610326704033396219130733315028682902053904201356285045188600077634038416512642105983253772345393666722886843254640418437025606021898547310631052870587522869627981136509210879607372653436567769265981527027765225134432870903154150372675553676124253473310152497351484355897910387899167706152316631564080768549076559718378819357128882381830916618575681229516130041129427898835120187244756377470997558805889348338594289646314041794767127236531793887560881259083755356147705310551115422398597814278644664086556179896832296854989004181645134584142791843634880009654298814169761161129726045686513592994497767486262988992825312855627826672105866832462559917918480186844521578796847039306780966461477099893197121106144187905355511732885724620866886932639008443758639921132946613947958809378637186212785489978339549580083964349586949015156883194918750523981013048238043343429086033172632513413273486596531619480597097669642993914569054654091213381628682684453870592044233356733961129588636920022161024649532594149264100431820322467183658995514187086805168271811913795550510482663324665192437617459138142529567661759735760311399202252517113662487686862437883022926530823151119783460343072563409163694785261032819065268246836075204508867407293964343380544895819583721010775095286272191496407258760014323351444961964648232560351732416195983994144639402178275200071244477975523741672232924791968392390915143764443362784921067590713144165608925925750551847994755395130829707609503283925120717094353089483174323738047136090010261334552489084080697894612698847281309928566805201041336671295463289378167933881649680595462773319252693387449288054578369380539452352904639314527471873199221284808783615984894475305757825268345551683376689939484597804086834664834379293917899577385764759654192409510529499729725637806961953871438906776537593092856559255866652728082996137946886002597965081998477500095032220908055922011780424956827591655563418283345459930551837407045336644827113050147866100473501024891870510233877725928922627022609926826735587769677500586815248862395080928334596844419933900159662437358758125232940344245208987966205948575170876821832719115087116892699176916443106503459672358896497422175580267287150344391781801004578343786931417164515202038377826360971755846027363758826630440901414719376946691190307844334021493451264447287993924050466038425455314993596055633110643309523692273268993145341049431580190447099478237521650896847316079317745514596380291982930469968330892077603629056711518637737564626548721337830031325681226434004990250798918179769523903521239722293978153666314676548009772845928687579046023611665218329429520763862709749107506018970036814952526085895657811282350279273689479758151012232321452259234670120517805213023794795213721952347099161451624813643098590789585286602362324469880820834850938186533721037076402190976545275233413793606988286744784821098854589465371948399726843045869179474239881146283542227201053459610257416984469686232694117328642153602502634383236721791504909734221598362905082418182045219860380916163835889551159054118638850251507624535615565860033689843407562805352442840207398922891888112715275051858073953611963001347433013493134706371892459184126460342406946048616762955498482936766336487584640147845341494301301928137927546185724508132594118618361291982780530857679288563281992782453262635196435094908262770079785840431664337775699877319058255641068555324392509548990743148240869561603444391645971774132541608342203883444534149337919443816284695834118722059839127143285997716093920511828749407705645165821100605580861521453648991034876569072703392683402370117310956071430254964035631762240635166185721024315740518178818482180409878930350644750902798836624994481586268772727472217770004120645625316474392611825168660058103802609205683347838330448795435727059900161957422211977335480477085638893826859137211485062342968497179341804057634326659056654196836195797967001461754283701278661811153962869205518343265238341829518031889141350676032765581451193068757655402388876589675244932704838192838735320367451449340361360755968474094991467434338984156647567449908645434980483631797322735743492753569345926625482574167680078149763906135239611935092869598936788785248533892707904215690341820855182569755997679002246309489761203661534545960377282860888307909478391746869134811247834287322663649107643509174349675153401342410548471460433510297209859579529108852697810472099105411179999193123466869048838758042468677260762734952324547334123114176488859927509370571781124313665756846346452072574354338435454636185253312532915283930142731199182589721194189642026169503251121335942656173506219917201297546907284360937008600793211402474400917531185807920269784378678298643618106851830347210472664885399626331105392343722098817005421046120491600517021006339181833578324512232139720907342570603966713228241877310035192623674390837632540166546426067887418064395003078849592607615833305911358577144235711728481134955179805659092445237901158653021362197543916273693580794401115162772935879409498505043167879542775349066870029590361911951515623662314943817303838827176449845015745617641719464768789558596509880256711018636608408633518611113193920805666192299800114664800090543367850206742541220297835699567664882195091782226876924553226073907766902510604236268063033997892788456096340394898970484463201562882688027272263909991120408379588850211985220110939156065127075868430368800680928833932188409381046178956035637510923182635286941964475087690755088836786354277008467314593648287010701517802071069238777434214706625629785950241257905924337629209544533944381629206670160139205564069761405164260732363947430373871755953427500596847220112222102128351588984544684352665053372131437224436833656854775046229810575211645081682240652835648190461525834510879336307916874966245451015630503195621278255464186737531732076630368834506620654044477565489910162500625223081117792225370245458645715442915357326111793713947077444530235021092382833784209140493791389598577272065514375933108553720100323511702618487942534549091345296428185312049916587856578441035742296986621249008486743995963438730771069113432944265800820191229351923732652055202916283084096899408101152214777489830206894873585364700186406820750705820130727863841378875470996301388943456945853398948282044923431658589891193952650846210590942250319580814608918126359444799984984364317092160158271699087478082071464380926627364170229527684990018969389076335900481174293770602561849489115229167341983467550846376416190206807450335158747182837884275024068756010051122867890747892218521018998117278676240822322185470252900386868356822606769868680273792566595395307626377348213260659565436501136356196499635324322573684128987521196716316992000128955276207740201313861516669101886966691950966578178725633860709586434472190065909103315022272124137914469653457885160627140110907692709573365157548706351986325965686508569725299357210024182314840056103923662578606774456132614498514215328645150361707569096121927396338144681007224378105422820762876302366397809880664828181521381922182190281761303000795721174490688670746463732922837122736102689017362326322108814165256593463378462466941179053729841476186896295474544711318754063352608638915587358918502006832273284277590680682039614585969189573220217132782231370366869921730100746272157289372881921635038639168159519811868054985917900014351801112227111987607364424014949546905684266870692231698637700738766597101319865441261794736797443700419403928877236847707176030496606492185786685956059509323337252226183466292059018433600607985842436887369331737432882851657548144961213106437887045396958422972129786511877642486959284891379013331710143342830603502283598524185420066680694196077541115722152816741053781159939254763431534452877745402385995689280715230041923927218475237843595416206151445035207746081547748744641662105792929254675842575841270039453453039862758306970809636441288070112181370308297316964382758757377829479843832715497201583942252393147783601144093335016623653668054967760350033894892627641313904218003656565669075977633621545735572478123615208233702767537101172908659785392742231193280493191153229057302737589596098972815659314841228379054391469415535723174331263827862981742429980820650519471302754264364307075435133216735241943976562556625244493617843753911336410997358769149075832602281853538972340625818460483640370770540413016663410679381046088850267908539534381013979138849342426630540204984766497598012806919600874057276515417284593861863428527399234932140649863411700228374708702704055062111466501669991565733194606835563800781819703381349932802675977509518188492438032559653090700584219477216153036354242795541837791812865523250905345623141483548936222449872954554548106767047298521478399574129793800972945440268432308615953164835438754842284931668638428402988161472968856532092149529690035285402345860088298530083864188192256013064628943040159529164716777782218546536581014894372684825895016172160298367279287330952362174047493163417432765560877512989802422078602392251050660426997117460500978795848526093814190508048483275107297457746002464640046964746525198552764276204692862516132271121091490288676966014376367142948215510219267493016626675573325824936045579411896302532153094798443345796105716478691229288205088007744161643743662519711416749102671962343068643464246838533841153006279026665386228485584233840180454729422026225761376852293617647582150895255701818881460243681448873250147050648289975612280621480782755773430069449156226096941567995542310217222128132346666972186316389774600887482343454997643703181573945864588859984395249203099770581939758040979481879533363277481826794453719822361889004857558055914268641682353181669172294780566381709224742240346639683207485111596238233533004344382670850283952165401840514020204182891638795057093893243206583097987036477214555692641083859405560717006641603975188044690417797174373769699038997331742512759895452950132834565251045543186100080458594719981804750774991987303185400665722655127145920546760640670639408504233575916815496399408108559873642531319572475414301909502501614227386407093672214446264292981885725803890490593029726895208351521884730065587370985216892069444886970839865121793736631599267061060049015644066136660825548156170405065472098652203049024550085947456006128872698584202037151439604119619682024185150064432895569917748997561001397538864077772402301743715350233059803105377011405979055382250383362260829546679385426409441184499365923405941871287495795272873405720445192046867089709366965152143505074230365931589470545358003999235191546900192367376306962622637570538793353525563651282912882436251183858394344616808528861590192626337079299766817652873332126720262737882823909477344975309594347959408977904043264947529742729858594007836796136632930933075524815644916701082261619681766102131198148171523885070480513387871366089401244816797102174068476139016689557913669758977818202102411489011855526030871816219738745459228074711239226133160527927301917681289709498041150228969004741021263595335012898514078861117505837678756598385721612605249248773928511075848948549698212233851881535720963786739170818561538712406641271962452640467196296329124128008799894500988734420944585274832364167839169543049969706320352076852356769177494212487355874747618378078229063892613959849657201246912514426729298103365942931001871697019953202045909797196958331495750119441164099519218359105051181628579024693296882128639190338998236003018376691827905308948868679495987810926340941099283816525969619593018537259791767021217139505672145808074555673320269727688993158664586894675145618540332821017030701873437414143238561732276478753544373410382768777957997950695875169996404134051860170565631381441650888154385390982579550425402269239098192528934140987110045274201605188337793149026238111905392721633906254942680614806349417204596150512998326922577892439448895945542909280891248572660461116310238148957860164710921237417178287065310062580020749639800163077857319940995975648733865716414708463370080974382542434499259342628650237865398043397127407311063734673231566800011605549125281579155346005566059739036829544795908675467469997206655243322689221066738326267682133813075534278724893147823898674955530708120304753279998609018685032318309501641803449405692178044427243487949696720414652762623055621456995246509635753087457186389497436441830616298839264490881985610210831124673188755923203556084400608899804981779222069791627403917258086511921288686143180616230197452013645787944972676406746938072473566250730367235742094627670760446131632667547970233048993867906092019410943618960043630823877465045595082319528599785335119553347766347406131039538777960937642896275214138920318902557979530076323585431363904051873034920567316169683246128307558819239955587395783436863781552301959692072776982361301205654830327534508146308670818090974303824245834785325589797391232666920422116383603277448460642200317775589337331478796422855988981506692878710112917350489582059134573577591760173206063011610071968554944976961931975207156186651080262836218714077900665149885722488167804899844210875142411204058622580009576620466485734675550984011262986557578184856399791455958250929340917709737512772146143159831725441637209171734658877329785797890117113494707132517395811185141137052653438351264317940539502834356907996486655982182328742305069390525642155387351065293716468032635545743926345595309410671927401375270532126647097373212597482652596021476738492382003805378315047315096599658319509964979165306168108728541315605880508244692028358910178031255446942556095313552206678570256799824608679292576448804977746139929658994453647690370799494685154927292754444133915675913925421820862030752534526166057800327632361336198582338849935487395160302927319907856557158770798303092727030153092852183891253122991580412852609567783521929056481825140234023119178643946966135646187432655950881998774798918419837602173698898617414786249951313501217981408589929000414046222138439739953337865002121308617165927004919905618627021900602001288730086018311679099914302639281772697763190368903300227433845682754897133681303462588054525481751860301626754503047200460026174183954206196139092234454139037444257155973110333003483973881417865188184736133470603405128427345625414581865783941081335006076639040895601253044447626428941850423563215547918206253800362194485073047013208841074469761220112006183415914059241101091631271790020265765954470107890000455224312393907644614715007389001971944053208720025539673011793238102669955040638635446230793335097051736657352238205789196286662004367680978987746403921885554909535796051580021944015807358213597934195945144176451089373844883898209684816066327176150855135106134586786617230742660764745354970993173048943352548243546074133274624656852171048270562645600990577962888149136402585261198904686160407549231350810730530677498356207609503602984808394562972015088505321123783879268006173462648861437847726187910375608243185858482143241138908655226316319476186869576613456034452052116582477494103808851296938591413375399423696282065419091064398597173850843869065643600338323402400810910456623299974499784552744135925463314360413352801003646760258737450117441304949123391272755311168590178456124282102543517836212913535805483514846211962497233124311064729605000298099105014767236919378148125648703412521604006237808182084097947596381449777314289873961132742365750095545931467080816353424969630165319323702067576255939766167639020166048265046749348523665326616293730010677461032738150750072264875200823785519438388813297093840268673190547513064398696190273984434076429826678402954266157381655218999786987042187003926882813717136050316828911419465138100797317080613678619887139334290794962941193080679652821355897288992960676879305875554886250615381419860897604205092262310570905058899600566628195462312909829088254540639160579137454374688977157746455582314233078253497095165101282277196105945599899435936031711295180005628114967521284623015548375041978370672207318001045699918983992664281495180812037399627845169831575382054951919595659203744523624934764434566693657418136163842132797473012563704097510670769168142399518340556335875552201761384442031557827002342329258018784695511420431863410932896518301377212158092298848550884289900212816454036194050766074149203225878038249352379022913323766714170121502152762187918031144427252527224741076066168879504998617490013495226605517825837291223613458605276354380948088165272216261324690255957390138452428233205919396525772321898108870880545795093899460277019744410614850598008723799864869276180028438993896226929594464684457441808928589697763325758555385354545532899091587691002268234254223504212143576796879324138630764577897237995978143838480847557148999990853143816958792518694068084707825298534603160835638120578416810802359398408190714907979571901889225748523062138879181392288849661987507547390733313269893246078430025126164309255542539208335156885060718600449309052580081679100741418472492976992609439498814949969888058919710577650031102066844201600454151068733629983768609106450986629588013422222432784284504551784790939474528698492819143408456164843149231966680615996454652002835484425268818782874027739859612912020618073863586022871864567554590576216505397536369003115515151927391080637647692019458646060145446023537837656781203147864592048229167958261109927893120825803579833662425497675556515509924115568226626446872225024696333374821092934883007873769918086289334252587938014169955061490290575555884439572080492733336276138746355827441659830980884212960830072673566428178734514886113296660167626742345503412621519656926076891001786254060987303864796072526870230084526458593977292731470472829974621934734847855967750961304363952824525899662351786111476062937089403033295029895367783145756296268385865392534726757939636737699986141049249050003953822874803769355857561779058572464505337613647079524548215372633029484942085712108805881629095508051758457256359227372724785595757665034935853527977713533706395250968428243796125852793412133764960266855947974667143345654529457982686800774644846661061460122549909108024356000077288582111577713564464753760435014435041608655664354650343481168555228841286610800517145418156944019943650237463367155040081968533160096795691704589888896985269260420337146934928648974436300043643137314263296296752128509402719228189022371113011328152453891145406701673974748548138017572612012660721975527771435201639812905086217872715359980028771193180806943156455358528093287630511369291930572456342257419652931264419515768841083128725485054990821894783758866766870253802455176802919844507752829702057708123757196474703574614052647484411061185955545590847318417011071195273149976840605754610355306397435921669843256740621748491784258841578308487700966676669643998568541517221326178181757127282441991816945945524257570770141332487933436224681269393586121176451246759072035618888203999181136977334540922145140328824734766894605737433728075394081715250988413854931388409665936280288057745521522135269231668404223256598454397704289001004748934030837554781584385412412114175042026797662531051045241151861248863855868774997016213979187492532476819627747626475503489377836513151019768522245001703998754178113346435583485703183581025236559941999957621950204199563122119892444471322685917403245948876673772940682377797721561565740660474881306681196825105500220710902280280541588047882545496466058578980654456391227382845679482448291005713709909414876673231027101700011257903666096866161776469560720949251967067403133453824489743283605650410470905642636611577221378379747394335348310155709407229809262589433227622981122366033907442518572061147278423868789555553578400441816011975557367472892741856977808295277767909521093854816515509864916220503473133488495438875126703560587234043338101147847845438766956390016139443692456661363279628638280113071839183530038593683640181440134359043409509760978743942075773349577945927314032157248131607763625018202372552793362519043534825478802384586668880340101596567855607488107702348574357536731582763195049214230824809250717065661593924242513329680668251338797355264690055763648748599334258554425815508960258769095975583943140024773224953817548955944032256481022498577192167549519508074006757189514937785286560696251432457034408803458172288844515182717158075078876714818915450342821508539919610997789137480279762324637718480829446356269401735924739526006065766172331505522597255509991935920464566358322400440871915718140558516703190728658148514944884720876499363778028706999104356182837985116977473681517882066213228183013359091262077456405482990275939057826888089313677168752045872623391062061740357669886029477090546591261400601279720383626158596019375640737642819827026297500290358290317054508434967909308803054728362950997168907533334988250499087907100601123989641139447469059708090933273376426175895855973065141589960886606194397491324405011822583710490824888977765926446487478461067609040961704405755737490334642681906588548577207260523920870631802249916728892303647116898561891666506725470403857799379544144482723680691264539461310138695258098778027709710490577317258498434317576044460041829478178151052827549391442284721667805614842508254349252802588443039501192444994303937140400203640846965214670780718540688819189980404843762256061959419026705612579938696477733284713947147804715068603335203129251189852288079266276568038874391855262511541535593795278305108789611400366591659227169668686740285182409233967774587051994381451521547781883679191125322428702787133612770516732419023629812897900653548834571668628375451489098261618997129804824326863429116874621094063115654755466149719877024418382035364786546031758128528618013637343177502323198376016351675577390979767062529541974762009240192593322950895472112450363886952787902512801386762602773223053599800747059055897602435901367856820258591554271743644116380938920313453901097162962411260487755353395738973312921707650914207614573377712354785855595870348052126883854408429612935111870303876023890209119734072611791490345152140682173509114523025423139985496658449043718128672202672644318810345518308270400031229398579462590788316389449124338658194693894568961262583084845503393268361259588125216616501975838027470399033450672929767676738531145164591657305030390835980456150130440743800936069814120028413550717469064603594339723500942233034022960075942752307372710642682167847247965765829983565220131739278590505040795472369969161710513548722847742443465846031932889542715674942121671824576651779906820962888080480026196497516399593630170804648616075381932235648958685085528285999922421269883526569903108986274634561643732529299261698671344408415896482516168878701303598039833301439378908251347579710220745278276743832230534768235468020963373097450463748079597693281861297995754631886261005136567970668817685231496681601976616132777396296958577363998637878219054345409038564330834213314952707680323185496916353838584192155723188391764881730859896910622003067282705216360235239583626866866181445705467954949676347465593834918888943312566282719973498920252203605063393589931011503448092215926258764557080808914070925606018756368334694645819330194633206854923454067937537989768766162403884962236436215709522608615728155415367574233155046398018634641828180044294746546068185739663292341406400209337118858263244037000249504965897630155443408716237210918850389247560488265684188872857672139416415115584905523467240749999725885926906328784214977116566512685902950656192196467485766945038364377226421002337005519014500452872782823006376451802285535361596922964528140364715965958725645251945348637314426165652196424997399831947633753429848969984892474902558521892833299404932995605425975096132616604059207906956281637795820226131639164521897814095108991923997087431612600589890613103364713162371037248349730202227497416799854810785347576363451083498452144858492942698091105333877032232329262797140838549735771107145971037972831728303848240654716564117870067689495370329662147315637660042378165016944513544573274205283423704050602137101301557819395083341081849486114719487186689565462888502046217070568660616449137492422521633197951990780126205381872555704792651958824761120531534221549519598746435655601033416216742040920417238309698951041610237209349573429389500762789109820028903806012543266110956541024964249048570465024683361016245177214720311854958041733059312280249325030437151606819343315541702151562391130699861647189590959973400914341720372667905596296244226728994630536812838196780372719659464367236496038331503993752282098634756095038433437804657150594340739368441785432885418308769659168860417946286162761992232059979262666247757201159688717653735706602440652314502099929044500340294050971992540305074577656884931112944201803750429527661630318706132735076267490636430355021489219651768355139423977127578770458694774887807521550750119218308790643564909032904621060748556558811788709684117631368772089591735112011591237563181529913870920885809561986643442630921510824166145276352964236033738086428973781050727628896738378033815884748927228521510019079059564823593388987840974651279581468835340403722203222807481254490282904140057092906636856045308591344029807274039935785342586983255674887683967100647271590143381302936515700248548624697417373439156527312257034260566760542814126108102031144938201397248597449812092606743552650450373986960468123194560455378683709953801563538543955689082850838676827929290692683563701087104072586262692639848916736496483982421801542197107214818834509077860920703746454938827907469729157522628651017137057015995356107358993131917689022266203253636254365824492619731623393014573940476221329787459341100385125035044213350020360666512273019010639463224609018992446851286110323048199743181316511757478718710327507970279276097050966667038193276371863047719171075045093083218699962519781884786702723028787983912010856626320829751686694472279896266584619660785723133542647335652465226606692378645676372483728401732940653784937868097619383397828154660491258845685930311365636595587329859535044760188774229476566225835608077631196540781200037306972993458069769738902554352567077065929219261154020830442854189199269481978338329753623762307412917198563996100352433547540607345631112028072765195407846064885554047923031456478550294879515823242871827146648058523535026731811810460772205713045629970675408632582859885123020368529183078526367223129583485764414900249888035975670613903579721300135698424055840008489090776905773473997229995872971291104592142937237700026010589402348136940507706763517016409390273958909075051931481688523163755923384876354106556891968433584631002755660523431650696406484129272210470112044490182393550626153134121128958346209494687865974495980937806434511442776854726614355245526169824324353172903610028108827691650602949125127233180513071640676252120067099298058440003653029944997501312341477368122614846603714430145703875228676171227276560853694622341984862802763220386814291253494482034241376719047324543768260940838029603554748221606993926608042698191762199891903933383400200440115012984489412569401920468156264868698194880499774004829464482722454486130603006938215004913361216794428796311546855451645057376949720241952978337651685515946132037181550340877672061536311530481983115519023563826416059176002095888356645141285770397493303851702867547086181889122160839594288443832722331031251373853202805279763794739983970723390558963992705127756663387022207198920572174727884207772616194179451610627358966924799041520338890527616368032465026937940919028855744821832101915531196367669734918662019519474909359666948726110828235341268688266038524261339239964566300849826945017139406491193871379963878433438322173516090864695557504436196205287060885397290373897172873732979568763567220624571340710419614242873261022085124915162874724485298875121921872539479918909853654689734979413000129591638087527736719370459949480962416304174734268639084904168859755431041420571478185088851123621408973659866333368066466757092779806250452522142885455404211656708642600851483461520622340204889682340917560401175013518620249507180001150206193802977607461967896222107395230243743762057263919341096160558147722822303327493347688825768310481054109703766867610055889606399283633923887405889179942527440330457322379716837481622934111647345705756670022578906870851310172237103262595180254374057485343659789546463437566116670828962882993540160880062092823707995158468153392504589976596996819664401231290860931811891956147123473700324778572605590776254419406738613158701347344162279645581437173498234197490606533445896756737417395582718224587480372859157745908231194063767127824704454543506231625638520908192082129487655056642650228518355534051411223897346425653276350113112000423133632027182997077406110068524690242064332292021492301702267440248275501317381893612239944980688294385699099341136383701932062162918641892313050274320448345252793632359558149797188774157920553952032892587129964817491957532890529666439529793706674645117425068669029837797125473522588355800345103377773685809295254517177303634191210674880344550519169519937004071708467972783274302593279063788536385204129673666279247852840318325699800837359639750938853246480034807636930049321055849673656335632472211399781392542429523498050530784884444988226489311285981334825060766708453417156121949880310916315562251373256317870312188649754610169487056662399213609348360152854525838226642525944100082001689381886447437370674421865344272664625074850666370143716851643216477374450066010807312994777442063418909679275973074580348259700899369189873372989437757307064087947561399571607637937304106211578642531804727669943605053235507799206510512258654637897268829620702845343309370458197989294768098255580829459898836143371354057420011597726743040692295487322687102878724932753821345523562316404963026296725273450133158931531742888970515889729896637070508565598248457951827910264411570747104938158044977625369829118676860085689986122044395547727581947117398294548360717428131325719893800474519090946777452908697347574446024291804138903234099187716251549975315100446844324035684748454359892882898973086182650328066764519605154124771066127160846472502336448193852665790053744885877161133562703321728177244969155322678143223825041315670981727331648175267584442981873964168642588217797615819544973556768390651499622419426814561476893145940695332992146413095473828569647757872148267922048015046786687224449853094711599651052270019546003248318592033519702517126883444861734124356914750984358601153404826277467826110212346041212397184119758252652258094015888596516064190155409438805320306923116174568815883861634968018666727703922597909053654528815715589209818083804796906401129888811690769913566161402880918818902016111492698294405747693077195191144095090928272431226431214320749614940074677480576497560278066017955749025176483484435114366290765942472636238489568167274148282431143000270897598763250777823444470723545898738655941827037627782541786522746194827840355269592801528686842918183370093218652792993467523090834707522281820903414901462675699247484417060163651968583223585659158251809793130891373166416093231191530916889019368338508183570655193826146728630762480259235743523382543218287055270716583469149210424822917106128946270780818417897752045880938623010304974490340921947699038084118540758287765453091768631027589927280927275983457408345990862169883727306449264866908057228015410610973019199572590615172540829103864488398896865541579444742219009660801121727678528862442074608978720474934771616478024712872652375895704482766036722985400869138230682167363195584692948948593435442635466452230428543529173366383865294912658671807598192345119916836423353087050245989567294880373273438313400428587392737912857371388780767506686539298143652546612814080663512023522808323412821098386255853452152892471358057883242474636704586036092861793710806921067816577686292079137067081699766506817539401751872779390972588791979526159865633981798711683504161977224561952423950609226893364460376575713775815955456265143020649205738588654097730901310142169202660021686861005538074889559532835142671821454903763023888156215492686285714232455687880126452561606131747731864679152851145983214352622393904936177340885409675451650295686884620980597347712371745237698276499177868595421258221404848329222194763450225081643904598523954927333648587018985768532759523940530765899441748054728638457311553758711096809091147922199130748798808934262173936526463056858025811029211365991619421232574217624736291621410815424860368855409473116542889971265978376347743521104679898107048658953109777970826776769608017829818556809489191837126289935419295716136997637940718969362862149019438469123955299479133544427475862750224883541766376997699304265808344814525990376019887416192061873241246146269903725501192772246312602476364015629923536114957399084629035913707715322288559842807592099998862340724106680617928300610461533341520802770081238297046173025266333909611553062822233639544777641365832958549201010202369436493380269609028508924366734809539656415903230127475141212755636917937209301012561642448843376037722319026673910919399356809383237438024162576592335663737651063334648199523677931604866469036319823284314514905962936857717915210485474728025245307438397547640829352059720882257150888208782707719589325861751439949904114436602206366782401745625375871447499915945507226650236970033642581939358680012705912020041988229201538739265696822872046088846935071027628385545405645725554088222051570425375054233139035556253906349492411935040085518202502426236970574062809050617748704688008479806950054649354170949816588506332914365769305533382753008937154831633071427041004512457991543851457480030132696792263248374143766569462448132439585059810800599636603632071401694466870764856285959582684207740921512275694888679655100287167292392467268499870662818572132510839159611148761041759437381933575765962095177080009075130286867756390507965435030082449063478523731068050111960424587531733703933279496293223700305394629033524717768002738321892340764965936367951503129265629813017395380206636036929912040823511225966521381362959289410524555669431117030762078787432281433106562282173224865855576823725978393319079561321731567853074845719582144578500459208331053034522385174858608925251454747843911095522438544963212778316753822084761239371380077463013278976860546010207249692678536896059236341174406726587457529822465996096199852817271031969270641860850972948750471264143392681655708196620808221970948762646838039395127454423416170160603545089287993674348324923975796868167247524551350682227852100348113440609180046162511363030504617544880997304671693872774941010557350238162305935991074476993997785632136571037900502947387434517462029285459234808248473734560106467597032749805352526898828461424287621010573393920767956866956121452763140631552553076622075415335184026761732431440215582078772429636842720498954407402960105708821389459759408301437591777664702256767494765255179337132051288504625164493272541149446502470621526152091593385941903905711378376275648914794312642972751033172221611030298911140963630441351474256269150277374098320968126978872476488071235317735215338714218230580750024963370923266614777486209583698428136543329497387698364766379732583757722305781119600016437017369680363987596908525013256721070493509075561241053849235632464290610239844044191577812125896761137052171300529044189638758443218380703849540250675257240920463709123933024918759887805104988347674113663123333117058590401895568623463611377177186038818361187866570965443711322370853970519243450160612169519694880691259944529036115276878446181536386980167753958358861471271285308365913510912458883366590460888144568233435056972230293277445262177798054083144459754884128188827297817428520003399540839366997525695663133626302578928745755043000541763540610295441869784990808052686071438802455960123075687373165861936032198143484883850139316463768402418188653389838290080762662448507247577148503762546832164542510587159162393116990099177517292552792551338344895865252130054187083142433865182361242639965140714035075242139605878394435318639314004629590959035036142060065760382459115970448538260227204466382966767681116251143740006415464959758187057810104321263285024212626750206678329531013268547305283419335412569495549220846710399038481019650079905176606357362511343090452966086680411343213475704872681571363927067209900977798725220499993097939530740487161377364779767821590204816797574322761663315987392888696645157620533406092688993849569563511541679534388588690875221715006089454101845845198086264621996342830913449893938651702971472220559301527563737169323453085843012834362713324824431299719632578444180270661003815130282212573014498973425062860671643715287770764761494261421945180236067278565530700918637239433268052869321560598114427159973784530647794068607763021974089288554703994132035955211975265665850550480377898994813497758844733928148556483317637184245379153563397074526690334121765868276939292091055255854504402289852889768630733216540000477243790314817549722476118673985240152493941849890027899102412633966638723842527878385734004908130797325130405758553435813153382560172055215423834644470597316285893558540811939032873709058564903963938609455865838430108349008590707509327435319262547275468959186505723801376392974594342203036735880443874590817608558125352986564140152062075138643827776508199702677644548514012333273647464397337255109927815148675543993917915128775712334582131671278336119291278737286210831087533384933959314220430438595750513165898489332690650064710489818334515943195009580519944944430956199817561696860080939849067041324991977204825817445092625084952936297900363401325050622227599234289852953472911475999231496031103822156300615031502324494846591136908921968952536553977932731971958812257036554220904725996629098600362329583038850006712391663803784385757423186876899199707176678934346434938911588691459558868085415142035426088669797757578867685340643665593357029828776766327883173892613225312174785656487633861928312721455044424210741741498035438376195420134221954118767132341950604811432060716708131061806217818361614268660731653381863290512424135509486340117465342640731375514559605490551317314607159476700072656776095219842405190649023869947876053861183953430598290675323627296534232945616933844968648844756676799626534505938078233899538819994924321833303281578733380008771550191465649958524733016063321206185309901318333158303844312704333376321572270762017280233099620797506682682167465968605203323285157225643460807663475109229236949790913932524530665071905809641651010675954267478966197879501428197342999002764743068455413106352516012606608510586835064193878265915763046184790352051644291972834259481379988930252520427147116334053187078276525161021383233315255498617454215152295431367094475201013744457606717111072412062207901304845008465127725322969068124970440226697494793457257943488688359468740872546536476661259674890804522570738539794121168721906607263101399592371998967874679167413036659383157534090874039952122218934433958371704516663809660625084960055681666824851565402476323238774355197224384586342845767836833804040546817809273688592859825039057954589593795866214421118172188874131910899916305972453574530641481063420362219287610531155647915742423245109035435392185981778244757775346443112921261255743147696538875995664177985707249102119984667305526569057626198939976377668051958017067004559278573842825999000567818186197281849047700529217799499145048675553315006275629897939778269390913596599279222451625174678504560636213229775055681777473982898561869513839540852292389315222142120428606793893303950618154328078642933368568542292919250226428762525036958105960203615948171793089602615505004526512405758696526411536858711983454417157394402997969399076379477423211825423145671392416443187781608878603387583169817591777774763253680278902995001887310600183851333948963958887167297583307008505055215382445181202656475054085445382295191513721580684968015129790079990645585122240485141427907182375268993847298387921492747374830375708248120412861025098242062900691358967226132440371428745518522072150215886100952162816360235970415039906664254565536915578097090579481325525210676933449056090957367407421049026742015713943522466884217950139092025884164455480958224142415558384159767262086256027187887236860616023019095116526942010636243130136012300818267060091850539687596507051454120146917204838647261322265901953662038376938277941328280898190624016550999538398896963438223017530315048042874140920466158833687290807375792055307308717425720445568333265477400243638857348165435659796304324991557780670009519903275144622443334661864407869689442072540205822767595813877727504290035201066857519119452910481260152163138385792921839583711572989579434608017721846043167845265539512258723146609972694640259833247710959732901123629294596109988989888801395164903521495321375974391224572790833229645759456642631186278805869458815633864276882916975695074088990783700821209201395357311955988537600911605349687278354246174493367159137374296237860917346374611108143703107994084762244980386366319819405771035129095885325232783167527435656394525637143348317399897750256913903061604591427801835640786547012033525578529533234518736338506648948328526611025230350420729696287168580698201420337539751760893943395664976111830926965831682089536802476265263082996697856498289668402745970956769909383905597897669558014062789973827037459624807229611199421111662407962219839026446925163850524805230035640136939576563624400268492488541038592791005734251562548274355192443512161816265712708958032834690238174939162190853249459457933622693664786988683297035088972690544059619945356086464558651579218633453368818973199522608539804073772352300564978848968692591355483429183611103356106600517976105517144866435649913424978391220741668520123916586795268063975354568397038329096170442458350464487845818976783907770591211004756484215036157576445268498562371411920878264434463466849798665275463654657700406419891557223120299896080970813939215537391633042641060933891164339491575249544783826286827164523620465017571149910834714267330162691321770971578824469881620867641945759805383369851569280069190323962306556350735191617165479961505030655401383922400961589783768484460444521578244656063444196173280845295634000143801242002535745729740945042944304236204874366089927130396519916712140841496557905301727493979486764494808573373961451599465787290079251059215401900803526592912127230461030127405377649744275813718817154986330818653458748518511641858822266340436716925016853546469895972119130708279562584106971997163173380687605536780731077524714264400528189759143520743209675596334002615154232748119351119095259232503081459807783747797299262099499023502789221220241154421472845940876923490707703284833569213084438135322865362466865010631771940636866885296829674622931740455082472550907981481119732870511643011434702361495026924535950103935496994640636047548561847648459943590803138399891266437464825618079344763532245775629350513608752931054659280411804098962972106578021372007916000279376306908254270248942298195596292720162547385364586123607720041295154008530591382101006911244140518911957759201533793028914386439097336114325660060044659999767131020329768969325331549444834645719363963028668966433568268658502215006146851177587710225000531442545395039671709016188108009550430952219168155420151536344638548814075689691094367940899361858162033134456294534937160792461473143896022249369582692109223166207304063780481032288978004367395593105542980161818087833920979649588793674699893355821775027457234158302540324413762381781266511636463594328035161479585237703502968894926705364510504114123689171516637755288987219309775377134762375798285993613636077283125951051551152002488175459778519156232384116248497579595050237303199587019406820127104066017115680204990955919913001020813256080471551523615804609300366049163496543746247830500854768911551246921836196316252553820963853219409180966476845175809732606808297780616258744312768731967748415818805455855108829304945682396884382550730297685882800087312306907072627867375800650498329523842429050315404371140165550975210402594685023599495837267697807510509187656514105058937214489777841399021718074358175957228579897966370602621914912159199317144192010708857222520355763777696345843990411420296788679942824200140148863093423358191777680106511028914881558551857511947345775647239543430921803925900918156800580131120317002553285074622148652033067170459290650361550641908275497848601462532148839048242527127389370265008810875943635860517334515287757304942175127374441065767429458818623191743221614184579253651361630974034932144671537424846044047268074005953701807973410502708098487650753156003523706385756129686522315622025359918528210289452356058120717436039620116721103517966839178871187324972114032692619946910045234454478863485280657615214041492798057821385555172039752824033746078622282632966896836304513288763947645075602995714781077400999486991814185069161746408296023407522509490069591724814398860489077753766235644869529959313373890098184806868965499195911843038234554568572208034798479518733076862431092062260280823076494573449544660360530724845325288503751952272561045344667073811426506661957844137327993493668714084595538449682283548443311309314386063278855381038416553128423812439522037059792026180782283474504285141537959332530772174733865255540787555283285183472111041777160488284311698144877287233874587811380680816151289780998214430073388785328736118268579781307615983276350346116110527149469647870374383280813257418709784481661246684283633632510222916159080151956666322507514186044833043429247177695390930864480411702361389326033659165499228903883646522301061482073124531203347643238602676442783582975901532806342724436155718942075466723717977009995914682018268082087509162817870894606188471444998492249674276414836337690912871792847865592180195661755070222780248357796184550971611093687664270284283896467151034107925467003280326669781453552563917325871679227672446431547191554027390079810212597901658687868902420938237761023460454237961220091779255976499655440854728306601777024320448884721578913605085826472262101030694458502375342833562140255946688201163631409782927857844319256579713177983073157302972035684337583097874987487116285360667758364548015952708565846705212333001562283810133265119290255933667194114528103667195612481030735024294914158109769783895571308389217837328045327137095212971351677999182245475915316038399596506746843805585984705694454859069563963807151154341479190228209473692101099844230040758947264560777755214048934699725862564483753807658473661001267474590428172038402704034119146312528930613930053259856333937037275940957108010415688645628490258575400230275822352244953032245784953490435747080613701451247808458086896171811594153298349225252738999372753064964364526974656081818369478143528536099710292571567124569588637245602008209706790657630306651017205796846891575289897060420544729150199471084882046211923426530106232508931698653740840712677284187764053828032577288036642992165750098979691278900990604111206076238148830934447408216414697767362594976116967076480875981355017266185342119054652127748751261100860098104766692760298951842417000928366492298216849181281924579775667440480575253657882873633181352354939870161576191288379371730821390972791270106699016397455814034027622949700916403071499241698723618906606769753830095352738025198620859636473049785762836516868166002307045888968924933589324377820604647762794864793312342397376795726428626088456958451835224049699803726569526394031834499020368748965322188221983090786441460610077833971964526713636706141395247814304012881192465697427169158661770130852392405982964938724595321941122473503466416560673141636697055386058043526718985127708173780640003051162951582871192857797435398560582396584669191844824526462666391138989527312834444364695592481726706296529720363812202753238714659603825884487513956952394295770506165009631826571586770631853000398134885721056871329473553324663143844669094868498167091457146015890392665038868592640504238652398807710559205358964347528506490364906178218030998979795037810315884135278613859861741156896826789214575370118218705866373723834283353528647104857811091393184143592595428621827996692218196043340360126148346046629854127349838528146676045396205942458523378730081889094371972113499507962230721421532584817765015533147482786355054168080579929711529738404970845271095644356746206483522665311973365861687537165877336274843933238347134489598450953363619092865420872763385667548207997462804161416867818007804145366743330996912325177148998966865889576252782219557807721785537302002275882535577841896806878172438911627292528611868650620649670000765622360338715731388729107752151795514628028182494962293652460828602011675960091536728859296215820048037328632366093300985382445014094349949911683012242006365487361826174335006369943376208797346165086683780690090653498552747699983038326958560760778277642383618160796233743099107792060648593224939906354552364218692610005763951905029133741738437563232899158060145829855887827733549767312097578168250860834507232541037850785731875958277893381476502603140017500262238326323456820823927171826028201924817528069318668734505750039414599500539811240736957731905659855481905819569451029346686760487906676882014717255463950870514532156377513723296840492404579636747156197895922768377413075170897797503075260647180126933318092790722416439115332798966175418597356982467468672807529372354709783285935022140750361106708362776777549686250722250433858648757224647220077485607500234281980183992508502935636303025608035534089458219900720864457616729446297885618809301597817007647262986370393424665821423153918914734582203010439244281684973335137978008262730371367473215050997898246024592984360196875375394736594203524288133069079001287172985549015657258713123565749201535130268305342284346395942979070412202755581812356485424928729832493998259181302061358598727302564832835712633262676747489427095751746912563696446563571644241862787251565428379397152227909267079180928409705226594361046925120834929937975241267266270713399327987030756749579575786366411553754826413751042123382453162161820208474315103422329716120166324182083464997624964974210307830808002044895481940610235097177553309852282018872936721066300596623107108833812621423083234355169538466573798814368816354997274367338415584029542009725217447920842148584232232545426553101006855428649441449208480140329894648748670480608501489361660509974479370053709054182840428618716151512813032656150642703494066134664854126970787255717444801775680709130651583261781132712904235128098802415695154009355708622631535526397972612684023577329918987405053770248218603761806710638898421752124232900130511669924203135989684163657381959738775283881109702144645890254235330720340127254758880419288592955577908270441754650535481143285717167775060006743383231018585499573469698457448539989147515928957042338469588456904551032595376940049610151956905992339601983309363741638449908658947450044863675269226436399069332535281360777577464833251105107452013908895565881160540938407516321446346503768522394691217559037823343581394616988511263022889657594418881229750056151665031069274602246063003437283250592948682205504780019855160488691310920738070883249224164688829350318485927077537613837724624290861046486329609615010652268475173620658023650702501917011978701024697895609790145696416560867022262510460531822183211451803793867653753512598573878481171170777777317942979885223982437557157274482116692650128585778523985078479440211639988733867259696823052417167826404963514210022985439767647056593084563230983139518248764721656772603742210977340843825531074168321153577502878647180284716177805255619726621265333608714644640079761302836355254083310743197507664240403076146849956666801710533868000368034459725855100834968354338783868862244209477866817640978911103199633768965987656187622789423309537813214867598035401646685424566545973387285428039780888023788030195305201446115648577576695050924433373357943190713956352961014142168237511962259534696817130134289103247633439971247045524019648767305639695348816998623457822809476156551834918610374904395771689597165033778944810242446286188015442155433123545096044604088985576349276480832373109297173706744864610581966387271478628926647973606765262722079543526623678383499277150511680584610444698209797832370249290503308367305467984182375720447014418499032053791325501712868791928004859415932292902151260563123003479647609677056589986673428638192972336554268250654412679511897048518325232241517897477929381475621973223818043709390957159803376652054466456998658117566381442953148165593359126014526908566301450275958261311726532742723050818190894105626458674086861845189844322183133711627448683222904991578113659084315911874126009927823113341378859880798302745110363125120167049526611822951147813001573376053126311849853026497334494895333577872582596314744697862862241551537614381573808905064660501933103587612030539805424649797601335847922039202302160541845489090179579187349544639554178499254303802372207210239074944600017993204563136625685826917035820226520401566684731902429007527974390900418335932329382880742297468229483158308316519759250925711096770294623347133677761997945743730263522513690378214323577334897960697904525730756643831768528772562968120080774757814403982947575226779852284198386195706907518240454808806211888356147951077223304364458729958411816219340272167281742399831809365530718401418566277767941648854091662656323098126553169858907065741699451144485351129093180374825735743710102547364693664740908721864050841988164301023217009270147077230375177658650769855705056174119617064803934152047721242532800354904360595186199402638746453299368925778722516633249761615881730571716363490522981994969631998709294482698627109380974560208537479122849929633152160872563328305015897744194492704646769666852161451726442667716061366835523188203294198829419185979079551520325446451196344742643811912474367759307273378272471897741452497783969534536943264009346900885488669530383635170728839733605875915837473361561172906664882592541871034334546727242396824094487082079914867101706534015494693984756475722852872328894296757521088345533171216252236508945961729086453679572307050529548930966134213070956702653791120053751361234719407967284528627500415022869546884338316277823364472439337500874773329819314810959416445409180640304993556302552765036732892972876450596695003294732561356200058353609126843163859723020409338554674068451561829335032522210078829848889026156858900352215285848373298044690547635106847763360328888266085575266764964142553478427176937911037250659545463560251704808082795201430381898171236665032334157774015213097080662775612927819512311315501367804167248206109830347567934617325511264237310521577101934723252087169866501014630314022358744197432246171059091919294806570101240358138413296236673480362576507980874377077050924442876099555290631635230541220164216401487472288642938821232476839007412015875836268722639527891154217022091305640621811746899422461152813573122488727934256023357993348770724851440179543680579011613804994620049467228744066829070223853617582364101179287883717465972560361125270271899103697080002738254071816161254567587897337001354201771839643673643514136774370580705289574825475446884916509646815297736493021120892469689868993890918860939088547975344650796749023110292243069032191854536707318996542678209159175465827858459582416259942354447653194306968311871774281541257231189539700939053048276236254215962723233296435258811805484227559506633080408980100549416723890664792851583030650412690908080028983429724806637607238897378386155404612168778436148378019514134875013298417902893124887738500802399332384985001672091099737468861460255173989163783870130950481511464042681700066477508033029579247760864119842999301391343102201256329650348929112026784642676281758557065005242408928446178697415716055595178939027726220248846758053535332237823857068848580665942987658249409331508979011495466639583620872933924816796396515287287084887819608857155083229600559465583902898768876712229476518726024226314319555073374624511749416264465939781082043434239970567489238161844493353879697103448447130175488169074562669888203471239626317848053802987677834196191682944825482073540048365278112064636086715218476164614232676661242733645323214770295734040441014497673252938191799636640769219431881609694280694864148785780403259721018993236917535529309692919103096385624455877296872031142608412381015990585471562323005514391594258527088254576013518928550169898112394424584093738708532096791846546371908444356633109067029772263845745689019864006874658934213527040098751095726576639928680146548171391701266311764698812130851544664417493775237947285026925195071174624619513680381335953859139760416231257551223570373621177547075327315908830263566849688415470958689516536578180398112574889053797168304030300932407184501563658278192209417226395655561365783038103283020866628417799371673651537901210153469473727523883251046823961629764680129983490402805811664640200786929302105343256981384292657978260347259270632039422840273765523707290862201366952854642017448474782484856953980781367915517341482667356890868813666701787686650457031232456704760368577188976014931187142325407391528297084336643277268222515177067448574309380677123003330667281626810569295894193705405410790712865376766371743647358522039976957393871793912476715335423223678942345976565460966316162296964802597002183876095226636187015891275397395423338519063817630909628169160893020285949672835775638679516845927979734505005522439415444176800465596603013357499440540142556860553903573530219667735082434414624289348597691093388913547157916891593932814838034002570173228157080949945609871902380321041060366675708406797120231687775999897433319519397353482173868890981851936380062129931251771356542962843642700201174896863018957984819937629854056028164600983478472539123626690896183971920994415048151789454890919628559151823910065263430342613908578658809096653372564518811644791534240735444379834043395984726429411913272807453180075714825691991485791186159853053545479719757191696738989866506254744691507232896726621565660321240334699513065606077063227903028699146112700849096335327710779559447545095525238881769337143534315140244033979247288888010940155121019863663545799525553603920397885813842511557525052056730683327565997678203205540433482908215828498153848475252504389418208935347571648668501764571043808085481202777185661080654335439367265327730898738547281832005577231992024335086560689118632221215255774651384575643598712235970212072089503883315767772654343868007250356498592891020243042773574577516530138315145173785420858281401538549011463653839079119568294790461663467495729535132231808081677229117661172374865956812985438571850031746106853321672030613212269151473320970612110680971941853384679185824116900000267918952157769693302585576594175211675123267734730670768143145808244701718831874186349555343208846958092996182736905846879835851009491508344336260620299008816703418324549650153367512170948269263181784618054994455919134847527949606268299301695371424495694609110539828662972214214651410066369029016655276241337948545901876230395210766848527872942057310578904584601717260738399328824890028793303227022488658217857565081168846743417230543513181183683824585354191579961792146708775315969365528932150112188067787658888651069627420364865212799158786904450905356054631379367586180083141590496095563541740664786371437381214098327201254934257780301466817233764234758502749203342368686138302017901303289971650388039554861910962220294908971448791398844654137990833019412068331311867448653087097150578288577632281613249445543406028083267987092179548481103264407151420735536234347395764787009347993174971384596991611239673272519824027241347919011863575440060887567286446089175416165524868717045035282432649626565371103232872994314912373398523125267483195056964521255200880570874763692072721632399296906750262528129183817357825827057776693271910241211647965983544447034358963633667450631080171962757310696277333121619370505417799097534776436365694935337670517857823658683394423971375475996426868844104625204324754657145866226743657977765016066176110070833749845177777798202870005053258704302527098849842286895264388291996239668588115610007180913814889794251351731605877819471531585460942035974545930893706021362977536176284184483560179176481066299601975350951154880270846078411798578269471822422728601985480794816267561080891454569319669277868700516516751109403512459750839321108083805366755986435625185668733000032971718390494298547399724663364585346491679517443445273324715503690895215661021611082921192178517581654713960139309351177869314705443096727996105287825541478540825479530362327076302787989162718707063665656312430213713848037854461000373702166672150408422462780185032983991068136469306368881091298154016640635332631078877410289086907245275562345846912028650635065832549670220416544306497858463950740229623279824408175944468120627976532477222803306487480676040354185787669861165571414048685532796762751971761850057884013610113706540381053228683558581264814186805520076583089592665422538547687632215348190717431251037399242989535728731722171001543559482519511017270242021511813133607533522120016383020042896069648831064772080040552000255474645257227431935805284651753757559902683271302007445928909449357097193312291235865620252109223381430480413272767358473674509319990970447421708934286491885698109428278791095197656502249909484931137975559530668894160717827920616306967095370934068076131914862892426293606444689386253926494323248850887547069723457663849979838229582950961686776186658400180760974914050779225320374166107176910061275102588828476048570771787486815404417258738969086248049441410291207153132204372749967636406573753666282300684517967022357065665844060545666604298951662031821664583955631136675287770417192962399112124321943645663499406585277973746216334857455630890070553905406999935706455913953608376565243835056670419351564094289852246946262985728329991500124865520442456219958826685095074672149746438596368254139728952536877316911239809973671944242188399271995234389991908996593317483294063797834765524028030277868784009493810015273778235525478593905975603110792409408054847392432611930717412573396918594102720168817057969154136400551412682899634376524904843096531051639547406042986097565756858636757363698749789111043459698378887929451239971596764758229877431995276075971458709250312979958389798632079978687116828057220601669165017717144428174255163030136720942110810091380243731309297757141357605443417164999309954291216294903254729789102375874239331423722326174567026418983041076382330596788619131611382243967024078123642972937391035400908762866454191707831931657608857821588910657220023857807610526759637921892137433667590091487738399769209106477918795825963543405373766335739352456804346480676679019315135908650009650102638676915024314176934882056792991667755999352568557316885562922303365641103542948814457487119397605929381621234362310785588742270684791943383514385708691944153834164956036740297345757199275789944845032866294174770818796578135679545231388090400000913604846472061563953953960616803476683139580502893715796973313966958598971446236782209877961072552364429573325073752165718062690888487135272544298722949664636788354658651799216386396894972250958429053017025944824939245078549173089732238986893843592917308547784195508279136918579657116143478119160733532278138097702797835489001674874612593800547130747289805217646322319010393494196092758471727625411572172699530111155356383829267807261392015984061546006418924242172284976234140986861170175236877281177667976137804747099201963946785870910410303743203928196579302045193382657980812064276677333111726854081026120676623886952594853616495807224955676759894990149717250417172555299792810472140465850760425867623879145780777826761760553827695284837122017998359819695322621808449299953865355456778669950550010855906095572007716403087034840384440945077209685383351786797115518765677143577835946793376425885278081960621710895127872549825125820974397517165652966849654204549688092182936547326226808022009396747666987490311688832288096008353989075023941761131046446866997903743161280833623597620643211903693801896086660213340928200994037714081160064408399756266450189204894623217086379269527145752198086951367654827018092967764996001990041889287331774400511829647064293796611368043221150138812213112203897788924387632590405497440715573942437121443467162289839034810881369915238305407254228400340320055109714695143352665655295957490725020743063336698865449980475720432832282169296936962428503936723289386558338979344985700323925533591755931409952459284858805262289537769904429146047635974385967812042569927942875821565366348393761700457860893241904524778521063417016546470456200738823693183679738512446814322131032468341335270161879829191927195253737917010153426035120226741413002643385281904850106903240127559605178274093931189131709830226863139877183191930993741880523894712080131295751890932302124935438847884076154603962286230095610676691301595625752106214150679935647890156169161524251346143162265998895194914509915468420064708390316373815632264425779746772049561318264265278780028362166950086607085515051346798291129924120417957160451231081925178558716038563348963773089884210424830835442266773305249446992271804940803833182201091527439393226145183349140636468117928640141950603602874238780292510911753220718993286634379996085943078285854441979790698563286723577591400077982792638435441509812196437729051067148309504205999016589635490838338446150268222283003457741291966687755396622031221783598069585839263552770682561996018209878680179287777890280549858981195478318051338322922791822883119719229948123911142695939364553583161819397356890163052378986549554075933339857256338952188382375889271513962251073910050199664105497707582408092721836573908184986775426633865119694236881389839741231620419371889849075089304780401388896371651059098967624232573986949004360332735478144476366379877510099469728249719484157273898055521438978464801666039335271556076372727150578246212292628616641239853984888876703534387464310140933849222831474281211685248957464784386420254698913892934760036537669999589032164994457175952639372793992330389269513208959303795076036199101689678301506384469864531222241409727972438356965273934715834505000665748742528435797747501213783334620952428218630980725216452595828380474432828257380251830450092339035941639349729410566754901343958821244962259163058287227193938538199727669450483829577059404092461007322051786761900906103931366709848649642527364209246589439178508781335125368666606755235811046301858286312012187247275344652407806670841934322373480912551363480411640640524102227802789302947754380072274948845904658863223879377981125462884056694210652784930466185388918508817617506632943052232796031539105487721295045243586636501068696652745632003675178705356887576350838259895353393698089130596706674273682891090348488726070865318967901090519813025722794729271757303243748721626784958617218171886150978108307309359779969602456693557671575920081982210628036574261385277819404851157448282853490076960570449111428541771309232341943788158690816142585829466024800727863948317148218985601332202489919928964641121771582401553163692813939001005910053189640737480005820874258130663200041326219252100018917893150017327905350366400503054438315826520283419465765149255796288868953474521618358967317656082399465141238151764734732154030639112124320763825589235766721001060993953941306832845139335630321960292262539446989825692055821351933663968250999965050537724733027840232585733205686629140683822413215863256479351805749860064866332998071347376023101767445480938004735373349248303076466455359140926128782842719608786164838092310932227438462373664145476239078042288648024879245443727455508836931918492611059699362531483303019894823795101639590847330953518859226587667742084471316155387927725231201328959796814653206119063901684317099710569010307193518135404700259755448555004360449180896321585876154274495313013436116996801697012821517468557321714976916737279720029281864843857098213690488918972720152300117287018051643980395587003793691347219090081117717200552027432445930566120459599597649078429156754628715007000252893480695203797360587087263207727625236392341130963976571522748848607113329473602223374004470465450352385064710792941546350263296391234093731938477851380499212177841846785870432189633491183587166419652116551996703253344075220771402242752784919777480207467688578058345050055006654338029588506410696032142024245192324902886754364430051218590433330308669315549875070404111630245341396587163667972445283628792907929847959334045476889005876788426563703459595868332612891307016191747166332051090834670377130643230311026537973031627251037993679981067971804349310892608937413386809206364634679758377637213056851843011353896326775591917298321777282574692383089628135083671292102813429189952410960354229999249928017520805513026123284869443083993439344055960686211673325817771161058788813980875677132910343627470852742375043403219302904833429641092283575696694041717785891985649240193682731814948783420748168905744385802495398693785581044452372607065398093534056421016234045011279063849648850940585158172124398125598368236748400452611099071425062544121692142461484540350929670167586533092985660994051118429201107488595145846426967610636710389078717140890637290223458785177475686860982772990851016562903296241504133934068678432646902485778543049571818159323476459459275725552462996083875305230209358020619250696058047668496948534210386647451561927126179053366072538666130020692502131713123327048992325108615846076393082453281298179027793310828624165581987182631677695869077252555602358803051167814102830551473462603931979281890933845277270642959845498212365875143961733566023623194454552281230450898710282129973277168941945123657273448317133331706238295777505956169072975070760342632907776080127617172336311491626321325120689495314316930669637545479639194274681618630939075659314301677411176697701980543955343595038094022986347795733386761206767056970785865760765885264122281511828181595752000144198279185850434484167438050211203641364990664422762507666922896354678301917776452845960607543210320985345068088957994149307176770745546740980251858621518168716928834340024425914632715813748892396132641869618224418411301060213102987198094510452347488473158054650623721932688161897571440393094996982861544589509726707818332894869217803502796189437828807442875071928282229412115335604030045062761415114450939523653936699824715675079011024419141131972472539063426445363181228967257370259748206198360687778125466280504519662498403969757069112327291568375091428062259652244549623429794458466663115917764821383637790836870129667143470666586206582887227813764416424926612434057363788082555690107088256517578385639073733246101122797801716150316995012324401931535668883825668282920610936330088451575711219666521891192463254384711761711849126071818636910255782594585907024323617347518475156515663158580160168754734597600085151966946975645721639177106544850590929270786895298944597386939112514489235948121125681599264234067337081860865915580352191511409187088304472063434975360514557936067783617698912807752481656475753690565125767250174918368603623283431234263661349520073523195249258482994075479626319321991704801341395663690704456982082649118027402723065672018635791835964654467330272381731063148322557786841011577846341019480150613478248543062948520197153729578040709959770795744162041521552906502124857132746808531609917740786319252930580888565446599220601745542654550101803927423072903132874533590088648841678321157065032833637032744533405155344337652594671420363668661356998658830048024986298579277666629650602269031454468516741938026331946337403943781210711290966313269941813001379725680552065537108968473040770991124173370798627590230134263088206341203569768442218976199080028248127639777036672087023015121243152021557829805331894021410251842398354042910320988035902051030607751698685200109026280738539291131266929035979295200432701305838307984209724476833409079856551310766230109071822447233833703865830471950339990803300417782352734423034159780383289945432268850750556676825162739816288808087529893083751301026053894347174859939637875615597688103372445580890137238918827985948665566618228472536044929554556963112457152078935544990474500115226425907889194151890106374895693675151954600037944922501005011229641890994650534684067117414694348148605493785147032615242448639020149508966333227755162299516786365490853474881921087486794008128097783790179841859469898960584424688423739720694314976910872310575516242562916736526955866854142915507817230300414589462965938842909112860871546534066345254287939730139171868041939478665486858393270540498557621234746017465321347577039997901775552354615307516720014319584810569986999285172138128175014277070474853972083924744679249387272220579837514608219943230023447660986335590705454007722908944638094371297345243467833984808739085261018281947665558770410046345835007134865294623228031575006183510266731380421642302779452203877267346658675005445377084171453850226330665310434776849018326520581478800471276463667601120891414573806586636874195386297024801906679366717006435570512828577168563910573856818169923039384078965943341409675690941714443352649499187571742446379303714049908985927640346906200798324568404757286641873896781783910055135813668861056991453888761084722040696913781973702850235715268414801529553009679838186181588075527707217320622604532932771904147848186162185556998453259503520227377342737085611501679469968363185827954561616388102865881748347390989464700885357015131003610622321540864716490549032126988584318755370714131460307158910566138930873516832809442727725974581457629158779122511111440021489993447427939304850345247001759866978567409317203516014365634676806243638293692989714374250392373350006098782176265485243299233591024288372559217302789710780675418004108710369398282180221449760713010210497845139148223788375804064537896278338631052148023284559287050134205434974474292650460261915058091793258921008498549077403442881538250830143915341640801439980604047914871982448700113072782084954987832677982898018048097423278703856196743618088406590589931940828804292139448844477111226615570379917420445014019656270758858655906992705767521160682310816856188000711695040323769806359607694858851044899626958208737165000300019147262400762275938512168603448961780103632640283446140608956995270158573497941842990281008114773747002596365375611490599814036871329474949381573240227324718846048395623755011834178554499476509334217762757230398467848490515624568751731580715917814258581724703376163763526868460780931016901688733874314162271326491234514676194703458537687884567528650936963796846887885454673011967515341166389093767973219526385283932153562806567924309429571587110515061330041296836088340357107578605186206838828575003216571413346269064988151242963146438960488348156840012516423845010072110359970219601203492144764232817373075353521324470668096559564739132723713961243986125928641678878128164784513421558851420417203408212582143031421912002769765647110511997561849909529139654272749582190091553092086502807086662572135680853758656228513768400342907196630575814943934396836727050085045068804885345730851136981251482880797558104147131013490908755239246594329293183302047948988879386480163768320682434229220751544080769324837861830544506715930211333991210048146882090057405439451543883933356757914711138559687158660399916770164751474941523424529809661489546848483568461977648214035509909440478504005133778483132170287456992140904411999183051631739721754924153757861128100430526041118375606502030376061061122439701253949542150739915007905614326789088743641880138242469324722522647065126146602458517331976392001924206301622371226401421609983313478724110560969506550040369632820889240138086074947776332745548873007025542195429578414354750568021296692113424731597936865237597317412287639192091896109533146552610722821930677213579010798913007748237996417885592398259993391792392907667250391241171859824350572558269473099869205062044307320778883298269886905514540941495115221008591679226830281622883280204465490791387071555493459821421046586034048924571272581100566826033058442044443525024856538647821289051273043665603180127752080422326447375171286393363106129928251133826671594656568616822921734691005347768250157345053531190584690364122194766187349863747315628456988212386876500214473751670747620910802657687081440308313664154825658030172516468920632260714859276133240022570620513429248831532233922468950069909423685799540849034769814446828983210864713292811102523061913896066763816994551263572536914994092722504728652841965032442974892280282965874397307392905027063093537266800926704466749038415490288185014149298922259634350974041973752945259083058313065482513000722417930437427781572790837942125936164137252896572143802157999821158152734443803046007203300613742064742940835824495372494575112169074920306637747622746966926682876585046407676773859932211790462385016167634938024282394426425503539075769230837277618998158973102039904852316459925798563081778502779826385568279905841357681218370378009841399581277276131123406729789199699006800903009423688544456079108768602431349361935540005554073079523171115719418404366775315745726973785342538604556961375886637999243572801324660119885560890970553936007406095111552711378367292086073400137846578931874166764020391803814157342289826110281664611654466411772771458519427061215054579871341544840921519122630429662710167717798321029443535714182287212075389232331839912827544353550111804305429238225237438553192568221993451649731603822367235120386191633187589972149973695465722035363007964478736308130240516745554450813191911662942480411248122991338548403923985389207494966407802932430397658835374268484367209602095284991984602002254454817219704683019037650065419735764146767217002909322779384179006981987226944206251931209486259820102191219572508791706567240107712319416072172697746801364484001186929937472338455335180094492196199666780833903502977509692444438613989854435719188021969007334639528962302307397336541675387142079518011661855261009818885367415023777831488971912614225063275414683248416833090434570080761355606329767320848206273084450257705113666176714024245417151297951062462454000736942600138895246921575255179141642425435182467610807926168742108714381059638289756823372636778298464333975828788899527543165537034081441295855485787967092126833778479735733269868085016699831545107601504223382325885876177080318706125648088330651676033143351480558620913678784732874177297239669777203066335445961950648132278301991642980883184227770813817089893455421997085594704063007783599108073980587383732228573935764840798741181457561404126152503822574759408014601546325961363514835987381290611245106649650238698317861415513535012841818533615260129337368013602521675650923870034230667457380492018358457840449807837195322737043075168688371791758265592392562080736463925881462108878858387501639195438424961082046410298708541425226666934488729446421890772998254686537047580908909509333699304613414381848430976408974424294863286758362866180261299673898008707414312814610824393257461395035306877594948506396460545095202677820405780930986590966476087128227067589178051401870161145331755170392991188842567625705592214731288011897908220287412946480078735655345673889726293721934153182817357493283905775388500372019258096236979944702948770431698438493580853840855567917047866553843045122108482958603142135561439909770033581865581885979191965067848227766056027998964493058907741491725402891306306709245526976921463627255160264169003215619943696984377954308426171692724800731257327088104880619376200426946721315100819248784318136404699103148247450855795163252858590141060500943795828070952694038075631888419411056703952918947656297805494055143064733501261293086221414120899677588381379554319197992164960261268471570495286071179268531431000739583752740698799919109094014838545758731741884263219062959974781114304017845721074061948279985796066995910122723790972927512402114865407914172645628571413938241700785729206775496778463244256966336186999927563744156234743147334044820088943678040281900243274269251991316838117400614303368670378331705886407113677455494762363556977579582889515509381383694252295123500797260524785426468488423059449190959402217056686975411126420117458556695617146637257467872307110960703927980408078385098167439750628682322048747332972486264559723078049595305031000687713131887322476839237618012244903526480871808356517045000502863331894044945681976572686851588791756655247319932953538165503245615483522032536691963426268014200170445842049652880227218912441782236624602037660613497295142349135742625652427125182738594048136380192808873586801715630714758752513693338395591714641064947704012196210838624422293310044964652438339450380333052541079105234617529618284303970181100136813421576381434436666622414341749389475382669965777446918101612463105406038495344967329346036466920576926131751376775503486937967147586803029859575069131719908916360378997158453736199800687780401248819707298225526282755069020674720482639251235215312849374967652350503464359483481435287110767150987470295859989157621617339260619959591023932723150943827013192514903965559867451511977602147893142882019538305056257164739071776672467950243829718164598814293776273359939781080036361217365266657765636923470672426730496698476303422449034873679274991636993754616714098660561392919231289654638916695427532006460073547543543403164560759260817319455547905198313994299931327672622494751756556184782202041321022256591813354348514298031035333962329968297895870281773322556647038191954690113516505129990740264085767833617320803914281829011433513875866151157083625089494772227470602814702066102771853338008493477638080027642767944562726480520959956369072579534154881481260040678381158548025684547507846410802289125390624246567549216143564764574656925688259995235397207182695066291152452889357953828634883209228370318383541873563214855626824266008753444419200063690441479145837587481087034632686167555627329867171257251341674756977002285465717646032880521495366288017907178552392872418648088010943863902561206909249387936882906861853996094744118886155682602966433405625339229276402070526029302820061315072646342555346388950692649810518699898977675748377236548099653204675759097202699144227205170822437107252824834539050907646067816586458188239237154077253946129400735717196166730891274932351196973950234698108610533722689235699919388055758572473066324126099800929823257706301786163359425295585865354080862871531364656939796111054532117249765365421110931438474071790915631627432079993360067987468367540647921400539518843985875415907542934533866734795951456577250559309667420912903062095518635638331643503743044357328855478002289268026045825256428820047627450156388622038393912257435821040968476886789579264460520271156758216982613547885565668043820572002126228285698348659108927316113053476923738334557291390410891116164487163536068285881265395503152127906002775345251522489818166048484138988948005034152963808784673785012264454081312188541122910337521992189851972746148413498034302646932099969025027328810850415445922670405945437200707373517268351319245691396532211574754906324759302706501508797595787765533936764623040497315611882806164627367474407344429034081104496746931313993020443847712953515208865040210504096075054803398880769526530253710886743914395274242983457054580109250103774512025590073633869943319501303920994493898013651734483119352418604273946504530594067954678414047930837788887958975835075069543156650976627807772953920285577823563120790911826838759022546539980434355125201836874806454058325103138247353371160066407407939789910779852654208299735969573021867345138020375210973095305010673189785205061558435315776203011844729652476792384768425841258129412673987394898481924341897839424737071188013194286729407077514786916040984622770355369422099356432628823574488420715842648305162719015153179593456963058007942841177941566267204594810965000710022742641449789079245703110183174513546184246028602147432862255736516552205145609148192718068393851951214084139725300763470748491129465882310867934208218757146659390925951835261280319291071864575156791924647349686524900994418726010458948454473118794024680651682023813768554551120002298586839786234929403546003842158083423783986732710069864258398662714159661056026112209911827539422392766039881813128645380223213252362435517903000431088601144371562845078202737621287217476128124534016536288596352219334547884917829350464103887987681410957964226076709174523165990732630939359997681017850698679297359343686982553557387287204125005254823743087813512181916114846197620962353420038060382424761999799918354982758517578581520519146472002070630967515341111848884483537651540894156299479525125329515642996489121779258400400152512127841330208049435607101523173387600382791719236071781501632715681134905381538138709260619875907602800117649996259491532051412938492522859261061352640606075879460150362764137008905038878554697979190198988546997787333137171716615791781704023265691053596391727293110699562910491502555110448998682914509149067580011573799915066423748690230605395888711922468308264373231023208462927860282623192244191165668762309548040318161883006437076219242022355420377200387466596256172016613943857605977583277642510825836068643461899027858884897033292287990893070685358306694217151026860103696480321178489558277373295481414570011399698253620293632328584975391954687868594185012083879370461295167650576372330986320718431730620801845151749694057586435812984575253804017996983667203437592326626344014257853893922636171631268127053964295658369840408026248208872584006833152326232862892661599688578484456597492206590968234423447474875841630526939218751925093204002732165933861759412861395085732551310614382715323389214134708010021934970858968966134333727580626169448840836517684187678711638922179942839340720990644848062711290333873135833809073728833088901715948612740991526364746250078422411895136008783146164696869763422758972013874846692136871592637267503517314082201206029688748037550624318581188828042124891586837642268799853850981099543682283165343666935326004169583810958641578840731506412658711367242360828475815343897640720983921069836078894683236846050254083444475650672974514675607400968198445921858616308564040874796478258453968381608010230315756012438936894469566816568623883269684584377111587084984055481405363577408154945704670837563910386285700957673010978772453691358886776999361215455293251372210850989623407830023714615462530377851133572179632034949624541719312098999914143582950542722659186276754403592547005975987026524983897783754694927565411039872887951965031121128200896856185891096674305252329981056198109578024012444399564343629473480857482623831654666662475685954052269791784141297570772738189766888848597597722448847437043050101836335898228400574082835089544739599610394921954248601999124635458980095379781302439502760048665956207415322120772110584512005661383419501427953927655537169430066184736251815655808701584534006046187919049362140463226450919214476957788875211138364382972700982498629367434023877185919498508898372351809784794892270748813176864675151638522460370661862443873282011963054112545379529271261785423044840760765090859376284069227878849043985950627092615685077043389614080548033344213425216497684256091201207654262382085449858295487635290122855113520217165144390127753708186258463476526046015582272845972103091677181350071768359308552849441395534740081276421385378311523191878513450931637531815692612221699030890792444778399127527680113823259773011315794392256140320067861041862501520188571167700844304445474253064452013159679424092720617470322819234882014577695025123373554382775918921961513987430678695032773280168609315186956784209732399829833382883026340908508807042631058635266480117348138022002523925197761564111878970459292663273346591057756391112355357589510839087437791369390154081898900144792631468465308719946684818853755757665978551549918020700781251571064114496702226883472495688361707048580352390856537700867942612509427839311909483282390718164774989032860848896746943021961977564691035131255182231782196716199328429471080176678963578159521894182776276079291914822685936984918609490169740895751707150774028115159251475383413123311045862604063563650933286625080579301338976132094046238886814662348416221105604462194323051452421478358882503318144156702436577977323600431171073320727566682120463699453362562045215615985702830060838497735590354691584760374153259210772898049534813948517811267134014391879671173023920060396052081442042207993563823410405309471658062198072216682223967104664383534540162534728861614868186743378868213216032238680266876536331926595054840882684816200299178787401674253541608384151561539697616237091056376968078352693003556592537129319529566061926364309749978432184904206444759456627372956054012387792105785409052271581294824143136275341158655600283180640838064236378682032264812495005562541309341832259004738601566912171513173382297023599082394074242976064593134630453331208911919813932095890594775451181066705368432060736753171414645862296628053216160562543899439162256087310769085524308322830719998195917315177480390476492315669176198950609214545932852270260265500028143076617786972722482869043371441689887555247339288764637403233634528384583651160409378704148422261381099327107623382425572424516049988941995059751404073670867481006864534043051266310296530707451395389687992952869016180932483669265688762220358784733421445620323378617135485057469982673424304199608917760704539725144060428272128544945211287989558804553748849767598487092278353972422408010637251939107080137548596724519946735592642477444126056114052731016034563580511928038289952044090136141966256650302370272707141959047488706193230264162986333372530651292456307947697688606104442466258997161557849678484204418791494168870951615835586497105348936015268079853358968221400795253201469956741754384637960550546272664189800148064641161523090930956819919583781258680511003019896919115472157884283225943481680078676104311836321982567107572488107911807981310715960851157863192372841018467688676742735685393488894796485139357828734053725561407878488936660623857574474007181372147933070849319171482349348075428747691359463479790098980759590531156258903398696838443976783285983231353208468116265118818947472740535557413451757792977442330683671867070879536619968977309211773077998961119790672161479455886809655861009775751864950150854218531913580006179370391194959491779124474737484497158491633605309823605589555471945234338848186843855179166883525266017459585730371252586606755522282082630669342651136377930060496345728961182726419349591404256026290782226528510355005785331360415543672612207288489192051435085600207778338348804298031349113763669698160176370363078656895756567568810513795597884968490380330451880145246496029896150906843927233471664971190425154329197339122915265712228870632787290328333474927425034100121770744462583647984395211764308920666363045594139622683546807015455308161025071653478633701946602904883146055756424454781269611442216787932158895451214812261352450253073742262337416022739442668979753148847265092393643851462118328268327717547445026422680178663993673307582530492619180667815915465386262993015977694470301658267717401545729654184722008507561372630857614975074646443460880398334792423701703352391492826906621653027111364275743790693287652707014932427902865015293096983056966615181127378032254740491895847004624992417572794189221611329627026341735123382900076788300256379954534335319822932864124804057975443747564046857731441472063027743447929439008795622642397078453639341980291236426730510004084007547844464134106064161302923680618369958136547590802994523591178452574611693576433388762474535605819501518139104716878968909908508776782177063237982973695059160052033892379199567291552507062291691029418069450649296850952572908759854788359215742300574007683615169079440750163773059717474619573304566286981493390055545160583018675911676382607031951876830670286281747937825255244116770907090609631628491395068433517950183984721661361572537484966609268143540767449607103431260902702139321703187003435959572687363895430927539034416747785256774444939267240731053726151500917425308500525949794329295739242924971533245320110181559723067926869107725107486561815036515847522855091336544133640510173258197868553046047849138110791178283224978657050347322401007706637586282397158106935385587212626102957316593535399177035299906077094615852988295182244917666740952553077431414709372372208794801293564100581249296647857024528252021113426188006850826344553068223911717311066802777742568756946895508404250438765028048035305137526139436258203099091775647310902380163669279082120513584148212534691283643249566418039870601444764539084696034457279350471168110857502733433373614426531305791548528695444592619755378421619794288575591997193869593526919607575031314426448033875010066155598431205255417717898673256407516893790672762959324836781527580863861491721581120617268010117209299819882200419949786250484128441139221182405850017752394943466486937072869385462400069984427761691982293588290948095541704254409779347910757069457876605028804808841150117588363580663216322811685922739776912675522424452573739680334084088730465629925146025604622233154733571100700075418706938400823257518257491480365771445770507038755355615120545813514170273875935272401005621423569351368417183028527231141855974030558480408491150290523821051253304346003772275969468350673733925508680428685064518188595467237085767628904077451812573601322218060039788928342890632540106530668690642112365535843168652992315835075115752918457078649994875079752956073841563343524619607124077325550009489843042145404335895986424779342512975407182181122511350342827380298135948779323264672116263358089299299657357091855260717296268979903496502585916149282957100249838808845965823137001869605529535364710830331613406224896810332633045932617053799211220157799059879866756450774201102030289814266727493246586937248884784857693119405780786545435256647193354554236753256700813842244757120133623131867109083727041231058862301318778207414477439219139108300579766405984381657132209218956099783470092432585754016737055855889469718704076673319297395642413765302593631275047253568116417629021127072656612950425919619508600114391017190259445610301150757395649756831881845915208071213026079551968877852930473119757843280470238494732011838365286980412459737270298847764591591529324808227237465806634821581196711885539961043602568598449321612152658037767288798953722233511735988195452182116152365943031451603130969359054912736836994516390157808629301588801961586613534395999601311642430561432967028408500669829065983418296386202258381314187164247797460920221435667077466823012214850478736019264140616033153791790758419834135665887259781731494521841672088289849790354196678733951371411417150288170317775490334422846837893694648956264460502108362734133242308075147716848623578532190482201206252696054699550067386598475541553247088158840182223482976421140313630208922874739232807027166600743754192545919169281750651303222202008513036101799742809209289831370716066861454061448940289822329473098367593785521848332052623444207007208144749320158103194573314857851453929830329228609490263473988257870418436424308525835118044584116245818096484816436331275146484221716370684963413814777406977161125219906565720272356045331040351274710491721267570480417088885621355645296521416457086076773250500981192419498566142863427996203501143426457768711601764655429521598641372631676817560273749709682517916922812208951106131589266394805989153736043175748648542775651840206204240443519155625734638817520387843330800815640512456257533291322230128593371226791883069670750859341948496387531650054916154883252298575249677104800079542488350203524317581423804097327275509688936458049249801957436298624880780358744604807747364124164783316956944311383149188751556519495128895189204384102469465439943581525435400855727130703566235513661286867605951071170288795919988628344036300860525443238358194771633263704498893449444538009594152813725273984945565532619426411023698971317164405303862919429985286134759311455401001715068854143297827064355146492798447117699417726767494645081136235575061936594842063429370112655327124179655714114917280519495838116661789477466599873814660567481659745212780315399596530290122109670674455002434516888512954419968073472413152786550631116771994504436004337436016895832696760051954825044620467075510867183033438547128184020213879453118764191129281985633574696016497443946408390103198482053416708562173804923417449392701549053969082702929355864596731676153485195333574746234577545622841664844425042002299433258593957259181989181852544332331740635147879291131024130605961491834025303407224210031661003918538745710661072237074036017392249586958950946959876594359262731842248638902409915851664423669521910460024868294034788927772596938049945482770523963483299268853792014418920624724953345574968662998750944556267554399044644945025862596391879920740327395410609952040595899816471320460857718579292798015452747893937948119387722962377330491700982464224457973772988541659745641939526873892036771972143080458871603314611564952396376979544542492043245636057902805150562376006917291815163982264174624157186862914961109008658910293228203362820007820297461550817656968575873627855118009676675344527303835442384479470855738180042809045228365729229697466167474530947433425259991985045543287774382587189626121727648949430314564086630370541841156012533314676505103518626830769816744244332560303573863738679354586075195818606653628504301667508708323747895513291663607177443731080822987160978736683519025539405452246868543629861615857070745776452659071596630576879050426602277716721163335133926989649212236821891384470572438368629807741992640324153141807677397829208463358882201410448799007359581012579079302447687638141945609820019894146848756976295387163337048142879248239218963253572173180979950419704615784446479567969616725935754355895749863349049345909788075869202367111074237598640934600776400414767212392444048622936775644557482382032754215672878758799267883506266558017255907177962368387487060930622973143325061564380727152029506654599921496132540654989581001481931696446833091047884176501881901420094411805548996469776419466582267105247336196388553174468594522238189012134931218703908273764370485810843103942628672933980534886355549795970522114569854283921931758708988695345842022650036686404877340568115993718980900877120129146840146454414286852396657243799674787773455635394337774918280365483959907894101194946289977848218914144432988080619532929497215868519795040320099613967609474612602047191459159939869299090021033871804241141844954584241295617041638712562804824606754863050852410921514192243647101029777575260939380208255252931365138124404893120335699386342453489589126689336102160567585177294140364021901094014939392190494848429583803956658016226575817463606256543112533553138761294376533024930256211304126323594505216657840861398154089024020053043493056345336503433041629262788781889509874368852761909187389366664461492417725031092778160112040879438136858246224826499620027046684669396581991499812438071700881155165453980763863812414659859679983633336955720884796964040669421188922958556993806497201958276752364286174831704676393487696467180353961931246024360035898659070665044170535213167100714446521196067098028940068458186095169864933825507918276448807291906292815301614285126881872095763281830409287572452207412532081963742244471650339064355687920842821373911773575119201761815421452983806604267110270064106056758021058231250659369525039888684095513605204980445679622309227064626403675422015944391536221438714925393109329029337376318028223661818055019111729200044750637588676811037225729739801251605832853054580827281893190768731410520547267524807307071263109431216920773462657585033443925643773531797762351861652340786309413078902689727008116398133374448734938386807361277719311483462723099207082048187200763941354492318326106072636230616105005795269063075100468021501387520222040070366225550573697318498144274306939876438583694753472258212294014463382198980454951183467156323446823037127327776824292109523676554363081405504037950815462351354177240373378769548562673990173015033789667654679280279240335020936362586999592922089373689334364762720779338964731393165277324252483019130993461459307059655334417558172115327281587584532346470647680337728173246484693201673664567059025986545819909594438965415461618635861665586365496252115057017429126362376238904006435552981455816623813397687714200198357438192041238119314896527624561726647420554557609188456091146757940256189423296901538326955537370650745209902379514522962429154104263526623842367502275869821514579801699899801906254293949369511937255681238696782435927695232938897475156395425358707590966935929079831737953116097422029650812146544542607064774094840605928082481657154482596597681729694952452558201784036810832049075106219202094838589778387311930258200447473371600355929681990726174552804229590571158522862855775620704854179008131956865179994955487077630334285371381975463585922451115422652088362357341151314431272315595822247411367510095401812180694675142891499206376122018401906782769136810491250570447265674088570754723920151714033524550346283192150685641600495905594610437774796856435788284995127869843025797780453856971542544264693691331998140343127088830047053308785251508249220013661476029394573256887558068082704064621812220366696412610340804758951962496432769148538234328001756141563391518867165611071653449577552767514662656094613416081994203021539710731800735586304578651946952445480377527126971761796015889494728909603604042597418174937449703349706116809196338207554397226489170379020237583010050578431999031902595917732781311533950284713029567141513284575957849895131110460312317992976671885527976291039372325354084782856033484234511596369424552153229344500698818174259831333147023090427799567061547890448700135256571765745927437250022355272665431058977204451127398422412659308959548827371780304536790853632890659268846014063125486116868419548113014669077679050731343339942746694901081714828946881677977561622098404964962941009685592703351918182044181670402646293640579061395376895540392120160571543256412037512684065335735999071382254813735461748541611851141395522943015269037314153077140277143983880552535271382714244580374701504353359053196899442974820028883367792835429138448536962052333117083809651645479167924739474059230215553997422757326619234333450141416350303720671672351107012043638134197621541366278788931833835918253658572056664677584919226379563211252021597426826832324432129359345331556342180945372088681989123818048427608225117408625675957611826299684447045576271528247346098639992781318762048044020704134745930568349020047520894461828754767383147960590075760394046974968435265438282496085209437234627390106480023110255088865999893180188128960527622607853842521758684202103602834726718622634669720184242950325190870493995256854397175048476820654378923618808510502791582191717559247536456614996522795288583180124827206624587810518585496995326648016832517179177266164843030139794870468597832782806048416370247738439689756791034723374536308835919324211628262424541436399338192087271051165536488438448292588352618425248926085294966363997857381292896318942111728438624542749164589349765731187613894266735366888763237967389346513637921361440885331337593787639874324183197641750300417613423462256546014714984192633836771176972549520428679262822172841087594874244567121416640824389069743382479501736594032533667949417471384803704808889592720062543018435410023873975816992465021136069547336847994718663702696938988771333857914457131356236795130796822338581679713880753143564761711863579377466697124903267876471095795030047678787654671859570380547099218485569909971731494646075702179744528529966031880569556231075782913711386478993492151928839754328402707927208823758352109498153215058168513362090509606520331886409387459974973739865360842882763696271214062254769201113843467621038646755129768802245148232884634112611355698418466537588030497049464618099055082431810753367185765994384754753395805612871125180338919705616699906128014201325956332438600090627112805131470747975026756742892357410305019096796211569136605334911332666001675905567079728469068518546455555846060976693150329793316645911252397239808181539502575153942506534075218989523410631877624429730254746329359662043286476635188924826876321242805137545477701124042484517785422483094038934806520610932152985995532703900444971115571244193205204937371671959718086031328751979514093374390039537512826251861079143572560264138922445769783151231088506594166212293962437379831892204032584150347186727865022765336390725147838702275506533991971872305635068903621959082975683426595649754944863026992289932994264230808219513811265742331560786977052221778276502073841299923842354685993397306495771202586239893591292717944488343707104100966450480520305436719898608549608285158499781249177849006775184181102027731901735947186927848321559913714911700503924700518518930045172113226511624430785949519507076542180048309689450935912269461944518124963754983914614052982067645516022596125837645723056513290611847698201783615431291246051830651408005641236380775832969153737003121643664901976015581843984181312315913117805818662252138775857268866010146304707641906918723726054794155211572497720535295839631035000348679544533590642840932657953648647195574020603049216041692258089595344637581204391442160559331603111879467945039786754633578530598719251107522451054584847830092744722043465711101757501396141100577772890001813673834414333680136413332885749957257826605334920096539923094877448533330971790896475331822373182898539776555822229840110770095789890126770978590015323267785867087692119317024227908035552234080288190889501624355786904103097422673513712843493788930428398679207804184206315170020859225411414353559860463301221854835857966288206151126949582319065941860189417419506062899526454622236439194753117380399215224372479518307786803541917332291120582138359998361340168235503631627610377518102807185195224762462827064096364913369654552149660404528474209983120139271827481533585948588544566902842112370009277639818265073635058968046256848936793709468704974404130858255141713684234850024238234380693445322608028026028073402790733309078952832510021726151003263196561994816523089167991625706569874504802691953792409619584618725675958436430976291415025491919386628784497328951842731965945651704334741702879754017665466373873661451610103919529164404886836782821839230645255785370915757487432018779093375863105131180507274221313691537753098438130083826172915454941359342650983609023086445584854349687074116629830532195490386789653392105997081564421125429669732696653743720840971126853897343515439591178839467878761683375639011430138004891333956485374512544881892664075688103268353616662555091043028241978631828652828600142069615923900264703172744811442800880991580464266480707932489447109037371158227965595200395841113235512810955870441385290973143094498145378425541540982804553867796037230600676543260201168458141163841330027123801069658597977156950369183927394554607141435345387126254188562119332245870883483863927730051967931501304224546170470818250129391295198155979218498048702324118483225107231593994172124358387403648508329081721833904535997681072784538574304353644440910261164700893630442912153303763286326731060346901499709711776093751730360095281740136348750596496668426003960353903696730397086469951221302248730759389992812902740149178138448265622617996840939059768058114154355728003215223720849950656459283248510105644383439421540507154392107410964420537392986270801304034227502955702907986241693761866939531079902046780442778252474009876337580724954707141415037869499317945385105430877796745030972023553676185620059608179267180431218198619151102407137384339659574340285198902805478330482486806067685221103848152318124496780929293412024613753422358894318944127365573039340073235757039809307058539895832944334470837032566462129254434091419557592612140633846971517993673551301997041610480124553793959904859832195992080751355809760793714685154793956060329854895907249118830450656294369936495088024754384822096910760163721271285143589280944793948431885003301254684342057911902722385335748697968900960547487419058897935959345094290186173794833953906106591029248211987272323001649208718358405455552196573478358937093050262976797845954263433000946735250183369777141308382951625292995168476080375685864845320856817687108282129268503033805084862027268848767261506225287487112442019299975427554347753674988163631425131735985083376468933521180279603821602779990478627258260964460637955485616363160265135455164730925252213164280789420440259032087643781894297116537431948509227117664690852624213240455660528156608045283767931328598765199317170592626896679873829956893294697658733970279119622549821360833110801013994867667366204773736303716821861864495479247691612738769115173650434938825605601421802219537920659725768390205341474285712449090505688565341200418655537390332830060075380983451102044406728823241013034236555494812079556324656663133816780794132490027256760958089126100629886129125654698705582271590638049736054173242452839404760452959651486175040993814789953597550212358096666446386764726970898851483853471802240721189549538720780496343228391462917777283331565002185437885025807681300310391176228838657988126752498460176513561970697893331129454978785866213342724516559503905606969319582067999949584841827286051747230402349251396502111759129590615160908149266699054953658037384853513560306149353054676251187086540207549455640977423918735247231000185516512151021007252156230211352206041201060121042522171031200022391417080210280809131709132231232702311617041623011310020809220630012812421818144903580643131113011008002216020108210510211617144423110312211210490115131713131453053305031450052401271853223214040612183915340748032017220959043206240749233317300636023011290100080901020918161807471113003802520753145622320126004911141322015803080901013104022002051822041352044719280007213907280512100208352005202601480128121207070021205500551634162816280252094509272239050922381304163815091834181502350558044413122205153405590134192911292055080607191210133812210839103215230039063306081807155613041918031614002115171819101254161014300158224320060535204401050047172213450935022119211842021316220106040105560314133019001538191906002333080307390649202518560413010313161213190323131331223014162004190301351639133200100052120311441822164816521445232101271933222104200859142320191437233611220207152614092116061120131636220313430215221702191535040415112215011611221217005207311304154011132233120208350413184412260039013508500456005022312224170108042337065613291349003622181232131203271329054605140304151505321843113215070219125915341436211708420827115509330015093406110824082510171733203612261318193707291252131819321708121903181935213006130959175703261803081002010138150104351008001619082003130103360703082215252301064203551520095111220116111621002105001815150403010823180641003504361912050419400115045905100533123316100505052619401839103311020927220702311210190805132300072409301723042416330540170221540504131201570819084306110332043416310302002113120719173312201754221817222030222506292204002505550032103013321132180911430728141420550201220400071034071906180535115001392011163200061330181218172308023819160843091014261631175421290033085320161815172223171403193902392139181413321135100610012135222704501804094621242017140713102010101200322001022800071739181400430516170504251138111414561315192805531716110909311631062122382041052821292306043906120057050522280503070221322341154323021631000409511848100014291228161920240130053703260003165123250600060405571617182512210544001814242204204912170322083423221155144309471033173519210137104722341414163910202100090421181325151914090317092912051422064901110805063214200916031014442112182411050812141512280645034811120527230402322308103223411821181719561103095104502125043321171223071018360714005408160752193401400309150402121450090003290808202408350735014910150530153913321813101411491733180803231521152712151206083603050924235822502116043301101121183912040705045202291922145217031223053123501927015712022339052206100219104706081405042507580546183907101100175920580501173014111925141610171118224721370359223003400708060604332050170012211815223619140705111023490228211207082334090707520815223007440913111620271304090907381634085503011514143600151145060919182103153805221409040705261932140713492238054012321538002620171233170214151312165806310747075210580750024219552016200614031510181023370003215620400835205402380617233810441541091819020443120918270700073900321906073300270036103822160423202621350136123100351509021700390213065914230630151919190001072904421518064102381743062420320559223603131056112220050700192008302038200300512203233305221442222913192126095611540303021416161124042903142215222107350337041904110827023711380805222803480018130700132321053804451327071421471734033708261714002806221109180713191938233901001650161709351022000002201542003915280409060007140832070210010106192123531609100605101347234222180430222116141941063208242126203914342016032718180239200014581128041110231142154402561048072819210641140021010125000923580832223513310251132709290713232722262323163615470104134920200137010401340409071220230446052812011207102500140352151221520725222017110502013621371551094101320518075801092252210723170340214200490625073012212258002202321732224023011238134911220051043519280419111606161204154313221157113700090426111511211137071600081654204413310915230903121116105116071501001810281216101223230318220516310341050321361433034207270753161912360709213910542238000919460012130211260551153307180930033810142329185822140906072612271629154017311330144607302240032520530645033816501108102802002028153003091647024802260600052721081608072600090220163008340920230414240631225423231831092804152137060117020323093307501438101301301548121717081917152215322217002703431716162615142115004408540915015420341348230605190125153114340321203115270236193903560004032317111002153509370236092303190004212202130302062901432105013905391513202106462237231820231945175404241216052515171226033019280408193015222026060009281625051110131547235822201000173807020323050615370507131820140508183907010409210908111506135219500611123011290740181402091821054712252122002602340218130911400059053202551053180904400215214312461957064900270930201912132326183200100102111509320926072712351546053610041252213008301218222212350533020415200540221820250011042719271335143914230233010503160742023013260846031515112055145019380647050205391459050208200626222011391728040107341538035023220603190505011334195907462315021417281005163610102245102822071158134018540712230417290903102412471020061602281931120411060814212405391800034813130605114717121243013804220821023111350726194801081309192623390212174004202239043718591304071306561739120808471950180005050534073612582033131117072125133613041318200105591500210310250815141006021440043421011601005313281028042903432210143115041335094021210041181523101500081519040706212807321345170100370948111709092250173219081102051815251833122416592128191618061140220019170303041612032022142218060913121603200704110219432025093712531721155101100614040605342258111616271830044621361840060302301237072819331404081115032323093602080216204103110005030306041722064902161433061507582241222618361118130503371125124900352217110404230538211507381911205014040925052514290731145417390724235600531320101918571610010420230520230100410639142910121151083314370705140605461625000223032329121602340818091709321634231416560300055905111248142902170339203722510133014005250712111104341452204115121755030303140631225801481752072418340554164516331222070309131038233406130805094322100001083208331706030218471025141221381156023602350156213005140135071714550323010123050007025107261253032620161714023016350918151815441253082222041327180300351608164016200616101911252003033118282249112916051510090112432159211001072038020608122125130519041807031216350205064118091110071519472122105421551611170203411535203009372029043919392135195909460210231301232245021615010212222110361604004401280711092500110154225505181353082420480800011107310111211913281903141123062059061402251446150504390220151707140025140704520008013608160600232618392338003318230602222102101739182202190323061222280229172420070510141604421542112522312108163516071846081807151230210212141141072023591731135307452108080601161016051610522131233001471705204502380108144614201117011115180402122322051106104021061858082018071033110002592107151715590621014309220847033016351424151421212026212515280926222807071506120922101629062706130642191808321802075003532112202911142112021112451505081719020736113102331239053922030218234803511130234802350115161113410026120606500901111501101901112711280007012213522337003606481313092918130304024020131133110507340418111004000132204310301029000817320308075711151808031623482325095016581402201008191118072007111710224407001002065519441903132010490132100911211546011409490008155623240301032400230129194215172051070306592310114200121655201718491839183011050006170302091913041017040508131202380731092709300417194418522003003910311419214121060006114108260521112404250240020914340538160111230256043301211930025604470558001203051724111220452111021216030035115314101813131318340213080002440834232606100756074921330834211109292308150409220531201503040542184300461618234218221910202607001448063605071402184703100946133913510641041817101255155202531327191111140908181315320333053511190627131108220214211907420600153112542050204202081139231308300032120213381939040705512318102821000955131105361713202218020338173014141330211700472122142012260109120103081028142202492117172301501457030008310238093723101818123014140329220104230239235906271936124317040120033803171708142200311934195814112319140314121805071200531001003903210918084219150525071302320354154102411549130800280028212210020248121822231716152619002202225822411653153703322100055703362301001207130837080500260128181400380709225414370848133512350100103120320222112506172216001311242055053518221903143210251216060412240017122008021817053521440724183508591313095216452119182710140222173821001338172503581600000322372114222721081536172220500944160122311915005507141932164805450456000001200624160905371611084623350404083308170547053202301420030422251935070720380804210308311905054906281713121020400011200810121935021715351816220913510528190806402254032212141255133320310058163923402300092819212124004423001359050507241902015904411427121322391718165906371941150721120325023816410023224302151757140418321712093915111414121812321912093104490743202309292157100502361936063217172113222508141837110415351933061600171512073710211612042106420356173517270540221416131228231214541622090922401813113807292159123819371431210808010113221910331651173218060201023420101844172113051624222706220948013621261439191521510350000823480223150002240254133908070340122904410339053107392059155201460818004502390828143823161614200920000740151423111821031323380105093508421816120204231524091815070415170816140633141713141402040816361601121703040635000308412314102813270311142312580347130716181413202419551721161822101605201513240441072502031535075618391719183303251741071500230412045223060309090607212028213400232056160110240401172904231335071014042344075618371429145621342100131207321720022422171443122000190430101814181159020603341555051011352133192021310411220115372259232411170815033110300810014714281707010605031017143016131357163801102328014413151905041310100824135922041123060801162209232407191915042518270931130003591613143601202155160219340027072542360470259253667181427223373650165219479996919636998011413719760808745761253121463776105470675923500099022786838134508370236419522952137465341963243131423975250316388509714392837226548053815110403567563332702104803387723579450399837976310634070131602683409498141227782706609849831868725356681149384334899597456966637259243602455056559707913789072541102509129704140940792023545353990484394057720964903175817896376671475564564420367145971456640878115959844861139752813169991981479631530830011031799705494606795249150821297304785019166413683404487298196850719081077607263623779382749692230669469232787902446207042624248437650426353750584624602261673599324925102085439213962483439974285432656941251782246953794158522880090666701012175663822163840831947068268925278197395995893681697017500640489689565254594127558733725168764541510311534341238309274686340658905260723610948482036526792397198543607767566464895761138846732641130488527805033840143640475192582422430713422281398250849990343432361030932021819379432257343047099092035721782717196300910368699402272734460047453684169907166603228053545293997280500433237557875781940004997591097519279471699831821534059654573656925540246831515677046346952490804291527028711814999660957959775603721404991763413850013323366825201719258476828444592559949814816646270460163740581223275177043465027227412149529822369247009332669872326370003664721110678011818057975750698823344451045919430446205678907151185567745600195521915152777545499473496360159547237523502279019021071203555409212921796687011634103846603496819305609823449328182039637522839087761502538940727420477077807699435255768940168680431860979379583850556266243680922725757528548845720703327551739844676710302862739795011930829579979427901040056472294383373688072399231279496088334737468604331297866624092588628524334482062793710922271973597908571696247355230877860625346088516311212368481573372903894634025874981866559124476271650252667734250658240645367025884322372819871596371792000599564295993838632177387074308222177235568659343316092311248989776165030651972773008213986608767898227828534044857588045318943198407445528068894275128984290997534563640105908742376807052325453052322063491297644851162751122574185542931231575478059198966183181611209292083118565451509657574714086316876701584852773011264171736812214857489816261204197415160597477253781653134790953261570979698134901851244437137053410667381105400088810192714273264572323347914892705813321795310893193765457328781147734014053802602060993945600300317305817870154461672124389941375349530615202378114962729202597640480592195781190172740252923711765289752187703810142489913856838391591132956254811366928526699534941221800943366894556136396454242131368945608425079508870493445560113543550153886147573436097550003731243695762760639709777655690014905489497867423691020306459700575775514931190922290898460902069728165717608821552650967721451297246186747228964944930876144336541167437691373976751625737903230178689640734840217768492632052345029528700089189669647268504669848882079805740355338370875192404114039669073252725832157790687740062521567839662337656206733997233318910336522713734009376689866950524442632077491916322404233046957228939237720919785062712020858502926307709567331336098440591837811899248826314468852251357671596165553208726202512298466043266723915991564343414416829879950004209339752173302353975089304503046914308565475546769702911992415802739895530961485884434309230515956281686416195051653147833955492500429419791710428895171934773191469452213344512243750732959564669025107567183631252944172649365867458614518255831731262585246820231618253842581780763369596347778802321348742900356505796202290606378935941452658698127311501805713652141065423454350258906732403674800555605198715655555474630856275855470454271792775812843591485991286027409119394818135301298907938051575731262320767675598573849228133323330403986824026345209198104329633334518469692519278801314120855728069173774059668514073101048860387345900512736446123174586813481366221361446146559263721286818602036912486162744925422864503545374400964777766844198228927231894178833406174509775935615557262288258791078205441746595956238613388624107486630010542669230146235581772754810831621716171839406114004833888785939951452941084235860573779893738689945466215284955391535627265911230428940336748593843715332810020495442735119987877217752419512930534304010869535494381364293311318845346219698297402765916011179955169015816177590691955392833414074312848795874941147899976618239119328785226042798136627433512055565452336257393491900249288416227047723679946014011004522626492993024566823130217349521252519627605398944527049230905246177205610542491849499321237872245822174881750674805574775596883729757976551867165397676014757700892091792892381742158515364211885006507350477473391565228662747101628423579813899192032988884561237574587798641477264506963963900757531561434334731729673160052389788394560307252923217108446140915455634725936590712906167084732949279738859127185633800928854998399732008305604980910814824097395172844252549522487408758490791001942213565737420160089742435445144868927393291006053101129077811069356124269544033839203263894048122274093883167594397286509223922042185984532900539974083667476095111531831375459879395795851841744689800813371820869779041667909952177996848232302008107463824280431975286382071825590085460416266889043771181548190879935651487902619188281989391121648694339129428982901159804535925525392484905246130822058989080320389259042624355839509357631349358586697188032452314081092152769236587814132122527892527748354531980687540094996062497660984855950024293024153285138214421060379403496287936240669862774659222275574088894138727130041773884796565177557196764682218113479120419856264958394491929157834269843768690732726982807729136101209510563670119632185236102352149853320541822760040301606231810042126630254331443231284725608973188964341914726589767985830192138125247989937909811911520212324877650124187794892028122659593456515925978772382542039674500063163128996715034937695141694032481450816464522353966236702143385322457401123051933007515575867207910990555511264121037880797263481513193255200320074527003920239113065192777268036719985350026392509735597174984589451022771507547565930022171036553784048795398963741964832985063595485341623472321839569885216363280257739923046056322403659013536028206309053574925993088769772538701774902234917509764294044753741477214108184374126387450772025859344028466511967952635302654107322503010782193880506222394137435819946484284321886450119021987235637393311293796225098560982559694968359303881632466223616730186150872797679467835909346125261811763075066865425889427771374752575779476094257160938139498179020439974540343352311372433637030696371829549789504675865799524740064607059283375402245483158230589871490752658142301150457144881979459301259383491682832832424587078878200089017465329903752797666230462248284281496926717412641231387609218061847039064042394959705399489660764567561116623530435836654764049327773748858867585813593890370617629675778607779617912683487246814023790914589512165269504629853288265692700719387508054451817115130024756356979423124512371378559467935375170858248398151865348880740159885943252212915030606093628011708941311761203586460955288121523050406472984479013255085366318024724218908807171911826897403016385965479425627828530719892780498241111543130027968457666517369992637660799658976481204168450327423838039775790863188879857810046123504744142836769624955308111862967735934362691005142226810563237097902368059260700662064091546002469410287326654985266593380182294679139938564744755084697602910412297485622893864642711008242702705144626045189474727770129923392009761001566581886797403492469375208060372520453803659560536963229038272642487204856562574843330939132552100707232200766745443920155807130345186661013017348610928965132517031056978280713856842931711152859698538173273725138666400033482632111522866876799691329219859479153161360689963323488021389277239761262833173025643698013178118244929105064594735463453165709461483900543853451944375588085330669311182491960071486409689482410328304975287362701495316062169907164266740021132778102590234181628029753464429483039170566303156949301291463706174114144856235031848917173761675022804189445595633286826694037317021322676846267813749920510014112747431051997042622457810180266273352038179792247738165582625188572478068427702783242700776931309022087877074787083194576169202712877970537573699894711544682766425180901355600256031709132338786004740899335584433573472505766267969640514246455889520353114502207762479295922514997763660542601193968331032533060951453310292659373965565673112648264074965814837316919539577029754449430890974084679672873449693506948888502956549334017157508020646813579106081799935948878028958130963676590106580819469793555115785172635945867143703976016002037541140827352492630230171806552390722509297662461347180736034427505177003094351943510511009647586015629333408537408080698416846551724631418701246114849631710259785781387757299727062270119391125891646572608234199328751467109663149717148956187519270614018937304519448127079427968038343569811165167707105263469097926616687830580425025183208900072413855101927567203307183330877785717656091316573060667533052423424175064621676776670701828360456799239800694585727675271235669426487753687001723364288142790413027710707499716051139513833596326398301356688832673927350387620006231765988383509191240904802373567159080894906687843976633786360572635900044699711452068051639443343405284283203497481841457336060125631626777585713296159104785722307876586407397251376497642683104527793671975181643344591913489339377046760542255103076903677028153581460657494876728535336447873238867473332850870120962814501388316590935410358556674327605297105343437929544256694561498989564721490411875488244869264495454745572375617269691064579456600496702991697815290579439027502566511155669947765425612006768539902039303481048136118695350548703004463501113196753142020767885477894476360658215479556097479562664530137787147255240691079699679899368524176895022432106255053800834888661641418457714679201247037505023376146583769619626458742460481232333752372847732798957563378509143628586318599562869337586038486360401421164897480573081514154893122906144817378865791337889727637167458432926423529909289502641618020141735831046519873797794679120830238726445845512184433335616560010527104724294905694640799211987472498407970814060087647983888373771140629666098524080983541561850603382036897099426428378769815770639413295319645213543132452212001645090312396911360123740696098231890021313083654185287889430422406411134880975704190294301058189157614305130780373532121201908579182818079515461067455692631249656059855556361584993001449917673985930221190833105734655451084887337564367281160680293833048923730250654046746439049358449351634355080003625719661998338281029340139134993672263079974601670908338557952709466591894936653746399533471502727413418900339199420640983201928220913022748829338108118643920798111917649789105387372900236900204071841056932854763241610068164858403443621506747224796345088289208435031961901322193916215836533239830228272434365519529112919442876159297474388146192361061820982965721532204483486235041519736659131232555915658844464791420270555524125377902585099229444070137545003462909778983518033518914413946758262731966508662950149445749573223535520264130675109551871708139338512642088521417447466275472212589116246656234939079187233726087604130119170094144313239298252967862080895990723958277436493296721312116441734846429378043658660917941184273570254676644226945787171690534419557249498327361413949539856314222477970539875433911057091838308400589344331075342249216547613122047494457772502549516819394272111893885788154494407350522719027466060865482765490977575027007576079832353297785632904098003376780669655761328724147566107073997750711697624366937823812356157276357801354983283014507483735443944791913656993817214367897406581094959219195159082823867799340606589895709517274841466712716986858856918601335951450913076708981376842882386448786442593577921062096900967853763892153877236486121344187557573081402981811877448073131861450620425507413052331010950984953143028144184065908853034967043154337093428692688507600000815119102973890443544138844545432618830848961570616746677626565753117261269617727382868504110438210745245558695099827389451304072139698203730090812151093129394147556639151365846159191104647991958343427300963737313595645198216040640273189113191957746270822918492218704930642100726820437945127072087224370562861118257287076881357011250144997417390981580014848920575996811228056859037552113629506693239407026105799988302287328161236251063942591783962838094218895497943891535079654510939726675405619383917030302555437546812711602045026050390842312907706357019533825643937725697039979423967904075601666906008075097966330278592364099547396242599190600836139830463398645066908777840276425230746688819154553383836198019697230432031095879562303240455756812181411135174032955738409097727417378705017707542270118468131440775776314061069254545729980957367703187695514630997689504688635660336617795911425906967810859995995429428099458315263960351685789992600657796835144463102407784231946670560617341643121588010387255588957490358415513100036756928236176369673122059476414554119046201224914443781479654181161115953681072556297186374938212016270948900930710888408584191447906637535818633422832360869684745293308325358084077961564586794017244001350600288551777463972253034074996551086430723323987112919757510356422638754243970118788464122881936790135846776678640266706840586320627008384169755324167998428436944595063297254609515226372867995821515926087963472881072722229629243218358923830948510474979370636762925352205898137111886934998838706792316817907013352588508135447619244589506902698448611818318047928877976208260643799900742526146807481057141365867434802813534005236216163185848665870109556851203512964126162696587923403666931297123570074303795026438000929819587447300684810987090485912354025581534862575319994282800243504556932844212880069236083367138136892938715997902028427857257570607608802151008646511071904568014439930311627574851006952670434403767961629944332960691847635988712480689047691833746370191033563122195227165314570123234228865558457963851811577745333088896635261696761627132274012011546807722665088197370685651151324915985480457628692564085115556124007210198912792256985092987083432362137137507332239914891533310557943011975858465475351846150371605938911794904206784519619695150314352655365794184358709532922563458985313825382550179161572073379233510994587324037148328731233955515803017558325703612080478866162180913413187031552034342432414049523478920890344621302883858199804841717401445218789363673052072009640281399143863930043016775532834656859707343929803105552341576730920618124677385662862800350822061299819508197596591386811926820151508574236460385323178548788367804699801604935164050708206078597956668651146350362421610639272211608849549855194571616624602937893565241288175444570150507324761296262822942844816835673396791752698927264721765341882552386613129015698857084153044086903564165160275075302556812367913211213479192498897868335774179815796386283345442456914497553839928669141068508022262380130882235331677221495589852066654843935882216734593199554093017867782439550236212757356429883287444904105463922888025951025355526278130754199250609515258388885083764365737086186565500102084297910659634478816210131948255137044916552793102229576405696239349643480065744784503656153831932334446983950076181263668358965803340924762970508764066966619792804672525750069774029083747331406006592514931689784477282093419424306328140515105864793972449900440738336522777699864462132387823006447742816020575014507759595970866024202265501280181950868714794625345180223215831488991615549747198684490072665398330572362053148602624798882995925041651521144692305267363279046703700794119255418959975868738258443088260115710785008773793196696171232069986005795214976039506441963954303879669739037110429346353414284091009736076631475343505752624555503610079337961104893059525610151113876427417789142066144308536817675832836663284556818406847798160911420922958112498999917899504840236302698654872439026100363142810888619530125202607472313594955683398481058697405143433847401458554280311542371608980115954108969014321472189147589347733923611367225728640802671661861238149885072191175160693034195059609768876572048048570163500478002359141628411008514648953525730747069980785164249285435439551588766493863396378938654521263942919640884532213915162393324513081038663805301221735788062631536144027524235798219278830307603227825610420054327332135821471992191787259984778607026108109424843795353007225104387396609258783503108324301888309504744618609521471190505209582095917975849072487940710990844412651450340525152371254137402702042631003659018573757316842305864748242127869411982894572679979778536933163055733042297927657315708098594972041694592757151937584835664455732587596272205193755638721602913791557334131253057079909475598335850363632150756865593489208173589530369433675971973373146015456866012659615070333629020539325398771885922366816578183684657223422620954769775372374720519713870994418661331380927494869111023199988095361239812989537512420764824240282212353020814455237566560741566269632425930994946801362674250155364472371162657579466589706726477462046452920991767069977477655468419452301456970496831858467979755257230575741150625852756099543160071316536500730625489349123193268108830831614536891768072219334224252278554862459739149902561050739037351321420976069417524961640413341238882858268508022140238067091753572163577670214138129190971485741492685857365875386253438218219182981154326183410509959806446663817399322193625470861923307571766336512128686618006680299498184132629886864323678957418614711393345399911071586571913771401417446008838903543602813048057388740463458874391923880869340895054915318024404864613440898001355371047560585536458528160302720676912271614296425155373711173573091962327680397387666529220110713129556373779332379581646164120687627782138275098883122257348215308261569645237117534756446944491297683721457791012167155171451515304052381230964592122404140137093238706088692520686839390080215314673589614370161944115484871586327785719622491981826020828871703804238623448299288075920686783891968674320367263858363787354283964732151375566242293552828021913639352079699811110199040181402045183699021386300691082368916167754362841116765488070106382478395462194875096559242808655897036372120238429510982223558680729674861433991438914591581382444050984564954922111976513809348999893045335063665816146843707411595503916553155914453185204933892346715190058269778396841020997276180910835212693415549540478519277118985756062832647272763044221693558553979248764587200545493152546838419420241528974438300306971770282507788929496418800753710244857033546665038181956396943989754416236387214561562829855018966681062195566817237241692556111732153240937635293777072409850507473365408730495625234375075348933026293737934190413436200739005970647943240743188492549771645372196454346028656665161342097530787755772314552001597020074336771623189189274679998503265678043653292991240885530533727836741104562148609625248003740082546615003632249293409269763735457969108461260676355668238784127718437908494809809748079863142323444114835726343887548874966486606035469480225241936488556025735911931731816764961444012857844364531331029466289215439099907488744112253942455567763893544242353061206795248653334071595157701159838435097765588180838157615809308981490897472956851032068172019735660668093177465804737582331777873729619203999161621400817833622529373628543369227015637381178567136978709395755851561699209244998512234930524153532709644767856539613361663016404661129897756707408453026103653726229431072551495561705063401624402048896747147561719192026502945714845766405791684080521092228370233271504279632491895528374353702555831248535246973757471499724046618755955799213737005408434241358953822779277117609703010931170434035981522622022764264484289060874318161718148890941627955170245275861359344633548812825645208157287393958137231153133235912514019735624595378740315501494138134401850652954786617110951733048645196798075264661752091445902650431969082814469717239654364178631582279176927708529542078660491418288644706362766654818940450877450841998574671599373660023718382881281476633437996050488082827928179931890703658681223249219864860525796425068533313579493971293583212298570727168655128103272422248432002409966680364735410901605757873655262913659116840292119089421971770957259625159890667044518359277844689394248393052131362533890045820420026389512520603557105640319356252100508391036043127322547696926537750205880351337612983065290237550928392243118625930364378491465280141822073984666439618554989178883858300829048483493656158684299519180812889941550667412660061653952929258077720613462109742084123699962030944583945818084318627495412164033126515803830451464430344917077177585870281366495170969388160872665397658425898841190611719761030979010851253449931868204457789648492873034936737072017276465306151495716872426862071662122530773777533136613474960333559827317500975823883404874756033012860682811250904754914495255047695205310159362485238900736443676355560843475513376081978556887658290692439443512316669547701305681621368455143493356098974289103376189195820339430704968375617825277720425117853585830841781358790516260938884142213209433594917732633621490295764803549008277692114241858170923782910328252545489718152295537817458468278698831379111563071478134508691053055436326770599549779945432268706850763515236391904238300999315707373888516471904035356855076329943892812662182999528045051870119642700221268466208689190884093245254019839677769467253955292613802211219885941201553609129881621687544724737800499015020218133725336476773886232948261665622568101157492234214308619456366074310467507554602734131494975578032782385679006474362183291649202941291045955248759011594849073637615428222622704289918135635206232853332179987203478361857079302548094195684924842172886000525387734811827378782313612975208466939728093024441721721266476851346143806421069842447774576334223178830782439920763331456257757110888091265423464566188271157393531803166207593379229003251783397289265139098177888807452865247280031401308990418390548973639088180714648759845135785774105776132081070474188913750429331650886152786316531058528192670264031958802613733499827212278458151137458225581546817143682967035446150503150262172263000744559029013438521398341079577133530605413125863373271240347944187099792698411510610496228025756994886367158273873633378076076683251773324233804525202252571029147402109020804527254038100920139518649242527134895387401820227989129688791251006512585110671901463800511668615982361440391890678978729509181759579853001351862098974616376236863221181587636863618377585358786559763091649698940352758574682379018700962662888730733480019940936958914049008578584164663768092173593072669347144145676229524594783507451259421652395649627445706465364768442689896210904487900545396529762620704865958656197776889638327645728368214569663932109683006553820392882945222907439453504426166074936015016346100911446678835687814806032333716732615563726727033842129397900395100207235108921430087460222855342051773660692136557920874908448986696065642676818520831228787511271654958138729709991704446828812130426366170240897752946710802021568928362562419593015018370545415877297949948330121901555955881714754239517616094932341331224115713467698139493895184936342291539190263634320293833803087601539769920352144951504836862600255100565036357066912619779290622909704349557748979679864542037530444736156305193131005204415131201729314252255944999543523021091510446472684205857024165710538215074549841786932816496734562583346913130727247888872271833998626844091977567859767461106407914210140278790460498312025563769395335670959877174590950118567641930403472746315849826943521711320793666101710370361882599798276042551117271412214044944720497793577872815460108647413119883172048794443222948361174938935799863241231410428016142100701085874335970712075450992965776354925654609314533912435119290966852689732074157732185481870636374345295428035005155878047070819570081253775745587548059620821551846591390210230249326151045132111499808514884939967223478554625709874034070127601617589801134498908515592324224184391721907290958121909511516567794009718661839237609227588920544949595840324778228885747742178812788974185999271079265820284367140208025370985746019965686878981874907205489483454825728551225738811183981447629231416604534597975057136093337193108321220754839347156200532237644139964383647215408093699789999311079038387356331783964044917448433614546961633245720635692401183892361714609331177272779701114488783098490693526033480101256960922165707987118627507199768283143066146033550399363935283240651473404158157453946992021887389647107689410588783930375945152686851934525748144300435926116253783462774831563779185114192471836295478162569345243707757827920300427720001254475713702944864013226991841360559244220659848296509893858396244248452989366714255476166638682331559083461953614314187707272339692515426190411292427825475170113235019898798639698980286704025598728527253802684557212205920586319080107063737412946738552260776758250445014956840754958142883739698815259071369541991279001756238535892550488687323174731871459384373375833189131333215479401119009431495824065273901617989397372317970084838041412820839245119855164820381787884888445157762597498388668243915236022130900705779428959612920224152646435738796247348728641021078554313209211182667287642499540475914192304941756946379091182376884516846597369164369409682290003816613009988173102890638492455558445345035041151919820327721055443973775676469634153663812862397950818714324486708790287015191227840981633824843605360677270261210753582715636317249685727270037260319901265593186391262493531177847590724732022308464509791536008865668556742947023270324770929773325674091786675341373843088763796951244918954819557749957168522798971300646599927910604790418648515593724600346823151109417189200797333319609435468448730617663439065848984150907262086195671665517947961945468061949034387917731853395020113072761062647266004320450476591892120424666811613991578262229447185514558076353985359921486829511973510934350190824318815302773955447937532466029599419206820716040574289777635828317343514111682531655421063256199239879695017709510326398637035702244276296941426374676294023265920555424313034721166112505024393092186094036315039109980895049991094153507108518008519310129005413531187660178227793147268302440269408682085923290130137636388422991982901105224500220012286130466292231822993130277729297879577073893137930711904695363709545135582924714978848686587170018368170512997098038585185964731191535570732579949903243317321678170645356874351601472794721725805449920365736896672929538582452097981167101705792514288590134790263991540581883378994781939003230043180106470671675580658206243724083019888730035832775039587385274559766569181727030195904442259346548617610584776034517964422331983417932357531966611473868328527860136819226942255562040055951382067183070125791506395581907085883497517149281536344408648627698434139409925620937074137574988954084730694558392878952430765441196064520737067927211999255407415235133725821437274722910770911231272279449607872812369231545280369925499527321390810996204073326834785631283180024437036371142510159650417861201395898979741359967303147491926506974772117980916899490815849695214437419418625648512611616892242167557937097129010018350282152726646719157462459687213480726487526057320096089782347450325508266094530135712630194414907662271183908514210163778541384209696795453963168919383389363089870982852570080538347492520732237419327515770230983573138735211933367021073171129975976427158130384797395249006661623696784987283288643268972631148750678890340895672702736562305284853360074292818705934692410559515694231162754464460924925184052568622347486184794519968066814701028684201253783139953260955653378506511020761537277575876862865797528761792259942837579362075816506390950678252681003711825579697574364197790101938371378447438107067832781502161363121620681775959213410568986637507407634624191555385794256363495316845168889546742134281224136122988471012781571952126013552092175666826011149975327309696491901951580503501486458767577606942411029848471379710003323337398366118046750038629888683819768145901526076434329471750978229928751502700370214958938639502329704868372677147975337199002100037156634657635158152699160586527153909133077956385494834899505803047225901852121429012232901953826490816049397277808689171521494803572060206293473305524731838565549469484737288705708937974113264175300392078644312375660148526156211330440585932980189840425186692133297193507511654506747091426399289968399633280452108639620566711823169620611370196328064034772281146629258792824046039376813484842913446706926220973525286981586395980150032234969350122762646522963123981259205191213527322851440926184536986246745420933589113080837891767663008500691099350442380540984376237057160249973853022528345762521586220337203066712034360870130772739763379431428904048621535010743022794975583934222572301812736968840511907313769079726171197214951419460156509705265614176832378235225060867057238295924723253787826357029484611969418331149171718012098016544900239336949410895866660887149178713884148116367722168734034219777079690061844342941790008875093943938702119688078127798697171507890131313958131080686524533162160279783771383956508092127660824079786220690514057756307815112285630426037849150351216867297001730598362172856775485107977212892610866299814301142262663351114028914680818539356516062094650418588638756135303409550795592993040005071785093779124096778204675308429833776470181287894433676711078425928121939812338741309615606530165635976349376447232712621242449974660377405923926920745300472480040277785420669731551912836990592498365824531573174182902844179493817146663638126281640958652174404875603741927461899885286849449822335058889892118038462868975430209403673199539373041146057607345968270535426323960139806335697585466000250571072374710605193584884086685088823536321287576181776678698579872277165616250751959421115584874241429892505041893762944105267184191822115782517378011230632453432184097064625259888916286129075224932337105660448257452599897899939021655171152567071886244244030672132660138133722072705388640104058943531064800152105786775301002307478953074148848890837126713996240268314270262755220147034113007789858047566696305767600213320116347399728268133770823018953472744935901604934118054939222833534541319886812908473541771570217807938280817701731435908387083856901497929362496074887280865120695080023441563698000997971062279976631694043662727612960710896126168695630695431933556790691070792649303107137438996256036790456080388152035856315318343550260374114615973321117037404763682799276174260033402133222286934102228414504377737136044857698013916781408763994555880805847171658036095662738085314312211194432711585745012706685186733672590122002750956829051440825507891315599069493512980352114929650496863123008194731351743820066931900665885635491918830874204306606719407646500742814800103535058902967250129326355149180650686158860887465478178618991981220766397056657867371157296815688855679907002106112360007346957136870119736315519070332784832395996632599352369173787780409528643132897647007931565950720612206160823738503078257806279341117534083701773734674236440099158251107999454602353566697109408465251153777578283774659156409759009935119978902981562480510575492856925865467024441718652931464357605506670691259502468329499330110032884514896068295189938610623958121761894352332114592100327389084894652339457538750945501033441536744845115264289952814828352999892188490473933785458861182549322646210046233199557743003199594115028747530252709309167863301055112806070020384038018594726534548404990232814758937203651807054647287004878678007850733575218328716656082243508370019391360279554986135077849097794820941528681268851123403255136357572304451649557014656032768639132379654666285360711269043063682251717846998085630892786223658108402464297526106733389946449418889058326550426912682572945692587873714840782942052673521711263396365220783189909263081334299357738558672298934181100930592192033544134068179249011825770706658916439904703185134317121886433740016370901611159467124089465246196317985430640072706652502681575451574248178434848254054380439386428840855847306874232140718381889201509830810607455514427703156406810537449133910192537487379578331479682806428479295486932315887080153150072095889927284454626691943822514541383643685970579942337105295641274306098391596335266210328744793460516385403650986038406308825360713571997181667785875596411845003384731504132473104959421615914117738204426146394874105486202559992474580052328522114090234209286624391038315216877944580123028176660313008568492733124214416700023964645483591173129595135599720844553719773171224357052783904566264761940072195337536379177971420790656231708068767703999558407954149577020557101821461780109783374392928977333145767659235936834618281990259444796402572505698204362596486730089123942213577529194408210091573241647426114892885763558190394163932698267838332721680069245713104085029740671985767348397234345373425760193039736995675678888439529856009725426749835079874688165350998099595015213860445007131055016585183548386937520480589085753090872878690662120443452699519888538506475179992786531054727325980213451397727360782335757388804929877833423322635764355556507349289749285980133564213967422132607403299648946441303203532231615237372927556501008073930487105793371806947575692023363229788582275223019213536489407243014101745539937990415969230907403220890747709754151673704497183803560600066816947674682052639265399629354060698754041922151807070152632822052145488521447746754798044611121986900542855971499507725319177730945074620284207311251326169036411592631497644010286558852991558487361477076368104884995373964994925674971847249479667448199750307144252090314712449433647748412154000421666603438730087349641468816071102887703430968216665077020789736763810064521049060930502485792479420539660055607071970515033436215252942037055677861059980440513384044412984356045666415527240152366063335906563330494686841726273298008222151906480075778921161862236433226242584533620752007606138867994675842543662724248433552011372753894580956403331461946102383116190992976748615867991071678220683930344848510849742512501921474516477451304246182847717032832246400337129010836584953779843451916784574561779620625828362058367810305101949190022382508831241519495931452498827103608420146395932969509082011091403891106478506645596760351541815598204186302057637640564343055556291744141945730391427402385013075685688349952961266412979836813786004460208754941374665260684143616595680610422589443911173488516514735569305484809560960541129100480774497350669967894654429344929509303417261988225121683635504333005956448639343001989891676890292798237978294339149335421328064833654587400059733664095637681980346068456293436169439073891789651061266510780120042144137227677764247580382829367163740692403994301687256186221795940301365408639741777981755436061894300922284744747091796954692834784443185570601068807909845532934095020391622524352403778559854254550503751538621027953031747153736807475965214083772620042885669789182465209881766337101675558929553580031641026012833258850690728922827629545955844619639473934192319329420361289484501929335468544363552528937728345969038008396172791592298208251601257522455312276402785376083974779481427903787502275992598144847064389408487158857170988788327305661322387641534929677718559017017158742588223724430872885386226963348528609848573467714427235525226048681126394680386824881038218461243587659813365524830115655291792233679926507776278353112882236701002284491360897892233902089668070566408496285199433456810919572228032139374762789922462374649891395616639407114822055986666849058337607338295425982674540994988045987711571679124086637379670234025044726110287177090240750804024664407025952708259323487428381208562277096428804165470028798863475314608232706952322673853347913304349046624831273544179155035031939151337595892207336812518391169299111220767336382779401764204533660209501515518290938978745792612376518326898614500369478245471899314178261208913029224289836285500820033110826023235166402434297670808208600446371305933332760892315621493756605605389264657553870802165080127773605450315096483998579354930804697395831959707859613919335142040040909815662954607019177805979880966795089725638043502197200384687208891193934216792528787949569514743914240916298369105942195153431047387838786064029940889072908758415098227616502013348015720482003864992161327357999430940937773560264801118779837359256291406539775608218821226119941420397239467999312904042407439659735530097936432779604737789070070825388180710607475905499874102686550739141492617150507542650307802415674585300716604217891817874359929248592123294469369551486660094178645561567761331409946886292212801582479798461423968413176926935485075802024731586934449830645286307535705648833444090004523416774843494112979090620028629291138987409094988712452379564512319397399269062513080774986832288668559041329320704053263541146607040396404845565513713539401889562127030865832797553298351099451537333858385860770333527387694040330445479590258121802890095615324443933495303603857223854944075317680519831648739276810069898841999502333738210520579950751061099975912694217175837836204885126263933561788474257513425276102756804324136505873053750374766745803166982348682040305990652965748179160606040168162643090351392650051287960885948489310407881820338010788467311430291333955430613044783869185218644053800406534884337675742225873679555014427623420088196930057463295532831224701989578448351595696433899714686123917898484717033663826709985385112858880795807167102329610881209950528578213090181827278324899848595764962401652060948267120368847459441786487766273999033764469456320252826277035308484731678732603044502117386562805096158968418456409180637744500583660688563460893915362545941435792579672061627794169512111474602867721433330082814627528046710845875996373617102955997534978561259410692835490083375584734091770135879126306204499518676567669005535411425818753960226145930156630067898809376870460977948957026818779506241677906068675202894087245700195362526194196824256761226343119687220368579998132155342414628398450959399819222820196424581674928143727286553328179729102647871588008909281996116349410894018030407421926953721642143206720489124158869441246707346689719169054783866277260106901303353533879948656383006831951315774033933330722155062820741167156426451235066601970534394439177518330579472675303028752102291216855836030116262803515875623837715682047709764594039870197920310239058985681501102989884558412638952453505329958671843044540956304265975937456560984188480790365892468379681659898096211687518466255410161449683199227867077185112530338782577290432813939743208622614276143438078764330969168458485458616677940067553329275411769504361005875291909199406518229480744569554855398340167909885378538555734954565011097921283478427531684260610333476438150726126653602333672621194909198937095703405773114376543953222646466523786812532089581248403258185920758059963142013306421711052773651132052237526113577950994699619958198025428318583929570023845251867702545253158601679937807418916755078137432697523467292980513623649253254159510999455846308852471805736020304247951327889395449277871526243444106199005301633167013637542508433418824016246089217533157864640796811523209639055339090036095037654917868322341880930160677452827208403857066779421500748434931559503347718200390802122755997982650716508479144804312842785844972555067429465250019366980703076449668983689347742472461567426335291559213567763205069398809045724304618325989480422037590374917783236968663440832962379781424330820514445336414943205540455543423352031851693237658013537916890290305280135394712889431972402595139292136787714329400075932388864925442965375326808208505436985781379887743570051647055541901608958304691056403537423773673888614552274704590904846317527573071333294136371817266904139602470162326671971004560020617610358265610949159503213504244055560521270548361086011430785492166538953722277423215793402984677747282312328816336127736203597815553913090246459665855000197971441336341202649985393206954282511979502322354236111258724448115968176947206194171806035325406311648506017394163936630883374053099454666588963116247078175423196330570837914192926880501037813349253354531006498340620582853291356593866135850564956262867150023964989548348572229934508463571611188567440792329592108945541607773748365159371613498850214391573301868012695957483720992252306457507075537515525690885340960571524735030829238672761567226601495608178065995500238880996741933942363959370666171537351560243702105224737951933057939668179261666745084770930953728576354714556639428896226962811554209949037012330053482134039289299232058976810353176806106480985872219709450631377500238302656799094804447635547511347463390615375153746216350276504445263051472136048476502101302310082999979583412322703894305264806114315950791869998961729868370467720700775209243636694538554657933314819718551952473477328124602737682971687598659228455609568410681436959179982057548338298331227690621327927661651197225313761885139132511140063768912046520756513243251858507435009287318250286553782941615444819575632592499167194465305867286444060192018955254724944426977530505409600235635060246249964411558844974402470978181628335543528868679008584487898632982940942097350220808304495865589597573815548602667872468755508750875275799275578220771712971731789783638117318228637798916329496759689559165349475310398177630962056863917862267785317645140191919328251140253591085455440171371684284843327748255910646498717086856820714113869291545194889503523098233510642252851653166294011068986105892555152674297993203940868427565575161004133677009399194169772510861283119981618132817538099232162371581517921354064069232318398781833655029051764417809304926322924942040993927065388097252873870703772247691638785193483679917602311338214130561418777631000222908921645788835201750892468032708213163976399880679956101556360208061114778359358835284110251661609081855517875129852591395186311675937698976623503280800769676910620929115452576158212076416892196699358407535829251870764350222335597680980554159664032683509718410923256188921019166729290318027203313540795465258054279162284805171869662503383416907203424035689029448839266678977780896843552681436307716793785615880813259437667513156006400316884780151314728813516145888341394365397736184127859679963980170001036351588906165048162539130756508219150719106771413294959611172139885598835333346824331426044963696689681436961537525880845954496164665723289456441734871684372704979796180159039941375238207034158557674455462164532142973049804500058127782986603350191658463554186111631545099633555430949075312789059261865555872900864626166512321968339457439419341291532209434322491357141629775727113932612992310601898314081243471611945874415830817482870885036951169975591399915043509883105074856376194288048097999234228686041754264894931083501807451104850723629473210430224507514329205904311835302859702188024210939917720601848919575462612697900180549503910124001474456720512269175737007245258769643663381809064005826347620157274351551235620717015393230693322452461355368171680213198012095791226735676093516990201926435826956784495553719450519558939029074903682149475711698431640874547657970686846907322832054336271760172773101168473354270569364330507673554963088585392659961241887066189079930747178893885871131308602240632261821307398317020884862103582726151394982301029512975740971882556125563690146018496984131132319084480394928560396338556208443037015152810205567174698053828185189044423341834064136843995133472402651265124622976395933504839997932241287062837325707756804732613678972500886177651328017534654445916844210697073608128565133885633015080600832056105621645170143405395752752862218768090147990055733765034287987286238540415786179613944262471226060471719234025710836434196516819871570899361013766149963637410231525313093706218275076080894238913959844214526631923525543551976578325843076146416221449740628223804721517944930613574503967512574334168561359471001565839186300547950555401315358651000940498215180242144605451482765844600915629523400650649549891545023664112997692807201429405102417340984653875285709424459415890057034281265765322030398399056875372815142716878409386075863423538938250698858142055659930695162917893924969721762136788890756542693034913178021992202612999216741613763722261987986324097114569733631823958934190233931761565925253825515346506392323679196926793268136461768415526259267473868955323816586181067140954300075360271308270976307630571800102374022581965887997799233578947120689594472677568380230214155464383529840332756600956689937543991728304854980855745541779458229643193729509160818270845905985563534775291593150963005880719783404663513297834284592146764496641809859634980705553528135780811764602532486816605984302267316872221510291004222918492745233522660359408569220804449838057637777944387240992341532907282130187189138641629884670519477966114606381310389028749856966860227243701340225922035812635764952119304531749852194472430550793639811661740317278367957077984484800904143263102228242668174378736650626422378486565623123282076453655169172029069771301243744444581482140554109311329514240131573754858653175604332201496624200808045555267644953670826225713445227766888704385276052097281084271141719689212184053639313957570342323346747387509602053283876100886986060799202534887729814046063649062353236408034132205706202363555247242458341501282134435515086294278698985736560107031181263736105632269425869994498825218742415852193784850621126923828931452701991680170406468651558102415123105962044675232147389114288926404720059660698387026884309068302716051109861941699199062041008025788123582791235846920374400910084615356661627170625119430362266161662948026975733039486417598449455540867718356563922768415444058641918217176715193551778713541266071464460568160925040686310567580073462908011054361512638414499397718646213157536520596834404751971423561430857198887870098424246218510205916698631597309133504728453957868196349988265881948769118814577373910278452545257100909807852540099296066931657256637736401342581155605013307815059681335279572444050264062333968629280981933653195286478552990231094325407832141823768214063808160156986087954630017656377925250876109584768035043278141477895183707743152298724198297173572168858532829912685264360799553427198343029236827558730789716997930281324123513486190569630952712139653622460627632970736154046131138373257700801331083249259858522958926962393625371515789902339827784330501084562357701726801352347594003090369534998111696843915974606835460035637646412589725007549582716274156111527946111700035258614492913743351348060236000523889750612593237844969729837839138996360173556690915566415081287335434157488617213781357157037889521026586818880876859507828702069909619710554836725102902329887475988025604904208198695699729992217994860049800701078978929839561178630322864679991792333906503047873107174611434984877974473482971670688362771247251917989962478163975330541510223612105468161599351827182037547964985605750626994125839543007882129651465506655513241103543160897840624376033289759354001611720461980588996516925441154374801255556239926035758479538931751568764195079541401861532271661557845837155249999642989993559243442170657460639227201856784237791289772809542936323294158549632976934954449231374880449613023227657509147875482716474142722183012257387564356422030684250487705486312433891989630905243700690085997000969689226185670914251284381509152994655447340530597375978430872702277635880383384001177702512567554826395159459505587062456501322382855860592825201607049236088482607665971657962129072433361988211912854573639227395931027330309343504026549889314458237989542427339661336838114702594001561458412254975202249986573082233800088742586973738276167487543001117421359730069024305763250020858576521782633642741869544426122987248350361303960728808893110455975649349040723145639408835513090633721148886807906481556770482504918032459152203760761908605066537189996493149457771184300933638352401387426876925729444378895375488694639475742400791991803258105039722118096962639558458789038037971267767290584051864758104308095998137279025729507627221216246919459582458562238489046866791192211636091516866998786686268289036624160248853090080231663436781147024172854773327810970495163345760507590748798910986026752801840891272922013270614346973384578899799764896400348118659482788745312347194045056203535023930708505009890002360443548410938831748643095740353366358616909416006825471634880816666258213274458864452899561382619384084851219728601536387778683065417388969057974367107399720617825420132367623979331595812755724212255423573966675128533950838753341071490801285507069568929468482061560373763177522168377204293242811304769680575283531469325517952035511839879763800960045208915263844066279159955260608109931392460692983379198634265456464403497779836338723800139712790313747098232879783672366337377408952358063456825092801794640971073391743461980050227559616761808148243325943080468974441378507166274270789251662530282479687572787771618829428970506788389459220647489181145395060697609849125859877158131454299439852304854006528641791256514464069609757329413592664773760679939903792889336174202189929593907739041089077533658547784907310898269712312211148593436905404376918927394622546376972635125421894529321029880345812849428289296373792695485284478950805519103283351765322635414370123646727259229293371263816900572306960403706341522100985072072777691322386856657448747231098742092965029972313932553393045923453475378241886582815519970892909552893756430140756211884450548523233468805818872914679777734320881691738741606557863495446662347592718017592816028656649614517539300383974689263954469185319340005350673478106935065307012507362458481228009107837428469833817501565845373720791566093408865841049853208204464904225051806698953268083725788893495151508804660024119682040927291310270176928816475368480301157150334084404265313455293382987891987757149085311599770285704219750338766621620797048712079104293922507373214966591716094726965233869729976459800261357682877141807019777174964592569488617694283564179058417362828557131949208299049931240007125486672532323984011721389621713481382152750661836598530419705182984260286907162789411594197345757778756631252224692566138916384015039402288033286265219064984025613729529037800462901980696552716332045774627125341102373313297621157741712635246010060395963257790597869948964706618655185188846493464925012142015663903441167109247034169354393207218358001385790299508149365905785999189802288456319470906899319659989110079595190859631409228948253847620849040170855002858098202023225313978135814809325198863163601684553212361217330370802645071543422025610382764572332187190713181779530476942088150811134483489729098503196613410266326064505798722299964662551096322239303499749789012020166341340936648398656591376107329206295114981214062347367406514250633119343150006103507284989869063057095300311639030075245923047318705801729786324983999870217226290293412834556869806441992469459348603046006522345731075839105347520815576943547001361726277394076899152015503239209397579364717296664785935522203818477932089729730757542435105605180971863170510578154536693173737363985989437282562645155338868934225658327510930161018211855701049306680332763549870782500480352547053348178645731593135779529097921658642161495465876941128382807062408294097437315412007952036035333395668294478096639505455515896100401074481248403949682784015230836869565412410710194742761696914141154438327037320414518409886949737865675532573327640053375465247729946483997592645830977458920039574347116616588272940785159756386801830771326187064819878918836932967644216935907278147702281194539321932069294391166888426545201239557523618840899903875199549676805474353226968664629846445808493294541564054813197495706893855472276402316478252270190859864760957253678518822764067428242664754551099850267192709070243901100476337076420726004095478321819775988176463354051689710500800626764583882753211337922906548737684658046879795628847279375804505507955338014221081988031438214227428866351816514471251647552701388670322562612491383307677121465053883415969893515032707009219019765860886843778361532335577319685013764525595433195748733029346715876559700783913412484727973517877955763503795901582433114858518390695875987003206293444484180498430420571744501165232585621168458866377572179088301526685480930229563479865931553286792217188653194041482275164382675452634639010184651289442615279508773131684325498063148691002935941230151950402611621646917213964847425881128819838031420522294809656429673942700837493241799369721925241946748872135631631572921421088559555659281712308039376891432679467608697228021801295818275322761235479044114777052037354933226556789533125170349836962387053671755809842981227459448068349158955432454909498116050412268755068392678509444966013219754217360993000553745097839173175963836123945096646056465737819671714671651105174352711949809831337338207439425056346795986486182087784504528142375348563134172025744837183126784410183442464933140249754716434635976283229246314007653565646691773806696601951749233708141054753846341830194150489645706565464195801449840360309166500713087637690934904980544616530768419746210266936515251017936000793242415877937867001451649280920047279409047408917800834250323585698059860140323026312911301817546271095893069392720726377665705259405193141895200918782990442009870988753657447136488657751575103292431216503444320562021322727754325470516215320624454117100849874812984004680690210330920827967634050873935042650063953489105713604654933639498827689468057176722133799513922398028812323669785791735402807653566804890971012982823166362500577000397089085448982472940943139049300269573417182451809406944385993503871390953276177723980421419841467858051954376820727051344087001181822976203505459811340651306485319500885075883952729974117057971819595892626576744466543548372719306335782624754021251427604651091617940877391878425155887972003063214608038403573623693682906777433855471602737430947936963169225107061814108184457683949699120247663046812283887971254215837269395042041077065580125998344820854389873482918615025613349779722112267671763207073989414194909366080544735494913270684269717266139711743814402018073968282083747825429242686985779819316143975006768659982028220621393741838627667921701993628881334461391681136536120891939011304628220553002986619276153252237937740721557678995339203847496831506524588761957535780762489232471506146175143199996015173303425629934039951462839033645632283274041415586615361147449198430185568641042344792026113682484308430105672910509540630306298516764481368735429217393466713381715524501818190497797012220867797792990470557537521569369329474301149850722746479223523733366009515648777173761285015188730658372212083055544007107108443781711889044810296954372355127487930233366496228790148940835675266798096268888613643623899939869022042979497915222293154280806749976556077422597471656696875206274894876512663169242508238968086025879350414402361696476556690843654738999209483569649064822265066084753279626716302010369981663314230980647933811595394671476250620157642147342517017702056840438631366395215632986924382819079270961024161248632386451334955631504477196175314317769382962716943064416529037502954896222251447912224989024925436975215684225508111427807477229772557270764076351671390817874745454305193076372001564838163939692862105658731453476227051613115447441080681600670056237470058154338391248663645194305910006093153727127971757373595484831739514550991897632426362350867889539746620637169884131546725479311225789679573518197274709302024122684309556196210627114651648654444083479871851208249791892376180164222625723289033940574219010378178607652496761333213969990351445511133539807755777705520960720005125019068405224567374098016280870262065864601564626272102600277752505249250049744266460706946559684996947602206395501038279929360135475831976859965004755572791733107181067915232996425537980213014265287303684033070531756919075390097761902185385623347340836722828393630862856153334104274683517935608209248548377338762312804734492045413595672621617816338630551304623291527674927311767571678393426899832538975471224964705251323415712747812860520707945209468120555075857705184463162547940328878231555484924012499506800702552982785391867752292783837243074293103122710873804751976905544222656454816006205334832322620868859811744983497960911038933373405824748468994882566094672087837048867221155204315080741014276052194691534484936866285630784394409311972345625607740087655391623997462489483090507754442265657162163724436160355589397855529783231193677322828190006787421829474393916181197592633868645466284794753527482468992818651665845999630374810648518646336613319878148272862890701304619865302695403240933688454580201415838397916739656036102141172149308841154667271492416421278711476632181587244597978972387757244218053830182828678174349334443424392543304788046907807087861939676852512476066139853552631568247400219349543092072108512411194412955581040400863848513899880725412004659016800155824580915669121409775819949608873499082219909998530037991553020678663231656591005116783559852819822022439948139945890499501438873677807268783541990702943352009116446204753160595044707172445515956710478595887285605440926475923710488567611229426991041688399267116679714782970795903177970016845401274727725871869325394870969794746842027544100925641901640475793112491730884977904414284510264275198842481002677256137892897056660987816102217184391814720694532544168933992567561266574625621166077201635781126313336696954321273549926963089340931883037024721450857638646351760439039051199113162859220214667626428241179553852219891111871539346379492177977646134883421737053020657381772314313530455384766501394608885211010642342356426351516092961464514437312316903817253379501877198784209994810919915311114582553521712851736845858285278657062633039919705358426862337825206488819281693948981022119929621360221644824427848884328337898966022262623629868208173603298485685840567525060957968988232807324704391864055853334141679761865020036655610482337847327303463999903572778843128632491779272318161058986417948428473150812420035967207975598483184384501123655637197021050756233934575146618331995028505322475588062016105140272885011542814267112036988881236405058946752929284702823599722920630821816528396860743368156912382238836298630519386217627266590414515892345473863652606550066970811690348396225440383780705573537565127321421923562668603188486575975921296235988191097885203983484505853037247720028548808972730274138234895053848386593679687129607268279475285502345468045854666534658910712839417578413911332470864094442475521644718702174668833196442213603839068765105292078354132410249510823459906709025023524969664852569536851844833339522609595389415314958816268002622533095094057142951838060633058366788221895486802515178456246294578145462904368472154329733107550080876704217409887314915941136444327760644010122432014617593457776208101767990471970442971027628723391322035771602158633423718404817607954841720931557019096860352085300429388179378795770851119349864463002772082648255730554920993931591568290776946119302380818277805005778644987798488462820065001386183033065739311978844218461354269051435449609074312354296567260157025054339550839604290586587727855105835792464562856585653956750269573487949802191496126955187804120409847964684185525403251829904577279165926236000237861614701895000691636958702472866670655445412023630960181281233992833003619154668883190658836310141918053734103762334979128416629890264982046644407498626289054700530350745193357390923117398592833511315675252392165378732395225226974697524786400632645587902944002631756885394599568258049769557978386987586918330248674359209722732511357166202043831939402778886328571998040714616689189211868838098456183289968805220614826913911272525949599034305361837462017027769628937002479161765043416382256226578733372598295636172611164485525259293176081809761005385767989796303634290663935471352987453628628440512770572172141734331617157193448596867241428048789411899561337963364587619019901840303769639590355468310279187966048756060585701866443342003357276354169840783456721051270564361231845770759355965652511407469458955151105139282560961861933830029140970454647222590959608322737511904258941612470124007044255862713622733191709595160340495099317899974839090524465070237223673488381952023035986153334765264115650223350394610234652015352579791837465289293004593045264586177160288276847381135797664557398910103372631620898235138059572198893617786216694476806277215489953372618044882135400629251649239636231276775149407998922402006881514680422485301213134170382916998462472756553700089375634320841549694873147761667282762372805190590401521513797265256878721106894616026566124958553983472167941462807014979964487355290124495852476204053991440778068516178352811659827220230967371779486003669018079184083837620008104226282466012288818678555838256090385280262771543229043566144310092180352741677329402604781814684178846397620298981590738739943715640948311508459293319344910644381454893228912038064049620693866621799449909042198167023182420045129023852504058749569969761791996381307530542902467058525936115061866643202931785823483886637032458113681485569324038267708001616047257224199821621290329130457086841116781316897737932662711676601397951451890324372014428949410471449978647076148720469797900203042998440336634189078000175297744493415028902205281013593171214359223076494019897001562080023380464307121551948338411379613304211354558997990114169486918569371724058487052337859924472544599952627615567143357071934724141489809070014345622919741702790256408834437605659909113264700738076893789858104514288013224402370962986512026516929545996356938658713162876608671748372496563958337879275677838867518037531660981827089157269566879534939024751579500078746177706588034789895539578095579179775222726243481127220760870101896501357371222551344195901545162544798087084843721976660160970111968776225700005781428597463810697297595565095005419969337030241501371728596359145739062885946421348472469137308799550253848588217491166237093558714797019462488192081762221315029086341037160485889156605247569343239284005359273653697338010446872725560505134506491674689117465857745718209220351305510713544314928775067236536976505033793217489420267524727327766870899498184085701571897130547645051863176944964261519507366885043903383849495326637503554350729189006087776011294915744034802301920521954083653305571333507128446408066296176038059773069692473554614523827426746917876334847482351242352584563395646578727068644517440466529187054284577352428393094684528004853001446904919793713509336976546349842694708077572529135466547045757085112880025849301710347514776221058631625533160764304664759711370389176008580344400191748387191316378169730507441430018963078881717407623135023194675039731418094988903481787283098321668867621504014419119434155732077332014685918316957920212370288953778240543342673878405601974349605454871747687069730944806727610463612990776702390450866164714402622435684026700442615059755718536407986577684936436179667278096549929345613836571837136784061758104590608155582079616830324537396563298022998020199103127427607086901987168493120443818234587141481211810104572329616316766640001790181852371376225842416545527010388114886404448042415828363533426099800196690200647559445975024207734924132922705398587765382407139356562331752326072671907963172478245872525690396533456834950825827307129004630766764902230191270977299841344120319415192516792773466346791255701077276477578204866165307271484670572559709877858649963566090498390763230645643041374461600546931058608441921782304902482905378371468433383353981814102967579217255032386052812801455327850185407500885952704004577786292717119165420101649251385561761130806873363857337614693043165830428039486699842812414754776361743242839713790429035231567426301584650997260195334632551167530340111687904796146119167993348246692997475772885402032017222733866700415864449401783610457466563180607499616767882094925535204839036989328499369068446915416229488762089267553517514548211047310990069697827936199970584945104295665245781761038595734940602459263237084428982290761945162463222240889040130506841179831716562010563130161080556552204330917357802003270101775025990080523312270427845238100356589136772148085883034817075287026683203464470714231722166216049502140257966934735094530441609732596857307376522248005497279964812444898769615382845163600857843356308835933577189602874973493092636907400913913267813148143443283193128120195096013527849875406772072914969395204742076634435271431201410856754456175370634748978885390233211998907800506167766298896905684215874674006827913256601319109212639139308119197899232751355457588418878495758211220007987777385153077891074790213412658043110000060514342892328645497249592468197373979806976672456450371002198479494567669036392001263600197761850617788989124561918721589447999728677421328447562675212903834099030689349739213188431450576469723931797322557368064555768911298091538139011889310839416817278603456672082553487869045857472096041743373875786333941956869810099641264459526916113814418597355387604407948232985269618413276610314830260596627551208576918023123881815400801288562440174791224746274574670766473945168370701327615491409786941732727868899386225315197254637233907959974760101355062563457322066648927534033704237216033350264270346333843753074209574060457737985236889446228027595569538598511686774841003873232913241579739083564135275356676525569734510500291021810764899590221452372052576505454561589494501028974964885829728304575996398745045852158968566066619744298757603977397524550742032112530065430026459867919519345662559044723118452438326520302071077857631513470106691734503873165113060579680204019648024224375735825604511104329885452718873519394548830502682990459038201682000171077195584902688316036623625750241191225344339909468313445457973466049718168129461639183765677737197386964024431608633427238413032102207567416923307800477915855099132849017691120400622263528271131678056779287578535447697921184645045144484298595963669397102468563152338096330842612008665793201572434262466206736985646559754479476730834954136896721693598451898673909615079231385775888314148305546299711651435716502288468446676369409605423688832189336782026497506620789686588050449603272758802508121149065019406604880335893178398982920063825335229871789634688761141368482650956785852620338537415419386148903977880381851102984424443730861461636175712456728325348942314941048946681970109790154501379475076031778273447773261389643667611599407791298116459510469638711155285727657918153710710112076807014383073286245058509033417265074999477064742486792839897087580720125567053538103047214419139048392125122488625998443350661532800524597792483588324069494245458057800139065197708220774012934124342578819499430754723727378719584174413930138468228040061420900990535523088369981058154301309293913793260496179243995184612422488534529888865812105630882907074801763471311622870921684864151270406414972322826003704212699921013012646505925294815857528372494131880446619938639501615558326400179431346823869074299242532102021875929815579268935221192680813380209304448367336427779968223999228896952087372535349660023017144814843046469268579755056787284593346779239219185554839885805685297682270051674660163066456096364301159327488711014541113123518368726341074668863597281319802681801909476247755435901018630754849275686402094456337767978326871249847974950902327431607139735953084451945381707690843053271724899682797648532632103501902118912148101599329442153852038877057873649353060328146906505011922354244689270989160063105126763832060518356672652684096925801781643791855260743257418974514570657402986172882517265437277817638451334036133608290630422912506844342128313930367861790893831142928926617131758265573405354828616090133015455903567657841357278852466803155804944036105924887684650344765440204731313274654292556115350026175472014627048669957289408837128719928217892907779017989506318650833874163949750115801172031280813117380484393984529374865084298303554273441778804765053924230619608033035682218617953225962903283207077162037161551365547216003149901163978019880134291766976006989716949739752843697894823529797203906419556201302330919499242093144983628733851211645639351716745205731961217653703045851463290108764647978332270790360035427877011888905506641918349973872921900021039189475339350852714701508360661088915049743357105721722858011577736293776406714125593925516693817562081195532603488607480178707268915114439739280221511917291339736378727426864088757664790892200900291140419414310268117267892511686489750724538648194289203335880783792150748272915331630718531593475584594443002031944914208461925580743084629660550954846128503241742239886028463890197073362557147792822016882865471215467896633888066196807029059607583232493548209479837440834883602520583460326972068077914239751083567889546701485281563461524461934330417843120384347942010536417587705477362033014901398222087142563267987068907651151519858349922947075601432022433598004441954704595067645008682591532394253374772842636695309675836226210181326033573095594799457754745662155526836609284062252162357228891084007786284756077231008216950881819906546588859015055907588083649394606178551945683572581141746284846541898744654349917770356533126719814267484658740637616619535551784442574939569779349809219563182297429716377715985620287423300174637135053253250458756290099631529308784066793427294132843713542273394267379950657234649745406141452003292775289305520853454876022759764494186356619052169965941665342954013666600826696069070945251000366503859225501597928397316731450955919211974444475417197818611876455558761731286236694385819050919809881675546552248527217963860172148734492973926781249159181870446430340312533304718993209955361242659634183662588706255313148594138165417370053747655498633559669853331329987535939184963043195771120030533550019851947589929813411641599954040292323482463001061913947836109244873748993918848888212634549637312823732392002908721092213910935550691515691063164091621960981136654231720639115075683492863163345440892336099274580655216136756738367427234749369957269022475657025081616332156677780847934494257661338824192686689897727804621118559434895575434881536084442310398403715590124247983967156408257528792107603586920433733025720624359644487625456958871488466748607822637505501766977285387118874892853331127697679976141254551862061880354515779044889775160988925452688962262548450708239572047658931636592741251142712721300581460461671420648722080483520933591037189056139217257859008684064782951164393424431377564293949409135625519255567315269721875811589429970585731963563324931385060777513834478499981235816448768451405434972894654239473595117507502699355635292188452907790032747539296498484839392805550489822398865389295451296073983107970666508696390351900829275930565841863984369077263229605138067803055959702646920876724613662482655691221341706821729017844138731999023954538280773166364784709261080689886458956345466553534825436620009328981672835370542704596001133533603857295298905618839483187944920176678441930710652570422066935136872994938855247729245075460251670493776764156672910598080742367727584495248182879823008131392349643919751434099797354361845300390843885007257303150408438107344113415590135610443215988240577865304398756937282766303822427402226020615545995195870155158287025360025115186792633252217087232742053516976406935655487215294787233373901628670114167736574731218826356265375854418962050789916040984375899245061932325687656635823597903216270572798372420772815431146402900830618384655107713040184932638647158015342078504978996974568675501895860779701632875974128444777746771800811626392589963677742590195586196515349104118778210416722142171649345832763837142727667078319693356943348765299400044307127751306058110938980277990965895881569645824029910541784085134125322837924545386194524410658340079870617261614969994950180218967446541657625289578844511978939939317742834623480064912293457261878696282601088759786492702338556385488488130120560757437688494405470237030826168186879884879098373565923272760152020852559545793145369226250711472706852091637857852579270369284717209639226858930296899342649271782964811325241242898781885609095417597547456410039647290117910223972475525132437456935721737962612343766411216767056439725173756241019369952340597990628352868365507574868747747457586561265659068684302212298061531178993520911867905215436436219411898078077239032116532564146731050907882713829730319387922492234518813523382974431631266207449047820191788600505895160334151508433405324994256579264388658593018017710046127507868133304474673097624885921716114173588461323536313998307221168836950940925355248430311676635620249758647207205198372851537420429500658988301337143735739712021677879444938454019028778487183686673355769980628470209390939236134277175326889875861238637232653374645020487351116346489554083377240413974184137612520699508104601900079346220442637074655181486047312664328446805547652624598785027213006375621828684939468717554232959154038709376009118884428971038886843989065843054412307472506677158016612972958591661647947047239879494880942551490590540017956464217800687169539554673823838792348824458081348057740278048497199571161509568257487094216988595189277689623061078001919425427391437807079846125590949427984126123162417102206320092734291992295261305217374621165413348896142580793492577546957982688182241917578492867383589283925980250114155096756412539460296799159813264222748352641245079082836684784324821661194315890373418248615466832742330789742089331090557295572758204893262940662602584218413511699387443772751753396027309548975134028515970155765022567297880589752663577005625387395367782062548049309244445157240328439588050456657607705181262471221960972118399849064251325832557923469662569679231241707063513955047637039178164559121612640515961363260321252889805383442409752320780129970045975160058891076157883110877640249652368137299805281316275429330854242379874692196246893348693980643466281244168323219495199467599494873095455817936066014827682364567355021493027243153247904530319035068104462189044811132945048117499117504877582458549880212306535468083631625545269956860999519834212346581816477604657860709311279122391246504442281517644163727953624431241126536602966158813842954171785027551863701409747661740917245492783950694003045433401328663462731871588797673687170199036529622227216495470475407629253184495906445637068472866111100306403199946302986055178131838470604923397852545312515422737135057679806376822558552696428119515189597651613859027858346014068775074206099097256819166773347368294888571186824976715950929195873080247833798995836154333486847530374463888116193425971974685108616861047327522728341165840977778959933138865435296675645092106954856279520330040577109220493192181068802715431405263884452677542814998267449379999882939660522417361650699544408367865998523874492201734819338525115455237302682414129752304665990765903607342123682439546215157131282750052231017197345021968754920193083148721429805978516189229821082401420739943895804257780492890044739455778713532492682562193894990915534948996685939745117735298382361686773467541785515470880964951421434396165928340286789170580941501035112820486151476563225470522441631417486868343847404880064129804542095907746603778494685134336695489184149604346035140986696167114012468334508179829045459349808248932366671648751624706966302952635914755337480158727443296505472891283787847957525323428171714086459987593050634998015936211107286049863872946843782696152277539677358503413298036741468098668624237949518827286313188711836083489995109712363071234543642500253433838020346544776575993534350846992024211310600782477844020376050965275125457292457746914799484426064550724139673791830304047574192122890701187512678369566940215004654180002912653590573265585059617385748825754428761542038959505230436775174850016638816425788832942499198537727884387742490109633280762643927879780444519099809999354711173382452031918867066274493751507827123764686707158764489888860143409074339269879569284233823490443320817433422001939085816514194971544875285181181145046741429223955046715480073543305883570344695222603533065676798592706156546088475083976172780355600341644799697729160451653336618047813344928657406029514868821707055080671652390582969952294452312069242534795156723874810278621834033124032416704762943725807391385112360973239356385898020822674012059230207958555090549708153820911729714569017237667356324118747794682528608969182515265539560681231254513974846492613143814296702772883709229169306896809834921617216360881391374589990597394977751285203591540746944261672996690363019938540804665803358951320799018662701572186733179700516750884189699219278587469752930715694078890703386942292928012214898351510978676636508841276505658580493542131425237660694608491432018523306561085136898798588504169940671426403362226563321993489140104455437229521628869661967794735315787002619237176138054258864359320694075605163961750726042913826091758205235908580359860454115287917120254549113433257612029409994709136009431134077203029409174554431420624727199543269177972692498679264668820221953038526344892223942028950134774163935914391086560628892418839156962928792863686466404627141718513401363193602973137274134588797425927410331102416867023827777540517795562794303116183030119073279168562139533942455145658768659841524465405349616761703340080347968242799073030804299814718338405738147396263931027515815442445057829165689254087721098981370594010611185193656036471496883789519423346654699532523402351473730567313279971780724125601716296391303112935442057165861495669607267037750219026866902153990755333718401031454247980269511404790597620736496069874386406329700724186662614387244152031308020103676298310266112807455779287754151171105683277419621365799791056600503170176149186703289638140462757681654118864051424241196402071349149515917077408803851649415104641490281923412809427859859009070332691761282713751578688263017185217920865556703534849265333764310650673071203255958224594158609124605295177805218881608505642447218954065215779893081741509964273969736481639382674945546734400104171916750011122729932731399197153510175818553551278116143061766396760165311328784882803636700305225779011289582428797449212345590519300477061315427161888645666579896212721937789791732973165581048241810543984096587574691315724098944887128999807999456365950571999504170935569240773463157883754700029271941180570970853545739618086822150141297721387485748454233319474782970134790832050017369691788735650541451475349025935641338944596418250866598324176279090811251787992177407915391376821641733960580142209887218552997496525133444643514817794443328006308352706543267503708079108171534833416210114127681529833824352401832308759795508059900590968185761328427377004832639349133244957302317053262359612655541129428332060141567607777462139285029753483939846119783444295520378512270312474851501949167455895365033483937096934392833934472452710971811701116152149243210800147438595258102172822031346776191066377865699014004807801619171915703679496634122267129326476868377431042530017649681478538710363825678122468930983617690880332217729106056891060783765512579779025111188665089881054844110652727786684869500943269771417090042693730329619534326738295537959481791711394016297367331330810336923774360533428833959214035189006708351309679791198637770874828053762958265953423498146892847747152602924047182744042990797910051889182157409961010260416180591309530255299559183680078136399155500032085497085600781022030396613394904150557004068837458799179888379170663057592622778694610498166973598826339020654611978446917599052913484125559084354599504281984906774112774299693214455340810214155220013172431558866044043330245003336229037381825144710018768392642722164791676240410039321846074473810397092844251887251349031761719233902303658759419622257035523102401898595768127234219798686677054525762013759891739899261310182770459256219603889583726536435293198833157357965753159805392372101651504543636856078113328344177525621415951616844530399822225046501022555325270240054712679818990401582107407355198599288834263732476975784621532471949122265794377487912271455730288278335361009035305455967777743541519915255126231042472321055762755851549919084154560106819885048236037049256234690029165893275496074701652084058419592917014476485915988847708083576590416769727560913342164510803099098440922912924816023332680586573856146332025269508607665685933533816767068031632098886618145030858134273064853395393564729862292817350782472275585074638340541187104504451119245337621718990923029407197052341910510356548551342719073823956937607040267296854670963283679739950195330144178696928507431437152833676833072811407280035265389308133502009553552993997289830055377367790517148271339630195466204318519419348903056972673626232320283066181928219130023273498228691772909078065540709230790067786222654723194420895851946197193228274288608503527027193437655652087624650614334267917603574662394551690236657819348863548314099731088257777095566421352190337524781582118109654274756748988782914320397331324244615376704369332629522487632541363417664752603800869572112863415290591506577078483277288139479034630220826390413447924701246112643334826334188771603101982998461465618951068962247450853234192886361315364104292064101051148386927269083109664993202778530916798828603208199249714417314963906740074539000468928120138040373029145816418540695693478651293325597122301270168734577965058361309204357338220859245884853107394996085448614873529911542544114093422376389726098968737235453032362044014253282545615525618791324735494385448405390841774643531293844605022917710340148296085185315555168581976682328114455861094669225428156631930286720000039658721745680095782482171893912548840780929459673421754757793782314114599146272121048078409209623604545992151748567163423560429052266867615592776174255028098546310848169955883189435580723776917927182890429914590801073011449204785590763415070928600584407035111513809014756703041160310008262839345702858582870309304119379075292635823920183722895253413543278329013557537403655628994811128065275470924871601098754933519232856112728479312221013921024295078192449827037462128812892508853330111987119699356106625629083006479734113060320225164661548190400221062209265430975894171719591365000826295539601822451604024360799942004959864110777990430580192574066871840273091459389850252485638904489615016648874319411562936454518706077473450350131949382667966213917834203710158532256941430051714734329674557141833395607540415209641310258238428811831903688915935750042204647801160336763863133239376776852726587675559898727917041853438358404628545877957805893578472323620149409836116380663245492525622115781739695735119275037464688420490160983364975740635617721614117423595828267248894788578243837824744225571644048372043895525109134259366911782319545487195969936141089890512200311565364605449797463033065597599465846077637335181473628840087711697494149640573040511584699608091564769733408827794720901379443065800827187817687290326155238028944392686763219379224363864559915997338451366294696889357143712785831294076399657086202553928574958146339281306749572558227727559233140165692124717809130092850262116260940795509201065000304721432901855695833449354910710696511835269845637916686546642229015818300818951938279300007528304973972951576759561404970580187241398806531872424795690909248187332445176586209806538255149856735454998962810369043164808730521075185581866643477071267064625833084528355229816425255071702095502355995862503724819957801271635962646143049246708727555545471422664117877690856457281830710167152657268094095468891413182349770954810828819684524127563847592831403154897350359781554349096233598728136923920349870137705416866476263065453132864745246001371016654418671567457355102022916179334648744606468854491691463140249222380851059565415177774318559436714557354054190773416155806229161374195871361912788592966864112598282568764589388444056931722166977273022083748758666743134073569850201542207319307450913303994841398754602353581477611984689764846691155274766972141612941306484740698032233722870762322465074889991538410937822953672242723206745472033234248563302010665871411319134081933700426999462471625272382832832017796535541195676336676131769316635478408072019716559643155487613445919892759301204285609132202046866379676688474317332874678768971354482450901076788470308270191761702092597187259297050094621126923037379597312091099361161736136125422282855277252912666197563245119667971741599357412356923471960005859403181459810582276373440988058350891926456365137873847695210230146078135082717585027550229560521512905964776588862511368575866446110567915377473179800924343900733047820550609100278664518512491454443534924032523372216842921806814575773473957599802924750050301821705760883389533290399071571306113688404203036052711142172319857717685479518594442859596040608534622946723163357887699721053487098496240513633369272183590098224616596063618608869410581489615129801686211847598112980412501644858970728319864399140314849907557708961749366054821150353303171175216543839195878418530635555766828083727831025843466253568108707227789578060860960239056451562912479816399819360723756727122791515748015384014718173915575268359829352160736260341452760016284602428435600317930492790706933588603374180585135318689190271250101270355630211466151590941310293947486505395897981419861033893533637397065619504342878407645360185126959345424142845166522074169543448849343307250351402959397427588179390671222472481703148944192571918095182073791593578592144558864156348562007515259990231594053320864515401649552939997481485351978775163449969103202342237203004967088786554751128114852543786033499211542679758518588001453590051126291657128278527855448875705152863131683188317597320668831685206541538516235055720783120439090798177696870443278686541242109851643697812491378625041425783559692889958176305097348381012890425379859866796401078511121186716764002613747268551082181425777214992140836576385262563457368783653227531024660513941475153577205292306862143989684483117716305381837710607923127489372107559956686204186387529458982600863025165124692239299567800007308533116021239576674330130521516772515802227732823433207730268440446795086201339879817347487564387628603745600639039963210920741181371126507264684742541431867309351826891236505523690964993925920881276794120583624360948792387531671325780583340039155994258340759991129968935434225748567607643072445881929705981311501142351222595209934371985272623157130253079711068147713925617859834816968139226411447543411453512988714128958379810640239039540561724879622958404153387174967567749764504001828063549617464991106520974954937525689402702120061389430709958478083930170471884399364819488054333314702020895992456901317354202613747069623491459659832299634781828114548637792690554287154733484266223511010550604422654006971524343637604316759412906150211653059610607672733734756861719231504026704970522431747699719789147517761702077534937758481430602483300567094461228574238812623009069423336075492921112724458794399440180514716242069288734596454277695184069890811662401071668316953865688512893367578186562351674384795698488917729073777629232693740967297079764463250161706636579516686287660796486943368915066159925887697250091014953615866012040186060935501892494110630901057510991494401701497461783045516888708189090070882950468683694698761300231736161216256632912549440221957262862241137833212939778129694036809377976131260601891749474255610193483596363796909313415090271142116611730448568735539668848322511157938757396742144550245787331892641080788236219517795181224042540300116487201857781400745975563668680930031798036735014065423081363226684136895794973854452441795932471905187717962910850876423334195331397766674447888408259458185351263052309310297645678708184968131227472509893915053078346497744018996916206981527881415297198586587491903777236496995350360881772949303598774805160258112712102190529618240767646471141382769038558428545190845416663004813794820110921792595154725346545351485137962459487040965907857456566030746718127686959449558727051699235630415777026140611747292875742834022992388070080108758843854992528202761936921288464407527813739555188833772292157643801067485719737609062072533575518674402034895255554858073852491910016220702827728891075050054954388514923415614612469983405526574853911387866044544249430401830783076169117112746107133432350955718296747403221866473254064471815140354945073920058447245313226658708040153727113442246899404171841421291829352720988431181864697187669214141744767329340923033613216415166329044719627783764528042842725225391197832309543374154828610199439148257678573329944017057357773396930401748525429015432219180989527748943236943182875885462132185809777117120526500711464137581105114331466865583653136433464952601541226924560864492796877097741316493233621287359956080477422917324346015907558963879423592671070395301283007381845904889084344393626366158532620172506640522684971476458985534745427188698673356456014471352100687626789387878562818773194572549709572067773769389928281453210673707998085099933428262051812974610096139193318141079140175617500048994628906873266190546982052158337015734023430134141049100167675753624146541345291701728781457745867641990449785496587302494378980658755081127999695026846514762156803663049627559467386480224032897109692197621805529476042244900772035076528886932850242015745829684986055395816520104953092932079819105680594629911571473188311222599632542445837391159844501636837203928892903734001006275513181560853437326783177652582102841570034297167468948133542807875068585565988059511415360893723642110888347315459329645969778274234684972207705534349499624000006318087445643816423483474496997129048744789475680857652393359055842377777979390871503956774538563463330218078399357755299560224830682654129487737517081827477909414770679362570282370674986527712907296684872925729462983089414154966398568570205189825002321727962706842190330377323532885407683151740933663566294339342981033550618862739986832820224370886889011384833260046605811232624797684096455708706433427107778966003557595914011352628137058722859879425984741219541534797659876315513182763439574928022518286500743679535986025808595828209590626368690448214658247891591436094525976711705651455134272577616344468878242609684097196925349909546018368788266398362825854243834216357563940765804053761126401585495004179998408844877054412116135537080098387362766770734158106375397185378966715035946479283288101106457039187833216133982799219076551858790628245997206711476871011027136844225454432186973048182961611775036259601244982415319865225374265614071434693708819635627002322697827843397417242745463908797801100597006623811986967622492805648620664564984918771084458710420197418032149373847412455427294404479649974894517497200773109174873480429744856181979610469544079001012707845682602819415301087577474407827286478784216969670061926810719499212892339336051583685535066797471674678863269076923671368683664285447781582237598976480020699419997453824208813018479780541608207333914505217121758004011781121690158919496346242984910321223338362796384961767454823778982668605798444550995856486841568371361635506801936277212628176423906319936935958591428116874345917289461734127776058599589944469002767802979308809728741879052627501501914651928003573036089785035289639881308995194815347542112961663847368172709459012983218766834732125744626474375384967963869223707723437726673449055076415188449367654285714129942017873121724937730588476025238624543259453356188639946353084789210939458012512084769968828017476304615918082383099002034200043164621847874188554591737426940487491865125212795665655133729580649769678836651563137583225804663567302599782858126545206553476317309325153889137778811735175811236455870138142641660850557424924255367189877368253414047690845510498737358098229816151911766734425686952506604947193846958796061457253285454431682964168963825544514768480738151611410739838936091091782357343071120413478492945364705093805239585781667761329941107827512750814980625370694476396413175816881795743932583723213636430171480948990863345482945250324435566144163473244029094712622052345430610122947191529543074451210113780441897286442143279235516881273341018865589790916683344482500500319103431464681597558900653636498948070224298980091304140954080496663252623461266253519370802623479132674968177978773797728344900998102467855020283384967231333095817877621684160806162503096113486920330575338306142692321478051819714956559626579096079460895252451868219513379580905474035315029717560077745509130535607773280459465102082772852628559400989778729614393844293482065289905421230304324833471411759761254060887151398915823271849476157904935395631011274493808221140099348497943863973710276410661415464166387644904434742071392873653739971633263241613666348286450498016455200871805116999649168428287412415845646748123449947729677259439270015309241030583747578516749720985333464748753767669270149855051014524938272075207116161419450879674914363190806355893594300557749230138274207060200508517951480635057511651928733925714162328789466290368884669822745592199429396145243366683959340604387410183959842367847990914018978186783217273310797276749759616507066558462072750322060244602360076534313981376799838444771285500290521591917887790342262275313848117627833653689449425793724627816976907351950968696331242499310584661244117474276593147573450893146639744222486721272644719878331433754685882408672952149292096688105396768685120010548928355269920339337519345407197503017694149975578178392958394816132631163247947093992920106930023374384690415591139191421252523312366360820250551480093195213107610213586926116069114321817005772254024790317707824499338839647124386204542391311927027391618404228331062995693651862909609468503717308095503260796664221862259348198634387649633966294948644573526506116138668122838304325908070401313775905628041174421118121716715781915330969695780608919554418991236025808124843503611777146191107845965479988470181537946998971702790753813188867590066989907650818677033771385702147064580075615326029946728450429451385409705805606978329033502065515404161023082385445013124189764029910170739604122661040237007225806236527437342996700398878216340480888513350298501042540845821008796110829604768060530783004268235249239022284607785057890210655147841883141740939658227735991847713775690280614938190692911698139493716305893712095365612186490114021122189479819969276478053080578869086328623226653083754306819890195987295885473633648500477041972312166679797983327614158451924490216056606971348462336715371565430677637190828700246205449068404144067173523599766131822423766968667474207368294020137231163441665483138282455323864673143521086570271089194477673057708234951719688414177448866594793887294603837589916997025046846602589121056460028657870676115786613590989584055491818882290390636074753877839662172387783020969885797063803194352812825829172281804386400847468866714606097898162239097630198745021546619838951178513986917340725177751551926868902022213462926900377432695105005944770396338863491559046033601736707212008010373270455680873768550216528844093665933037011744933955916775250059610873551219487390104865926788605202416030379628785094485484676251327598407448520709360172692135301830129658704786487698024589626103669968071237790674871380564092169102642962788678804233138849307807869893280950298519893596380255497181891194227865188800437250293556200761769827851517768765354080177155431603050939977588744531777974079518505471431511359831189093618596936997327309926651514842851285293557445240388917695608109404604101636811526355394458068535703164618638078317185401025514209011846273675637064145039213800443806656080173639754915408262237322272141805495667415542749849474374036661310991250582188043339233101152185323274858999219609223117789910739685486857124388245286221649584815053322237598240066555245483736331932492294962330941726070783850026630757325038314379550595171843493560928430094246957147513558657154475435011949193499634695646088394986141203666446515852087989902265511635742093820046343299816120039192587011998415985682131182851195472755833220040014444705030515079203223075980104173675167762431725083679147981582633130413655153315412050452718518989769456091408357507958377779414716454695605895336190093148278658778299290135247143331361331542794712714689086789103421630686865743043542974137554143926208102782424263655045649312161181774444919271338059798165988061023259910103647798311238351856595724708903868441818064978599715451782299940847080093742074620828730776952902313140872170870866811200631413183066048905656980509509011341936808780481881654374190468494460606885829902762846697684543029591128477854519779555886292224179040054336874316486447461592525377447871411900297574773267856180050687851592546139505069418901523185950061317071172667508026885907846017943474234682986557683317531023406471413388220291128842453583321028651414430419724999456391893906619264061431294475932266126962053379956992802519731806345303800938782442893036461612024693354319286372728890230993218881418809758474909899313336246109030595481914285698432946707266264834441340730915064767719378811574935115609121689220149712506352816597084915759778969142521260835720509114613305273839377307671317993826984452812609699635219254220630245795482549597261736750662922227135490315377075705880448402356921236187041048369722744678799806935584851873930014353328755738723411287586086074878555351673902215042872676633168096027815960467477102299587862750481528713681221825606589653994220997685838950836504714499187571836022323976752981639050550840835611480328073863620584288547257314014049131197778611924143383206075985957035209087964549086176692511278365489994330624153699888143269780859915009273696745858958623563465986424768050555742393180138144580861931108089707871006289638561347979371019409132137357357139364674273750908777940632409961113275473585837634858028862117421263673330435580487510319431235616356495142758337263990195424209482912308136755019306261516007094236632596585444040589322039520104241837671077517206650491459396537129210281825442131345375037837443038799546967601716419284427245337130333280841733601102485337139052946037223833368463413475490615178889767387854206867563946053660875458879503552129474751584360462708874799796038382328501496450913085425567505544597804419647734978205296685000695185200867678872362724929112830905265967733861780274786025509803667261749508006833155621813935783029442953417891976664704645780381408648010210301295802932470626203539233854348424348457957616849300776206205758305538875568151791504864814224229831020152411804441325453171355133832966034135291077380338895970738796158438121887037785359417115449640482985221691784295343773121277213764489913781542115430661885394348892970633098258805277209260361844374013480757363748816059361026125487489279754199751292732564135353188535964729416136583365582403330191112533800204790886082294345049921501495056428771345310982828775037219848103576667479351061967627049045149721631516139677625898047553751123963933044148846132035167317785400660468185389870652919889562526874827677485078843602359178090565851404308542470171982341574958692911634839480669791857351993035985956854704295080426673456063180440571383715316590250830149078052374551913286814957392950032220476293103933765432402166931351868280052085336829550071820925174206548447042682001279189745002780013938111293914792490502670243425256906205798672021038041035787876775788519481309822239621587141891180624251956972696553614419146758912829798866461445533746610511529795077676584805769112527521927724666647795716270474141727844664886014902131770135045258393880312083926646201994660952962771012282969611849895639911935012125453401903505901216703219034685759648639373641593380531114437721874635267643057754120411742420265176795711299815668369135289284648788005831812293675199504040642765102755242731308660854828406518805719091994676274108290037435962492569957895914113241961568155692228461424139401221272142009179129378665172782106693331917535134401012265600036090248678736103993728118332773197054598682227615260621887191589563905840504588172651246526639719276360042912630902883822638810179521270161822499672792534463222184210973162200924814838799680783874817869962933444830734552029338932510694487675523594213026584063300083413524798650574362858411042427543017078922782348804813400248127110755629392662970352272951782070567258227542083727787584779494632209562113472087795429308357982320081402560100163122211230121412111900031923290118150208370029164405102014042509140354180312030748080013191836201910310223142406341942211902241837021111300508121710102314092803431837010004090105161416200818201711320211090515000842025005380755200103290606111520522328160709000629070921340018065013511432202405130423051409391402062200241913174906340235130811500600204903121120102813200307215202392028104609120253172516330236020208582344055305530015235401560020031406170458081915251012074216311650103103360237025902120719053311200610035911361601151415322121011900152202051522151508184710081251062223281409033514271616011414330518010304521455152618351219135405020630212610492237091318550407221700362132182818572327230901392232182118540619224902392054021407312224060714330942103619061755180808240136152701380613073705381311232916231245120914351117164916161438063520270907110114241620210623140457102909421403220510320137012513500021094412292118230719090314200619520620090719182024070404011118112917081814142514020203060811511835080415500129001612112208201821282055032003312020142602051251025417070333093314581246122621350120023200410302104719150512030601381142131313140714082221202326023504350903223917141701022505491032202211030535033013040005140418281039223401090105105309471233110310480319215010201402082104161137070201041235205001161434142714341834210414331011192605560706012811461708152411040304020423022239060309140320091304121506083013330604215322481450021712152058043611300642192213121824040003041508034301050105171614340711192512481036003923191418091517020529012211382342092423391323044000091107012903371320235414290132152221030207153720471603165717490537223316240913184802021118031901171338112716141811022708390649013421070409000604371004203501262008234102360330071817262119163301252343222112532050005903230004001919290308093500251019185409170906130808141543132320211054040120371508130907172301035416260207182913001028090107010638142801290024103016320939040207071255165212081827210715261107013201180615230317210020102917091535155111060621203906330139060810161258193010080129182921242239081102220605055503300328082312420115215316580030200915411504015219222112005411231733110323141735182223491430070416020420043004282202030315290859153706321813112413372115075203541120061017241852173314040703062418441215180104182212131003350934192722191930193810170225062401210801200111082123233411240423050009090341080316331001190108010234083411192001063502190547025912311328202604470808211322401510082313531321011306181400062106010825082508202027203516170922000809020049235621101026082217310429065518260227112902380234005315111300020304080130200502351601203214271837153319181216024401091820040513000331090320290832005912030101051708092232100911001532184012472223050212390303071712230512172214330620124811230309121805010000050300331532054920151922061009501110043805150729174600541625041018320008001712561254153705140124184802002111142522430111144422261411151107370549221715160838032216500115022215400105113717167353671323938570053488501205185931777456808956653269737874136514709779360667064455192610389231929415797480807981068142119948902873865976770270330826388629684847703312619146193851818648514529282247692821624152672303905579818095384626809792436185687933112200362876705640421303362230745140369843956948904751280893802213165428067735742423608386057694174277258669354515137851577947146366056417503903244145621379931052298755861935756479399073577648545061449838368551256176322527722349079502056160591639246964991100502857275312925103518209310461184556763436493394878858239353771412746944917281692668233522640066407154793484194866111218921429394178453886574943787485518823236319901631233474497864280865953954026594114625204442637212804668737845880375056465151132780379954698845956126115644841669416451131136751929590556462410293933940409408998282116895098862184282897808115857422807604794264722361638431777014133937767710363448248688337593777902179560382816832977655460916403235037877729641076079035761955388868079500082681883042329036591233078390647904318017134653804291975850248339442571857400942459535692946776889510133344347490879970484052507161133131528035445599780912517174628535764745135950700837112051334440691972494577766747388141270330069435972734354529569716254970215350833076554378774187035317190252990378648226187529503832541598629247830553871812057075816872605069683978995995162954165433106784871123807817981170975199324087210112394905625745202570978279881059787877607046467978473914411501357506732587392171190368576246609669985114598662223931098902959687862228697687981301267757098226490080090534441191154832000422037028790130072331680606155798957749631240102476977983142096399217332269934040478872007450764594098414470794819252741611087250544995105440131254040175348642711024092405639058073310936965756272900626154553528966949018702775936614745616648233678032299281348951781422032337057900690342455426878754124690995213344726034997650656939278609034623208205161922694033928316511709026445135077735590500179589168335190625889885158102120984695507673153497561039432196521521592928210199461455895425240005253299453372833262516672506768720594527109142368107759858169279564234964540642924856006073545882068812413211911623441245715132875758311133388515291233182209737044515220130786710084064267511240624409097009239658874397924871998015221099796402795247623657512510022343677560052118575149257358718537035156006359530494598318632885151417241813299772831494972652412010802215267501985004365753568849018997951513646077630764405874731748398805385211659020825349217777189867883548929312561081304958751712188123738632989510609756282489720623334735366297913000243283125891226617586438908556561948015160047407029542470427457832028860242648150153692956759771311447815939073126720324916101047022771223776297262204199642170488294135549664872884874293302815238799312776543487028661409173262432607256200774081588667739914940300088977145063419178477597823226946490351052166550476293358014381901601871631532027384975303124676025494859555172508600693639874606551753342441913152696632185408485962084436715272661200081857894305694007716982791373727497123763241967765448300915551067710698305274072351738908721710117415607704303683319022980196668415665774302460513749119543441004589892754562952067281839611232339887071109464659048372265018041213316409608237596119305651205215724033364866302742293281865419449341246285453835955291243226884442705149600783892056414710702940100013970569146042472803898534775067378907684466375956820611434679318876446412943216882923765657300405749940030877812879749511079911143847693188298783552076623887002963407427565021229645907711370608533537503450050165846695578514785749869104245666120485193795909876531029664245091238420955617319546813510081195760476045657540225460818762833985084694249125596985663485260411177256653022078217694821259942482895734922264041695282634699761053918347266256610824710026114426020012334791537898994724389123383013550759901848832653139672310131751423713472244039073088398734976018730883976732737106777312407959523530829900255590677924131837602611920738776616690637259939808130753467094825752514796446298093063585222364343418628334321716899075116728242210278946472925450547426730299009201054894260319027760488344874736371430675215641017124872270901052394869709527279276750249816966326225624741434509162429204495383219094365291881531670390601013945812540570722732395461381948234225606808019966787961758442050124559712559635132525036247616484899440797531201220952508830100516484679182850404648642238051059601571765087075742556196325552812215883287356515330849350414621316476095927873081922106395437866603914923491147643369811007055806127006699871425889459678291696868502063667004068227645654871500290282271579257423247822384828205770377694606549645826247880745236348604564221573517338943348685937929093125191531612790830536598839465341420274171707313708956753735216627037966535478052565648576644996417928674242127467364108855121164996003498039644817652131916245318822146497506811030340176519614372182267126452409511496764562687223473986222371401900387532760544913802662517449315167693684112577745760834787018334437622011744094969355523391667587713902374808969204998980433035416637005707172432235269982247823849233120828081800080015765475888423329811534090144684372346864503965758026957167423020405097394693012548655742528833047355066072225305498546466256845065675757158342712343550189871923615972974138811454459251559687623463674937831126742746346442338741535887951231932283597611712159819968096479401450905425482416580241297319712810926224439357667999826015258571357148026570294975171398491196596890042996225572138339906874693908449393228506391996715789317729332613273501040947279628275097659917468862220464847944060333727685112358941649780115060594603403563524159890332164261161562774453817526695517915144814130196238433642553867554454662064967733045717327369094657573157537978471082184702739397920926988727035899701157376042713004744519335777783069577264984600393004419171260935875442758052563537368964049600304983495035646660772357681040205865858004122332837883794720245582087080276812435820232106003885964935485760697138432424087008649085840043557251887535344994747701150238749896672611111374185529685609065878655731202658978614312921107265523271835331692663144056663452494713469677998023954312057760847293798819346605854040808276660982070433503406534191689748542124936363531154639273247839322199037956916065943500927898700604134201778235627198682226113915621282164182269227060202181808876260333503450905799585432900025520699888455774228610929082833247782920681113976778141469161604510899229702971501616500522286998659317645844948855908801027693371431219496166568342198985839995146351654650273446934127245648049092921678844870239206002810501561017041526527337430973309911006728285318778047547316069861713051980814102219425146369975931450462606763210485934566778291497375174781948305958000799379441426594421025251836224249767689523041180042707443753211728773684159221065628154131482521132230745854822278769357464120152808872587239920811476187587561560101430528101753420977662039591677972848085707672413158254939103652487058289285446607841862891898214519436487906848349570061525738197193617036486595244863445781074880864573244467402049323475782605150662067052898838892555749988164820673907127057795370250492318999706715489432868119288356028168923824197988072853319961035979732051803302129027426474995289912825602095090783200745226715562449030432543147421198826659898642265064376820218839346461337054389088235682199544005920589373722243112050366436279294845950885295995642205555404319342830825117417043063609928044546584215572609714835125674381177156082273858199011310942191083330455272155227758436086710489129041763473816462533255635373478302627598405216925895586340639999551374594485932845868371637685951576554029100141879412117974681853435539083926158681653845857934825760523032829182590929959977104909038815762002677534480681155682881904478426785739066052945665017921067206595480642652583905971341975467185046656502245433715233524450427547744725847800644264194152129508479868908038661380625344258150533833088525516559083998213550075840572820219073860917653462052754076608615378923078005818610987756490616120128543998364825798762762242335297568006708938157491735746630156217635679206382308584345172236655262142171253935423166296145344354011926631219223670359807599783799892440743598692167300511432694752933122950630880751538937190705874675903434088054293221300503125485621475810494814651255236430031950232371841181678856322049593477853367127931414486117553829377737322721172938062401735030053875910409166504561475786600138277720792865223523147957818831027099877376961046317608132091186083723464677099577251432985688529098731284202103341483454173778505700074506713988233713563365740670730327788674119553488124770985504315781603488925519718160555679306989476288563585536688515423692318193513243069707904371736495368515538101334555672568804645711788444426980203728072389071189339955601124568850091763940847323654124811795882111109857501476479090373528906716862511489651333531678174858185089460386760061118446413769865320467287214580811274063866579142043060492123283395858126659061706153775088183067328439381730033132613961977093269273226787193495505135436656228747175980582686757159812483757055835631052454275090806993469122353774101510745820876714884126283919149088829625864835654889097533672567078798516936235835535009039594229675686527216129884703106965992161655914890879290971941647971162504547486091232767502022900793263736575248494031521465048253768272759528125362797827270779822158912228190233977555684109207079696735047962704680127656481201012063723250871139551795294934484585074195687688535174031786879986528506536611751640931055438821669016992953831093422805556317770494173565797721343530876446967527244791996710782497314051773760727948754264416666346010328201813508283473215964500641371762945235181838287279546479126113751152898087377246419122557611896708602448145810188070363950417728156863397097674743372634465292042665331577236638676334651139700494490831189530883761670801429277683113774415511035603882469930290285767098715438039466389075373322423626750417792099183489579161438290531260587228328423804305768997849255882399234184300449623559168947807354151407158459730062132212038627605639712649170921784411193847843075309124059214201793218354597489609461166046287863505976795552756960574962727106662497462376651328932739864224858898036949729820130827483352224842785239299200993308402131467371598714490062728246981634954476282760218881743031222148085486001487905792809099091215304478583188925503652033809639478607353721962106348766237056884360032824083017179339071137029693759107352377322098745439989489439935796297769381593194822922797293838620144776959798634411386340047645397394914597300865832624380462831440123049688904018170266291454166685973288294647644465017383269451132804499106264471060157869092974341573006681112878848007404430722291390706347664711313524407856685892058804275983972831966788284966177266250934842497485492536051930970561558092283679648178472929899396192683739935248238280209952820388748705443844678166101698263081964659952384745528465417715043245198902821382784374452544694490803855752654403502067988364330743057882951189703009132382559042181145661901589855022161066533391990866844712180269392992008803861958909927844897627399909786894195013135047505810027556205811213374877459125249396577653981822373413193366833096551573561089662674282529321071099427080984101469425881492115259009013559320742885165611802596472519244686645065933909448811006295722264057896573756356307142358945934267985264124724083941511169884064858846014202862495299375571637905087514792720930649886457337437629677487140655464109801853028635509025215174589287333781872446951515533888463737374039171725387812296474344531814406281143371850155143090978554991087052015309259447666041521268948976209202879161911632493643085635037213735327146034730557366612713313360889707640604090548094601260373266484084072691772386536518844726743850546302100049709673086623924595791174913431779591707077491337751435762465054585343288861477367568023473924102281599447267338419749656196936476918677811076613441446253530241089032073192758958348592975414757008657146724340558290258616656943575939019177852596555774904059088186451918007185305939780092406018977613464766682964305930635940199911879256491441053160303607752356676119515943919488703951717149414476494465446068836365371439136643954299433741574921305809495522889201363682252096411524804479490095126365861264740900135549688329216686915575264073948996068767744294805309455028461537021062814882096027854844094929610716373358567392244468218706889426138974350538760177515250857656904016427001768993661190197801670363465464941348196408570392862633149553710724884961527189207369131810863268875640790111505035545059306309726930456756901021483871272624438139466567889805737591594465882121886255492699237689684654500167465802858100999413819354612174532422442473148476409625801019978356856707043611624666591661132340578151970168118048530186518556479214246279632254208471039164341379880470135144426425809827408183736346472824598473881656906207204241708994208423892439107033917552025767589645858330476403376498764649812594055218568608561139109188111941898235805793915507778348596710761681932622331517251317345063908503132457514500798956834324696871372747479380384427505266971885163212794047655303917837610687669321607162245751056786823669211747832370684468185852087240803794049892978610145458436876058257688031938398437600444536817373362102111452003843935880215211355403633458999252297444858188699909650020948698195291391164444485898959227750515908230851858557546280014607464055954524503719166910323599463239770360392277620443045372236515026493970661815586802029330813388714023656238355664961300705216727219046325578198514832731432734051013562864572150779288557850358151618405107715927196476245670141542044127408173192325167546383405516288207997816147782548550883490255780402827072014571307872741449655046728061158777992984881775047731796885333572496345776025495292431608011755121937869106466138904013078833401190356742323514198275101785903679436677225178055364522699857084975308851094902272953914684671924110264750242869758402006062428907078201810266282491351111419232223488145769273988992665686688157793370324569193753124066889256750157050767800648283402373759017880804679336615523196325877420075901973461306665723591056502624936161354063491810260747384547174647059346852865468146418878681689974486181489552917893823917166426388008205493932576479515147891596216480868732907569904777395131480662509551087214933269154819563734233595934369007119822041769009834298044722589580134391228272592543471807509046228986443306076113903600822789127204360610907482038604261706466427987285239360344964051394366414348950585337589145140147568381881401239348961471521027410139229355507791680127518676075408109911861697372034729252154337910958266835691120303178995685753468741477788355093492383296258108223347882638953958235008454422868003275550064524320987221489236086984978267594382009197078178621308753945261072700622789991670954519662816492509546800861886236520746304780628639102315475877667997186323102923225702310527053701263154288810354155195557665927049066916142359017299851670549835187038814805310864863728848546620626297847595525978407246829027717579457692512331366822337037882987704552071562348766099523231080063563670474077569802589717131009140888519561554667228847475553847593767029202726356478020341305562405190919954475919646846232671373031026656817687648582555985824857033389309093865403279147503182105955325828356202032158898678622789780017835089130014904616664729557641291431371954751777407344301542148881257333460097888923485612072981596941017487321366312440554526057959083691609839060666905648748033047238261183072546549104444494256688183239472157629249383378387682749436230962128786501729580485279941729391832015069017191084585578327796711988647541615285973480636378737230510233704386203271333035227871338567463967624006555590758500683295774680736530021022583771886328432923297575421758855071100379440709710883400735013847236172381703561193707156136436550356364859279627391903907993585514210473994798741904455635936026465430691800920925267116968553697723320021255470401175925957213720319750424686049705241180846370752406174065123880851847822991314393354263018696695642980558317375073953658773922620566240389594574261263209310753579780883267306420866135636782052501478338700689289988743315309121570495153733504749307386716392867800989473590070066982329468885096569386092478573522698558141059750351178998094089535239801013493261812235470945315252442054915549572317729986985660723182885722982047209842245607934571539043100609383836088093727888830051725664254531319859344631622186823201031383919556908170619304207870800871796071207528765369263717604965602647454719678800554151898846733281512780455413970331055175861897548628776460548486639213643792866786534156468453638415832498507450485194247375519005444095303665800806744327745798940291539078158256471235111734960571460926767517949832661418980501857689544456859488403891094204626575926028811465949109896658434982028355138407963925541677937869482843759406139978441844135042837801502926604454805832764870861766922736642413068014699514763115594752216918934070174716741797343692831580867057068204077890141957534124958494869372804951493044891051394434568302176804257262181450371708747049319097708679412224301702147806721884209365269139551273860694099185752701593553391825545802461427608447684977920739327364994934006694585314157788162110024344264096032614490220620686189566013014906065555771070362458790746559148531465512130758665165610631899563344890794566998899497391172361366731477446005464209006504371833229925732105028561805236013619660388554856780148671902709380202354474990704844597403866767926355433567467029895479370859870607434941102903673696144607558378676969584437637627617455372749272423761310261606082175121169674526520395620718466575619620169163564517669645440260210990689023645715494991696418999895267383754500973587621939416102474944700113709644540126333797664113592878751723076256235861190345868505176236551971030888873178740595447118099820912821407972199848696552482289805325592808847491824012346933922817787425678860598035478208965898603961340843447634489643858955088026663779553485022131896001349485532007171008947282295612055132017794202505989716415618081005194809115208079973323972739970329730108960110663801877122106913497824886535385116506845151890194662273992423283609041754267209643061383360442196718015380700669288911131668131217058063878158269115328458644725858351022513307330892689859941915220991808281415130382226949108050808634809339834470152309404169022160759658299711473790750823964020677472149401079369633231983668326803309054034985369539743648858107516596957819600820888605976010692646887357183493803722981151083621796403253041157221786076462626456170730957983900385284561093162669598749183819255224016260873688521331153610064274784754332787540438781416140510669989477600837516052548327761471212765006118067953455702055171623862574095643026070791640970093448410547836016903919082121150309119450643396563406717445529848643689644236569665865369277493070574387386258187696398328340215115609438857911108970677214694716013258826854041623224444738573403089785015481317297048267951924244006293721805242127636571183408014620000332745161870760853400021288161112620373602152835476769920055609966803058980886944368444270922799229502132878903310123152163302618066734123556626661166606633983025993757690069553663055146909024943063290347654708021907074774766601558047360758210199294609841558194225007463622555466641795919570265499419173197639509145352008898246616595646769728996102003640038485101300449969327089103460295451727462669575204431205927164111599823286531053825685325579939755808638124566397424853517434325688615519745185828250580229020379898867190510743150506519848649937628606016997058586986237892854168202454449051289005295038080425183874613153728661284987227436402386831548103231942913029564618775033172074577309648458936627682042810777983945125507922610744549152558886056598150118502010002344479267761097611169342164043788470211888335641440984290131412397361640937100741350380317007036693738980005618938016101794453299051601237037560906892049103452670565733777917423444739601249788435790427211513178090894195448399947262292642719707178764069407991256591570714237663112018310279575055320569804972283377814728029123917123355221333709519813150253077105405902168338422050400407309125323829351775571282191679509860294391560270963583511702375321049147018062292160602635859192523812182647444940020562931329882644847908896518080817105188175285489000211266542234997443875973251002997960584853693139793613523801554933602796901137002220828333678230966942600761138589822400536912867126105062916719409840756641579890301147386949481740392636045448311631725145481726083859776419194762785991415625522935546185431594161894109133415188725811669956082045373883530366024287825023415315036081583227139382270522934046822523904279359799303213441405644640550638890016223563351807159952571923867431343517107128864258893854430070591956453275435205951954849908713752680889461841822411863711655446167252507249290808530299996912492567366080452441085691696836568484672243154983644483770187043052197776983153661328107460359510000288586850062742672495462641746304348273124740861684760471594401375730330927062188005254386778871247502124383341830640602035366105582568697086004583723163546676817875837204252503188337242901192126922865652880104259858963393500213558031278535170784237895946205167654621757043721281697666218406236752606257984212491456999730325170696967434078109600488985286592280451543391291153162469261078184179774805718678312242071119047520611248935665059375583109755486728705617431731606067294740248244994635365815247814941853405446818674707169238959333330313123992890657211777161455500357736067417634829212256324167748254281015336942762529809141199067948053829692937240421834514082527809370870011610394953601444973606412787965081280369767310892689730529860799861916460384919288537524166050806755897522934661967225233684030958716439191459040409368141121248197684552802487463453169067421785326145694655665475789503852703102706131885851339104599582228299144285924490364141250860212480359660615317019921718603838497254404160353683375038167264573221706260585035491055336809714959703298701455312176352798589754652632220324487059654769691470895780267094502731143010989203175052970689155915786932778479196481955085145485406351714237440058277306070088739396384576762863508710810038063659705377470063421757991858625540301205813123084650731565885674283965211593386786497480974541924994001843914818800818770209167056848278564356615663110621380278685797062225342468359394622688739676081860198528892191828017537349676637649920609479654784897432374895125444289840705768589284021665581425320949595662750630594142362326827034754968935880594183028867617984461587652610757182173491699635005131990742141711052480007099892751561528232025097867261403490094048915942324797109193549905712814708607282483770528189150990922950999959191105523528472465871736953377157999804437640458853318846415224636148265033408659542474914339911200421058737434786577116123392601219822859364647964244319420766602522596372874257643736789039108376202446786253427212386583345727340894519605053661289608962819106980252279268153068343764193170959806230991043070974176312616819921835683834171011320587358362318101214429133114059549934357631042506089689035414431287927796789708151707085989893319085567938290933625372410193780246972369387878505626794766536414805396035699554158816344220572296297321958119410238750845106545330236782795723471034453534121430288928445596502262551188779155125454455368885603286898909014939047105771728230206586923654543042973840740517977871834202345122768625645583540577767220877140562875934122525066177735554775849501177563254469571096272622025937292398961448108410475332855443732626727213473442351555296944341860658178215185940218228642077397160289418223900009402254290510192891566080009463106799481598889803110953331224572731339330096719029635225246726602605847387985751119593750609351438410427225723958450711895424892654724069136792764099162651500332316822339067400265970259207255979447684175000414123446116761508318806268079514878212143223081256678261896546669189339616458217771284560732560755480192795270267976447452860714669282658959838947459331892832208060107421848852382225523839982574087783903748203044098353726843937477559822188453594747672305715981182549526517537224918979415301620626104522106586849096221203312598780112049686393855252330489111951789663605663591945633534063283862450328255777798826532715560031189004152647886726446623073486811358769466388493983368455693167672642796708024467950255290216630970574118655032113511632735258017815388383260915709311823884986064822782412847171944879598140439619619202689898560204219433463207312856264228069958913540018684847158671403909036350529477183867037181137651954197123322877049753596195512286742308563461421318799745799261103502564118912567320349600650930235791884367072322284076490281318877677553507152732864625929169304920464473047833745845415265838429222226749067819641355940529963452751051900635735629717437279688560516859044431579434474421387121217422876067290560015408608446181321404655740623171710680872443988697815536966807526437063152221275203536617471407491744152366230579059499081969175473952004016938699234899266329329185752605447205326993067368678569685393762935195099242501739403698762092323012217257821607355435924743309692949951114576615563798718847385713976740421144713883599323100382975373872227766303450112354263003817843991036166770692275391960922384945956908518859230163154192010388172473626687311168121179176389813067686744646688195225609239733787424448147743348729359835744791095926364707796699090433768979344664731245465104905560155216748536212185775497865496488451952550793899172078465745024204876123222470497622440998510642648801305875508535840176487760268982168532666539097589247232364561761637621751984876267863492627719587836095849634758829389714499403130793017202485797899929802159544559495570208723870250411099085766792639221861107928838403730559444193023103854998106793738880966242790490472554984134275046413313661229771521027390682196665497616888365436364491811273146565338481514903515682127358543373180919798387790876756334808084824072250589483955766752774510160356272762526794184221806239763941813678390312598043684944003209968487051583159473072925796956409145401099210079553023793369019407300396297270461739348644104108081277815782642289837905976629119828929382366609282436007539129657271335045554927633678371149925371932785638055350258507999028601028209485803921678867677304376603603704186379396734973434180500910022886478039700753172927861458636927494859540438075684710592591049377236831237732338295220699225850016074875248285015374305654660547762626442097240421048660031911470151339992231741324959809158442052708908115633939069652024118144017804341574427622948340067378006062602562718760759619667784697256735491947553120661949749592887445102426867101455392530709690915011791713517153813649491540383584119965367902354687627651025133992204384837158818579596756794022390905020389949210656430555758980475791354920780648436695035027130847452830141986410044487975622778084319569545405850609535947711746299219048584257986107954847285879811554165195169072463934447276370433632204185967821241698611688982472633015885857945502884492151610249518712671385374247969714095326450832779020301678746338070362625482543256793840341757912286231639592812458953413902186747936702515435842830906977323844274598665633807715035684005947976015035316526206951781969049272776779277961815879999519515508603475953678381905416927216726466935743982632123750908267615923620144516152439519396645777712806900297813385683819562697547780435642822147336918390323320364013394093098641536153838901122256812393191520168288311117538396073283813206120774383384469586579445797437500499675300279872333772777508785687307080017817582519473772117762469157435265585092526620462587335435843507410719601424584879494793014015891910964387681195097401262770468552256380410610291992848065729382902983870799155257856671328166012770730802115991057143623156470468637442705456632700996915767332164625350543727752366957162278437228190745934219800496521756307200659856161191284347803060733444773356994333442956106040668912262732783834346052878634773368808207171926336170361614362796941493603998185130760290729484437407593356647342922203564167312855067763730355237646122384233503489128516947320982976562377342013687511913927596325052681685116382363337106353577001705090592689664413209795632711701458726374542669905470291046788188820679692424296380532015768959646474833678787674049755670480064388782144685333808390988189434251330999299507924668177349969260042490281900047116577508409092902956452447726620185369343499118890718065313988178891753351306322992690111904545422122714646766908109558767075971598310917895434409644686435474876527858818176223357623680198444392991664072551010211624283765036377333169255113818723267761799903517367714247917085721311066237934159644001802985470417220630157631276743062040907176741783801494326070963635427062297098058393267862383721211626583819722892166947765468957588642171034703059156437485111596214415908580295141980104125705953859853315794618996061510038929363644639756531041770989223981449542197436720407808724837341074731699885333416971608262560584536109980791349042147936546912930079721798190792242733769966206875136931144884685466020621976548121455531069897427084075540595569665322983596173355946415581503659922110419147947714062314073148994614013443637764378859761813726115322260151967721976013595320971652133111879789308284010183793018921559776423371591178764105031876075875950759670229184026745373564729562611890452481168204813058629495065757213528298239551465865316106731631109139476948993359099189632256759835233548947720247164201949712028806802645014281101859563338482592891433551918766851116834247326242239976739855566252147505619513566542688438707978116410563426712539891357470989773049705598925161516807675804968365267272339333120836396546480163955099433447833178303207862089127638712039284971321275075812745421029545537391299075795156280029476295278574877362267963686235550792599489722038982775140350894201307586288724054834378454123969541063030558742629605992394345232817298170372961250335465977869521682432142551942319590645232120085038981728380302555093194610991147691442786126593057509183326173623261110231796801793464750701660350233184627749652548926841041967134657851973700114801143338114375960499568794214092605599032964650873961434244802311176946146760404443103116125512055258383681577484046920795082162460424516042164874047613445320042800795942987863110801575707828699025317819462558221924033599812439883879399101324869676599282890703277544262482217404276228358749940705621540411606439543704828541253241187272581775220030600070390915745525226121314231121364010698167502969470358876505878437141553896470137265000523308338816581891755140537860333752815455756465547334447387157757372897620048316222300821453830700808264961449996092545745034488023740795733847155674726516323957242614620770180888871429723446287669553005494542553407671288117359242023587503528099377008837498814529042092007865012707124318508979890994628409006148500739572448303807511807862521145036806042127919520963679396604120237709046978985390127236640944700767182081670141020409200105910217721811803555550991339046707617136332921959574455591898777501329642921707047047135201534856431953993242379484062037611800816436509305398282105979439434218243584397576664832869583709616418614570881730377550235965978468005705936207885342215628374969131362457152302708053525247732006607541298506322556580661612462414569516786491991527641604593872619175394080316971194476296592290478171522366028762177723398979279094879057101916773901365488354218702498211961237120626772838169389220327579030415113469203065915167191679204763242305682991736165486321443415453081351957410994204837682085117654775570443990145911152639936583076512972349479184020559113554385081353203871315084256242749832805338772071677789847903974861346197698620217466495998499146491173558018112778540737634769755123904491848778672059565343978835209876315999995609769655856151391247889673367545726806665402026469864872919528820032448457148764790777184499704657108492040763425482814295795965258056629863732106422274280379717541536985205155269854307477525904519056943697912500086323316946029054610380061046491492828574900756795798070525236044453713614637021525060341230233795530207118444259461198411157337184249022785299798086269712814988026091034830211135925181442620770626379794133840067906384455841315069586523194750265377433182485272788048037229969467503763639413781207211724010421292767801440961344766224687875221711101449577075266665596818093622915924232775660160865521529344685505024233282125783385639349599808015413552124940455030987678573447400027072350530804377802783508878653943805763603766916950823357348288796147204917973295179211955741432407987975580537315211947418146347557620810473131842522155946882823208978549057338630372549168393754093386307309851814255075880014530334535306414930757940891740629276952638984955184936768044278577714708801906593666568251890845931614138513476244051291846290706606488952705588554678364087784770687976600948536863613823240116803489057806741544091016786473548304514670670607179502488670368325844793032143518829304682594431125485347657934515143902115110869191803258164665807828722236013788784270289473744031203136957624548698062754925848298257565822365593415697854910010832538112323049843243260139354471142395430226381407777767240975884289754780293375885779437505555544219175299646386409901575214923475916571958089112904654363495126517147982705249500201882164218582146297491285802488581473508277311200230371059625283009177379922487369114711041488298331213396144956235506828702598162305515681767619424269240240070797254162092416109316499315536451196045435116773313176330794862654031906398127264212338576625157256263230777820242064022655438123187109097165065537208222360770264364314397696658089081586473921690160022391152670178127288894037500659896669043379275247287123725355292127245814541476225346176393378708714700146367125912995595095144574276152519070816846670311961490289385886048552527920899495418001988153006053176934447039089036793667346492383622858466494906406926941959895465646618832726243998645767099867093926078719312461689681987862807563331682982634562717740194921691275813000760934239918982214766139136964971797025968167329259833353170826404628429979796180660503734484504266369073095355799915599099403537553971059751847878458867737067955870272786684724153408879624408289596769667218290281344790165738749412849384065032321783580560483856877833296063402240695693238999021825459759741705724325128460530704258779084685152317479579708922994755794424153320821322468807015269040651294542547800167128789640898428016902791525921410181197155475411979415442615471938723681974732601304109474958178343768828854171090406773835873379638894358634539385767267983294457444210614714839649850236181005318708506415245214364569620712950849612104244599187664075808789355530559225032512152538586481432488895962834904228562681695307889254371719969467215287980719965505464995684361213818259127465275446399322959361849614624623753040881482449639985551565072277566891947045726509463810248471921488273804751584957271374665247601423732555906866452465010461866714905012471537779888424640336069828295034099348379297829036477540160858384342429296787200915966645828742181347651717185395093241770750145459586336424945952274884057789157172680976781782480787156453955626777327220810226429947902613701105501515355723612643568876471452870472581359128899005854763404499385224915111974857134601660908796974256508063279855636477365400742400969062654739104305049799100722187899556381252629543646016095282265121575865743657018843187246119809740806887026334717432104423875694490720106506090230247654638390243294308622669833264534774518281536279683151409480503670851078934003356367038326513877895542860412740512424553252456516620781359652658690045324238931490511982107499169485646120555241826104670783882516944575448133796557395570595224703829634075653799732511046498911432997781321082779659128278224516311070205129905461826231471845771567060945400927276278918060935934844840198173144457950354809901946518243507983581647807458994029713663511335237031725313906035958826092803647221095229339965758537630004891176668494972859702615501958108133815330735456588039218566561929583993336197015546016991424987970587258469202055101481359157845922752829764768947987558922710151337920327262669011096747382900961233001765028626369806559064732639142601932171866654105477403692339858376897338819808852466529733084190738731813969379447649185605425361807902164355035363745154312538769756244458482956006262675269952659638812929677235653250717107549683332718433290703330839981060438908380394482642740411974344064899529141203635724932002602404622968312260810724861013178681664668176631266219188763361979062069515265712084695940380030719766810669391204038628302267958544604516492555818590109136465271184669941222585735835734547805011046024954998755172944535011114611043861097083589273207750100274037760121195755142293131339366081295581804111299595798099633186400355956148991914076128319585872860084353965910771900937203537127612083061225340971396193388071674720868894961296266573152970598964151010250112109181510066889839590704415532293986130744418422142062240476508777380279985539699239922164665413663013296217760187636975411650346196557503271540347878678750153686057452002360497131257841880744958448298576530835202233921657226731194894277020104444272552763125070964130805589055278255863212015205013031347697371784772409082778038303124781827684132052251404856856997855099158230863607514172982406078637695319326409225938268301665126112690129485557318014047939374419029763571978274325600216565175406553864553216865404970971210739647171156015799069967152567254471467879434785518124077148561390164322219053337604912039421831803351119580502371185647712499047815907548532143704065515554972953368737363711556978407230934357568988507770170400709445503870390514357837172705952465812238472637965515286226289882793570202946443584933717959505868994348531234988269485898652079608844923630257397124537310668655153513333584464036494516053425598419377388095285553115164656981808504465811541176886238334472139729668018720352247910456026099377271140887841897212412936364101944217010612261523977696524588678680657020289967474022325878342103467196684640656601355525578877807549938743768411264084893151871683300666251276716660372375687697108410059782261744511030193408866406720550169900483318517831655081686492405197018302454889998889407732408181241081335362780750351568928680326353781754414405274882968305365593632696850715351341554449537538981187257792224395402304819305821173326408376112424213668726894186004197899492770688161851559060328901722641426595610602524264883907486985652943596344971648656876741911872504058176744993574823977619158456247768947903285833704852634991829774581588697443332474239402305507341125112615419056945553517917218919210626251398234956289761729430750984531839211968335273045980772064834042545054086010548794964105715613439262899080476141603017843933837258138590487363956400041132986514211801311352957007643721699550386305115518868918498986058010175196564189213485278116239925609444376235420977366284295896664958077911894278626266842424857057147190044538092716949710654215384712043612130343103110733653572915437966233768021100127398848003921490514797706563247279803812723974663058643969238576674259760196472299018862683468424730940339745658703856770156539276174124967901793466467795988380957848458998887935306380937913557795395401857890704307456680053433018254080453314611925033861444841378155021790337534250708538254561193655680333353380068157961677713913398856047418596340203668490261033909120211954218037371972045577648558712999261318222365192717463430676922437270063734427235509553573074229093891265463890233032298460608950433444334318068284018789542155741235789960888949142483175380127866673249415889159201336806049974202136689297739513092642086729954158702251114907643688265914996923268071073043817908637698288735418164966150412209709739567989224752475303147617697902678950697792675973439568194928132118352460645504261447200076577956046652096991369966678590738689379845860934030961750027755582341652241310574445086792925119027868347862934955331959565873713228261500811475896077817729356405960579382003718098673541144125330651431768470390036883131932426777216755681507174318855751959923279318437019262476711781155570665723786688183659957321258816295745443869012360850652224447596039233810508730899796653241000627307302603915459354779937609271987142359619364889264584736969342293720600516967382991649330638936716115856407877868734155349096157025027604524145277019165176685924975283103062129372913885995002850917009380610305730300019938810020110227253216559927245990706157068918450214779247989288512042010525853046792021046826877040640810415448383258549090518374770340587250659754252850054029103067703366128843076412181029546715759204088573120104269197567382031319477242361880944154566263760654181062702772667744788674320347170660887144288350502686650664135550190785664349606084458401922390872815971692221106715000279885336356778000275518082658487163619636687432760572566089378887951549064993154988890469752926879047122050757392548909649178604811301676573970246048787030804434694598186132577883265502437087213927574796154546292127918116109992864920846845888188408691946858715167126127006332702049427308408812962195237159460305666674082862828336060681136784709315639711347523002334508554729805251370725834450367137571607508253127172260967319336166867067211668033328487660339817108725911505820938601768920763749455920730798173949121644080525886547490786107974671361880194021491263645833444601584441475639675461671102553833648344694978791525708303938299864208133187669240093703534530530511449348261163379829616077359254605879075443146025171090537299990746849974416292122318261523288554340927610767324406658247422678686285210570850329977199619259594107114819617849710269049757606097564220505857177943832405735621352927558066329258066215405858597449515938487608658765503642260047897973203773889720972294587377843071067546272076254006460338693583980865243591141002283651073994368919539976386828758030022888225823323147320736515423622889675075156359551171939636370120043357125567015586244185003979492631610394637162079397585735425506448496695055883189019505588596903062458270152095134549793290809905182162174935249335135337916746024780306247575794156477984415543780155803999885121259965670688069478454825357809939428382457521583940666743361887164863009690630376386826368501166035672994106610208440124859450743359560439171065739261691082253436325174801195388362047276847718573564065546049670498139814833608251171320650012716732034465922283878749906748879211696522761540746723396773629668671159625698836690114581491390310296868700870883602844309066722538754973240370150769747688789197833213973860393890696279016628305253794689688728589859156410625445404919691668038713855510727405313321457925859737181169999428129524471735583976199031315432202979632436535667602332919810904853260333366249675773087006081152278130736896666923512076625425220307044504629043906864919150430166526997890845768242836648798417456241791896317449128722097729948349951644004033135829862325407194806858747462896469402848653623691922627617149952894868295819512477197373189470870073982262680809576186451178972504943859582469227999368452170339017695662669408184197213649177815245163133770805399623179404649484416302196454274377829106575848429548909642772512037165520972725702573546718643305281126301893691707094959034788767744357616174302684630022218161313594644938788462109302661213855485081794969234475595290083342018339247141444343674825929599844185099523745474674967828330064839625825315108955492487736675945880574975965271038567135299914947922747041751145464638764437406092825929151648405445031825720054566932043558602602205006199929819618157239147321302875846073202374899445596695887861793486117303677242295638825019643067141223819391863556516565110776961910007281853424608645158600214232985344932460279516721685240607761043925471269733169750139910432570913558025941550653700180301594969982060162519835977886972215652107167868253767156552608290984440931167810962311505919050997788471282599863173597847853088027013248103990604697639984152719356284092539484614949048712909548364442959500040943887921747118309002027298953866296575143369474120004791658897798091273396966772482385250491634556138395761782588641541284177166131963409751446790308300585421759564052423178984738786783137898700198263788512160068397387091462537888646409816097772940371017121598427142199756199479959750753927821866952084052581775254877648827292433242687469817114256798920415786905752366741782170293564531127177280146198004614824548234112014957459103400456991739252805602407404726462113878722038479554450090304117526714802697937803426101201347350550266565276215259178031550245423648663795082409509728241861522984257768647294905063660449670217310724284017195795645831380708832088418088854335497466157833447617500628656797705531047593057464023672576970045913890657991657119166402206406744714467346568082986188950068424124794365281083411452966685339882244338761080697664607215801893539973908368197599867518492852796844061375534812821193502148015557224242859297368002159324291326098758758834330578900249790905143310960034421599471332575896874278001950786681720053471073417426925248741054599306672179793744336066548130232658410184384654599772752275744194714433315267299463046080513533029084916635658507528004772481988123811555741133100690592521142465753478607225364937038752139030237547063109326616721533700023966709771686493942551220879484794923252784403504076747273682938799247968087672636540704674066975561436600766069195648899457280111210029983903860596133676298941065484806565489568679497853482104194738669956818763927266762041435129582900944193562927693797652852068917092721266857841843578535718103565592496153079491022534855791305339235835731546522718102063679585764026519689230926868723717125615678150519941282365262604121849306455286624977142485035306302977064583618853773698845426115887375691356976617152360402163746782148708124196970896241696253851019357944424631628295043145145536317752385182706563456597620189898731486680086034857207071013120538306417777650058622168176047256945863744052031095549746923046942071529498711503494261610883079700095057605092532955277135174541800050744766561724111453296097216329158211040157334033044776475645923257599931214865327327547283540512318744300356250021760561031549069145668291728002351875284770376129701536256884293828718386099792459929082552949047744840141543756432436374526544605104761878753870640750136022459684854166055752074589494406773942817902558369438495896029934839211384416193102407837815588796771915814398869292653790140670671041219769343904529504307076513372682707398444723514106763423224597022172111696325390826691837317384679133298516700892466142033570320165515763718512752591752710961818654427660333351072882940289579289095723482141936889903561423819115435625839089934268028542330957393659025406358159954008689329498268627424362228318100339407069691808052143974636000028793912045566041026605735486106866201513910740859407442305843693960073951368599562660841399566031688087545617371628092301868448422780048501413392893893938611910728468058059188746654453975243658079593383584474986536636558371439000925326087850035602244293491204437496120954960823683785572292587341263958239933356752175182383736752866972445664984583426617156559327058078962042730814223515981699533783551546366542663409453309637341804635377715933992613323014181802463793702173747573463847161019680347910880025927761733862663278358240956368272113325894647534761177778770447559944084356359241169719544465534618858078682031842838874940951972164139319003740361269683481801670096771352877029969061248074840732264468081770636183260985779650113475450098946733866647238968933066625072326293804689447624749116598010879331094416425361900132311079579371000562923278012610073692091494715435033711904306685820730846152855267767725178869571898560519766905803991810465107757106770624806927396667908800531190879903227790343780119920896018270514848234010746674198185801620842072894188590014034417243993760317766377090058489768642583990042718334766632618440409176418348705723915490291086544964354291641783699443591997433189483146972484851839709037336775746139954257110603569447935680919663772188445292663211530929437323844783138199273301760803385275011145787017243064512555303140786208703851475256021066245683164722193526175118014711871005211969664205349599013667845295019721410645470936137209255402337929561807836828690816781047500820744037433936243671152013851429790507355337274470493977862127600323563521581584938003672373423763794080686239628818950674129019771878985741734264461480301996157645785082321893085464839056799958409848947805941780079280673828346339324642702310591988822917511846961236632747825233736841640613095644825435517409127700002958592965227130720033423148538454297693254118108707096852445333676384203687821593073136733425891153272349341893194135054954188878677722163379584022176509921826156222647107268446015670206779023621326138597833058481158692586717364601087607237371054157373365177056934749444035521466211733862153028043731571234783460183510197738191748773564050908878293452253384213393568751956928885080739551917073761530953150633550813256391674497225735502658991846715040413927975230771531050840983867127522157477265106428498966394401811224937358357587633963956586306545488158114060971687794836845195171219848585888650472975065230291999876273820895728562219615361728498978329815416041273868026180210249684914240429831944463095224960417746725952750634826588559979037090209522950133558904382919674592475942529363741542103261739084745866751647402917713248820411344461797588156676882137140794524929393021012419124463911631190295412728275011562157016101776182171700649518780916804228820195109394075241749831075927885397954340949693166357899902028140868739640999247286153749804232279872532760790965473199712983440861047474448204893875817915064822093992700975141709957505302241051621199107583286425487548759955991451051084901112671556417243015159272447440254764638443504471806984193913311615247838771566806664327057061402288813396720352710775728828077626837709226750660535162756909421819442491145897815854256417189089494022704491786918357765392421116549288304976463126063272962938337514663004289893939405236731637664885946306809307900892228792146651491798309842742363787165625316914780611248248595987397423516208382805264253892613033862726610494995679971314353180316541007855375999603405155747352008734356112593836348690039626059327715534729355180090340760563915227611181387177443695898604506170403857891905369202932932990768521676458570499224539413847186613347479275346154276613901772926295705275535417778391990943670625804044809118849490463539576269480960272448178119318026227547864072888822792435045784046373362567410533049632479140108003641555913402550263441490311245940799249371806769994455215123467846176101306959355224048557312590305069389204826676813279762878971665329594584362173577602520640032326025722979539979530395379894454103605784473209077040292074583741543626474582107082740490053010162175544057560096650000105256335441993244768382996646006206038772111919340533282225069943579621608617008639547202470271227834062893456411732030627724132739027467664474595843828610733775072749437536624213929981131662399840284641539109541084608061776513778403838744192202031413111386402532113724686396957448236429154223265908831682772542805330669466945213094851765374761232783434946463646944705466529479570342955081429172781643632691456688320499871303644768893771036453473174239276133895678889565845232892056042961654813187469351839393423074852581890102115442369511367713074923487756072717807071434122417613828196451343964980590259835524846989861151008015742611257925092750707511943924082988112463294506825821823066833284310453733422744609826015404662990929637219749132213336729594816143172506261637637235965429913239369695960617519286767128775269393137793227434890062756213182070132337159344069398429753691350115639145380240225479354137864580823933924213841347687176059237170041728155503129552799275698378614380952842156283068537076613978789983869984701930530018620324896447730910855336577244767025253519726420051025339474754268061575634550015728273178587885556745858539078936993599488298885900327087073410064198295735765975316851990642597813469671469122119809320310754323884250674539186843378759215991604523795813478112381004513594578392466215745427119250950901029124518565616525908548431733255529562091954454333590248179387431919706390668397730065527148271452344563620968977154746548155702920505327644456917111660570530881803737273710119223769135092488675364217093785036120602276873479413484401576534995635896209734351337255262903564297884461618466621529763047288374554657787564679628193442473727324390206383210947765917010118406923927932281013243695231638918798639791982363699796570068139992358337355171396803812112756156108991426143130877132507013658019807340537767897298902359187777812433252669484021545901744815276095436494533297405523180178843749339869515147745731965390526854088495764600794232211277304833266115935096736450639464281109193044368829611543194319489282482690369109170975273791477365417634701117498513940491878112200379154526315620395341502676669981601835932308524771685987658796742491846930919405188729572417713666513392575497725361701281932921735289188525407569145285532135954376244518218578346387654975794356013122452797795389867762237881395155421482495718031459935099467130164986837427641885993511042192536555404561241844867213654284363498018548042236929833531280011929775372522917031836543096672852602246165620151424828547677869077920579566182283525702416466820564223094525246439334427451401263651706042127717902759614776159236158563328129073459841404602999389056843942048470379948575386133974092751690845622252944157055670907448761824873076387103983470591993717449001938497939270445428123287925883809105597266261337102087864056204546024093196601659878172133144005172431211999016249733636488084809143922756728202780536253594322608996322697680827539437299942743302921645883957367778226170738985338899599355333167407507575190789851847818996173657048783031349966558131068851030144263006881546892062552608992199120560344234052196907769166501368132623161721754589628245130473396591957273594740102164099758279743516353235464139937012250129800485012474992952561933262036623343408902746212029756886711297575165845465918795000696655778660417015618429186892529798841917670550167038226756897604062826460175952662458046219412996648834066814179312525502550795718831483839123113009946104627336109624893969548844769587162776659391358820507766677266652256112721924659684897030609838264810261887573192867185511550299275083831301046641797108839971068830810902578447480850116725396024210583189552938148120871409550555413699677156378615890344917452800752555845361513083576406877121425652516095507340437932334667761384585056658090853779449222795922311375438038433470409193426335072678957733131189832442211795800295585542266606234740252935615282283550338027551555016994364083698431268431223548406917639929534432901038767477071658667080233880678153647725915184797687482179598779892891094217404819209166156722613629299559217467577857072564536169387451065085969915586665772501215818911588209760561167272278956376914090399845500193005754573263182275547077743666875227125041613665332565692890191748896515949536318823431962432595097487881751616648237820783307245443992093167034689326726670458341526274613366365862891862621263571641840470245030468555965354335089462492141162669170492567548513426656806630480379516558680584463764590337386218617809796706521117762677818827247186755496779370516844603908087855944546127580744830039248375630991443597061711325424672569626159659830024306753695011521988397091205259449037570602103812884173621555733557149341779588748347536640692486955566343349303371648602049874829262217100328723621174825352746841014105354828332614364433786545347760852672099701003157657132880848056176269244307543228900371078215165593699841383433662914579429093813295953906999863454215091326984846913871900868056654850820462602114384968331523237022998519331830764377178642929612557921676553750185896995425669961827274379061499174382656259590758282280152692393648458917192577920220689322006396594130027518867466206296903581070697379029317056463918930822743643826009727687984602706165745627577323945428125393704183765135309000056176728703045282348356771911901423752736595118012665269949481679151242951276056299923626371235491605776971499399328174553587162678435151395212697190632604229880881095426787934088097194673082140543060177484477913088368742233454638192882971019607915127431793492073882119639772262654841166009957804572579558876853074712262500068187878017528339025687208130997859068897596728393258537087873701077936012819058074773831198102379465036724562893879903813583890043968394804836920522347565145283352883458519897765336869540314851158303606482766748094648324303365874946162948687357676650007939301699189283160964694669911483812263708827749348904334573277779637090726576782066348958879953105810125728875778120132168811076347196283052917319083296264131474153868284608025050109304082104268776455189869824918036474877608934924969591043416729512139157758193599004853443146087831179481274385091672475978691076025131051368816704431536510188010835995061010705299663559951187334807071847941581488835628604487478680721881560736060849817936645947299066704406797731752876378414561244609314541024981328542279729084545313234832525452314270232058446647867718460974336676037417018538697858550580926872287951945970083137647701645648123534163681358050788813547531639684654807405545369586921099753205266340587140799226114266355415310037892990887030943608099008517272076232422438832546171194779347260596470118665117607000187146218417833507606243966264025030922489024738419940484328005439289268412622912775407455650447358455814052875130522093172451706437445796044568951982426438346325534879483695860440982400091744071993318249873166799534312477774862397603263252792494443767093057401087918637005978438931862960920675161558681665212452956921404861643081798935029774847872823915371092213175391180262092477015788365403755177147173374238951410739703577741782422993140302744124443834450662355543851659830072251623969853358805720137288390437830162167490730103435111443456841641764256273744819790262971860054818843817993760963714148989239612892507688227810190633077086367837187736613681007904998982441121049972336392938697845383910528448153212456850695385328676506280794378548538843321514312957760627505522784688972217476638242077881133780973072308544225097728960670784943749356583453255503695201239262359158673023451742427024744701732109310782967274959773433430487128035232174406757984206966687929573814861659992777340292216865424593284212255696480068928169890613440949302704761947445656501441253225653165612340885227788344796154044539328004416155693653720946855829525689968382753045049080838115868763000378534728380978953575074342409004477154601073499070952529328132837649080997309185342804184882646814584999006522923289902345520724049559134380866185936791224837937147347304461247933479825722530645261984852133998690445832151487472598694852669273484929042973336575030009558217397800245354562152518313237447073467543623078543739669998456279727100460899533579471731357919644325044337877045587780809675355124411843404495431142196441646997175262464427641314321293806920651621016977876970022257697235544386591920744432692689740402488142248038810241225454385564619954160119365377959917792375678441996508000609891851460115188444091347134180618348381707177032956551754362638040683016338427909222415659301917912735884922332636231553503471442140526443749231666567535813131357018111979771426180597450560320249122344469786449705186955765054853120483502877402162515327657930493221922158318835299233880272556238328113035701872174026943064960107040707619808939038210148415807559383146640613502482298680239270235965699167052590242436060291637948854779303162863992870889449842901473656312390742773416896433945016139924656759960707958467612236637460275876004756224815777220231912140943207236396590271169304463419150638060743083464063008063874472714596210132622199944515266429636036987784296543177443710833079140558621126022961234129332505470404508545622778796174402022601575551735378959755370830500258684305612706089554336632063594158769364303367484105591195224112754731918093326458949956756313018160364318659787876527270808560508526619352030696943648088946675815126026716414021151685943766377722457082683156492452312017335944869156406899288626481540943975674828724504552273860956332820243012535999287698866001571859580425143974796067863405324153178641885144489231541499517500199980605418161891608261267812437595550862602222772699192761279208066624074566803414974730278858330316614852562696786522433545521622558789912126758107280898307923194013809651920678641333175948208903273420762986862828175084885134301630511156128917647073728964463767413131601986597759622891155769336140440637283247761303562107594155944630809560781709892258824313303820203050409241679436268680648526685150673285858273486766161340187356552985297282237513992999833200740272040156888800267445355305299753206556374511102204330581674485703460471006183420399442261497289880764172322340725319626119807382729365611611992166286926464427504962045970700412774109679389119411702011121622595175349538266586138971965297894788494307216485554459362320004173348719272175458074334542507330304303774427628796293973880520283286015530090782381013633042215323343268166388319823817054306221467633812394635473349250539985184581167500052331882398221600482611015331573819720809378525045711833131555182431298958234248039676208569835429619474675359989341651523263812281562965499084867058486709511176307842638525143949686489476344421378602531986165567159992736539319487524715549331077727238596590257667703244344240545168124993711428266327348388334504509854380042291597321771084655821792941204639509773717273886973422159965512704158587200341916523010735971810546862848521280705908969341251539970504377448844517681167741159608220029062042049673395771275312884962349752812570147520354975374026708722454396960517425460847337778686141416606700586769034798501651838346591885404685101955235390595497214916724838491645987300120038001736118413040799985040981389578682675452657436043114305175573884445701343239245424645427759097976308034177116583914824991894235525393649047721017508304140623984268018936487617077762612015391605356399867182753365522154690363587135177780553036293608310169959359451719774269066316088982590783019358458382314000354237147911809115960896869556859932988221053658220803056846759016286713774973211122694598513146294746150713907352453641169810952877957506198168025168355257723075003030595645300089588351179077311205509566361084764449675285042832310457002208019521297252932341453877420634647717652053515742575174514100065351521568849935167816857220244199826422101723457804225959320021474011974560513476344096486609118925844683066444695377637762436435158853266102094291483129707115753128683110152567713495102814605144996661827397714949126791577850501767005156880419066591810408497689694683497981006779390994760675919181447319483839262839960992372106192423107050182040318021144404737674774862181980023279807137860332351836654583926447045886664699284963929752421310142228646426205520906342839235424345605521649245799140489049930109295982448470258353637486665658054005981770190879158746180831688041625347285728578659930782404909115925371146145236293800183393227650264327788364617870620573108882848596196512172967545703079012990651611167301830124023614542718461241135547739113998886694706935894968809848697433982067555732960294515418993800627395382640306697739382747306365410567580196400220616024555807528599513015928523618674938690178257891160759110502118895355192284666162154892582709705946253697846544433995400287338248862991955704593737670953696526950868243203060578459166891830433984373548347698301816779307631377008520590082919253961610506681796968978022569748747831648801391928505028483905086883396431916663063113371834863372550753107301282984296240246166863301230090606965287818530040604044787064319654328187995487029939565218712249997661251605830004548008900036564658945778785048861870188865021514027116876931396226569356007065716192165509415657980495467011871121419405106093134018422163505462828414747439846398686269924690063417461026099231610687555848915746543883766027079297938686251201125269882791152887961770795662145580170041423642337324934456311964666260792025605232572164662462946908516663181884108848240260832007970661591897378825310765835673017380444634745288100769621482691777998847167501965647235866896104396828035369112942794354113194005320513761197565495431994161584125378142802316764769956442635118606119634253867830771426993650778461964503560267470444628012507448530697516795673617022484394299601172788292782234999942615539232709359093973969205020076956714806007398489506864532410163230328807796181763046918217248593405705179917745065601632111065910378695787709147217288177269411490746647082492397384762119133637620849156020677496213663753651445486245722773253263631496619649468419025159089059948870408053607230484314858231665960168800197254175967562392116748763716158321760316570840777668335848036970913163280016881303858998591127950993751348732996773202191456215305699864250016669445475770120413342620781895117588777993081863384767304875457956264263635953981741134018489153503560911013244099360681125678348134031183902176348079392134534377511996727767904823926884290765863466444225152513961034062770505280343747860062178670482949377462097116922326309050192570740336040706595165715553031727042646558537660256402776428730521275485850627889377522437511882800539486054105863936200984887307882725989147822175885559065469964621314894615215161252233265951927219185108084375930761149804884378890508504424889091115606027131361558433216672592579325328358147305233165890993442465204623918407837736841343532591568109051914738216561561496118031694862767592650522692000671394287304344480396983569543969419037320434617811260378783474444592534306645994172269903025385608011428786363389820117458851891103697365448354063655548155366799415979156567900479713666443290875894818450997124588707585943695569101556026366831860216830987576433802293167111811172435236066945982393956705961907640300756522621213942711573926416930468153633407374895583873772910679174478817716565161045759547062373720032676515621774863431593174544373412936814482638741038843959106034825292661711053679324467897661734770255837713280652770046839499098637332349774361701805373441634872555322032136157878718226398071590281548887323628476506332893305164686623082180266060598495875558126903185251314262633567529175843406326288523708060281465948400940781783535594371100456103048888757292638775686156639949458773475774607947278151788215870883396429991254878177030708425080382454185815043334670374269799391097242498111565508141990718538542495619117225379328115019643385966917989992377443911043648697683125836243912263229946491326939121814151767702037436874773350930388044806717868929849335614170173632309352005680442108104342073563413652959723002472807452706638943127689915947123059076605084622078987579398141467267886742169528286914548078745351646529123540976096554362980899670788276779009719175889728364832496019871088536216171489105981184660379020389129104776191780388089487594704109998677641756958864129973161006299179270034863153583997902441664555788959309510001741229117682947030737562468849143092223556127746147027317886027753994471627044572169111667544743936374266630927231395764222793697411719790257163021235717215247393340551269540605867245170449454395482346907616660938905817010181425512352133855387941638056423572529104757677196273323978655693855122627219405086925925964045816472206354500356256966893926857230393388966032450878894967928950636005297890975156608934533546900639534458199408277135270157264089933551114983413536986546938728300046462591028673463810239761248667246606438451726525458071770034236042776647188793571210927593630311568474980189297655391512418200786623509733073820698401994696677030356314656853868861127472891306694357327484514072780691288341235016941143374385881852500316897615949802064721699256048351563524575934607988877861654167669724953925675565915957370296931827487303584228609925171245375698475718861236214259701664614192788684288105383492011699670119367855863097059628022117108990317874853863902463905209714964696267917476516820474498510805099826664544543978299358019775610248669925693085553251663080789882339420936375502321146958468913680065503221429848736774648106291379453771881443961017790641740703915039496498210414418457871202108852792161130242123528455725819328036762235622753818967939797634270120535039382306290046010697559145163237382865749044313401083857913713395375325495741582175214343484193574803808669810643063817192183029217778937765553284103976660061553959386513604264989881633110786520159499869037130517176222627673618400459002259697026934393777229541873906817496202055668300777187361872301011799657516487356223973913542074365651102956198442508703788610554201179511191681500946556187249140288626308761210610050864598227105149388364789597663808942402717155516032278607400156320710787555653398152063933490266182589634571305400209336678628728947081841859152898906684580191584345832935748751582072126249065026471796606193683950851111968387062127988646503256610426526973722912145597111461860277654659100591368110011320406511345435749639762009275916633415268914593336147155749724533989223437084741693876847767553437160300371907109813065603256697464668028250593066774936245615478444343178581511029982352741241378214961269645563469658619159283720239615772260717787262050470207682423484387544844140545827914457558828430288441662605613660646083008502571026638535185184415888329434305012468793201180891318669270620322917272661267723964298744329717387817361975639144775502327285285398080550232310527404278559017668023116411527000675888112053154266438631008274044844277990115336625057293378984790820008944752576264809764080900632540552711243180171988116601893311093660219741090072875342495081793208651166937450182144675026413794888232170831593590865853263474313257184097473352382283992496979541724630587748081018202035469812792162765170614440586124979816177405592834302231002822566828394800211985865172163871424493966353059202911605748466451337572792841112285185972874459089261262912986363618037535470734285294002216309650173105262679228779017861671023682965007092132209852953321253323908726376201472836226162863485467923348248675195831600783696388173455949807748667764386714975195949174088270393492952489773097360180859277500532157224356030099190921254367587823194904672371827741951089396677821790528634997243973686111451790455013721332719114260314468806693443223025235439234653903155581463836589124418802866204044916853377160365452859525372525978257227014173140174119448157185118210722584535112134185971817992805592935153591393594193323990568163062920892148051340770216904559532723156420018593922738384602633360522728324920730063679344954489665806010331335487157078018886484535593394333890856633269688822385680089475263411793985026681556294811086726709526603930065349891906859070625832706484326485574693480266763221412363230757047340602235243072100597320035272221831362827701926865645002956696391213074876961911941657683940513131070288187803104474463353013425382083176357088984503867762716575151001030810637403881142422145978282787247304713521368391868999583144471563483771861351089182935872057915970491708603812215528962850171495548159737422206984138700763063611726415678144965418725684739577370147957856065679765598614277600177382746187862805970288143367924698838701841174136262989914947825226307627834607813075160991475391585773954505521602474005641624143211204912166436076392757913232935231940856284911464775155328178913020503654546399187825018551177836099185012150903999109890104148670930909170385765827862729898187358996298902941544831180720001098393776853986077834425526727628690355776798819374327667387695823429662205862770734229102307708186539071201189461695069332635549778513166201891383611202710743566141184752985743024183846589342263565020985931697661937339459441971128700420791489267132512557044496056885141764896917373850524348529543347108185875002611229526080224435367017567574823580721371002895134073560475105115673360399690567243085902035527588712276477487990895213976133477100174597661841404472137574514399037681539855212462890507360998337181382383227126204149942031153151803008950628913379418723834012016532319618822402878474208917493751137005970099143124464222430222406036577249421887426939780466575758201664711480155289556724501077466257676221830030139520157705364391389860232589357094894600997085743874126828767835837040778987224773648286796583315115870209514950409318764025428467110980343867283607490645084478115674052806499774181006747480586565161955559324630039600992757121992361222644632285055786526910842832227870795525947107520683431280289005817599099196263520253334941533594139903169333492775975148364756650202452709499045886861998064831378329921216675821997078820338897711162595455532313284439959858341986375840152339802451338211273600355694844427751005688064715466655107310761781156916891239188837777155468482637266944085397722292301499155730959282299368185764529923587688925433753090303320439011102660561043375200052952925624981333108353835994513806824973484606294109169902693010007551913497822970031363691127037459874329667208972208873386978535046300670270648325483958558845002225166263760374754315209775173516741215821018827308079791649008915362254848419184787544704067672200355505312028255432146056828727511973927213167671114015329878669550637250493389915760250564305955361694396451293095280839907284453892722047389936031066453168700290839127314354007024349634965334618910691474219816168695019515198064619632297542405916501389017527524529643539757701017146222961466991798536396253221651938729768116386500248084007973971595396987818097672140395472289413578120326127500920183020092479739541854271326787125933045803895738705916590160420424389650605138568797221934287548236134915430145150162220345536206680243488279089812737500688938822446490668495026562346818966455945753342117900555236647553753411255037222023990730021839719958979565451890462356291239941621727314442437822046736365663952383016305781386441790488535174158015481563194598922216189447023063226105912638303724283192593444013127282630455014339887003450157752428654265373748900522611372147270359568562163070224612981637101700349834206044830292365737893135036273138041683689681943550104006001756715332305411344409271292393558282397650114579366169158541294984612805785915671302739803484535613085746147423287099124580841014939268656559248919753649840489502249392843356533293126138041817604790951791928231629638510035192675173323143510080918797617992569835305839648400005418497755633068468467518815911699704143855919658903253790957283404435432461159926691734591318567251421357189263003159266084301389389849433365532731531809543795679988426371589055167084858039564879554431416921949863758402938670760059062656893609070101005249273515099989019161932960065894472237327751908109284331721355919450778283417196195661004050697183255843100092363516934844661758623494135256091279718115830017134146887947177874348204051855302711295438286093706667983019503153546658980901795705973472728692502345704768698121389728916493029849944990010588359620278333921174875828748970842703330866150006994660343198120759012873391876864107627245924173630098412027847723402212287684912813576579560930729177042771182700402415782364224685484577079448675953731448477855649732582543524479827195403610912470894246029791499892754423897152104358558007660121012972536145986669704133464786267503912271141311099141798940785987737274653299115369602581507249615457472558849973442537425676730467365898715373253370608703170572847150865382204232345975956261813353509251532559894823686110359356895063208444330737708066648999117576383052424288962264882832421922676335464664245092794278454163049160162780012769642813730898130151508593001426678441022632026454095025114881231412968803897556754633055323713139051459618122855713750735763509965749520501583247799048922569501815710628225824251671992771796199066743616072210721893992203893212576840796481045106430607444071386963388109650126779687296840672410407271822195632720279877754753624062959875510010884213062042607846166986049436663496840090991616767385480817462637921109617609532266927791602263725379566777777137419671012940635398326279015902357585314425752603248971113055601969315908399051740275437536135982489239723067106231432552178887241667140144247942089344982716193672644908139831412570790777442404056539717120414120351397297646663577498375267926331204266924117045793662208612926130435820156316811213266800665490897651986251588279170297462426475651825022790422239621950029846088692635315749793028784370180518671183969421610022672729421255479617850906836276905793584276270494299327177589315524978602267473543107668851600486064551668705070404511886611690287130899254896288129587528893096742883050535699043357079051190516804339416895183984064877383285002988460483017487721544193705523189220441368085999645345778465586093816637028611881597773354198688108108391732606768398922955253933050367320593065733029917515214880965649097843998041091403275211561319919392117462626388846136478627167802169828581258428246378292359029481312902764511919892142496746956187701633461468034912723892515570742421825878102760204335480901888062661218795479975537640604092309004910999564090192624041296621638536505553808560399977495272337793645368607124363622265114123312500491492026027180970553753123539551387112913808694244105774827959756589375753984443939535551239505415110486845288037392921193803624747823254269936229111349301757312144111404775215658350349742159695789210871657418509996170437925418953644758968133355979950987384524945496413821120356044800265736334329796845502975603857013423078759680156019829838903348730537377785239554783718368406430194952973213459944956492216897124514560180059491846157369274508618983547477544271594097614439557234050730877072499201351127911891030011186322964203935597293381908604137812593915260795643282779441436906602209428701111205085503215157935318334386407822013081110909426087570396160910648204484420733495931925171691110925021269214055367497862303279320981746476170002632372206371899089407452002078129054694877446557719150527937013724183439463991654425996953766785372137327069653537258782722076267851941700892739013852659031435079189158645898908396331519290926471255995420786003313963866086862832665330091183328761350748890966794334798387268366709057191653913438998397397348043415664624314447372946740275074250049786427408385907510677549854905339759541933288007764047223767249205514706863335074723128253588478498359296828389778241507636112738593762542730087480012788162218408988500570887754873171581450023422119987044289130744433630604954645464598602629131928899947828208054367624682090056302684651667930367577430320684777190647970595764263357886125396798074971950684556541032930341168480778029139710267974465504463079120378752299221917418391416366616059089822227537245556072986139567327292859617398901105997609378266011004279646469722745242958248034138780783525024054541087805592050122104206261782429458315187419057499194034581511216360181702678720429323441472356620268630839245586019298392870844595855279848419689623742187675009464973184934097228112185266859384904561653970809945788628870623464019265746910446680469627669092951679067094171833494290448269665396986661336545573669875123180843877495673395389269699551086257159266718799648973382114432631931514611344080090311297593583417785703435203703334122964491002883639428797509379014839571120132331017390532446512298795315830865416736172330602451883454569145076692077512636570337898206127692635390948437171808981817749685081990018938946113532871181764136234617088005286163614310071825379260159545387589469152192463625262502501407993349136622707878581001408785864429901448863970473282588194045086827797704314842731257293080730388714268558817434121382853370697303502756360947665650999596199795141482147401281570503630390656757489627241359830461819140008258164370185235238146919484723961908218445027658381186223977065621432601060099173543278468524048049621568911613489441145397418702104955107525685504450680423405921941852424461960290434241452179159473365192522846221459670940025520258682533162950694870070332506609169754891550708943175917824002745378183097852963356353315192979980542985917716486164649105399002897241037133650871581423034769680581923502741554451741046310737754316984708878258920783944461376499623856704327805271706037152342137853417407951755500579268660336128904275430908549773255859475606183275032414835011065286214570072371527464083192345453080695055244145359460029211213461929182130984995699699306038474178321626623904531661486262214475680667397297639250671279106931225722397437318962205479431045035606190786223495124463575529034139171177152924504591167213156165108421495720055091454306296801099781617219643615706461180213569362136448423466268009552760139465027147836704761495555970037630895744811017375809874391004701010591992757443850523775640373900099688480711694814428734484051874745317103395405556858126519433884694859631543898950592652970877040180060621767271048329203297986350371888087089470882971188677273530799025024111482719348818311171345867076694706629455428297160485277651463375411168262592667091510842906798204377699221368499447285556925247338728949138857441624002981167397493976040814670847452223684677173035457467329720131093526038137363153449909489485354518951831922006566769118413664278284510250898738381968430953827764472295650831077537331974455643313335608631769898528933340774091752863282970011555601547008593453900603433506322811838021585569941600195227793167677152598802796465462162660122741899179811228352032860540559136616090728565194321819988124962067461225220429444522731662796575659763300558855868033922589842975477968021228370682753263618356758337890091279420916921120424977547903289265299319743083610746502473252663675693101522356428253376372606618930702753498902682430929921150480431562559087736991327790187060200757012088194219515916264048459978697998834969686854439449296453912551152707230445169453914869147004702479263121885129346963629365912673268928079307392875773875080711821285132889432196313689939393825748611773399444398340724225674896369448554038959409457501339509850207494078579527517434886700995417874101448993271109231542178307315175231608698342979627522203213058710686753295372643778854203848553053238386333783056028995538391473131841448142152078253506769098485065111558985348531322962517134065609685669562142146716309250432391963994566340036408725939933522616018925214095921493356502395104362392748341093390102826051652910063363974500440890490143624009533102002713732550086151082963986597734878778641117302348101914982713472520737334174658325962286488592773588250077783933338751933325984230107006488559245515391164483519344382533236237318036883994261397920496298216492707457256149737183931781274857740255384977435746012356001627339839858179995424652774438425375663750589794246057607556539143379423276406208929246767810712043641482278129025751080651250355446365753706764779496005298012291367375009728489658086934006674050449740348637781936410543226933566794080864720631573863090541340516099695555581359536979260344851311353288821841828280454683934060326099525714842852567085777025375042482865574973007250323032259944879936069151179392701572944961552019416129017196386723220709209869806997668256474868473988970691924728938815497423534038592892797632164593966849054715788523613601876426894107274384708194454187935407252881168134833990368206170617177702191602621935403413804561144006702079976567513520465380852955852422233353734704752463131221792170409038701165604829239938191165166329562465297661787283057093663509827425687474142947897337247979269774326259567284072571158028871810437852153877995289668851539848874674711042738102259115268631231599221056862601233768976841618980024897010224356630847262347043887157744674864149408814386155996633629888626249819853507377068867713052051928704734613313524172075942575679168867232425440042788995386115893314476794964949253389127358012653203557609302043685250419711767220174670578971420542630288483583117297801577243729022569088518608486422364006203475346165710838387876720676745278514235231060253571942764577031054221405154475941226333574975829901602107688839962571562165752933446334811974574491325743943735464538352875069768135161770248017640093514855078428450930376801475731866551120579181955770962671247924655290870970761941906190388088364543666589908190939692756491288261511828541618228705866279717439173657810105014727247339534211001143556099475116599028284312360910386026014886341861107296914473845573957291439796059881208010163094086881380685611732406436494613734571916749052339932169854049777795114082665637415477056461696607236711595050411753339073865338596740179498190604994326716284615745367158493187325034426992499487344424773593363986957132836576991584289135083363950252910259720769178879672105957352564856393030531318408067981520146810531157663166363885450687477389462178724049381426625145084377937470428415031020605065431609435710291000821901495367287193981997931083959423342911317842309711882497931240786385096068919968314854094597907616602462582448897382692128059805130236694127164579061491447331378631856069856506447974373889935285843271309164483188339425796613456165217656420939584694541758579571832886178390586603975161356908785900779851625027286669566042027960557592302444623962102544363782465457968435601241905485800323962098827590377684201277697065663447260342330401811601178430075293792031396983628625305227873036614771977931428480135089746415836037994774747470839299052402546110548158646024227568653698449113862793167164202727598755684070942326153439049839571261401701819721297657306870674459968181444252932864281385563103645075201520315394780026758262834051695756366106026932361922694878635469893476964123599279977215148757165704899405747037945648258722711706788437047156810081141744606678404025840869110191163065403382137865178523038253441540543852156862124591364093625094158731132636726602894928554023615171349336962737601219913018600992154526356795671742140615832162607067217596322743696874243969329319861442465329309946673281424717600397224330982366047264557992875862801162223239906866943673032256511956597504022898590882822713906772805037844954113466562802378469735099356394896759053010999265848412912301917700662940672409009154638483664119219860380773941330276217217837646228013986495444233393200265245303762222639081186259324301885863009267200176321907899597846034676597291804925797097706441132016549973461699466205904797014515878738671462501697492711185296885571063862354218632601316754238557703962463936796766317325530852489651567924838096857214037742160054614519849249744400527551372486388338123737479899865053615313745386031527678007158261032562281999119275724847460816548435357934567999897243719400146545068391889927046192839471685679702282149536479146304461569770621911575495229399144826433172246981446767090914116053689557840315833795248683551995628330299891777508042171499599585468749249544690504384244784169920620886879353680808520022496518961406062840499100426130050848936139228383677962228619182144612381436998103346209751031794708376129643623940584583486034973128073711755612809021012489019477050596776272787313485100568460238865231234473960179598284992731604492108225173669829063057134849387957706137311122391153133497337679570101283574600145812371321979063254228997056989629176610878020350145692682532544125989653434096660673403749417733380536049115769587186072124023569161602453429797082065630731101564660798572365343693050343087124186412729448227449851750421770044717993087450111654826333508005840341955676339021001621748448497251986060924000347709421950351618818704494060674709068882002671920618264331536028654255903570282214996553473724697402777570569314832113109078118897278953642509415888148429269835267113698856069066223964975878370734129129039146920360229323871947522583600393473984801950580634818251343775083585989604567209297658421154112696690564510479404347833505383459296050973214705165977476318518105027344346461970921758271064236401878782052091433859734684627010005000223879617053038666628315493109543353586507757497233838280747541741078517011066800596660407274895690542962582612493704417156023322647535753308889588108017349583926006486704101936753521353928616948288209130490631283940464356708726364845438086238743390771385342276436634750147812806533559355009681989110853953347254573388727874156692268567969691875500859148308870674408500532812609864573312026918992637790022733669890519018657462391097217455158945601838251804255033157257305495061275055373530229911478844442286674398008778362718648369233061219795692190360057263453721406493746957602545709928589785506418670751319966081892257780496135028397404751851379370415088926527494769339740682912676460230958723346750003167549501384193443847002624625267239379135733825320615506481597512795317470236980929554162289764712002991314536050156795863313871542387703813962622850891614968854398467245298299068091175076284505967415551460342589976221349005179323264343061463479552863517655538091922463326087563661645965769842247144709954742909297735595769347384041885178112275965440154893951736896830256648359438183388698122737638912429341654451255240813203490072042665404694467057238719822695068230958984612973534273333274370962613609835310794805079580678450464926083444701357947488312203147484576881263577821050308661378930632788016512484547108618580541332384514394488627782173191419756428900992280423996376815928210464795061778989267841337960208178281662792550783665036802673576250069750514988727663304147908912629971380551182485590295581285150225874628375296441342243438910440196751196291939573471708233561783509079015695140944606849741752540843959446610209352707766022725204430608426022844230083307782671030586865328173327848522112291575499226847465513435582241746367374377410000115759985609215847947009024692547212609648177505166205210663528205190223830983151853533109204511987131484347523740267567199101921809692936828567655334442003138242572304822164853244658735759880768608424151137714998469383664404239625572959760894588120921475965789818841640961387091511979309709407008573758996009896327884844194146438842775297339081207921362956475957094454258750410293841757981982137208674376261254518111634657227651210261846448662737392657392715961003334636518608559025865386913158756830276514878325693514805871236095261875934150759756414203439427788315471757964402258957005843640737234338565623893727972030052711723726881048247194092385420337575490007693592389286762834739645347374719740979304105171365637704824500457702286542543926601917193515470365847807919515189890953950867106217717979390757742567941188694980230837182155319212553827662927441952791537588587848242630226426461446741091634908507829821157411011613019615000631892953251559468051229458711472051652815745246024705831143313287949780623647320169767611041849256820634318129481314441922764977438050943435959265943570589787043078033136191506350893485846025648288023280648908233715968218611044321722660274784878293221070467959467740005479353473285109975220332532613719875262708477325877587514682076946632461352195510783623136157962242079230622532817239232249620338995244044209069434073390072960928463756319493228029626450427107327160677776489685494139290323910116605835295906073161329786934475527307965883429324984878682980071937977510543635750049065961507581249145646432405622902186290691306138651530363245588458906294504513626706146182395401384723245692685061988130171380909312889355044359732352215355185579226218162208571165854700752416057512352419990678392071452646574625106881333571907401498505070684436556141073797064816213669181174904435035032471790677811399606099888363977028018838059618204533903258242769979337086894017916934412475059538973996655600824032683545685103726604402928980265192695542730154288321963065466442990003116267187379284422952907538815417510460698809625856714020963826195276395236419890306869249950776161345845158861016252023692734545024845545171148884352414774211050383626160684154384929250006023402076416718273962982603002361003628217886720107704313079807414571455464519688290456669064830947124974223989348061795891148153356246431523267962587924133383616053210262917262318657542201315891610474132400686096595951000984712664294341503152421839566836425779802289214445784855287210835792572435914161501104257948158244442286235983112671862153463438777971931497936483547737139872379610513174937512608988104974105911721586947370961627339151654997802678101294172301248857167992204047838251514597825264804441111909903556299734366916694014238714951469427996516018429520489832858477380748979749721029542007059414814963867065073901182992428279956593585715148793305823182144559801857032536774463596412341143125633784537229630767006248850689841004078996919360047602949483394748753679910932958954223916458450126051746768190652433042584621046081590721745481570591617456601562201915271229600214054446303301918317056432939784649641775560297930139225862241762966227653259623400855541388952389723170347597623874181641494870187089032950804465507729718178657640064484213083692836335726096439325340112351672447682131533738778376835162397405455885728481637458339661141073302837399355734443494917579463374507870006807483670858849535892598112656248700908679351565734421431937001351904952612313654782272736907166700955188180801727221917927794545561279959409183518993579303839363434054836250873327555208296602004575846316621842940170723685822424520858024967634465183474226159310632119215686595036724114553296464799224596779873101358652866601912189581113733468918410514736798586768351013581839769249167474542425770965730792390602924660198757006516970350936418483949100077798368577472256372367936306641599365257893191179382871976205282697289012547383423736862848995151150388926022359378254672534011739623313471974058962699647785391539272606478369858505804997652807044477636622138792789563427404366122538097927286985002847104013135590525468264524041935438543397389269636954367257006210916108207188525431597106028539016835252874627863156562270908967707269928861247925537354355424480691060312770102208343045290459448155585511457425222514764686996332194771273159777512682438090951411422145023161580847365076567131163724546765937750901415645658799199776539050904881712965817999806673797447235473076608713496854025423109326573043381210795029168211904096637114945247270463707926826203938468257108492193044138860138774120881120560953473215980950712933426121292356891766546824082130862752634101363316905638760104815258404803134456177613513309152039600480209149420403729263510565010484568641436387874930934797963303994683408782622369017044987067803338218143225116569338694060543198938305097472887059746464324850913717816434111218358434146398123656917924321234210640257856141730046429042400381108747340916087269028888050774656493298270641306514126322979756535958396084823775426043916132951301534711704150829333048294126303241213060424875620251825233069549180861637262431859514142597999188478575962355389221992494837363818305237454278720877818598474769954798398344721500758500980786369432403248846477686301035371860298439910740065350300006840602248764894876565006001055029168930740220045543343073360119273563593671587695640177618557063195657205077159676447810685403650838193734419045988061627507179131631057261240054052569820059655427841383079038754212767271009860581221366858088230434376056928411855653395681829286842611516433843612358714878523774157913313686273720683813884209275979670803402769470208023413811331020404078941001582906785525798206163997523018130132943434588937973594858447267638556636262941969503564628440627784947134632191758875317482718654515602147983143779284146745431507857505562833323804947947995660547638626361220332153756981951999239579528757671655350788074766547109176263490831930563944040476211046258909728813373598325402588727888467165412622610262372184531000093580543281278997845550538262331262903962818180653425444395127085901508487374244860991581850773472318815403807004036719342064861389193694448767485563775396584064242781144127058568929761479700947451469342854833802614448131243418069609967780664580833291333710843677320274775746765368576826514784708716956852559604448510059365098104804941272426690023528766658085345570950724862377596557503828219618011007389490338058888897613241514425649916801358926073922449314897581340996108625421444149229050291386668518672382398235334112183590723986382557783766296695245642418265831294278642832639413873174013842892590132750381077884206702026480994913937111388393606868579801527938606395619542372387303534412658434069621114902643924963406297205101820265518963186863346065242381889072265844454301144276576502223708300359740260193114760350576361165600088442531531800803795978348809558313621872903545125180400000372108259627191307480368336780362140079428550809810251900377246936504132895181753697900014960227151430478746582852355992548016257892932321926443200886226988145159978982903397610480636057605418576756522888382836875551282138659582086395875867476854202556438313880084058067632566189537053095756108638280624481496213335202006221143483799891357159853386243518439333800342344494584647786614917145192335940093284802488155628642410820215869768342911475604660730867335458751948637563094411565413980000655271376593316776382389324895863780772313506119620461837595658073962690307887310517539185318765553325702006404928413053377627163122409570442377039035140994707584228152983360090959813897240476296804988714188990385866142090141707418596010871925009132976199756347057188875627116513156544130635352386782125635908323318051394814926482972003181813131203422548720071851534020597047168371306933437201906159617292550066179955550169329603190976400348237102104069954896284696629255411183121649813091250315363057295954877077554478353809400581907335495812418385188579448555439516021908253038102549233789693048390225328032540934289927224220421574897721020113875875937390109750007614756799610045564553750751126001625012824768916429544396499556360932944273998284570745632962236740708447437139720597552429998293615848502320750324173928827954924441397298523166857311979701065730631892687449566109750247269623379252505472453023596608939463396416021359427889324512666022314107603699113618014003988474099994521928572439895801730022912860021919609643144857919826359890560241798519108798816494119555080917280205949972766108307512124253818140751155514788988260977718068605362534615209834536565816304308681942635354576797443104954523931651789199110123051695557709701132282400824499372057224510308949797793155087005832665491877119287569158880214740456537339691604580944568487528602765365923956628563379598805081198983821592151285995533217746994185763574187743661908666567517550897641231034556308408552910596762795601967653190011805123563164536186179743180871957586766114880201791494116193368121704042906586398818046336966384575850675948762080544007547708562101043724209757497573946831286738666103672089788931008815511243757108139480195604224573975058142823267080251862091601827312317034736234724432201305644009584467311613576797749511100139063764035601059772995635097326617264080175213855142814433766771999378469182931224118389382131340431447777263149154255361909523883250077744002513307619407043714437088817641125838522527484392393966453448096727111528181050441435716847508352065628187487439209756101126301073809572334733831739869696459177640453063732137728557120320211225718247876503756962062042003275241641858168151757434826367623469036100410499399024684032537413460901564692442696869887490467309792838756098269983065368241119738264976800288823047324433468754625999491725417932806231483151705665283364569902552694738451624901974264844167157069901092783173065892739784057139356500098257167010236533911603554381755489457161794690381258838479378536574608585080996400049664097888326711567367284858287858681050069766418493267247924960157712041620751834079358044302610951970544253748619098179866874801989986353410420569362187200466034285862264566833530554970268698647524569609762147683548020560466581920906084410802001509850300923327011678745360965736507107050516019379143386349943428771081351713934169658322175811718833729789156241487487935981643000519033087926592343332189884713505663234349991838820077742025927441192910999318894599243782121941155974581017842412032819830089995715382090723594960881934503350201202713093108634511810477177964052128225679773597984939083453512914650538513160458098012204576206676983635531591200551390244695131649356435347061226665527674994939094295312505217246956511178243140707693035392236765708247201716836440964281121983148834156939232945679570052711632856790139402504928521366878143430737514544017754779301049992108597286730397635901446412869851234541957704891340399075118532787915309494464251151845116933241401698503190551095748084179946615205356265874566484750342651955658425574947220950345286485260430912614091980212279050036193930441730834625420627309037997541006054857134543551657562130473228352946676917459443698354382338480528050498154578002963990856423853682039229029981423542762829497420188596364397187509031192921982260980383627737563299749809557538212610711631335545778242107072518852485347810856391186996051264802247315042142135167143296532308390850908604485392619676805177273475227516953870114979861494473033090916519372392405320451372203281987010845958919297771364963320609131449557459246300650062314642435988875822381462701095916913480591425843572767084293043907186143279994695841214882919654842866733859818069819178339323451404182911846497495983477453631049740387790822183293747893773827989675600729364527044820295761486294350768202853924688315948993923207917628552844284680897931287537854690795075319470824330908544102598968499482151170661252468114197382150243585774647343124649937429487992931776668447784316751021506638774431134897158974517124181027903967224317195397353111154934011789318064919993979376388170238020640597829929125106563530023873599925237155746905412256610957404532029097830889411836134231428075011397641531672153556749878756986486812328450265937441827141988555418634113838961282943566966143990475639332709918060660195276796083858565261075694818332928045353672506040440911967188864082951990740209886889201607817471841408854916175730197588124408326845747703428443207638326327434668022909249415078129069852941936876031120839991125921559827006830253903609923086081500431611402300863812232163673191523972128119752221226836737893730087799179401340145187568614422448876452205743448675864352807564696346368298271517585667452454574105719220656607039098892898491472317689735501075532447520282072927428944936229171396893488630765267365658751030100177602494030427096271574714234852959865596162722304493959389815917756822067540208183046990947678014497657132530818063297185688539943670052690436903950582731196960268723891069664968557946084995563017727905941206622840232263990549665724154209478726272288545391439264180878592278516427738627876376021463640368527787500242546200222614705278736919918876587881743914590208223240553629134503781353472242861065333632801488998751686077831186816927905855209424310938935689172566107175672187840786587809132578264222613536575883938507830704309491351706395122435863966649290912618343213220160737854642460151538350408264074657945306797698206168171933869067781320622265381095881547591243773080787553691664287318523382847958139021822795583605635545730471674352415559583879914221359439035012123018918695285055744299308641457175689521266414407037782370036624711046521392389324431048221859454160235141538908161128277282566283812918929050021279833689205368434419614220812615138745012360266161560255450377668913979930635406375005587328473560224318262062005499165243555045606417206674252422308440498175321635658718348198012264716602812035261687358909129906305792994690631393732591581757280672957978266837783627371411024740996934685322464397456329053685452683174904195904672728367688009096988022245212415891262422548680400891655048214527220882455557365571162313522411802136962743610768274336490626094474522951841860385313746663633664923524631249452924077062895822727794775178249710070859695073871852266825890972307475287710860229749755415505961376639556544505466023355205978184958368018220081903884792143358736065609800502411406429015622565058401529407329962285131695007734555391987601268566037081780652167387456020742032743179646361032443388111090724974891909763008508739964452218992249624154362401248199490033978187186987467459205196979374869018527521436163194173787220770202844983277466080618078533139675022322820089522014006212320184359233365779798900102567980009274563039874822652342097288235236650512586123763422865717638470363826214985586451580247083287401676984610887913017698902673293658490046786945907016971267431031722951207190296666618667613361564422305581988006186442305524783562677326103677861728402211687070732633875023863766205515946564902293512885247834781087411769630002167024342027710187382577185215423567676663448495854272968983913750414340161903878036025060879275978897050410005400597773435457188603507198561405446878819546250222140190349810192990121078395184833926534553990934326910116189525508726636657717745176792371034403849211778035230843434871544560115487852439875604119106806867621881084308100599593044001858009470808461971100630726468788023639862969103216289012837201212944824123766151314149990080265165716848215634667588606204474496850034557592335541367656940246471878463203101387883212919309320111055708806355555336316996815397309923208541556485309479515899241904552203786534032908892931731920064182319669207186734201262047186656984969923363364518676392026247364020177428890868266707059283278599833434115850115897065706098325029003473259229907837043402634588983001142480657718148897669073877024699669456285592543918534106851252302857834138357133311615546369502219068507330675872884178630156453513806480327486049771814032845088716196530474125300778160986463433977095213043981743431054620017694115831546412690561009291236420635886690188454293044568592350412687781397182173704337507638423077687750275648641864517408004286311449605316185809756945927964598933619226920122210552046552173071725218943902589564404598716704384839609150904307260866613650224861764986424468430853441721605993604264228434225422937041994238152186416652590750617296655226998928113900537444023461086642029965466264670776811110353694256188156108785979130973091861276200848251971333437355328309728593157513087800176743381188254953348817592427842813398510106825813455135824085333643165472861176651348667747353476228175798237475832499598631811938484847664942037251097772054387629898099583455550366094070188327631224815251432740392163571881015572332644184263834803556864203323685931764707821704710202556844176067789203874893240860347348492053186491441632766259431572943180171171784831860468123262150445736056059457559971257596681901024800570431866670218929823037415742364949081662901078210408754392612430637984815003534652186619578805047144133668274075895035391840591906549952851734440200991274338307736842684318366630029090437462354390869761668381869828773631521105306687026843215659242652612813945298428270193942597295274496521389791713106246967921675001402275881314088319893742859961479021182146465384336610865931681094505622675628757563486816525155446087860494413717411851769900752028167960208249280764359531895064149554044154352962998866863516413309072671919427983317638268043774195298932684644653310676070452814532278438595362448045341922757987900148488117161891477918124678050835130056723375196650909101381905732566031019575957140083692967471764252051898963543386565996317464870069519819473931419420926563342408357386765651338605435013294556696467302376437423574797334319111895596029215857677197289903399326453193655458147673292361658362099940458444273175672612419253438245810722474718847279038752029491503726484913760130525810616860208320402188502509298897568201962471434963834731811757131175229121503106533405383749921523036864471213871511473589157010908917067802406087840915945661635121486345456017316026909306239526727450149456892735451812217911683938986597744341440406581523213886295384896316897646017645746227485705516651916473656676954053856882108213946672836266081884045270412436444363028222759970122416876515940082272785582352043221492849640227167779833693341457271958942213426518436348770940729304520973752016783301083317799258302199745368566326642831120218449470459455572475147361647006843782819596629726865517018872335250178065655063292013033667304625147854880085204567021111651066093992534723304846383669392510371499120292320881780578242450001334191561519023850073980315777018109669021906811859992845387589449192429105108449381712536327244255672943088764794719763756609286194276744872386163342448292623489257942706598037943584364507402039312922154585026468089589234429455961401142987857094305083369863503005406684650147642515098814237947485259871032211112099801668245660375248373395659201594758459052537194597362540500993417551779821086846560422210884916912054281744156376443399433099491516488128867806440847251352018234263099821543163764864425413610963253335102561818834336074758511068990943966295459478652627958658140392899146078829814240526208420814516768941665912874380976558061616431215639996139565642453010988094857166875008941950596397720564189128149987734507893740755933530081881381061955311367144847310635775362551167989962127384794497143628094980597695734741738067806302435197723678700876339188993717429425964601715935603907225719391625928480162846205811342110024431018001711283447841358928370735562173829409906867228318218072097661137401184801241351625485574740134473972622341682164694664192734377777738999314499167653981978999797380533560424060256761479685099052700862409245681774202590185756047225938436213309422585911978665210836573577638788623355131406076199256394800828229004186560407740053853132855430217707290378589715077547586123103028004286258455313936277011006616555161078128902181016675098217954190924285714910892569987007286027471215673096018831538410281700969753868799699109934458896002386202635497384972108276650085785630238646354607491389310064164061274364355282295369339521927348238343212703412877989462165234601795394205653610914045876618897810272748277470844432966581877641784344816576840587335494368087163669540052539964138920538097583930317093638395540495813313154247969865603539113245718702600393838142678478238419981952816715431969007167624057328131298622685204726941181422886939739067048548142922048795086573574656476889263228086489004398156497358655616843176759718555117873386587933077325122249677989343883346658871563112908453360860869929307846436810487643532097579801264471505202645048211549730926753564690613732034253058962474057945918044760871779577379459212556588712611829818170547057545882221328295796554054113200853116673850858988475149249076991047507912279329612583570487659685970048046387991946441857712035268444957453618249560324412333691102955609999713846246493392261385251638486142569848634460856244751356121786025082331374178077224149121372685843577380338627714456188696196868932440993380040356813866598118447078426455279754574094406595178493307193946868774354435256283027788544748105854881181395805080982917012961533949240294538263966711384676812086296584969837975909472165456348145297738185255670190260412003862068277716139691078624788588462531218649247412072102424827079924369847233837637541635001749166021305322587868619043738835700717770633122815813313012329246951276018797581092302249770444038617063889551542023794470249657366896492841269823741123424681323218465562195210142680523246271042805035827893811353873278411839105231501686362042581716862661498879858085228780537924838847884928748328459649807102446304091010039994221847418903967257244432733951081398059988519715288175979811355781266810725691392867281541913863272855836834038752848849061599696131843702045650215091542279334714899780914580441027369559857447833175152418605283721735433083357765636596485185367362519864207915193054622424935861599415587128947998131373918482944541667746749357703663012550700428430533048462466077838142901793622081716051465019363259038862124583937536187668688242037305294392787208183617146017498155662123278488148005931916828699453253595944865886938221364630567903489450999714003166013298986547696239747833155963649089929057345102886342828003392380860721969048805317629626092676405424115437377929798465013363839364337110128234916297803941074250701259267824677844663255138603596853365792907827313059755512165323882457896025820028043619875353767304596515263078103737917258153336742653243834689715902938623735192722655948417266844833380302040763296605005341136699136833235299865306013883793916635163735247070658673967524304031866469266177680213524366754832121611429830688094409050649960542305506989469378776942307196146839727348842068027118460090730974363064042719034816992746972751886869506317564096692498152618138192226420968417187616838861798717946287916243973442142136336463124147090069059599824666580084144302982544208217684764856756691691475660628035826339948044613684261684102403582092936265332004704476324213653445251065800624119760911567762251188785263866679000498353469439255854542459605599776175283532583450072546804974896965318067001987514441723937120964561804200553581735934424147083604732571924027045649593903666712784874915490940619243401073881420233316063319206305757827280112497970739317909187648676331503685191122667534981719256382163912662281896498103244979433870805874497160091285817992994223840199062361607388815806290397017322099121244628450540804480976535427539869355166184646652851825561910191177144831478298887478894488415608257840892944627313262327376541677994093667585975100133692057325036763321050473139143044330104523244811278907311881728209243212752623831896413601921270494567796615568805993278553128057213836409989713212627722690366756824597859328884091642949023604223398872576849371536511388446425400558611907600074106771190042514143982392460377747222863835757949256619170421181229428127004653451002103805244175443751112860452697907912652388383820079099924245254626843119882457752152791798731703466608795011656658219192505437817909005446778004108249337419225819374764386331440032957867269512095873944395299596929386251749487424667618756156877359270952229591886492821052009497202815460548926437947452721784272138896102227213657145975909468527578863183512450713712725389663469064479405145244864581484347342014249633330768914489988868913105312190523015171633396202647161012435581395697368637981910954236199264605209161428843413151453705949810402278185942638278601214149412160744023406650006666110928702876288189415410456314275595071631153036281724070057139869178310878325641902254152492449239386897185564430513760402682832919535510406958795182656988421425255490500225344388764935264609908179320468233163403276022913690121717405829679219029572114730787801134690834735270356065960277514286807542973737946032074527332322045846281419212232147120227011054079200975156531509928492462926035414302116206478640113667684805802002720770118699327692284661831139346682933354809457721981715884898925263565983076238440735597704845697328316609763965635728976685003837891912413572474921097834173060692506462221540310007274095674844297087855986539485395232840179738624233225239856629854905513768514890414107900299354098462871056762505610574799522331352543753215124779473351366335971440096286726957574286890027642824368378328762540875068564097854380259910696712747676785580337047438239195537175225927760466968255937451848014830501201966776223727224786318874662545695397167452529661672599318111468713283751885534500196210508804508371537792060477351137259378585728625306239415912044347112215821633275105499873346643148150308130878273683885723887927759412479635990516396925332752021212976020325972336053172307972751468753027560045932506714057904866351467202651236103015465479611279468457429315272070084099699768038186764669504919763119537985866128619620641548568900592964988989247539903257799841685653664564266129192800724426404620468496533908156974987593814706954576069636682636953974297558172794458080424091027785297938850146488718896244010642039759741023938760231898994291820800763807786221625931114085545920312709733410267367688969678835276691991510770381828733145312090724456637506818829601744345567942995692518112632648339807900107965482222618362161281951319868231125625942662153484981501406346348624754534928816538424952411869522443972035767269081791366233276530547255549929415278882107674976912661172525144771709865744968156200685400525796389327714782721446884309629824904757873959599278917980208079788078796366293571935190691454970417051157155169773603368737624138687641987793553178126605821442391647112172556428455500197272054540190505605404830299679145093901701622784099578333275586004550269370320750468967665962611552823482010790352512714788420675977892798594786461010973703496233582345972422909195866499308929225110412503855170330047608203705219688978335364413858918841110889753648236171133389084620084685744550176461274760872179503356455042657221262244532381266404782090613111355191726872417477514253826162142193517578891068323569609126556372921486003646185873858248338002242803793755596304167251478204709149337208019265293393499043548894544796786923220201141674039475911562049660757581224675397076721091165825247192745724123626407394875641530943710522009797744931894321600419317990697428418789769815839881268037975424436591392174950215181516037080324537924849918418666024391955320174041338023150752941430924596841883437623790013010338864401673227227731421863980147651301803504957288538880609041042556682682892681670261976079176145139050694509891836188168951341664654162067637727733905707119825393414767312142113351766894705313134330306558365409547452752996209990777205411752920577578258830034937462134293199907573231252946448682545833238416983245160511028775541746173999384505219241192481546286413707217023742355520055378144309718150293316964919175646833816372393319432663841422413416231748604466150074398209239385998617768405938436244901792250921856744220589227189214198781550847317169192342157517160765805276963280991012285663304368664135482537896651515858024196269562586552064877775275270610129537723406595389314741198438196643253715326878099129547733839521095102660931522033896609641988580488298656961511189562438646167234114374414073702070802795964258873740671515836584318733231840916529006239929686948093914950973069931647718980455599292251505635686975429038502350538377778013207229447907025364815519721920740672037381252035130319879850842626734322652426678689932070328754952529080776644218216279466390490856314850815633601043768316378037578880346645372279945719709848188716471060701394319908285908059746656679788401740543827042057390095574763912988416750691860362148740526678081506353153939361330087323789918260035301908480025523890328366314567923503907883266338546961793458491319202999353419008591106270045848295703555751728435080910302294440422439403644445161986827430126131120690567637685713245460599937741222456132828085431388576010062089535325710353141449545275544607983944901666821286861344336088101337020654898845436874563951882355558416520754658064223677317976254239791925371920272712287000964450031936320730648670343204268006192189824648145636228401672776721463855884579405952288778151605782778188134482116681353269560427888773776414438593492433841961871650433390493883097692444582281564377816010294995787417920594111893951527168125059649404644622180939104426935979553546149821699497728584422346876507854379027373643815106811489205418164344946715869305030194289082285458946025919651999947806006586342941135991418452719324765293053966771085304638755377702817584184845178163392012643877525495349022079368721431970593131622977271337094338414618441585598144749045900398526562691342678683895968947970804396902644339646632650266752572143738267024062939023725402024017219580846453610372244832833514300784244918726288164286248675722214283613832501555435002343656819651199555034463711039710293005691395936588997797994588983090555034306877444172359601000340294503395249012614381064194392396557394177610959939605912040899284346431920345313546379063424328732560349767457763634391528200760260284320650161666169343004204900729648830474135663459181727012564944292733886896854144063792082890018146062620582115741988140974109587760808244310996604902000509841000434594374472007850567576039940221046111953852750199143295845533314105063850361337874018874036541043755403538383341866930632092721831757236048958168577501312230080745169353988277492425433044409596720390912451203474766521111494339255719240207174192582929918851802205776452522303720175622679139949487831612049750402163657210631268291689856267381962678683961197078146972231639082876968060872875828924508044794397832111007500946571116837782337648493270781799809811228109532967096254220032403898251531939373872370255469018569674470645422584726913353279242346970830162583397438254622119149208550489584086098171308134871002227473794967054502196899032561748276951447734017026890542743013311987865075815592553485763311732431212926182473614155082612444333247338953630239979668735959057274922628510235238257476450147890545531634104849071170070846147062969960762336150017571957578448604288001141873368513049090248121362287201632018311993566428786201940017120230608282713780676852443107729386332571049359826043137879750045233645710470218327178624945372100401617023365765032296661870933727971671005525917934990373074708953878435118114595200882669769629656104949887216948850717010977649845748125100444372186984919307223836120072560757569456296072872898660815201442315284777754004719967209674314485475768801190671159147411550935227963894106511899226423896410796586271826403089965161979316747331903562740992070655562550696508917118640332098733509286944387623208486200422045285290962027335361889935730876399909143333535887415116625045909663742611745539995336027328310832497213589447019605966354542329091203267175668021971586504276116934670543779169651145850479999106963344042780744562406017310054357229520700206072543760085592408732351493179580034740169614402729157461115959140546865857373708034932266263410957486596339009831781410727050244632631254850326642173853666853618536720043755939131716078896549124189991113910763662189245882459453175023959316803287793494300976355668864822982908916276968171308306013442387150130295917970079251358699546488880793110248804247313579244065842908037504101978420917530144804549589521070946726654493547788269966139890993659432825904604273270097958776459988834544405253461661366158404855461634973659270431478862277613964079272779860687796237660846625979420025970909158082762630833604389116777136676079763320789928127551003121452505386493096933784990902507654296718353273345506944656269287883980912532161755699061953955806538936459430158441368871293796763553371924063089550354775774275276769417933471811314531878850774879731003342139485285064588165626960118931129974937548971514283762616927735494561422817709869364835625791981247605386095481706846065883662182545126398874924309514528282272380283658944818185825367802694302658473174056070009644692238006464126061275120083268476805513506869285404746847125484798732045866825180875472995839801207045245897902104461832584610696562813553058599363533047546162529143928091887408534606242436649043845534543225013762781289159135173356390016292642397636165548430705265746166598740684743629085268558648654146956679774606154665190804010202969776331548384258409905605166957163648732465251975189306416116559012160067643935319076785713161590513981512276247079747233634789605342242856450956509184228935672257080483799187367718041101420717329396612549404066795411597905297185797010640269636492181879861634122836968586022726879509482714990514789953360474713475452235414368551804692614900790042505144453809182390988383833471332604566013981471840015312230108146648773396449135162131629232581574473306662987209503591501954080496566275646964102308897297145268158063322795453775177260937913048871513897500284337008098803641964667125137065074257504078270015553551611186102383838436069884411240141253541787599717611759272667595113158589537129570353849207087419148555912221104318723226495049101708102433062709277869681105997201949620628916379677224212790643675175964624066572532907663782007433020460250024522700167740218261653245217175764826020636627014208937127758399107649123191661729297672769837133641047508574556603810252487938695801078268919811222322349855956998874552564134267671627346111221191194676986710558738537042834123293216300564052565259366414173185252624242806399937987493670112637880083000646911524520875904403016941884387684676868800690418850763906973923329123854410625036653681176999598737039509634337183627063704686491199709714305774980587166433591313314738391276702069690402237522208136024129698062142162381140176897757594457180326447913684597494270121565871420072373998307290605281029597203216351502027271426426623995287578419184819216384706178769245621555976234251630761058049965984818776030747281702957456340690024033295373020076726203645232543961224751767433637487482149705273905874196544510260515558918595548452775238093862853476735796659199505858437655504574117271697858980335699503818028107508223415157976417987560445367875038210228334683250121994778714828183720666922675101674314353141341540043045507100350315487937642457113415852880724388192516310549314009684456359611236325450610521256661569464625669931308855897493419305066686172405068985870666207011636487561278249133552442449938805186867041460232706456928394753236206237540098210722234925856239822392547891682018492090138048120017682728534323373883682116449976067432567445581476423732546627856826684122623663497254232499593958975488220111988313050159429562866469801902411051128090881505876725441851115764737843487668729502668660927798401777803234777303150210516681669926604279933388351353728116022166585070898128722823020519849714777680228156459949419813596522117345104269497415080930586308360503901483515942518154218785870699999440469641454488921628521551292504316868466723149267826082880735884916105216289841202577823498762183923205260080203952231608371645309581890631784219480084231493451567061116260092305126422435039717911724726482413919723413552618644207068149094002101008450726110883720695068331945041654575723293811028151604011987116922924596186442982688005046374608699810366441756999442792797811257885217122255329948416580711354529497168121953636787273129559687873593287028463607457624626750854418014359025466685213915896642616404568219869915007564140311861630806212699314597063515125314744813901979496482571470702467089895440169618412964274227400143389969103241275139050270556704902622944286103205137118301841339824954329477317734067788332109384727925080763199411627214562221919268970998692523278865741336285985483143172862294905204351664361270613903579288813237067103147971169158099273506375012320351075550812876514788469786195874889701462368340949863299139845494809671232609133614590069966152696354126852158000622180374971408901277849774880086652950697015534415782277330558398575594157083324947530348561914862695982062518490651175823703214211073805457772907125369786228874820642675562814079518895239668667385226444079687214925593430391680442984316381564144373178278515339813423061910197614621737370579105265072131126808199060708615248171592254259060156248013546636688294420593571174755800016705652766086562665443147188078817772593171509728223557256747378716978016136263846984435051675670278284921732109290038338182733155508455205379394237554184019129757650083473305889849660131444617661263425307088813038919742854976573461531425214363168965242166143140444149659453749071861822847427206392991820579931707127951139212124635618003024391572008843076261745420608812492783864011689164174228886096319544128239772474154363816490777769103403693455530294294672863856290336064077936085948357543053984726520312912773677880793278391018311046452634487047619303224102180335263133815989125340900772234044404177447658734407774043448080886157404789235294773626046163935676268609399471824431725900133184355893617332766423850495126746611401502171438224471933496067696062136582067895690127568800454548537618888896550046746850322503851935898134867135041780168628528503561424851298329746216176726951536357361692897030987139738570780066296248452428978607340761889190282173374977731950108362543435925113689522236203092808292952994894151727168502534033302792162653844204127474069941885049246956550575833091683773322186779595827092348300879446646353346370633726359042492120632385956375596876615309650385121674724887908444562551532373456124392204282740021582367904135133087305135736879234297486748807904975272544753003590094660156732882299395265262373431681931511680197071310482939777320119026878468407520111110809183436097894444102443215711800822778492140973566790745697861519797277571920224214411907708162163127538821981446265700778956931886709668558002626199735245957298019573769614176633084104045470036909214243002017822421480542828967817732874110292864861451876141404420019054737024996410636586562260577284570671484215599388442249246644671193096510235677019984223033473954430638282201467953578686095303727023648179102167542047574364297958333321430958492876168955838388125473321050751697141178947859214283301845401729323114694643547284647739539666721852619968966839722717158468592791179467468987360984491369415047516465036524827119860839080994132147180495897644220627668648503138277902836594233677451447844198165847622778016430483677772005864843839594468233041370549816561690427350199810944896449329302203287780669127172986267525000705788653316322731125741504575178086333951867083489388496428408713833530826487351008688059990455204315994856100806739912587464937117393601372185818471629183742092999350202763039264555558711085838029546816896614358843634053922683490061874866110662708439449289410321439696986894325097496161268445578823301145255586432392527743853131559168634090677200318520656839202393726376852717564281293851189488727448394276794927592109987518637499901689602616625298661746087564939592681340737189344883715450104867612360721001999822015678613013697947607315161455138275294464760841495222469950716798541174213254432905090571524475806120922091911442771060896064083735720298209965007160374632395891717562157285083095791246019880241814843590309954829000957155236703327925119093615496023186769826360553799489186353084067024116638272305179654409030584129253857385081305880440361517515414304131127932773569378889134076966799065921342973494504542499615197597359444653726057245214757621625448604406099877355784227269281203827745373922597927583021044412479604951040120566235471970579085145399397644299157728609762448195408427783772678031126743553685945978173003582718340697975486300883779986812226183424434790378660370993945478465939297634897861714295519048905623433837273509508365427031024873926442798792100943053910549270230068306557773483117081990689251745214253749624615616315806772730592727985334127697364543030748101902198862097177817436505978614713212540959244596292176449621914737485537757635148242254687282894541610165542870357376157379734485318443707761270683442739433033105656191466948519904094358900966355652459207578082413901039829050959395645589678991844345452262915761979776731145183710651383248357491691217760331607929410058643848474458140388105153032798054266392295625877812195349970577649488499681953816587586991741161797549942350439515409905358665742915627663523645222576278128027650742398873548260334217563640863597280392470373085868243327864790994097094284729955409525395242767937899787405860881929146970184141679105662202943536184778092950226418167525784402764805790111271208543447855808459029531172805625458595921795988165215166646064123034986319784618363030039295985757295418990537102869118299578142303742395404049109202663899594984713445057470325036983074984379042023576325519347456809174956167742739145965745463682314385862915887650820083332848247532845338394096780386133094391377724570558168834505885139874093602626220972796426088558168469656556610738481334345800515356775132624080525007782412474503126405234860925527440866325265702095312976281259685715336907997816782010547357417658009776830497947546667416797959934971701617905940096109059398888156306674594950185795383482140383985863342260410821219387382443311107421135202296232907350857199884931239917407408620141474767304541736499298995234847874245757261386567212184258942345666659173103750866663479009681481562091804997149808568218765948261218887585858195087392334332686562682092008236057996197998345489928550298528300827569047469464661820750679756868752791097108073386747917689929150061296983364169647011083510216805890219976465242038213808767677646936832704562826818868109254139871931519540933684175987772758867469098420832826666095499426885068346359564505585609286207067254486458020643088483027688113839221012813758854311957322679823428131197557937972389287180833208033071211330048570744413005136435890490017785704125355451996607590415818962773829090007943849341918428931639278716651648347196951175430016947877503378927018173577719338653470147068368215741294236906717461544786011421949359646923324124189776105417281595636772452136288733227225412874182848730722496822954737841036958895434099349472869992935499760476350138885548736827696695993422997212162010639666284377075513536365152465458595532714851923665857437451382881958998172240413970060006817042197996566677528793841272184218103905242640348257711320191480135857452345129083383640678370386141548189546619011809748427908296807843420319306835957739212117124070217738833812107234817753130328422561811980630091989016346459740438954631292701204934940521545114920104635872463415570659733219508878119930817815803064327137031526368530554074292740644345107299828045737350034284529097101332226514514600339431081277973184439402441977081976876935005953143917182708900428500620750430759882306478417792468635251216774294902801112121305797201363118060421288066642212981197799354968214270001663155814012787372192319743804298942453344085552780791835331200072474481874832319001440611702213390318739891609202229963176368856054100127155890140009442713146103564509109271837521885760148698105133563089916198562421889346041106669496770574395012567335421703870053817564120594193954922497407670334219509220592760091602041016755016987335460280463758872217748357457687265514285055399714367059710273387558225803179306763331010580390176773048846388941450095644764440309252261548572264893917012928440608868928845717150054638224923310896439597506130587748596064399553591072145712108443666229037420795264841559277485594588626203461591683460210795254283520763863709867570113437792095827807192950740193768407009396076898196048715278760933632089879688385299672068173063514215610716812798347126166381571607417967895525548471548815822914510527138923054174310006969113497100401024262475165860341466801542695377338574349304863775994412271987079753186611759668982047381520335133501059827266360209502146165637551616783312901526902663035489329061464452618014463862599857029498393005144094401192555657261642212062046862749434682794364683340278144915668380772706052870735241156129066712598380164422536327932612465274924037134518773359364977997592489959850928242484900690094603954203881450933663451369288895414696403950244975643125268492408694624715059001521215139842790145165034192706516797018346477292580494649612242223500303681955689022612204740600324469117770279492221061130566397153122081483193534748825333954148311527013067703603255923788812624577290663476853925188338884919143322540358254692499744524931575333253137582018319241040970860978382144936115151552232328337326651372627520582471821774596380660946478893570274686640588687624686953699303820431269402046789027888322009623776824545428490781027693210916087837996458146983122750617260462944165388557945722679322622963508619282784319366253878252154331505833554089400325571962035703744381353370988875182986953389784124412997120107315961085832707458576346329475685696372203968918977162197964261924710007627247740049842249941804293320797943595912311117247115682395431025299874402948318617268136120057039581737260263397771476715375444490973688099786272227656376545182577241418237602909311783469604290710893081832867463687189488271404699100622085059223060352141480043717725305509332895733333606914194234240775574270859520938311939131510864496885832505566429683883634375909403314257933357409127160215145660515301433595027797687234209900127374109778357528735807237100143346864358791987777126522904609952500076348600635043201671495065883837669178892127866665082958028371789737302388836719822775471114041034803825270402120844900436619833689291509650406808310603347720544772293924534092971141297685387801663460538617834475949247460763662343950060267975081295131590977495459151488998958577246720146018287252593971713354130025972800546961179607326490678287825127969243474227453360857122235914595263817292635073355537974601855962228945255558715156905729910634667275530027242598579806640803461089143051697858732206585053573656515344452711988117125540309058803023238775486416435553007494540481886587834016398261235091684423509563094761809000537815678480341151783516756329267389578498450342975732701006925912396258229405540444442467746257353894572650220546547047983940197214174686279113629960920680062145300637285077876922022728358352412381208278485381413012258228983366448562484424306794940903208938411883284052873481219832644526344500252241088712982771968823965871727213896884493154367364232938521799576987417343080140346398096826379358748984698984747134317898168196362230136179901118823494194071640261250799824788705937386814515442973985712367930537661287444518447281571921592987497878068644119391974905564979555612156911282680219191258120309909940624405362398475946436392650237373959568598683193396351322184513491541647784870946783102162648407428154175956655213772039948990928635178151814641742462449921627403701004551111539715756618525653331084964880032739290265618247880878944475096558679646216647562690015478471517815066824356130781349653219016579973259587566924878927726175671788626753175208738524854114707481587729802584142744614793340104569471090861136007196286689437970791577164474355734390827288266299143442002281233370357996338990817411228138764695489593215701401236471114112812273340022320641772752722437447039253806111305156233016945181267428039896553131627010402321872585397601744655380345314602671801497874302537575603142626168593093225841594378612607765987060580854335985255824845689622833878191351337761251006222499122259111706447340781747183754579123918855054456997261738406645613621432292669262676730849440121943183455407806824496998387299106172518822022394262673495480516639072420656486508392752367713730649322183192600888122397770571782684727621955066682561825164161141002605059033161488822185966346981406408750179199368322892674960305276507916190676708865951373478976392386031569109725254931413453822328432173339226375271235086257774678028307159228618854018235592566454824796317685754991066978271559277488405760065973767548885541585841837648529591330879272869385328421414511892929311170657896735320107991526747093096424886452778547272142064391989373899522144984719071184436048447230465774909807067180818945358360674324430618563898125732252031664913363375910937155023493217239905465943585072122587663051005504501457220244831008575223130393797147076426741921990703837722682645779493104948221940308320034474300615259759998959173233634846862954860579164932207430117698030299604419950417870163933283616253886523879757060081787735542079269752025738317621363556514107170049720795505831892070671214792765836889156794167221500937751690384909591292498615646025590903845541026873031753803594425931958844685768887308374600925011508581429717813571702756725891966315039598966779635320985186653775059743121378095525653543085383519162989110850618103711140676883885983263544268236727070791131233607573484917788233906670529102230066065323315290390732602705328168762126768226522880250745336099514652817396447528354781802689076871287906395329770874573284013732057634034739557380819139809298355337214673084363772391282782484647322007514615543642506414443128933694076578657723973204190755438567194957502775672925573940331014919052891569132508240308314462559885661003391380782376350064743801035694623790793467017243450726959034509774265036137578388223390774166896824298741369847064638548458186924174309957292193609216728684056543566276567134535547670844672599165962643375869405841886262160496806867380430598516764828969957397895364746035677464373207889833213370225192878239158391469857591372130724928032855068491290037759059610943436332709153388193968716807223511405485833750577142698472042447663287360713495533017191203343338509728988188597641943057208392647499680403990270669238555142068543110896043015693773231883343844435715986328554054928520222644210957098788691233939981590459323100750696624993908971533935663935548047323326750745045267782403268844495054820617591899927025592906781535998033717580237991736956281483605599098331800167889989993175232488464889239415611450361669591310941160200965948856377202680429881956444115030661073404273947988017309240215216102934538777259613792235183229805674504357963299159252497675131886257511833436299316064228782912518603154831806048681581193983892182869525113332264433002640017193871427905636885172836908912840802946083752746675584525696341405573493919818416133636627625973224626218257461627011777985676793669479991547816609795254663164146380224802913017807609831471582739042647599323065626744654874332928397425911040741585698548877315640466820073360403374732985864860540037476452518736303191758195511281037589727046702846645927828094123670871337371149376463601075162391302296420755678872766997980626408073618903384539639052431520580334769516376260235199735554118831395087911377616039449150911530754497524827846783718939223506648051312940462131312772182426301827978437086746709219387587988664964425287569543572709243038154842278227302181804441685471049702271636425440606123461316670627869980017791514586581523195505670767062511677070219313623589440112184642496095611538636613447317046499556791752897790157647120418905912297283496055051688884243637374797559396425106435621613705455501136850138146903719265307374483181307968459347789173633672847574406460675171595069521054862402098484121850855208688804245169816308301193777110855482329323896294354790649402713520343398898739747275516573391660027594006689181075543791477909622770215217992649231602722511719696730086022670973867701004769350739690824557915263894289463621667184028304214309959555654012610399072113559996406476101252900568491532673500665851514319781021208150497389360169704995318275065130150536423505952221730374221122312090817857180321383449987630429018296131398219380074997300327642706202524104177734045512189571375540318745979213358350729301395372952641639964387621201582190635069625061761075401477307047955000490465155054040768816765258811566168504531135200628618362410723448887225428463005729294770509380778641330228090941590415300771604868445349906578956878035323155861422149525051873171583673311128314415681625298444098427874983840674746859096838486712098663079777461470813832104649613768518278921837601689815545942006470386263590136704702384396223591536621532532440923820318509903999960007226075185639077112812253853258092659333231337392274719406212293753732777957082645007337314301094867365040685242357618532632746686222437906764117294447622562339309991092961287752445124859997566646511520248644481088417514200540454123192597621540657812899731970818936789692099265998264132336051770251486812080046608154470335363021801440234115238944352587004155805814515891926510632977931333518931931442856055059352392898217127308558818902087527416664814312463875750053338070169970164473350653921187736232674324349260027779268414998223383180803530365015906696415932602697684787673805998221669776496092776732022902260004448003891829057003816519965640648264467383020394415618883813724017089263643258967012503048155366801231515106563594560251494011828635663659730658565170564083640337882783190141174654675716067990840286578198941390909566107671619020189708647687467608137307999658881120110091852911490199277181809989524659804545597816779294393818296348674129562168308311933035698535915923264062113451997530464843093724348515796181214754748445931096839801347183427263934908699267460924231231655401767815293021107971349392169224218749064463021913368315247464507981346880687627125695580259260086513967757862852923991139108652969000316893771740723709547486819580374160700746835883825046393097428136566300889165002566433887761222769921751516613899585160378953865739507081482716496173669965389864097329240368856146678117964170161772906793329100913329588946406910618324988588885315784219496928640849159843199915009123649992896993793626683101947081942710925604610621248253953705570404108279098949121584369876712012421552396825501467399514522155798541867918743426435461381702913113606959947077009572023715015599562072057552321369234008999084344850492751557138464625546307396210757096658245185061071920409545533738147797729121223413882658711271145781328410137721201085558907655798644109536252008906005913342086533908600244839689965879373086655061819029675117375212165463462369877877983529315561033390545656721623059832854614790132558622132789769240110043593196558906433760017584454991241512903612086271645902501964266765582175640549717335624891094944632078856936205214683003179117160581764847869859588925152899974886561355984514431952914533986586307328712303063746702197103846840711610213960046913078420011597556325213548812616683376138050972641461170042951749591427919615357627114441322327721047021354256478532462405010459188421950586929484388536854201189416705757287648552507165156774949650278962025911565867134164808323809738454403023510908141510315479101183740373114138742565812704802481143716787740617673763626193647072299592578707219612862751661213067742817128581998493420944783126474047680574426977281064679702309201784171284651870684441937797717512429210087091782171575075748447613935137346493590463594644357263938885704413968114798301939077007245571576918068623256552784662641661264212249396045475078278790426740635803421349852627558308652281355630056164693983770818133625124998321167048360566840144640732104069556151377076315827485477042493439091978886766441628758418911988364621485850860160076567158305799840271024380864784080179656318916002088805218739452161866152461646475179617595091685584413683543457135327344336005088506195258507314886636723008758856585193916983701221844178218740065172969261084920743690141687526691852835267318438790636503128163439217781843272314873695434970609487912100889322070329084387281013389530277271610289028040253481986694254015170376600108533928678539401692591386997678178705032544664197500760725793199945069666005762280917741708023944462803883476405351218229436063205129938712336539367263624247682027038632250588380779693250578103930959173591203595790342378706315754833050500194698240269857136728654975263073217301707449597582488253971207718553082491010538767168406333049973193350999714244344954915765944114744441717979208960591918868505459950090324793655607461382557221152924897926612420280898767743200364063170954466003793025416714361635735710994429163051623864736658283126797213098664130090286008433624603635331987607142728284969988047495149565920949028089541966645284911100225226301096005784418292063692781876321466554828823769103326270820512935395273713487901167200528563431688837492060279392835573577661028289806476524924916160501536973003198948535904954265596878737050342083596752450758160751632021148565287167883441707998958034157560489447199387729032315950614201931205125089866131401514543872289735552480632609458379942775134370912157802198183342490089287625525269729047785459289298992387027666291461334329383844633637644102902915782795456399427303265471613241747706183727034477450964030008210454161112944733623589188277517550758020623791029738473126699360449307569295548625888807652143126335161116918768896458163175542516910345376188989324667716299667440184754107107418611784919405571874880467056961978195665526434962622353725373895842638621836492309333852447928273068122400152722297445199029069255332328683370971573182787900244089648097975281805859617254431844938032247511740600448436238355513035387250109551483139649189489200760522229832768696237349519776180878095080080741079206342091244265288969114636987870688353609473671446201919161511447458782535063005543066976819208803621276467595505506737148187232616947326769837130469206647319813487856728907721094687241939001784644937464120982621423514681671721218606711311105748936102034679240876491570120258592379500567114206122935745507188608697136583336682412565753390337950561999534130991576513283383624548502041393052230876034727851690068248942511012015275840478429070209308292352260474631521876042354181260608249821795533868852214000708910393227295534681031241848324901278513054066668031877767955490238425616707718417038203340056856382723232517004944845293507455094033578379578634611191118922678742296037656662496383390392554579182633857453444653529435290458208747975243693684799194075744339914570767737583150576800467212181368901402136649158386210410244564611525816467471805470414749115766192763346084303943909420677579179028813202333044626185776209587680527503960708763395399334160462565241611311507743528139119333250823351168397783742784332503237706168338146073143658156658185892069161440354725836957965951915324391407110879282324983519310052402943343884618577959144088209715837623997000980083319336886413416887185496103319812530650173648469319299891312357659187623701175774309062273924772599828268648861663895769780370902858685513141341126088782914789864600307828162733914381407567082327764182926951017086448329283974584507983146445654900697834589995137741010330287363996499666239325131780299025765712699873808477090415668360737390152773625797281293524905333803651732431788996008854376514734072104545876184601832405937511779770678245397718191380257627603319741402258610711832949951395164298807779913253780576137089900608331191415202679760469715172776930481159906083440914914962601863937218750155362273185191642954703214622216476869943778774557680534105755196971577391193544006453584166328867179208038843065165863339730197333536489742463000025399474057784150052868502197572006294315243205831395726688738647578886664752520626527627051557750573604572106315700212084073401609295792204452064574744759852107159711001700752101882695444583009730235257394309675022555426642769092286652429103591898727481860563530648946903631215086037579579295657384294182475954547649316837770707392089194409452465801896735741167865245744490648520599550524444323269621906630519622067720561029016747889858382991581236544806087662386273210933856954877019308387172961530891560005002288437687583376189542497644929337489352384230729481546078078375815688672716826692544778141138301841513080983025138682104744744431597518956389511509071864686823644152751063681423224446962383102364436874790818216269819828047886031708734074505406794355451783791488651742574531353018277525794027212674594177192943078221002695745622967841409043385105908057290933147997512781196931063961391065056589638759322785125897928560644662460629330454960594026966117700476922449556656359015053649441252998803704446020986779531227200839375854620061762956548346757550460775412114847956524428192919717960009653333359970192503257240340798694797108474303851536684130309366128540449478394648815200055670900728521008610684675055081758577957757612681659047100585573677352075382605336433260147737128493532858376449424913931611533815420279357598460831221446292132445101814455544215060159398408722504335891777699297606128671241563203998927937270820111637565454021438520868829130042035166632246380683129024270843441199527298752253845781390198679980419106693026292690775089842861987183463919827490697910543926373104801922675615245226306663953763571258967524582768015670713796891204309735987217018564889153417063228846938978359567732731424521882408927253681170384922059642131619695064057904034423785035928402297148522997514460871792366914654571788599179841046763040488251834294377127162351486798142020924834465677854697802786403615124629233789671893355421714833084955313535402310550026069280449979462558981902940438296898502308653295790213416724091177357394568225974473808248288730757584730574518185952837800911672757738063323372909288792068381889276145698940343891239495566078144319686468084161558064088057861070503311477040139541917033152859791366823758694792831905356016962734976372816834945902878501970688686972656819941217196996536539213725796235695956966258278943601669521641086130058956296445675262393632431417214898575436318606681373731542487822078679785632473573594016602205849652800258700916990432806197648088382067223521578530441685660361971252483310927461801854670649696155032614703165810855911757274371376142929615150483883124427433033178966883630660789159825172558557197252609048476675398424278423408246243744977779587326877397317554013042164444659894608136995532642376643515142263752384687615762279238224019208362278935768993885297393542827547834358423457933023391107962511712115853787493551979424662738580163482727051471331163139744311410622006825246329130641702473830554075832424798342428087892063308579224429821791412141157618287812621901799826619054126632261614200907940034123009822279598974017561560211408141816179192130997501666153860176045706893746833032390648475221901608518160782921983778639623056283522441422985655333812306999500350849954134665307762346112655281153581548967774158274800372739994340172512448934749690735320981897242307666246143798039461575163054169244193459817718276788182259318108455493590265745578737016194313171926288319791641473936133930827709481829941732444383913488234749108225965499439158553479590268429263311832751495908628562873579707926683662162819535089069153835205347822495640006304471885753983686746270359442904742183356107941296435913301234384823050239006240724557883977101272302714619691716141973694007212782383700094828126106029971870739691832234088987588011665241292036412738486103108339262892559004205146475962456103285387361017938290805295329044644581882888546803416630709995732736235640891765952552801487288604670956876573903304327993585746218619509578632748388438778637102026429489475835173736878093087236550622899895384255446625742530224837544084697260973188993588935967145670036193757156703594306604972012520204279083078916365036342221063562540821432362606665649486205791951536543469407951540881215362673041107901128098824325106022128078636685463866221743825893407488214036213885124070037415383327798564128553994967833744080965299618766994158441031648395347426235338529194969563882455022231846881201351154343677453387021628825717736253120077966338349417972332953594120026605366249646831828188801437121832371160509231675320284889492901771445966757857076189164859277760855922036443692131672261669678809700205414372115603518758326336753498293516799954306538094187917852862631009206946193921540410550893609266542879813081483032122044931233782747966059647840967604349893858039974616517339719036618839707220161797635009791908472131103480928726891249150813870984793068314417097410623208029960904393382382564381636936159494844340370413723073374833407724388853811390111210208501001094355602496025107371128651677784272704541972328240363996560302471275339372024622333741127523424840014281098197284796972904781695817360705264203023862797710059940238982399070870166873301064975622497414056371693098316782692732344847365272602047098631670482131492785662304408064464461326688303111926242532716241776702145807490038603822183860034653731888034403168854884461937586384739782488768969117077827994055811943917130569306836821680278743394692610084736768821909036273949626570412583694440981239556534714500929840942533182395848791388786918442114029701244131865122845215562473027071999904364504322926971323976101478422283185105715009110057503725202599074279622816100236837568046089312503583043478652407675250523354340369675279409038357164735395078812739273239584048590618562437929059620917393515125758829427674621942441857222504731227122010233376166268399159692384340482042152495633757393797232894992567421513665405853705768471935859206522577903182694019770905958881519922012776528833173043662751911166377190600447612561857626935186436155597234221504834020975126451390055697351239442124130618047088392155824667873568433616943764037394738620056374457864467611216063048983971266966820616282601740309232657498320165448534785527223086773317322886254629286454712917433339112020189837259370921860430545381541716637587566705241735168954454571866439427286483914080555767213309584980120787157044049020067111498799902385086760916936945382301829946814165404330610556174361008415782410277154195268137376145215698864720927901916684038841526496145622144710946422862166002219353176539453921780410463398952082446786088341913431280999977768736158500342101248542070155770821060476582183878773922566699382051014176105989637690789849487610013176369682768696269126116569848597646133100718078145088695989973426104002502540848170241895015312729197313247604413180318520998729982164085609329060123240066732442862234809461810193869564100824315655672621377924663868229812407515525541013829718516144643586012486130902185549009498146187295500134258861396919347752324005261667440585153774917884874771925269072847976269954908748689376965089470217091850481601651139357091028958469174672889525433833095909973242313247646746856568512447327570853611229519734814230562097682916588213534990361250233939151464659214559160667272532277365915216024005669016226188982148295854395364216796315103872722387581980562086287219673218198166397672470584301758550370437378240578861573809890643961592624400124372399797646154673538907613707368551835416385557083769547467509037869283711151215662360990436781735769779995749525283666796985602041644699237415190159806907289428369797059343827178455213474731970815540309046307910007305621232846290253804526616681087351081807710010765619377891465075984927100680669691636707319034264412584851968712186343918650717542625701778573869684881059393303432609647467544578002275056631836514026094631451571420016665200653092945101853359515930649835079407835853621826220579472245310913135552375230971250549093559043261868167810313136406946314209232206900219363968942253722544495758701722619667345525708847436572361425622963406529986095085338504629581990384443181768637644028335988693809561064124683509293796194845549885906658980475248849901236621857589769263571572960770988466093612398547857642066375118659130327086828432291334549062759363831753055614793391732568025423656559144727883536835862027272752296714324791577559969788452287196459771251106055071389351726114659402887860867239721581710795404644664329441859349649217879108236611257449213985144575443789512010514709120909398305366017847893710237043545553449010675450785132719905126282156340877214588635730274343399339239334536540542649154187299747887525839010473380075928404213589876291771903471481866185901161653159618930402402283261268029960924932176292678349887749288169997947757000797969067907328574401739563069288604132819198062818260996739690872861434258253040014192870739221832610048400174379857677908169492632042007578170646037425561187891843122684000882851345421657181977733642335241568833654631256559202214911990928909925832319149588593834391265361324762347080587130242407452456604871482515684481303512991730098038560575862772296105318298975152664591083864922943389372927269960000860502244427503177229166481389491117387612750065679378160402086492538588961640532670012305788563626742609031641086940548023380049701489096107166370152208762832999183060795343195701998750261615420897230035696467613190043279808992329747095206479309232975405112770313787619473789950975935433188353606661162359161516279447825342112917338980367526267218316873571914725328729807930918590459146531934370084848851894365342436627219896365983464150735126568294346663805553838298828688208323717053670134428239726046676745457273587561868316007950667048783477624465126527725973840750653877739179154282314922370953786370125978765581965844663159688638278306643525678809794270707529013631365910004747187994309760812450204743378416695944102823169409764344333451698316497825837068487864225160075123485301294941727596373318132675970457208556027343357874907626862997036929882638179932710545068169412931633899237844782018748196161212613730891130721337649329244663791513105211651846573367228459522833820723233877730718933439464669982792575912345161880489948135956498504714302109339378849285344905595666716517783970658854922847030750476256123159136334764173486957702250339162077261069699639277017544787509450100521498810362105214442247346013842965552973442549314566737314189641013066156980580760937523723879479042535831074682341971449924238650143723509655913042750860350060231453952846179401018580938346244931346019091468084995164142451569114715499959956025224987710365842135437849521429542534413709513310672159837436529081221861173733610084748370698717042208980098609382554433295026346578031209364077021515351991295475102124035416812899572022614991498986499658083407849580218041014402882530082403811604180777845863368161520859870422940921101579512804464017433189632291334706995133706695793258801283722047976801229048204659817599571131065962899192976297906323948622918797223176061551327313574202326618318806482925248720560522302185044314351093154896369505788540429698093437847747840571653952570156346680392176704079984804403086668130116928847714849127143117721640766396295606669823654199699920629704745382144754880898657769637597686407737104593414983014707574555616837305155227612250457270925354988667668795848096229425965738989034994469265232192912545270292971571409176025972254507758871426629465178283542020793847482263865939651718521310575163378207381542861346908531506178769165135342707945923826584669111278269520156572365015494267147522142978540376090129300588499147253343049757512726791821256357840201265718055206667244543218669191720055198376694978059576805614986458651114626652469013115325048339023531783494024224586224323616629653883733961039071484270921707686536134174325228353524438396292528550384721094460235316219884797270776806979344383696720224040993381479343844697459019145944275697695381325298663769097323552407714700116869484738150660927272891757385365212893982435615488283397763634278534802339045613290707192412024715608168595434215944457144138031433990503221175710707026856392955400121434122607841822330704411127567569836390324955012306032792299503028299504047946501416052613409071192772370109484578818797568510496685383914685223882016230511376960389928599410233472748034587253861594386352682927790322224543133654864918539534155946344936974311802816387288368048729721993793321763223955916556793559217182258385659571477381443600076255604179652080721207283564955830940396630762835298887806104921382214032457742173966704314319261938952025532915402005468790961318671311083126230981616547916215321433309101133255008069203449487870489657241430376020635213996962436377634182876206335614426676027990409949654334669053672185096805487680749605918100607432821385275985698831397627788619795585936342902250177614410469666619001299595561443744118016447677638324987711985991682149199585282792212985630612154508449912440252818268860650947642068425339944438780389673788897489828448382882611116725239464743245461033200678016668075458898363964615018342466144808517090223484670339155972399265355544761489485779570474254460195803813666767658751078488028920139367296681370760571812731578463652738146538711726845832653661712761792142427401074252872017558472604092379341525158655088978569394489708188243058239982651502480094604545047784581933041282819679714945468393497701045705241262647796954656465879411753400979419575679174738823037175188438508523689029934702457783124448613057511514401724147607181530924030688619093328140930001696608159937013642850375238098402909191093439113638725021036905053411444075794612536068787705518848669129374932742337909573364956695594231768374495317183819685441734725700523010887854940167565521764977050766980870868788465723500235581970318418769475297550233625575438888836995795403493793074679283323168645066553821208173571416660136123475863652085707515068722949531669882230982832186261115575382412042592438508689975327954320794757079068383351788531608418717173374160091694459353115314856024120998662854901495845395806920496646356179136030335028982518263145835414976626977569537876484781598029582014136553169460896892018502795797642374082061113822368909562376847181852180005739997233864371161622493106018890382348850331747102947323579021506498872376106145881685296886883982434923966021743413082119109549322360096861917503246999031472332779937232712020269530243233961442914866691427791121280143660437037010540293881554183916176119616438067158098626101534311083342167744358603492754000808102698371693187275292191923933235864265922189966672451500077544736722391026090295725178425318848744314337142450087171856839698228824588149702597533067698858464982462549903205323115515013673977582912598316338342424846734896502572340162710978523044373528779181375500236213676627345820981138253969202381706085214283545561809795071742406401489692406931374047191001356178713307221739903037845831048724522822796672635109831933287236859611708123016319593999269853446082292439160881797874286035285467703411605482847716657279516724460207828526880429747981052389598091254998803039918607758825554892878817575907701336189134333843490125009112184012321770364458462140668522797695021042262075165174993335389807377942631098868245751260169666236460812244290457613414600677306575139842240797961105372186914594771431776026380370510019394383874692553942925680563498475213739225178882657709361482937612623020370040168174166684135728745625863643822022386254504888564129543321042375211234249012098418979257805521222966722998043123252330595343972789913178597121467227888237148902526420018484237487575599078502069569504620840409065033703634241531467798285464967853793686586947930993226674823877748783787120124753496353702885271929914711510544907047148407180284920473868474315787822487041753132562452417967418249236144343111533175323431551062351389631711939632333381580569227076915344361250181962906070917248385362708992933047735517994543611396471926390404697041276747715538063656581912758084666002063410086233003046936408863196105168316083641597151007656454799903894473984285737593519850295138364870368702237072729539494328885681196613580661221331883537694082764687510605873210654370865802859899763472128876448433739372261875597344628225208845341616038010034327909471440417432543387020560719097093597926562067858193088880062132034894546056840396099300561685433902295355793103077513262332395161394709164461736750782973986305962181927745870169563438931081286950854583393709382773142425984556892021407013412269950271742969884780735026512890262459562027854813973153383465894179732512860816279992701816519723278418036139357719580246882509313754786185667255980913303262553672550293349467963651930045151353298479569666493529890164251413198616949308226365163246212321805556877658048183798635095130352750377058740519812953327955163739539781673088458532740943231188591097003138923950753108969554948548635042951191928132549312844818948421471014776862680590932310704225240666152563508223834859815031945151291334737971157148048075111051744792140002193387380700221622278513646499704688172366193446151783357064189090553345980142929933701123100827700388380679311514425539842014416244163055312281158649216043636616207635037922766186587692711041969697452351239438745013851482308506216872412646337320594673596905272312287259021505407891163237641637301513333554209059747124895961749410498446751902869188927671737271579865130136389319155059271661957033399305888038242701542958447827924501085927024341815549133195895010364071662593400500137546888912190397784398663078529598272718374039300381574988281939250201496602462466824891439343633577909888497252681411446977215297889456693530328676221102193256329936313571781555864907568625243620048235274931153749241236769723806051662863362657259448981246654013500218638897301257346817031620824914693170008393440777669227601707239655316680864718015735546657830115489435098836298368250310976975965823967963670035856195506856811387136539128674083002887931601105128399931707793276280950910482792344578317007014843582427737944891544860786284399664920981774047311547997370513243838997056218664996374266765036843021932459167870562697856122191947553205492509988447414617471925712031626620525613475453293682447688785771188408175754026973894317284693869336478440669256181197776022458298478949535365893841167265035609236088723166230112951613120291392503881412800192581374862385742187362732044880393870992874059667962282075832998199296128449777248781801070406988685037084373329759410639721571156018220160642864064756795531551222731053935098695740749931368861942913391082179783670058379078507305578234866785168528189463332357586411534528169480098921610480241829874608355020494135966480004338734951539956658009600586339459301739644359500982109573714851218055481935524098545624982801489214154540026404961521658307268045621994499450757793985765685738107187397712210854946505986630866035267040617254582088169119175685518558780688863115888896515887493273692339747034596080772194390329569951245804947029141249159803942856454473586725627128731089134195209156466776233427682401547433949051646065106575671641380761902372627178051629507276239877098516382384749358965016362604284018943534721242797190197224367809063031432039412991619481062917781228965665706881236519957197851534818402504468528167017126076870327106283490459967969451769133672304031187461676600990196544605072704582577199008342268121759748248996112832299754535271458373282995001113033592200511296643884855930464232224886517376179836733818765283527997286636758885152850830502133374917165019616097903177606768450338386898773111450412029721149665938870111439358421794731856564801718368939058937271886119691454652753906286477381839202569976747430518326550064231962545029303053893776340274159463578599459801340716156451126187983957420321744892343231712637336291749229672460722374365213578208455314201365934191496283552574047490541816390938938771127275163631843364968098262464626627327664366818557481213891379900512503720372144391614530442539436629595365194075797828608215019093651480635844637783161892137025509041321718375457732693185824360923459636244242777929290586659634835199809635893315733172386308660941757711066579223490165280340007494166892101671707427087556746196817516769796451864367040751904601586329066728119588283886685575519497444429121154142542769964359111962203476475552143296672858006000928293916529341120582529945546946462485028904240688641849924746968288873556351569485829561346028194596271409449736525013872652752815796311442901261050218062362975763394910367186138170250672405956724887603985188622379551271151540046235146626558477267727351545134404149723382461377337232897469059104323844443589917870717225136323225694458389830844227848719771801025322242233838438110647798467657781451198461587123269147853487457605707791217620033439764369871090487132556892013234301884133882911723299188396134554778860390877388039004422349709832823286299920190800545024651059004456474370450125889938689862424982663442527456443516916577651285647755144631122232980707508679133170979747237445531829594014657449794136314257906203831458695408088774130450424701734351833553180527813117347093489476462693067727089689762691383006471415412014961090379960477030905125667327764873038362640004848200983543305220650309163248556247856488049496732044443904663408705747317135067750651289394272554179099462731884790284651544314467099776119955850048226041755514726389491316570678327614004701150512846155680046008628711228468016505872226102305779353270161869767344023539151892269866232571035743596165671302827959989010154240331729510428493074418685448691043197000744956151717073175637091848539696366463928788396992147275210852211161670170830344153745818115206647622522197634496560956625245496428261262154827462864679109728660021522539789280877362175916243448379584932489981994030884661629623081029332978692525841858592331386589097569881606800478123252609168201243728297799542091845673496972239555664993656305606746567933122445909743785291718027549308862076110030695305136512410599560087060808167832124326225056562057961823522844567747523376200334601987129080437059972552368562319724257961754384825045204952866676171379291070807474727341939410517711244585323405448294872033078056218622914292753406121384820150636729682628067928067182492479186356603471450331690208354322620244161131558573215078997709227074110616055875977011765235645181348445260801202272110631988596186442653285086392247397061645766471486951992564568625978937001741860481528539450718713149254895915169407709734948738303771012673352438020091331531515661238839402637140060820243047105769020928168870339155584109579130787812003166136360804028591145992808252605131796210823566932095827423711829988679583416934231051931437340800358725250230048957986795724223251658540670069038848282465300193798949031730662568547406928224057637119871755179273155529102080668293545977674174995189200700778008697573727785493718558898274519866647632236242530796954089839820892985507632164664472280156880330635964429832282416445850172962739152970994335896436388587478255619203954645051538553644157540173962568348174253594060207505540446218997920546080495601266505370772704469614075041515583594249164977328502599729055386529921922044909862391298476419488744740757054471928308532044450356626401163314490449018921269520779875541713511765490124779523253264561599739430940412054400502745935710380049433857374120905098798440522012291507765447180571428124008232526182930833334035995158317649842281190853068579997233736787529099004293514119083864261855431233496946469361952770376482725976228161303639499989275186701322159314389047673698383560003146098048017550023841201204968830014394962558072344616293588308018743572897975212161321482171655443933877272831826624769636149024142137939315955025493168430762814768979868434477001363108460726650019715653463305366044166040814187435739670963405446051595377474828597052646319353446813683946229613491838331428591392701580301642770586160748126534482680290053768974891513295336476625908938600707925173287949596367604297686390249730130343805943124319363748799660075613736139174226692947738154324486840158222467447307703898467171478747543461427060702668395269105198860975433146049646880044128335623810083623424822046920882574700842212956325661930638879293740892367250908060512054416197202911542339367063981977069548517005708751718279634311522485290372225226423015989980429648231355033694340799750640521995267798506897138463062089769173314833655128296340105793318803942348330581884378241997861051475228695891062390994055104547628800655578244082447015741902304816216173431570111200951205964326343776637468417178000486590020811412734467359389878521695727551654690434464313621124228982701691560468834416738209633732671872277374216238971224340205883888706113946398230476044642207158143752176728804197431674406491679725557839031683711971747834568414907964959164372267069707861226051667685602157355230145520919262301260468236754051509690614767643985509476181976696876270164670169287944102340974816177760443480602269965166393029076498242659171273860494001046742431311491721598402925858239610591764095236876240264471757218178113083430678898298945601900788605876316682370385901023250218275206292187225323151477668252510741607308371389792705779754804067747462585210627945970407194349430363133012045813696809724026723588026471295735128165362163810628956788621561399999856711585356056688844954480176492087213419236440461004590133141986407946442462893961538748618026834903352466212833927935875823741553889050817253687500990813753961466994496702862213523166297520794578678301318804053033739960687690728364412274848247776083870871472708579952156411133092464548364080203067871492745964838923402059717620816621107180349014138956472167511405721772621261079248285914904067883329245533420008726322070787756438865909264258389524055034956887608223372715882139823248273004348655016514223915172695445094037746722712330801436882264210992258748729246936454456814458240182908215270664622785643643329047805403824918515072656454836488523276822885172402824639134156643539523815076027132365498314176524164398991966201692328813011973844296384446443210248419635027692701101430798136070162532565126674373201881862140804753017864530411386287928167031522182135634634044086361783585972291823914054229302295515030954066143321116130746327277768579205908818698108848539453789837574181012192772907992904084222998002391682633667177183456010689029477951621037032704481465537109251419012655232997787453890142342187662378182512263931279761887020305423541827028897831090899059115220673939034264399018921563358271189711489105552565919630911958185317468752982590089326245970043102924519725675731087975916258871977057657950156014895522601725194369777442092585923408535535583186578623635352002589269683414286981590729976228252200391799521934946041285028236516108559080120804237121101536245201483538705006411400849599702284582832060931510501574536298482641151468943990798910071905564468829046813353154550947157014689357416174200671774001351167192113490564747663648534068800634997119727110925378742966805569093984044492041303242188293131326802793033324991559121680478180307613850910976420168129422232595392737869821160404791118818162841567468230830735172779317381979607950303556138808208907225908635013287487912218948366079963539581111551072108500605937894321495742010739628497046382465421613968746648996621830738510238759902575974049738573368087545740789999405586569877265439081402923335073907887242867857534990709356213389326855284954416589008220752092858743177970674584063427100500318110576241113865517802942164356756155400772220434508351626841298446760911602062173085740553955958387466368764855467711360520705575478460662607660849813691794566319938609614976295095675177777510639862114920972540946074375092209333742298165520512766455448611171054880765880985558044397729358608347663290157556315312675605031718254899474423026304239567195725933930242683725167873648868679365958919616164574192784228506157222787615825758428447657063940245893178657796956907870957472477457985524979095011693347583670627024996148290096136187310040295425106112455505648753454061384685386589992363280539153297013572786912816975109078085453108946641968626862327819704549723281397922314134111313529914219213544546449549466933841975148261210169066486407045838636156940828723830696636557700243367390202656867420413109069913957435544938498069928083926833138879832197558570109909587351971170952813673052545563312929258121647751838633553480630876703266445140579373477947576758186194857219730290125730885569969606438452615810637663234631828735012486276311496583130536179653388080725138682324433560448620661303230676709184484511981864219447738908486675025324504932147545635245658613531683889584370685083093978076699030146475614196496253953760481299424053951748988267033608638508432476234329121478122425682531445230540202261348716938601789369387498093791916323482450763985183297395962324668536598783763410750862803841912619535969550362244256470562375686014397489121144059766613997258386424885687725831831692049140012073571927408989805632679448573466464136990418405023447940403334394142477964125103254092941462256612425254657371420018039129090460751277799034457094124857320516319651015321899576200633690394617362489597889295875430568506172061453708671284439452928679487332572884207676938316671004377431023960255514434274007176056750787554296715115757900232495691340473698997828196120984044415960447473105891240429956145633918202638172291408289408590430183929769851125766463735450970229808937274842828382497634756879863132673819889353268772216317039597968560958874549351008091625587938239479782443187868849886793536084530998122665744872909935377625545955687971622095965407569561150711978829503730228266904849512581190011604699372823388480713921691263021665121447668810271039878309811980162325937626278198299289782262577874794510224112162268198353376404830339478896457910021877644014381937172389020180635637395379535451542973764285745347864364289285356864866296310052318769718878348883988158166794313796668614508784853706415050292345565212427455947294161637160832125221853127995901200828482705169523061533003363115853139683814895847294966672411969921638438862820852592188645727194596321975519385165936674398261177732443161667836066126881202261443254271276491646120404194113080021367178484938066603094916015728647928995191015505747692744015276538103761889289040007095417388082548740197680356596426843368548289663130080041416189156560437155930068235634680285145812300369282400134884351298024291002775897535117914035055111133508040736999671607101015694665376403607617714538440402249344517152326809948329105622497316336210066121153145482914988565590047372735397447835183341232250063010677275661654172031760513047532432616780768958818792125006322712921155635009265513973020751935895503676216712584081984989039469920475283765621817795481151463685779210880721825821276453921482908094160681466022553241832528930871283166158598790882875616263274069474949719223473805790566680387353931584316649278937936981735832197054221148391731135031605075847454122471589758909470705535914529194761976355284617647774858756795966414859335025029698142980212065932819378733982372600672453353737909211031930809794945525045691500598305167873155366878147427533043030148988875189033562144197852483012411799036123749947088504112549217761287300896300243592381668659781608876077870871129571547051865100579147742440188752011906182410177929197282809686311319956306523127316855472900749519986806389166977137946583605655790324141057630693350257330319172347555308598994200130543398382298439303894166844611994289426702530046589633537655367139415088719253679812125074176133540052149182427407555490334091168561351666203364776957705962805802485605589928707021410086548985030098816147887626488348139906659389860910527229892150779186881049740875656781190001449951077412947847801650398709678960989980824373324210079955227783498796891183502437536798092365303187563832899535388924670969352677942487379480955798637940759448921158289165428901455394900173892146979641957242284809253615811636237293170444775888899389225482921091498162881994903383794897779751267439063640732147964820769148313962657321915405453178734776992533686049063381425368513423897032847171841311535224152401926315192043325442610298756398044625542521849199970978172765880400870989018834966632707554278663044822898096024780914879331661134578003473361052948874927459023695145677644041727961326955164345076590737012087663205137929941330896412623420387749013994866178678228014058271663119121780255644474106873496472319395845753885940489655734672521793524852945399744508266466126222119132552671043592792242716873661218050204569532262342096642678900972543259868217350022822230862565865971919322733521898805021339620244147910250949633076706094058069159838488854508160554354814385228088989568894158589741480501300363642928009655976670547760848815843040666164182452573981588217929370292590437357748523286155245814580116007254323046940509413625551376762252592282220897497170237270294638469891622140575498868191432298758142869645719679480677927736832438132363821348175280718121502371227143702785668865065172091075044901002157802255374621505515263663066675290736074670142339559799314819869833087953068251172711650131215470020925160562016274715728384663769822114654008702494175520163159780328405906061058117969339105050532748308816945901503272099920095653820971804348329445636075948882029208062236774060054092785593302121901148239929097772893752246993454206891586276540552032824989224656488188021748660543032248190235162916236490117631968051424909789658565430763102146836600058223771145906652839721185284294740711709295623928487132603748695116583102053546136681661801896050050734437518905650200345477221690259649215414390514584971526620681865601108592018760611527811359473352481248647841785997024788974911876627937288096956358622770236362507516705974579291766324385760091548944054264829003460617212004488202025661115956565762182172104078652608789950126643862501095246613739496708323194655111505061243234749715716428889069159212432445409845583930407628128317442638326192993457511981570422708139385561321573476080656115789448385317294955900795672848217088198218806989560111498487653719911686668199869337810658970166419796788354230951831680826371550268907254945542791932482987941789306205458764438457951778602920326513659658472755859372862759242734881580830320685717104475189931573796337844143117452553040539080985789838925023296257801075679785426743762453791734383217361415814960744349544827394440211847134654883198003476344402147474990611588903329544684449372151741920848298834008369278954034833726240879648650527488146297671335401885748063039350735468904329820314963164917226721060094288141914361449757044177850785021968502209285437231295011029013934947015484588242254372695648229635149011571153287775856134236725485310323289154146054377991487585566797745257607009966010741884579358845921901029348851955504585068734826403400971154572730323034684328441244754562243059609459236971655361232798586179053472808200777280797181680197306792718346203291039547297278261189408547235097748815786849454917501478348230210942035540255908222748636056754662951197206112244991747230508879569295712554141470275381571059842755294818819208912760317771375371148627635756237304607243752253244806928512456053407166399587437250242037518578760985607851644118420580136955781171654254349148339005728974875206947246317524109751677634377047903229118368810377402362920287837961097963320881409054464129893153185828953903204877787240696817916779657100055082591537584423214698652521057719460331547918513499636733997958986406288204063400856818272643369902101721033166059619107823354484516020803577410568375080528837755855092980562940288511953550106682265547648451758755814390154277488078573096240179144186796439336106378028172705007413330228103475013380001590398033282387514082570679171640173982916018363677501902062986154120362107555130659403817191002986414221449435693222764030326110566961533706447140887921138489522887872169996768217533263473315427455037861803537927199962440885446930328076146093538723759258697545660769811271635635662317106938960042286990147762306298235266397331159234876116033453266181702050381650316141101822293307496743281682537314701508997976697325357296941839598969599885620598411195741556615848873773657167644232830221803327077262563743858491137390765197933018937276809636331218977740647681084955396049102975571404118752922755248682292863776100967983664301735763798920125597672189726492888103801241104775816662965593629613102168633197404158611614831751159157364702986709856199158733788193834788381873802180495999853191478287417771828592050779884482518939452476272416136004160849393426288803058350737734650486961218384623833204671000256886579183274997511390135580595095159804364902068459886575199968817874760702512251204611967461449519428468818396284765429691630836300382383670356117767318973673708109690148275833542316999130860087214752652813304912148120945027818862879965408672695794809470663509454103318371236233202495249839199822848138643714443929795996358818131348506375152539626012795178083558209442232073381829212965333839169423917377071289615323633411939280395890184499305422373678950643878188381514814410551780671684053161012604085975453909109741669756075239884669479523004495126193432980011412444927114665167010278023758950169295029998976772200014342127815350596299137014697675014495299208252517500198632742914033610199982976207017492585355629321890730010675653490754102484426355430727637190060113966769725668431021376202601241431239966190207965904874665416758312719105417690473533755667455034188415679836697593322466605275047341195885391906085160162271049379825539854606470829097628881474691207145521655580012038120674737900517268346597220136166218746079474406284469252344460074420952136702272395179605539151939007633222354917207490481531297477317575285735062295444961510102487760062120464646990203234596508225829222221349696320217342557662224971767707199480017890747766566911561466241025306654432322399024117791855155962236080147914806612790750480838745016303497987795943217148550020917889031839387378498443786774336697081681248886027153156409225649378028681710490065718344068146659851809856243590915993093396044405164826686119047722066675840280273742609931698334922144948907539694520411312598741635702989469130100480451182145026699488154094127249736118362084434344061222535795599528057102517965988217850457266748491529796971467070727276860993576857435852198898029601111476970239451953587518896196497573596897195943706511450367988374198746768932285338098602212891981074506074241807264027658642387705021183202336140562695431595368753578608172532149182401968959783358357295351380934517635261965939828389299605067891426661308522041146164422802919416340225608066656381063600476938811560092055635614653834364084977915419539991806476127508729590718772029502483346850874930679903828202445662512437274093373134050856504341511242823262982592920061165693293258213121188797301141145907613997973427980997337839215200220540819081487315025767088377266210633907824534289917545356244172426668211893244419835876438676374201751169665200282434664923954542803266766520122748383054673810502330691666713489020526884958294602888205661624129379998544673337110150081585415073992561423452233441306828740212859944455963662925296467606381111059229899543316672401539233717385161360630782428970960051008508126825531187074681584641411925102266669344977397632702358431460608481801123976401329240980812888327880582058937192903136850098933564951184628104272987529003948312437313182841765682694503485814520676695880567824736671783383826822019898671303666107785988320206473571494799948972661903602146747593918461309694935853447086834795244506320059401811199304592153650345943852349758501360584091316639905687723605583465139085094253661974291453698850795150092959257093451816367538724345841098223220669539988878245422480115136268314787829546797384280173954449272056355859394441775198713073248926464093842077950266407323237251147797777235663612207141904176568083915359927275962495409689260067658069794822373810416268433609985052790270167621544965048953518594732112013610080206491090384766167389943284142896231209274173735745369035320784848742485711576045930752710598858923408225955855837484419692298785354353761479696576036451370603626959047371394990661275989398306774264652965506748993245106975906451972691820938355031352906768705815487530231527861997509906692202402297840012148890781830558083792902556414759775789252157174976631923534426607077230454974538153711875224582545919764618604800527299519190597133962848919327132495425539956302146193877938929106810160732288160727104861759761985059198535058887719290105831107120301152866970386294178584436632792857665633323444480395271672622427753963853426198125139757598391089569152754275547350728809537445243662996348448104103136166052520802288445348945132233101759693481854592666888712082929679152875186618054966732294760155218534978160219392796293785801492030052908757208547735902484916766717934089743648736476713756708209058060265615983618939099417737054459967611010887208026005964252756052464132898962042902845400235836473583398410690220084321696380696258955951332570000584105288700882344237403398812628911204266614055012587307180737607287013096178824389904160402343801786899959022826644770302650065327703749005403867670813148313889479502299576480889249441466532511502425537033666753353093813575795587845470131770978916751951195233817890898395203360777973588327480796308812746565883555594430146180541705186512692354383419287766666602318836807273878279612241732994509004655651100498839799916610480367387352495104024315580008893426083201057639371158517578737956897901071226794073764591851557410173237907628177365418230604052380651183686686278329100294353285524851627283154333673218036773039006141669292603992951130571594424315829100302633277008887566007477729817385082894732731652825219282480435972270476227574516609206589930320686938135908271897373677569044689788867856339730813394600936918021958202952624783823039408883193820888250134107614308409245941986979380566389429016878432153321825722822484201971592400744723623556360728339322017173831508809986165560186306141161644971476181945226754608742546773733219408409446081541794523893041711200624520929645413103968661435873488081716460314862750734206319405626733149649824667301275388540796579802961108437164209435134469994335586444916695148558703466749121300157876442843931134562211979589539498078226052370708774794690796331444316533515969978075470448853071082648213027862071725697387778953397622986144267577124648435153506347445884945202910172875919673363891903234079222313232457252520158141191794880669635902033475061381017122154866768388415501772672340855251385827761677286640644058141580313603078490099415320461632768518026458367214495873626084206021988296305706324724689599204125123523629846781965048234148899227058370009473280823807788938472062972369594875095807541037933163641131845420381294267551184532543013486405101064574980618904621398727780876144001996865340448187471334688401346499262442337723169876376731735390305991593890696524156902243161793731826837357613420124340364732110696470732955563964067938045219524601705039248580077814375732451233086126902879056513270933606357790449494090140668594896214352055517860712818079203776390413513203563270787297823505928912644720861451592209819259991737555163505733636200262800248572902499633979417662279157464491492282013766639249258639385502414257712564841241812523276299641024137152669388803378999107142292372611465085389748626212593001047700619191391371839466516901845494768802842581022116167128471835590761393751302588962823664943101799135082331671698286376619644964960335288958298225581442341633847661135300832741141947251809364410153719028060059049299931922593632169843182918184031422011178642443889910600702384856211004876444947439501081130988489522278414426586485425513987388796531525018666565440306301829102562004495041684742294849013060591510355004435472618691872398033544907449618940353135199064895606189146426908292104590835494364390275120761828177169010635465215150701797473891631629537954076444667847537264783372359662274771193822478418136327069318590467275506096190494043585761288432291113362022196992444697151332865380827078045267529599759395293016770506446654199380327663152188403958792205219410680268801645325815124068801145463159724404705688939439662246666627217619071926211321593358647774817846021935773693434402486897239701846530956758505334930436022470506275799444662839299576040951758515123054459676328318002023473868605760523511736363243951219057059096165779559028701052565345156545273920746440218135699653171062390385477131601512602095562074878305983265756804266836920581340325220653943723866781704247449191542067461399220662556852108210375228179832040591788763568095914092400158272381150643160165907391794819152948018794526183123424088068624159021214721386560079563886005916946706290979279159755559523511880534076388869351684615148617377908973517347669026182626439536800085048807727847969128437243398153658397828580969266668254770541857329857139094738412248549351728662253030953816094212861888959530133158448129562336751589146517131278384677464131652388954300193108728305108401590595575331398348335540225627954280960752349790776907605926085837701738867210152494105768404376750199993713938586368163293233349056905350038173081700868789565936487157091703412024263829821588519278582470905527743177266833640229324444189282329483533291275972077610320999897340326778513327910620470905354439382455620800700297916697941031417394446400056020406651268541359949230684141663091152586612590404001789982140050545029746261718473665231217943555295548536541726467749430371270260641393512868959157581676416625628117407423666142212268996597688624083164915791927341335911081974494215804725219456023728816217393130771153661060152594076539969732118978497905684605480915313218493885228400607195535325220365427851289938707920822868206756585398384580559762839944265954553345240964523231854492654103232003611451186542092400905168103762152061949220511101083109755334832348993046167555799268994230660449817221793603129054466444476248562863747847529000150697247285455403035521762992536518797562656149101597553993535474983661657287451378093806580402727126553094026543215647107608025456932572500978003618717001884497867961164204623960440763983068700300103254440337892305710307700540332285618521354526630568070655480990551679619804218490077320506304135406496084917633699992313117231576881199499340396260413308338985343075240950307271106005347385151390731001056300106677834763786479890654000494993718957346696821557641945267733987906852254306717893625277279060360992470549654944994936263958328403582531317561332417533462952112015035135261860161580187011068919554630637127150178162183791406634121652094395085189085646183823059292951506878770531765857456916124679213747886731229139344540468065419121892706171568708523477227982121100723764837899925699675357481304035897575964043896643253446638243285302711371131358565178245084761075749382198230527078811716672750005661817298000556779326403261043723586615051261611698068815755625427697916427513265034575466185042674391478264130159959095223083048494986366621133692608257807848511564527259346419939144023618951711956907434890038880937744090820753555202160912257916177320181651413758258877773274391367612512050950850865820964790726904613674672772232452554764872132394523629124818145837335084879154938861872332994563620505854874997088027495599318030652343291700743480643523491554584324564583669574682838602994164721631991616095392696164672157032884793278022150759156755796974457420060932814141140787502999639456473968912394055582376081817039235876817177511894315608949115188215928876529946091271453682769298830586544817909302381675133510732011541572754568245781715545393318598876081992066537494130590617844507936969972348876591336837546404755959143525814274035217110831256759292744881001236237953874921126905598139043511850492970531781366409573800891026306162403595745777700128669208940447519300507706401332618840329565429725730052185279661883866998004228768559255676414980364685983195885740110162729048301386317367606978076487929186583488340933274346685197292446623177312763813311257340049529690321009703381127487128837203778217349221155396891214257259379692516488725596243141256406919085155388930248865090522834500047974043186410190864091845231188898237481180311164374594602871200862285348381042416671329362450098055898903620355946452843281288729299751877860901741454610261661499105629467408237053737467858011637089512199721293360766264777044576025854153774655565096181573514414427850651248912158948083328064836023861443583256046656643352259730298938740440907202728938941828485206710780519344405791225998681206469148193731860732268407081210931387436769758403894903706215788380057220650864857731692857022097147844657434294135895778710929755372701218316756399720136802463767981132358635296462003413590984465886425636159160500066446754247417041993647736343937349843976138873211861631961031121007710802651885312106660897193500787550106908008672892443781260815010875290066179952060824386894508299789650137751230874528558930556887917240069652566372377112072968096321353455989636417440089416800066524401892212343554064624183755582201290655876607234599299022713763013226340875757642109290226884200369300715941427416066471309956657449723138335880946714498800086828498868283703541901983204092315240748217843169435817593429387597755380369314013555649775621893925530314544817930672184807965857648958213010486778111073072345979627808236807431119663656588597814175886098516653112520507131063899235622267513982448539457875492461732748925398315852536987875786404114079950305856954093584497314989419088367657192882231163968254542643697572582629443264834502010310555828466858123971027770908556216117352470807547913828287591990053191551965797335164239882986048975345535196359016583681430967581671299052903243286946439390467761567882652067819767153424189959514277540439436157179960704369279255353122762498793178065356318015918189395729820566509128909780365657951378223543575241579918061435417260412199545611512307893331789812520472848047245092301946618130062208014946974609579650158475470797503797745406101956131104063957517710687191565126352456639863388898849136804064983759416107171470267627722555256588963938273105542480636602795195169341632945351600276585136014217894610175878124019581857310461762755708900170601199572694629071301636830058178771836129005117993876906426941442595814517152072216420176440928856361208935874435462492131837359939670000858529200456536322946158594476436263360153699330334806369093583391036205188345825414163080427767030720302972702416817813895687841021519400128027791085011692572502077180630678477788585690981792752605061045444221578391737619893781687272753025676012346086734224165263420664871204287134459043752985030258178221553093702080447691188516303896623759075917395081058603293669081645768861516122031283892945530693575021229618617152779774281222082354601095418323848891389074999652636255178326685848429096562709685578669262395249805123354968246874010627915779122389455222469002542022818811757584695642988825891312600957163446598530790013408392944488374857844223626062168744886149201015684316817567698231962996170502161047785183731854097904269714631430655144678926521540525687707054229129995233624328209091497843752379639265528205238884512773215158035568804457329260586876686694036916967998916544395457225988220041030229368886014130957979107867797440407519833987318008316001149109856372333813521055878803439547963403104667559358019422094293279684911884020135408152854040881039886533612430195888512673097099308124987443031484500242620254652213106199116964250259905650463379072838740013676609349330754672583688232251889298475493974117306843098747619754155629718970402484403610963878412905278713402824412425043465684945859620679011814935699796270212955797489185602265175835615344036616501645541309300403702018103415998665442938320603453291359253112641064405176368840006160731619882577863994711408040210648133388529478098701144822257967193973060519292994151959330002066228512563053553025370524464296745306348269789677797778560414726720714668711084478659807674693444206885212905747693506681314097427687869244690182609083751447121547806982426299122139744393632111314327662756655232409279241234021598479446608874740970214508633863415775205256047759305028397181384536806567506745088345848738811486151094283742254109204869807865511969409405109557461218138228641823129470089866935030429382128176437533709023926228260140483735181343849233030635689980529715907493168348993700984814520072303432664747724008681882008286308693546003623608941139052032438743912155267826949033416964151367587979579687123608239522705800399023896046383973154202796527477929719970229313973164508633727956846315417307338264431231108625327246755764710039446251561421789208019140967651107917817578523407551202939638491931387148043152646900980597818917768101041215887708148194189932012639343596867460001977966402201820225745464222762992003567393128404624425541263364031871775745233571813746745130392819762384877031768254129512553535231481942886861436114879025982034270037721123264112731145246696084268040849265575077030213478102414809507188288076052894495566273674167656095203440205052940494090460490940580819202697851112615290474204936547202129249360827822539944499766030490949595011348610391826863948222932787393393214104673967317564788840592290743355884365906537082961446350137212405178031394406521787190942312768412180482915294461653421422562862699334039427574784101599165892004250513652309395778775110916824742321427144919987901333914959673765706425052019003991230830646757114317058537080495568253486577920590578693370385015029896183047050759991697587210146180160338554621953612442130886299187968856204395635753474893954135444399475513884415154671316490107884123527885090953907187208208541599929252678522653620960682532933440092464550877664482062933772064518255125541081496754138716979258536941836651095127521947943925529344545582848762174173769999790012274068293800828185145668564579173549700587985907160596760650362372737837455768356741858678915022561226922214109239351041405992232310703982954356867566051971192907178942647918715802576536873188095617892592903226628943054107946881209701008462254655905255368454512291781784459185238087605344364394005397422179617322542469643742916418994166542573703275264665368916310932847681707003873125332879763625386133757385836403229450996782818162773036704703335939682514796557667462928275628245687958925924925604686290031799544186971944709425901455839781623637983863374259061678719925728922106253103807168962004481895813435105280746591175676691871435839036206267126799072014774333385590756487940856508236372525296298263593268407392772514811822019074159300497787513252477444167124933214336112702330976660671513337284420991526573173614827254271288442890007514410734071235717662924802138261631284453721621607344568050760580060442221810218142081607323468313056015512374774161750935312985259725202757933264829656302060252602404896809290214706650331313240423086093274700285554694216257265986613871238552013869583876974601882456267335665314330639383690663767065759224721055026024207267776299835857141565253563664276859155743122016897374190310362556800899671212154777699265973447057511609879297726659485663481513315553206882997815678867284812735687126235360267666694455837949305730969833359792725513023238939696553669775009504412389161763090476323815673801372441620639299568563327060660626939064874568461501433794438005001225050469986969816919223552677855713655006481857818908200149878203024625091283279575894651240622728773219391691797939330836338447945449625640305955368248793698084475524730368053137317869775692756592043153888963956076760585813761256108416498170263677982155723002771785755936230465919327395269349540847891194691536809334449948669669951701712269473253020640894243503157409752117956541553931181756966622684337842283770104921532800515023486712609889797686279004143733725028438132274210293985348156987606366914703773093254983078038124466784427817256406363262239897668921620982606671152185010355463925833587638165655863557380127552878084867554785479959047854235008638657109609359564769282122062144505682185934749567034934552514755574387258424837249401967012066028827518987651072426524450737519130691073051331503053059346778146751037045247202912346507025520590468957691880213485579024400151465674396574561681204401143355644931553808900455371894706353104182052912830649168797375923510979481749335905405628430681703949186016832946237951798254879093639681938879659444485224093124783830655592281960543561841458871419571878988393303368012209920672076248866457354704541349737295821622716450156484411512173651157062673209819018324278421854806529219381120179206522697963172930228089804305725164737383135620929084122662838213791710294584427338673103206455492183910879054724449963968740373818224442870315958290543822417949614559900718355379217326530202582079049929082456604773128791879723527522938824317459871994024804026983817174439448342094262240812470833454179655468645203172056736105950488881450678117617676040733355050815741161137762848738344804719462739297540481297141722147083735276403264118795360766873068110380521479398651335272297830343405372726388137821262293809378113588228861889415001817121257345727454869330030338326729646696042616296014157608181801899781826228842314220267293841424081640529882886577757053249797479485166379147431637476702740073130240040038780670816000377232629691619158643891216926713097281830919995175736747602570298762287780298121084107624957926062113388795545958049519003723085423600779630118900887644201065471011234827097889472310777839971315919677505065742158216023449484567197980580471219772310989623701140754517772564213070125720835787923045426553741441962092503368108564116754466197939471483154205845528732421863530543872707005244962157820694062061466296272062727680038262317773504377876588585797738192310487950955834071355978652903530106748853762996266674734183504732562823259121666563685646155435892042343242451251793005681667772422851322044229590473189636177646002839937106136217730824321525439722665044607340086091517851841176630454268611607153934711481329343060963172299514369723282997284937853728075152187605051987896589736265163065713080968987597683248631592253299616481662084967757081617148871469797110168664752440611890923279151517063682304249532085899719698951214548793848568463606661724499435392409338194115022424465271429441326596426847761837790083723790875378942600761750959264024287262697238298409021297274060025466533717351165176599208998852610383187531484511898453526764586473088298896871438795316785642304491042259055665432579005639355658237048553535112020072548531390439632749302546952723458679850725319647938167999157956798106288867713731578538167969286861144064920928641648816903921857185159740350714931864704414013306284349289746618999909337063462605353958257406880611439784627572603036494065293028384126556822177479274312746459160819758658056199771374407238910676225872062625564778878641251063838996389831277167323189867462099889667738894636308474065902992783239850958538522005352481375484500139654742543638088642185747556392739234150983863739686895491729525189984358119297371670594384332136778385523867510335895458550091508241909614773676400734131983552125937832517078597359087411902606154774967721606338519304751682081191372249126670556309674091327463051495636017818013578141727091276261905167266628321489581976764584155600741098500966988678093939267147371173848346689850558661681182035359481583975724041769960048266520032037906579595613137649843221634469291476239145365249348319377483513641275130969885648412087100885563172497420835058283400155306435449561324198124214250206302708009539548785831192009127524326961519968577647437410969988291511282332223343157919680509262076706546400529651672028282067216915764761050816194858904752357818351498781196836697346891001230323256460516780791576057256048745077358012673911020966426609042186160243355338424491788864165807959684087751009727554039829518754848974941403675534825282975546909616084260363524397383965690949449396955056481845015951675048431182322834233658475493459872190652429951317062892667394873354074457022842307539697943335865669723360477081599623465703002126617268427822095173613220491025824146323029653371792841248786630199785875069356602023297389864648956358681788198117451789140501031130025444150929164729626610717975795718191753822134631241440462628512345652796379867323454337763813530979907845516159520416891798888374898842550982051438201417710996613236068786581973745007247002165427882436052482683714060698896561016409131895486441945035628353058046628458326511235462697077077774743981348761901701868534964048064286735401492617636681510801620970662497535614225740137366693388141204414905580567687983230580315756202133622277603579016896382359983326554336106388784663040574126338337692468979009467521928597020976795008119417057465980631900444809320446831251054055409506309876560873602905948095539830971413605468017135359466731323762080128929947997840358050567138260693691642951883457331303956079177739314970500878477083829064456388305303246079218760118490935042412256316474774075579526991436829365606145363371596946389526487965431836933326261984087207618975730884065901396325449397712322896758648792808691038252544206164310453778775758912038354421433152749813826957679538313695603133552200900920130674280474914320969349546862848346593894207839658995089012742863556872707403170711384325758004244437287629767583102057913012469216973343375556726490229741417416945160985967135638597909712282695960165640435151678891894534779227227456395647466161489306652186120782311259625617761884792170411852667484913068103442523699023183886294927786172407696832907846083918180851484651751648794339718169315322773545825518444411374113221433533986515950420071589494766922339197546799642378324085313822959261123253588975238850725487361374038124517050634868319953663588210493711424267585350396418446192883923015798468518823782498526533238356124550894093727919152558926522025270923269443270632810357563327106754698699310565599010581236983224641693412004699883718627246261508591490660848763610941502434714149500838315887858255066799996594579825387162571558645908370194282120702297789312734784866154418398044075535811995835949826464887839127766924804515858344821761075898186807801592284893959420509585901533804044223948617193875620831668174008880519765086770776827421266477361930335596475588739827036925228872484043022195577863744489430026769309479679593035746402800450309543527738416498640528026659992827095041891708531181987151787783658949359963722711871184983435300714069182101442897591246495692356290775168898354053881956756459084514102232235804053957434401871980384084054961195139503708970135134442006989356220674137767601392883764212362345174056199668440558746356535277541242634578309687180369882852092212629792417894694809717236078248618696739794208725728250548371427928699807092303735241935814746736727912692125824553627598277406036557572265981099028210923873419508936797136250728848781562360874548206222007467314566171737332725161241151577409504631846656998037139607331550323783809431458415253026099729929523311512870715881520730678407940292519473024627484740888274211483052237205761505092329940423525163157515753402777911816300180368950734757766543865650434785633438554294216315975631560852504811422709957133301971909296779279940498226678332744052390112593968819281265432185403511665937672360951345388685803618045715435369317122406713207912496332514581901937867020222240841397397560882571137014436510937373960453920724864100373785088763340860078418471164572600028437526737400413295420481318063973253089263376416941459805620867342615010625601489212241345846840692470092183319323155410037017478591801912905802542278418234207571471842224351422446510018366660443432179905416771176095146358555380708037751459159458444728571134903596214934468719810693508045551645556214451035986222431999826938271315269624257205932921466739741285367096381774261100535094953097296184884654979157764175036213339447707621697002570522212115757032552134003258792463270613469196456454933651995431239475194867481689234842962961703895708026006616931629648640322216469588110873525592918314715760389025744350986402582929705487235059450975765733731318735021935701593704150716497265591621332804995324992615701952476011087146235671007226298591038032788434785647003995515982348501819388366353165058804251680508517372762452916172629079766760875783588328635133540898944761509267613269330033453322908773971772947751928046891030827725983038865709560140385197284085511186898028008146067633079584477929738434136609804701787811620454117940863250636067067524192670477159196383842718565239769384818287258697177367137411514848070147455556986716139115749777331051702081168143470770895540777811492500304895759630755016516131335665096947509088104715647698426346909363381841753703752902740742025217974042479683561369400762353981554583861942205627066570611178958703997859855845773692597397169209340162911671586549526621560068065540550067082580062967371950285361694609956863897900519817869087272098545390050805228474178774997868170946521976605375979792086030328262528294320116851198938795948055744385768437286028922922483225637437257532049050892002271190154380074986039998332333252425606748875908590596328285771003754937039012232384275619732097676215465346721604348782714510403144592792893898802865889450184583258710265698982561753835414260820963019260919046751282041220599487802845149281646840853782289876053123491613375957375953301066627213842344824031622150019081132598605111502013836034447710386010232632550064709615400804099573448287029357338291076060932754307752541268505247689740647834427594057565080755468517466611471674100028011465988236591913834509430664444949690062323407319718440202432479264131287227593234562659839753985414318743112370919880760429152333207891672844756873310575488869078906212720881577228991373240371277674066158968481153017663306144950399226173330475911816901065991301809293693432393123303449715128293867562822257967177809736047746513942665047019184794048312042508573392451176272785294247553051353943588224286214936631332683840082222810797005024911562251189548310408102593333665993852097173025868552570997881741454556840103857857411332396510532166031271146604903323002225922967068172623929568251710916481524917854582070917275677024715269100901161467863990811694789313931396000610321015072435841511185753546798929027377323149554559943456746837350572414485160399124908656062058579898203456729634761335291545133768150091055293742828724460766821206048467028909879230493478932422399679436070546089669070267953459660010070442393284385331941248251087597868953786376817433917973118030578751737715487234465468999574565689716569519258597367401075226325070752899584874098620717863024329427774546891620122779425288886426434621407392624380255909158566037518559036202366350526053447384036500672122979789210641156511274217675678740317475807348435306194875100363290074813536787813026254543227544315846149265818728634693553068509237207787799973549981962138218176657152084799457951961827507947862331638689626277035610483965413783612631328229022081114285867317584356440438216383242266942776490063577654168507957317432831477304814281659809834581907363163527686478267676762300689540645111702122246521423150076393804572305596363006406711759503431921866321683689697088708282289115533223908412806080534211258404147714537418039637529957021196449326409144312628262088428079234196861213838454439393446199843980021575705814907353094064077146095743295359852118248999695650855882925316763521185899809614863550306018383213506346596697331155221322417650669600741795360978723898218493984593862130352505154893786048135771177610568343661324919081672390458142753323444347680186109694716888542957058664632460937193215950666689573303844596134684034863200709705399662434972982507154470019204478073592169089122710165082965213049380800508548088758431309162785594074281965754388656451808074881394401356757554587403914217611608445987629970424358647848018374404911859077393489225205050797834556551249967944453915810985116114274683897534801533492963666513374376076911738608468372131092728425953445648013405814590213598428230364401362311869681483564984622988313131223790273873784770041764042244554016987471085820353309956864792931976879257067922298014506011278914395358304298894240381636076808915352793060931721702752275827250638343155631060425419615208786571030347855712020539284091204546805002018765489317814739794803221891601752142860299672217630811553469861606268683360455868397083059840132706695994755009759147451220884222865926240223894018098535437401053324483280612842586612322949983827956053570882369492433090243430789489642314154967948038495681914000388084012984528648264009396130914467996302640005236574537969887297015074295245938080344083993741435208026228838292070694293207054470062906402524479067174000571816345813007328277872709729696142559618966606085582360811761511786486965991609363411387264784635482959862737820140810049812117035622731455854933364482434204764570120830935528497885254318742668037471352354691681698922581119827649101642399061716007910589924353605257094663342930271972861261894536556800235713698407172249672386971538436073704756338636331723795983215907019953482604724420761337871044033152747723019026988513677107144756066178204721875516551048453068926296971021894632153729501872424680458963553915471080520669410859721417419917669539033306978854269318495466050300087082531444856465734013357725567786727778795150968456697362481688606074705631820676610019835528600655389474106654281407859723928792026428713590218023720289566554631352775278326840580496274796226895896524854295261506414417808805143005496564298952562037147872594904116510095922895633310595852306028473594194211508786069352176869899341113911637334361096911042823542216657314862574140780342016009808511871467114856878376187353020596495326931223816923042233352734661845154144595443709744316296410656197087890873790892491653985762484925672284343240662725454409113849976511011620974510966847026217150426304070483353559297213949570347045721589636366365785210345459913530783870868657211556182537502961373558191434178724835745824527799727465246474736978813663872356464544035858927009865897606369289900029284295464677358157683767656901607967059214278193075333541763856297938109747959846382636332539545897125596559669281757356059657020105272178618776334788843116584943946391957874738231333136116658476572093282197937825251981928530840825513804104927883211469117464224701220245688609175653835530533987911555206678140739957186578961169078852945626739979493973498623440807297701245083998276610535321128593278179173741572427329666138902748972009743678485969017351193127109259042767609775303273162080662657912582725965132772383609795119504286371144729794888027420378651646095640013888990033147675590259217269913891353138852849931005076457163011924532135149646732791782599607574082430986983671133022024204253866566430280480981857345106723663311711460384263331349642036060651617816938706194239132376967539962254651530194594282152934095849874484958769127236335780921055569021911923439280685950419346289320000622530224164047960850267474301927096341029427113136914036406681314604151983183935017500206084444700251807493195247156481430806754937278420900611074628722981009064915897973547172973202521438631084579628675517481812685239346824156359235463600395771930823028275136102168621253804014221552521729756419361321857011316191555953789240738574289969550931365495330764261637283180258539274798424213341470892365818514670149946310397973978874790997091963329252357297784463580635894932833354462542659310253737379435742536342099003798557467819698492770011397726363457098737562674459733278615064044614140393354962336663017937377341805021834992374362747150620301600306631573802556290459364530152238106863127425816301115193119041067335932622294962374111300275408536757147849289914676794693466721475821522727111135073174106467011771419314496747133064839161415471544962666878846923494693234790892410226149896132459207785073787597532669634489719223168572414246229859988967220536345343906014438825095034510124198899087595396342840554031182378182664973749963717727463475790421720478886771416736554071818827221714334994178296896496774855996844969240166090262202173504947990722432664522968458378367146420327626783954864053648851145528623420534177532450208287246558125423044442957122868422033618397594111941675632901479960339932615435301181785639061682863477100905010760938727479987193267292498188952930064413590721370285347854964941794602884379166770777669311045954992667839096778728427403539184941527401383766254222643749912774505524132703364627486139877848851925173919084038439539837564738395143844446714584831931208860927069889458418211208980746394508441965569537342398656194732258594006634673844239400585225713321104324566408234959284801988191134174091584307799086403730234647436315096879049428900563143485694687038309953368081564686326151017535138050151977439302009171114894572385341443545862160553506694536739514406165652624262302978965681680535776439784306026432653654047407108949687229355865414888112138227619707785542439828108331073744800163605763934567231001838773403063236521233540741541280823583236086132170076838702185177331304800746360847021308577005080980186626608244223815692272679466548076039479933388127528780404714269615777511334939133991928562475476366235901645557558137779721503686856299899927390591733959751340806970036833884142091194299754845911132046480907450834861167037299786300905460428129301104096500829022015093949074981899868220349464130611421726492261902926388464347593427046803272818845111422296647899983496502200564550237209474025648393535961811263109765277301158756126001427638711181698302513470216503609723853968006715881359804642221747186445965447440062125092820173725852833649436719115961119462578171158713857665510095885374347117035456140100355485248229578447674063915394567501995186870687869353638247994376207645148728233852521386374829250437922411481090413184482036031956789583010999528331506595588538953420182017459250879045029490447204610725848914533876880840169267924553014419601596667131387955668109997075146123967260978327505885149159868108426309839813067047026197370840187980119504623619181017232893909963607792742147375065816965721660566900248826518552783305664296017258036582708045627988615133605171925041620160662856913954280287652701968635845447174826797175034240895089838710884310383591489259150465109508708638172386720460958865031810178478275007776463474854094269626221725119595018867843521448401638155563836536897540288269938661895696229301709554195135988662526563120031098755947447575071756677424533305414622372517899804937531023130404215034848316062472847787369823200368387019911496176766742866491511679409583787696375654452651051740982676727395517012696711774742104671460883616614403904426099207418184554180200516934929914547158510742085972412657226258926901692278076494994759298092126182508427914358173236426671260014288388646673583081898966583716790017978559974218717812521280492097357611223909126490888848569815698796110658852205390210950904241731043037922099525341537883620631602126135229785038889920325931739139740821630719758274178279119459055638796838961628246406056070218175311948833921859110265958261551088520620856212512100781945277637194232848040864674934129757535221901828926173017160279206457530382896275690805564037494160536149579121088567940188249398763674844132544395892722934889918035741472270764495459503164995411440854432044126049456853167657686921453091755894795505469678678436820559635509727395107045278432221907323696996994128332877438119337782906251015927330399813089457656821112107176250178803896991780335800611818173772837985202422142773035045708561311894245060729977540064778227764111024743706532683091135611502829551884270726814663466207530324097697189872141889794836235325495562912647469416674162025136286448657896705647681864032353678636102085887746748845431130520311806843569608728660583220406155446593989438673341186983868634740315113578105564616596956373534578726712861887839392825436984093353674890362416843323275338973876843325540245292013067018823581649567242887302913696981973559106859663576028061581989576768379367145234012986280296811627380419676091525697768048717344642794460220028967022495833169233145983022653892985032115685129199787397490074203128329102929799255401459753203148209177957536870072879267966699888149008745391298213126803220136765872006413486666837676124588761862642521670341755329809864852865152302431609577282233295377766870528935399720928656063196702576472995924684347434800981742222282324703373237885827766558115269230201372152775386730551587558700399767355451377382952978862371444247662838509010027585742089507301613961011436985135486940458323110749705556330610446291567241378822513542083950083888692927245417851700680410760726758013968539757510927319827216741976973784205066325080833829675288878063613311375189176113205410992729725136642244458511176585820341865536393046095006138165313931530148981211702059081411379921236241695702491735226494912986905997556136328901963369584122861870740318919016601091353541333326444725154435046741187952619898568256188683782749468214958210525597789055259317097033924420787805728505040396464121359256226926745358848199363806566554656127912354100527316089342936029070272127601869603823867788598623502925519838747232229520249352907836667820492993125630398268626693091157449813835512636643749920470980207819158533200306644730852934285521581759520661917323547796711325777971498420928092795198388503810589303593502777862863958969298560933869819168560163195753133339594173499294379949912546427072558066439666389138429441605774542674521250024615638955310636066402471451616931708903558735389418351213417734837993705284363517129857958458582499849661217685090050498994425670297366755854026345852299184414563648762329554497708982709828234129038857242363479760557194894419533535995074943535956357184396283273093387558324125955218545150978076054257980876926032705444712667935717170833776923494636050943422384110885286267789927239865723641148270250834088215459505434516264511851967649588740728164374574457047646448285595676554544757639228153109437097978999780340299871995634157611655787973944880381055509123374216868451290795185386565615555359973791283986471403809864125389583182139309257813414255900866699340238826349051720197422817227271981767458891595814640282742159806707096273863121231362179902539998489881737642861182854463719473397564144953442703035703302607235435530793799091090634868315143671801716333191431160760056622455001828928329076697408290175409488819950213233108093494670165342893026673729596707630609423889596144907242066417436861128460288323335289949753290644272592553705364317125682136516953314174362514349898342958045694784294023285207779671750145613876882914487406664126692292305940031842475519335458058627458961953646572264107386794789231348341366568897588451916116617440513381274172890719078933112574902727329617783432690746267026870017906239036025967087426556039273766553536070014205888269144929976235841445134553272439540740860619477846443313458074753679509058452517543699612728278585679833638486093043115405688187986694771996013662413547917424455149040937221948102667434877635644196462148531507821288760417239257775173942990226071336532594591837482264824687019025782114267945005284470650195558546504536890698957183464413192871930859164758096223736408109134392975700801870641796813452164002036502041392463755834758852353670973304874451198831826738875078871258044196029675342275314453989567983089762061819972659583458020655278125240234264490780830963164131563184740924919363096433816208600379031693991504380113402026844221463923149254230282849686600484976914035697315889556248277632276537821614715126181192872763630232188795794153314154117366506897447204738639772945958512471229990660501031648869365083983572251963910133492696361186380668703878077484912269139611016558234242061352888627312143908276251914976010787682248913618134388510087365020236521693723739584262126759597298338260279578725778176701986209643449131399364793482811253728406992528663688743628382773218530399237127472813351900002421920002338841659080085096663038780519647958440035091134583433939016003944203665663894654693620302932392104783092776013435240021489172227068996050094339840614217320392055904454929903605922251285166666893942549578521462436989462839725310976348368275469422991457061084321048519862119646930231852928638395432080303933731404408928668013472320385992892919612388641341238945141011941502665930018367994375384677860034713867629893687311767512708817997455402674659109045837729116881299622180818296260986206973629679345957786401853285690498364955124984020219070402933397994768373037796816447041885291272699036294594261511785984287308185519788025344762478948761475888531965172376053952592024674830214680379620566271742228551739034105237267386245730308808502854069635003348494231509872630662530222761063796940437035528790533080716146053617568923540470396052961512438007280013151953934574090064604648553318928289101768885391712641940240061555670096384585315250638734885179723072062626646492470181684621020485224329700109738260954138734050525126815138058598276052109558474058361134472608014577456391735766309022713157050154399660106940971620899286420834168137763982686327632925411223926178274396691669900329213262643095540814324532385121260785491174250511919699468198741182575431315937186321266132730242317893648838343190232091544379106361938277343878854901931525927862208115196565876651519533031324047056063981446664837534367517386142781958863809636649651278955559439488397967146887164749041200220337924835178412217748578034708764670985223957063809357186899003641373132142552197080931758408611020678967610552470102271062572353052251911321029503841975950549436740022828094994397950108739137289427957192397096624257664139279080546733985871063350203186272882321754988126278217591887735045100255030836117790806538043301994292692317665567004414967120173894281500858886358639747033456214477137549366507187143315625705353341811118037043637907006250173400315626503537757217735633566093453672701040457849295666568105040907318551679427662770779711359509044042174409604054336012760619206047351950537900729517203138245419256670237647575098978973422371512775305928966655224654128225786612580069394001786615685754708014235306515535902644807092672536028976547919015074205411713263398850793510698708769733051725238352016438169572291550466489807728233669222166458953477899552763043124852232729903095325043300646901232409123506965966871808044158581867068520143734578003942445597492419880734166430058057892462302274122478827977691444944462631843189120858922091487185832075084698478846069591147024475725605577422451263002534192896922364324048216978575136229051267140919793996321711432088604526288117696978214099833983516230416671821402545386461469329550046545254216832143722976904734237036600902214563618673716964051908970654371075244111665422963685121558296429174062093934354878078584468591523525789159219720341735169969349140072908891836464724979746682971907864833394422249561517133632681983950099067432333240048973020160243938947245979129933094598696990718840430380200390022615943025034525127950371329839687700390630534577517207124452418534771482731084674131248957583811199089603447514088738728672399891988459452770033340508347040720464563562928594854804839264131972231557088867074228682552520942095535320681607128981338968802614676143999899094530195076667641707792097509244986427241850958624718220153269682277021455594204898443565627498226877159335263594837024870140305737733773901720202355019290690892053685116311304094805961754207301877762614979898560608708183181801043732219109295664669216857853207885482748960889751713172687536689231018182135696819158360279521238055764352003708071642086083956180754104589626647044958506877030691305487606246033690112114732754993434156735135073444948928074495124260843448798966820004550617123000081350049923011856411970922632469788457906552759626658810032730745333340951542827301581087742426570732627660726820543916324650753407108567391135091197255341707781722862208561529956865515186776051940313989969382184082510777552150057853297664579459297843064533671833422089584519819295321489875309374693711735844472447550204210318524511648459554440395171349859041622095089910164077002244217279931782134421626127487193848788780997847183357162709078183784445674072928930484678697870171315373868208988104870911674779399061266651636961977629139469919881992684822837471379276082189674174506939280720209853951590059414775387444008525198981012200588987695581231995396585153365208685601193060664912790400272422028365638320341558835351717433976004229938347015872359766765719535324732999601460156051733746412870168114946906539555358369108647782120104110573711695642189991620821341935123779548605113093010258064137075042840045302571824792496470440053906025207595659330338265637959424956470849599181111972474148824706060295048876545584855247233101489301182592369759324084182205183649724349125298757387739412987641861092598485989345880690931145158432775578824342354285026006145223755667930177668889196231566933369169768625595944836613641410109681750801046173652119764641735852581329493456756785799091610806629359223361630788405005259961868683730755243836092230151300035140294695875976241287952852242971909253139636518506874829744145289397609705821623473610718040999335721180606909712177167858865881549680138390481933872226886322471535002104886647692201831280370582885592067834924872927069472282339475200024300726649756482611978449454866290376865663257399369914585037178356510675521428205550737578073859590078878338306782251752804250277292812778149926128069774717361815011487948351297802111841809530632391574101031342055860426957741761880633800071055758587196451636936946232296934490109328469317116304400941638126106043760857682407953099915769934211107363364336912016310602799182247030069962468985791890149456318218987195634724471448034699060255424909759615542508597917429813448929947168942814756275741758994617761255133806460416627228819817433405349013284428757898044233622546395506661393449016964445001538174712314013765089461557285940512222862669295078001207751642736459043212689136211784820447021992273502478962751542104153960619068685361920685778557988801954186890307517117457728106217088331774478536193976135423507968231828634397819290223084291826641039437534274750431673514652680764688975369880053049407741477584341016245631472460864135784759887544994689387637801662021532259675392847617484805684811452236143061223495404553662656485384951057341368118941699966348758583954435710139453854469409460968377426440698972699480312454406484285193730376053677147796596294411378740575903530183933648869644696578482657289396611048762088092130706269127635956393264770549366415869944192103703169887692662976122008745916267783619653826637221508060442497033588936646828100769466861316715679314838595223124173856662762982025988583087163818254281264217660210824558976950894463873361436642684398369630430432229743656312122427549609324282009442284174105740701389351941936321278013246549467347161008024214777446279714270158468925926998992277191117845782887685685252927071190306624008023311121769194818986358258195057712851695033010171612176516202571148205739122523892443554534548256187297597204498240013768466019087633550484625903529814242982147821786578952813345258916339067733770311705185142953689890545741022814302354372019610405487977606416323865033552842602061742642575796678675537183513409334568022245876517493642355902816535111055328131709600669210201933823040534732311420320686689074348530765806683699888051323645056938388065441400399018628710701085974431081250991335504720956835346643585803737872837647024348424591334884979109317390870851914737814544705276891402003471147397023128587358550306941172443249741724367291575492173134695077523751772504865950705106561612928976881461967926864526232619905057688906833323964574849174317246581033796769390974542111741459968773283078807088344270346928133680061668046421375301569842626584512792667522381564382111111803255291968363394655016120130067076436709060691981645678703405189038696784605652925831240762320397065228585197305057024889882346420768660724504236727226328633514967764648739927555661810334003611063757208948639117885205632063512886380745396169488572675802424443684373704990856357593921047732185348501577868404516694976332597180540874602605254222549136117897067895363108237017827454041466770463736995943090919906951375490642876327183251005045777340246159529021358271370927034496542518103372197368759607021911403358884007790872967574693558629296884958474281624994483966423538750499801819040282472480292842593543123508357482524006526929706931659716996413370021848792610380142573271711011354967408395709551537070674003678035641363328757125048327429230461767391926365182798862060721203295708983301105223654260979656072307048371445086459854802572932633989818528372489229611740546544880219764033643009260291114936297359126056568819744638358900583784529398221473239428256909011646287429035530788467016442862937667419681038362521165463083566709797226988607718023086229333501523857439427786637554272356889338607486059455943370604735059064019907915049571630240962397132699433693645455525441871314661978244003794669441787269071712903276720041165721287388461827228188149371063500425052551480599371307667291522485049227552765977278120376786193909454005474499221334426577254146976552316275588755486947387675123851367991715098859866903816463114273738758413229982526684844152769081511101748968648159858889460574324746141584588540461013362264027464490200736420081011320047388746711405915138694218200503345381299970867609529135317043510806953393972334059198410007425545905165623526397299331249695596832632988457588370912620476656002679366430088366022458421215623144590900448153101062454415814070784387502200036700466078008518536747982445015348800361460537898376428882802006366961817528734454774891992755945416182755980014735723157407806168221836292881188801021226978584971188290953126622809414690595761791990961116819034678446748879418143563184839788046119224424219160867656148461796972329991804887576992038906086272823673087574126198470483442290553205389380456378099789144013189692192080819993716419087405127619175328501986025020777961468685220971848780819138010694221385992566614428198604233957452565945389735252468150652715203510404947371987998059820291213917521484851187966581714468911263436346540310774322473129315356259864062093130469468988931692019415191926948908985698737083246008461437844194002371732068800768094053655785453308096426530363707619005961595660449177157741239207774430303593086081353055225363238898501976366475424885472911404025419747937668884083844341659047233096577685781313631017107819888033578851615965024541621599865870674883588039214179434730198998574538123005258237478634583369569946568605643947295042994995475354631267986399163517441604166313928921692816569583195790292600066336023191553414568312713863899284922245999323678813274451326039227858122232238918408591046092986010672979193221241752172680102034522833652830782585123383799176616869840700024289762790123913347521382363431236941041482574592745249290740835988706230613971776169598665029064668579550563631896377639913111054921229750803503312379702956544940870967661673541079878512936311696363245560712930456416235802035097628873421770900685428913744352571521268308445599145966961403907820838931712056825411750465985549151465120324481468748517037395626289436038042507351779054442783570810292271946443093384612509325557178715859811700968028619769385549926438743580170845653856894656426187343027402959944999606953309705409250262534394570153657038961770745969462606166983954274221120176464851078094087208882557074834252070112288617023382139480778624484191709660394905054202368943356322382267257909677357017283276630306161288695546936599930510998162659241517832173634903146655038042389668508209834726326840368548878988306630594782130272643930995943085532968635567641759623447673555069650821401837225328345218438417059709193812261035813771444139299388751522453204749369438836496451387338328021814938993995081502609191741093031602155745848234781541162229680986438935786425341730158943993606585189674685574797894983749494217993915206656246920581150244918937858077158832659256473683367129861949785232221759476156416571003906170056114045250875261453221423822468831093236022022873562772479022378294326712629939095899615952310465373854675905353002658957836449115366624011460060831881731501723589098737754659777651823362412228897197119302708272317266562631543585168054141155313981162152458885822201435302431621756132300550536623310255585961172702978090187577681731059054733838782365421017791738043164381435625988522620904236399579461707309638181220541226005503505551772421136605417993714579180602352955811019049009661183719224152324246218179542017194117923558786671486335291326621605811732275948387153085881659682718085075406935204956852992907268313929218767995635572595619306714751227473808409637279572731980105313331809968611067953418949648260218539547960311992324289549115160830242831555763765694502999042270047065949373487534056633834389837461670964413951140712441423066944591696408111098323901402015790846935945331322932463304209967170836415247857017908223643262698726059652712655729106984718224264802095835541199853359283233032745784363426034361946191561886180289641458082215996218665312348624685462049700824698997152422910035862952416985458765973652394903877496163647017696314515210065741301895260122664569769836127610880660680005448255640608257567864024200398965348787296028130301224041405435163281878056800506998664029738176185495943326824089843759915114088961511104434729564833342557983934885257774822519654914462995312159994331716841003832902931325145276252422210862199248915705200656067474041968107913699725144711265389461410705659739696624223932070282845218802058598156965523747862437798338882127444382331622246003051079981818230530348910517618177916537449051338261665504156227263032309290895927845741241248111278729685237560822848251289006017962710715940377131627201653067922060811212321081297439965005675702831722041487056286048309481553762825046439747794839865453124148772513123960855178672490747282239107517171589459795557528287693173175765050180029749778157933047741627492940743715894440502783100233930124672740321815320012571983051978576986776136238490391855369879934334934424633474555068661061799729190346696711289431387666386263581338411947285987235743252405932222085002034947130893774718590500596290212360930436503944726750153344194968030488706409654146356221759634254591333804374468095760171973907224416370355295638064949341946099704095261441588523584237506442335558063289249885331241447649872801593056020409872110118410131430733828138521094787676279208281458976594498158632635476455461994607311729227802057665607242003340345132080515865330432909916961698745692567409238677280744522502891611063787449067739430890017995551761760349229445477245081195678199730506808056166252821668967576013961596043692592842637816254923104319566587796546472448515433111949818337604901061855175579403237675662714473360346235687434882437733630803060120915700199823883103653771642251620397763663381692095756714406794719259633999039994016697467236787866233245175768540177701189130721117276076142269979551915404401444455126409066992025116920177167560881375215194951247632743594924250510064989183522681982704888029193333018264356097233226770628695008918957362844778089586665239067825707837696492684961652235262820592907114188017264409527347166586599068774646321890732096565095769142729672588092636685440350268988717917006950856345817479146840469038462968859940482207024776015649082787394962029645715290469595320986870590216174737993388131770964113387511598429485732659764872034105135937189060129512145361363946322434089557069374351205077367323374879443259839199869402646661223379559580794513716845386213287203646064937971712285447798333620259096775281841540199275695762030761161551916595788352197440101225107938854835909008467766471145969048774959826144019285734056661986685132341793922713567431461738884055898794494103385841825476151290896792487393625844304313942163320321769336352274131698658374932497320417497896177702162177338439495484472319075120723922415207996730068232074319211871656307916441334415148084710509512418475032653207579662367159740792981504000532140293994015132639196031607565172400854770897646237144601969543983362188432524406022803889989523781327404860207645251007057229991873307862894358223326178337918497833334838920369900666570597995430752588949724706890782125274684359061641261774589019464752620435447564514852145068557588420892083523791459461261655287895814361276851237700802725823689573798708728431042858709319854758737843899107328487183187447985496970319905859198046767464030580470135816828822734984872951528831448996323084963230669650728428898638483856188798739726189817790419622585770346202969906145857506666816514404583251572050348762817468938544440166160693351657885268711521203760918259212301738165928244464839969064962504630088314783276379538244167419332360337552517678758296539691089434180693298672659876114683174646307349706409795693211222050752955227430016060488848032407539805354456815220426156290482272990110160693102281297137260497227482510936556319810097585395066337571977026058185168712080711596921874884307142720080852458025542912620138441484709051617932575875413009995130096422649129578855357606079006557694514222539452013988339935254257188433103406762799266925458896828126467077493326356408126308521767864633228853202253932900905944672546162327926319536773495462727428066608160598369631799905070960959824382851399709209662816052819063844534893751536065039790822093133686577476916542575492314370289052895059766378428042873027120728685365752662603684114718876893804779306239021032353650496658995976893427898469774344924327265734315424992576292797464094246525116305425035134713547726931027747736088737242995043307848947349728740773471958403698444099804138841315526992588053374038474097923210708807155140185076471283053996827824456788333390195783841585325821325151968395065270014398296146240206503371555652904481603785582204576977664384264413186959381788834007502671632942107902852669698544015781040422733967182124493308318782641585243082562045189129774100305132650798140174537250251281104268743038548197869956315487037868388243059861115332214784325509177071962590654437270464459391845969313337062313099732960251166074568511483240204630111200805127098784448734971005752696236870526515142918237622879046440254867720835585274445850399158917599704151789629476209439447756292808656939317176067160816936739549682082937902237179802198261029086848398523380470865064658381080792549877038881889126401119091743268883198793686650296439042087628451299502760853234154783984011117412435069466818975347377831558164333079818521616503677904560441029257590543884522494559732950946749145801202402994894647041553060613437659234632095604100209434724279846613531341856735550322822451935314999157886858898962852389108030553183649343607465207346261095885520461431250868173372310791255346817790377519639282151210977027680395047399480105297229569772235082824313485173986182946183637506440828188384348679505204573078687963315709465284506899013525400069637526370584839957188794978030949554797942953979654388184255824964428415023684190947565046044112798854013935540005598739838247180198534582363050593862395801686674535157090537687864321879263399678841544677185821372125366598479196883631075379344102744348595610808993774015999614427744253503645457044032762935897019316364027137954256948407221861562614168091552508063107091813315657523019894784462279745552324467599507405320230634004681196178442618496587332522169936391840023797861224852624967401940622754645464465083517476698262284713956911725049131742225506637227975213750674064812144249735928349807492798265043272417372547873232425641034698469174583243585592403261753047277407869864928215654219520742154597608762263833353739306888612771932150788294568738831529081015958289029204000122997483941307867234627961863741995902847434871233787559402552029941196448719209962996434640029541593004723884010368912250654541927770696827255052066053924234917296724976218599569157586485635180905833809983442476575060934833103858463635750394226860494590997687058390384020963960724236497373717324692557646352793685282180291130264837817659014467903203150135650508886686753317673312705078678109841568122644083355233889381801855346611418915098431397595117732188973663371587428236946775059378683602576892601868959623220861400280372676915416318142895948261539232059637371780344336738532340547627426840452425781710349351638772416391758537611656872637717511177990948006271164907289988858413735061171787645654261398791208058244510372550234320314234726996362949013398873856788763300079438628728420602535096920750854803495025403825816186598341797887462720751068309494377730404423851546308542543904139251062121623720776318573418750029350057328791972323782177754437169446961899978253642724617330298153143636199319859189433573853150181500000663439847011862957078393823734908887003300514921954202236061601200398494467778999278060555104179920362355083555706242324073229929785753682207690039892769638802606387095355002637329013692512488969131393343765690057358368458387604250693566992682142060186384506606044945479137576514453416320896038664729669104871898214263751557200891289489420255900771439196710189308951973583250655743845118376823084604880884583506544646274360665917605086205062477038943832051021956699045734021188263607477203428410688799320881197375825921284230650150956337659610615259476751519922094631848726166352540168420582873751697431064958415647293621135595340466410800346106712546806529547961805822638328592887279465998135248430189080758803766068134983450208906179729970718536927930610652045990769634925327492438097545906683572877629301439226051699311472723284561470978511568963288256525658714575557071079081476000621585422080699241510617653427170494406155898938123549991383200581010574435581971429362050311395431782864801440940188012896016214004018955556160937110731899584859633682112256672507819336212937069742635490848521697694930736027419682997241958879023046471299947233983860945208186799447221179839471598516309127200314789676279011572669827303709387941479292124729854454049747586788116900347779368485582380173160543551284301627937809110582672717623671719017165224536042306861169300435619009232635818157027484885875588892603316323534024331812412335615792654371116125185114608919197071783247996070638625059009463518303534184812862738046201177377447866619453014724763457100236781646499512969218644361499065637267246722415148799159141024743487469297291284535027658812521108892778849186795749961673955777508339185628746212788213622982317268735655334383673399828460729330057848612298934831891833926593699322582568653952688853921481112969951135833328097480474540019035668309155391069338472158541001589766969722508348077066340985805381139346964965019302351242597391712711863019238496540292988774857214320843924201319175151982219815291317679626877736577206234753411801909240553511447234898517381621596683723665372220517700348195892192486450013213506000388623453787217983406769602568978280376209733590551269352901199470802761710602611190670982847411026279889045875028099879991991329957634130062501672831124637889861591848496871648921959873290625129090083334524398985781272854886075255794761434899273933781822855845913319102973796551213147397181669888595483080812639352287691201131480796582905758445131660199418295942194387027184385500072069616471081524184463200503268486013466054600275141550875800321269450161831960032711792524755663333072597972980587760056683541627752695021372063417880238748995635413898173867352912473652385603664764062860636138697226176040356029369895950201625600544868791241461687980226587442574558550009371983093772031727125977681312787085550344879242772297340320277108405526778100743954048063513917776074715552924068631305043100375043366824949514955528536103151427688069181736543924484750626376242282588634680056012603293844380448335044585906956036354909963324424171097801828788735308443517025058188593854207127569901563848988677950023145313548946614651564596563017753575625929903296239845865974043119213803653558236688890761974098678408332529130764736532844293955587972834526162020936214655414957365278290190578216201936331641057979684173501308719775543984755804360852102732493382227132679042860703795666270049136268612818315096279959656196163091560218197735018387917661152665521443605186282107878517399906543120367577173147895588791315379963205173020043415201096443805119811083171155874799007886686227881023232102994157901501292440794426484155689499142932637972079241857877275591180339776279840107634853137475603588274946467893606795733619230057526293369838634486881885465471540026641342599498574426674072889829861773554828507799611435266845376063780186274557509911742541760845153300852515070934535522014931533930310906822656082621962129691198214052362970045785880197818121472334202036808118380520801724413140761148385439860084084252257761266835713224537185443905550889052316302436086061516231836128482416112088390691858937382058027404367985942784013427945503416306088623486308459893469055985457954679549093054605361294703374703835488034446599127919566086517428012921723785710414689437839141791757720518587127610374868408168299396279416184971242031689921135938872134096777353791516771635837024609801804581156834432210140826975375399060128957809368238965098851688143547119129202660703633396226637975682102974679629187441014098258132608860065861760754942456701472544792132748515233859328924105869221796752120483047852312577792787929353609719753015700690812996943356469414259272378697622853170277649654639644163952824663361633398263261406708878912844298628299624589078031886559262155306554310617328983481331117993757827251471016812037867406534632786050062100921539485598042172773933976206566647409415619800799042608855327902130467326721417640741494964419871666932172697743877715173550290694984061857970611153216649347298199376871586729383813748833571355978024528262982995338445153230912074125928447685067692752297029835990877940990747826221022192890960278428075185245020251386868505093957830825584794786970998266946008129818033579107482802205867487957656496793731905956310592395164661154099601856396143063706419063807974086771864599901159834868954704941106728294181915274713021781616065779443164067693853912808494758712513672165905408875304397004830625518027074780308688230721657732427989075733950679625139488636024225332951240776108710739750044870873533766399970253820349658291747980356405334988989005942387557564208089632501566020263294797994786978999037244181043620100429173871469803122595960684115677756086446362224950760546859866578104613614869835016591620013667078302933604568601375008747469005788043318288616131238296066456460987965896672903123886648208696181862827633152405332358323876610049013020624349679235382354904092310239120273307419637466775912552193844010501895648445485455311872110457552695498036400761839869973977519199289996738536134862768372151041621148284303033773265632090774478781508667846524948778599805850993434226569789647673569018169381685319972120870025717742331505628710323870143814714356493207736740206069294669842788027131712603439360774515282335405761207525659022047100341195837610867716324985616039820431001269794915523187546557989888932570416419160051564289555327091598204367112638783821474391418842757175629607681664426912390385936097150810176760085341584588433477169450350673553920958450356238670950052408181002540341861919402290359297755936925379822909914209689074225369592408403346734037244634685005346231641670534223028701485871249799959339657419945208753575586933074527369814407683604103547474362343541783894917790232887098989444206403282121962078403955555279344961038704075603691193124085801277709193970998994168824073604380389880349712313618163245262559968060810381800276098522604351879085325389777243409655034645646940171585071974446094222404177063382706191458416920955162877741700758273990276399815701811082945075775775696599648782609994629104520062414901422233415237687005558206958537769746148569828347430945222528487847783186608937760010682341351918197155434423739476736716543173478973061568525860287417147060125194576541526819067289595072590034242138474699122809393669949394059267793981480695079174068218807964086500530118925432598429947508451661856953384039247547555655203276636367563413591826080300519064911830297908304116437618522584849850275163808299630362629220760215855494027481922394447712004449269244324523424820847686803338058721167896982329728369258243199556570265294069448460069856392369742685846216428880573949761497383532676252384233750189679291345992398520432056452864610385338480748284413975752284857027101328204131726845164552315453261117219477052145700296354801274096961862569740916965296575331819206528484863750498421979038652174954349758042382484239822658983169970614867283775616794512269187598330187936253997226636536744578979433453885735926185085180434346828446487285170181838389425391953890747070789900934250753892008633138933376850942536669304785596114677299097399295957296382325878074626524657291558963991829487321921566932253818087791417270603733636908192064791030962041428622851928218859835348867377158557956010286382110211507076558486965089381416157426684695097046279932602193918082802289226009123413722572359178691513409970569296959436923083015841851001485101206221816568031685461843585805082187778402539206989963936273601047695481706931338981611914140470148260059726600594571943667134122689216783189520355590819559381569392127778885303677852286965740162912823881103314660460711515103871348075406008354017969120130768832107658505360316008590122894464826525745835476971465923197575414154389036366474682399889332726941121168243965772399301426405621932434242305692356042663070575351203334705790683315968826845476605449992124796348715948237659832809413441373403049665076610133239198792427466582461916773289321703421425714860913767232242441219676316193629280237656456117908440429460667361206110366312919829527975187699809481178708400744083883332003376751242864072947533261501515817532265940122870148546910425973794754978269303962037636152174096643712626038660755283615769179316266014941060849141870303794344671139463134164591002744596231969738960967873614820224282664323216542652104497098141073444630664456616126812079556517214309892143004048201425147517405624230632466897441831578815228473847980856906824006657404531440498395956007467208022182644344831640853905055903633232830665151116672744511613664060069970918875483932099872012700008005660172673522973207119785821877647826292629859982670198698424079698415701549993693819645813786755025147797964979573026995369192478486854601278084320263802078750549558272941471627486120558477594173953605822243135127332800089445639877387139821424236773004261638760325784929297955420885677202549006000945174370730611787574847138029095557561129657292822952509703635164406321635529994519704204876748448279640031708081911645010154589617171486867259679573680225849654219091042577876057491592784554721203058852010234988215361630648884567300864857244967551683141810323667757834051449568133297315804442457720961653279225129047044103050898184816154303557932341078676869338113021288263064502754711623938406544490106271451235758339230825975651911164843016170374711415927039580031359449611365560083049623671343604892537180466256950609273587726866167744685925742449200551805945359908910502335774528656661584964956673352979712512141769234742654737900017678784897181228644851921508460202319155994546241826626664618633698891948896648435663368664454725084835997872092618397923023759416065369966659566184542815171223835693624832037455657487314028774272396245070987862557645728869505876506930141633726621663666848646400125662759408414398421284919150412259095990325732424808984065350998515529253095917672561437402064043612780555589915767833717801629904229599101695759739610990487883667468516863212205298929423910122892738011284777718258463804460674031957627764464610287333982454161063686153179944985038770806426269239003313326394847903338377973680061498262535340258935699062543974633244874070303761574536132661856171790306152876987249909601220222422297016837425678460616108917593944368012207228565175170609810933448120034731898034141776375819237377943504144971078578266175412550451109163763249473165811086718158342096941550382594839454002234450599748622435179311432989808460609989385511702893381302850084925173619903592028600408839712929158652917437871073248352724390608333346578306005873878080683752773854763766004562941783025275371552315000910108502080099082959848444214783076292666229055233215117265438739702279028251939898146786992623758034305429795532653059291528640449290449372709036996079974387777924634211368658158174347021506150487540267560132523850258760271410816160780787689908339922878099604931545206057107037218089428279007365735312296576096249585212693794974139189678394217276877052361850150286715980692847651810617682882714493056188636052319923957802310887734450473107163946388043515487884821785945975963936359879194508531334226134216864144143495169144644453971921556232935448883805698066230017312194993720829557017632359909182812669891197713668300078983408453801798821544553623188273468549273390197947843442987537552723037236016242623033001655174673846381051632674581351962238206244249623208146898168322187315285449832486705372633904881116221892379696567252770567137065772526490200293743663943575366420492304175146927438330183995012488080143959889664893718021940905276894629448139323022966995929305351386016327998151687330989860914378804600553990786871792039724641261035708677798808314267576497591163974107302534081632700345820018652493310696503240695846363938639388169821101473168031370612048206621517087363598977069701754677390474165095390702407114792085340006302480106330094227928678217965539449902691735198111207873417323180165422533784201985323157658536754503368977318811534886690877409692970861744684884699297880249147761593177303191699270940508051259791238051288369855987672108511615440036022975113919527211812053067392872996470698459108813912307991881113763083021359485857986068858981734543573999094740592312770423513062583138409606410739831276314037502126635491217300387413030782346110429300333096990475018918595315509797197707903378196110151070502859720327730090412612838953611610515464886838905055888991077661601058405783600094855582161439711522695764000439098281601889607506207749818058172243143992081606740412125837255360645345331576820220875001821563671006049408065991602458553441476889481428036694593986122244259702227541927441186885848976713716823447704196968005837396335072820151874918174200871797853701162127571622192912112520113329717374504762814869593158864191324181571731734960634373665951030244862338876132389456694152552079159019729659642356158454061077680608236972604450920581160495865297994401928574051104619953883110641755642956259534466158704061780883330655275360424974458394058016546520371087244453681642594559716871380469337004069433599302572137136207312130549959027238198888710096885211135986262200980801842341055207381519221252640010507436979492105482937158069079094460094463983814615707344837680939863449846327515435429612615678394304117695191732224551015183327702311031773351097335374238993436839932028277866309598132807213834641205421610646258483869613570543312410317642116005445187159284117722474806611649656409723435012253548353154857640953761790903878435810130334597688516849185834938541173081343610332536258572430539604540443559647549140238269065071301589118269992598038946628138847724506092196837757603246495107032216808104674979048014358811199405362085849966142606901885709701417850605327438166948250357628604845928190167444763285226750297771258324774818280296432862817880249629633950031746990023848640699456966165248273116188921577098325157478983477566553351053438817792201663819554400154597410394006678526498053140903776220489127970297687475643326048023035704637017285221630067716217885726288373853503171649306808841922256904325611311203514641938953292134626731378558753830851496637242818658688227348929935137312919413563919515252415861720768134567881477590042997590714768289487504847104727078777053485302219800253815048698778050132412953489492672496201578653315866884185155919619665393083339016352578820004656894465957270085613855613083528842643455130520873549070128147142842744115871418211998886252531799778712932410860982614495649268318273050906546648154917437216377400259793161894900000330184673352913549946174553220626606016501970898036016426652034373520753233419366519450018035347760736737387390628641581251261788575953978117261730670517847556659972577567347308942101805701642155839916310227054860445807686592529156993678058865678170003123972879790896777674981181335904277969617807488249243824279054488551881895617360319665145368056342893635745711690874582341651274936547667381042367717285955208457088414321610029829346665159235892495394249656592538900131336508582752352419600855670798136306874017483918549143158083878351694663568336265114909225879023902131498658581181776345247988343533303472625174369825755798441920494878739361907261952888750592070477058109539478118006851612723739153921275234927248407351643648580922519772152678458522279238763674490562873419896519005775237191848717898574975933124467972523467267108962042089929407637184536400761882516132488250406052992332664231803788040570627509361999027356814645662791141171506487081476078375597293766074785675033665329672287557321372101668049333292186309378722724366055476152285326414406372284531496723670915619339620096977318251178860274358175394491040084636275344047834663770101376003788664717282124765737620342489923126917985558808760037516722132835809884874117254472889651919485371299888625230946866995614786539983595468426342107261847668409208625635130847827268827704693795821772756212109074124138191004134492515451161469451866179368065208861746967396662164336732224648696350871590987369580096112842121870931238373675495416850913793836901643834171354745771491092743444666374257168866895816540964008172668746051333312695863812541015809520715976520765241320985529503542379187998738187576357963518547297838606333125643192719440566944143034996001474787434457839804949807260929661806677840069620408105267752750588602222710883753942046554981418947191728538537399870844104833130183666222340792659153800399798540834373365859330118398637326642370096727688895095858015120604672247934448071073223089436496502390655706141094414647159281153783677032741693843197286413136465235832647199646544795650615380538646890045009787768266068512736765000064464954083761126257738731934468760479100452996453984223663292062599165604737583557048353670691839039638828059508074401314549401389854381812930407251643762518932766965369358838313224973608287398026354189138593419470779335718296981105903584401476781724702837093260131346619582423251525630317659024034533400521940383263559003906045739861701411837637586057442950457620141146204726627945978141874105421658534984362632340174290926109830507840198387924186535636750777553103540997691300292320586018941072371163653704545057513262653195551892813866778256398456901941056724264324364658349670619598086281095498206409135250147501576523718356394047420046382613458382168279187886509918053013019489800287915186859600443923814415969808521200396626440904587637259912705008823363729807506421198495037492133108022381844241527391943822632676339830970654089587473226429975917880168731128874305429311331100473729831873109764456049747983753165415446355610167664342497295811904424901069313771609972301714054460673265338308442420103202228691594219734354309337263325746103764671413268684880399133726957263069072791309464085680452095456690561581850783335286167250698634561999259473067975916952220199321521234693769429361261761866816914144674132328380182805986937778774427468703943348672310916863646364395261310204269819536450160406757995230109061260483683894510181455636467933638990902206400072001861653491564926552918914812639583286733750073247441918285673086208074981925884066519757599015977486517346909240151756644157587694839754917275825895422174245985830440040773847933269117266551893243437485574823631271661217349887960349577464333382062157122003568696338169410797305781580212656489564705389373742460788711601651293012360039210656928669185319363707063010975859095462363482694066640268390768433531480034467131580810973617269495806368650589025927861265887287596222422216038359123163464048037208389249554523742805333386847417872096988460893039523187400340204765164682797348270798469559654825512896494048905106941529651593787183648320432054344797308223599035182246852109760614899987542483030687219893520846397423619570337806917340490546769619561697773946661393804792307371162734521057754497446570486839039278382686284793781993469135768192748600575029568314804571825792708294508041843056744438827788588322037380686273786994737947772056242192946475254399158468408950752092169404826179248399788369399662215122065453122961146330470910516496311632332523632841598474105494673665950499885728867480784743694884906798019868937762619387121779590182107837091570592117462867733927885566488128554028737361924000406479403673833321270528951453138772117552506442769283997842704943415111471892251969395478436475755392764880209559184465793767499514695819550527998729138059999638069486336491427687976048563592981145740139263752221275202181284440928183674777481036070593365895581372404759042470014737933472888919600962221144098487074433892197113386005151588838339184517607003393170247291384405485802876830715719576719199323210162759130430747656592966661255262965296933537944176772720519888417778235065932961607858023578615502017684070688755727065875475734032995492378833471288754614121833665676933568703190345628727026054417889425528691002148893685980641328531081000913602390652419453497626246105689277128724177601163751338635629497224222566255964594283893949310577938793028418276102510442038325567792589026438567210705759566560384057462349490456110486204392356614350985846625810945980775306008388600612463057848131062467557874734620032242671745896721624206568922222709982978570108701390572578474942308773974673535912192222631340362889902742590903245275918604252421065501945062273710418786130848906983764423994542154290328946000606529994608488169878470665582731329891315969284978723122596340286605936845351137051390820639407477257894198887146928988688529744888388925710204349347958867927445399885890216838428039692942009837580446445763102840930560783278138924798169492884916999692975217662517714177117780825214832272385172937620172248418448134868543278204484320414268486384793817817789304393412772069906789440067740372486308296292184890000085433677139957260848225787295927249196452805223652025176065638221270716339641945463280107312181468405383678643502917403006240415728244017051255470016405549903315282526790934175087030832270401474597394422646036482637534025628856058878251819513301874605227979378907851337672540221707245254138143151554044792378675767075250729942849866765354288656238618639422475053970809262196117360322022624297923577533934654221501463085728407416363073738847839268656058181453713896753862413898813886021589128513304351478363528363082786526463390059456140866795086543062783401496347990684281072037784708767363936944819585987070046371254822332025503722819881169632755578098625385256721456137275260927992473318449691290030944171245435725424803768768497999705839117391386587522627531374844602068569537747191947607820883354677442805318089418280790423868528206974913129984147406398792893788977244337756143872111180827101944000689207964255802166779742622570114318380321656220888722094668549304058488635808649269238131361287235217240018729601837907591601645757333202922931275035022861554846306136863508465032651063547164808563514826251430552118533268960870089252873481201750268002024695638144030933415105620960198722718874306662023568781996476704531711453089805893663093182240750203020200470108057203053763821322959286345352398318244624926737914724877196870146441317723535050843856343115884378028650690034113593738900719293915703228316630990139164901884040712830037531227981905474179133327591805910152277490203523776189310463508609521180263312306803972084270388269490168692509816779463654790988515390664438047436460879684646770308442511502450625441764560692766763908495936712391132954488181973668771695582785830063381851030405304362943747260225081028781955408647057702963369171531428657098823951226838905541287496721940960314041795470251211581033722028586859149058292547973938827132877698449206143374017505564893201728160310776789454301426102464600442521379773988534880029195795517524692392174222483981041232567416635483148784486330153558246073466869600983325774622625307714617421761762027923257244083156198626589491286050738446647234761556449133385695802331875198824563062961169406105243242978125120981262294127236908368122008473593852584295812463121786275815381052448431306331064434271657667981375902568937994485085677178087432595505196633366318299670882448150540897989804371176814381572374758381542030977540027223516831550415699952377431493125752486570058956294116584518544842576211248122947529891826897703621538998296835156001594175932444550041952150408163070102645306684228401515943467676837444830564657617065255426827862975688366005029684061167192891369167193879815049714280180759657573585158118225214207608908744322223155366507196543434996558730488699105994109181229089733769662512849633753979647741049996544623259723158523575302191046385209912072091458252541114143110233885951040230173379484318487995176767339149188306973085947647315406431604033422007091118071968173467196437905251453031329836963685995491055320282050413104726057422925596297609955390216288176400790835645412550487165710574732089780912974480462878833408925180343386947529022001186315528208678414717592130437582490393875864884061739359417419061627801193272735637675213098545680325626064608778178148531381354769140091161160522946743178423571984952718607747185831801506256759027557912713643124863008245655294872952891819795302199501921126741877117106218954934209536092066506782829508328207729144233001403971226201570020879534736245881719535707141757411212296823497042986058417139307883356941361220009877135270406651661378603468728612952064707544561966963127377754288379959757006980786275983469704336529190620601148697890338658995277936058655437132100753618044172543410154814490151679442331800457399471204693912799249219107825336610177047585832900120818936337825720262120273426592421689214160065010163899963550984540314005806010730532862162575317652570615708384371044167714243059846826992715488729327359485636275954745404245233651362248744135543042398482211324208481361500137869118025397903732982705278179734534120617318336786725416394095556246861126539683139300912872662185219081569887660085615522308856435347414783112511157756968678360345132367093141088760878937973631387738989966382669959047729448345185434088180255521467133000844062019623487195646481787795142423302714589708003835335227531448005488383280298879130708718527203079262554115502866231820766976597612860758658321565107224959557862798000547217134541048039780029179663346556900782501572365931942714746129448203890852850739731551318603547203315204009095391738898789428730454631453645131320281941462678537864166928414355719855951327977511727715425243601796878191274805099352899332060871627164363653152914325890643512040228893409914528015644672741175150383301182597512559749654505133476323460346118512962541163889695911128808939354509227193426058065129739405350281838036782769284097322486982173324522092833796912026385834105450944576209458869906914603868788737385234682783796510954523170741061158376133291917126888376106383062253814471133116262428287116074912975320241614309912153397560739622024193128756381706275967776050199238581893554128893244605631717855715321538230365815695552284018570830256170547527590116026314742966042555952591566741745381494242758057503426342584899122166006160973341814731803991944263599150725647913398538026211522570975166391525597754663556383929306704822123740061377890732988247121989283144080531255240506293497651808108365675135608297038309975632862304688593015879846387980939093226239350954528319589658532475959978954948643245152041367879698409555045463190529721381761118425914379910657816624097611878493703728625970163394448332829250052784409800902654747495436099936591838999463842026450256724730096331072685893169407348623511315846650194487536256533274871756026904641820386119725488257288944835053161570298865293054864745388644005565490796931274077128832528264376962756317880300357798772397252156521122181195111881767728046815473488922451767718646138880218526562273386820606022827923450860492429544435031727418670953871341543718657738199263245171246566218348700976083286461710636156118152084046326819796910540760264376793120232548482635029850121487294011667677800238752835694209885435337107835205999262535931735879237589165500948820051399940536195606841910603599381482784764962930433208904168534025561381208604866305608257762522994646815209920929222831621361868671012049040832773239915302455333135991727389088958763866570959460679688251163522359657037932076881830827050169294859971363275617437169153169686763722681057765244273113570681177640189574611248891531365024100988901405579849133188963538515447373323739596151689191292447398003247580945836648683634517088634059380409814636670960537863950231077735728381997140777452142644958366894414125587681945452558317332362125636222656496300390333519688322455521912989282193106279111664433494077838735332758412527631025854689811526854388890602087633681398064394688666325312414269217794456631350601441030826887380507689311079306271371718696767824184391102005142060690879899265414421197917971254470622420540294768161096267290764489479100065772310318238335412078681428896192149598944514114478809719088142213518592412306631442839343040970239159587549630244770038327554243217758196428061280510019073202339641258667350935627462229868489319942992195265804867586731148017804108262427696495462172210075317845160559416804574355462289729700085033580376630640005237297073060582844187419654817860575884540731605879591871863226619000606053678894903727869301022411150417353820396831388213030593115674458647304990429012383637686060462248364191913906400339071095033443728074718271478956913326627816747027833651089962707742939144780143434012335134776510809408869887183652778531780547817933392625244894012384236872722207915025905329788652443379652089204788908637880718317975363537281502490074380649994477233841436134537821734259562464281437965853824500116264207437997294310085697043496234702712053795653929002066616393176258269703280148046612263500665962949476020888647734745399565914832820967069238585292121664080011605582787778516097961160116687695853290350544204798315943447509907375380750162580188838990985284053693841855488085732107938439457500989623797251190954295675531140797819600940978734959330431318155755337024325460780728036737729178421249682590506162842661959039515693844013654523156633686038065298580331873900733687397101781505735503272476068529547890038954026816413930481013315106784556522744024101650641891463991002195630864609811455514365416885201201591977619255243648782912408840761085353765625163155342957957887949326839401738633478542902730698778674722684012931340939641309880396996974585789080825883902232270372693546534386221995541209463221541649638834851600037472038417221384458136771735886319307860122150347615290179039353091107769701361148816112913772186906914994548981898044698828498661545422491256303188303120809640697743537665244151520926831462374155866965173798664711966180207439108829556584204279756228977575764468084526538288692777388995197081084529522969078898299617009832855610406325532892630978236652969911335848197318510720287737375435651046678287082814123873469757366175756405290965556120277857692182180716772867340420123590789871200777483935830051717206869092790165757203618876073705300491838124577420341358708201998475425546558420954336405269253713609190480480037834665206026629373581075485592412131805730217385010654586927960451348747774176810958186755597887085593736298041910700137468325999609022622188871458607784813430130933198807804868797628192411828195893725989988004474340174177798870897497174811331644475571954818111720697627535383505339522554225670961194785804567020277229804249185531241165372709610440373128044661803588900185700552964525811211170190513253919731848170628876679901551094861160507936290046174657391827075420856726863370051481010376878985076019045789302177669430957995787729303134523197479122664606114009257287353581775042565516579702952494929277818292107243364170754152828001339860828769471912085841375536400590350324209568191601648748528126998055166054271744579884260189617366904543569457778464601389508644781473093532570340015265562503591566520546107880826752941691159904090481057815867167773962493849710278944570413672398122013899710809458812320345881054069826414575950311348679177800766683063230784548447960649975860370927624811788563845379603419837931461172215985040102509022321507375700176316461747863543133875060850033092529365067373483167730124561161486001476780779637696526240470499699737278194935582347485985090528107990931833130599804120475218857672759240655285550072407651472307555773966357519066878517419776835762977601505013240542904736328941175609816690240542538285814128256393853162621358687641389088579843494679946565456544061490477469378786400879482363292577209419148718766014319291711426689048798062176359618716800770871113862832624602545270786324792829195249778608219712469032653703080550639540217810407936916359596462866908381982483320605463437905375594459854592397526585640247138550689997175186104048888085411171594170763931955413319077260347509359293327494602099786151690041533260522099258356735882319850238595044247778699333420675184076176165221159700462951680792096017050152401127196471212558537322513165020954045269652480550152507960392144125750337777903360486845708586650735470082573096693165828004184112616898040326271188258590647680846037980512559183209586312614035058013319873604046438025072536547649017998071271857850702303188322695493954995479068978784771380074867535390570682401035381172266392151253258810308898903947646312418752115877657077337849911360693539264577302529967898567984174417411770376954638130270597237939288511728651260224503423782454334667502741152832690243585482936332750371285126185975408007102981482918232806845939796192374226939474317773260226127328438964391586637151202283204809960193535337267368906602524575959162643351586591583680335857906048710471464501503299126973779645554777110212572324460681183670281805772508891430134427597369343003067665185278974354575431831315489836246924121838409942863682386988914700764121900391644696366464724281369927774268299533421844430030661892171682119716518085952549773450640646183962461452168584052291975916687299209908722129116568398298655586496837504446984679002989090025214663227805394231307557341773748913131145119768586862776722154415637119026234868219688614640998079302146784553285393573702246812716445507299306145450559660089087283774078628340610145216678552721211246047182121947984196700642680612836309803355651474711443640559241910067439334508121690038276825311364031628201913143864087189050402213408997283735278144738695256779960073496780444378126758571373041386529575804725097764321240101264906875954195374638627605537937353981921281913687557363730024791773138370634668294048908925089659924945918663906273975377420228008564334902033501871677454642469956544284806234491834643011978254307705769776112925052421343331565283778607597689905329187635243811192825644592475342524500513336478549608077469426080029768221130811482663455604018735535988047783765703341666305411240527650352677183921538397957362544324714308899922149071112979208012276911613049892511347320183509088665523745717307679676494573800496013799859251377583931227094093431029498081613329522745489679586581025819595950367446169564971849403239470224043830203941246084764654713797684451114063546198348645949812741635679597070000751444803951129131291152975157483915129683172846784880960856974646721300251797013837350295526270852502537363916274313629642687498094550120908638835195722396995087492272428362091375229236115313591013665277645020461075726505700577097771995258109595141639705956616802378007046730611532546796694864230621604358306433507326658240318240009093818848916135690396346304905642341441780923427265060365750484236378414851631298674058107679030669704884020973346271028726174471197258378993813422376964198771064887519799202490364119512205050793903580368665160741684426431363941959777485185614521811847615909471421006320924171674203900206147571328342449192343433516852089027235275232185480885271405456625232186607719032136120384672082861695329418846147231050584841362494834781760143843574081010047815635130255028943100779740372463385551861321995217694713589586889274348223944784405577857196137444272196836187880407030141724119549051120964076021672931302147162753772928616617469353661774807379231324874421479567781809200711034747514548923920524058732201305249773104223388637028798590421313277324742972444467338754118267391901020238672514506497542221647467043344600007250366190446970968020546026278744406027126760736364198671424091169156383099478538981455573569303559058907019929389501071467381469582857007334664418080257869061564034642249364789386338833508894686952087583098208967422610003445568772639975484429082625434298314842053523844713557335294233833156163147645987061073098865882078969855931078031616176015830835556691821613102982316580294402510551233989556381384741997640641800355074933703490301786965459334864602621071718425923902448951560994889877970414702430186215367041082454515592192425813970866340093932125882458302394113710268827440915029002041145304697912196695501838727511076801242285200292240754031767708684628535321653843427031187058458761566470533347792427055353147687399228605659784026602060610232385595756472240557911107532850737336428827013081016321018706299574481303819408455084430521872262854859070351260924110403395943064665459501418826094714234056302728760457451909546985825932130329868915654725323551942789373731713103062122019961868847718954282201122048881966931296386549411884081883881906684191309582557253799788515731447096431958549932562820689667557704445182174124858316861631686439073448648964656570924084280459573405041077899708511641508926718849114053994619458194892190601425805058445865788856862404691345146971449974803740175566240036600061880741689869194026958063130336373186043398747094158401382760135248691808266931503517896279327326349930324024545015651745141148093068266328277263431267450479817692147674932356897771682561889650057401676623409357204601958689528229838510495915142144635645398610528951879410603354747358429322188449618027522494194386316953255623215473572083602412779112266576289827872181422334073295300310609580378464069768993150208451755147294205651913554132744828192670891157478749839580652249247500397101140775390599950292764281986734172744997685974764010534785878955532621620407921721172463805802872944114339002675315778206871571763408750774346112949719463733285824917766499395076953294303502649852129528231906766732253051325475054395633496239674591669816810285695146119976672275188438548882211054343748178213454509726669823766462882243926022442771233868382530285167236679963648099422891385148674638554455389474443175326584042039990054406751190060540830197930224058348967967439408258905085756542613262258297366853206614236221032472513590061761990323509803693725599423060655347432070887261990624527246625295455515064560115207092182028644469281547566905603031829236359641900093476943617631551364004418892490560066587551862718064509895705112717148577644365618342695127078243804566948695553009677012192149949045015139390967407857689236480874640799454762213464208245677874941531660830382602291666530511157981077180346895397568338590114868240052400121974412459954257707547865424405720752669241828680570358310809795423340513730693783393437243176944640423996661861611540198610643778504326040787547246540445170234298226638459940116340723806924570549921050708059496499446442070398940128539902475652818119247807031010927785054406732757083098162196046472502205574017527302793862386735026925477751404556973367974081973809150282503246783986166804138578759549668186472730808764335514392548724322807943130867909420414378382400658695739138452564829390743865173911920379128692681857135794286306443063345016205128421688513519281125851840201948915888585544973572418927668037667560349363930786763843998812944788641323314409787127472356152632915104544953959903581630538516167258458268352940624915028467593779669145422338868888125122999076567337058948369069871555344715545586053182918685393019590298234349388291579853665931253598685485767830609143064752239209678061509408683523100952492315545825164853466517970500872557829485276746834658687534504594360793407023112377512387928498177147514125065442112698297376400985597575249631147627548985023761417084463734956512887343751245157721415315370302941088407423321858613410756296245920306932498298352268942132110118739144178101145884308608726471138956820708984099733671003131879797319996369961463764845694278893928677074720113177800595162471757604379669912557009108233350460297350980714158261446264936101910871429712949318509891303332488870328674273422551869202857818632406808982461897078052856757185654001665387774095974967055914180681688541376417275110169794665020709331732268064773996942199488635670883447890063999112385614225463348388054805112548851229516921243772461006747050168650101986102366144018774558156676368266147499348080614087655373943699798787028420916506137160176454664929282795923446634646162750057475598731443123773071901876653163844784790220394898708647472218828937908928068157175445510721148249136699077957932403348231617677082891157537866389974489199407149086403025670147533870369279274949777987594881995186436862613375062136064628547837408851280427311972876812270822587697620184553721767595059557045893972334279135955916499253807204866984833232692360212949472952796526997108326666043699192651297043606547311461370681810733424680028305959628772137051623396202272034396562128196038652940591864735674873049850419017361918480560838252125450309907174637365549358901116799290060947239519099668510240788148544720459212938202713167071025919006436910830830147543548775832320283277689223714097836656876107740055797996331595074559363730057147276939084022428102329168105783828321814446424121195481810872439129309628888264307459844641094101630571146669354656408028465863367663382520217429744770260201538329269026497780004612869649217199199725961738358910692646052980839768127874002138129740744276398080869989281763392485118891494058692227924045908098491297106849413306106445016398240656630411018553259288104528071860975766568443755313895155101244025767749371965186276896572955432442798866351319002596722828579383851239830943415295393661096939706846786266578831327399028924280123667941912709315560140771875198535427447648622861972908298506571416399812349214991422563612883106611647216066807351415984377692813359334410550681542269072627061414254702600532368505965428670645914632674055953025845554983602206452873693181956464470035074906184949115225246293623872642680868600691635924478977127320139743446653550299884816360263137055198148882441792844532237227252650400064692482946028341386182053989038287094984537022320912398153940381774135730265403055812688983003314624729427213275089447819515263684187932648447571701497771511425452919705680846104346129630641121309465299570783431607822327816446843773815754884710951348613838213494076778216844210549440415008744139063427313286952777304356077056261524602212722905597783471745026601543816419262306245947714296728612146178027411833878065473852978054026906782039335384954767331514836681687127233441659419025867417810274369683653398985542656582061041317728973637257852127751888651160107026656902833511881355684021147604982657185995514937974243162475412863913426969941711073073859461057274001454727411065434989906495591167771961824533739661239509596823634439447205447365692983816146599190839912392306213023065152329171635743667068151992356512567769222067157936690600033671502217689783508484531991186663654156583934791609264913951013092602845290060620057739874010447083208876407484222195535283883474208742127123239978735144792409292328658096830204480574805394972792091032973930359701972841236302404710335759097494416081014989556052653846611375373288532270534519204583067946074961636841938320210107179912169620567388245254573672586688172378121776382285182434948604388821587613389639039159663742042738756069857814531866423925784466065098307929275921118520582028539085943355959464985334853450527949029098786267112814210422159383890034599764859523861262860683830236607731455556352541253716481582451282603980730332038808399035097219516094827208604845355389257889241082503407018142024296412684604896652224184727110476404566982970311248079910168556322838119524210441596139659349743565848203955569962796028218976078075569328328418947604754653933697649440247779079903937331190539562187959645798468402976931724061720789205328253373212659614612567307767820764777735175906107468286185560639299493787638249166945247759127454661761377054893640469394173456028467749457719396557708427759891103543689000257478690821993008066561584397870826927019137154958103369699320205117617094742432933967645733878983204733000962615739633856288321575923820086668211714935934754578839669181865718897750754098916551772954262207922585771707466027420493593249855707532087006449813577653809143195276959444338604433627704372383481126396313321529471956856167605095758714721337285381243426912870823686065612552998231384122280195040450832663197402454854845388442740143749962103587864129650445411044736960488264189167752058230454006975189373138625535338267773093316721407738891950492977861731638072280402759936671359134995976619082976009921783515038883739442614995460424921211246158119813765720778704450396252810655587655776929053253160772266194507519014977446719856648470539858131153414828233544623896803957501920566544272024609423434524056631721308818851388924808848693259854029330051468313502182388270465800735968474738027974666163106959565758854370755924259013356286242517227911039630817260044249157812823760633708371536897147397785421771604753734597752091478646294737659083104441270092332030305756999783776988702647619249462978735745159722544333765813675021180815395759799769413810382107013753172993801612490551837952228774603559751991967961745182522967512700883170993608535602841193678338826617757529892343181085969040165487181794522120133415783074870635441416249646373991774970400791488678871627503779097996146190544726770502904636673169349243177017388700959599150042738537742732488635796220985909213537874105812711051424541855274241895185169140726495778898502892157081696636549102988856299657326609273489814235940991420089294930984083949803206471743517828428598324185795162677382328646616451121587128504845524114526978846824393009015472480019133760461827277954241509814448873669053264718810553586862495601205450789198679009499528680766866251346076448819338511277677992223242766341217986042724497367807411567757227906978095940874440943379641938550759039871256179321637362732615739912430006212247260782238730616541715788062115949545405778360039076152147262912289107004604732802203888649823275608092206245741435070839046718042903381900763390839710486894648810283705416017675698922242658625185200602330347921995098894015678182137498559299563773919740668775125488440743960445290517249682987307408422226688012348560724985776555203687729166057053974668443654902280876173166893861268154423317416387628780059265088263412634276564940624257800426833814297498440358421436400660221734365974312681645190449641463627760698344702471991502039462351079481004784573727947211563023699363299989672756663541485782897119520052705753981645915788751609156323651073563280124210373220119669665809384122546058493694943195499352421583525067305017596186529862219462680007887588037275524596475385884242659939903083493393819463150170479462669559239288159042318677873360303163335922397101132604308168597887599561639528076122879885426743550960256197578019146501861304499506710596577220741759605909994260796129854992463056373990180069230652351180460244583889670604878576271070428352983648634107275720199407341246032871123083107380569725248530739807530350701639905177730762259235320075011891460952465217687719147620992006583939130687911249720174483006035962365758956060964228631845512355105887407222841203180622151013569086507782141800330817457263548366276560640858035168264263833413377552486027769813847900201263712648157267224649301957537725012230512176657978656295275400032225509303723530056916882606410203343147825256264534312534299389252928781908163633197688071894754599424584241446165618167394789614356320861233663472804543203089553708074585783372121780971301687177096539732985993085877272777280761537669194809531869229971386245222435542668337214532053165628394868719631656164316161317927081437347959599039609121113355088165022981745666127722786921399186133401771748545622726637909059255952262604194847666645059650162258269236912243215138261080360244194557843962380534493499728887676705965838539860972575079583995538558466956496085881400172548193299030151561868359800413838582876329695463084821428938288619266878553875434742901706394803108629610527754340344560846058475076780502137304104345953778356215268856083132344184402901200215592113534735171043317270326655577864012055966772026789732189798915821702026121364363989702282336704185021365361082432403611952978941627924151334110090420157317939642936440734127783297841056061721279217464969693963374189088947900294857673288245300845608012951706830810569199184253716558584472158140459927551982869899028123609603194370478900769160335811232521794779848932002745354837727204884711699921249380959617786604164414739014633268834624516702599486783465184498452786943989793651415648537954001834070353379366252207270415909997796868016237816079170465455534338167939418104359882071632140257289965813065236100665136642489826081448397991640603069204322342324914466126724590288686778711605457672623683248083115463813574441036782755499243063849999385805923221139045007457050169103739685057502283370499193885475401749045095985486788970454680957110043333440311830879642029536503786433334543013284908846792479693653539653410901524150493973086484935975424533689085453326055566792697664972595939400093051992986784108142058182002615669853666208571182025804597889927011424457575950181968086535587737046976857822953760796903599987984780311510025367181793013348687083817244828688713270519067697392303254083697542563541646374954752528455828682252513384165788002994401300761295312244036746377781579874011261387936676885766503308071553712387545833010579411841795331548286350711067939749213286159221439472411869977385558122509920159063755732744320977367320697259171091452081538817804289274215848367333941437578277935488182614714227057495385260593781387815133771324012054900391101093393023226161493557173637742392167703109973874899765381065538082309369944820985385263678573857189047543082056107924272973188519773094883127062147582281607436456327200314015490094192659249744777073483627817521633225467806167933831761057483162810055161668656088478987216898363424688767019340049578482383836229422149061097797675878504230482078081780051638559625144082790957892870598472786578076793490999919383668912666230521288010837959846230390916302616047872136272195371900913127170822191207300401781002071502474505545090417459950134616874058873380486568168561265123099976004153317956457544721379265029150056490525430976644415572589838770530115420584838838573547381178765033652898598774099910699373335182870528667505851607974543427956330690457035209342172710732609161127426025084923418577351995774796318281515772670828058376552024029751412696267931594563703273858064381830645201952153046595824974820254065392859121079401889591566148160808864374670389532847447473671106027063750492127650532236148170357325247819605435691056489081567013579131262352060247929094625534168195546988412692021019448551563718497570194057192350305974709441579320455182539045911231352277074248876189521343565342933807827801728126973261901860172221407935171961534947976280695763949772994708993932622534411633041891276295217838676204141425026175700275632721768306773775975126804102830066132075661049203539941581656657661753390955486599830001555031901447854924909610416672655920826804404964491600284451422978192419709410555218004563637447242577107189076390521487362977236226807801082449634791686411412095385948271939481334343553038549899716468541064703018874182190073213077496670259933542002463426856874063652120482216752011160306981437486999097207010000476390225624895573076302386328597195118576347340153703307391499702669946440905594517478379772707653467020735340189687132338016363224212659764303869202952003990436101697602846802415715127110976832829226150900620047462008348672601398319955511659082836981098757720922272850748669969076441622010778172681908623342988875348154073907959627807881828013180372452792462648225006755632596081758627511532928078708361772919638188960759521370442737239695559190473901895974049156780185927520932189743193135465540240939807337493185930359695946297079114094576663237960998124395113942497084678202271923708008070845261174087632082101429024439891372203019683606501696832624773418636988819273542783820443058933627497052277765807198969818292097565604572155268814073565768986928010020362681455948791309984668513625878471198431394823661004570306872916922021154336479906377390078166937889163084923392687563853194299840858083238246668658836393596979508353459332561653564090346549736963821429850483183330541700781959659883114424086335549541201173899073330012602771334531000768103152400300552793853973835807257190855027003408831781512922759304335184882586042697556567882226770916274789993698906285776830166581612632286667319421048414933461331198537400800951073443329869882433622089454850408138789787877761747732908408946945065364483421169201367623027074092169647234847624963467844223731943809065403377530300052532542359280482480805347678332098037751315408705792025718487391629245563948994896363007221927402477945923807682368092752192453644651694043029964956831962575356925392077395863212740671368901978700366187953509826250534402416542616395566272776908561717585476131199353068426163641807089870919913167664440338142272533300948214941290598635775172864748075771613548784277399763486544010222472791223639869645921228517842856279469844975768437539125327437088268017517624375830531605414231699640042902249004259755665250327693572489853946530908193408578157554653176090271862942840016491060548198772110312660611460463677502963377326973069473034817763410550735938339549749419456815550380641223454470436802409010491937794980742596498538974897053183142677654605081351185305299682666934472198336981679199784647796194914688908707831890356615073439113297608118097670680584729850457969364319213762830374952947884776113831526037096701007290641653443754890875892484118276892218097368334180122230815654527695258188743304092715355140243274174892293449750156170233901883546813020951190648918610383088140080283602621813235286483653094181000036521608847084285350662061843970329975588471691980675047356975586675530986218146096330428152950298492534968882821998925514738892592064445136264533106226397880606628085655388835920579537567656543053645745184855285913709051899883587237572344361147053924358384620036795843036479965282055387919772323534120998898941943797141793426304543006206749997783862549343756258339893758139179564344100465245049065799910330926318190413932740319001387533376054992785964285616002091493155703788885762304719291637395249863025049683124078778486307639253699928867050851231757147661841032943404990143555530759654226792591780882776690301620128339818829854177475707395481506146344096494684513414532094442621260782247930360087819161425065386331483017750172335571110936717254403860489240025262070412155629940577957518296080045528308070475939055731445211616468432116897604325603521407218746400759683894373189691383692590814129367591073713312914402705719398914472109930098918790962755288267489893081556170670060894261691176351911561841558551710668453138948082976859995371313035568255833290357558485166308171590241361102570501376454040194666269910528638368680679504510116743531058185771677151398665549040188573763259482294206545496540904559309438813918235573364207611234592398586863257821533018400181767832594609759005989969158388839410531423793325949419279878410576934847346517572244831913166200321649009216375139627563591178104519683214562464803668275714893110275555530209113626544633487941035128924812797669017666554117769926399560272293682782447866380704287026954649336143497747953328946890565673779842913720653916263670253568782496800030421614654831010969935594826710613215854890385048684019492788894421779510404420878712550382207509696336807460496181008186139630280582454190519998501659140019717617991373781767614012862033234437289299612897838340470485495813825357841549997510499406780470380996258040892058787531441857736115909036244951362169385845539131377714874129749049457782015450610358365838416509548067369560842441849077362836640581164398970599697576046060443391925138644019786323917354409385568856456882203638411937467062926855183997702404187097352148938385645754541423495298582849303406841786932255692965263970279535003458171926633725643814386140749714213478333734655389118916192028681841226458055149435059639727621515280416266085105368253121149882644986802979254352226235205926637434011855628397689666531977097523181023137160681824797199214386819420565552947129516283608181975025025035913515208476952682248468681210358037908397249817233388755583499812791577385011877308696928132599843712565699373370509111686334489526716583200665486299973212522011075756301681191085828064259395028858072999729211153729201049690655223301283833504824130955692239916398774243647754576642536861805392611515998621893876326476290334834503396164480597702807524531465389738057925108579363192708975460900076875498132596219219603007245429849249779456548824078147386824261265797044924646932135160185294528537212702321374099113519460175039500862043384881020531591785152628176312717923567915559801818688165561561772466821723617937550403886799634377744408695444763401137957002219934918205171733103623324088639647651074419605512380868550093067543307212911462846624887909008044105120417784719814734275549820487626662511709319028330093957068739708314211256622070115763261445297961070411873633508852493505376695866190979388963794744556747503427876630888211563258295131044346686018616395634528324523274569554152444554299049752691116384405674147107386032312481695294605005952599254421417306192498895240227118072222626478629981355379490329330933396977141662023685269373120703879559437722882829575476301384643889346425843659029113849225714318999348214062365225452994912160043575967189887795958885590543514491879025727300612710216797441467448691593205828993179427407158336986292022790097855828802018334497994279105762741030350717317478729310268572304937620414617796173793232186177840237074731560257140851160554324676645819995276282903708917742941699360222096599336132097763716795457782177061241741570950259741539114254306502552107511449652343543113758617445760754301766550206295933844980400388268824145719841114082681942135516194747179812414929520668797290019364637790276853721509653604998980214928273038194447941071103280239653880232551541044004813282509279853055760941055213513573969763228169708933397222738675638009590761388640468917673703465243070933352593408711771133689620603557052566418929564357193624462288084066821562565916525636342709312994540853662116945666334862301124057146577207322686365665967744143805870909903644071475949127882205451671545575222367266886675212760729249093947499541493857500622370440312827284918676036786173946166694923967567358295634375313897111721364216912981574043122951007944552683032746242131306850941320996833988191038561886563779274160184941925310582137954443306361393095362095114218703621674053555492759687496822909756767141120953972156912622574115370962560755654285985274414457691557200069525696828913010555700305319798491664871853877854675525821927613952134567395743846502287574394313091571900823017818101076456027397175227469246355657620291401588252584268064182010037067687372697199386148865601949144028590688646608272399820197642245207179645912900367685520849204639130019374380829738566978723933137276024720013901957607315138543124254260373596472108553096189528789874778722471965634556125818185480660842983052411498423274895954799020489157306339678606739595693835338091936696855628509239188345346009057776914274906433600990259125974656072231581443880340906651789829924946036841980523463474032154265141884420306576015646655990397268573963894217856503961949689313213799314175143813489420753427458190315618878670587582388204698671604349886055118284096571101192910696523770633218630468513313868303542176121694899256255217320091122976646423691952360215833475513047181350972152646862091704327181064476000923277083875095648703389009816975206743624330696883820764416826789989989417895841393215444133680764171699431396957542347444575572703076960377315727513741662712485858388058206012885706806131424789146733955543465983778995124762341786614175135266544101124150828229277837859386985712814066155325681609960725183817501640510178142469528684118888223882403018879258271428981643163284435006541970595061689499075094569472217588791015700259404502054730101374310179895938431097861442395090443584832470711620901340386777379548584716439073177518809219705519116203528581131260086164937591091995787399931708853543395136602749013548268712212864755759055068628279430527568291384809425448320918494333313729076378472984308129755989604058569637295143641903519396409776332331576093461123779153817222841880130943642682528590618851325325168009272651122469424116227961821642452821705672885589094177231082047001760341064507624165738468061363588471974300273445887226230128070191824229043719461547536214174632017252166818351176643356560915541079120947171786390798975068215126727194570528478361575210416273294505819611835758084355141778730722397255295337465718883935403088110336183916980320301184845174110712612963596795508278692649000970626771843768715066683202096385362607873643483393404328631477445849610718393082860387193397549620764477368503555961605865521317976332748292859084168791499984604163712311231391654715917484286469779526174656009732998924622803577162103754026038445346174599427117994762923489759445813008751333781913368242278473098139489600169070883507757082927723555253476707319869059037139667243651452912104076305767342712371946476841704683305336147520874053125850046406376840604479885596774046845528964124403345864597555973123909508651576009332927235707298099149383721291044664020577370035247786995929693365363497857290369504335866819097490476274082879455009803949658776970098232935298736409859742651620689945776796765192137712024667020461979063216397756949396792111866530311216340562680108107417795134076733473294612942175732399452020559594663491280574306824444301117305334741234001987772463415025137387414055468933241344493282862500661447371600447188389399312119385837289406378383478322137103415231451099897291003864096379908698114783247952493600964114518108120908631062614488620763399026404973258597899250003058835651861555863112902297314991245514750663624448699104554833796920925936234966287520214106981696660352275287058754617571681994453720693525592605713707908866037073322716119107897517175671173749741937200768870106851090775063237945586931731779107689775126223642183551991025809695665827046070709959664569774922762807636541591122694993109615311330790122301396754133776969801023016032246169180385018865482031027838062298660688852601415165020504135222281929479318941631290727715654362042959668560256249303256420372495699978162115655930505878643828606565637124103087544299971023523451909020337177556537430668351369075217842496170456699591024066896800124978504448790477047428278559936023271099657536642986270560005541176619504876074180795074361099310645092238140348681575609135750545543819746793491240784503686758759480587273881673340975193923299793301066350061291330888428655398319726227462402272295891597241095275256401241691648310251713898636613702578455999669267491343351260597784583180681422846811236822619440187578421175182932467555765156014124436748015063078707252170237506105740561954079207730697125651040986723724520810002077550851581080409348391606731564907333696223354940075367594312091607306665217725179049954074827423174663340014076923295274323274779365041669984999890322799933917533561087253638042338435666601764135033780216915198068809889447548849390955811875041360522515334276806689810309701449627721678552053506846255022381398465908490126724520559237270928616369859845512929785183912863756141946566161462434013352244609508836098322901154033873288860286756363543678135019966573454812814524588159919515285121017381862186461052071765394953668250710738782304312305025108681841711134223308299963136322450105683158328808172780971771549967311861414064422725977013391151845159720126691724882498030747936212837399474031266727834601998319047988658302309858020837713539105599437706853130114929810917502829680031132308468232517677842029403345917289641255826930101318911299401332423892569719247314369937835174359450631875829104218797358695648536989668258400763086565209103523639322564044885883155106077945462577144152242132431046843224452957130864809395394550342663491060929599157723644783090151456746383936589439262992860707987714231043061810455098956498658605987520712882004024198985874348536683393527616348363350609174547425631063156137943598428508322808018170729919447212094890603274125711887287850805110970411846645588473543471794979816314439993163136143256740862786682916493355931856783555967466720647021075089171801590312795992663429473470857689666523032432608232674132801956501532613039693086251491542361118682107552853444981469410008934292190098960854709848964817109862866135389359965620919522737388800709767455961495158994333430799144815696246356033123081647622775581757045174897630657505326806357076537617881675998212807543014871781110393972465180714517899469291089388891882517782316726421183368048580291263428167798526395660852447810211445399392567051229563141008034757607009536828449569065830429126781934412993621266856568287668030004740415717220915237021275674495252751543185105775270308247474031196826479384616999911595440406905390985970101353057401960047506238932501403139308735849333084737496342045600782164886049850851766674305668024965091985035648229383301886821891498486977153966644873155310516324325073331525892017792834316546073853167043252052850952158075789554193884074958125468512170409136370886806588719094021193201238494868834956102335041500417657456709485125017599086629798335017649939395092559391857083700105000736755978162614804326055523819099281353598892008629067477113205916343254073716251428992180413038297676547409465086288692326273194441867588148361433784060535926430401421979954395474031948133256171896001171501523054149956338871388340847285933650920102194067230922327210795391267885127525688095501133360930779280944570489162269089913441428775630815092165310877168036649315270452245309684713164051659317578699585752176935292625011880383882198523730287461411495267769547939384667888582341887138783176429324818784460677532765970059058045925752310276801564365335485862532575177945560424849477058037654763423538642076405191316442613029089699120072597253155235708092461309670696133385445087374498103861128858256810132264737493527248337215668773055426694802473523000748391650596333719155442574213567330613403420513071484430671634602890209565292196023118299003186972871376182913758561059450010648832931474692537624461582331025653318182608645692348628624960944904811844275394773977692578311266473077149434233029607620134243290981069672825824538266874283380614334195993589430071403401687639210149933236338475321811092241836336928003716616220120730915678240090154722709437592060559691343457662616549702047807618943045338925287598651175665353683971956011087786031896677748008533120553263009787822179729411791255365647853267895017645430014156284342227431556152667351993552360608345289920388395159882344967417194781637833060416610172590031140329360452104928445180601228169579274115526897867269606061813128253565332055380346199096220230149754429283664168146703916624419281562591791633115208343684870476347350555501227241920184797871121439575465384235652855525366278337979877645570945121827580411919794635688521004531015650048835562588531953320658687990414368784205842600006123938015767116316227912570508798428032066944773528377920146841606978837326097780707931050899621423770579105182336614467581703770466300912883587846391706629877532571592569157499495748966078104525001525372164822947188460551445552139887037570115526634763197392660268305014189043682982846578974480995621051957405460077831283704070805796192089906350331205344734798760066488484227735463859945135829114638394372001699932480002124266511310606857793343589663362616900559038922653221888068685895799084713430565600013183884297324313356850735750207488150519042600614235315345813409993526273671702404596206370570663371719895164364230881268724569201833178569013291633087210299433686352016232115553283521361397902642693961784509464615905599072822946286932184785282339774719488985255318868271081388058317257644320942996346040363700992683806011384113849160226688384442726808033476515086073146611772794238693113775017339736958028635067128639396046060434205737067447770798869043081196819176149056185837636167425264697163859354880296825456965275197436992197727227612944923129768325734429362763863765215351287233939148328357216025500211048214212882362443695714516163362810000404533375316651523479804951955143328027114085771128762169057132026233240535472818082737016906097295843888723768613915938911634343728607420490435728208226792214337093091649453748691514459190520505344172666977294452372354380012884840451985757289606822299979254309245390048759719040506154148263044894421678343925911480219025287571581552992780121225256458530538177143445858753899306231503202235360398777930760564023284563014361238250162820184373721217573476257842120386135347864053002068778557323114334517223550229384015261758801465972959484511833894810807375931109524742553175991401765516467354340221905136773138453034300727510873476959552973323990020682018761589075149457142649452075289493079139425775067243937920851389674647801322478701894545514828804519032943261555215058503912207352785866885037406961274501602973691876934817257550634507727426490134552992646735305134909415940832601209773185008202026622514794280402310535082340664870608979507890459699159054016303031980333193818288107461154496229485847925605523583810666973694696443333027176563080331871896422000908025979249931950335556144669507665506536153285547176534187020974136544479939395812133003032941518804899379769489121884013341242832148091285334354372963489145803682733002069867808697087876894647274262026999351224611559486711842169253656109741566092661487630415728297005434063425574059777602569402226999613641310593066842949386565119858433603628107533648404932618529163453224921118992257145350109400804407032447381461537191710311442021358412570806964797370269771090526001201562190435764475008974047937096259580817823532505099232741416334941599419104151432199691683939159868091667013759007313525990548905528244153168882493173633300001901823075325936710705482199483305215606941775769769030541863368202071000476370743072337467474368347368766865427111938696461462601702337420657104026232965080730315461488350804935643647883725769023174264887216104408677857865268177175047976967761025044531649952813893936179189019323303353440802305386818897544262952850054949636778462341540580817784954423196826076689060131947303294172393915462450423761482258588362180428505467959798943379004533619926999425591430888032981141407275702270842777757365457704584701831673760829020339403171709769504083518460463878424539876996309122494672194370883134406511752105034147374234459510316561598281998824674676027205124289956254808223563483563044439216771997842076789373263061580281569245256564159736516594260941665050753301769991185466596498430590800997211482436976619855326496127809128714501396155387195457172436562784899434402033073971367154217583346159876004414836368132673521792868791310435263938111510448624421255613404879630068367034725378590300832461664070766616422088812527823012699536064451298498785355814715674391688691335133843522733462224978689780918391077087115166712637635654315260433149413776342396827175631367295472267212396930192833326850715648187013851588979116535114640740674775318908174888169801297237210081329470863793085258186247707168718346878904850325105290517266279408573938918149748196241883960163544175227638237741807315768006874569456397961364612936522941612085377738440045430439384894751577587509697348557740018369147398697345793074104533600145921745139965021295693316551479754232495894423841240544160428376010188879070989260013920907107642740276236046417115735319028066233823909478687448908191643025816981369321526772257906803218087465160608968767486086880017714133316061265804804672190067404289472434142582198610213103335855697532237052051896988307537910828798456638326004253997629009432712435234024007143266693106935610661367991986252195616501932939930443578537471684374990406043596104581951617913024755594093753594026600341228258201983161058710811388632431326684545161095555152131687966954174446427475938318628918599758820782101973566564864822625594667854425610675445103488309815661620560204924415718039128945561995905497499856399319762240262564203950022163926155615123275522483555244838769921301694817068550967047191178645334311189864727628880188411951616272313878817246355086515680012824755421490137026460653065762276508249182359647766365217179976821363888727729342800681038107011543727488863849782617623033477160517662431172828942430492068491079223101027544121552563002560304910259573131284794793850621064162363486208933272776560015953741807892130759591744929759134742345703538963681142421871205775749730388811606516899222147350885211485185460027469887641668293793538502171386102998099866082688266658896771626545630570377151948212045309131713053795869628174572241359922143865400825335332723465947170377372586266465790601729868781823054706375545609015657854740379544341008332628426866616619096590500125801622423632450282773100283212729106599419636414921835260144820080234479236356377938098384635458855517944250980376789108194084487749186908484849325876965632286986213129088071434575950088455361140752510688889319771002523567361782167295526129803558014713895222709625258548639476380367834439020441928730946617342994234278072952719744754931122609613611774975709489859813929205637323810706088923264284989969147933847556915273500603035334384055914407560837860646954380851317185936809213229846373810062465624365193384764006091494336486443368996464309905606636412993860693039510062609542088081695699259470587618556371335078160233391070223805547942422425427120934321758605743953012870196564319286111529381767257410815323518439546683149349933830780947179801095211156426156548968764960851434825462168436388052083322025139508122117680933758170834150234603882725693440338936795966407298398615103358648482130790791532730514261383333722791506759782356051703421085635606984013475447902638191837051001408537294833797308200741414606136303936543335804974380166702259760648336165731560973284523723438366516653712433414238658501450373647494331946209030829060800410233979502080771129232055367769391170232953883929967128728851183369969089728917143870127335247186951496987849970160720214162484154196564799338836407645663723440268487360693197533697741952374134806934814704147528074252743508546829150888293680575515964429120616722746819606806293203096463075758785872969625861383730363538284394712041033346060278292732224378523004833160792656890619207072765581295534402104957857781389785149411045025610610301581879081684826368291273217077838365864105344088434200031756291474546049419682912863263733300780387943239488134984343820180373962820496962488460831634656786386551620459848034261043122717371957682683948289661251523332881308788045158809484315501943334979264059052610362484756579684560017864543526399157094912368436458169250784123028952647509559600617712080730089823058470156970018441520596291651062555123765600971263830355218850491845322786588532938712120980580521912693105486778591177861433219596651934550774421199944404015099598901655661619601102055125791956127641044327379430389653387696471448106015763774535066746435345794693022427398050305031479177066006808141263945847503966321394546028114116486843333055213048775671691762238748957805149071516644081415167071656509087042251015658466744273717742590766703825304242328986571323551952499266282896857441351418438037445274205270378446600050007173714545168223517104908243648427702255583338837744289327457090664041036152156030599423748479849366479660712616141659024120265631388065193960012233819924125840508133707556615311892181245483035335287853626221981394732699832442137902304855591440173050368802017419497999997610838227808664359284807105227406364806388951173254970380263390039139955280584602196343598353308891193329869080566010479663160298178350976647441778728842253926967181121514372111238147932609795978035065710446003178881915852172830418527332649669651618601011253760669455154826529251112170750607998890010656477449200164858870554693872813156669320039772403124900178467639701829854941492037979914548186230006167427095868532075978627076771049597954281878065426402843045022472893412179684990034563774381816939626190333316914409891812912126274536384313045847640704871428820604237701447886606548556976595658233060983926608482128214726121688955254555563026801342001933476133774212757274079931023695332017933925258859573785444400918988974933114478216401264656342201727098454957107629340672321758080264122895720755972385105466679587683240655595166578679515865622513307262163061030909191706748403207175921540655482561231269052376076395407864015126683206581587817358908606337725482678387970481094765722797686986619424807092821523295976998069008477157095763996616269063343573899335436620920300145384940380441296365118963904304343841549405627872493402642003507610834582661333502191083010843589700703880183030840141652672363807252289930090997900344805803142737688756010166167535346234747688735231914332374864551638134391833233093661001396097302700619651349813087199952774730353142337390975258290021284794582109676174079998752644033186764270886657111604238694293707548931979800119442243895716008707901928062432848485056465221496119210842417045297852264153569766522252763264932992353485416728265041394418909011066730214783694500888160894558549466152583761081439923299684575513313835720530880311961617646800724767859429375980426455279619882971501245153123166647436959724053740347817020105544314553565252119048372872931574317973829678265591116726244251108084413512860450643036869062966757928107769385679350717212535155511243253636647348351693970567250487333510718056419679391837268637626090574187592414768009550534118142032809520323474486851753994007945947286858812615972128028880542348853719009393038802572681939620557485225211973585174977626178038884565358725061835444667075904727309991082515165434269321759935300776293436214281956046898713214711448814082211757798835487857911159273203206368796641698605106606006157458453902815037056067710759925254919313479329066905908063879398765111873259749179301924595544317155385413275921469008683152622884169388389775966418430947213388138086218172981829521345421216500153687919935896539376679265500266182713160140952467712347432131977961381521553830303344483428192827308017529089460183762248785342962642229672539406891915405032218611671796318071838954195723619646481872400450643419426451695817667258905655364507020921903928669289238541387108708889764525498699508527947854489521088051470305278850928183280904597751155704664268563959299486056671751769422352992234053746167875798241789343784758471261800550164755365155561996140949353634012828802838232679080431021530273003264218320171778455468180637265512930477100085085181863418467116555874898726709465207474942291009452910139304770890290808093159672735754506816026230171854492697963103414568309197691959088025281994382272551344529409591411548838641580532949873340578139297073462260304996765153829725941129246857751394667246403424463621827465980740242416870471582149312947610225566327194775045698383142720589555591416495463789102293141469661412955417288867894037736145905673494183478490537356552367571951250447371066933660854911102760242724918908449633391019623823460181321965284647257937912209008554735821242683508667642327802185662991232579433970143190230802905691160633407399383103247175042066373281941078383141979245398559044001510225217888189108713788249103428163075392851936993538883297601445092603331093621221999937087878140693338920688956638044506462646285203899207934902123010608686637339375274973767155042227569410267059562684813684143158411171676471670768336830487436710854838190744291438482157078324975071693013609628699823879675987587812984436855845062504220202703601170671448691472091408359178163324376439106562882970110381049327526700656139289739529211398448077893517232407110231080821530111716138511139771428820699796207602078098171084115900229002643131352760233975960468129638206644403063235467725414128490161445359857180622365280389251690389289901797822449613498015510725780044236449355770298689117339007104239537795876983052709193780744114144066098323144504540514684795165184999660076964514967353947139326895050597054762028110882095143064016846337020917501121690395544308975517178275218764284341554079362194299304331508788012463305200891201346587000904639035073099319344020633142446239157186523835726866687409598363785915125750770842557964265758825914970163083672965570572175946793476596248497159389324444280412638929637823207492565736803120573676813074240123778894799112640634052068959058677044278898660142451617061993564153450545516439871769605097328422451668181609062211280445746321708398721357809693401624200681285989076458992264515282908419713906282052605273103606690397166763498607256258673520510721688488693177450645044162354515377791976766459606097568742503417880976966837771364742871804837325866863012063197113876400916103950290440172071761771345836595681910289666379342914543150535485449116057100597548368003875965327182023686644266308602643533018278230442577236951966661554858057746692586512440767114251678569442049026837905811418094258492492617039063127724676714035779153444439777135596652381577858136090078329580957954812677186667164014441832370162090331331389176141584340298030601467773277316265513858865903330178771946820602402241674369177994724759466692716240018949441177993698875377408154292797587431739970912837464143128787429601033453843724146522343430204154030180300020030453199726850315969869306511122249985096530432099515017105757759451032986333896451261612288034878098096652878320829558873975494245480836550874385710421921412025852294009300790958068482455832352401119070102013145396737084926694838884909727933268605676402515441828436149691014065799815137138437510472255697539844964190229991026340369254321860738347242014325457128948560076946916267900734492997474289987626507831918911710407708847162738927422665108945247847081866067827909439774160990192588083555669828094681706392087587433891587400423290650177179146818239410210339586889693735562233069229387033984768226711449494807627935740165975070390635888999223625782358654657431340708215785184134939794207022055797392746767257942240165549019263939783128393794007070552274263659332725812186174500119237650986564436238226847600976243019407582551274826299239004091022032682063428542615904477040249153913124313581045148502756463272436562948158189690400054016776013015457220945367686377138145617204506314228010975808973698721251374185037205911726970823081768306674589987176777690427044009326890924724799375731407887852947966138585297663877936891890306187683314615511021408500006423727800998955222128987880867657789098770002354228798853594794333117523435788453553986993640307677813760535216513014044722397303701053079335068603638353219046322150545004470965469367545774393201281715862487234357795561477160027967465350405754994640572924879246036798244506671316637639553047026862720540606535255360839714519648970959509603291889276693301602196866439685012641263037127765880650633545968067065943915963866489436190872707816979984774577067857962187516010705689749576161381494095388147765477137811838602623552571030159180179414367315667652420289519676165852210819526646249776989980579124071534160176297332749996322034940166571551571369313748508410113623513086018731505361119255706133895875623762986790484140335727997494563064734727801565964553089677458213641040551791632252900098406737959882491390128803429620264353472383274086060087960320733852803891784552843356917739315165032227227820240748637784416347662952062612919749956642734871098925839778602587476649192921828152398381018803915639444982381794955018919563029800619961741690031385889671097185347008508336622842173392104786366634293388655204914591194590371196009764889564689987287543960390745829414960263091048391955670459871986046221638097935135387484450139100499217031767252463669956277049899643592835562619876544154303998187861887182339456717234458928983637485808936171485717195331296829960196091839727643326654214460201621129862535550354240331597163152710652455301876300696139963160947273070289492062185245668068838545369232941673699198460261500135194760284230409437973008519863281558992881322975216325218524041105995154409168554365786534937874911708016181604006068641935011762524775624850492992070537987209431818032143379043312879298778732531968396083625884388656261935330173717591688556388445487470636065354107678707861564798579524786551229118076667050917237678557399214654234661290157387822364065077734349678267648840091248229916958445581770866472511597659501065130819236932037274739435079697960572665328556551132732569484963896255561840198952755523790317136475030667089247153121837245414370462282219744455315400564878414370877496090208389000887980831470447357792940035548840448389765561075102231794694428253900897792647996034661865378433621706520543915760848469213441836891618941301795060859426159308970701315299705741848197637445863343008365566071031746987306486933546274347253166540401636579298862342586640972314984652181069505939082405376175325420321915141713503323258827601564308451806625465267209126159331458731504251753346144436428220147527763475205746380329691121227400413567366813177194972882554124789432372305287895303342753000214203363481267769465981143767937109008452182218509353432316060555305765101289882525867377779139253781274314214242353479703809606203610124144315242678587498837461791153222923448866792861521229767351308844655495997176892963190215509645785710602622269045834574433099635139117235057705646371121028661308702993869841672834236400818957375990265340128935582706239117481256678257898528287346566875004785887126722581860193014579080215210264005151397490581177131714651727159608795317158962313213339150967033098248172365568831384637954435012587416513196468212564946038474635207142487053159522344854147804945116017908798298884238144399467311893340433506594992960706171744147749453370454870556535009717978946885544858024120129860273063649251799591278608458775918560157010887343052758256450596423213834325772111562315930479652345302911843348433892411738246477333780954057269203675993356467537590565293846357804289144932458651066873838115700956325745653283419438103045093923240232622112054560526184228074272094227680608108052239616690455784906924294558512991193338862622581420212804505708846359066715156106609177838972305487512135349664730819877842018441067968447372816324249651067012790860776146259402568320230599143457105654709230156444337052928790279130790461090034379812014273500905002665387506288442036711551686109493260452541898516786839001369049779517268426065317031266316908240112909851840304505200841210126028585331717941601140293936079973571281816349380960898672455936283446932932485465500808499972688916584392795518608942538494606925446988110800387027464538818979577017171082172710757955081817914123337094638145609821262192536316804937366222784520719395023545822133167145493931701650740981471140964045266399118274417239328677434307665649335177219663372572668995580061887780324135776102518398044969615878659215752322938854258963645551989754339254572102086052078557910033318342599338144346582678587234454888473456363031267354063986536597425587303631454596610972448792987650567994143253193987744314951064489302971573929569999980625304217877379000616149539117459977767736604128089926357576419032739134388043531103752252018121767138894563830304530627057611516628639221829842261469114918018394710276420870820544015651372120352403199503923408757328816989320052741735551272896336302358620917387066701187764318399374038301453388573963511469331161791292839063338683532685367997029168728013354802075762811593594294417996552933045481226634712441805048518921998754711206778218300112700786320564695872060936930061087604403497520451243804187375626958609146957231647881827341702786067284210695785562784512026833317126436257013265613099155426847727766813652749976011931797091941938540979034740645972689606972261071142614189604645606934894399787366849236740090122656414725831439233880536018480416612085112440421085634202949623431472714766719658640478241003658990894936097859238098206323060010781876370438048177455069457186597607845271786728599356572132829483043133228327273859723112460244230367435513815486906066993166297318790542310939797434717337327932649779645474596346885359136311448838902879824273008005628054332392676834400653495221243321994854643250726459406556800105834484965690923450588382434894353731633249470652245052654294916023629282634991188155939117733822235693305232875311685119350155881165548475969733231213602534215045171077220025962791366745301416092465216499268766252377933577580492250647586647653426472442264881987641650488128581315302080737360476001276598332377256658455082201865258914970365846901381865618339757601934267708024629047449339554161713407702305658470970926269470364721012224503368007419089723722104192736774641280136384464139949230926537164444743369581963850682430125450912992948668065806267648200452780856996180202437432919237379158587710990018743676392976162951793162462653190058370285660064893821458110464888601358141759140775026860026981177236354578079897078885184132116957290432145778012890239205111235211260663674040511922562799421080956775213665526550920364947123158308383661989626396116969273719951711717635937421073604144810085193891457948192175173634756780664083463052675605173591156813476628301871212105804151617382754957694720329237805000931491001812625440118472147948765401519271851750245499145935416315722483183662139679226625668486544502875231558379573608900671460711853789499507629990283569119386073651589320930305257943729356901243397730185262971412812982222342969690742685756647449933041551884339328166022713658489292565929180141631938381032799249513675224693267292645191143313983053705570368786449769441253290061910449617472235687311461154237039687609005197991750375955939447944265808721636416247765472276065715273685154332851310027879262276591014366250103032465579749442298783073705376666512070192137592305231996876929207282922769194621397142452610416292920048357280125562216573930235299179025979527149484407644700711198005544624695578174188152432415743804494077394912264791094200111895266378010175851025104181918385650965589668181845919668008535962452588643553509017346698186604369563825627501559842762675349294918303628261909763676160698848542368214521459167568652775870477062964145805470053128998058243404439619242374630571735906481689149003133498551332776267942223765223462734734744505981388215081062223897903252310872888493524765267151161797703589421927472936224898526960108078094424334967813457380495355082840393179946455905664168860816825102642928733403045041777152336302125325363633546686188343559969242128872077814461675922388287630348031770411142808739422074069543647542089441013537880191696770197840536674998106043165354694620825426300020519359963792149594104307277974314473423566712227770681611208109848867606063868404019362285122545687445006452884280318957558148442818196891291049093112672998796801996609351776641804522914510810449014248476189634788137898208853032763655504682498513131111603052205687102252311580034090164295255237770030087889912291711542390609708370099400237428396351622774937707153229121021597231345675722546252026416612060128779536158840768576846072572350459486661587766684458327160606389738028180526921688790112221696519702766626870124901759851589758490622882216433200669486084028697737950201944242727908991453886461960635046753173229069883649632548238119295224837965739208698531411484500987366981177680902042065480335335575183171736373057155891198664683110571887032900638718068399551714326347637885828792687405228232621868438017127247175812681001940415405936357038798005671818732716770283214945465231393474359629363026841478173545340132339683458457244848981420181338922079626892961539049114180850101053516512218956954139881798887669091801352799623499507217172763455985405287608117548805177462959933463799322061805422565981804232867575374947310566743646848298519929322004752766024758912173718543839123374888307116476100625928621993790137412476560116762849844526641332633878825836841422094029289672512757389302400867522933750358914222309313279262942105068809693148717846820866459840671826340961012045509638410235084256798059585984340324194241600497676635745904253599466015245744919720860567819998701192166148090109453272890810524693281766462146770054553929224552430682778670065313947903035153181070619837688295481060543654661458999460411932574066202053795517613939502165950117059524694666499422864546414719268745818834493567542724350201088530764361303905384726644449450784695279217141134582726189632490151831000440850220596805740664782708930357128533831299425608034676815229914967621673249227232121345261860227556798745032668799789251245971301267153347520250307054739455376473140063533162198466325642870897114711024341167635680905840729363605838743207358513421610996030498755189684779848110594298494161371960233473694004791990355679452249888887711050448947038150456392144411690328830513151421073733141981502624761032093324171334885718684891042676004173981781927773904234710227150532071183690386437877176035366452148470272164342379027236693681624714705660491269298732580277758043052857336784432438298123342790135721643130670674422985482950553564971179405854366826815923878367601670335247963868373774894739014824368649156706001999493778560513314859972361718862812532059008953349125102713296069760177179096330746864771081985304928326104510547245919599919619369231241976025044474038443831758514130600303356496524533079831021750090476363418644423408116087928259639614816956018669835298339943525991471858115996926832444127596242111628807607244292779345725336197387429893483698229457287590247141985777287685203710763000992955623270255126069238753648798578422206203245454604075420198548277679476393541729308349200200765407878422877287947913982736827553704394098657202325385152403150421447354282522553459117865199083712575597009253994070121468216529970998785110750229401269110728158038209628491061809602861177706705272191987277715982844516602281278679860762568435272385075559979590814601218204726600999250321088297862157006786082227869056327013991786444388256324885142770572909378439677248189900313775900587148987889520789369067268650353809010929211189208654142997023753661177843985618835160865612299656751712171026727919768379546565333985602209884998437088748217651668384220656848464712735414749454821651320732299975284883386948129101680248209212487316993826447151318729404568317446170310785379104880365791143551909107199804302545452717038817622447099669146148969809828117928117196454578356198995881351888274092995241423156101893333583466639426410374336810578648075930188479362078141899777398808134057919685645759940628626389967012792022210402253986841642162072862205782740711313508127104995024854995719410182174947374509089672595741878860691281107748948573074859733307850391789856484770220579683254770089865788322737595307637160753507549591544215694665946235160403481419790485342147618856031442004172417496445098291279462548825837026973011140093224073561987866161897121825731154550175355509515507910509215782972331598544162230013413494186066252628390947544698477955993640248880060261247685059768830663475979865353820560830859148995039778637772979693726983362572196921304293315888955416815640605458594728853256747462767011576458885728312656355889314379058225249546192904900165578714440577909740671878731037898375643519652499425959469097331377963409606121524151184991564627838542601635223847218918307294407929207145055976761741891924540612720454906296343052366603838360433214630683469457149735611652664585302841267324437011179750207892887314520756739722464330654264436543601248041302157443844676036622928502011639924210609370992521132938354532110574171502265860058949609685606615932745063966359458427187548699565982820398573233625729785519636439136652712951321597374520730065103419706201672419814805550592164685791189117394821124120795911403699662863579816666004955509526761479516836154097924430964415224671834615927880041269233150510050147325321941218337406444878410596764271593838184217265379355791145555316581361568319223148481580168253980167491879737281241692490029220543905564651284388701228776736264819338677693121673152931413983749647495013453564505311298891468484448318814957895837743844869354496801618640634099653164150345855945108321809311086969023165136379478989123135483826898591193329552084219784689878120048187679589468249951600390222510840489663020422152826843879734696952786929758087817069300650092842356037699708579292763755102593691563077947969217189908869182409501691511581679599431468370499443735752666742628959306813332102203893383787461574153914781242056454982457562845175795828801113162191759269644283606625062517124339974442642518462750654603814113420520916498244414537467526153743919783183426645949967605390485274433562135394198021378621349270815210237783120110235499670222386557997888359540012903431553901549667212245704903010947211633387681987270966863765089159235668985702202583007044887839852164260107106055240515219178015594903721289993773158934795518209251114251822522530595666011811207973265990600217297871459519233062565836569505580451343551464565664865146130285393978161890346199383171420521227517168759296480993099112245763967383903163487494053713749591399633910608092673474070014363331177475448434472006601621861865626781519793663554225773955561458280878059680896831663085373695834447277626509215872079429549436384635855393748516882275401872819021457992677577102264411913308247462605988959893367965460053469432900559737645102993138200155242851688381722781584146630479949358578342361130542856000622020934137420323188440082718234794622143709212153282218203811580362669104474087056594258642832111884059318873311675508601491736136319200618547432015650227356768164709137589006396861147609194394047372397716022105989602609004319495992357333058608840534566228249752620253236855149647995142613809439508768720760118960176648864942641553188817437140594926385099378801965487226920061444872516719854862628400679046592793393834867837105733393420357021615156979364383183076940997257783512205985493904717395476415872167076187819044609353049704578900322682752948642181642811826251980862201669109116139736850175559106887097998261271002114491102610909332813273758980344798138688438836194919894064222226610119422474591179643499307436620111697459631057214258312070298685337958119375835922136280952725105571025613893624427644805600549327026389752348632829846076632406447550714798156696871957104975725699118101505791903563548045573896355758866035140397125114016262760833625469641380428677124163250326520667165546372683419371946120932486975040157788167791714871104461489660736912416795323076110393578539950695480245530814830355033234387774572869696486265470869555114586785634297176864796880781401664400960063127379369142779500412353266589472366330204151173045055086300287076940327910810109354331728992902608522261814526619182273511233491711268608341720127281043490102831271545147392189011611967877750551044958214474121009112030476738774113415240659265564143891358147579000868497137110127353121116719207926470674576323792011697965267792019464678855578291729633850530788331433743273238697596337651404816724685808545951283218190377133936651401179889269021069853420877450820978204820011811187789807030242834904285593231905527314017117458718680690128666513461552099706703541321593618534050499626668198431411528197893345475630492465349428712343120173322362379092905284736453212141031914397714861034783533687804013806009198702268118846749823649270106502559583132878627606617654943106261528625678087065349998490454993560709898194856698885627203726167541625544189353376610793349507192630596223053784944055785837504798772387039663056556314795476862935401265691601277104838397791126672755429071308329866710700346447493842277476608847225095204408362381547669824400150911130763876910321739956626180425734024187488381307841096551458334017620654157733487358373856372914327368628794972896108664387438223240511863967887447571675298028946163128523569649009065267521384401171321904710564901988180660614806757767715055696637251309176138080471714417312507398764545768168696421591284398657983032692605525971617580647015600128456373899675842604939349567799440751523478007117390618811681519912418017156124234040982284084196919479827256278745656802022402395011476511263501523954900635632596125727913554951097944100084188876748670603034678353465191574382468710341624007530572441155600631066695790273018394370002656564108294083478126813621626105494922617482330089198684283247209859855641932139054601781063836917247113454765105428360817788170491488193115601596831754743933437326361623525410618223974764515068738422411823923231420345269710745677219670214073028354749316370007825501284902028568248082890220021724842617983628770276873271195498130372662100916155974484157142159549830861376335404041365622451095136721511311771164710728421830937119877353095385038727541820068048365138646772203570110967805628495701989017177852649882740833391827750268010288004308860295115671624900147077246173809396655415333965319415088394993287123824463274338086348421735051105673258494281496691793970219931106865483885313923945041170303855207562020890855629699516469517993900645082524132467425679009341289794408360708233714057723153663123433796906496087563622206034469768579991705023707600949013766253772750766292717233776872845613544134094684474620543357780091514274868314809239721507019634400207919986122844855037001725512391369122983538417488937320528437383158462205346321703435403960354514436901662197429762495764450195172189580176321643159112976254046701424928221944280704596020332613951012913189103297333210549359551898226889140682613527963147355453830596155416985664593382417852378785211746245616268186954708920214820944275713770168418283041281593188622381123102876289653789399311058153602716994840530353593209171204472258694778445977160566030353579047737266971585320304381622733020949814989458455403316466511543295053650632492217632960448320243616349284377306330481032460423039988596745869204109985157488875123842873363626215622304373000887963546232561152127224372957976248665367949973211098366268168835532359775027539864598887239619811344186221233873830424774411906611619577736755445678938766967422461215435369792907532868395261030328412914267996405989969282026422847348561750149976605135913099783405815642811914204082770243546107773406195321309978570163467209571414089798644883357752660094989675998498987242868384272875409570806988586886541813660439211209940734597979839532458681946667728784571732578169077884035978882914105596172601288669084365860394065305458171243469012383073062577853688211090312149137277132249550338987070129375181244058645506154097316205714786716720527933257396527876404934485889032356938394741725983932559354747825417084810918266099510089667455791630780902154109774720533841636521662620960892456867007110784827563344615385963148587841455283603323811215271114654524061188832167254032736166023063907835162238200395052189880416586926932886040795663800072895564574138445317513808485377684313621247566722748356899618829754302169536534265362923841401232881141958971036434356772045176729474302340495181406798600819678124265113190527786467993076449376227092529360708212211122118976381420068483863237813705510498365298827725383725987105367591057001856530909832288450025993023676727187944710652531259698686240723200409141531533159141603959069409634103200816605219158169754908113180895593079625484024047544920270351532365418003852309813234067280937494265953953107887043729730823717545713395038196049388367443513014655116365878164377342827827087192453083301249838813677173728828777671128394157809916441427036547256126778427302582991233514319285680067224701412444354601360236913162242467743110186483007870708788825029288796824004052015437276896438416620431104569472571959201189039558832257432260642395756642824216591154032352693053664470218032322576958825240494887154211194599903912700483813971315516736485433624748217766039811218348627622495019823219775079657421537602159536092098899857254896497458121115024897766863177034726213963396677473346603053428009638981092437928579478812225954538793848224327603484863082666504780822573014348461146066461117261063678091185863310546772436135584338488205598169779672538123296559053593123018337645590289926491994801518644842088654006986356772211452602784533794783689792415297162063605131135366208962265018749647073018845765715909920989758648259729319001640030384071719335929750698658082823971826318701097317298934162508988536300343298766167463404775471971345190785563630543042403263486221641096677894013582883984293739833298855647560825080433876779393796071462614532337764949931208624376484351772933443152985713026408016585341216700776446149077033536391785781167890324996287641820877041999065508227670854910314495028985932592167942425091303058567947923163836184246196003757298302521091825116522870236084426597543465225527188723531716543767433757205665570999560305682681246809332141797614555329612717452431876165632951896712692718662578935574749968676191064974815849316301622296362404256040395076999965137456986861241069226690555520639737779016453473583064853689036612150338920024608204666487308098073132215404483807183295666302992204157508815209440081488747681250128975067437045695281072530091766408147502394160199596914633406676053754778867746989116049341309572701634582714699741745000430247839594524553423575265782670020333588400512618267696408114691350412984506574306331332392537381816129627319093480725002802944622475828771302339915755680421668268752755104360057203986689539701313358725965021037436437107212649305669847792155740226487615150331661537758973405156131292804479645058321257751410090310037972227922735682598343139348923501145802982867530782168373387999913344768546037180724033386152499394419601362224529727487006751604673267101277005252277281640294075854035251521099049933649262680729114022692576064015503221586366189187402723006229857522589253533549787661278011535750955760714819955754219524356872888368302784646906587143133130394202169735252588745029463412516138043373784299165548537484974612802354436123526425697859155940906138771000140395844891595219859622638774469670976019600564355125152875707943282434384992116441833351800020266627182173115075936500083062335373648825975923683509466563411984873242600053405937972691607541408115944080840206757301118253416965538099388284040178409700678057387577775702283321334756582832122199656339369742635772353199483367008366499449683010634073656784690174336827291450637362293571971584841978381688120514723787085584671750976898061435146675006489289600746963893572564044809564459761945068817278153381414479117251402262740522762141006734746594055577599164188161797624567751614547718564194264657480743001974745953135313253020219312480471758034920152217749007076542247266365421809906710473147468259168388595121719716072287412999727174162712534133774227798097650540464455425064227911440047617406298477831979162376973809931683891987684008057088524043239843525707718569296574295315985874773048325936905574665465811982294379524825936831930010830712733274162695084043908904117443870118275267834503589781473815671872586587773016050386419863536959695202609291745675538446261394171441185768621702785041015893130411929458977072546851903042639262720987233616404224628950898671960435166861729654840554476909856174606806876622123482140695815600555405703368885378647302390109017517772768977281043705215210560424026760687942501905531229156120855225428302737270865489389661446718728647722949287526436594576686502854221776643047381028213306103633743330476094043930458464181466291030404154111825327327537814891979301252529324335604897340259936324152407589710358928708295109359390917320631863990000761696620813941033059807742211824852832079981782185794096395330998808819108091595003513986644663899398336659600580933748592227543429229767695327506373915070500901618126026604326462027951315916779471947924730074403888366770111093585552419321024050288000416681264748995137903565606180448403572705637615504119695107518429948156410883709057533981847528720766735860880130745099606630998206303232266209171778263005000497168483651382349656921003329822187904178802788076645457515406482819543448711931524218773039876232986843319663667498116414650367257895467090900947248802647229395141676202001650361311944415713879475836094579008685898320616048813118553521736530613807115411904566699003127658418543501509203252627994150967045600345106408980087593142349253355359290641058617098954255890695205362079685109372215549000349005684324492827914642748966525162967051504771361209679736672770933996095214896659531559223037972484837521435593001223847477396824131282291011372902674964636912451135271992272610439314027764628955013762078168192548214610750736422759677624685956108074140391133164633397058992489452845761837659051131380091614780177122887145940883135807175304715747192824313514173054526094747343029279120149366023165012010718606048480393438762862428800725830154232863276157334795617814766445228442090815164249113553641809782192998279489265942733166580019103206135093417337695605892640815037606871763075914242340741459427837063171493181662656269686441124613884007194765088677057838763926956777854916492045355756605634417871820081214143562767129017212059961122426344146106165965171386915418244924087596111689499594114033863896123098858417522602864081094462331546539074560651025092103209449608597607278051034333624934332063495215342871405116500598366327420555682808175242811645299784991545095952460231211441587425680790663015795817506746344096756937177957820565566091983434667735975874054992678842976495373238019469079294708076672476948049081588321886367178620765653342092021311075479511886941932593497978434685654428514146515018972858859118710028741307834046231570389666830642648736757402371397614974807456718240740482398739554202866483930068312054713258616789241637326755232942749959960887614081777473805802666403039167754803015016427605315821021104251072809278754098632374182278291075544470613706602346198688962108768844315266048657584487796551851593885793192153031451338005876431554477289138464251939916587092766169966427229954162449153888918746230438551279653283921690608740858361462499898412573571564982071042039171052270219516727670758032884647349151939376255431435842391039557217766674137178635320140675989081903867586170412349323706708068514627576883307916364966729616842756579486254030978279354899786093154043698860279963766249168969926087593458158462081232691487562884328137020808160688769339500598637414394420188331698301598963643127075629334815016899022581543178605126507806768384685300448417616621999029211681315859329467719929004649465518986719176739252121029258667639371058109985337549633358972704243636819402204481012800591207539473160162922115458179234203461286273122194097747685946913885660163684122697424746687523935033652492315345335849814907253065819893503233124229818511975513834952643134668087303415729791898939817168567395389711041822385233562827023484833430208799798487233382356279756708994503587302864624145008393993209958273089594440513255398610969419381534016551395238005365066302008405907814874621572030492547870454398923118148133473996700345904342933254892235330339755758868711370610012909446591556559628448618195461032684520226725571098257329135003942487410712298261436287435439521377309468843413097366666495207019181085207843401134226461191325073332200116872299406389361099497186006893400959889181978406011171879629250288831220920510750988232918925983178056589015125886937295592329493644270340811779303905698246415961147061658637481291559794692492585052124224696085411341144346826614243917722500861607014481788740707274240451863458411950985112998189258745665352823922885729803746268329977629462338996529443993281908440405525636656485973898508333745389859000370623770693455189729289026752586341897465314282367037119150692700611438126396483338555922263786351467193881172277625315578826544993592524577375009515003688927633627867500174710372792999091369784365713201592887865594072887513038044456858140610450429929282668745384230864583217616351901527328949432611955543597594239347271354554478490539536702082470009544960199911800369980147927117336895657934688017201012939703208157490470294646881990622496685363552151772081739292230753500489593109472921854166739303270965128348762981921899834374928083850789250539475737238002175432978912024164820490918184585861381865146261307327167541389332725287206535465778715779484957571354511012062218651162795580224995311016660370726529631865993178716780764459232485370525454512359166403686518162240770818022515110006608268390739236167834737117130805654251142739338805316287105126092357280579209878822449936704591564707061474798733729354242048607763506086007414807087210046501376792422664335682714062055346058462072148531288546378731463717651686350067642076670978973060842098060228630009939603668260329912555301645233797402123843979089962854453705842546391679961143155526194295941700042279839398321954921645209663715010098679770587398678849706016557321096534286461127503726039256312226630103365323488904350405737897414559630046061577730797613436547890993927431433416015662793629349917067471335517992053122720939719141534963323617562739679434744162647545708989910237797957200022916196092602069951340746478933568696381424409588835867127962806813347257091624788010860046941861868524157786650218479505320031613976616495307348662248225229301616367460108420798137837575039608368107029203979542126478879233140905169001852359548657199922888616397338301561652968459280613722314605221934563737981916601662558914705674752461798673030899455947564903230715413997388598380522980490779434221447545755806651261883592322895427684207713558402717244894522396047907706306093381007718278977441741140401083780113139823962872896525224050572449886431182827762919725589908925042399645534249628765372339743325787547327318124937916967905999220856208143795311471531971964133809836863986217258441778988423391998558460864465370668203084833958522860908091352205273278457462780684250066911262252867425331244630077795411735728420981315881981238029545734679961282364865190353949769998425773592069987326335538163029138393919269838306234355399750057282059340717560976688588309425811264525688364882878436860474982489620634009011342764637449315079697425223433675802222875218132802042492744029376340284771220708153063341057875584178261826127293587531300923790563663098223721375338805276824803655463049830768864735176838626432906591238996441896907847952432230885126350728038782052416963879666666567065602992475928736926248115136111508781306140363783964072748675526342994551910785245314742603272061492079841216196343010169938038884838216657253641782905123214070332135713646281628735598971590157791150696925983268524474326321348859947703866398723262222672426567603421071160892850808562737438630869530118116187966675904079454343093322069044655957195596446066476318463461596941350725740788699357824648362499959471565056777587123801660135235073812779177896188526614880043982060467535462477405670846803273629472661198124230263721122466436174300474357161156290089825019476204983078937406020913519557445488096727321214132999855278533553245831930368130441454653282718377896930196859703809210868165821108134351035770457881916793877526575167944818408870703918133057350820538984619829490672355692488646758734171920931465777856483650596306066549042466002296890134052132462439923781401754720941693148790900367337310973239730242083577408049149749362062091895076837375981283319008188991158550306331246337188867288688883512743088608786275080328027161754762368400926949241379228461682795302381667040117792037554499781722064786970118724389075784798198621805390606733666439275637908777258691909846805113276935617739283947497552033882288550122307416965395861671399173455073272419914507858741687973222495198101335166789231471438530829741840875630541118409192465057040642483836683088631132055937581758090973566241838631581868754525482408876867671309984926723122893185943976572319734463046568574497348536691845440338732903947530117406019886210102813665534559815073704332885579283572754196255007124730848177096427633332850708688844554362357619982846378187904048815196226007414182584246637736821979488551027076382146467855959027653460392311956035378441262260200941282274314589981365920229703211191484319303667337883501196256119348840704561665137542859938716219322958708893943001956758881199824233328873495599470536267306751907971977208226238162839806592111258862859322793117859817717447509607737531240600248535234114530282319547022766600610997436352209096738179050257740481038588328571266986254084617851172796825984147808085413704387046640946006126983771887575809144794840795207929672060615817404786233203398668964623618317803228041178646866295795288016882540907952688697774101101804903538609586924310668033268043910205814998818818789013686926056657572940576921445025399661888894216124584944766458102035791105177271521044145589543068118043347876658482605898010165211816358879636883105035221992218266573113483616223695018568435556146920098164261566961225701577883746929260684329687868482112942138152563770163047288091426371731854527712319822817465314762519293830951057567169445327543976419312599195640875659206396638697453725567035068676832610391595040828604909227132806285474343306199414996182338326869985434436160213761890009313591744721307055992202555406887602084441559145484401611103624793369597145065331001238699097081775587588736564576262256576040905338975341359103541072952900153872022569191099636250883347607428857718198198086237380398967585267324292715169426147003845974160292175204456512943134825357821765487635093254732393092637782747269102421803057052443776285094325608562086228957962039459281743648845849945655833702239525837024367000101308489444804031822001182129872259092114549321022528810012525066154494960856185019724434807059858217752765805482641523171069681199797836796963841541732403569307461569471583721811714936738437738859227106024878264759343583104384486169451790185926297950564409264949100539754239718718743569495253514682666829623469044629553013459172513614182393603611898402855337955085643943626040083827300085985534751796884478671425312878556705818138928603292130445912188323008856053250760958532526099594069469533608729425123088158186645818120032583389657447108021134695381039408059586843920860009890788709861793805854428177541002051736187698122795515446251015885863107876773994485558751558506181225958864976326663023711164837058166952679387413294216851479492782725960145333364163273221557327669579822316141700422941859431382776489534195608984689472771039103436522199874514145669230471749499227145259959715799454419605134048539790930938175505904470754012591117609941348142053803316894692843706799605302150105868770170535850444626329700373349797492562807045161647854996079728616304106451276510160184359558218943886753149262046955742204454823333263341604409751226219157220821683988250404789470369702310512177382676297580437875956287056774832649780307222197373712019451051274779709464996496830012062033834594841756424811396511126271677663940164418468714163631237866007885196122100375745651393160220740158252893042196111135548202680235021749385724096300961450905911381717447274981421528937457184436444337996269657847349335326035384753709353166780023609710890195098480313708616864691168403281826707829960999109493659493007602288180903463026839388726631372136870192859018636616822446155952033624664743971899476630342403699608591104108947435547639238216105337229727152249497714296826398800250020672057708881939014030343825298847613213912840686124608033812250904422689102749224917423868030076284615443559628368824257056364803546450956486424067224292665908874507180787887153239768935388404751181687643641551276910657280138313696254112438372723774053330740433796491279812880830553953382446100568532159413044980088983201873371232120739344933845501257432138604281186025863927702776907579760174974266957639350433583728460726478995353682836711832758014680513016045518990099164999471087067307971067521376802451562464405845168311800736710528460574451766177611858164182565498738468486004356819966939649188637744915246215072665552179881929737761299462972356641218566412331747831147618910642427742929478603122552550469954676990399491166990489718097738296570161272306148347846595790366129468682911631284838034098447190618678976493595440543708546023582092251696264140399655781013195280049319985654339662492731024850197400008067903767342279731828403455693866442572736741881867927956455717448573625809275267483593958612702930230813101768018732485452401310733593656939228059396944587841288193442517644523434192388901581565012550688920096440618671454193517850187341345891514185733000658531214525236623566367843211708768280457798994900053439069709282646733301866994830065533912064841624816664157216497821711381124601426001339037560557791091243554055579048559167471157681043575887507198051824283386139736453556266155027200576676019974887074550565713735983915077653639136895375901196328498187100789782567693051700498033523194968458622952862434648671264616846362559217843516018945629729390600650997432082765750790063373091624385602050364605454081059661434035848915863970877763763222694051522885744811708978376126151531170134799102895251362578440572411374057427916423190916950269412678051119494455201647249442388700434747208152249496777542961972068392145443819629288102399187533508485735023372324268385500396880020023454307992685336412288444923234229071307760861044450774590048466745535401541867288987345558036939302651804922263376958849007737461145462607231228575098156264316746102791334050887926146208910838159501588476309548649059990477149690127634877080847118910950110122671941000517281053993168017752375540999510749276916613851392435814264016348331874073675179959708593491290926441941835124808505663084838388364862701786236968268525346701355776994670398674797901983851599033145096468813767201334388214208035453860054207009438860875687225077720434128007120576927557717283823027800473287855774915027361683418410266654336086241891799053888977834540825078027544262771021287636925160196562002623470516352854843210247306520891965315541881734262889238607399645088852767936567225791263760824123664530911239204916384372518184271299279488003346691783928292172696800473780537926259358727007720541654511799338137592223707246505999526163765849887013831785727419443960033846796745948206773133634649692608098509808246013618789921114614234920827333438753598382807638518491219278134548335101694111329881404754321924725829230670609795925314468178077038659955072304463699941136115260367104507033205361438809651274970104725908290893074482245755322215209164553961886819949896997957597558391092928386941236540326659536333742895786751001626190797444248195329843186466555881023295434044755678178291433098835717112440804261188671282276143610893846563739726290026343493620728336734211854355994269454034293300039955680459804763546888169091844431604968899522053986415178568960547315967898863793886891652530993898473701861621586418374666332780507522007492992104447542480736907102305340097166323834205514226058589079909745422341317380689112393867734382555008188574129939078634256461692473467092482873789531382084272787264647197624238277215009137282079460913133376785600447115551981454486725407262335268252224445115282120887494094311662329225138039207011447086822912454286280465946479729012423339211557491173007214934328233285394014348808755691421840598221421578898386603556364175444452501647718689314423693196734513334577406683877486192175831581210524573792600932834842025863591537334280239946590974646740860010017359755361317837362699159442012893913011927542292275831820031334842391424076151614974605219308069360080185176466841745014618202501789153388952974345722334536298257478678736606174386677944451618060549566798662836280267953422712764563471988937251542889258614408690727271927902616017087430576758923642436195125509738150229679427997897368099230497691086341385666822871247006009818282591045508232230761534497933146747423172674976476914665719301145149581669996052055623117260476043873788534567866725651292122128385327836618864039375149157066631528154989893333808374313626986007724698548525582426736620452799379550811072578804456026110413575925602150475304165833225243940840765320120654071625774169935910063563874570367017132507559548410968050774020470281878756690333505930806645747617925764220245934141444948513200898240784171955070169626308714091044769335737208254204017193107907991020182498900046078792757513872020622312162828315082829937356851587932476663982820778010069505630033037361625604443608357787296093285988241749436505292277634007452241856536751724078180091724313328729565975551691003936224902112332299541211454013331949259565385321849145161587999878139304908583502217418587767256640728254414767807468146965253764184288306390471986988850476309074957362906174558326778623380100632541462498267682707239623397170544190796437945679740249292806522862248200180268772733030590888980518333053906903312478883175841119965034868902458747651263525821179693838750097071619455870151804673376491880026544410272382367785531479522766575361648440099412319448416499840570690604618137000934612684425960952871271583037948880696801528875818512966302965757607035606075361721933591338384686026778290599194113371401669722249834504274290223327020551411946834926961909621133530411827308332846520745611083027730631209865267687460389480074437060221422087035440556734114123532719746503839144563388033510720944522569304389597966915467623587399561299498375301376392905584582709093576752719232220199656661481667630879964029625235150944690526004260234112553694624540769518844701446509103738009689246349162627875125812444793041825455509643758685287387770165601079132961617868600775354878533303277855322667080146482562536443730369085545378778738792160532898983672006194719475861404719954265749400572160845115602648985315282906997429823497483966200051525697794812818371459892132579694599323669257104782869263346512412721805889953502778682432607604774537297797921974474382939820827527907458199540162223039150837797949306702528338875759449784651130250176552040071296203749051204049818779810730860246593651002434800126341738390929196755515777738593964389575535007234704550066390070606470727908067049478940322218445530185308654209935069176504841955243686407028512237248645457156770896625965214799251361760722835125861560237332166889430813589203018892769113342766604568595807002422336302932657082350944020786200191043939263594781474147830652572255503932178143600473694311227769033817843107878605119955018260540901978262949654262254907879958365696762695601636300829690319830457305759956939614355754609644385414423054096376070558560379610567042428029076733366472794405444452923355153849463635308434701367461371991132984494271904449854388548818263327554931618656783114674334667691758689482376988103505974211036391789809462120745545418688347745507520930303274347648188210146262762221461510430309919741920079414151102518667777974625291039148209638919639108415209478885917247945714905498618352483872074390249216269130407027765485316274951525930109225347404752575380099527897218655525096977910894055010960745928500695938302260709316363565534194840919901660870094561214613040321731088930470268453052352629696124913891562084445559636837945834424535455149037718413749707695572855080900358789022742178572786057618273740339092867382067640822339106174809184847092877465062292799089568247388370273056174101260748585842362918678201874281446707754988433069315643306986420340665425369976871586579240177755809340398027432910594376042535851307743019755270816625052220875326613426747452186171913525542224342856738988769914469440308898441311022944292576552786489155894054644898241525882123566582187615923883266454486436266148715170152660199996611100675034987507709629182623737043760559411777268218708202705130784474625911730435542833445775437108388469379746226968895002884947363215718245460954857831238557442137391124054063293009043298616080323365273287626435433218400341897464083773686557117064700485592138025244266963285312382266350718044753197279874710027984585888455881843112501348264979006926720882409287680547323661448577592638172984908638856869206833382168404137534975371972072333223959173923361932533056141909616190358479235850113070927671826430627057405382128189553517368755370423205667563455273687700068964900160487489605381248269271314679256339578529700577761673199916381045805176963946184680758213956214876566169560014373179028658121075917951842129820968304574781894758500732232790982825367043227994837021922516178480807848146641424785295080275096574709799888427118238218481756315017771409530756216675735522804357241033783968762443063938114850428341527299276776035039420382982254941092577375244882439892014531792173403355105514709081515997804668206038818378650972161066840554154620777116313624682249624929826321392020595474212586280400675839998232266264414970723903089244576657508932002508560410508514292179886646278190158168406504808363993271181313230836513476327184781419687607608236306285051794490753172114890586809077750646799221684515428249447588531200353632556889129365940119820079048425289679265736926535014370148784170318527185309414240240180952057165561800783896063353483022757403723495333945628388979468243814338917267891943839337852335524152961671102118742430457748568174264908116813473458308369411310203894474332453437400976680458679550958907497590508490033720492565380347950257809985928952723740582220025153087581151764633752310976568885987496423269982858636283301102227578624623815109360014870418532193230423391336810273220270820609172196894762353359835896206069278116462338946881746186328698082448313699740694941432319188777325650856805743663475764003813491131404308463656551530265064694331350116906620135625195097644070412230643552453582996823536357192521790408253363305118458960428536983178248856926204208416282008962737023696959294312333857788523089328927151155609869662998023406387096549428269108875442642099464486851222914472881462194544355995378235755342817920790238131686602819454670674272742410414910306864090756612055495994428140454336371017198580745951441243585030227577338879584749449398503753216835326751366166984558093896468455375841378792234687876783242039380089003328929066178168968160823941115567354875327685121212084349407785161070318373323872999357201437753152314180371092653589581477997151017146880898620987327457193619321908551769869385600972455994216156671143665858881701835954355645271260445730650611351422061689792058751035500429473439474819876603860186921691164221535367383116880666928641778275564516849289380570059839298468801765137381664836020811672421848137852533277716536233809918260654352707458664486698550433784327361346472987514453267110381892302139313911657391932016014196458957548403024555209095929502521656369974352908245989735203893698137729522474302036653291005618065376142535626199085793593671381330892599302756491662337288347125438520758538173617072800350424228632886191379810563904252827922431944082198152054986031448906916894887647181610077204630950518517125826734894973893961225483602956448414057974597772564690044302194853447881425088593039274837074487064423467327495570915468860081693702417957295733140457150566248662379316395826202683024664184071952236483316132435365454861422122496407610070752275970540846406029373692864538301825724184656011304147857200691253568129429994674223316396751348330255227562895253647783717237707066442909574450059870154753708086482981063721835718793781178819159896706771643382708029270181324466193991101204878601103062661545627628881782706531261335313123965658615981941035502027339121566772614891638038427761093722948441426841171149939070370578898284218751258668994489297816094805388682027872161157340899740165635337921236241574583746448994185114683312610465826667199888803704002788016013598207742792479551980545314865118539050695230020956512205299298668394049038521539480959632476030666162590647378476080870976256399886436689020235400904089628623334749193939174964085639579780796579648620797591465454770526941223350532645583198821433189901167847313092381828633812089917063147864588582814235126835586839693913305405522916478193621237774888889093061030257046149929216763164402638513269198073864986087620896684430853676911868029951655089336241354201121917685176662287576333066041472882074730315968817662479784063460488011373501700812381940238077795558080628987898324008843777330680625283275205344964269660420239729627214182263833237632195485294647561774008630668799119752283898862627156252456471640442880858111977704164395630670114831973620704147876758505615028709614583053468158379436623626850190442238379514645674836209185629227870604105700807018635314314365029787407973059928750168146628973078012061166225449661485053077809908180669900292028931268296898326622735999158586105996864088477067466939203200971979333986864741118111016579255300740772348016455209286995386462056300144676300901305602474448598505014405550959537505734392670518880489690905241580109286171183504217904880573814118930959331751630192358632860325707466336757203984271185020818901504326376650132988604452133652784560866790552599892020614218362487556112290480964485975495654742716404268083023335498640105155744767446911789146122925416529811233825598857786106892382935081609055621162407772042391884099051614762047473998426204931816053200178390999481889666284768295608417281912620445902739791540000439006450764366422239286962664090218133944297432511876024213488577405729838409943905321319382046662902788194862537047324608634688273693022612655785590833730414451559883392561294385918834985360726019689119736154502953372489703273517570679810773175887273719931655364603227356171662739634475074816541857266092754826891662022715253963981447364162114792497882554073978094534320885050045057509899328028302025806709659303882158464500185765792924170014991514615365130561398450186797845050866115942689461862653042782742017969428341840733597330681442229067149144330229205815477638808502178359335390035123740459940033572805184647918669368486171930830171813993919244138177519673325381773684636447682770265265114966853756144344006208064411641747066969483663591125991580234110439738703771540191942685647673426212486341112904004227785418003024423770550146363366820952696733808747123366664814464620447007482633761613245328778226918829001698403115284037502823815571593150165692566393187022728877293151103487281926651138447143238740840519079083189222606571406915844008503215835305300613436911216313907161939063519060423167169299841130814867337339124699083090273921247914655573983907525215682369341618210003451001726649593133229512137478652285468064379101508677383886435799721777526424202686097489267163957038983115086957484879223250935356727460298149320978807780472217973922091458108382996745893609797016630797644958208932122802949166118175210900093539176599483784857884903271111271830998962979243515211963680537720195485991292403860696996630832415805713922976128676712329875415977650805776302950216670348593741709947787104502681420920730221192569301343947674580222177920655590103238917607306563096038148069735646135221547951419150316409994786265943887559118655067523062622675079556526286739133972873287126487304800843124723349979319636940089833422203875956387641808426390304488082666644468055233803599591257156739508426305833406058559207538731132673538719376784009828029098766469183342983083085362220355344994290659175783403691349323972890708889342519754785174365587677637598462425882967919761544339267488215522374947351965897504412216849374149649650608720169161011905810897782615784480449567020202873484971004754337663055624276747974130040944481369364971785979536787920661210114381738390245517041870334860375067058879748778514327923405686892427845916103166635594803365329294524076840182923804120761448059790953156964462043141416386352788149197064816639830581727367680327522394607759064752220731173948449800643687306739292719689022166821016300853332534364662912162151047571389285634658770125919424760128506207537628740437182155186542440515257268828177332304634011109518713428092333701811914687114505920035481421130020038860312630448631276543958355718357715062375098359875448581106782119092520426786009583281913496658397825735501289409610882818902376749827475778973398604840491782212443068223411484450477290942669346552923948032801722184515202665416582142742815703183616104772138252631868943169950857280938837061466316122567293471128007160392088279363362572263446593336814672047902301875552599695649494345879052436103471778332598639741805690650005359217871601237031268430788002733624842297020435351873782942976886861228807141935274195983290032013366403207554190669278187802877513767887088833919036283417969142904032288219024489274022024992793683887675896348347986798101838551634160250913667564571689568584624471428672687454426307095569177629918604680809101406721648595849596853581272718536876199727001873030224782445982905907340613657049967821118365473400587679060113449601417479897523914745139886009582577109210878243729879347263037920594670553525163338061213094617394864805831682110970996838157693523039842312953187363630893674724706818013868387507922098323527758824627925087141616779171858559600956387000700118290008964287847637628422976937164025869298200026216258976803103611271176733922285062081514905608558884503941595452813053066627113446340055813001954389549571888583715801286814906567283499786926732029514300263557431120032612435908297795297312622849460298789297436435073583372909958644890800699987629687597692678023978153517299338438027005720722266691946516039725413099586232289493274758141007690521826701461322753655175585857963275757656229771934393435533195359714700690884670381266974011355097996713460365095280308273078823478778457879661892507569862364564688631782352961117522680980519231598325182521680115694109765117301146289244906939049453638855006521053383545029383507785741742324848487566681861857149973620253021127189603000398098518486586631266964376754586223216540363060396274432361186490925231471560031646721278085436397303505470387233053066974615604417272713025089185147232132888087586095023093188553946618413093404750208011314905333503196868103068933834493420341865989066334080825506259801066651634717886640941369474451518809977334601761050986070617627319908677261665861349062183925061728176338372540484637725772474110984768491178064344042399230485315155672513665671713017869442801585381877142863356866120739512960207039084686599608604435455235417265532787253423981436677158375926833316681628103224397058837330233759967485595805405052877547924048544435791256203283517087131955044635007935162134473153146729474520156718557192500758289159938856153108765560594422961634199788079194839109272966440588451900897648049059276236223334748064292830252381639121222578756399097586644607483160552784161418386228414258662518468683721332422621016565520402164395970240718272503149299305331917712765076575734790802519656591879156973806261367053110420311858570667871690524829943866863665205878170918141099548180470379420649474665892562587312601530770049750261587339781888210893793389574370122582436284998183896646710875431065673845651848049048358576266184383240004199586173539260719658957755589803426998918254412253144613283159473583482064970223332675971260585988183877018974306081689760211157909103945556790686449429842255685006519203512396052470747936178986078317714681744520311525968203452632864566616619264867554344840112810176574480934904858508852971559370809839206330094526320232360393165409502930241197792395967646991227568501349099027259076944186504991452919105596862963114152331474519766434097044832463078730058762107600553902701759901043103647522594712280917592830886005440691638020704771003660070773549826258937957212611409178062086448187751206670286715203974818695040903586919250778527113421293351152038322928461404007793658139366810874020529405989835435938019256265052008627325224043037594501026223982682671751378421312856740660109123246046673322269490112683201064125528527628242739061990065273550920774196259434146199312445225306732106497474152112736160832887184260294060284728310267067137460938999191876597600347691720306760025583922939057943601233626888511656102632565267336305878195614342849073197876846944210577701601812331736220799235867912127227249505340421899077756683480010440807029488444512214947066601533997199295737713997879540374141884544641202910034261366345782404494227934557763024987942810996989852571723781967265741645240603767781055326326094272113710623002991317611941522924633164497042122342467665116118860846882692066881928955797795837817228645077560923419091414818786414955337397823787231882581473628004596718260469113155462147386366871818041361211235056364145832280358829401310082515030951667310917096330564504415322615039715219040299627547545615108829205651534545421560417749410910021199497591209929463830146524151341332107281653048145728195397244986768635555959257500662323781004776728941026314503963322343594355028352855964590917703034338544666139615110745885267755198391431120745130168329955228691103121368962503913758687944610342864290870036734131493242628774751964861297854010048985962267200538487937929648850772677500260398622563301096522340753895087777662192629637058107781964582657562443343972101673798098560761996117461475481985280895957397357208599411222260768457009126907411718238686967368653880019847341480044242087014275735452170849123557622331080399566150593896340385356655330437278137206295483509069494280172016651820218915117283037787385712418982167875048916298998887344559659723502525173946842351900571332549918378637271440770720772302028263392846471463803166281914607560890814792335830849996207137814980157209837484518386856459267698744467364015981352942803469793214864914002184157891474593109866089002734783062821299274936080424510404406778042037866681517565336955232778359588395366782899794133219789508833192816906026234398321637961575795979697813719354521940256595432022035460151781860705484572319237168622805189846473473664756215092461213880039562683675440486659909748415959362429363131601182722012081316871618796629677704723213624043894636999248609343527668255898375283493080548461327041512537119087232695954711089347122477085686056113973119689055876285485460936766586647391278792071086063740227382357822999320767896578051390617499644515809764298342181339553227192101228066929709137531821405268157119601301440085309065137972370876158952612947142085919108162803156382645644219983028486695088970988075934026588818977466068655666333080808446911716000252100638835015572716991005793956617198917051090524439335010583498930838479884000427952737108742465205068596945100906644620262062742870545845578200783571168470552319222036070904205228917070106539226898874650016327432430224183053167830744326605488800678557369169695858668710361860414348927337526600062923186829559965424693032029475170748016200878865017647998116745447911631838325426335843385990056433194448680856378930959352563088188122198726342962101558373287459277814684123201960198653085991026617514851732407121736151473979319669445523691167876929055503098242274777520255931619238961383243545988209840989967248891421348437761004240938707132500574446786141222895390785262420683729666855489757424620978817336545840312943539641499695274084842883490711178744827693695966523819064525167842743016715819843318835868930152684321351600424577175801688518655223451196712534335208778363383304429112597818804318235745418881230711412360095945896507967469371657809390687575957209472384404299933713650691939241216118542598539863124465987035516297272526106105217502785123041607224169159825977282890350204958540898115745295924585881687395410138508907704505527037265820081932416642667808608176748286367782586118987537046612290519423037497432259919920024064559206668595914050346227069949906283822658042490607361833114672959862012778727566823263445071898518352858458200565774879532604197011910406470413450611363972915436128964427849911825357664794749103439559618452306119008845326977763647136674911239863019568313264178875897233483418610375407882330984235397577617499464379247800580240918222289889938297651498859699637757013118946786239368941946358014128017344255207346937880617685082155711201369573901118734840966916304153462551104477387342196123534226874774627364658853996106633891687759361372582257578133967814072668689859252461447631344488254629991356762998140536643032420160453257008187935633761808586983669243489353855619689630865466012542769214440705397720302938802224121294947529915917838113973031112667309378388302288548690732080530724861756983556185266307766728875768742779160717590436331709402801789834348713694913834833603237735993876618861810449897794613001107870113722507189289783820816351765394033617418742481142495929646083178514617530117396952390900397032457486653585481235013187861421959775990029981442916202927952423153561624598320631851574774703750673787128271460722167167888681173775685372220321308159350690844719778403778493656627392442409442851155390438085693321631732699422663140133795336681612021042269101541245328894539601771054110787458489433628422751365732048703564033504917814252145842262634073916438914734881788555862187097084390882412110747085551714425182764049199613364143901243267535623034579899583844028128151178155409022966411166041350740498349163318471106171798513689566953462724784866025466879072548385141873434690464666400908339918630961414102217950898297424353442606040314120778147812934243616175051081047306775511563977180660805471705676452857819551208390147750129381589641432275024427331552979273742806265795786262579204093677126943222726154586671669353870358857974394084304051690545669945246730650237768494881966820120435983867439036288717415327081053979278463745292963131302955588637606691025466003501781167732287510768627210594585208685644885884895634488457066225708983511473133670984072022758756017590112200422438534063586075361711508077276259031021105400414693871083956778633693434951600865368238805806542686671025981047209141039589752740892329323235675750730165618236323115588071770480399290972770019790156027176939413783602214271795208932437202403325723608784174537063058034640080095606260025825276434027779805869318983189202210836365607892636415551738334471446996950471009045388675910793012534673056508962928909277098515645856446132216794887410226768544186211557277706029372822452067868812058322924352974817136485859031898306104089800908394168557247398246357761314767494063672074985769056454153385389985232567338278554560003980039769490043658902688472082897124142766878741181219030256768760281841614670072089067719388609711745034050535928367869357145291485822705500727446033185149888875804900566235852070926730068291773482243646695028770785907493127456237073738914494051098758574941923988070705799300917635748959888609041598139306827493438823012091608025841840643102139526122748603769789254258717090985118290210324697332397536730574771855158804383402965859768245073564383228358314232851881109680283072812863749144490211277317464707524132098714106429006170459540903251025722245310093560034368354880094530327483414944643212665746746421556314364195331914787287458164798238832995757940573174437886519049600217278242941759052480095537570833026699528493586009722911264177211763245286260104147101100533544027172285343675005902000065270274113392286176853452754101611690516845161271692421282742091168168556990728148250829931886484490210203642055459474034913677941522883794727688642700036639753669152267667930622503524059624404105843547414200590625914500364215383588996501984902378819024327329992601262931352536184656345366817109229010587767279114423535690612314231617316858818769368569441997544294750611777788294205676217541821351391965779275370334961853317994542699323980704126158739944755878463267091107114919083570364456711123085905763283974689498299363439609183317881718048202173489554132467488127161747121512643660385374835166918590173143252971472873188681205569404248714201185368404441259194779357723315987759583605406209952052183853509945440960007384152446283456572910655085998294580970116366298348709672806655708887660179329989655059580706456156730177853935392799974939785372326325858719555541475618179048257050806683125438414380670814581946259474478158273162386738908200217928894081152254041965941146526893124526730568674425825108664756435802942422548346200096892695298303286247330265921754633891935622413516006276653766343477938521270784141575836723827828903657847509587861586854020560335287049372732714695533214953628716430981211302130697480197308674401628360431280172203022533367264780051122605881612637037809500316759902017142774164463765324161239813260051999413534585308468895581395099340177580152775350479216640711743413413188763281694562913443686831825193739145246911727150007940292235640073387720776401377419578894200027164487227626478186812049448251965923688029195241611421402403807675144449779395410753054341118512251919726164211608314351170222126614350093788912051010789073850304850724721167316816110592537714237316133628962165703329436828701683900068248252037191190897931592728916573417017478050959210203775643311162777377055243177969526073247306798728194224743156644154669402065854435887529122009076254415868225998861175662443739399860002901920423324789058296112882602886927473102931551980170579804771154886268409427132162160534756942088777461277115277160998425150255633836560099242958878118034231001147133169080918229238741580133809709472560813811590286339664293527110984776783767863262336981727729579161550964689743935587490394996419779270137139198489308266115696816906365444026029651611050315554031219101385414009594520584605099909470054023564620595040172550538640563854940692007449395829849349481306773109048045318834563300460120179167619588180402054683347273992787625122598522006706549572034568539387793218571426718623704209892999272800333000051775090557348441668224491729070425811799871455289143183628326158782352086835204553082623128247371376383616725832476217505813474956392726036690839686005386047914287843965917091507488785090677912241298561118739444943549184239700584030991767736112396870111323240725441305177245811630460491956842690177199079286651150035495945833564463454038020539568156577214414662119770699636441536430899523961446731089755683077398722232914763829071045768421645666362359816409176390524305470137919755772113935924424403206697978848942062841036055660241644818424509797145265226964120769730825432653725742408532885439473996732083367223847736119893090227973801042427566258264788784808313924903678368123684106219401713411353224568532956021311770449285594787946964767755569109967277537304717818535791279462538471976843645394865167427699716477533683168205598559747105427613627785027199812210125672032816655468770253154729221758804464210154335443987141820369480665331693300948387886175263395066467901238374188198160349006720723357147655779018519789612899450755172105041556999810103374535720492493531363805589053965179867032005450537973046804567653631467433189902952598112296246435282816054086799261515442917118764472903553312650607492073090984621232726796113925651126139991366978032888160686916523240509282543013499286305655398483272852359562667251724694585499406974163692784399804675957726786005568218803191028568582001633680667873059587276660822752355667512253424540990583506386880451749106501224537185287216023547297270179308127275869427443318395493725791688808874877786083785100272454906884964443351761664200557762542086199111824275841178970522619190137467155237637281146300656759273304738492364299533894372681049506422244375403635611637893215634276786728852997805543896952903964013785998278480630009147982372598787311064452746226285597579251677070222904478524514620229083271278477600338102905564604674124972329915791429211607760657379258546588398077327546341610166164553387262331978333082290693642213442403927391973182217135269462002842693905589972945990531613446539912159831264638751711221197955995005979506837607569482768105197536962377210539448948541233687341939164519226213965614898462868987869928442932401971262703079165023935493727186695198672415585837780847557754451747397635152981899940574863182705384843004579556695441126353354334650694594590430649625425748964923589699085763682360560913585662957694004953976215660445257610442370599826561694727909241133649440169561673487355288354302936518611053425632686387845009675652506476629286261272655877260147776313510975755973830300762821647150995866178002138631737654078933750598897422176078290641333189714524263084321448709074201816461870864270510632989437974021334762254157452945367883692380684284585837782207592866444107996447226736952010048479872884938884133598176680343415841757444289817897645030218144142204237605489687355586070144829903750255994964063189956613318387548592600958210507174905704783661632657047999740280010363278891629757885013601506450254027847925637098339500765277243036463994718807440702175335166067159053533479196882643195103772864164738727869613938342406395986161402104382522648973342166843374170810072405087374690272824636091845283890094717957977399798643630424108180017811778912345548514646329274889738297786571807955956536148149413261635082807452132882319114954715754622097372969601762184152113819179740979494724524395366057997456379995078369032759851481278308104744553821699702423859489871667916429720592978147698534525578126477237269226651062496948299424237659081943820887351572942904783509809197145311740207366561707715921198725342662026358613233849943938054248202380868135720886497639962407201041084208080721716884066241845183478879129954924168032698584236299634284765510132777604177039598265428987437617735156868556625517725560378027745029333149696226181988227488774171069518458586304283675770295546551525657353073017349140529932381103488862531270718719740109662406186052847651825922457146237820003419375596218928474004904072402754841655686082720945500840529308445308681931891135255715409013528764631236366895839415262090956731312749392935851327411349164137953557319911333723953931996358516407120301740901633017491165195139483569365119199572450900596410660151707475227206652278857296284455894786598478238076738220450018076241297577047906720762667332547949208788915118255439720457486493909869793284654817711821885139252211848563554579357868218898466493244397925726630588238399204900715133595983348216798816484409291501050798234504008711180974818569274716600058198930147931017587966522039111113288597841124269802209156580093681883998001440876930890402100685843248680310770661416279148079832660652824047063254927956410060158800000868123207472580470324285399826215316873310359867732068658382348015727460600382653108325765758097223314936236727573913979005261150206823827208894827517434420876508651064909576120134364287149204160924275350886820073223336491460540610686991449032922094658778388934611049732299735954845595180850241541188335246904233408802586897194828486550934927651774264959144814118585685797766813532055453640611981907608947619333027205213194417577481693310773430768477668340343913195133389454976474910982234206786023552508811436397809210290818276795391230117079891887671326279064464100666910321192738911406506114360478122176190407732555270316970506062360574520609937170529871619558344447207164960794233544248996597125459096345580091532579019830167673524423620876780496564543016618880656701895914204066011898030700208512379576963981154177976867009460679169754592405954503063650146740230198542248335215495751651950874227475605072432493135457954769146311773978967911946763977052194692512162925748904371338343471188437539987374713805871235426869083731146439495352956620710101301739008276844183907491236391094513865634378078663629481959370718233121827201316773846402191636365984543189118963359786172093019193533122066729322728668981145916992532013661034376028152565207605073678071499694677888784907680506696179805765387153081729867139099309759708302861952742497720267667698830337341609517634790102943164526212241404502165993280762748327717229548328560078827023645950208778483535496219266050979468369802988169428253732678424870991516668323000663171672579148710826780159431956776169931903742061328487292214162246264099488640736953828887761774140580623909854148710941737722760459915633982902262396429974299013840413218695983556047492004043387905175808773308174306544840827430898737014962869586998035132407034350043629167298024053176260551783850954237897893347397118478307847443817072638947611348564257592904944952922558043069549887966948062390275941601610442246515709608358565389360817534559571688446624325205416398579717504987788783363648232804228201863901944851672202592058569066948781036160447023101570881434288881388026632160143696436790050198265664407593861038069235469806644499548919894292892113902020469194837258004934016790352159742755970936464301896890476873178850635806417023604135285138909676761477598947334227904256550790774025213753634789367277251481680826320800414051286032240787472107280735846686210920465767664343730687144128656446744264241217150385563288634610112760856643582797837198345652053110548952891070594678392441410458947225887439626516738571719654233203337989096271499361046540513319542318984858544825496116678637568672917147718809669892333574925739997191724849777896876633833311298981257806748479613896235325731365088664906989445370840274582106548339194899924688046041480317279934111527595134089416059684978762998957641844635632785388542664983313603177421504923598760040597686122103950786704773148564255267074537272063797424672354756784869361226649017586783058571978148810442620802224717900170079924850029713306225524726014874936379695220500369384455510873514477703762020422564458058175872170502266662142419721806642962888085982920889680566615126395039377316652780002796130527395969689041136391482502469989985092078209005166984803488349079906503431228240630390517251372923909955354268424861968949835105839423077493524973751195505001014943899078446432496144373491707548868117478364817351596056040726080857438977600858445505180106674128305091361935518127147566623120248145244324314569844607083837823179636398372324115327554016140750014582245532575872149552562015861131052318201154036750145202023067134471983135030898810008685028513492965576701926112425602589585462163882323430765891608779938509023885223900226182479485338484482431687956869854385612963844784852889540441262558300976946783327290606573517170139637397584286611496184183645987655379980211229680567394544475160662123241697396395531025082441504155656731670615817962863613070918223064970945536763454229104266165249274208182817631646409386061487939758824503738753452973089824770488797272199665730893595567909073224095517988432419388798312037211534063527651603548069452678258977780734586114760958814118149527968482271458334880720905257269496924527868746587335879606213400195241026386216976983462621830446754034630959348934642773351919584945184235240237389680408177371137430385040642201363990454790686311380790453975597590813707668435433182156253658820309549768213191843230543456014973813698432384315270458986519275333938825580715904073442582607816705038635497827050519189144621767301096544794476565739651589301463041596397539467805502774950723232142496833102111240586026754567430622440977857283947364611573137677159880961817947161916590186774028902406730379462606576065879328789894576527522072416745284652631258056803904854370791193461081488536301650374033938194005468582151521707804082932705328453084316811250222139091352578783307862258727068247229945172273812894235087027428332045436278907591427491114192864484076635806718043500094193134440351342579268440514825439097250046635660103082574352051482225422821281494372234642399898414344577126138396868814757312202376705080511851390292069958625481475268088830390691200921774735403047613221322966892428045458334333725298897950871894307409215489708913050352019567754093522508231814186774394448065873570538144112129437097960908353336734365762918232963788651062079087538507222404267649055718230279382060335555514679532003181927705211110721440010365064638998830784930356880155306166164158222289165508000927357358267362087102369199070715524679096391179241189855725738745174841711607892972852676885335854590530947715792375599359705637684229143181596108205926524083531913057213230876369743265769415065067205198179674871489865728770716471806354408619464458619257631735219306502436711931636786265972366249916794618254560010943303053916946201584116791131235639561263170230736842583761291268031763931193656040438304689097190119907280048911424173972607394499343614224726667857292713729989664956780085825603054619762998433506171017620799802593494419478265121843293709897218683010165153836566896939969552216067201077714097333041165414160283787835572911597212817489279780642030940756925381694846629865678126846626116055388709570631108517870944596862066447687964521551869828544421271767475183081631203500314890315678376308567683691211777144367586741225590593273010909480123104008183146572127397124767735100239548418987333726283607024035803533368987813642491982752251437218479945839579348264492087011654050516245505228381227381539293417441872292898686872933777898604209787740902449395331058476308359768999812202033740336315021034255378049552984543365702244386877895776460177433058767855202476267408976799562470033810994057309481002417197829272134245740492948917147761662216577417514635202424981103446267242381452149350256914733547397025639281097283175228024350984415401472197592745036217900127839668178170202153260584829859134436782357786690485686624484831904587636080389812937344770130841578101384959534556190455970640624970160165249423667365112323063423566349593410655698325975774719181685722787160176746510768156478422906996554870469807266181757530973727974995688769667116581423901390763282227140299797275714645109329809547589843113420411495963702872048914969686052177890840468488607007440654280881053408129745658098904572713656967633520997769490618298658068456378791557790670332304777908545244039169805049797773514250189300154663116249862811077263988807040499413465726538837732399167521829847330750253744907021819934583380669159797104532262489802830527786308584832360549221090086631817941722478864744129139569632194391531871685322533140278747219027346320225745324609804402379466255797621391542332350912394404186848962608850295093700534340312621560347075205100840137530451139623972565573523814057148392988584667222727556401753717148558067698996669122968188113476641867475985751409468428936984411234479275797233760301811393049056352603928373060311301031208612664187116738354832272764531030530560988210566378747534099965607620778394405210716239290657092361394659044213887914837832011029113482616728408677018843356164701400949430811832434491136003644291709873868703151373030027383578662912366153333295237125177248938914123801788678409734044674511712532916233643749873820386044938997513659359140193463888214587229464512522457014694157510930916203078558083043129999216285458261624494603607346780091699688219971242872539660983877726992571538362509480855292869444225535929090030747438687079061209413797456185516111100553746586779062694008250145385919995995186930655341610129359020086916670981121059993420976564506695364877172999830912665603001637453568502635797672369493066086654444636140002080643827805040242508035304521939007644372664858699740495433929587504250822546144693118951111044317735343992795838923646854204977823941825922526637201167087103991496299710861423767667665585371103003043749139566334622482061434965831072381853501993758062098230516472436223053845944021776997415133712856642490814228649469643881892913309747928508318648324220286169890192880254104556215468807956076871812675806012662084432138493428822274353055278538308143967328248829939863038685085402967930693580735969953500528233273695109816955785002545836640245020614086013764573223163875946857093507092553117116792285783903015567106622050066882915580772319854765091907013461712009908632421310620178100856720060684475636948669384053490915291135063515544225228634690719456044571259686951926578655643535416849064397805773989288739883771416901195117185086955522801018161538877289307064389671699419907694564610977611584673858094946738160240967860497882422384656076413944033460608859605330588668399045654285906277679736008346636517055310442043420008955203730864848811125929405491553855285258068810450997293689723821008263696795159503166656159543413680219729050743022975544100305327247828434750540641143813600841372350520354188466966417432322769248728002179963513487585581729869594064796334757980837165213728231047944969124173484993133885006710371993586704003024433781416985230480248031642877108238758058760156352377549104853987790273129026159551483178854410588235608915851204539140452142871844881394356732754988043787246613490632314478362949788280110304874333111267356441530782411052290960403972751192366887318282215807649604855793032869540354221066785444275292261414944635738538279801869759334709270712205960673701345054528539003825746760599818562336311618376586774795457556570997776740312739391203376797886504847981002448262825526761108886380899131029193742506198818588222605846368350657835538028298155379748790523784715174279458754820398091803501424448307010038003579248672327176892431642238895289993118576597983323657292701977714817368485415434447162170031759987317595517278726653055264733662552711685154490130400682114376295471591506790177369225187050731986892963990499203691606038443076581337549522479885604927986351991490786614208356956836156445029862197800809961852039515433433158544526805592719458208024776346665142733512391271498584041985946893766661578563349494817000175757650841583691648853555207575659671191359891111636232120235227683402055640476408593841655095603120771958158164482663374174605904724563663479348061294985660635215444981900999582664470074989392815390307939308518707174447000250707318225653167547159574195230767859110957142037046300022322399598620732619233106728445773789856764340631369088912566005284704285247885509707669577729965906593607374002695730761512755637198900609939546402323514497095274681479412073207524321467340251475585503380043129056185322302915169771102003031322020439016219146498335894408129108989563065588396653399723502088611115793436920610257570825606008686728096086270299173113028908732823389215059454531782457279908734444680095715466347704937610931722401994069663181356102940797905408296435273537342967552955129706326588481092940334504894634031547611085448546990579429152195444054523924905624873456102745889000459136754551452832209794288713490517563669155129295780065494894006093536853964906941870045207977504803576892600148894223594832997545910337407833505807228120864480416423855781576122618922688947201732708295153655464277148383590858083331341287893347202459442470539566102283596048014255552499897164832614401896239435527491471338532121540075366625045253733113317235301899455212475538338848732775703121415680852073878899645205678940835301365899666889791447510901290124846742485664978825948779046450844294294805295692236528516760692481077362013248444412422668742410280362497450427732628005930961969395717192597123091079228532143548102102542540781686998907717594994901099942668885046665919548495865578059604624993244823998154145780220608605038565425093268980455984366253512786058962979706271824014420816147047193248301565008279777163704572166807857661385581897827903044372940919032210687721377523880470239834557175561731632290441612956198174216419196205884803849394521936366731578024540717138422592199726984815222581474480480884314938820855689290593101771833510959128465162989028929020226799624563016212893988170568192880177654732601261622724751815546012603514924657929746915642573919569865700870909488589009606103000419706403513563209533055926850787049077218549513390446745388054382551313131441631256023120378916425696108631420464770736942193411502504504838169081414668965300421091795926590778210299784364810330616829559716818709023220743111615906148164007754510131748508643819080256085812398869057426754042029867425404583520988475165440204388353143354384222306365369198429019517783401088112880792308394483526470451295328197663922721948901855174132850608010682959465951239346202343007101383821989560827162135170723895236356730746663142584597611219809433456042148940668020173874552193623069554235866065177836968259904522759857683700749791688610039523034420522024325850010394314881705966632827955438428951274901574022835921819343897535384469262035283359350614293110493874747665887406953827577027515264131961279472678715767539662905062326498255800434989950650129926340034121740173923701611166637932846939976720958719512473897758471722609373588121892731047304212824912601013998476595573978539505076410918171705893772625093317141881295567640117363583345032650192091359710497487604356744626391754712591486394754405673534763342963277510297045096198517127783814332048789538659967714335614982748360294740907946871519909642470688029876396343867700113836065236031881790421355687566956528280106931197591069258047767007536341931532449906598637024334993365115903862650876040880922769753917488159586546346784248419223411874248899130448531297867997882516567200799510807069211390734190752397132150835609982239516647559875840992706155513521842288049559195975898952335113303803366295324706953762298994292515529251960353863915963050447299271817779270293502038764247871466018295623678385793416151666980881328430741409596207794086653863279796725267574216078218633178797712979947243751244679596016355757075123612006488193401822686369248567602006649052715135525353734386791059130417252354300394235836236226076600510709047097549781320328003628879088353679913868738438918269541812855032874130423488933107018303710001270566387774606288874802446132041120847772923479642213747811924473248544019187807649082847302585845912010810355991327448040114142434288553916148230125730696199566782170286452289297302770459136335046506083837740790125301271004012714368121884261944510963433498971502533209342690015059174182473390276841121162174248292243734073605142416492801200812510803300605746793183179933253415018424910688705450763933096915628973727827249113879365207543800496082173294669497203535367628402785203079607163804559685072545588198328423492829381384309913042411897548603529324226310488940437197103284267178969982609130960816542122104115221997155559896222445053674777749481996265199232597276927831348770031532518995334118956246316582732820106476803149713082378511692525350400148044227686975944169487327779931283423428491664040524176171655875568251163198565362830611625176262600588846007850639394585752699683696577308360387454797802483614731315406198512446413499688308478362996205769829004619124273600762914054021872985939485924762259409781405968725129877028608028177236319443441719864347247018247688058881933357688816482009839110576366108231488032932120604894181278032271814152189628744665121314910999065121554270546342346605059024119965261311084076856764235917152015158118193552097316735462925426807981874866178381983537069518277665411544287839453443227992235569941397044834013915473343841830862788716540939297822918650744510396222510983340354400895313706102954297431102430039910040190971478038606797969288276718281310655972449232222317180269566085729514199784903349687323048630635451370721849536522640740557546805944297886647450201899561081317503458132575419210634401548311556813499207921415176177300281071192850681033657913224447950221722672855559403465327875765490935021007406776403448599494791736551347146782100826105134663620676911505629280738496553141778442511518832057585393423401387973717776922965449655648502800922185924971847145706263133421496699987941568479145700475904240248524716775470566338678512408370121994442892400443880266090220840524857299578501296458995490321204297568659069848993439153835786837321472889982664142776404362286223251752065026127154305081700959266931348071048723513192716994100586018670532394398643607422434487156270493266931160556697969614614524712814034148036493145831188964130735773166371057712148898173616991839161097955002014209184760955938922855014083206159269165449004202607015829509145389577886640690988150803434065520371463581137422852008548613282001022951557876690120342282385929912540099054067192316176984067663895405013029711418361384665592249127179729304616254839241173941078069424853107005933840987609687732564783997504317701813707182527646443115094338328287692885669037996797368671936985334904456744596634153181991094968370299123152308520272224200346187612634402902959356479505598988697468698577031235098070810603551320548076780147336288961665898401560169702239066337727346897228727968626658673260845078422427147340219861016866263747275944629940022204008395155516440017526514116684406874987978810340001567748428947110056612064760376568283802556903170938448950297804138982715406516169044811933350474286418822393244413876022605836492122974021241869984769825471398680111143875488083685173230750372355075784098434638760341788038340212291880108489612150291438675574711243688013329842618901076221462366736857218700972386570016736655095210575179327534817688672001056261566271030168920273841663856411216507863564851308188232980232462884232230938781254822307361753109296607584720429898763957697058782848465723867793185534624891052604857143304918999397215822456377116393603123961680165548903578793789260578409186186610167849003442927132069713871749217262141146595626894365144397736423576599191311724584485212774431916214939427482367214194735472575030540055505873941711682257855795134171625968895242085435729210980063876009561345260361970935131508872146607687347404961919383186706357212476328269773654686375242088099018259558001440314276093612423017066430413836480177382201564602498447388475326723125663576496580033793378991697574058773596189189428392984677188891253235020718970217828216300530829793628327126569697007293692548089918759859108974194382249993588804764083714718571835470667986537020410900056743041164243309710718768805093541392383446378600019923807414616070101732737148029497451759496982920840938629566949411961934234574511827956973129254657005880679304404402255599871498992741603627767861484240151691918031276389952773290000374268990171962559400438738740181776601838978181063069084642924009029685857156065678602168106881386905248820293868734630785047997576905943987197534715675622919092361685378165259850217180138393398483584944750937305878417145697487676536636343929198841097534934626326077824117412659863567900269171669202192688011127476375816765403575234776187889804269439349642628444688370928892785123403599413446944421588941054685659403009996757185836454456243472778753031159218387985829495785651498843189520523786559794925825550782044479620996200909169392735307974063118016493862554061365263322201213678115290897384290370895468419164887685507537604800084388374787172240660576236886450808959921082035535324050805259822627439063948329034003674714367225930800635111248622472905271469571338812447756357674574303563816554980980993414882489509793424863129236668357199877132605429745613038564581014260355773042471691374305030255068025938083098608398973985422441898335675328031733296608404051654229037262364494368825528982151467481160692424491968273870115411090790320823219448028318351005517132469153835065066639277134922530517608896447339503888885522513120445836883372080442975262118528232788366799451343217025528262836503029107617581186421121626010496384722410940894618541448240309712129735400017073249184484648100022776497203032126716053763409639008420674188144142238407990308867403469514186462825749159143027632064078272421042847201734422659655339775747763809017932133964561377571207156406162263162320680028538523870088662770220810524062602796853848208375790089861709880847587682648151215827152382405406836188810834070058495278419418723222503600732821144690056776840110084855589454658826303216573775051184639900160201701380777827181349246419749215537197367141780182971195438254046129098308210573966723344166810300456118457387595439831277483258791001784737505657037146827862510869658475500477183511064418481121664690966254545978990970513908337980358265480097341313068418696892666461963459952665692481194967968832088034951946693019917436790558111957766742925837485981565123449272463634327541196217323049253230274236385055401303712295842347019627785993226854885041807839494804677351882806908855106782094549942117642425999083054860789536623296479010268178291158417242811679160350494469160023557488823620859891883075404708178712278243676350036924047107312545214662254039815477124476507093113113547476991739284442084815516092669192065847576881967003972195990916908147723624873512456621086984665087281937924822148845028606174806888533152879715474681006957485301804460568315899079922478258567646791191311378005840538932620290067810797860010915272600875947002121119504377891160501735603474085788989576733398377640138541603938200328003400130409733465934896370519805964762841019329473438310613962150377970219287794003537754315987985995250322803281895862361255422139280975311485112409112353309499967300091044087614302302782767692251870231716727568418766461833445282683407058695419817349531839836153498400160787631452783304257722243102040728875320747347908315344753443931295552992697580529462548312198780514145542264617382356965723079490696647382937369481633465842247386302173406493835368876723070513565006731722696200688850067809389293873863705302687993561404982143330332771514465422249572237998156297234421104603856099476700578336816818772746852304105672042494376878703731763995727312024477528846007369147490815767695375423610392689736827462355185115062193552709822603086880317843518752654227575343357202828288670829116094886921496348521582446664665613726332699678122239763364721126588362229898277843143585936151047319086000087409798808299232506884195875604250852736214901075359420231392319304848986056928489035583952134490550712736236320391228381099684266647766739825662184326216971305297078352459845633640984932089532362768482196637023866521203536391758286426779720595666583155484580598874634074157303072416513103118913271192251809818141707136053085613413197926460339596711504414916528630595478176662448880280868300084179800123343784156773844963717718149254876684717314321132593731553454499289725015530238600675014402025392413231757829132485371417521299914772537992819437053091009671945880535994848859808413591277286594702890215915324976252229926761724315791820767595231034147396444419100927532246133053979916730447634849420359290125338044028319709461139362362972561501968071011164973998697568105674729850215734120709867281339987643634511367386244740571753842022819048619859990418424716298176924447710512061175232350809284054293554379890164402283356354743546787861196356074587176184629052624337754018609028915646969314203363163682206848469104608837844081433695423333011185419966433684822531477368036472575857156725284950158961715193905000897538465108318632350414205371017305352950560677436364048333218319001227040085352884574335702973125167620822306298042483477642516696028426464192841483173169097831660926951501927470112252286942963252291542156224162661931874901963767527866919505277929231132754129256664480492137872393452538511279924951344873999487182680312587921321281105957864802309633464975794267820508772245777451168772722915369798270195122910823309814888585697507928107355980209196088349251043430389529255989737549151858895621254982967673245941349328942073462462575468157861294328182504998421078336688117107188803437007056972578395873097439681051764033853114463888293043056747591171426291088397679275872098611652238145200105575916731520932858033606843406577752269592161820235116186806322405217058844144502216135056646316966550328636204139300626926031253728895199750985240691624953428738358534421187503179165109483276101252771527954635934967214814024407535130753725575824214394885749244610089410449834829028323035400357096484480495495182012638795491009184844554883863931833545769908839531134856784593145026663807465595422279798775127675381286733639028916086522899878088920313654606864611159875939796564000859242291692415683815547486814175486181667334727187129421285647741692959114710376873605605490602068202512700471081876304509646941274206335099513430983566469287685829788443131409621596770773614840468374243933506056618914891473838003035625373726665812245347377910450292008363117470891585869725736237647271488122090611987442337252688973361019664662512534019484312553401625987777876474905396497769611015188764723151783864810523712706676039524057223597584719466594202657465433086320022422195766302985566502204163214547277946170812110186351921702244275560751032139205312729534623393554654933421878250692244693603773958454048930775546360130006122065892070664431481806640372744791596498356660570961531532541923586384599355997970288325995394732318328636218663557074426138819461368955164100733283766888128972775629450180931530562569457972728232501372357595768741010527258746169903919911186221497722198312461142686582200933192735844770559655904364580451216421972629780602354493873814449255303778238467398719772365705728043529958616430652662957303896241032376885106582415215518511515136449837578675172138103542375536006913258764784344948603389755204267816887033886793158839262340256051742705066040395104543765443777783405135376321105414141808636128836789007926634424826363160649914848442640712516411220257251836700189597128654165422878458129070401233681300150218641383162137805724283173046829780042902806055459443692547723624234676281248602868748618859528817281078315235493485498561582675333032079032237336603232972948564089135140645622424507110116013046824710046359624952306787902903759880760455085148105074004781714359074428285169185479778487598873173617368678994450523458159782030108557800109949203824062555768664788680371224911947821513509104244516052345374753481083216508116708049498557524985672216020945323867571498353679262244448192944312366631317396344177317941947945493020253093604185786600542578437190332481421424676226879247877465541485329427911780221031008451496587219199635132608724451937687702133357013139696685367112627140292290825160121134100144501172997284630675929608149304904879875217383649443421489392358228086079070221440995058248947295806566336334015885236217973702177432587366971322216206968869352316758329887934555058697147362701355566499641802430420372960005708668809856905524583237097360548384323352056446733651156057053931751029113117064152698613727639812569461354803998290134303739248420550569023481072843978725572210638344862000091275630444273409681374263807186762339757019316046342971791183235741007993326585776174479163856488356593834864510640605136193413684722828224951565221677212930942027979871237117462819290640088738183458544944010556812282622979340993301427435663043192580072566559301614538584606983615840233885197625233965300636667294356038065239607065065043069621789337929589016193950222930207833345937914558503796677155739762264566116694577333750016619919724228303667908268730691124884710786934903909301845017912310352994711132383769181304869287452455001458961273415322894702453467092865772243259686203956030900540327155954065144287626314683587279383252124888098561392400247247779675003450142559492597798390587700931255884235778775528198771386234152724670356252171228284247449709151605195873241921591597757612065619147512230000552820856395747271863277398826664706013485374286505923637452293073094026748880310222074107956028230018247917584613297099999617961955029207405651324282113012953094552868399958424739277984200724441109946689316468822372667865767440721488368857784180206844208081186563734300470907158624488727938677021144680546329082356217491647280398600304384130794521180365394336603148205283325094275820723590905753764632699793920915078231460428857132054323192067008978552326226094679795075403840341088968073819600838721389204948687401571071126580300152069865402522210826765916372354743544170666960427047348604358305877876665510895594531649483981226118255047273871976386313848368338378624949346560290584979541667993540235143697627807775339908327244301005533137292385911811032781545231680113120270694132248097385159296070570869086219731298358382896197352465248991007542809871119796299885626505036627524438858025644160222282520483549127186092669195086549523280847557542797422962232439690959390515510154339912766104841885769240780744108719078819319577462548509822102199602181795092111327266921915561712997428185351770177492377116612337911480908157924439321962930156292375979758411019218300504944975285564855067354082083799177192487213655546233324996288248538675267903142654656575319619907402697097641185363458295336564800663096756993322434644820635143273142226670229101312915673236061272917920897459142473025847898961895728349112821419359825616903293656432412490302547950107010143591816598694633421445523244832237989948594936656458979707867276546775357385059668747335717208031838088100059465710843821096814924321067063737634149729801708138513404474377909436167519451936883411312977444180236206109395344848459701318906436169958620291763350673052498829296827498072841055465686301656070100594586169020143236450051673299274046197852628050374464943291296985609614850832362382570010289656573234165951300193890431469933529436802711661960919676513277522243197428107876959891385392252429932877359056863732872095770516668794407144233842852054784600783348707823462785293765451401979746098503593869109841792788730584461669678926259120113705420977291839753017276552950037166623869162542947619652887702626367302914701400091332851383606754617563479484137670028351592931895778252786236724593662526697153869836931723111486733723214166563247788865284841511042013552277516096379896843937254542022312668776784424124516062492306396496613807715273032750634016647938802740171935621826464685160615077746028157960949471057322768055595787480821761421014492042436909237515109122665123694119374504381153391691427047720321502813069483040272100379133687405054058753194499745812023368037207799612435717473393268392179971599660003337630688574494939653256312780239992066248040719573045908132880824540186340420669321729309493336822527938679447747255809514168390469803248215995175518002201377027908884391758451899378246769296129798638011734375948764876201410453965326025640149435846492232760127030962163812505208461757308436552310956367257073656165638255373736929524119349923578038667269199452105312105529833289479725226502089782815683313843690007247918550353904037388631148391198154480703305083855361960687016815475065667522515453673718389369648951878969444807156223275678539888365367461327458211331577510033065643189876285822931845688884742736180403245529279709211095539403354863153850915961503351418487383217430555636108967880009234566647679842004861530052059311729508809843912478523860441458825701259696179703058079795915634101710022892668164840975690533495207709203628703685189322611048840646136454735698795830687409725478706654863569792225300906873762835788203097701870650007780988019073300392130319499201272790731597772856035797737059881870060056053263654327547506377271699288597973447339446423246478878166447572966415893882416603212800528099297446672067409574973336905689770358406002025530095301695143099328614006797020147569336876235301379682508861456400643099283777149575145406057442073465737930972171288135424794173179468383720542388525384793103376689270390441497130665879476417044486211712494320597271171079387349600192984237414692077221513143514471030438694356569527237967874162394265153853616767308723307356453105220337337424110676357085889730051043696148598224588684814455760747316797911859756515136613924137874081788176395469825461079377377308567572705032845431231201140180898790234275603753184616626533261413305519706550749799528206469001318034766480017588447299519915960514171492313729988065312842485141049240794497578092680419122891616267064736092437348245052901899377031093895442769545246010405283661539524535061024134413001069760177012991060105947115825843756577589400123344299602164425127813448352653609158155415431205327320089593605855527606240891705722537816956180968578771118918789888221771074005083313794142989817639173670679700293546618417988226637591963302534169626001076669144306260158330687371959963651539416713790847877048829828544361862891487368100208551360058727932808598555056072833581040183376943620261999521408699434185831528911244156168141968478650853443947151016343327693396305925048071321109985102532325015653223697727200559430119249372305666788539847523276667444407322442163376080036161519564811237021630546980957731724671287824113806849661463950617041334944271176605189106211832711716256280439928635552784511210155045045899966629310716803274496928498269976371788290044813276139203823005183052248520688357508273607786528495086092861851546550690034556200219337041531285623996880404254665153111951805974993230333983378797512140294497452936132572023867211835274203584642034255404012733727562675183998737072205632116256086608036807150527566041293955992781112804649847258869093540507091446941466130135579602369766130655739121730285330592848907718432548530645897107342663781682130220774789095795170047586886785740456643356357899550219373388709324433843668023908712552108325554692236570665034048909687132451800433076113289717328755500509301985469196179540842512205583247680239424713257505076789968997595949831041779905798827199026143712721766493490095310976784080499805617392243469902182284604678599359438792773331507831752101372464300046439051026216176850733642020992146039179007406538855020278702013316003668062614549204711575047609319952418696855415380869442861035330469779501571963232844950065666052595561135896089789348650860484542946867171816498587670494479064124413392226674447289797145249800778108529434381992188443727805342680624976025275324662233447061419279137821241844148067935718680451590619783009269392334123341814178924442838493654838712737627786993024595949573079608535518771515250052034377226455707735741571342422301767425839231670741430155303479305404030981134967268087060112235082626560144991133520031834392874514134060794216907861495079127827937790945034751749500302916584297737910792546131747721662578335174792483871876687484656507433235636143935494088699095152719495964513943454826141883324958432443052057565653123667750254066450100087319432776083577469389808100545303635822747898287273170741032123078994254653200082227212288488051472929301851644095090686570687560282805292536164338396178645862438146228970705931634816300326042919701810042637360413761173580192778613982377477205652825762822085985964653138479627453995285005939148133190968738329552299968864720823149336202754778637694817523514780517022699720418618313923280369796425061509518601499547669473133992499265671330467987925975658847652610113486632801614597742360783377874686353934374622205596885269226402693814371898606106138780118360897192948111598666311926491270590000140416701728245205986170167852049751599522476202439512496024894967949361536460485431253735546463740835316807593664935371421381407372955912444513288252747931402439022160892382690819324452401451991558102736936424058310556965844148113170759841698749268199214699189731188856160426710488991395606966285655040193978797979173978315019423005434880842680809600278672418344568143539313663510081283785236149812176517186501990736227536839316374034446410627334541359453978876912685629980791849477501557056864360474992137976103839941112757202532047558436458184302442835113493533406627140565466390919920144494382468768539136964719362458548274628300852248978427078402091911926450856386711447912120622530883021242866068179054490979582822659268020414615145357649214266994341890003498626343756590094376352026435424315169781324784179662713559990732118493569493734235685269250978169157568610232082576505694824268123457666606593716830255455264434210962580080810110742787700149126227285424927553505379242315134186368292521886924763384798496939084019431384745639147070156070559170280423209905285789200395345183556534861487015079476097989508702644964191782337036670656965425267546111428521555157203199890966541488082524202440027806335721056197907616578998735093874515336047701453331123734609595222348227042118728175174187173654148810510417152587132915726015439706081766575792558551213209449597735550637643902355798848378122697895609881356930718470999618151504511675680648233741322780698163085132903378034048440027282197752656309183704365565961306785981652637873826722391753278035951429214163769114567449322847450192140641723899306357850209747661367797391562553243100233183090415153261995629865649345002350439114649008220461321744006915080056650422654112453092868500762491716481090818099355199718804075016249607200295941131630290867601589275974899851286393338604974950861676516783034857120824166009993899061977765457001782904640941679924589614215961909820199431093618643342206778868903284882404851160632865652431067319942486084845551813603852234143743122724588181698014370618024194009133819802567154602937251360048407155410547714096058117288144886406090818239043737308928096736565130890613098723441758748700308166391383778593027238581739209920592142205708925467307057455118474899098402288381474161253468719732302536980477917463320254552968344597893717187655034540215898301102241057051216690783470427109531697530307658990810761872181384841062915048572242739887971435891380693790461329093864596408047015629255994941555243193678328474245669984896065584389391295182642969599626920661284319595347480125409598575236152389823247424214680526179574425819400029115217435165662611034982160570465031086114826015679809422314785470963152581006614490155650877142835505152631731679029532430228534927000923851482820801320317582419680457819577094740763350678333144189136399175221274264623088857543391460447317534606987045605743163193070481731554415165524585569315434062550621415133809866949481131512035351499216032651556711206849080200745837672345948095521404464013682290572904896190008468834037365965265742352751836391511435654464992082425510518219196345473918889886874386599092733437755761951672173144470974537027535202101343591692859996688022382313786103213648284526854951308995027890575567294073776645983579432851049404029665733511847180709612544292427152631773592091496870541601144008478555992501055289655761093952948361294197793064686545371745294965269408555796702836640308054890382880528899067494335732596044376441491231784124156045554938347441352600210395836298832098646288333277255673415919215950825395392206155803326958273606247335185927120986331163496702279596881061830883739736518494847374853400437932351397354308848711346502033820957513255002054566171568675836342435022546624444856675839883741965961943352483423008976759613979466847380322245546074309921133947292757571764340407780516692625738495288850364457062525778506584502594511883014213455211372678236585196354173165338203929121284365653902719114711633992365606417980851243659371431054037239829529212496049034298416546295251131302016803400599393131308392714480873128261203579595800009361409901062616497909482221867087376776130240788831309098917703498423071176823154303677738776842785125475022217475330972069529423414892892855542130151170216695569989268254811751639936133468619629566287280726855495552374680963428218545274640750221317729169622720763795037772483963111159938555292009752627995777675851951385757257938311158315415088933114847696973774935479254596067921482357446134274104246385034062904128158702312922186268500631238423004504644497300298563662852656498892768162310233104985933164209790840742040125261944241295869385251049235193580890235454865598375487411261915770406805080618374671800347806443808409246049770389733396916800853680997543575066751771041248234619608949219981094904918253974820985645880145206915332970045597549809534912476294795848791559028360630637042059484089160000808588300566416889674207504820052073955364881856337033560098448050343282430931564748291841385781683141314560362853370975849190665824841333373158852231170720111489443891103660268124743365312121198360505113750055198764617747998146189762862961536692242475385821550496533680164621129599470447604130004916866220176469196091618698603351710372314037123494490230726751772475871378668147410895048055655325564851212256267824188642682661233257266867279179772123782216954101300056722047350388801047504090216787872649174486567530026344172173066341615196302842368565152747799032921591583903233970449119897849726981077708125840472969381279364417735199274199495647776769080833470711528268419187372674196510934062868401941824089355179652490732345631996073236153058899220690121848934836900632534767445641039595149822821298868806635339239370630548361294525677222385980958244155831053544081466115834456831294946983526884189859213922138522225013547268805036697207091485500465807631105402619182402791116265844912905609258976541795311542494966860628779353223961404869136311539210681201605721952245290058146872401227010216440446828301063206582332062522598360879095300015470463401847330580260243659692104604203595992266581074512671470874262537777535138211113919253111401790395329707754215975125237456503333892578321249899653666506787210431041349770308866695977638588001171884821398610892161546430375066922797186367802779694963434445523178819597417853859646296826274183463396909745567158588697298322332438046373645135802569587510768731212910221404205351087385143651591481398133817230440675393677667091381496384357790310091509861146672685804438004588634600987253413867510540555249527340207270765191523607819304463762517256023978546472692943189380799258426667483076799017056317774328828805502456000358068229101999305525798451460020641626960960361304058555061776917124778955482809015597118655529395223663619207215175142091611243608768545188780033035325322295236669955763095320067721837233524984112108826223090223751483161213800010885999560424330123373894650331297933785191273788378774699123822923639634718162097296242324465237934014963495653603562567130427858022797223385667175166537698344564752181533827256334268158400987972181508463261943101939560468064694506582570599746688694262103040866644762835996071137699024447853062200191575836503280226651922508283486103602429793366283554827897654301708651323113813290982128671576548266762222160308446342857008085667565643866006737212010531976413740384379357585126176264792377635225544294266295574933648568199261235058288209849779270158608500490496952574544861941998117635067770944372770551483666840128922651786481656912865525139082982535912977509190093726339741169340902090098802503809916529526070815919890273743714736932437256491798668490974287681123488358164377105404623605815967426830031033659617228650978253210785036436369095619774887685288772396458188139097363344580744015868760815168574868892433871571307326033744828500598521242498934475124772505761527097377508464471034247571501658197183610851631813362637951687585926728742448684068828646913192227670418451928826761875638070465912101355037661708733134293243799691672441683896637172187781810124706002639255139651662641398163046909962454392255115946115560356510823979820825813395810079449100778233123501538075795170084452962014667027120843037440459814876153952331777805924132552255584214006789160667265489074450179684655379923497199499910413064551947591198546558626067077423220536254950830036386533849397016896701930377523793103669768795683393332545525632550491313604223468323936055714303614529208072831205630851433550839050994901496322450876275209565813277120172946501119995388468434668204532979433979845581898865263827829658602595549869907641566671650514028688920331630492017809192193593484022872123404016749711948682683714636914577669808774377217329044978047983514337977390943632969453369075079186388944164302431501306006880132175734492439906754457787928215493222679600997719902577439881627693567308574688920820292578388708329414250409284085179740009901977636951567088239439363957831525843264703450176286046260467811003213597462591288165458868389689144695278958367817875655535511777345759398649059057181458815065727002215857600658556459688684323392195783132385725741827841352142430845386222620395867146535332108095488036469511096728428330994312363590682178692433637056605804104714840504535073856067431798587896398758213352053104703628315291663967509885408963538208277044301178819569592821044176335569046447323905497871534599913584324951304549803977945493455653384957143547699469604553893140675115494582330879398604982106409387148307402111391374107013238817305272199010286071512418902406858471602817518783725739588736978316170447860490922968012999397683919251337896908770400930327004927658176053022609061718398893323386824050334781861803220936027373073577400138350702152905599803206171729439318257621511106708769783127898271269723127168496401167052512073224094707464251462049610420611015483440269360370004992361466308634976892287024914060701212208386173540420171533645234792266359489195136454053077965314238027307179144841887973929848307485710905687492312452625410746876265813087238652652685486929026980013740846549676809328178888396135853990274883724321655193485144031481281905429416307457966940402975233203075076497984668342533049245328200437288044342820688176092582017877322015349870641473902333560503747540857273712284163386498854474612319161663962137643936004190289910086499261353671683067521407048395204124467474141850694346599212396846755869915735528870086852514418720419482433075369341575089324550690510949755378615416625542905898247485940271970160903307597793396703013957634356284489493098815687526704794676214050990631092414194782957969571788475479699560238047153100292115921493871508348663042453427517748354983427664476253916357797625375008477952589804035483200629689128937888595387899259099180775837235096724688881383932013875700375804179353430039848280421221001431397611367858274586218537284825200873212781267304751521376933644264840036342627098017468859727814709255362417864994553779698030943892784274595108473335192065623156397221028828459066751879971854134870125230627451666749552724917478457983042015251028749431740031325890377369644756389862992614301179935175148078708374245299765396757572011372482390602782363530974132012625387381737469396511857039725037897649508289341483550177825755670967164691267779824147762081475260937422885990005582143220417312590683149125277108688311760791456339031244292705321963328992235866994716644401806536958390104990932671051522982609670881759360274356822447543640840431004182179024853587712233711852074224164037842988735271987146032605953931378548183211779234602799513692570390343996382093571832958892458074137999061640741012163743254044721896557176031705144590038373502781995445498671144890913075818467434071069919136722960276782962602124617383000393919649625828909620601100567716549895206340878847338069180908190838901332435132161948857061539715904083699653304774624207193080262012818734829466676509070789060938028195688037773730375304212877399133748082093291622055272488370164863909238320001025433386125971193933761372694148624473047787325723706836406179198735761989508304697043189807687868969095272732709157215554685439174944569186135600753054340441974265876569702841907577611960301820297973418424259954340655491525798155302416918660045758053247188273609454182374683058094019115523764506059066568966402028858923955961007699992754125912063565712511060785871212619489894389743288738068443903185195532261778004269257454194699029454874547639034974482774044866264864938461981505062563668073077137417993592178353880460119596548484418807997158072019766730740605378493407357296152452961768805629177957851141943368725230762560262712819459182072543699393728538197913155927515769901656342818091109415949876287895953644157123783541625305287016402203845435881619263516964745604162147960519042467874288524819082171946129399792237883987351305053697041064499883167119918459571424619418671849847814783367968258306426375954817851176764035154941243232044983954001708254249112001256352902288118114313309908392187169774989507513100878795735361009095833943479138519131946494951859842826792421569774187715843998162939679344841483428776203798289426952000584287336047049672597105541452041728101536123138728941237974587490622057195197231372309958122704873350677184514963321408067383439021488079522543415947337428328464459248425198652497859178406974115709416641214886682161537074145007385308010796461938195327133250510649138414173061221780206816476027571289968014306102882934322103815559004271128140927313553685686510985719760081517117550109541959560826421755247207746996987627880151079169579485133320256484980487409613867731759248346999568528919207652055352463464104041904434972254169639063719505470415564752138911830447408829592859283959497683579767492201773426928873797005981535072536797218697075479696949721913844438107557840881506537669607620575263736214819984041720777950092726561787022374071258875459577521208341226479840397973394101220940006573902240551828964881313090542873371496015454930198622515991269868754656776695805945324076640585569617644185592918521444368800619103619739013958473105311424974456649829978232041943741378119476566730854323617947303160527070059267531118842865117107249610388337344040619422765195284102781083040442017759871785518204323225953547132208752422109656474612988179622355220954189011620616351932958389075332642942287755991699338809689903529706441865410238847600474325337323529515756338935016591832102653719671932284403648021072178630319252826318431642956363163740220196514171160364142677495508818608824412777519280959765279001626356253963089088622895893255531015026202698578518147972045399843296496141020722574649314208091275537112190585231382510387229814074419436254983997661966415088238540081294536540433114310899444791533281547633986455411413028175983401625267677781298928012926236265948583024374623788605548860893040274271490364739254855940061312132335941721517413153829423310907723139330203442365725830390253171379327372251608095418289284918712106304845357979215866218904246354949179167382230569294688839950890302904560893677377715925134011748283765462479515168218437787055815448450124354651884343075507841656317670708417202516056136385238269824420363465729532450927039547914847818679277055570570990639171644198161488064997406733495718959762296631819182563267580160345353939270177592420214468218112538556524229309908864913088571116753994580598516821924862556804311365500437431457275929189134878528714121149632000863939217546665991273204387955703490558940758558364072655865126283327543232255683968062073569372456512082184030028126712034397386080806088597803253124564448868570795011114821412014326142635821902701823100074203575315354247639281960129121517733224569744657556179233244629384751431472222556156544850097993935080611570691069857283999033348838656643496416893814675209157722276231320379657324042325344659666413955259339554173378985098667070324436888309579947529743796659235922074758068642961944158064913906364797287077514478728087490073506128727476707054953418838729620346138665035137934502908739909874535091638848269179401844730866525060283297316046082937369125076121220988620442778488358869005712118572609331692645668787245088380822420678992727746005333123652105176922508088451733237449839601589765172440635567282887762608289740878665178781436241979100247316098469852771907127294887167841876269296648910829202912121030291089573882155586724763996303815644792035632975663430552809216906751079369912101164038408199271863512368416154079814296724288908715858870552134412946756679717940734911094464468077606205817916260240059094139121073034342909408720321801750207669594212589705058631879927137304523981350783209679266678957617418528106628009661846714794503464226578056253857838586170373360325477319379946093767488715610478692837951921612328050393766269980135326580546619328141839916179103158600247974605783174829640941134356072799385421138503922895020683034860137443411980263043427677870249627836547848404031098143246067326126242749557926374824057359058052128789924959632978240216888279159579859599910872708971291199065570905212974029691657017828865942343996648600617149840846207745692177570491940611061610259769990291844967834999568668397191880159165987610477625920023190364217778583468194782057685902596551240279904255293830731762176599690694451204232071965672948700331466459848852642919562391874675197386652102771929578076916467527276536536736962084519611036029468540549294234094447300756459950626842244521547694258206778309933350824229287921885579241907383559828777003892985751345301891783572800201756635902263111341798532032907444069977589942935056851221450390471915236410968909694069284741629957002072043036345160531263158479100089651201514839655831684992367493525540833964822872326940576983412030401599761906948406758506494055189147183628956994590637280400561672680132302054049055454195667215637421435723422546051611748447509732761861973167212025301568299821378087529064858113448332019356204179822459624760918548304597817285977838098860824833766687523564244889318044944366298342928030453461604452571164215726599295027759157266183677076481572687241833472201694954291211964627756002534019487588651739502997885445469232027173347696591749053613403202841971243965928885371928830367913575462949619879461782082303188594134332332120906080612159215886111473412844985140600797298502744601942367877716317428641427480910038429833292948129522605042487786678889869435947926048832237634650536033066317010455064883555113487431189207252522717859674358885382958836686663193249552885783031286966488017291015464572906215354447713785143559366757761395917376284430277842844784850767531777877737493557092845112241551789840006510739130267568566453618570360799533538201138312138354389215986947803402714248016813133424431232419140863564904029916270348896148273886594067951031132513870207642562113242121338675591665991628742538891888039254262104199622162348979978370253664736563744917961669137428473383605743578413506130859353620818035021121818161482123243424112275948858491904028223869578259600964322353473134830689840636969878104070596949634432801001368639459492086009380109153797700260195758023234580171126858575169281580353117691811753804324718285495399981700825675441547616664582219652287100450804284495767321721761602325333726585920871489485538868920196805203074579198921383079486865573307618531006877090981372571620809688120374197351976569192514681019619896051617411074334048561678317774108950758509251668557133538230064786537429005241764921707541152753546502012713739756604207999627725269415191999481149514933851338508746923141231851748721033656485339163411636360100959977771336776599268722618467245542535149218486986093222626820408122495302951423248015132991922970936358178126120367148309950448007048789084600676066483163630762002808267705479937438251498505921260777789877778379232474041065287310916965838461913569888563571468946845327753567015262843245348447941507713113490556519619260908830661550844873074578283733224771427283890576483628542065792832516344578178860625950513846259095706913914047429507787299359822907206361104557541674120840766308104912314668273270825877645560570635363936056257658558232636674319853891789971139791191130263735164749476777935159688311761362805370649031541320411304785397701387255541965676933195049059535122916316497044900845461624810690584275052770800414869976139159679646073488269182430582150804680209015344138070604671919648526989706906609634308010900929947782815936479807237524950507887796982681847263019379141272121704867381555568679749841854461955013239672881368369348296301291050955444907606948610150771783738072131391533069935267080927365127852380722961661274746009111302541620665454512935609038085217942931004151939248628579351353534750168082145719883668937368065062618808053542453146087581389002608209108560438480492807413641805184315494841704389951979089555666434417509705660935194411422584918437987235217341861957201398491489723304895910418072295122659974372761856615128198042919360164592054764621568099356083236339178111307432341035036171850982832545334678291374129030309636132460989579036798058675279214660853672038555090451168855629176490918212601911027986359200794395206407113946684460119014171752720570561976240352632327619133636112500389914277471911930385133733012784124240344176172417111525618026468779769904195765159466350962221771749374811732995297690141880677232492688464552796703417160749414440049360913568908386382433183805901175644359459284002715851618601855672374203208399979229632303664759450173850254321862253593097153854883980646838707189250695608679749043798251766538997459429728107619875339109882917967228952306905404665255835953781123949081393219447725160139299861587146567496252651595606370079243172139126776497764826698186558814208941147982988230441658395357795218972368970529822747355064689019776935807378777542404785381777985185389693998638703651498054403938259226380189775306423478623428005947858737031938810651588050386208373845869644779460844445879744072355507478184437182546383796502456142496336535144266253696180086663729579620075754234610354521534996241579662261132585204247494709508951365495708248804978109307486375328121971944815690463975196800933392977299725558289590234393517000152261216325964751034206768478261439602737380932986607685549384815352405820691582658166475305244347558947177799306772575997700968534403461108878500857277265013711916599220146602910910125613735849795100052613166219270088088659539780771985741255742556971602240318347553829523682290797381907874432381719872734791995061005665695509130157182464610597937137504327713566184798854104400766199255376464115440314927340991705636683931249908996944227281537476847876748278833100585141949149476215001910695845733789060693659889152809856555509440668714441825070668293493241518321922033736892057493014617556392240405853556769029311421720448644355264263056895752798171877431481130475415837583578594527339772267565527728323438495289651214674267001794186629399037697780321305406643760119203181454656921036377022375536758847724994174961262373128081682790817431238384730337347462863330248415473104583334035535235556899714632595323387843920560317992631487979144911195760286914332559379280997377664911212134446354769454191487391835941033723573463360821072073574261030273562061701302001487995924921233308725800137217115064337864813057709437558686760771516897196108617041878841664009414243090134145997872989376423309679436395074360666712742497656682547545057681590685658692604974839181202076506180697102485583117384240847368119552337773669671885912184975984437693187060067026557229637735178923207860885112685833611795534288113481968643442414034520140222650690810396407834312915458334074608375259463712330691963413158622279855905354164509348264485100084153347568561825965828391536989527001025178969256014515675271157903482394065943127087400142684301006687372044063215307040323971066394754061445518946809495526440198877855124569470492415689812751034674109177583615594778328703337242480639333719620626736635540574023012586543450818360051684409875978550713918218462211397243808776858235765613346503666357031780524136023645568380720400049019407419910958991078974106001318690424715847976140996014439140750136757636302712985041257698556408784949325971171725571897906818089403894672528651772093788603240798267882180937824413599571418033182038489990375177882719869536404775488693450829624025046217984359550969828925903090237963816161800126966410611031389401169615275712577713471725278578240806725014490955367592033433670747167198836733532210064786338144474279727975629090135978247076969136825248308905623800840602174001559327588666024235215928511317320645630622128368793979662180517123638950468380925351445008245001509572083251028115426568752961545787145226819398013958493071002270634006019965935495768728407422464875401693853813560640291559969740006909417486558386171358484172400271756123380400057356864851524408527762905897798301505431690460898287239435106605211289219607254490950117106923498414850897752118060674519418238521883963905336408886372390434256822133410666817390944215849342864941336547670557214331260728406770197695439654429113843378061813189045061899260539929392682853452557538315105301752198489736310733760309151318737110036316780299436154044393706099820069735452895197157217573260968037947641958240851993251259647449385825051535922340807487568700441896403693162632639764289825624119303584721322592507068760668706904333904504286722202704053291692432826969256347494549329927961280184380634245861689704201289909796516300391517405537258697309073454824438831369387437144892999032806368010941632792253630993243870955302931610326920787817536486606178639022191967722218203876545500324828166562667975349886485247669064290304264011856015153833282890350378403452236439054380035601237475157851279169785273597924289112486028129311097692695487812367205768265615318582659642609821576210533933698007922960755306933414900705971604360199860555522790928409612799815094674454335527227177695058616173042702546306309447164749951674826158551552029864826900929285197258025199550172019675792512827646487174873734085727642245540326281469493479205853700009323153354655251623316204978752528114523912455050118768302827460212604709940474981854476080170554123244540881892793650583662363938525164621359418737699363958218794326662993922424362523916111640256409207570533052385626031054034276691515405337206926463937715243636745076011170384810870366470916160156184944286743142385537950609590923773583518972687478551812423568572036879192998792201146195106004930064050935882472035642684177319805863815121030373397829748098251698750921051154380302108502471786033251337577868471795859015754036411002896552074400099118424558254035636999839693135304729268734820803877400927973042295030536715501989025889370239568152476233068442608402740566030725744841278271093763006640191020324369875712346957237671810365925895762398739329323479365245941078745118483984258193155652952744675058321598548199785891319326674921819077265610385296887374809582451728960853560993037704344517777325865732502480490545565738345308624503820429196312612175012748729485698672414554103269544958018160070072304976045753555083073065425448303186567880326460408709834854059644047842618363996404960334270272068141255608046096755577361367133530474424836228717452749178099846450662123164113254978188139632498977815532868496484597726243248167513543933632063325790025156239369197284055308418991346659848770437297503073461674823792243834638586112038827228827384774595377943587445278486502590625381261666188373037110628709387632820618450220812846250465255138845654331876049898644137145446221238416750447442635749371741989454470137299379079280157286776486198296140845009177170830728445070227178303020128659931625756779477587200986680950078613959131153355364045995404589679186352806882322569503361844564248327891123801218192007671550824163499576847046053646213175534029973781952626963549728894022303271707237168369711298520117865955944415631165043520110465169936211242520666736416433483547934569494479000055362865340283770459509634203643332717407922920069954154673865160684106205158661314478928814364176133695365899690244078276528284198243772810303921311910796606708079144646215896360787218745716510223378666569580933592085049993069456398201075816477201814723877340002363429000022341576764257533462581311477281370152587424810698653753193919858288638098506749188862751706857857552196056424735382108543693213165918798171632796057475801950283336872658492691099716679000784898839682349898311986057665687297469385130736777168989873116499415233892575532099751830769627974022154427530423102763768447327560141983422429923541410036370600006038211923033842477514901451382242398532059699252822249112675053188045384555521120846999317686609540120743879368045510729973770885507100900301095954018872114707309476093550041797881577672509520390252885155783032781572170459403974153590641188947673972708142665280897929193008150282900235445797690805964478860999148227065248449540734521852236554555846284071603822915461737582879388469455055924830463909410870110122546346041671364140647995858583579239401685884850507958454048856709203473995111090797652178536283907564713395224204805805603583761220443608425684333147700285122962400375120747901815062342025748556328405791706228320799006835947219168341937063689732785621256974448606008976293225621543353618495261497362370933793134380535339047002172825826241992436198195192333383151130856329434661191408663248395783030523187666867119275346750792375163166722009647117541778376348429160405354324701258582338479038367958771228645466508094672292631695675257626369391243937237557869704978125036820390138866834770985666431311780040615772093813335504116495872708589405421267262898527592322099038522492008385923398317008608242113873939551920749969171152378376616105936886507785837204161155027521454492329564468344940103388075808633143488550669777358035011434375672510055254372830844060712295328408616720277074950442161289785092686322312379264824587533732693528448753713079201585040505268961884072517177355443111747794348484229412997897315982474003738827868213603022494048836600921578416993800237845261968098015838103461549014760876466060941897706102447472185423714936214351964221765743899398541807376089808650785376897013682680916784567593424960217590026239722863490080920359972236241575822787155057923667076626759652282415714329392520267450819603840386450784274633322839473159511157900506047318518627090190339027311772381588115463198305680916792909684534641298487692990608136488511587956376349243910900907539815267790964661426998357861068031646017155204533947064156840662283291531873204323712096648027758391033230629194141785019664251401480329957147755487507338136898921760472172887191986380415218216811608501543444004590264035415396697658238474796121362665757208625674734635178933938392403189103985902138673648671336022227155442118303170061875551877796267408313143936825605045260366541204667164872151404109012224895650272226743026200896133129134337911298917835699591399852605308241611501297839852064303716969251969498709900291284234394899454293697035426530252468402767460834470750424981785454708689092057458105949104342198100602589076746742267040460423699484685661687245859082006914216538625106650635311466360647866044515961065333237069275917798723061502035049103740080687959716333137173492423571305764337454322860607556768725348831166889971817055287475800551201648060472768594176915046536622876016899581561630548528560243474989147837743357490508434745554500758148371078510375397545540227213369934113745622427921310260705376424144117380981879039295866341746929728280492037893623712837777664306204075880382954711310789040372762068855783254481285308652592540751088595553643465819746441625223259340368974590903663190453796033938311454087294072256016989767293166269210910326861477692232279789313881393500565289571546392694123191308017408267699910886658960948737498156313812490510231474904746043020086346273547943740691324256786947943498419135770220243875109959660009035117128857655669307738956047567029513575725130309069229616017138052615683200371664840789999645769617769347602923444328727272593843166489540318606520043099049784385876795578840967607379017643076693273972456424808117700675805149215778462492269383586888259707720620813074520831652166333641865566253946940235742814455338726220906468871611510780905010082411972922938404374472803632589537635964968775259173660961834044340086831951402847240686766313982442417224171955898689376431041806906932092641471141429206608527236594896669763495080047669023346441497625576053321354728983586221322109736446161560209271251403925472111161737171292501215084822242169844804744407021141326702723858501235760756167780100083313117188580679547157963404374741781154266858700166393645061381484989749299001579410744804618388537372132700353449296063917402190157410638804444126909147336463960920602856815946238618090007426594341452305333149912424193059442932159588631375796840406015749286230108933489281826369252503474934503568790702773391292608759556944477836766855082908264280470914485720656442575367654767028645684246035235281171510225962770190086832823141957684712436827426514410533878708491418537854090530762754705194372843601797655553323894564770344348125793897509815176158827882045231733863999696586516829039780075226807231215813020652841170307381347077828560412566042337463682392346505272328175873134900950424627707506076991939880825834565585870136827705790901053479197294159112189305201903465342249094953365668772165717818382880697308544294534568317642228656048596147462041228382446204408998824603841194550199937369129263847322661453125274431996156448457734723742758323485473284127621309639055168914872206208454059512035878433021437935431510028509554687999487227792602417042475083457684904595439333589603753541339376900770881261314250484392135315605233270882149212718899261863556555518007050114292260771697130622569460460183914767139687382196633765572179959778247359397117836445025818595962851384938336846434251475342885442425644241768807205061147604215299331089901971643558937128793002546946511605916696065726121339590842479693622210109793681072528201507422637209390012989725039717542070378715548168140622278238282065731074326317796057692979203943357233716520696054122537385276047395045334017138315972082085843047229000988842015696116531396948006990921509323006925783169761494984502466550720738992321272116910534949455823244803259165332035054029689854640703821276136851731087821512339441452820377898282811366397221993668530881060993223952818515569948422074203020539499794184092421111257025964979807607914424897287180828236483920529482420782223868779897936152140436880575014691251524062154537753189608720388323589062536463503825041265270477482195769165223522645328231488216908040816597593174872105486328085932448183973063821443379365358750266162669923132250764156318372412370765888344513219809601985328640186248487570170506361366878055979443606131103081482238981936043260172689913916389656373156177908884291880221596554749688691650201403219877615265961226910559923991918324586107343668908549375095461324664773980210525409346905848073502890412456805446096297876882490670873408698009940208720401453996513567358850876694229294036105469249648384987962485976631942014239062795594421707462059351779536975890078038221024565228970101506744681639391003965596174681086743247643382592697623600957990065264885521221458299436204239075231733780109238949979163895055645609972541822607638919507883772545453896733833128832673609219876938625373117577375493987284368786680540346945503284337394034000442198782515794177118434939540524550241549172259096698290815913208124382666836278955493525042553697303560493146454795880559923910323886548499938869876771785353748381256825648051116413454210118575165650395003362324722482604560616288545511834194779474377305673439607378911055740979123281124993840558630146231255469420532624392710529223807795087952442902601575441073524552283763644937861751232225391432799962894782140411186221905836221124799986655008497034556705705855102662120956690633919666898428080980672491459910406293643586369297670005142820788891189724609612126233040015181389756800795539642970355585007453322986521643840046211093427170233121766634970163405123223955844131071938958711225367410980780179984819256716550163057761008014887873740501069443962612211271114293867731344569265504217555156849787657523036774101650997620157549578260898118088005528888092636558729693076278854205292069016715166025940144260013843025575967736101283926515780909297203045008231815873082751988495843889813792727497502620555206750248792506939993358199312233450703147860490669155184755192655814522584559870875318727695805520458504657163598422723718792777902841236176166300638389674081188916065629555754138213861316724408814034590972491984387415474890405694910371299992573011130965069046670697490621648222648355404530124221197652051831784730722529295949631703408639356275648459867736710110007122219226301930128284677181813627851513054043577009171345502740277318850422952351480444540691121386515925875939224035973387725929167584646566860037608530323810984687263048941642668832152726173668127387356059967014115252554797538241438147609275805844397483266952162658607764327998169395495487065711224613752315637878276716312979861566344564208984029743550829177345417042361150743794011790651448786257798637240908637232461749092236459609638345974380145488595954500455993869301676470219006000478484451838637607692847328134888239192722563158140841852015531795949840597038417098404748608718076811829934371369743229029014288895259616846936624896585689181575658510913637308239039131057043537038801387384737094153642756396910027042864184632995937338615599037360004138856701349107268933737504626188179848180314993010116140134107515002741075231251161607293971407389899027813181988203591880986057794136203478301198229379800804086639674299002247988883731533530948266142392037755292620290813175906308173548169377724722897632822612145712918112044634118340043061655623201181378559829849479577984656631033392797159314270525473320672281789644777232756047511666996202596753563585713157362467011265756474509258492684383983002874129773834955801307432797286336172412861975032717260533143159659778239943556775546917663936971132526448731698637761274211530397232424909818596429810095730481743346621285146662401048724668441707514089852484916898079462295283343804741128633964254373705289367804100215695072822102906910946276173976304967872335626599719036842990994670794913751164067326637801598234005679580537578792267893398232542605838773619923370597720137034708487295348318436586205597560173981054608414830279055859399972427543637297878075639101813175463508729753185797131424332562956183326924597591601503303927615679709247110783673096145387030831881779146338261935351953442220727989289485970601600448993833792661137174596607273051928899634678321947342595129655964064223853091837532661842276098961426762458859339201239212105685503031087021298283789662121356677334630811421891381190584091073034496465396714032907458774054984838730592679387005806558672140041297539140587939795807727016834153808946666507073244424356052330633403085923112094259062845298433596366015950024396807156056789648961673713300272189252534920923621115271208374587460938632764289078916681895326934345268247350691939667088913321683093370976922010349627626735592577669855878115689398295637663538335545058374851105519437102219133977004433981177655802890733374824098310008644593465433117627015906718924579425623081848197179209263788454185369109302316762074527925283553765372897999785792647956844491575864048927763723948191680942740531482065361919302144248428310528723133188382967163060529206475474318617895695655024646729493771281854845626583365134182759821412340479027992923602754710809592321314398500619082521965862067042557161831424309082697046555123156715181179053056397435541150560827858389042799240983561126302150822619790848274281068625673198699297662018372284111108129694660214998762895935248998659007796845805829544920318445576156588196605012041935372879835027964923044722420549453088361926157815701799154934839667388655201766561573765482343609649942615648839837336689190521269101652985812754350637306084218338862718435087743527063280567777747389153219132834068037567225076823036437484315762260960982293814230889863064214155280695205324466018588340780676704753464458444960820666793980563961060354403990682974503805947399547289946626370320858835815540600344249203798652552753061137340692593618155513726398895738300285310505994359855741004179685521797919311130453688356927024091046356283532096471500627487989532909419749572493065248132987920499908705186014409382429376642271908248436905202847854706063105390410616095642316480442710118532050579112176915474661485879940756259183737736579564396057569916232066629182475820047545919151372049451394510368163997969604747770042547974302555199848517074665674931552602256615954883253456220963852454623625146970188077810537138375240016953721925077488453318658786162917201408851205089789660830403586316027604555734360648224737000437589906207410419603384708128060401825446343081432749605278177724790959416793061779621089654636952928047332291120639719261120477074003262229988843309614375792785421601646759928327607836073857053446714176396434746408769562788960558250353143054901164568624148743697648505451551777770599953520540036735255910617336096209869498481051503242558824628444472697685652965583285375003477094758880656780686804526819759310765820779252959541756247784802133591476613426395921855341804586712936707414382148888137714967203671446921334106976569868411184911061179196679351809063370393573731213570647228815937595868087662283804823932605248753624644449207493500010465215383990866815038363411264763225943816520763668498209170401812653197221173275760626501676230561800057127602589574129515151009161247570340999908675634239580502753124200378851524232442700899084814577447426537795526930142430139403794689492617210355788343500739613499083754743512977361544118976399382036103450008785125185497577744312084116808411919117419754962561568679090837607556862799232025424784234911658105631570886933697541391322285014102748485380739031400680320838576273084916691059325361352231754681346694758498937151310592085216101960372061295420460326085350943229796687835920666484687498591212706572477249005479445964220719662322319301633738302286684234265868778205904422048141738573818403587496009637226118612413029549750083565113100134760979016447645087614265350920299578877106611746712241049562819615816611051755350310804743931429709692900019028311159870006378052105566840078562461927983958563206681375431889154481602522261827686298018659609380417250306911461310285547305391288031042698109628738909486095590562332027769743767656228855494709763728570113074232784434448753205997903917600487016292533928082681818632987682396063601336407593592967838321494162291808948222448419933822527993133530169391961588298513937837005419991834063295194969451059322139545168746455973173203605794140182465093522200608615892694037469627250807078139418543429976005605267345780781445452891619837470247387117376274753064270354851731054415824552544507430596693335653511034723062881925330045871259999802356270752370230022257516247317207867805028340001987755573002334507237211622827614542954238480368473277367503264648878154309882135344333618445197474159922897757537782020415070920240798631143596090831435363495197740774815088781897018970543424605585632691545667259718886913149048310626531633587526488770861854250735752327624343552255954976468647385276415104551839299477178596997695837584985941453844780710882921785609271559213613305391402769206325585367223149727851649419640134389702794806835394234478517561709886991415773368434599980128512209794930282979425812611990587389247456340420700079370059779434399262296847229029941791929768791603154777252373075048359823353815561596426354964579365225322032443671147852100596887454933526448490029333141302583525509973851131371946654420362104281298105548191993153797107860175785918273110632937904059418124537241698497057657493226063559905967339133940600286162021027804858219931726938636237383284621132919248024434518348157747493530069401939720294966527208427284558437410741932644243690286098475426285745688636587293195715041227641646959701264951017133046960335108493033338355018911940859999836605646797370469184241426763404449274946221356048980469428988228393019524892016962452307075605899296302946657741191677698594491809271966950674022340412160780745475747023562691447104148710128510529828532785047833364023703789404116251866246276228415659612584227093068150778742646109945663938201828326026598187983802814739421146692421917234757694439990358650534149455289567008273671679117225670960813814043334048685347934895488604735975663677218608461398902856462030271968426657777924234796370610517732749396234418854880657469771503993527483856286286673718528062562041432739670127348493027599842138314475383304840071307802493288754271386310061375977072050208209465957878408783002731167122018810150541810967436619647839883476969853346091020078539917222076733409757336354571980493604252027025861022120256265118524989559420932871985836334809791840188257269032339423279764565073908278362857630256937757032379219602306005141203431803525113599263792784082151682993830508728251587740065682146353060543229405573067484192815836237519193442155910807896886773848227796496304193780493934172232960393821440049269308334428362326434480996805288490383462586445802460478930152924087293207189354199272791145221066246861825339957605264228605897602201822845646118762589291725602863664677232868248612502301000723277355308424633357699025036366750958099320307767865303425121994277377426726862726859134743386743613048933957656239404403353414908324878891518619604624810978552904933136160289564370027350490023961377656855353140318297768274514731819672317199625060567360937224161122164587956854954416445874419302750280698031417237965478729906764400466481830345628234637246069127600786058463738338852077321031261373594118526341773036463335401620236583464444197035812580015861690511429967202814846680874546759375358651685528819102400073697210782656519590524663665787438495336473516368280054992465509521702325305015620740648450397097499465696564988773575997334192730761526404418346162451240112149372412614707058998703037851141336503583454764419211334533565047337054440534827334292900296002740733636487089960612185433785734879418369771491022648965439995074311045124330494166318591398946470617007642362403573875572965728886077716867613988436350414403291457643576600885908638143565320367525524596975952850556221307715533336937313217861357080120422777044151581214200453546854321651564617361976576681906813128983093975968219266928863965564049948788359162368765610001913741081937047856969059689942883686551708133161786403286316114804436030426191651815648949014558332873575698719465430816649691596776888834005913064801841612387309103358760681163663669483426544669671960613126954972364971083112691159169205536657266120560098759152470571306833433595546168817054638427669581362655516360531165325129501592596479615153827788659315614215402486416155027239282293228085530974044126249439738503310815832062404218415504379825603766412828418792451009780554691736874780658618667647369497686823767282776144016198605347647610373484047596112538048712842054405686053205110822411957155163208208143647583360102064344752099990680267886347489505023495349155759267984517790737348487629582872158811251150560550271637154849174563191509722605802159142166741198600636867190444894691541103586753400526638295261194740715953328044704427706225593148100379456330014146776794348036918984343497047620044737240592131031203070237965771709128174374035500531797340937482033280303869610236513001288713789209221022882772069197803100259917031091448011841574459239602176386473107764889135968455879238926162437746769445057621893169396883761669812168643327139536837735998568438771963541696865422483218617007598945867338503812214595545324654410892956515461480579399339053277418301936808007484317502046299224705217953258132156986090625563658330227645325381313323861458238969980293834066524425032546886931735530102049980482471293743330699232009321398266549356944279677134064837304990448689023339883065425329270205105373009701173505433956502840982822440996662425667477114886115881925015443639407617340460856488078050965103458537849743145415906555145765224701221853822480454929689249117452933419305272365521029401108273637055603552441697368642242221013163531082746706951090508470248254838816627689554626991265405084449186814546291981651125267230054314036771244596451442221382967359297784587088076077850109274471389530977796424321698959908851901660953500016467484377233063212578586447709894243036762333688028854898104657844871928580514275878003035583201559881710027337383888874083533437996539416797660819932378589717659943184347117632372349562805969804872673569415084744430937128947730386960988004671022537383444451168570877354192255681529299252542793600024517319119977964837062581140865465790198013266573986296103616925441126374805922567797826959757208881435651239127015922762516651760614002203658682273228502892809957941390272810483448743100121049370074087395678140836110374117922244030935145853107110325970096936242410990006452091981282805093810951178611922852890505495961480628659191326036994329331545611612020329270817946896616138701457060390667505941469871490699161881275654623811119734157656070149562366670425758957943772461868447435875205363289811219689099471207732307273731818194623875588672316554750404684817028668495672959042436343411919077154464816808854554238078424647660470467761953566746573908604917924837309646602586890008657286385402972933782729601712681528902336120961385721583767457271035492145669964932695903424488985892698368692380251468603197866767417124332730013312651628949150292496312603586218344301679818428254861700004803173170588181749418533244663320777664434766567096168537993840725830418597376767666726114067059304073768856015022617490962634043897269490896919804443290310002371222875212650394283059050685839742578792822153902582931126119038281882548113680668224780034257278496211993371743655070350075739083529345622030938050210703613526429722421934721914678976372572110660110662927597279985854344095882416080301505888430322581687657704418019958435945655556082549374489037031136315663190115742557967395580861441966798527426329448417801007323867487586834087826141392416569129455884286158381417118157406101770453193185514413404190029848718447782831392364208369657943325537707663057280876563044878084940685555664530237716676249292868811669421099940364026727443626289562957828458620893873118322680580037840620726881273330635363423897769204214348144131614939258720682911297801639611838218372904659365523293381230053688137453829225226408764583603295196022817036316501364492465475963302810369172716710182060455733206290368100532974876478034245462696641634208243858196673826612373793522213127988148626591372502282445922587355584747364729125071183453221613814678875492772670751516103042575080554629669068165095230747473392778101603295713598747985070724537629905349293503398554488302198866708359240869157732607224169225133679593821451914535525948329991473648714878586224478951772116493098836671065746100451352287550748458848870689693600693164564911131628736167166258495915438427496855797487452600830541621629030867031056101846273859794413316734658567877334087534617117351864936619771597135943687212754020501349847885301997231828672385475009689519680181076688878366745130020230862214758130978622022286344916074581665451750415130720758586983206639705667152683878635472318847754487543405360599301557115748781039710532512911272854529726180472423177977894510456692640908345214948710487772511562378078217863258066274620596748777283587949351441455439875748157819607447932426814538324830883879254284490840635883361848476665305327163904758419599050730680882444431772036709906606635459748311120397882791402067317681897292472467960882383405677099443950968921893510643520748262538301390082445151115634581310170549348211065118458704689371908981289680299467847385147596907721307492887850521243461284369378357806935440838606465425912312350940361420792034576290292299462219999833494463287773505065717205848304574289682990169961392312619861498320922537281713697691115266082049174894976503090516370621476555513254989371460217647576844242732198974563709926015990704630963764836234208377692822673238333369993508988169242794714118060780093848319494441408653965588443710817539448522066766112612825986567353396921543351278669710460455195460237929016957361890764392646535789193063070351308320470694437247116726872779304024820421940853572213457155779129030242679588601919619167766575181182233954396855385041097357519430652968565476081118913918487634496620341747652026549142663358093007046187616635636009525395698365464507035143603771198357164058925027113807347279282726601633308622758665729101099487610831647059961542151699750963482000191601777923945632501118168466786144055982172702775940898253331114689157661993635568083624589155105802261738890561886203005557840689783330634573402737889170671498820077844557852214500279960276923665233499323232735689764101757862328707010194662754023380102263146090402867967954890384994750484794857235116542325846386119664247326209656416735143453730774767097822601618087037441078468543489831991253283464373731502846405813924504619888599317075823915484737054976802272324608874700169813404153534017354158087595224380608877727116476745500183591882815341848733096111958987052538594520003580676708737992492838930924857600846730024379050102727465965285003714566271455196474498338186483937633554645500077981051448647978842856281074273700850197518581667675822169098727493712864533760041669798878010979108795580139930804705770584375455465125518966983821626343810110567357467819781469055483801220539739853535370755145006508344523627904250651900314608552313150891174285199435560793091517568119075973603941901675235789065671608946058719005061688387428591793134295461752668499409321051846691597076511663575019238370324362506007142289866857573646321675224915647886694851346778886968646706585110978605146022844503868814098736522579928182261386298134206461631940926458578664260254839837355744022045973065664119048710119910282354222427087316213560631292696278321989751063389269761271302982180899523380867780233750714967677988248963638040451274942908466570387944127901267351640294533050716875340704793074101482909231017629548200184650146984932387601878607353590020824818503378715160820504389249480155279237533853733010022052925389865998069306142540546012221630114399784495062680937574284366642918274376614094063069263911442775315430665196918029367265426293483978963240407799341241704990436270303006601785873695113127306281313639633564002801773115727660031036224306165802549450729781296252396568737795081511158031743210991250508071392470068419426572542670472091308773836324257183402652871290797700165274522732238959975589253652754791813703013996183883458501196908753604616257636746996124330251600514248916629087434001162936345564612140897049424372750934131157016447539320411340206370477791964993398683233052288085073506073745641894251304732541287882979160958740049382376987443256776891509135509240189440699261779296324788324047720206622529133736530282540112655144146356379454458740753766541096408869927381208575381449137970528305659972236246707570505972194786290391631810389127305879967787755094540593969568297748042133495315529468670191049849091695240719864393982916785019355622383412786133664696607590922046423201046013065244465991489249963960946354959343577868052171180614009420800194203566110591886417434434405795796886861349341863349266987816132579499955608408353144642080994410786136448366757855209793741996118862122770528623214821009348544224788563352916401878229676287312530393465047818283677609501127593048601830217276809474592089233745387967283638222522812855652150656289994218185385660193243120502207194262850477927648956304676360587718140723376620295334189968548989920940722202795607415353817218439770035550288627394156356602350487302466295407519982438231433219080032483795095918237804906102398532648759864213642597228512538039745226058893069245080031402511173456732554833445338205961472444771061240352529895718287758536910916148308884234167662648420271434260365631940242436834737771813634007479293169818873560942269381830513506653067785203917406411090133939537780687557308881311709566393385676623671896368234151882822439416172116863980319716822389380024238919501839889240272369389373674974239011499359913985287853022825491591015196093936968968747609857395742286909086008685652385341623960719377196965159026173346784538501538921845641928159689647359366736362110532860576537892288156258980456603915787688372884417305337497901993397650157887500604920867728967637849676624844088730707353092218925965002829591273023782058658341581802262788785171819513391744348891947175000427358752296851152833998413474351396449569659418501316643883527784556571227433909487303474255503287586202909821987303048007121561324641328439454226720914848808134759634607560964299484130079341929560459212245398351865961966525553139373926289567109005359959379668116897884977239832554778942465652044130121147272943700344784542822519460143253177041194179044567931576248356708160759063734942567532260179384846198481886773220578817589057968899774418674648695980592860832382887444506024394146208730791467628285015037356747579518305774314949610902026137394489700987934062241603666749227737082514862396805388668181205176929608972684126094483807990031878537619631608495420068311271793180558937574120849450080912634894751884658359429042223209963639268037806470263159359256144282002818038214574303670337090199261447735412103578284151167481794995303756726822352291410927935461720826542733534512850348438572035409143664877749241351147248897060702436928557078832077436190477670794670543259016096499237624544187738425253427717348027045694699806237857024681091619606968282156361047959100346460397919027967496822904366050661271286834292008160341446592086846568521098770226899021982568484835553954935267536629782558605261493567283408671593276515200535867386306933527388610208588825775764128518624298792182465980848126776325019158328912358339814777050841247617230756183586744640124210757776564109805868357310669659202090840601254473426585343701781599780491875506528612272665714991975578203470074718207922711578788362004931989158199668305375672468161171337593265248812095762926942198792823080211932364617540830165116754508901544199357758115199382410428786670509574080735754930951903467057117760662420177466384561860510792352799337843183699077264699004272771467704672777691062509710933366130212237268281231210926175676131563747873524152979104510414766003771749333730101279702695333311751138012087187020259630007641502108896316661450720206202112046148498922493306855692139699678427952305270881280525634300889934306535455941135830904378355141634548475516979226505802093717920431758735539749903864673254475758653856877936225381316586840325978118614798763603919443107691545196700666661881314640653591191314266699324277132538690443321957535652461532548535855261481337736773148917615880578509127326012479586438784854669176823754682199424620303981536275783664682185659433003877284112731640586994811832200327281637056045491894600805545291141445994994887643131562638508185589395590070602890115067870748571839824854158103571897042251474140876206635091867726777488757237990822627415195138375737349854930809004519925128352986115348277258539502485681111159195468375523267769975940053413612715306023785241445128424541585281045145384126471206749438076453749419520983329806027854261606983138695168676500927942589525792309929121186927765178994154907047527668179685656185961340576421304849010709821850772108528608265827071717525151962664819631140143490478806568236674660000744966637175148475725139547558339963484982006152518427561541918983518508183202239403981230284297412353301024335820141499238731498689098619196690546305691202466063665673253120354729408398788514312202596205156084874756427688473971815122219314170374055687481783127527964153611350809882613873143519665240990196613087433480409190919169465999241625906618517584189918745452153423888419439155197171933297054346409360576058959025507259058136408374583659497433892884815020143065958444284785151534351345955251643258535760013986860970361259992214290399859123296849167299738586789879656001113796215314700166127244342729206517594237147417848097397934358501818256299009792587020822066988853569858189838724186158009629021124612362884109324179160556013915860410181326399030494195315625997923891398784416698242066509556633946623909631199902674586739184214157007534342540064306845098472432694180403023319802990821190805181094587489282267956054177309950783222432450153992395912681628842950894542450302340666587154181360720319884245228827828636264036119068103178223292525354118304584703616962364041307141176485089958341067666398916700734362713198241660924958478757837912407934446704734677678689495526033925209940176302215023372843992077181837873741209320000954345605819911038725063053456197623749116793128738227589128214971239838950837993462786913352099181199989937765213575218422657685074580458275914714842496366733134179062312694350783284358821361414084574153079191595985071124194028026611912037862086642901244906895017598407293425211737502536690624275548823560782979405850405171667924966291304174461111832404364280376790221445632071054518255193611370866089049777228323686854513873335221496457847886439779300257616634200782712890772644365582024883021258665695740958507227861775893887941397866083107638689438688980186300610935188867716529750270987580689791764325082126465755934905759717702486542528876002593475685956526541498811241512865622423779058599233460477122406308180411872876375138940424420036274930971159869184727846876508184550133425678055523530943706337307531905129126871007554351632609836052462840181692523975227926241029082864571427904917685172443559815160066949380002223434380931002250173394174679244122547087003583712982893836070179698961319639158086636222971000682489484157226377798454346599020894677950157890669321123804298512643169083820644683969966176276164515659034730226950564277608370666612993382513585931569924895076306461395717276311333910669819831610611464584274748374249670258588556570987932549407145736003120509561816838631703074143381957686633298859021700539014645628996915109840412402257041767299766096200659169859213337084415791907342529160797281797543990189585825140669317639722409435435244068497113013723535146608648961542525914251839661280019845085814256129861189476897678053278992933758253141882036818724520384187815571864342626114118411813896905496645594337190426097940466806844712946961308471337980845628869758247747913664199446985387721809155912459907728142832386296002600340828609797865857896786862634639638722423258943014470355405696406812713547343892961926837231682674203120192300251373458998457286567868983183352697930912621467280584349349936553675935564513741680287835868198516789225502982660735627673017636609695145567584219835288900611896538296469016919880779131178552466105691347526299173111649612791754981328833251498937835555697964686120875537748812485382843572087967427705230870787558829337730244087139567005207279453803709906499578264898082412046188118433956150572891455581139795031145082094183184915462253739416111942781846149795478956988234367897123123462601394494715505345657834166135559338784096307262887771477622726825516766155153789424778885106136957164512161532393339105772165002810652481260625371270784239145716962273184794414778372213631334654476210719598972446633464853185913903846856262466988802190135663468596869087619249629610181361019380497012972447089694384731559896833985261663873328142599565545318660310442371186713065334331962525520290779912848982224323697848074566541229541259307920010760292193728133099587144844004444578193635742016383053251544818928465590684249282761149131655882681465089236891136104678823383570256871768290223052977701253270676554535443647860933169355452749851376942643306349323651620807369488649308141694810342510074604428392879092550992698701787857479462330204034905917291572661491252219856148367678183017889976971287279605015210598320714432988926707940857890167848864056273762608840355847292437403015275166619518121659301675484626869267418812877330584471459068209265986323048980714304149880845951350235425132247924399412509657808753957988800653381066183762686822359397730061195536574156918430207820498432611267705024819237920086336403714154475063417200115150262583139121066576285756812529865399199293339624463986551667051036566748799231728816597984853113229215772528721983824444868298558500141203406815386939878545758396012073252194794290161972260654510980221367778484046713514971260758371396980419488550779747634009692910374083309459261098852476187072747728578644717574860415799889632770244342911865861311233293878800104722952749392492821154705057301066113836948380048607905092780544823627899420531500879316112014640356631070858445028966441751488477018586970955776608678391498069147033754108659598477070972608881170773394447963290058116705004531658882418263290841882396496728081531530854085350515275835238568927166830002831014521370679630228606718467517200412494664749720087312539515385346921882494107864743989787288838830379829491833274163235713450466626659482349795300377460555647903420761568188692705908916619483544637564980838186284200451414118464406523092707842319833318615977247478075110864357189863008891812456047423471354325878748436927329731731076538164447603370860040604252259389210927258062646197193593490218732305993279253161616118672743603923023110481333933969152373214967522013749572633881064486065989542480182911958073943380314504876002025270914342809193626206658703495594877346507269478337682862111084630522628969948833515791200512541253994560961291328847884822111541868493804482000919470447806135931042382494330182129217132169666854105852698510671400572480912372748608637751952258726527161583932577197387381052876455511053614372938405144924501860757695514366200911437121169744284462524299187771369943362653686008284838724804338848433100997061207949742112846721484867417484076259749909521125326568744943126804669608247533628106850750489587272656671831021122502905380811876926107252491863935708536627675996519502424940351698616739947967759525443327358627608738987065556729072525528947121936891064737787153854507320004993351092801788774088437643857006073442606195381964592556661724479460433247133235198241452787088261581143134432343563522801874616996164405511691944351573968926851854517915891120083026442329547875984742644677274794373531129736791514634047287504585350244252391787566006033525461414044136037164540993758931761889097763243096886808547776610236415717787664075105586333232005301658107911097379050574018157568226232709867433585205472663094934376103635171658457226275367860482215748156030190564770809174686568844360807924426730561231567357956235529387397565894699660370354997718011028484399156235757524993239975677357127597019866206159612414542458998853992698437376941764560205566097834225601407726550612339269713134944262516206258800648440505688826377229710512290090248640366682848997157183793720459858772686202776420393315585663613398012547188191630915544228702268947841885622748302370775479374482925489803091147930989827146140113082381346668423144440209824375387716564863315871290676387256697038161768958798495207560042820816528671053272868975049046701894703116072425429818494477757197916856874280361462698340922635888440957303310410639540857593324940282041438592951209623768235407947922858801136453111421642371503155503835181263277228541527057720807095038634947800438451497587735145628129081668914729135650844099970228121946083867201690096837499178878659828867698778837913139344681408855177213913972124086552058427628981365079911637245632120312879539498085801754031127298676105219047213816973046627175134171287068261682720021463957813380303262891488494535511261823024588127855712997545238787914134987790937768089826337879679111361173520750856970818789610811082549690520668792260920358246271866820737928812191864115128044325879186143290254615541675160269360393200461181597443987329391598493096030408058357371637297390987279850130247936193421675579964051078950724149025029646559337026618685714369753655384440552961360742134020528679578263216703385390901141135391287238219643632073512777842703791442505708126841806277950039550594118046881465009180751459257514852263285039649492946083276988827650283680462270076466786899630610298810826652109580246087439494085198115663912479014947310138143157600137557307406938903878708751075576997738900363111425382232880633192004027587744463055029375485727717110649779549842767716363853175992735231624982564306900074788669455700742618138139987909275055206452785355328184664967245553569731168545362257008138033920612278669791502950409745533079724892208359820662617342086773559996771964114092487035148170543489092398174312809439542375859132163409919896182536011483762753993214930951975518222202068973715699296750615941814343069025606613637532156268601615837253016115499231428129780041308087638451693086946019761756297580731159207752560319428931688215300234578781100828598706280957108135223683173673175062650304361158206569480563350778113657582822101437650657119604468394564808766835182301755553787746380697285289128352205664801101001055548412646632543553061679617418717380389301726866854798387970412892415216466095274156391909330988882444164833139170536659141587648710273008155876016045123339257619542980653759327456150259694374143623413638146390280056828329638860679304352101220309419780418490028671087560461719822944199998595218355821184921970957718358219807425335499175016701853840999661128740553456753233140804367533573895727514730608666651031338302997396750663606465886792175348911284231281598843587251529511140275232213359410332285165965462904132360127489201927986501926674134537707115877676454401862043445235467311977063335021963377475476054210803343479871731326119084550001911421861089759463563709181979337895921955412922408653721233989275296454251728615946167307469796624763504330109251803300889999545519395134173619720789222487460588569986667912616927875628790777359415083402131976144370294019599066320183337349771462298812196491216465695093384433713676750808794512221676629442766278754070488620977220203704631704251585715019790856543606405044977446939140519390477426065517077114224391639208711556654048132117340416507678675680641046918616951296829494807646345256529349799172637875015614836226069477748970572491857913180450356200225003704414144537914629639762337216584421867620671929569637304217792795258375100808040765794601665992888567028343649527793700154761021801047273644006114829908740236732183847942916505855719180320604790281236687799223437101200341624811531461803249000616669998198405397778107629806123191715253337230784133151894919206430457241586038912199094991134413080022688167576590700744556511716205898950083741553461323647507644027169174976080505734597125134333862349329635756600291942994403063221816640595247842404282944482657253589365045675765065893986115893808436304914636872659135969214925177623975188925933223376346608998845924868494603438170280038636729917990835597264317982866599622167569543823478276432983614140121332070476415938721229018385430260113520695556867542889131468503614572510063446151789847098115208194229503172678531682476757439485424192217666532958452661747106378625343846481921558192285334400128781751461618072655817633900933525214089673166735284531114785142808276867613347717465809410920342135755942781777606878690975683637021205141202864222357443487036805465540173639800135137967871710540640878128480367680067740866835209915035790958641412057290900139217145155437678212542325162512466173059525751061279859799298264297150416291656319024360648485136045481085265703287813093640293006560182804900494419821205184088125813319401808315678328525490871678467019032949786841979738881962023995756839558671493069962822817082679009404017011046805302292302256699139456594480176118727671610276132181745981781223513897245774521834898447284599948766324583696136994732417651365583585440930484014760420525977322801254054370292253650505205047361867386970514032272377139595990691933586767999126277508462778007081219978550924047862319257170866990781730894844873123577196170768403425513241440330774241259555003544134851033565584909425116605723890629582310878397100411892715531977485431700523720751347882687677989190176861136899488963960375402253363958547675578829902612089036887343542041529570767335174097941188722427686018341936854217845419044084724064815564601423441457217697436610289930228080861153326674621813708014341022913672527329350421841428285771229376095928547866391928148549785610997443691298031938920123755513383786895833684040785778087468707890434403308653860582861470932613588461527136033360822493905457069507440995572543757288108555517006652581092692135269988039899438746599116528641641035802851279255494654604245948815740394373883726315608732065680245451510028082041963311700723869354837589567975091471782475078716962721438385473572149766146241074100227993330799249657710568528720037235524542644690142748966847560976291302217891482857728836978798167740884052117445460324735542441862463107376672852223784291534150024597136304715268011818826167211655735419638948626514810677197908215043350217987853079773416831272962267226460268924383854153651803501569685320315781799901700457556676745460852483896911469075822887474904522804832756053511676964807591998249855414316572395223755809723176771465525265722420566558304578023979182960749008720250022305104723184334860670829684877295787686592682349648034247541994598955618308714724513815043903550809338393072653382647077391160485781448612974239062181273194623269786284302519305110839450734499971554277877876379840242933545090263785093395157435554962851163288660269385684778510953639192392011649617617927718355223502116698357302980323671137494788814659001856040546590993198919457949823021171418795729881056119249919062346982167921473715876790193150863247280999819877610428565578901705822652588787131553043468171108701305496784087844635765245447138998573615725938032647304515995865608926101993930730448159306771096033910654540058525431654852942099790672989351834815556437816860154026884344229301812743325286511810681802020121850405740179160873330861001062220433511607050174224788008940377885962726262381093774753242467023017520150751572784769302172935913926357262400166068236371445712483864633740680290596767765490154091639242549668124412562510814259569856034421809737573253912932829910926838704060018668530694319169289880074544884292416048932242964587013769408671911665314195772158930617964663935133029926292898624964039470065115954913900432517603896010364986017683471005369796345121984455902432582312279175067764098579992619382710392385271939714744301332066978234636160329706280554831806032929369507857307153578542340282013740943677279743475245437792922484365610089027269680776831324175488538775526540943234270752439681454873180525029037183021877534583418606914364473339149733300555593150042017976639329534367520635887131229712186667013605879351247218940819072128186352127125297757596772620452275027588509171552132562130363176485917016898760016822971288612443269654411676446034724341463839335440036230030484168771891729168223199699849321108867156355831706280628546892256962020007683386804213147921035310986968627304526098894282410897136249994558574330403641669444772016728700423560707948448467954078656751270221819964683367836074644581404666711664708939428892520668723846901755516126560515261104514394196203776327649300711767479614022293026774884356521457242872405229544527404787302219266495025336865481199305356546019596304950207782191112096113958832726918624919867334590750019009147595628348808634652333206589952476126170614195238435771339803838632140857171901125152769589726677655219858750042768878687356012049325690539390953695880996895274571061717724829630341616933870525581988198815516615593386413883710834765114380032716402219546520419567195037809547017721761422869487057552047541990951268780566316831249056467421052191711837698572060075189580136851412511941135789535098700113170174616055912394379059085370239876106117248018531574301109833572503528826171006674975546590727477640590265712000225860606702819970335618360972359040251693478745584266460649962335386961964213961439818258050162014336961229224678842342612791080110962557758993438231076262417014910371529558471825385814379014973398306760241779058173910699151558408351951456259095570048761651878237160721245333015608845969020057802193584980232763527048210060018753182102396572636642086398341486148967132564273743336577779486080933366851051111459814956128874648323937658552556792617608624808640378851225640456207102072521384090127894139106727750044720632084165923941306397670462394640726115594189481973843205162176038212419179349107041080652004232704017946466395505513594866941483763409000561325640872911924099598363119641292343039051174247490007306253022162867106043618886124029594787603801248029305378736689803226242933071764810562322604192409791178746239796186934180364773157197364171519390890557560170406207150982275257107398250952628377421113980838230397300804710726389772598430842272122107662649326455845770996095244750427211094811339733634121056649556503763478508565641011529625435425483597026651349009854407314794317208205398596827643557107527322234313089355580149615175000067707536141355310261748860705930392164795490736075484932984682020006315646624703473045645927000247973966983721717121997535039763638783940606191420988924934792612018303417028144451987461374825809407212647180589933173454792859222963614823038189599162594352988885761632924932560336916936825184424332795713866278164287882470674051723854129317055701924745931414970455521005856532597202607791261433650917091888840982767875783073432297157921181985138976587523401744665273474679389884546570963451933622996559191814351729818420992364575689709637915819020471356655682723867191918141418324319432315404528204183945221514626831333488651351220424047310179177879786069528497939320279491331858357244435451892224074769938473867013968499472750900687359830596268378836558538717756218075413789210348207402872001384995930231286831837954980619340140522531896512504016333901431099003630929615746701522471752119970741997319671725563957662297881064590581411370993664692217860953860722597253639229312636128372045750926116634868754064113360322510887920319599225051708164656679312408072374451313536171162327474028782697843460234203223123664590943263084823870109316070565803334341707022949934345527397370727159853940229312053155781795332639488908040429807521656137815850759982315501525199781107234119228076081511614561162616865265729528255810717058276304650210171579109631525189981799931597704473923884963587857132938164751283704126510683635463067144576902378087263151135452838711656064960721555819091591801407365642110819141390701972015425355236691270917135941170648252769455380470843095597947418568743840046175457122655366571293782173699204831259939680347637885348227443245043532236410183696242959292159534529310564882714484600218323907788665328577707648877493421098656710415805602250178512029523432992009713396188016082013369098147371015145422594141634987963962415971699194759087594740338415118300761255144022888647776563217407535831523959520553647063410703774749704711371693376485957231072017578175883568172742739978256363926311419069238815932938850992942964176023376974034032099755141601727463981966188596891987431187166424756005112256755580074092289379975383088677417533268644066382583228037159140757464600132121760508319949601840431881887319690548963134852400939269098872100024805388629692837647933145018103483859454153939504446208176037952520907828278910540466727468342720141869652793015548658680343957555787978170492435270406155151660424733867057728780877714852181640097870141235943737089370987068531672091063647991944456162788307370426063601662208502307450030266536747597085540948089497297503334513555101521291009218603955999374192638287897590550402590969011214719846003070635433897250267816658288071330851932457731745957818631235746245640922446892654211452211970661158610593436184957143489332805287574304371891503691251876827769825861055377168882810392679747660207564263697461704494842329131761695121855660410894326535423513292677567263927281924634415070834247884232616361724259955716149732878039768102814435567538107709397349268459085380171417534983295971456516601755282753897981528525300483465470678870053117356409818544489829832730365747219303606565203348022438561503307032408612326642791761588083119226827084041910282981263545332450300982570772056880123806227174159160920930049058854222750375439551389686928275726831993641064440049777926820457465860855774862257813694981417219359958928399216457263486097933855540229988429477505095597296109444477513737595652942885904393377808509098226890153416666957221045969715294356910414986113255276718083134821120903680715984556092864793737916598225169590209858873936611095379838533092227358397913366260417321037022578060836360745657227267580521036534439642304668548989520047020422310111768495382108315700339261188134742612003575582211761978250620615746669369786377997747386336148386074664149129298272297735922212130939333259726714896509824863193708825984903791920841552100556906602789881260502284334124571543799619924195029259726166247710734846099336014810432172652347210335117316048914232738856219374102667869211512364700548158990894193634737241724395456455341987942641863906330643369533773728375939908342155912570861741896703453140064401737885125851318811154860187250635000390068869172115234796769887422531751009590000413539120452027034764136323519576947498241039898246624627610650187617964551310643436395231978858094127028107221706712378238509579221541540819700026103571699942863790925427145953757346565085259805500000068642573529451712493026834034365728792341162944488760704180853925373202915185488965550401451159824757117675551879289737496184075526162174797594057196908626003359992471701403990102697952744516144759157649459572689066193073618436923005404840226193707856518493001355858356134274652572816748700174886123434171123374152954811965596038752814773461442601293221246957509552124817044952298484452166781685298048738618739466812409006712645865324064584433722577279904202597286313184891566208006758642986298715631839348844899359052777019769274167726641080819794965286471958856973252231178620006520887034468312393653173400775095132508512776285532745335748626937328979403149612513235979785088683996765323129602510270134829341555571675880285007357730376183608167303083548994981108471419559228102760426329237120140968688353421088211177215128232808713418106289715880806275346011062336580306002530235290144806209512738930059916270588686128167310758079229423013753661193561076274926720025816200541474856541825225819693253637635143580017927820059139184811022881677174480277533357859596976809403625398465991627876503107010768176481706839460524893290051727879771424606966364659686488543998906978800929632468716818329397171895939575866784517418119865951285873643913195154477065278606362458190186449402371148321950504665163706338152576523521313614058278433867471916947397003375008238997404376605049676665116405786824302843292140733633256388099969988064772236206677104256701485433316177996092907132275472126239789389959011826489424216884494076620261818225464674670457340455594519521850509042972949517391136273195505282095820857354499113072423695646766742256038891879639120966123511058865695693453172500754578603351674290404353750304191030438798234178998110640181730925063376270501858130598048934696731811452194003822359032701534157487094778840404510234679811991703652582858129239792392370818377703674193737655068129840138176458031555450955462584915786244602638951341376998576669153225520175822751013363888777703257463671019106671554579944685337157429843134477210524867841899667295914261143456646471228958794347618229535272349525318696695647779673831794595661826903802163388850367578362419193472076687167830563439434854038296991577377940043184566304722255886083909616148470195372069775511216306928595016535106940302412400492207426787704214030526599340518552333778925260810837986660707517914197125159023953077156677207141834561271173653784354075752082801828839179508301351279776881828927172485517446745063062214205824068012996666123013676585596828078238862216649618129124857252506869789514136994588860984348051971978082960408895376464697434046215591650590048645277450638055881328339471696365988887886486350561862021580675336316600443185311113549395739720104904386032884526846288701186071207131682650740121388382620229906057748526453795196579382451036274468348276292982412333776528648918833775839319956862493178171962728414874650336767178652465459387759043208874383241478316604842436358661397988718221881833244936634792457917033788661164542542746134401576387389046526457925091527080838718578716249511078747648485029911880787920884291501218006019269633772029082776329451779388477865015041848213523068081796449464122665137751355575431887432960247309185793123043086393333423216651394548064865338887484407566157657264944732857819533927699707281711816493364155075761362957514755113590213066253372151934885988850903247555730670324150318870522510524012569629421466360968537602312004530168079845906624956647586720731683520199979279669704898358234810332209476677731606092678426296405983636933812152662881775388328027185796016975626453362410834760489407796576489976287465566486124549622875678593186857301493020035183934331189697320037724812874563330914141621179679990746911256651526631598610263320457269400289596065393840213664782520426623020811310803651604684650797663867071030124388996872104947911475704558956455926179078165313402865958434891565891183249663823455468906774528659042122861529451033600699530961190388132350637732348404935269299042806390135995170752369545287305169582504837903018844667236101372982559825843263127846149125549355491045902882306298443583333427559877207193426771824180280770248423353909025915756159236858643794590341892516527502409818640435533032531436672932113029567160146698349497007314671721250457446128007368361501124349841444799104098821620236064923209727766267825650239261961537986699437106536241031469394886622838023611312272561950651729565048460821841904712122467127639305627370174010965791744368034318243627733194844615284866036834685587733706854941341902337759080851926798158700118448368214998461590302564275463653053148360189068720081598308285024430744103238521764267156574907415552707598735088742176628426019582297896677831148525523982438047824289195550889627759305920436852901686942097200370039742935865979897794181730872016572225975007612741267684800115385940756172807302802074888731486972177108418588649830321005191479593523560366630008264565106100694999512537096546508220402731635976264158662756965069147349678089102027245965774587667672882448057365493771427157408142242914579790740919389525463403990511257929263730759876262644017579923965146935272274402434860380269371678362032737184216759800586567699159603939112310694252287888646514702460281969826686233787272528360751723397131805106937191428875250806586383665637632242365939452287099962955343678123291753054683037754777038791225132999634581727220592435625396282954014802928521056063360737333839886211678941609423912858438757918974484549442902781981792888381193273403947241642596502617269515734873938794445013689459055624442141687956880827115693637581731335239433562267823840975851419622544558777102136965888045937702394971236417277362444483340952197481715573937187866526880162037421978565696054516209566159055244650620939183983655682786481840044239399537048217549966296413908914975425505473826420008704398562903324211445171259647780526003794256049111965362204981522270710864092520953671426480970272376830019126067393884084433099371914411266130931258748829140691074505398252794459173163318427156415543696058603478052891128686019538980657611461495800361342401993817558749418075718120916654815661755484606095336678287399099482474631022451382132724648435539411351069454683590796666883629659293092017327906593484375557844089438949868833887602517591854526234747754461643167013147293619524160903084814594768751318654314483748315392822260884187374125867042084644235858648442920637318043478927623094242558641411245723628237072171993649485030106677290037500548656952860623768803130488185604893737314380766627879731827786616583002149875962255782405281053767418262563086695453193317771118600744498321941969550967300048135537684105477146581156764244334928640328544458016355797977334977045850615251130522707922077209466641316673944674770127912387231689549920512497740252823962893833236502575961452454797875558602767815023778796251043903646095486229354643092918920666985327992839146689739980172706471033393674126276134093690525419535711329606585499667248833387725559046470539610403584129797803197003634318670822388414032925867634150776826645996541577306061854004576160159749703821605785461507154031038042755735702249879079965258467189266302062570591525205908759626861298247601748576794188335864233570829227859416918383277395247347717864757623892994694039343397051260815353654459335364278742135967152208923047588305268799116222869639613634023016373969945308260127795969253367600994980978430446499532041470557779827514772642871796807884350942166062887485949859985196203326373958671880932284549005696085956011198017800515392877727835169593382118542129508169307838326385821713328433450732709029554378125739889473086448869358580116895920772084322693200640886714966358816566587502599690524404406702797478764406337311537573330215087571511183611817609427521314754832976689944496242250556005910733877993102057212516149427687176811151825815850889240458345930692613605168032457770893546271689522223627407142598725070907743357850013305348530368386454121698405939147441073246737497149698161783350121083448198595091888955837928988561540360159067668257117515551910992355041879686036973144492571923807420310534792952403685896257095678950555350969951941011152416354911490194732493629504365679704990695755175728866988684064582048973289787333853770272631553027303774468729024110170176534272676002908931255350644294612723918504202110214992018453847248028491274004852397072060556566606319282261791459044026596893560849843211481026910641168981348869195151583354547998381967186297261192075806880443434057713807438519244491348507763386210337926747827110894370920503415239880646550168064358194040731232159723915771976254906603473991422790923133341317448632645534991425818522177236216654288914549923281549992656530822724614680398324304566775262247361719957695859433123635504835234293650544787181682812472511402145166677267984841325232181004903254102500555449777917690397457235362074972467773223608656480404222908679304512251422463771658347713586555339403312907286912701006770877487703336723644953756485322363354541047358597746172611000247006337919290539888758619073343180935126083698108122248938736356610069476166501086512183100638962698814874607142674983452685973729381327274758605796408924513889188785135770879408927732046681339556981066172804410586135663945334131342695165924117085341131801173876216798007964972735989910179498215780038623327692834899729561960975918279625569348655431595146766245177466416316912230443332212396921426129992527912443589184515412049549510155080439984234124161358947836383242409307542871431545979613350260109271475380616640474826289505738167126916959990661979537298287064254942445886739884475962992772899464571952375045939359938295967398727431251268794773253953537609597622840800867040019403587499355276116282244308559658918314445144569083482616917984060626770184719974846527529249655007484331230899794303844219652142861159051439772955534225327478918793854435231544660761863582158251007919109998477370815692036138698944675055187400487743641597297139043360586940552674085430218875805746701726769094462214451315160014570696235977011431369039539656565452377697847329473974544015668930165906366128111018269091725103981616356650831590364967116417016313759566160815913584892350993853452883189880739149453152130967320636313939491161075349039064312245909382641365097898198060634962725515269270766497652305794965777963057162991720323720932982120340289244949041396354104702106503254154017987189168677524557703744678624134611751204782563059730424250054444380270540995101556440328740025033827278919943814959790496253942586127338852047583506523343101406745678662194735867034596387312635639190483442851823446214938025956919577654004342659918831425235859584235679121058547603807704142815585842324961046768825678742043630557270527893566847308080709937123159949820778417620533156646058976041689847821138231758090229287179137693068532551782622704146956064109153868946777840445733355701256734162886385836811651936689805779993268766845842889960480858208150683255389509073791570851340946778516853467187088540657973191433373055783810376425249512054376193470402286673669677529376099141772789501306393948469957300431203480097917521397215167182547916009290385044232590211513520754000042110793001384094769548666052004429938052851123675924049355373099786405660779743238617947968278875144717026427061103438183854739199350852168141990706533795095328723860035036003286393265566475683932812967149769181993556720455945317136343512589639468038608150210445104465004324072657627853818229214442490302428318865271734164677410052016722443540046493261722572590735574855928162463092779028315994270446253734356010849806655544092398292784894476239415437488060973196781805500217931458785171372391038045850993626012942430060053311918989660889245525944969707470657270812338165072453747695828118012106561351670462502681058598312914287598248601545660632114897294975517490444334604374138117260095373593717918888929281973749022034896100155711933924070349985379487399181813625271619806455712578532463474225761370475068193336923508381713557068334110257437903739226309965240102500281324185481981884203415500622449345899111458326932830676672346293153699508106618479961866821777515416223322256096497623229677782069029114663861082528998228754654918797627296046769425416079045901884228580169228209512950271758129415244184534775184648892404682194070205533842640657447062273940133069497811595985492574691802158270958016953647729744766846859575221402748652194317231351301115738742522700600474154133487019062291335279543064092696150425451264740804987568931291646504180982828932329870968259426952714671300563000987287564583146587511874756049514853977524918725498648811252052407829261009786593154187503162447250189512663912575999731932510956143530353242369159655751815790270786903454558966345030139161465397258225619020295945424064773109825160802041101987652097328344141020412403337296288644682874255789907147425965903116659633764825755728803122971686103913936448359011028430343676108761183179146486395066867356925024059783884838386638114280482614311242750117103897039780987930017942613498799608668568562126582010025017363008038826255838058780678967264029456309866586518706957332016065112538164992419244946816211329279036398053196582386212939632683561237284688272963804206710666547952434509162365776978926542762803131942839414344489966993599284735923482404841219727393613835355577841100656205138945744220054704936446862663741770641973362104694136879117317047927306396307465706960490142366521428628773056174151118643725393978694707718743307820541277590338008847945340090941857343741621647963556098410028754848176410521469202639586982362386689889603546604071512536228315813578041202593927728087414266129872213693921993339168673606378517372061413405651192696010960622540352126864526795528582035110079086520807683248427510306831791688443927471189989679246978069911500479549904821694101133257595755