16180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317931800607667263544333890865959395829056383226613199282902678806752087668925017116962070322210432162695486262963136144381497587012203408058879544547492461856953648644492410443207713449470495658467885098743394422125448770664780915884607499887124007652170575179788341662562494075890697040002812104276217711177780531531714101170466659914669798731761356006708748071013179523689427521948435305678300228785699782977834784587822891109762500302696156170025046433824377648610283831268330372429267526311653392473167111211588186385133162038400522216579128667529465490681131715993432359734949850904094762132229810172610705961164562990981629055520852479035240602017279974717534277759277862561943208275051312181562855122248093947123414517022373580577278616008688382952304592647878017889921990270776903895321968198615143780314997411069260886742962267575605231727775203536139362107673893764556060605921658946675955190040055590895022953094231248235521221241544400647034056573479766397239494994658457887303962309037503399385621024236902513868041457799569812244574717803417312645322041639723213404444948730231541767689375210306873788034417009395440962795589867872320951242689355730970450959568440175551988192180206405290551893494759260073485228210108819464454422231889131929468962200230144377026992300780308526118075451928877050210968424936271359251876077788466583615023891349333312231053392321362431926372891067050339928226526355620902979864247275977256550861548754357482647181414512700060238901620777322449943530889990950168032811219432048196438767586331479857191139781539780747615077221175082694586393204565209896985556781410696837288405874610337810544439094368358358138113116899385557697548414914453415091295407005019477548616307542264172939468036731980586183391832859913039607201445595044977921207612478564591616083705949878600697018940988640076443617093341727091914336501371576601148038143062623805143211734815100559013456101180079050638142152709308588092875703450507808145458819906336129827981411745339273120809289727922213298064294687824274874017450554067787570832373109759151177629784432847479081765180977872684161176325038612112914368343767023503711163307258698832587103363222381098090121101989917684149175123313401527338438372345009347860497929459915822012581045982309255287212413704361491020547185549611808764265765110605458814756044317847985845397312863016254487611485202170644041116607669505977578325703951108782308271064789390211156910392768384538633332156582965977310343603232254574363720412440640888267375843395367959312322134373209957498894699565647360072959998391288103197426312517971414320123112795518947781726914158911779919564812558001845506563295285985910009086218029775637892599916499464281930222935523466747593269516542140210913630181947227078901220872873617073486499981562554728113734798716569527489008144384053274837813782466917444229634914708157007352545707089772675469343822619546861533120953357923801460927351021011919021836067509730895752895774681422954339438549315533963038072916917584610146099505506480367930414723657203986007355076090231731250161320484358364817704848181099160244252327167219018933459637860878752870173935930301335901123710239171265904702634940283076687674363865132710628032317406931733448234356453185058135310854973335075996677871244905836367541328908624063245639535721252426117027802865604323494283730172557440583727826799603173936401328762770124367983114464369476705312724924104716700138247831286565064934341803900410178053395058772458665575522939158239708417729833728231152569260929959422400005606266786743579239724540848176519734362652689448885527202747787473359835367277614075917120513269344837529916499809360246178442675727767900191919070380522046123248239132610432719168451230602362789354543246176997575368904176365025478513824631465833638337602357789926729886321618583959036399818384582764491245980937043055559613797343261348304949496868108953569634828178128862536460842033946538194419457142666823718394918323709085748502665680398974406621053603064002608171126659954199368731609457228881092077882277203636684481532561728411769097926666552238468831137185299192163190520156863122282071559987646842355205928537175780765605036773130975191223973887224682580571597445740484298780735221598426676625780770620194304005425501583125030175340941171910192989038447250332988024501436796844169479595453045910313811621870456799786636617460595700034459701135251813460065655352034788811741499412748264152135567763940390710387088182338068033500380468001748082205910968442026446402187705340100318028816644153091393948156403192822785482414510503188825189970074862287942155895742820216657062188090578088050324676991297287210387073697406435667458920258656573978560859566534107035997832044633634648548949766388535104552729824229069984885369682804645974576265143435905093832124374333387051665714900590710567024887985804371815126100440381488040725244061642902247822715272411208506578883871249363510680636516674322232776775579739927037623191470473239551206070550399208844260370879084333426183841359707816482955371432196118950379771463000755597537957035522714493191321725564401283091805045008992187051211860693357315389593507903007367270233141653204234015537414426871540551164796114332302485440409406911456139873026039518281680344825254326738575900560432024537271929124864581333441698529939135747869895798643949802304711696715736228391201812731291658995275991922031837235682727938563733126547998591246327503006059256745497943508811929505685493259355318729141801136412187470752628106869830135760524719445593219553596104528303148839117693011965858343144248948985655842508341094295027719758335224429125736493807541711373924376014350682987849327129975122868819604983577515877178041069713196675347719479226365190163397712847390793361111914089983056033610609871717830554354035608952929081846414371392943781356048203894791257450770755751030024207266290018090422934249425906066614133228722698069014599451199547801639915141261252572828066433126165746938819510644216738718000110042184830258091654338374923641183888564685143150063731904295148146942431460895254707203740556691306922099080481945297511065046428105417755259095187131888359147659960413179602094153085855332387725380232727632977372143127968216716234421183201802881412747443168847218459392781435474099999072233203059262976611238327983316988253931262006503702884478286669404473079471047612558658375298623625099982323359715507233838332440815257781933642626304330265895817080045127887311593558774721725649470005163667257715392098409503274511215368730091219962952276591316370939686072713426926231547533043799331658110736964314217197943405639155121081081362626888569748068060116918941750272298741586991791453499462444194012197858601373660828690722365147713912687420966513787562059185432888834174292090156313328319357562208971376563097850156315498245644586542479293572282875060848145335135218172958793299117100324762220521946451053624505129884308713444395072442673514628617991832336459836963763272257569159723954383052086647474238151107927349483695239647926899369832491799950278950006045966131346336302494995148080532901790297518251587504900743518798351183603272277260171740453557165885557829729106195819351710554825793070910057635869901929721799516873117556314448564810022001425454055429273458837116020994794572082378043687189448056368918258024449963187834202749101533579107273362532890693347412380222201162627711930854485029541913200400999865566651775664095365619789781838045103035651013158945890287186108690589394713680148457001836649564720329433437429894642741255143590584348409195487015236140317391390361644019845505104912116979200120199960506994966403035086369290394100701945053201623487276323273244943963048089055425137972331475185207091025063685981679530481810073942453170023880475983432345041425843140636127210960228242337822809027976596077710849391517488731687771352239009117117350918600654620099024975852779254278165970383495058010626155333691093784659771052975022317307412177834418941184596586102980187787427445638669661277245038458605264151030408982577775447411533207640758816775149755380471162966777100587664615954967769270549623939857092550702740699781408431249653630718665337180605874224259816530705257383454157705429216299811491750861131176577317209561565647869547448927132060806354577946241453106698374211379816896382353330447788316933972872891810366408326985698825443851667586228993069643468489751484087903964760420361020602171739447026348763365439319522907738361673898117812424836557810503416945156362604300366574310847665487778012857792364541852244723617137422925584159313561286637167032807217155339264632573067306391085410886808574283858828060230334140855039097353872613451196292641599521278931135443146015273090255382710432596622674390374556361228613907831943357059003814870089866131539819585744233044197085669672229314273074138488278897558886079973870447020316683485694199096548029824931981765792682985562972301068277723516274078380743187782731821191969528005160879157212882633796823127256287000150018292975772999357909491964076344286157571354442789838304045470271019458004258202120234458063034503365814721854920367998997293535391968121331951653797453991114942444518303385884129040181781882137600665928494136775431745160540938711036871521164040582193447120448277596054169486453987832626954801391501903899593130670318661670663719640256928671388714663118919268568269199527645799771827875946096161721886810945465157886912241060981419726861925547878992631535947292282508054251690681401078179602188533076230556381631640192245450325765673925997651753080142716071430871886285983603746505713420467008343275423027704779331118366690323288530687387990713590074030490745988951364768760867844323824821893061757031956380323081971936356727419643872625870615433072963703812751517040600505759488272385634515639052657710426459476040556950959840888903762079956638801786185591594411172509231327977113803294376547509016516949650991607383393771583323024570194834740007043761867199848340163182600846261965628464911822568885752134637549025418083382138352224525872678937950537591560357945469850910225622545500301757104946983348354532383526078709221930458178230601237075328067836854130658463678886643348624936801019878279963067025954326513780600738639290856483087415761874189734584845014188976529341101372215864355991552711362332200352667785915989023144616332102651966590763206152438374761904953158296883626504209484010565458913062982771724980964195947234046511041982134768935401803825695495628603924426415986748598228006035386283916620125282660749330619658496519997941939322601723571073364253708303301143362498575363597042444647599899995085504135497755858593457659092653330725277541675843146693676780617035012003844874883823376034407751594778122188307090008738662736209166079905022698927032189976037950989059108591039296734561461070030458192127389259926961062116764364243835014102040863214991781529796815223798322427375365700855346997965541385905032683616022278847554706269843910885210302076860470680455684656049168649886061622295232390709809262930233795648217998163264582788887767452084637197106347892310667546935504761519778169902588184040792751090182448278705250597698375351430622445090220238243982312550584162320718831930069360646468209659500654929010971618652636721610741713618377667332797562685480124565768279031760394655539452314338756773034979157858859101166374845567584795271391860878254010423332985744274711896961048512640197504359909207662155899866073683762318835884508129295011466535482817144846405686524654090781547161962578446957526256945516560151916402921798854890937328031465192224759003096571549050536104377686877261915952844920464786897347370859841384513162119297201263424077369454598186502965923353451256845497454112981973587667072860161605620423063606613028149677344579773775055756466547525632264817711699785708712283154310456912326250349768115245217449739613674882204648051968875434196951193312045021605142938484475452382127014383095785581361967830231068508084587695205905329468338490471209916255636503400343967082893369836742300157511738515126912306617227641442160751291734187471431509324192491416096999867281582385925735982389484927491964615227227333874631213843626211637946706203263022505548958057308375046129923113629917306948940734258831948399927416395098443963405763528471756276219278652253960872013108048640653439616887545253426309896951761901977096319225870934216595597447175015753837674152228057065028068314335652491719973335840306415355075911597426436648284662813680217450590970589460274429263222221545945075804657120606863990430823693969320823749076756119017156130542481331171524256847846336377001520441791650116823257523616049574970639082244344451035121904881983027600176680985096524543900719909803499302686067552387968529219473239335237008665022140746455403722234348167574937314464092837900653919677401035586193618156683661686489239555496145282647289499416061580304586789146197172815545110005666054249969197410279874059327643495371452516769462069859788094695017473022841427571887194092120913799405943037050436483860043464522799330292390186592268987499211325656055784014233542605895105620369072028939315920440476835927636479960059640486076198915929819495087878602766345990540426377004590080327943472062982544525635647954299248819864613617131448577346995347557715549138423928940175403413997384616948129347924223460974301962752301382860722449638095383840152656781976450758854785515549234523478164603306293884200995080326014091830257438577067102522724366690598890854501557075423031666592472352892470258862479488754625276572728515111287827067345431024451523345654228431103967952829625019369893998347396176398809573541526014537296468147382184360052109947211941659149471670520379225520963364584846804144778030216472862399926404836350877374782450163820089524032253437992579012926564015553775409175170441962728503912669595666487724296766036730345366873404907914188694521471582790815723396912403998586939085517307980195554612851340891206108401221361707057043006056924685591646883477332085689141267942844804138468281325692914816010978627269686686737391711893146226913489458042778989960814470952476290501926031164920686774331866154696689660182266357878875060885624356267893279735463390418210877463803921624477202567269959639182468778845549717903851583920474831990312762243706623509251877543414010711233586590774812206376345901988422547272765529050439950252444039113658267081330058058820946031020826134136912757293699289302996173089284367031523858975398738893680744152637379424050644876417176861355234326986572897046306918017427797217388985944328485205725758833756382015054672065167425268189485167332804630764781329313260289322936604521021318981298766152624448748669389040617846991666541748508459797014617821584501491957210982508923451747451225432738681972586494458808377139868506598408545773165416917406705211194916628633773226375347566637002212032752438999773600607404270297220363477804829883485518952507947460551994034011077116972564426100509205984336253584706959718576261677663021174787834197564450183804102920324040882661734433909026352235050682858285443283961848092537613082011562686990799911708475558698215031007356324042198856958420068243992695378440320222237462814765923060554747693683057654967769047115962550247450780962483744990802561375091562235908101053449394177429427709144516666870041522854463807661535114155648785493601138747310382877331338839170964617482906315678806518276176579853502166599860746401267488412113009854993833710603196250670279752431011937733554853701169467485888836308033328773957165627534036727218070562256232637414883349928997025897729922403694175074342731419415743246679457858603989407509735636368881567215967635438066559393893438207598406121606431766442190267777379914557994503146870871626622652413359056992849400637274490882163524294802256633045855363633725176204907462406293896239062203042487268843237763173357420575399757437350840965779218088008942059066257278230769278865644556375801266728095252737982803007663697692816484465127747382239706173856750714669274822037488112256399407522762646499465846367401955997370283839311988482233553996497833316500846749125452295651240939096378409541690123467537528013908083086302265335238706927307198465464945497910113428715463669554343746215439188652608536697436653058856216441164806891283735779434153060947845727098703797692134620596953884382676082765918177362766991872780375421995417242833579106452061373688470854516582219315864537701831340181882725109992291761471186052917655142288112356621724169268062064884531761516427295358579837541237587610041547580559573012245927671189527733382335604337420132139280431705337946364642835199301457670649184770776895988542164797337176962594393864807489363320109889364352832449413256931743832350925828642127620947343287998438719829162503588636885744089609161976755302363614784018627182770889136039893307729306029671776025841803013347547440609321822266207705984247608263794138859860193520895982194188572382371427193034935451824011267104607309741268127907272643868568154472914482676138994509206409879264769257469881233464299526730823740572040614374870086704861259959017842497684584473682482794782475317633817481479957103120339634522674341512372232245462654632835356424662778646083987217912784308964163642223715282219986085060015824516947831892606016582749114277493350286550372769106810755782646334039921922260220859096784186001385965387726582624465759769406924054180444473847160790144974301805588933762376129691822923476845375955646842112269873163750624997118229148568960447252776009393434355833919516513298562364589314910186084968348033809093273626106205479597042129866988357356040434712839980124980220946685109349040787845010211768427634507913768760974690066575968304351926667656396092264884567021285074482118483610290768919649340230064175317348391475891667202306924534710762771979252499732857689038868014178031379948365108952722094659130450665665825853917469048687264990254676596659916454736513425975557739734850652843997738449051390582943013000836696145566974853779340788127721579148721071925886908927787873298298221457423327326598798275695089884530624022303648634772296705652412703588783028194007498057543901628578674553132719765260710764315311239152607721936214434609608975872693422367433161371857457760811775151806966210479558514013006970184500702629047949257083712017527937855495762739124558714833201017036184052163681801734142508980616063467633085050418458581662933409347919910368591305378948215865170118121011333000669577523278668551807825675283614949492074583733684581369140797759592526727396642347874661439981964808103670506600523826916505514463471111686742817731950256064295163795965947564498789146144692593662930936480481617405980821425434052521137133240811391357997162285810141910341046056929078249895621456004104569222141683089323666251761869627171945385499855148427517336924120268015992808320145830075448474233126438780847808505610430490999936434590519518749484369677275747335967088334960915744743575039860201639766611427653695267044115520019391484293460101512953117445887648307037167739615426559139908303757766302130990871271988706903293047012410586150639985299814175780430348080358820320201104760700475571016942341203410891564394782530316459373043755819468675253495323013027678235356011664131117799609979366204344956968354793075431132755864318973151517106443218924979327780126496476447546707816580740613125937527184740881611547981830781675104780929141395456463116058126905175395355691577558041067198123163840527755605227222376471188323322309958506897101871750478190653349485842325976225657584189852914471783351732260298578629294346505636693216262767381624595741793269889232722066663608199249098883146852994099138673444604967084244297824363023293891035596560173994220198869025724547140163300961214618720836510868818533406062201709951582707044233704218017669634913369599606432200532887349489313596603042438080456594474333567831672703729636367594216999379521670956923960576846412434754288621624514915779304047675334805303315330752154152638571052542209093772873216992199375507808872941102597603937207949463077381632162767775823154551171213360649644313449861301469831868611192986899657750378451945185472416220697613088630700071044963889885834103355550285958022011365854270555776556266893128476214953628830759291650706773506692535264469533605630110068858560930553314230646491157743120341826640878464898983343645356941445135956529994635319487323583365414991209186034069965786513937214062783638508477588719935005747909757557582117540535143552386663933161852370520496799125118267618008071764955566188644004316518590196156735527060685143644219213731610020498538831198186496931519049371921627310279883133775926877600267599302244405536314201916427741190137017541517040245299437951529236216669561923138293699923701939853172698937385991422129038984861084926747138259210680265055067686277812334573395998984469081835508009789883805030757266290867502830925758614563878365629498105357359291749646162313770780299654850255026431097793473733752437948325269965121850099705553085840030986124673043292976760819735349213689500849528664664083872828601670868354976512302116930805643687238641164364544895516018971098452249187837989096657019507834435905191227871275575773341415196573989983425098539494998814124386783446487382737617054230627047654731826463109229139335961869117977283179186778926642805449809194059356299841483566584488674168179733816426574010894085949130007202158871807825225456639862181398049030521641626474058333537504000740194482254279993710648491554051780598067761215477419977986371595520282750441625952137023199641559040842294537084505318233906957422818026742093459294317217666470552806755415269293517772512637399721044645520584157575046484945382735076490123836824504224062769229345994411749689347553263282342701496821698065455317255239800177205430712701859568436956989682160927438147752486126807182630330872045385865558768981122217545363004048974876899995830572648342759013885847650398193058002978990441432073797768415803195927087898620368685056742825309261613990518145908995638631137557971507261529413031744549240214796474600696703127864301901882032671629821211425236732090305576036951393477492272196252752419097926543582705861914382623616959655457062043621453691482259310567136876211202041821996700458630548647143531987653019633077769028567954324203174869542397889710246686325873510176048185892597386644181456232779945730095436741384131747680553443799013645532685824767493072220290017624204572899063328853990785109936309835377769368269912470528012377823241144269659139301639155579852670589412792629949943646369447012495223502174683217588847575534874631318516423179912710067113699014422042406407026337466606307909622448910012952295360403668628955446635423755484182852467561032470681248302492872525386244579857971959341054060870562870604429929193337498430292976756886861277497404544596676490768923386619017532331747049984158397755595545146651147250879200087660035488020035434161002030518353605502873815042302488822420194728934071708580556689794319557157573087111975137463957108621121487407227577603263648266509869207483227809353713516402089069867622140647013682398254510807531771186322868272763378352821217415520443340243570082064155437171634964564319520089264597602841430519829698823569511962104815566229729558942131254351521336588653292222429045620885074161077695276461885728662996739124102792034674590441155024272228155089784892580872312307485634128162565972301577855598002811368106635689273970968221169107515991963438732863262920150871713344066879390797414746430797933308087303569871931789938125788583061576198397564174362564762176330987417058805999965280146917228737151809411788020613827496544289659260499647182195829621467121208093964434800407044712416248876782315820010587856503237809929041755371805748914030024288439177034604898982947108277057789281747012124517625319091840930716296462281223680297332366612443586933117516966634768029462920852203456349679288967043930780679153784875085006608997405328784042208861093354398133212581232308361124440821151281651273249917530640795897887201891722073467939503296913126882419421580246056924287017821848968903809409746160325098497956101067383309908003103061062327328071910393385789880365322633128858758849335976469965590478534591797651908013972654581248095050287427962126428920609671592892859666275191184551637126198051692783064475350036739089813871196271150744263568262243430109963230818521128209486054053270694331365502878232501242669609190991332699437370734132107750205144626470238140622301258549521429930476847502258842909446524247120601727277293250588344365110452973847393594207262685238793108682903080965559559013456239554239285237931188402593500525348153422295334780355455977861008698531813306257391036392353739042835658613135128388452273367498419682255024368511493785527245217765595687762409905302625613440810368369543568085239552305262881509505250717177341555031387763911931672066190299924443513176141601484317262844283773831944689986306174983428240216193027142577057676854123715871633452769345199042735669354504037525463905078747782502540828519116181960611900665979295908076610721073252958873241805703943045859290992036451419475228357774310243483707649281414271709919012809418818514457535960087874805262121228996621627772984862020171877488369104630290566741167703884968317866321153511956045343986054020293223347161970289098544601705283098247817743429639598947113871030561743523826732065012379226235379369672525243862612822685804855676904651384149202175335915615324067367968259928137631808487144047711860869781970302767190801042705803391842578715041768238814749077317528795355505823877498417904009039656248835439331051682726416027167460313944021580518604797251007423281044846513212664007414880698420035516626684693326974069220264037350683172129899436237592649965522768022938981200372573415963425635415874121997598777357975142364675165996427364362610841017185526686797801742534004141318766541628484462155033194232630212811748085283412716041756342629789618635921473287387367269420363405259673413881183270336271391301410777728701625640766939427662283071171184624298272872302147026763353889116701719310504392825831053783052495390403175874293993539406055814751101428693264550079797702308978409641456191125718806864580525615963438032487811639917428203773368847935523488170788837009813233784267338541564616445017139038433595238203952789906956615830177685319382177612963394957992303297948233307557117145773354542940481806765251622317125245743833336774488783886952576714357759105571219413616615540811502112893050015496439756495958371695304000579823592594848131339422310741764349049259043964198899733995925042405279441845313507242026614540025633679023451836188672769729052988544001230943520984527859433338277220802566522784538261419942490050749739347054906939862405330736172083248025167237000567494592586323485242863167370894965602755457044357340712628723724610156571666948662865823389675749344743905685771128256232984409312628633912256472552233362007583081457561147582394749890444460343798251874970324999208142880115737873377219832927574396780191032911647570790390919017984497296390501828617946437210922703033786560675095110678696742088196344199447764889230532436990204662875461679718937492085329215742500061284480077428158743822431740125644766806417187557851782393913855113734489196723682960427366184832102056065936553106354078645810609874339774731407520784065607432490419216303890531280167770458889299010030544248443656701970524526449452389484606160298315711471604507963704973723574883890328765099799665307919151526076610105463468209502651808418483229626652756619312852946049857237440375316745747941421245829303982500644305157577269491746318410901011096250269990366449544054254214293868055971063646758659751454514993508583817029855060656544656280193213970560756843663896781237680772591742319198147005917044929250317068935998761041497197336635272895650190248615795587743969306899064213565171235282303439331296293016180944942494644623363438076407761028024735932555562660115058349053239081945710178176603081032181108412328009801692543612912362856895753537270851504909231388605068348506818735832447947099883880789859022486040214596113683887001611387935037790282729603005464884896821881632777957106787994109975218711537483521169042701339747370293549210893427286160911127487656477863180582569459349850684680486189269143105401908574001462136263415076512263282705965623501334321745729576325102959946605873861913936492082908252133831991263074463528163936010741290694028223004145610770696912526252245236711880066545422679872506878001262207627616468044805257816665965828178794629908844247882324989338548982751429491041980712786366033855243152160350334328072468820421698789125994928723555714525191312891279148833737646583361123470469141947226653878322593780173589431881200932071644416096635876441913565039121003194919004730319595499700958454939342793394547212927304091989744259215893254713943940529504150389537169013069920396918641952214603157754258769043338985619184142040090983623767467943551928618005762792971344193888790328742818869170224611291209633209749784492776795979270436724734532494113863264823121379539551072592526633531931122503179850473564312323632098160284428498581026876858872578143634414082176471020866006972062413625919267407830214889065910369016336438833728561990548422370859643934634146207822273728845324182748331185977000893549457294195025753915630303002869634489417041252702469612788150120578107971880718275835742579465957428432421979036693972643462404243653631072930771488038928803490030396835887960207989116985814953575007933647012553378426279562471645318803804928275926653118052072266886516558830094293667208832551475104764796847950857788332325968146604639970243669936110061313037249796831062198017227753426748553750114097426392202061180223788359477623918833151610996068551562625061170630792213501790127894834906109683201506469201597920585854434071057772683921784546661980105866164638859446606601076406827643705550820668087632970423584941998214449342745435157942032304767005515479430665599384607517754837127726126352501352624793675674521425664571561307364117819492315992343931738891332064744583014966683422473557050664664430365682907694060260098073150314951061922940867429068625531096572713409756878638133390963594954106890321634462152953040033322049146955596138624036850571090856741959140110366444230653147371405783455373994511486742901580493256130178180797433499281147683189319871954946103410596383961059027908907017624286876678484019226905126710160713287054855935526082452158289692188623998572431724147068448055558655408755011351126460014833706903125328126278285455629878195683638464956936578492639979935795160211943568118645090718250483780492112768575173726038399198518749966198738961724665006847196915888349639948877609165657982320135328499337876619045216776681565742157049177577108786145871208017454565049186510012820264387209001589243818844702814038394020643760445029440842037470310865662269662622553981780182455425818698039139731229117373038044488181036465553687136746909757180313788944328041575716711092046771062643156810839936887696663716800958392169686508697362572285298003956545082276483297038165285109856897397609271910084482671389275423552469874252041707562213675148830515349543216419181024823042193856203700606426698413120499567715643387527431555234936465615590328743497670552394704179296148698469232522571122576639701764866203782826086364991746030017983710045416998051145715137623596023978918090704515113597363765005894698617062115288639029035854420833467217846534535212581998996264674478903579452881057929838567339157726623382493763370199054130363761490268837579723383266521356826448472517311089722661753481200893717401090432306461949866115200033585295326424227221255614554364840389957527045610934734239533328428685393356314467624434065667942998369864971155692528039569675738540628826905058118778858503400453743584800679458390805335626541704850215343298698567683432057748960336713770031773707641601909956791539735166356364431486639790167771595371713769961060845752328123722975292886361653247987259025087515882604251039822225247363001550317297475562913150202757891693922370130249990068412348913029342283828452088063825830257099329614225771469058313817988958265286063235216348407630550584381426595486135098243105737366985400042393106231643674219494169161415326551336604294968192895748332587828663009084764240461148734119154429152877518271197025072176965155272679967166620191010912629047686954009623003140524367932207377382169349131567174079797167381032667886952155259060975637858822515686313711661677109516513732598662807591916459086302252448785388169145577283749340773399833237062669802206940095295861169432517416187061017077191512793803113824872062536901730312132455720506578894266104303775290312481856122690166863243755827489741958686520808239438796688174701083183494885375114179211905921898660494549455168372874675070278678585252733491971129971881930897687083629456241279769489255644578404445923780966656321806276646846021209224309617890816352226213017565209589620493260082547331444074608918210364404485932389724034525696409403768332551877896586102421282513864004501883718910871126354058216180769590782984319416599878970771980773102512502472052476475543788042317205697944981764289728010958496048969551765038802909479824940890619936350909368700247765227573868492650254587994980706950841001893133606949121408195609185239628215253692236333674074747050909366581585920133810412197284860918154311564649099804495079580269640481587091962133735172854341946474533358861528864930906727921942924374739261965283495745599112160502382840124020803998900895821817098507669134913277246474173745558039309869194481312713316514236926008921963758720749146123347951345295432705662416474991433338383071638199132533883518859838134812381531014702562660703426911267057439941105721240373629613570169659229996934456988250968894333867889831091029872175335807091565566295396434740373407087152322157847511317887773339710006656150625264774593313613640460872332629802880544318469132444880077751575625642133097357035583061711397610785507498256067578229214613471250369005152141209946702853944456709859346625950677039391274236038275341488014137191093380000199478940689317424790046574086000748362337910561618848293126622285654029796658764804320620050746284180604163833961263738695213620588697658388399384527694739495420030384896862698701812072359229624581650150371495154436979410243727033275673396710549499111167092678638704453297689126143000878210222216513034664061766782081493523417303350563824992857884922386219770809573116834012716662267629498362279985467999412251958528989183456556899908368669289890395357595593168373865038444766633809660955807370230287954822335862644512485700222219830785972200903913679083220113057253109745993781233065023073919867756054057957494550452117635562187294095704846126273434451924898618254590896513904738778758634845022774228403646961915916195394461972066188298121567050233780372616855258407371054390581899628406668954949336221658047307168277384849625669219010577627083168633830178181914246956184295198324899147889712960514846718092982558521670307955569890261433699740695397425528145950711795934003775235442864294242904548749812188322175342321579432714712864885734959189196070986667261973108282449032268300396262217144701071037534719690313387406487690666840641852692944053947071530326786750446010487590238500477365210035045139199424623299816623178150912110152245246443637679466853519231965418233606893115636245796831487408713177830840294805875246777532479509360041307573926128569418124147882968323356962141799876458267103613122865857861546538548297185286477760713691684619091155260602659785506481389662620519700563105104288552179754479550532014820381430380454752924593467150190682102172490445698701621020998070640562295529700189939288620471078943942546914635246899892299014309836073441443239733482844678154650975553139711006771523809618486513058801595865821295790857748545236499379561692327311209064002413068456917089488295080792749349702799547901767078060060174051555872979126277547156834673130582904722810556727513584783474273613909601449840451751243201664338981832801725756162657193263970078839399967606099060980326752692880322048277508428039079145038695132185746117106167795440907103185893585176586163200932505044981523605166358719235911591752862283913932674124446895590058579228539685112736047624865650981956854355372225833659576403008258767608032769108767481249531278498114875554707804659024761017307852241689171743233803385766555260495104664866797425184398657135651475736884497448919893724115903318837011995855123694238906812919888421503703483395169657016741727094282016699816388439095523027600356820169590877639883042756013235376955920065781395467261731900303321505334068467257541693231912143079542174079704875667888487659119532107831266533081745970454637180338613166068914051122714709212304504396701176879306684119300668297078530000180527651765887467827584698411463101663955996494696582108546049984468751014585957813264972353766699171232442901614865781979935271996467416887584249025953967413113920968821596793296743285282665647179106573996685577171178990118688332951756202283573224942680365758170624122574895642442131866610384626542182002566222898590786037219057032321501889928645967212304158653648107153553900018464560840649372414153894543198630576568764337439121849090355366210586351476197505620381688143522448199012482920599497342603275838039091254039915993094743060348666404852801763480131391766854810069429776353460698086913197215791087870341104436782141952321709875130608554643748502411340099298719785789986241602420928808613341163245500445961969605237309031646001303980094046742760590833907086360233139489933496670856898054685771737244599540690245069483244886448108612378150048523933643664472363537763306798375376218790691496851337940337287684246442009085735502731136708032045954476462096664879858808856990926323906821211165269969728372584781506487982398439656907519301143397223081153046927756707010221016797133993519464565711893087420385435623782805221559496399664031452322758057818856601945002002402288357582369814358462929002525307915154957833561196927938798527254526078214898835873006720083451607781100270198985794053212260090913131232592524733666039510892239983650830948400456389253996179061301806127296251872398417832720405015880323488693587816361485955521641583554868513291722723605106314877087970141019409681105136501169109586837208346808202253188196437062407775854789975646392922230238874324002882812738357761934423517888904203438511370997138933511217738167030316865133047090616418331698982003185305727185010509060029614272940854582328197376424550503527467732740688837410831267684934641392316599421056961948501000662952969627252516144555234835049389338177431755331246193998282086952326148033387532814052642316426992416141140801620628324012884628493553426235763066676297204865876182564622238961355853949608291438917718280844324872523013023666896534387801860036015017164954661608798050815552070512961514627070616012412936841710980627841370677230198796804930680022289590733922552648166639963593764113610155182629581706458727738005382289504640761500633495793355040371855304462116195943612810726346147351083976749334829238506859980703783802530800124208668175019990057956236088000847583782922590351094260059346200282513418152439155680534317714597288325092574761517832929779341034262755032826826651304474017675443087234872286576774898069506115974674987958557581883875555843331682103956006570235203519096300266376477951777307112062719516668463187579130003918479610437641499459959721266086001281858476027870611299519961892690450678121928367727436060224971351419952146573758956170350155282209968775492109794295786095116588585914613099427729439288611871417006309391855092162066906381636337122658481929706612910191200911796382844357793766323169582354086426100681259070970232866849936360775443146143364514663920010044939872091380529228298148024329152709948534993679984468736952583259459606199989784621537005809786844418148257173318730389251828128508882994710069927758073350230015032243494269193589224168048609043078444818279442106260389806105480734413985258741006101904373189940057690432429721049359140787707193521274944657774490105263381904274844097173311634172662552493151710861948186476413154273338223002105041213461482889842140393695115538304634359163583207949736032467153187179018836118347451374045016406420303960890846074009943443130769711065014642002401006343124540420788879039169301734000296671040360890747240253841811507299431495832022356490936408447332835663512233550826830123577878005914910109516401438316216889014076396178166761439229554579468720357396896968396131026872475629517587469826607865241504487304303996161646371802940870825548644549948340564963220910317091600894751118855306323547771971935884649885544269606289350524688001317862627999505337778831130432218394381970361692946234659746522247907340158727254771288925581074829942678870693425740477858657495172247436917779762089429172524368304467660054299245499551052486459095507327024281309888917386244230135804171457116868102069300843213786412088216525085638446820283542607962237810487930616096212090054613927766284127347762313283548217218414190574484518193975105448786819898440749654891909855947196960185175822296888754163334752240837878973577304790857744745561283282160215540582740341316153770306258683499805523904105340903373881109789265849325250281640396251376072563377014606916706653279280422764040779306324411103277569637429448449068681812725748875251592950772325580522895174407248344125099712404424500297224156038994555632241698524677647935458817114637249456964504466438973160984592053220552803504270871387036585453283986000970196681507558865020301022253504036154714430721203693981783739593200559338447809975520691405267326594531046464303453911717052806200138234758513723673941135163323513363941473112172189701789435590386337824582023808519785409383741389948250697156007058186971718048887718730556508219903265799167099137599471554888724904971048809123336159681508665453304089742091897263038797922491719593111468172349769706092338990978026500999165639681359156124116763105018106670607433002621599379513613808722763019013800846749797404532680808711698944982840164155041794337880621516712224638441833927436010122623988861431563164044877856977102275581354324216289666561076653752758112252996785880483784302249172293830755932016234042896592090259750175499232600598014998331928034765597545301879229833608200771630728250527565354557876479306015271515971405833118808720370866805625129230582110917236255848862384589142656807630143495407417151709451589287550169549911184085817822963825801094598954059357009441108406383610545898448004336144706220412105366777978103187120995518784148977346903070149408278164338644798781354192861968656027378335106301149521887247739988144258069772011535036067045449708733199175127674786225751267300983421285697514446440016467071973595772378288002844337664946282780692020592871779075441764334958566812302252368352395660998242076749604322787493181086870488086266924920857392333863761457256869505838597423808293500777735019650717317862444308303437942669513152529986177123039663578639354047123954825671210606448504345076255493248893890903288572354049141675923840595772679220222242633423376755578983631649836939675433647916413748998252872958619535940228926684257427556329972875638970721880677771855995940710902833159737895200878780400365609088986735780286125513603609331042459550414471377346499886854430677426254741399057640418425673073530270579528074985560135608966793742559382773677017088357223900864997304178966261635783222521057825764927373901398501306146816884933931269751410069026203374981786714605859817754742826996830914240395873125016833186296178972382201955550366913267157640492813251028314265958388458170646637084383379028433197718571653149004605647077276498658855655576828652290062938623312024704482997659528190013410321983058499988955186102430476185982897971452332214042429967054940382431520566277987408764415637898582291283727808980893423114197649189460325671091481080222612047565783427803700087314314196348667145272252703976920526227420342658104388449541450163391604592082810751224677347342193198963833641337339037752731499947970212248563585495892029403419417836398606859991271482709971906061475120632952605658430798751985860726089986829760873895600772193888400705777520140794339544010013303902760270691601824042553474386542235884935539188149279226663534455403738820507031119982021278289695096432461774503930138467958237916677666000271187672581198961029788697385704742296809864500904350683588352012903824154874280632703719531023131695143703183020797365321227013206229613033295616494620427536008614303495674343005492282256526840732663688870270334777717994403332857625478497177835397926737114499816333972617401472317832510088993200068715076085775753656565612838764201652491343535402819280251412769300337485817876593780160984366282785500293517040159604056758105030458391977361151393097287397020127652475145015103195531740944461907269263326163666507499604017837543869152497314757618362683908337505110150346234482806819839027744138916030448045801782118377893932092260327135190891192824461337409786214285321160005558834197588888903124881906790970933280991539896072811527029575353625981000532559127638280557306554346744656668356477471947228316231790667273618399322310207653377418771537264701985760770544129941903938542768313413248799681536704827531869628761459584224562043589270281254071358336553085939710270402286147380587532099070151675486037250282270296837954843031502897041460355934825812859405056820830139297432160748846751568600895538594019665920520278574487272958979575258709305593598316054971219416669291566010913222614628836443840245390060378025547779872904816227564301679784687034015267634752504545389657028584927019088170290189391691883279628465189649434064158562815668682335981052038520955861567063600533184225615186379815303756362558028881636442707241269534874083161844350444425088853301809256446160999609111395181443026848908965891408842756955577675981619563097334623730075104558200744328154687585887043783693416667771369266338651895709477311270937671386821812490549637511720088172066967580084975391251766584035574755980140101265308114872460715714135206212607647781623057866596790928797311837538371564923372313361505229856902887361160914829115152230412178416075100949676913339882703426191720404270815550655010051122547619919509639368576573744981725307949569823321293653883365375045330697424499998517088681901830414127264443196186052118058027992640922345950827800013624848648328288194128004215618009975795598685381444697666196506241819058985155989081911341603552675005908014064934446628710444178151594265174918622426766291385681077348568009831636893393976635553525066272374946558031433786098081247300284863564244343861205495830863075708006028254347059353867075835206890599469148950481930972906746904012360712819012172105119242592554425134366429473863597719426502912714189846518723384121939814621308542645991658341489684956036057760447234638231093714993102211847567347024425257066975755913444707300811680492888860134571555934423640254440979767463490761168406110652352333288486364397047413238488654158150197004187139157066467835699468138534917256848589412340307996469616506698781901349501067520842584418054842892636819147782378179677652275917527696245510763010467574855425051019386538999483849824211403831204779811530213471388372578610760142767617000705398504610836974061737666314253105824643552551498928053155427345018006413177557019201054102558470960058604017611950292537430795644266158511650697308891446573442509253128786518109592893270365089064912374061756191040058589752412340869779678726267860044012980219045047662490364895221851274390747570581525830970958698348215272880427167731387815805241413939622962460965228129795651890620984475517173314120771043320236016728907576682433719081584276142483349201440959489341374320040023152714684158071380637773648965875675091298354039995657542968369799134505567090168799995209700753043920225335318925892586887872355986992197170155999867790781727383331876952731072136836103775520884167140178240541182571092137821438501459437171951751548577702271714932622548288464516735501551164714848547302938791348043478390911640039835440490411322068605421067182533986605949385580568199749886158186684544446805613138211302183789416979739007510756874963986388256526500736169501202836585947936525853391560666549658765308194907138442039935586868872689176121361976109209390995036541611522538760841663244547732332945383624003717655644343139002155032374292897597902294974102008291081686785669447212896646057268498876753226465104315703566727428292804578704572520572482661749142246061971251449537629463863092413638779577897721353869005334312647515087418638378428251479072900176064646840114755330764542362346775128544893883335325236645523308177539589102137399860832934581068591520274457552248949735993580491908831992619676774104465082395819149502395191717003566410794881833100876208090856686573795073799117434572832304921109632804573910493603227149950785806612890278711149775537500211038590763225012632295682650014830069936478223275693552336373652586804342560251094223966273820771095186384015226136853972145984423947269935104863651831567915964000476796289984060279780376964656519551063291282484613855854144949170087817667433688922144831585371353811720242963011582747854165788719332138266509898259518287643191556114733889567210140372115821109132480468270238756687343338900782602993168053610565973867560327151275424451163099341885279503503692202369670572589397408064831759353578603833221084020148954664420396229114328259072329199356378532927911544004361342016057414210103382425777356025993708375456011364413243850375777553898675571298529379517135891308601635581160937261092498117851715275613151607598610427996808903399517122420367593861248620230095411334656360819386430973716911136979496943963345597262760054373853556286865717358459635123774246170515653566182188622247650341330718259383348073849851839426724307376094421313947661814733927273806969356142804226993735748609974802988220310876094240890125415804719169799083262533667281400656451379535171491938163356154553907845647703278076245037139133515314415469187822438622602124034161019927076667566083160279391326805253977317680685519016225906553114795950770077560144783827799334829153128114123886425594190098274702505816331333222109368986193497705876571576620926462990673860308555749692722377439984263674045781114064165635938154973335557251985882047881154534637017713901158618407140698874377925150125023356869468206579161089584122190185854952577599699084354756593710665410175578770541007690861217172373443729091891715359916031817593830724390867662986619932043290657012762166246212673238443173515592651525073755129739148084006695324778726582588282448342101012292013385325601787870904327816104218865267619758168628674898969641459060767323756837951943768633461988492842348766378316741567348201648682980342375286931085176896210543322333406874961749260487136130245275470371318634409315522007082739057017476843491919032956148195188279572784922557946742076507910896873336917827504612961328590837270907688632203831078364752332409648833820135837083967777044078294977668555497346082201007311257726168225464935581809620361594370143382418323149323899487159387405071205343840756908760877402257894781956610012769051157442485407462358734248315300970324713093086876477999044404389837224930054667378430406374638534802082030199292920596809179348938191280801251209935127658440945521547540545849579549780740558342516270988675214614377869590845104420393772840835923262347315690283494593822070917454765379752956245301257270042294063770449912988877062778603997098419603914367995746066746892259527186708892497383610281078818775440671005939407246941100991720888269882310632687163459622867056092769361365975877113118858180545558444082688206100097870305743986326535770380878184552341966585979958798003258221076371600043241984809140112134369659027750392588214151737480319283874490215551822494767470336974538000127068240240509434764407279797462503630303681271864655627018293649275114657923995752351593954881345034553600794875595970644571354535865018006043425932786979209157237721203494627274944248532882679810710831899699964209443666003075848048178997670876721781151839629041390839491832233397849187905023830079310963440323813481138299998931369384663115311406860634861439496146652472374716249178672829286474202739110604145706037212584607480078924134313360595226648144713588524197034474205278894894696663511323795978504503238404511940224948150911523393356274479523619920949980764770992108240898775289794295025357345111596712903437216174296011656058117395991451841364665546325103200803482944049562625138146520577643940386627326967389404098219650289948002125137392977726556605298201150640210033749641320933241308039937374544650034383611244474927674686218432828501150204766766400606761872757612261995976031811524346237730990814031484286744130721279072921516474008880576357571671266715374490278245246999647753420312885172651477214065549496140492575368794557859472851960935279617645065224430961469052429880286947357156895841158288165632376451124180779822432631128715580727956204499021040981057748554482247571431586896530376532887327797094696986464268366270665540377829111801636063590751051107107043477977826467725729098507955687314978712680553117166162472804025355659802017086630736891828094600427232226818505072498059966006829685366544279496406965951982876366515308091688716596768948126012677198546118739269749375241510675982849066087987856033131265298026051863691283952515165826521211257540709373399664913541548770971630520923436675241266392097708940968535097407477719849933584052868968275217769510276047470013391754330091994597929642683975648421152123220384127249351385866833152707196634534008515396228165423051598469402203877176875135511593424379512646897987709064695668667602539053907591397853601960580923378247785296633235854830378867637428397247951888632554042485552677329061178175950206710902731763984142428835838932651022837151705420581310614074407816211756720746694490294050746018964623830413330993243081350400760426144957520716752768730220866712563406248667061705900491536831889156163269417615876165722724502690956044221029293264705415407980985387296216178155463849850886562501714498275516322136332330050106808456981940040082968806551581815891775059446352695985179111450843271647131907358183785023300317180779560729858927385208995887507751209274736631786867061895178197123672949095865892654714445432856194585219098988249617096093463400361206359732733425109783675916173534955841448255708485463302480486343646849906939836336764568157931745562573902280480915802272605613726298316835271616478955573070013802373779474914370531571108143761778551963129405917059437533763293923467185714545854379460543139425956752388171356657783845300690107094539720802258200949101757359145754170766628078099733739459417923103007724693475349358606505503303316502571779325641545035024260824706057213099816260498123813945567052616175456531733312485760791632451876115277272888752080183964763611329884549326845070863686691919589018562369106098920242537906512294066735594761369670959513528967674808269761005048629389565823306933637928699011222704110035317110923986753749433214586479732039910063482569995645059179905564732837318134297135504882932179948830987203929110508556559225927543462207338375609458739943267084860988462731505129556541993344576552088602705867323621840284788588729294544478283797211036753563616677724211476188681772191074474391108135454595164895802168001264305145654260785404318258606496563832320146750169097830079494673187974579003794429197779452308983317430898041181775020542403482682103525799165531329171905440910529583937568026883871755867249418976036638358160568029364715023102749441943596011579015019965255044937650013840380557467308364174500496982705148469346524125088127396368013271241582939645342881775817983009345062247924347701286735855729587077909507372918154850461722453898341311182198059013599528148649652717138871844936939755561419709058504164671382390339417980558695291916048656430186487733564167350230120644391716546143196298703736832428304602340247793546562613373126039173773049133326213604480876538123371220732272158512888461995631614857229206311742763358015470724870689134413134331676189699254948195065197982870678020012893343267572795768043935771223608256749821775254169558678107402468162364840143320364835172669021360906780567384848660518156343001917460806815304095009664161051730911392600226453901932264278529460293804862430807722644214617468231185409424537484576356301989656766891296571527616952205757280342295267949974251229823389548033923904162222415287954142084270380053805058206572260031110453270068503866466647411622402926181361776491299201872224829400542577723965233602355820913566806211165940630115413658459788029312721644273858059252545685134106743399888144958583085217943092676275498248542449191492631583412516521038687050163415305743768266800200512658038741183234377830758611406878285425117002475122555653487231746498968740436445681001096153935278378298871498754081538740980424328285220005494427993825210295245486456872512072001161499734410135067554769300638234107752919790346635613661772980103493295595894110574062188240140022032561621977444767570399648477805406963333316111612262626250665242912986562690158517721290006320210552414628134103861886448258126558295278192606735720079572963793987204681028796699261712176877539018054861372408161415580193546132664065827711524099756322443774419749135969057385527802157505662090970981895736336408747771703939480863093784956643501779051854512943233401769317354289838579868540098227431888910552450686675173052448567197379876129325629660628013193723724310707683349558950167157857481083998924496137376153657055835930541463863847412693315874659929069729098331101309481742809767567220788138695645085979044310546647475879625722209127953192204398176981905844615063307774742303832891967501653874148704691260172477804238073283979334980836147793891477395937175880388239965146966796654096434243304795967460045881876286407041321879189709208420948532170772465438987808112663340288867225507815761744009355431382177513109021931044598947365639007308513672156769808911842725311809101220306965343310298650548427544530256222040856417357800330981127063679234958094791565628820982194301182438457869458014184341100520127414007845495954031919715039613654172687230252826546829825826240727363079110460256989728644608872405005502654447933040814447877782845380608484390210141720354608565894893005906375463358292731103425911515509109503978290530948181851862195842189470452206844040124602464135057948624915181144320603007118834394758047296603123660847604981910889079680044562283788378990497034062643593706260518239934552750058010780026550040567924771260899021745034112837530487604044901488879994854698966601463976430165741270022526559614800941783011867215945211956240274947290489599984152108726206218074609034524004110839759604318097238747199137539646751484386440079350313292127583915531689856456786778263723518651912026177605160889480361505579489553493263792056106814659620487051393096076121466165064260128094958305159037734163849108062938536188252498631044562780589774946521301386090703055416635970430684586756141754008087937387820625395603073178540483112799743098964978381766813690366990668728299094670155490708689046978507486343376752420800043136328075050093645398573186025863550400908511584225204130850312560611031263115400757121400404325204313223314628531093946890418642351427540105353933912007779077187369281176703195761048230600774816755290763497931741561416624862918830204866248710275009095861436832314967941514129705188963035071871081607619353270531318675278685288250915420710023456829321621177549993610844907567733602740022979262602736089356119956221078031887549656948809716023218323723665616668005801852981877700238357789140561240122140127881935149244234551454286880726415409369256971978934401010856416000416610939778195791407333137655597305015519562875844891792363937422484951117626845116667627268062881142052971988544171704001466825814131550487230357026044568105839325455754832860865472053950469929066708175950695198770772728701117770289668328015892596323714621079950154471150772992698690314637446909310720359056368473602432063443740492332212306857358236968873236544357445875074921357958893291791217466653186300487915320195613502042564572134844258387353741291899127515424315304442743559261579244578290135577229869722884198554696801185404814841684429083857275834183883478654862555134584846524707149624300308691331545716080185816687313383717273088391984777918704805301083481973427012242619948246588464858512565611493246826712711911529996755947569960509513517049972741068758856947797850777969910652075351147636944334060075124047135233846920509008005674204936378685013713143166430038337280347360935510479877183123922118069776442460151976870289423951878328475397038176954028437044350264434476127616923339234724346462307931128684520897644934936970134350968158569566269186494819443340493640673356767882345989811508208037413216197148974243632309187010560153583361750619248071842347598300675954732176725494393426574166930248139411221398427225028604440995777459775297865428659455541153721333613427124731550182158197454319527805548983954847819619985888799289588871697900292393201929238139004100619079378895902682135363435247510823225370302269048243133066819093397385247277269018121911563630934765996285713744182498281135785530149187536093117138558998131088694536828810231872130206230569073088114391671814177502479548198330953678507060225221948588832142552081516940443702310402681273103973168568321490731982916481562044104641283999889863935242997478928082298832638694254743656605404570766144954377957183025414742667043322984313762222935944051077252003940035322050894826545432098084579138747358463925417277431449051713547509110819969775168662907974472960136735559663192112171398688888163068940761596430758667300828055409045037353698554643954558545457400070113519587468290429419086934949475056830791172596889804930825088061651588709265435912810160003235283294833674806179369552589276088334688341619742376021375236220718960166089984199007627287996897140394865078559722619024063862684195132171897230003203843386236347485267109620808273169562290963201854222385787586791739031379432239442975115563827385612859484911136989569257797664594028667751587700216797330769069748790709630475693369568463343601122821887020077450497493373959892988252626647141225241697000739906106162632126723263606495736525760696061249715181118973095480368807081762200449998629751897130154598107603034343112784610045197753028884024766686288920251766957693062423613191789214634761646762622073326866583887308410864168025803841376813028819597145089760837033461155940552727493095806552233014199122101437643107051446438018200769940682745964395072058990647416929932819590221601917064659014894227164847403812973350274752087215879147656491572894201128305868144358236664832253985827709189781791140018166038171333711248248912374664937588921340432915884858729471022544978094503293553742532111479846944064206436940807580619256319381840879120365194251663823849847377303735221806292728608898280440769862183583183348084121569045318664789963751625605266533320978788509110453890397982511944615178891987544306852511111896799215480066727123924557873345461068354586834494522258646588799881018099076940870699092149831216603930209763269723966355550731591086866904268479927886326438837706406660924936746959550292635005715427763840726256429980006617047143558899779321609099812546104393395876374748828551494734229614210584802195720508772444008744829005877975664820270220602923654408156858911613144837170640984594718930307925874710274191676887745089953403517385112454762741162647129789192953283795916512417826005704802215665982575220682782495920415372246456495199611158110451341748036759443842142796054919450463287382480833058131743155393665781455579853604387237951225485365401709993081352737453733628533344923509906419073797838202169440983258219665569854054324731494369997493960598476536605748558501313350124788267513067906811441975877048657623707264326741580855757025887797595720676262608475832203329645580590374256739117679436045870103807217127362883111055257191644605594058329968881896908061318793864707446121560059447571758045388773748994360458654457332139032903208323975425028781751543151598551812057920490057884162733505161451514728395164103236864041216057169056828260849891063582191399125999271907477862213954496824636270879796837716773542679177039376225023361694343383625059309859719721974925750789514389015928948386702130663763483892721926122055852544787297822802318035610304435006210183797322503013801726886517889312986055962453818348245785957600266256053812279467183646684755908362159476544610152633395287598438734615224507166028985528459536304665567185832639942378446587498028484216793558112011118665146147649232062273738681395726000851740433027774094411220399650163400149535419954332306983811998322049688927731143678527904613452330251841668493680141115479836985068192368984557033931336228450729856538746779715517779877897077227476057481419782491903450685898341565402756355914019158002616185796506462495788003545643973318660171360222259013668794197146849601860134787599735669803473110298231813711765053439655538717183788398169071551339967987247255925996815491821821881250745566593338496870518201721066222701573097602497981154141347832083248022219671021937463883056686488286272869719961974203738594402429373025311741766974016746466464821613023508317686426334692842988244480526383123263172523952418913961425801691640199768862719644584892904394611746632209736109500848092099576791215257956391395516131860557772639917123892044639369139088686096636200436986861232302970053096534883095216242180368706189090397528154086701752390683521820096310437074461455484691375850955562491571502218558078325209273489442953060592543430530909939341663173985410479501574073177846268969952680879693730173732217216935080243759445838806101872423320402300627883743262359187430206877393241852437317703981154061275046549896506936066927581455587924321266609859211221574892385824870558834104304806599893497624578022150970470342340824451687352131733896362722638622599801069812210191043881696874758374754207096686678250268603904120824257916205462429690921398437778794071689463065818786024424568887609146478300121565438783882863081908953421430039703369837427503798793528656564794140579177376988260231944539749141459131265191828236316703452916022417593060400220314116340094153338059643198839379576772318115384699802467198398114848715896474475542237698824786931688550403476398115929195365594994051065903331782541527339560837502030890732216338418571992715561622288055338867393589126091556455995020693642174180117756079153611583668527481907914139045085190060918673846328092469064765471640340337872242496566966681795205154324025254659480450576735181291188122727321408691760404153198802979785133280347223491666103201741845217575324016897211124569395137591742660579868436311525460375663114834204778827111019976627505550461183592926696505859367530699884458455589780465440812219194156242015905112626704681056422724705491732423615419201761261338673389621860883971376454326590238112978211777668444452541917909394451482900806559056203197049758337988190046445097522418138311145531533613500437516014185071627939174439629212791597345657321345300436956978539763939278883312144067647336574692242025485855367961672078324715489958236901265230249310057779874038874650455391594267248298789127994650126551629974992160263315485540025393266893231737393183263447116755043993682366509486392817465020221146740680285814849195586432441920179606125131805308091627154906082429165519112794957818321028026344312057175375347446638371884508146547509577243637336304486344869802922819713135862486686984459092203211343836704656747304173628769538724185320863925613057815151856888212233303958157726588704920545061668275635002674106922455772104444530478665422608519194485453067837235847821235385552407420573147900411781737025319582108258696388978818722244858604943227332823788941134844929087034656105907825728940362756259839558574154561014917188753281358118273074850656232922821859452842296132467416581006473922826373737574960943442378788660859435231040847600366161571592242239612064706924373960339089414788928869605498327869013980778264933622495251570568986515168872583007065871337897522857301391769130579001094843258406094424121192829015921942478694609707513134202273819132768504296224077239238853245604889593982522412437210604805372384477976828476824574787798340646183522371365558522704928544403243947636404973970946616468873283876398183878092263160397354206331989128628605186564491008040483272623429428940601228006411049696911598871607555225394861573744175800596777491581774557947597142212612644012228191005454990694896999852574418066935386741702282106419287849598602346686934142773949980185776661320761858289417258755194099945077337534994992897396106031432440994101301175663299069170872662998851161696243401670063657537095683806650372669174492285728253889159394307728539151951956951990590533524034005977628893592894260265404604122626612374196137714295265045543830433028236991819118316071501625056846477620558707137157873259522388828647253268107226879723362363227205008667777730265838435121155290654817026556885710081325504371623639825597106632613987551194138432190391031791781424134662801721770367835614819684808663505840325004986810778412230973029524279996717207350203687734402829386630115695731827847353530136350703223075825963170818355433841083780471433493697147137229898246374915064353265936449955720934287409786573123618247009454834078367962126421304455873174046910036964232603893759634915417793378498915831723412410809213403355004519840627550282450095955549179997854649946130626606492227287705705815027553473045791984012071444900859133778697465889463331151497231321438080119229076579607987714122797319295959904691247778237149203164587014268888111970290097267117156871287386233642371989419907365960660228557662689438836847483317640339460752374942988858126471892173762668003989607971998531225332943293737242024110089379473105176118603281478188976995916117248920301858661018039078431592859055765149086096016020015325784611186671692251689421207104200849976445199954948653477133586090749788364992559156133330275914315301116275111255080812851050272266862365130597328158541373021819959697775598433930242233658805535013041444966415787484140493588339054104060811113263885565095758374332408625117333040246719994735592293320905864634935758728549207052920469233810300828054436717791934851342319418400667975915037017905748414047792709057898257533254009813504219728672784616475843919208532711524557393662633140659400318230574282372718572411361954342562269346286760070254699780696385623684552479199323442479669641147588948888711368929578946127158988065909768893698073896055709814537067713404854726089245533071655302745090539255049347632494077916866923326152898965175055439435570355570119770962395322346595150472441761853701108533599803038452620196744740635107989906423020354779109437872161894368504517610175519962039341552563961054798921170719786376523685678562392884595408622225888767604012354865731806005185846391161188325401510022536020371326392785357769456641805106621036874063259072782869324757723834043238610920418382778331402007870855201149253633896069934140944864431999755761921441436894508381598303850462181153866715277844990462224863417355225397273349767304388626114956318153467768301872693729454675291744392006072450150583077526897008231711785312475031861957556155291822511680910374488424292889510696747326212506630980136042940985229826434026287926781520435598169082569058236584170283396687040289801038438950459947596062911097398836236569556896069673764411764785433272250496642867540790059421862649989351352060484684441046914189197531001646921151796973377301947577696641731623988655489852961436618638632544934838300720346771768498129365066995700234975135172188963677412664320924889171300024092427628310385915772652171070570404623399453694700623721557538701528894746642758787872961935593964553302686446579516327536699396850822025204798322207669080227483072489260042384380300753114711251579789088742298565054969984568579287053420740534821360075863509468044553656374600601827968467161589014109838083228242320391372390130901871538997834014558550132310393912023786928656551393542754976928929602958299769515744556515429224213466462090450282902481020166044469797749256079851802947382917110666400384106901913926888627349438855555628523368589271563443367969563593932294902576471540900525411219652125085678324961027809682838995007962934265445182925938702665148463552643427611052067259402382146714662696851378972108819904913718291708212461798842952495354923583416465524474109014047674217647428573847032514747474352726223058596159146695967555293869399086368858823107183627227085345096745789562552891135311380372374337536956140482247067393879920957454857500581859430998544226599822641966626883550995291452907252294001414238889461152223676894438005507793377137714125250374658352260307946675555376351222524183970287440543223565671460785424423241837043135663397804865156943149259489503010479245178227429962868138629646480589543607024419946537242688006527266750371380208789301889634244084495817041940006856262630141241860513316015636980888019427538538923642070499857184384522071135633934441170333811442335076044226528498512342688724065694383178508744489219030365477165530900800690561617339766486875395311488648084493105775785092191672326195144498693325625193292930606681483802326923423378833230640588399795274763373648530575640415355044054686954677070131398636161301719775504924204373288802753977407748601183041008410819386999026662315791853682319657286722754190691283715553244287985801659203651094821885297439468119196663458460962895859446636379705627866013906967083237316198756650204510823767132120873182754727776078854418785459978530997931237482200597295279330984845821698695796572490396717787394237991876302870755662519709970265963618478848893397908143496937078112598151091978317070359187407752489676306975477495743440537669583314700663897554935996124643711623321686758073480542654203309640392270064126715445288028815835860449713770944187422742983252894541764388503264232262239861479829300887578390419275012890995244158787132695037550062252258417390319654548802660051284119320565221781451876105110001789943264371944986211081659485714668150216879412047623089234035487121835155100437569622781288195268297378636353792191939628548798541830672402688915284620350047695575137520097696234930322373569273608521734880019341150782454199792620867305283604737273904501466703117540553361402106263259246832210549187156860565223906681213915244936268162790834487837931703996806517081388474226865316790026420966589782911726825543426457581926560230175701169842020146283575440408788495492048480619942779316725614987716298144811157897458600207118154822528964636203322769070121178089352604685284860560137463975488940171796906141664522868674048638097867344327087772527124928335814295666370232789046495996872450902114845696198005230728902344458046567916096670386128801412437937701942866368900436426452024857306975000546434531070230548021049545151767067410879539714412046401451022065514247121998574059897974080278506456599814567450579964742944842977666990322098694595215861248623469270954970634306029042034414760315097817493135617487926834150481835755385932681157749248221999676537384960797664951069527442552736135610855295607363271728077250134279784413922563077830600846454980544548741865024026732362440174899636735761910993904866749262118947772261218461299452816089565722969115126439133015126752676798669413541109855434601951640658774169119667274271606147451747496583976471786929440930899571702043392624770569563887615329224030138930590270223238290394824943940585446282367103992023110344868974686153822724766907275590734197561556632430571391479202360882056805005524017736601874723445165359670683188103182273689102752883493486623787015436003325804588584321615695437763001991849186463126073887554401583535225101977022409740343988077120296542850224215226398685691334292838961097505023959222220747114173232765543070259805607942813849496635825973953771454515394103313972915945321035710892371012177540081515584098390541622303564172402504692713446180135765406583527670730758156438264109050195242080506498073293931914268614493412402446248895646543326270931659682044921616908351104473749443151975505833536767981786885573140087642477933171551438574525415869402737350629641461729567270482677405900204589612333394808572368880670453520108033840998624831675762833287755595045856748463848793856862874086693299610006328688987002117519992198014920506631536526214302900872990125372387086358378302043898922779818456381172201328841382561666438672302345630461157432765622882899301759725234557569731763744212299185935658654328667238229441221985911588211098327182497669737722178679499619682328870413700762498102086927369188336649568879550328715974103112118408735276646234729633740752108821568589135515529453372914288544780401261484092784447668171534387059161838251821311142360330329729112205931532570937602916131589729615171000508523525680036854808588809984107675653790318270237683453140452555493337269061057179411153464133917097728950169091406472723238292497945953275378009387447850482220625227977832093623438439998099832079603877270492480294399980128942666887331185345385913721793847965296343336648379499512865928679599151328764183947570549067845109426623468269618073751647578461360060552475600409606851000909235978662584788823325783322783775847619615673839789695025874036932665535288470984416634030181341116813285938635635192261144937591653755962916384048840858938992473518119210527229012254024398794551190012351589751329093757721607039086736848338395249881409491904698834645743506827251924355140623213354372428674994295312997983009301544726556888222213700718662205579582092927605386412823524577729240461118695668676194516151482652241933175569431930523524054084390148358382855759577134823339796945842035078317659960837538878708956600944559380707636800281004898285425271630621269363970469386815033238943791781683819317410975958386268165496623600380197482493201603874439979530768861849151716125941437987010543071560968801494750311743088367952240648827436448688509269756889268693976364515795557756870505167721478700900942994175732139519862010321357599555731914347083107171724465657231086763113610564856442891370365327059687185436120801330289163554065059320129919166471331025659048982382285181150219585989367817295090131507282256669300567852458974185658942244917387990281240795380425564841254727210721762766069647501592683943475226075822190507771406357836699242907302490607080783291779545024973252243369644745144535107662004540214296974532426332828193479498831881747710149427080652003619286584818991663775464380127903088326476200088410472486168960270703523882328960691702490083531544294752925064357034857841674886325201165521307994298228064966697516664136404638520530519386106394633485729143298701268572223187599963499555548177421860630025093618510890772477391377172608879685678282141055116033438128347508736532092268364536216869380148935054248734088002542106335085649081053729376522054067133717529344457530071200193211380926542089512253250764352420499090087226884457309756083774433000084466456148690225697336066830411024991227940703084349691787645411258335780027420691766645711002115614471265164708446620604575753655487863087341827424418646484286763649085898489437466182780657512070669520252433275284279843601794580515459411538684578458061699494783429540232561853667820238013121210912868637073995778562720964652444913730342773782544270075539515148851944407865180042318493693706049015899148108318045736570224672843137669471173142794342378628512014206485826841026881618975367804644148795623425277869881465022136547423903172363561114659037371806880982178064687387705714644715792515665132062508040444406141654181256172447599569458457052292530849340012294172738748318920125844547602643770772218136017940168407852412596410691354146995741134347530633551328139321106526818471387138020383548215730255924948723421127706522740569368982429578105659728161849818922227140565920970266768673282587586753393937386470171705332217299263063149018595870393811447516365404995343240553607147469602818671876338058057227055380507356018507069014744391947211633301286569511055788491581891767472996272241517209770369952992395725648108378422753538510451872160241853829506535293787849659456797087621911101309958209919299276938976115337698427344897154867270606974481059903845429901665488712863395675918054369408183012418797531689860141461205267315020098795617715583341150826755571366076372806445224275272788726891993077077616370658139889759608135492792108217831136856697142980921443240094707954479656870069449972764791326593449943423966732033940046205489483637296441336377157925159481153959484617798114602831655293953082165466508829212852547656187799904821140792779146043824586520968172368638725063298025967407033546903504079467246059755040739427038262748972413155466364410994507019364788201005225910352889408604980304075998040414527897579379977198405573813529176781370587952572459811716309987576894259525909222436766335245951383712769292170317406625626888539918128653498892314938336672819817667845808702836678451437095402704003829286800905252748545198685136213023204352275168386732158539968837865794204866520547146179633309175802134998398891081910694312151246150333827849967788849144169168609839351708232266684154678131730372616875411292860878377309998296803222675937795886921181767860218237966810733719073285176649484863163828631008239201899062781804222735757873947852329751769749134409971494511907959283970683796108529642056147337606008814315777394802265845895327811003653379529807238639494586616982660314294180052534048446316291532708242291952834228292040095317598498068817769319535452501581475062997648282273443308481939282711982642669505200652810871729577048574646702922424629537863104139473893699455029648020909184286766359418509923958025353133344844902815290185564496431968384775872337079269016687181128466379530264955572436850909108919829715436382747148045566120784667028394498318511719680793798832126973590122029962164407670832167589311896300997041523340851198064116648515332123972269685816805259056498471447831571144484309491287706746473185656850641509412359960936575287560737033270296512534437237551381337563160905361144799581522831958496126778843920374003852507759724052566269451535311617048527413915920139776467727415294059437941089165928227590694551203379265845253646207679918069686359302490235496313746357191790080949124159551020030826134862357798139433531377931605570040164148547795176277176827668698478097080841501113272780223541210142992449438000599135820171223724011791048783501974919673309794671740568012149043309392930149017289538602813511804088492749620317626580655533141295291576316887424452395019183004871860084010241575771964588234766289129144864712696263012615704760686601905541112315255477018021221945197844151827810806828213538954757697194023296617503801863803397658260701420391805891634017259906957878102347533829100495734207621827170407223594210696657192384436406883210294521297288615461869030857979399716295713484310645721709614929482813880863115386812564366480849560031771934396662466059413451051097727390446699783867929998659646395352488939266850578164847768533822417211426742879173853334342428038560987986708288535110664182811973000125094658707138041452705069091094099691492498483162609594318980209544167651643076986333269091437825631767585485800580854853653763562779826113689192934334180767182279724727208437908686666078173324905869269337055381809394216843716093023601460688014059448153080525089429261659439582172554507295366490865516253559938163185425906826894910628028565055733436035229027901754092774691358581171871768462767471147065920988011032905205981941241150981058001087965745386799874661973790846164356261764084573651654626139153173268238103427378110762436008761703165198512485061195257709859273959213647831373436103343078891080939359063805214687171393518032975566707004164930978595662115185797773110199398009356201586164364117301676565514026584493855505731165438135448973723695412281740424968866116154328589551820461270899283050910127124406326886958502931336883951877906993393763732380019617459372663089067564265638895892812647500361483175638521856375892733896605112709420526626178949176728756634323756776685941201777811741275382209219855082182647966325288226307212343394377246976931846418062081253537108887981700904326962839573714654377546271016446386802420015278412995616233340256712310272088376739249707100888340617388391788855330486639154688738136654609753171904646429842374241545644543277174895901688879387204118218582531659436653981251503683873585817520598634880016373437130654935708466084142730838805314356459298370973719919610042960609415754555340736090025659529948453313813090806177480745635844737472090358534448602546041392437967337967032587117169788762954018369123386417120453612407263378407367511379917090465672106010029967350777720784858624368221315130032798378452364227715948176175227519322525469962383745663304222864734284275391153419359847680235776417959822868132995183716652116573870749855100840227183524584435909825179123339398856381771565082265153168655862474715925839488293321695946680097249731320769031372319008033156200694941285690214292084625484701583190272985408331836947816940111092270901420016035737112369222498795309383206343258974754352142752453177410596862117423192109763320306827883253342368155336062725205217055603245182584273877592041193556165662994143657299905941400000342994074189526092424176771371151239554234793943025633090185476520941435515515095038577626254668927713754702104338821196882422978767174841753486477140921068150004440405351741467668083878646884475738835231608042879419742672370367395884672365442091541214396618783773710605141220815173638827105685151712474199458543258050029412819406313093939975635909011781052552443601676633858185693161944489193961487504749505660919540757092249538445271279498666647339376256181730256690118093439833753669561642858497970759800078945107539475374471395339629554733165597525455731217452345894958266525049469824260951604369717842025876212631967546944322682296321814808019288556287367712494348653192315229266995563082004371004149231089411612679539652300935384000620959766638394698207592902676501322511301608803234844756840125088523818606423059094349143068869570258324043579532622631726144770319357410286911483548189106089321829469284229848252834516518105539332263967708661557078405283962233099862101179002153843361411850608400069438235353291738954974715535981871133932960169589308216176361676009618932037577738345136374907945069148806390676456143940827456385376204609404831196193024858262490046183812213014924983187454301674881783750375980323379278219029377289227868708472180680317574491482607153715711313212336710608308153424762167853504304546244719714807051831375606315709348112202112507094557096349820781261529931129130437714249723301876925987201247900474564468444516448507715923750841800718102496364595346649608986950776839105508773347196457166590494463461839135756362921514731769715478713790150269755553826495304147282219079857875901267286797314023643282700908870707630119406593442812209248926086915169536032234296641781123415501808655167764130512181499995894693835264423096685003005654643106244751831523411346797715536995848405981847853390108308447409117719253044396077157388360615997021674351172331490528926479942424715524391518847735672675488328394304375047487416380589688367317701894929344457465621683914935240831560127403799314079491964871236877351917017365965810782930691646004065219113944586684907591523099179326584826854289874005269363660513247189126041150552010450372525328767177693455199694423138650654818759113877887220151226632439283209497397951170404290635502400987766376952539516483811526839450719840098930967618500093606478507476690526129568814679607386365679070490091171019107006978149985623492903698663733513403516059601053308645207872039407001754723231268315908089293019071769902983755220583027586922918539540772277365796657933728777482557006972556581338473447865172894696239576665682738224821248394963235452932692949527588922205700444558767888258761769307807947825904762277624158747614090576614022121497130112314344265744246406404283525717238486909758662768408934650891726521012138104158850126427609832855569368081252102583857901807510467791751695632882399810409377606730605679453222675788119958452614742344121419004162346597537211276904349775281580200825221046144871687775796510491944937374987389948104557087186598395631212818196045551875765021202174189537992895095722110279174076428074703072333279459045559130270518733022143081096741079421947186492491018583707437316868028494727296724569376425293299456184722317180980063840788423320269654589318471973336356539770795709844698276377220070057154571559979467593330615570243641739539799971995518377057732980712408743967601770844787356420048725031294725407012398927863129488493408271734650198121602048098920353169134886518561578924930874535232311455486845580326351840673590541543623211939918052075270244958531497640848979223310971842923041198496231700368021228396182787434019280337915052162936657914709053344948038752427348041188644256717101816358312289936668747118253547937440301378651330140710999172676856832126770233812081211046268618608509942696036373611611955802575024664126199077816975168516067455258167079802055245979500544749115317152511302554263345348335591170653263724062339136912708549758999808981307881897521940847429465717671455896694578254011583452029854230421849559736861440119191929684490517350096558550007058378792665570863608732484622513718363027783185507588620191174351689171557369822313783140117923728040728962875993592448238354966669060751675532096625831397909299623142762200263734964692912865970618634624182875309874385423408093020402528747990768440664366662883922103353213545556499039745145281887921923071609353074402891709712166523347844208678547161997723299456486385837304114229911310827427987725497318063854480017105444971279747931313503957879738978227609811481011906295478176078424132278767784326630669770394607761882726969488666623988222430870146794951693422089614365235947548515050359326573271984637642724509557620888626655559486424083593985698821567652266838082771836025852827459736873326702939818485349432914738344112365098049962299885909281652449761370135930717446481489792258582212911020873084632467185464388644134661510292784056460868151452398194133808212590390649713878710898713533680648038238227428988323559293710531915852495072514790316819132752502423503056181439160846040367364301548051213809574477915916544295002704934470199098284162980238842487964617351953292626551388159494667231613276164955411683980858321450643874536323581991187633434656552047559439286625524010053532181917735742074296336984237369164461742121480969193246330372535670966324355506130836181879614673782888518680395489258230517213175804322988784590068444340507405601001943087356684431464364573879307017800019060993158828288626981100974076600609892229930519672769324402895750045246209339568313410190946703551337088574937516137995091817488741415025652335776596285892391010907064155847815361089837972349654724431812491411196033283064832931220138910593316390359925694331514426793969227301283213985904392435912339678748418222394576291521432945733611081520877688896126755702453865053093828070072854322897982734217866213730414058987220932501953040160768282902007597438750950722643729145634447490993719036628364642435712182474582366647856219918638374112051056887605665219247658301481359723019836834955553701166870382526517394706317853870934407621231775695703657606470177152656482003107188845730356810572698298794647583030011441166957245404298158089272772322367175971732767629734572723825892325183285190337726664452733593890448018444285569100001206374776402773087544241105628273422829783969036095381935946544201566866705958681016701892308935069869350118705725231336403647117003254199814716432179542257252561925803084011105879139144620918913833927243458690368217788539368485248209627084453095385579266320095156518971378910946331298471760171795597134107405426172267817238441216407514816372581199672241934719503405669192808852681550294000898806513492585410133103301739170805075756082700675042941074737352764464296231240898621818225372643116026688125757771400720708992379834867725943474805687552878855920314541051090867795451725137746667528079753779188768435081129991685325445056032691859951801380293957744066980774803972704573753680562515021421477310367989707508244189758934648921821622569102394968425424387484384150297403982070301405834499581690416142034770263067580093210572680532269806456416660151424374084213719458820971375373916357228481456326537399125518043321990684309978061575680146363531181785372695083137763849399692113331061082997068822250942944262614036595342684327496656895328105921345449764002808710475684080055138016555818539996478239301215223218157343947117531850454816499908627730945323841496578091267143961376577948618830973681070627666170252042599603953467147220860928451287918496091242702348633333603585570988750817752284468440322013530940769875564988502708316550365318541383463337118786204268775691545798812234952482020180171220381252447997839456401286703865102691682834768179968889411132148829326416294043086703368288129229946913010492789439696296257684120182910653776869066215515535950716981627009922158945837391711554393926383566864426309064954464769259827182115690713201592777822859313831019533467158678039782822589478968797947527409855972639067326075439453405183645203696213926060018684297160288520365275902456846497135540621599254731250584270473409414555261521524558242916024019600926627250551068122716427867196515180146758604049523809044325558786383189221737934450699010684062233283125993095906694538278625121060973230846483084509828782449367492639192094150669837236294340658853043963462602874984602631249357991640669989881502305843216949515884822242552651271009394505688798831039323658974257563356610103899952738503732961966812920969439617371349173635433502366097988622337301171694040304853403796102186568439463755001839460389828750179911458179511893794033659790227197392244658300139070415983472918083199873242435817412433766800744692159993979171602928650044566197391197105748757620633215191298161804436839306021910067030106583473607512420409366345008805445560684246442803511681279669937518341622485410182864846591233074397222822540124907964175410721556366111375326352088768957756095345205466938535279223816247658566818756716383679765868889776041673595950900302373230615856476566130347310739919576918305763624783151914533200325340516247318552524427404592166067805855121907186774456296849007469463400576080229768414263554600422020228979358561391182100540452351263770158348295134356008590310405171339927509122012219953597760154187252488832979026405087199254094000882113482850763944652925403706567033264034716545161302404337687640825174249480776654712991380568591332609867207155879745746471346234032607400163246997913998944282212610738966795666997485515966021177938647523276405366516964168918922711737200514047332458343643752168350201924432862548452713769565890533003988797803939526144990851508466641237248538844291628036394536222200093408161525051546037510437479717736567917259147250954125579190689937006560553422037008236737572021674682291502179313029701749802153567139439577451537973138433127329975628563432946616347928028649788340993983875561372487518078965406018667093643632421392319559982622597068123082030842213700357448300240909434733844867864744190655513363421426730215012487471705816044793383919627874627699749383543158548134329845434706244577447671011698250377060235503607655272931686124414526853454973741855649056493930379282464455426263355958792149177849413923817406681138742264655125465685326751396117975694009359606055667180080999352564782457581268432248883297417410665282705705095940944444797090766679580421161610477748221911082807257183196019997044452542190781207025998506222882358193355770387985269697496426795893047750908997151904721045323535783965180652189247017684087458773538594614914133451629223340703064216703135076190067560700827814033174536127995680458548787809052427155429681180123259594309482858425126120028841605921907813995696641180921086856481293212062267913618908449986827345648177306391733426715003356909733969507504102461238168294663427338072421978037993448053743669787275975505254291825804597431161845351745468178541111703147872844740135947405883468239754222449586110372007080407466183471565328434979704026954498659662312478899545332150220689883587757587070444940674099690055659806094654288998589065726232330283687524259544630704035467879783645037034539854882431250113543163904731910914552415893047997557003777700331377288357932039969345383784778964548561302994077995131789352354757839993239618012368523040039987565315547163959015611793642861658718880888378621079361138661310490593234657851157417951758626940303924918591002343340029335430944131509437182300212880485049841780350607104804047344661918591919876567150205691239883878744050574751478866223471333548494181787771800044666219426406521392755253840591445319426179324151506461550135291025690552743711858181132718711125474599218742696158050830375556761615961016254333168778573391511716619964656242272469034211437530691151876517893663330708540460460556747987517166173312871322572722143471364821651740113693791502585286950005504926047987005975945873523814103819542275436136589809472661526395767059266455507910238457900764876554690955374533347297660910540504700807381283768853032297863256322708757688480260515704545209190570249648867406407190324663448362216913727726437844100335568036289394711273759351309143420078430689878956562012979597424224705329258351844106707401260501320682105765427108651365739036563251747183393791367901778578246379898611560322720721441232983243458013572533645081612616836736153778341326601826384655559183254208493411325644596901322304123326031465484015006120095424332009502838144333112695559703025465792615923144897418014960199242514628441111740465834259055467060858141115776586628929397314142443108026614236212003979270706122028338788770305666112438264340347262658456114943204261387173795988284014537228410221944273549229734559378601283580937440736681298940374313190824889345013576758873861769446876777612843152921067678420255924718666884553454733000629586734326647483065350785893842876489966256896562539699452532055447455097958198923373332961817525593238024527648465005827059197252349235572891512086488884338309984678261830238188570687446455367918104312674540009122517214727701411244220936603688417727209730528358740335896374355034459243413052095092615955075535282798992418412142676518215829526962069533206558051317906687836433049144853389387135170355302604571502334820156615621504767369714233380973778573025009902895935122376617696179034733237605045944791942493160635023897539372706182588254935164499946502271683665943694951179793458399831714993904542892890428420224299770025355030388727312779780277730769977719816582386437561224109569311232715043245219727592830500703317352043481882255674910364292282287620726262984450716255423421524237589739517254495488008168737689898348241171276215710898012324824415230212540569830637249330091476428405710345518554492562279306599944394766692866748447834210190383703446139712472727248013426915501657113173726570814752132229386396780170876306670094979979559373562056831350327641847011641410358024364812079800786604924011258212836655717453303050043590257595341214648853978683538232641196350029672384323420776430496555555049569562707634111637283866158123103613505642469269087500718914418665876673308162293702295828808808061168059184235700216721659113977204124001096511676246347027344917846772669409170824876978836739749559326106763351814002547212026069045932613371237854631510122488602363894652900782006828200068341514544682460255104010921824259946857962015498076256034614830358558812006436379527589668731042606755705448328161034472509775596876111404245152301552750971858955776198995572509287728420295454039858474983001624166375890017060673258763786239904882133621810291937142001282835383827242226165727337310802954100324408893269960796977926334722107222712064922610645770331077364612208776760114915068503146516685481684380984497416818442747311312401452673015750865423236872889432467400361001477599558148482898322378752175393684505144409034576596681264977087087379147023043403060968523891480579670937800280023733629552526023184877887583129557453640196139016569948223504345139854028424878158434920043300819727865020551036803106957884221433616363444272930830417075493027372585589761683358987711694369861529863668570957008016468915376558438308280413625419480424038457047555288499027038460510340334864063063640018999326437479361685700834902527180757334764041911422315414034680427432216089201916155189747922125371258660436610274467461028997298779670369364876700545702598214673368918377944802337316781223496561388162585293566816509088216882874491237581311595474919433495663450661162572450322779151564884689807375712069354108096966812887914329754140918673045895215946023948952959802222879240150518834579559711244374244759869764613832606443317050151971623017089547422232761568553051898786332786405583805824559993644096788852594283462511799265903833939041945850160104644024959796896160616613530767889164369777992682015148909656701490442657359063329818451269353525340894760539055869012272004827225282562307036332285315879829107483419037489863619051716226098751175961814539381876296801624499819579783881895525474506372488048037202715380748805830591171985582303434117706193218232474574715312164890416511133026603628549134567173115612272502344217728090974362234240727765309193639315334142147634165219756623380259679958769101013562204909951352121575048669229512350948964779707395476935191386298495365574690992035286060896253192018632954795068633440758769096400697759381313695092559371083298891325070416179856817602150370450146523611483164640252755710632560418825114010817094443901656674503828253480782161853144081294777461827592783210460034602717542779827550685169661977693009649665185174687423327738172678711497615568068330448986861573052375026225092342178920722651355845845402447509803427713347915665257731084230207783294073981819076491674998868101377673696577572508201697721173623905526897970755798282523723621163734847732672917585967264502937321213592338219567610039056077565146606772322801697522931580505056422923975412478072490279079678507813532742496202334555866811139600592672934699238839771874036840590687507159588289885160567205539080305702201076674022800003037608330515214611451104652809813317728031109651895565233040468144415345683568586770652696007419567735799732908768634716091898579419990492297064790566589841444163225861248260706307308813015018155433884881726594708597666650706256911399206639559079389587982909476520216191827795690754574019857717737035449643465177235345117841445173697809032203462165427492368423951363424529488601012403684591564959264259332105315036761670155562361770906377734777300815372300143613373148319921227991948527263389462927203067400460967373991186934298399867540527683130047792322113011397828627456059450336625868039967972957213294958895850415598948978629030945026249951710064982461990603966178942614738557468746041859998300715856648715622188310881765345088516303738316265656260079126451477902437615412958327043517578260379585241457148839250559232658231186555040783118820305246450209730381567224201766308901234011185960539798265599390994201987714226567829837892425648172929735178582525488912400305999001837239535507209453451279614064319317469232074321672150993664305433367539500571783047758151026010818913115012580198972207473951388034201292598330605913329888749870962998276805110793112350986476949964527488062163276950140526936228227924442364377384059281026059702869833379702872934523326286997490759011893852578250511106126826251659995965022470767614567032134305440005426254801528954494954600215890549203342446633593126756615790148443259102202318681287473444883830774175970822604865202158228518126177030194702641647192597359129567867544814527236309504473534516988524939771346146315999238399953887293390912549576159119389897966538178933789009553779917669031049387978567906693691006824874296618235957252748157395657379060028685890105515826165988346554461156819251527232051601168350058380377983063270158338301632641221371636642078545215766648084593667092074580279344707616763461466377952037219792051553960232645816150610664573427084731851284457225819797213146502152419851035972262908947896110814754744533595400659188685407084637338059890649012854037003367817124478406162601179980562476152995286780697963143188684347081168864682317364928902021103706411977499960236663554436794519382286980173834566340806417153769582115733232270688047215063150224753945600881874191312905449529371784326710855336856615611099877964491422415537367145734487821830522680048133368732874003469271084854576279112802317356599811128940669165850880373547521141797314124973643763289202652268029907588354661883295007644257284267200556924649128334778499627878219160578508290542006192811471592502962580032035600676841903589945856010624354183882819624321382576052870373027126053749785643012577436475155331566872417556828409003025113514359926992739109398981187686900456077312458555477826472128299363613414836212802070625284128364031531188721584917340546915758103309596089491225142253804194362162184246923807436440167508999047390299238373703463483795363066155178787207844139154983358380636898466073211448425744067601518294769438243362292315613955969782312854413752380179679182815652466213489933974600851306411808719814760550104113066450289537356722825162670771458434435390943740500730533376632690705354521596568268803154907284621301122375211447623171086605393092252534402602091760081644638530172973184193592800412650661097683577763608118420009741632964538724028189463635659328770810006778130520949255842394742935601775697159391588041705759437489827827602262536209440943910180281193543342920351727811706294654580013854744572156661720289331330190940713260319969565368116762388692748272162323802312514717726097366045294241648497945656420249488622507644326585607313105170904567291357264277747736047337295645386678480022478749365358392943508670725880367907567117436121792996196722032088749528924992001805686588441438729961250097857637536906433705941435777608049975559609337041426800864283469089783320324904730255722708180267313875946940251276277543621615670472364888161547945219176646509169051823734281073148860181071236191947286000584236989173180704182892154863819627882458418124367855323202109668925359040579391619503413816675827043738736384200887164402094074460067005045876333397123280928296765085225550395999299838055211017876854405961514932000638224423441366299034521049283702142887000431845493403867769523553726708589499376436377320164405225152941854240472613181977841455472437400026755758766459180561390178725073742943938307787776010847960367102018296854526254650055319590333216810779366704239556465424667943749997344484083107908073164818059400485656630304224471067729284853477680556454588769114704860552096930485099358688342466352243702555215414399774765916609763004534092941909654909686790618114608854724070027778866750643025044512914400883024532403350204693596402771251995159933737380428011535295474239395609344103473791902961370985888844047071840375131262859777221182447719308511584016312517445495611381727736367980790188580993614866785208465382801145380544204323901010253013137840176640809907302131349171031024364051563184076936291597929424054189709985648414892897872102204009270605902165679042376709836695445356005461515737525127728115658622764325304519467726092982854045318744876331879682074275181995527545819250570839767652627211055601212015150755003746535013133506597954911420858983631426655357490444634809134442816436199842515994426687756042551641159227565155328185047073405147209155983081761972414707261736014319207361630698433675670370018885959061752714773862993261150948373548661080613180537847566577738609484728346474809610113744605922217754291123784639766527349276810947166793494700839909060982658892870322952777660338190316763667404089964936659942162923570816890820642520668131371773302211394494939258383681353493381426621549178023182408936728825925198313804870034152438865718234673611556104656373356711943919356752142405021229604450820119857504702569238914085206807868085738139787250953140552512181040275377919726530894024292406693346585500409743091335705824283099411087331887616194617235667954557964966393182145762383111514436282526337079652282066345765520432819414467750144485437505981079934064727231995669309930715808056841034960794586299320709417123092006299670879274361609007284716776679950655437133523436945993280955904639814168485568753219071785341590538569151371105733694247336697935020842713734399777500262646793498648145911330916768625161848814355911624994167943078282379511414712949146815918808623954607058374327940141254954464641376275511103330893668460360776398737971319599642275184138336926562114762091188286210888075504215465132338466424631223168893634775686488900262948257158907923855682333564843214200628861483166599717815904589618606907007267093182404964908571457862323303151574761596136697942251048124654299945825514680085343509540232634208471606326554923046142477491263331666631877227313730550305406359194618844167370979645442748782507017039300567047291143235080595119400146755901264254947931378120269686523781234989443165734352255169388479732353425150664505387914013107787153040084808817504781023687963309191535374674168839687799870480151453553230584421752840251563620657791858231746182076560635919916405435247175290441949509208750466519548978886432974009803635726930056075379678696731689282647318980237605244441735347166143272662163825739976984741911618025992672737298902241935537587040901514420392850072818896254715044205005527011740111602772280118247071920027997882624624783175437776954152989461690637412463532233825033684115025958915169661688840372488930208059654010736429351304646329009256053628986248284008030548749679522225197491837278498016478083931275955864682201670696255119097638612903858234369136725725835630459911146777260090126746143354454044529935817454980939962193023298508489211679413683635024432799340140717893282831154224481772804214581079709530287565258160892360442055787348112105345321028178893635663215953629845016482098013899859848232336745465169363857636915618659234003624699650104918346748776543196552057439207765533131058558426283731270169762845875398641695609523952756660360107615986964876467270988099933831463268719531789440864931996048144643368795893856221722563269270696374048261516970958147985770138167933215486323467771115223490285419817600142345905890615931667981188245315647633450192201469751279682448453744750146092776599642359805861999665024534728573914307825579654927306870519247335636727997303070449120544273178114580244257471735270420283385542797926583679918069638640402775808027524519251490511257121630729154454243750013760446581488603154962976594702801863186917155976084888889624581065191197903872889880303638834317142300745919170293935634777449472681280430873368633190870200522289155873180548811622977338695943158471212841293156556010791589115904965152296995777458649880842962144457267726858091029942983727479367265152128934919558373212827528273232430651502630134822265957390822660510045535977018596937964440126823020795574970233996619135329783346743521671820730615053622187627234252054417717436178131710238640780132686355203709811916770290315063892402483459169616947733650831604945799711627702448808511534684849919228897558741135688101248464036622629538232144297215933362161566926348095109696738946180878596365232205494075196669804280899306737431462975838118706329180425481354360457292070891639299670115662288504601411777995288622684308209073847078381125954317926526792245265964533614262405848750288208301141251605975946525158692850505096682465652423237097583873129650160121688027343782020050630272062899355124156520841402795193729290391095676126559318782686190964165075284966512598720042180143951694666204650425980551516262140872753948504765734335030268513592544290163064027798397717542409077685594019652970970006737769580578194043343715079149092383188223036407091462120694517124083333342413204051619881586847163130760983731165152518778119095823717536472143131432401551976584369824523635741717281568060870696707641017563840663570064901736438819812035951462237549225244242228143710642729161222723362855864713097635901186037863534683893760087812335317164842714636407055097906680452793773640404787457220537349840542840549106525796825031076605628367168565040910720980949747155832750487586344530113634416759908735092881626989526776838392461632794028160627584638440144491696089925634572030850481190123933896479453309599162095760926774763836426522730724593015825721034457150443230797650877516965130198997284836563561513212610601901730408296137089053348105575319922617913456139743722921012424432113436879017270441771101977414769001086504471944390313522643417838770260190788142817778462167230409302323921776889816130235769614173871322823009156131828900813674763629718000062830204230104499910987096114906020886554042100269130396044414574676758112230614375805635032241207749016902610263915795238528808977102816182983834528930412063674066125434153357640447127719229637357245880386361490476815918126475917691990640618280299117087278843770399788056205613597674542071371334967499883183288024732799369743898750338543791293571718737835981145324327854940257336381918387753448526031535117227375439859423478000924794384163069179367918025708313086792886836156008050291763955458997840205279482279986254322539913354012481303454127575711563862441168271956314086728859770711540186369309814038798904019782145788177747150683595099550999482534956657875505183777462033026321618676052263493808565198276487172378459167075188045089364531764595927880839310156899914812689778920142316724788734062817495057371624737806915244385456832548592684155389920316509189397807134571620559874741353022281585837458369181426842781295077237323353778426421901659347577900506153661891461498047588439246402993475078475691240577587766089799731879160888059855000102421285644877685095185539532483734296261526659013491039501015923403264138839064784746401194853505406101369100601845216052277763975778923915935241864683798781903774438731992099250119860618962232563438909434508076596482791704920028422285471016478384210966953119338983712265580254066190644367380376574518394681882005042740228492252204425507951297854861992250571762250109583248678562749118005302339940520643901855827021780750102367347650960642191413689026904136979061881060335447241399310047546403165436741412194784579293698510690683872090252052684755758151991542816708385543028602639769504454718678242713883515321408510472673334714675484843133178152539271080418122859182862138209654575744756094419424944830670769674151900761886253405828761767674402595148186369728981442510384266973148442313425089980444805672847600729478444746258081245700428539221033360765988577059927926679013205031937247480161008861105468727311000063878384706262990590193560209925507041622413365622521178510992442982306111308359641728861706576032259183404576772301667915686977203895848101961157959928061272236399972045237464121029412138436397351409041799854703284469871286670782076689557379832904541481902337083590203619122577346433141033888453898207920378078643645488921753273125158698432783491614166590683485575100546857388260451133885441208498084179146891251532423077458893898566908677244634888111173188574329803485057952738706386620200751099624208658933031262758670982863028957016466180815533971589035221865588968545812938504384508614742064679707729383689857172520490885926731748517960155648858702975813641357945874231294969287384243838224175424056012803258092406085729771549056279755865000465819713650040471666573622347238851703867231463880020772175805610664166495809231663368107173745193370035355903759024451645675032563101458247453435936650107791940889927331443835120231482563712938003952419301238275828277968963238155524239557345325598408256546669318171691689642041578054311589230870428928011246251054407313497767905778779476514778161780149012222694794347079920353377810134177092774009378264854370627007260145485611481388985607842173688264706631555747753714758993187003070532883824983127978724203418949415098409905340983799638317428431479973554931040750721549446008676154727109503048186505857649138245989821569516553769798722527123957428171421848802714428880688472385669694209858496433582564680103001020919732118608584948948084906857996964162901886643528746524483067222883514231377932341312021893972697416641288738208710281331253141087460962007194538621295679465061844450715816175222900760261755326632522720450633793081974255325711432707933003883414979864045501095779202481072254621040024699258194833331818833747351293096276433764511954940148645485422571368908716152430930381936579514819797639917733738361483859243224406834606674069335364665605402224793134752096654849100601100102982749898638454003663136862383306419478206344039684723675246846882268287520806119691254751975542379747042372585272987463226344618291115660552678071810431364712258592885614598216534132139202703858901681247741003679391408915118419951112934074171315387730041452006435816451956316108855593999176480299366136639817530554915084787164722728104836770277043663075273773989251414166462370103463200366651288937410118322312076555190283121386236132218061501791625125796442151597510635652505023384509924512362930834141453087190610938772303314736821214640313309879058498424823565256444542579272005833881900372117058861975859396773623067237712635871279979620825947698894798107339338704347854106023120557275927038525388102769399824952359957875267130238630075856127417930950657952070351950435312455564815577242163874587829423489189997993351874247575297144691518460409563198359968920422557601716831757821857911315058620778838349479065269579528274572413028074504745496554414055790085055583142532706845705782247807450585821419364496093904088431945558424881828343168656170904459161282770049812408003431384724786823539337225348065187233527763184192296872122424086203685298497028250470326981362609120973911769352896208912285251167320239112102523463125319027510747358810544362183303155668863766125783276984520395966097891283506611990093139848967757032823710563825154060139705149756732888638851853944569902334318530868055082504728311621690282420122111487590084524064626047382142183487026343456777194175868111242563462914687889199286039197524300026086810336150144365374857108539002763804428563941047584476754601684296710452383919511832686694226503613507072434046144798459948827758467981861981390054377045304386106854355566683381429054749318417991193466062506683717418860199065828778921601267680263139765490692429681557998305322756206102198449389962670674366983516378284372649671641807911462872502977885546420135794084543338463282835940382227255032100092481113630854634599198181764594602134679973644511574161772161598423511955794475995079360563461035406982782075582137066070040991030945195989009412641493647160820275828147656835345518608576244034825369906770253044583084542710728162242349362227192362121662722123285335944819741879378529227499077951645133966865023452468379842635126530929057664981345346621882276949081353875589269957622607877685616782319220081573430849303954018357487118972357543845383220242128807040087033295916070248659851166850194264936813222150571897368488112172447932558916053920445214370057256666398430658845467993004469927318195698512333152825944222042962958554764461517396796273718130296173921795645283967386023460495225075808958566083158854894695397007532730092447590045407220284741629087847976192316892021524110898664494727441406137443551422828162271399794123155870718185906976074297842669334830011531384725595832403105117565594703988444321409309159801117639096007166211153415879855482309009043170833469963203310565268515140011002486899950853026245109037159388100803511278408386044806555283696142586146063950388769716183534804209856821136724333699922453812380211274404247048970607218605809181991329884873739773851231398553616397654901039739901317501628330417312097600685425486949161601266229139945454769655823755496796905220290608694443298052852031823240883903542369085849730789463440621807262624791811525777445621716300886291645412727980057736799007939720522306372069383444605084936218426671991748458863561394166645607857570376582810589706470406578828227058005416692778503542351022568158031903194086343080782791797277451827407416356412173265277359985271372903872612920670592994380947454610354293059398585172335749065151858922976451082481133445806035070164859617869707351389089709228624030621898203239015482164428931608161097745300979118931272532611116120933711495407856575800530940265155284504719485839188649713775014766167997345057757442993882765795962552030234259447178343531794561549282943161719384469713002992225159709349183174615667581692371747506545914510072554894811111447099065692363543518848982033614347714587442234127087148681666472502472573306213841744366606693298738175794211144564202402160185857929457900475692568074996888712924433143422177396814212172280988994233712176079002697475748246352150497600897004037620864692789469369588516539339213612001556827011099638942767981605743804970239536097885894224669792346935610884159331968953291527537900533290665800962570719694085895332362251881883140987815259264536314748208724045127876449545557435521796821712623168527313565864432289646524097867266319329811095733229343931677389462462065954095311223726694771685441468846809028842477130925886490596916330821719840348571653738390117171429742109263575184668230236446721726299611993714648648572741845376612853140642578094343383643469236104188760467559634763035503802885394119889125677555768990108994162058034129697150275648368992131626763734718077113263980977700493446750749379939667567809608659208289473616371035563418420278186899882922800601066238642296198631827112369500417482464739728726100976431202369409496244920699855378708819113253687919420511320491880248093148109065466398234116110221341976447308889641975492915956401683093271512347614595569538046022009038295050341633191600062074906270123577611459554567724101333742571792178720853474697058953357073068466922846755863510361694631585339126044168521861249180760209564061262749035771467713515828270852458409003811052393147059449723794909709844023452578240825460047078610840781761014698835422157091386264283091734699877370305963068449917753608929390753485322470936928478885650585713354262827054458968090655893793453193593189669690323848887681016811351043943352277839925727921865120346686832621697581884146818667881722165143559098238258265820657013720278928244421751373407514690178950714149829765024538560402658823798913998768709713177401746226166399716375503886322255360825284262420114966512738543105629791784533199779808206442995791422813921726893220280692029760490079206032039330359374791107059858820285308795395749333173712619775670369957703179936325393973063823031246071258881998936186659826985828034999896799090296433626260585794993424360203884635956936222841077942690640374105572811356603688067861262782567539654691278597060549159525879470171167611493948178571611374309189418239732751164984376208898625202564942128348246752358724419576550081001623949751143580154448401798015995665000046663600081880763159918227492040600327682652539933657231767147772505552765571299397624857261234189502902382534593966979878837007950425276119140576652196275792888186534523385496266237172405488694423688299302210157436404977356891179822529877846312637963276090957873081912886279355421675515245876272727045123657179095089862221501716865862332814051634251636038309038515443885648789681986376959112365637714363221143822186078209659714795977673794497402498546307975117518193332843545704186728081468810570330692664274884148510672853835570138193546380409544660450724306235485781529719604237638763615393004777062901769461767053495775552903919899729662900955296971116555351858712489732892829127967646025560828377893372660861972801029769072898193589974460519966802603141079411926293765029182831767382760754943213651735540417361822206031474892780916176985278596121267014211448485856869861480792738635546968090463778841089496626062635564974913441368868636728545105476272244526348638272566316023284463773267112574883380496842554696256344946637701609182821424728604294385900329461049082018254177110313174571465387729340634977705895278974465546698281236029571105117446942531003376126729211977892505762586759125328923328647874596660027042920695497818073864256975075380194108548512153903026311507593529534455333073608080841236303470131256833061924155766182986337688359014172553054022475247943228037577319190195519865063092478713195917258021786966862464228782411363661439906984394770904335719854226056797117243949067462656874410534678877829568157899738540839994723382363392707396115953072592845991873860053516113700406941448753131842266352607604452657501183425719645464742180695000544797074381955920979549904666951622244880421697371980409625347067939089314580473557484831413769825970447119243110486496353626186882140256955983705932459788339880215536465681330587335261929019442041784369265210274229358987427710182351200850763966696099039330987549297189903773203905902285618981594682350047541189281858942770888554911681253991055939568333907119813582051581683573282483096484281485971948835471059494076260951302297927513609805594235953347017938382247341797366881237805764506287635248693731830055302739807694646988256226091061562885027566028995346783370624158085201350517674352667751943785225987943247111076103101195586583506882739175796301028321455961370447760390956908571847618400706276059687927891081667526368836752097579936836811436594687877078104163119301278098293035393942771763445024904941989455801921463299394916193295850439934861147598059101035963148031393167306363514699193082818425510236210085030550909592096413835345200431232175100800912782733975872150370877373510785895951806461697952798570754239575299294987684683995005683410552523045388520331917867159273710922731743151321191873724578894200530805511429343140604722028045810133433568624889411283925873605810166232420893619485336133450289805768644368836857357048538761090340164299068089685525450851032363658375024051027893150882201090597525550674691083855454786901939047597806383968146913002310412461846375520251286837541737346295187089811332654296468068724168649935747605999400909009154103190581980321133916877195131853679029470906083954550692259163813689106030886545664506627592833100746844805127453360348064742154277603319214386021082940143499972632039773565469880086055472737017481839887129073027322010413505163077781345673170055721133385051193842215771430333508473963202119857940400009593047838969448063420968408022667145975306801279108529511024016570596383638354472056051924307793887752162747673911844557557410404009571447043204737585456849984577606830151470877106754510634168725142628652010564105645480736706594567824770288326818333469222365222818951277330034123849257430630849514012248797053714720616199982560413638196756807380166137873340479293292644151624180051326845013840384312582460621864412707683258761371800762996708275300946656531742890217553072315475257331107062779699121478422113573713525088019959237405603409388038102852209303303840687030824405930122482198426016818004638322892013431903396086887795535889206595332617452834191488084042614373394723226276476669337932980148619198241145714371857843420429900551227468600641940586226278621432583888273594280311387969587247446613578826949156002182258994473498764436880043920597899599904301073717647204105185318777534412668126497544092061513781631731238002152084104630757317089755660781385898562745527968164667435629361654639106375207517211227858851085201454429335877477868142634138933103185788695109288660366116305253567690261765499069197329807608034050143258348106888464046900201311179073909696669025533652638058442893436171868466916643048292118227741560145806950205375212396107693839462396786040069886336660108814479574314689147390817274059345993117100960626930037581974680332510050682635924845900637310606278226946441692177372891999900699968872538155250424968466542313236059866998568052920850999600498597548996422101274607880517206034891647819398254725674129769777225245098336933910983059485219015102732581491177756746096117996769467927150963407603268442168621483849221485284270846262912288963136816598027964658985243545049366289235089040248134992903791093781692665220697534756594932109311788311058358367214637139327016498387860911218332904256963530579187555637705301980715908594574469699389629174976912396261839069730946312185201620852591078793106242754993167243597775017190955367782938220671746058354943040709608483485177083328246527540532145557218021831547388173372562557921663942841578928635816714447535517750444822226016855944690839207310722351870378191667184429511727562894317358450906527259789168356047865767449714684404542838393449622240202945214513255590251401225307849509714421171129600150286217364947622956261001504526975847037656862053458654135785365026291838419424005992994265370132621222172456363178511219028697561256865038626869746206718206594425715356481635400442361624136401122110171278526540982079949897824900723706511005889164905354107897845745223257673868353111011777066025142360004874498107538310471486345098674126532222424147320688714074831840857206887574504748049179753183440686095978477422089766027473201656843653148365376047827119834891385413105638511661092373674506163560074027797245514295996197282336429598546811960440753081152657522075872782346392720567002244299007511087010162997189821459609199634876673967193769764885506784177557246321807130098149579636594336463812324625277160712788410985395604099470559092543682947582228933411377841880988046154935084706685392902435238148307154289968853417734186146010080216035485093452280248464642908974447544164302807765081505401776544073794536480488266663822746950974357662290935841068824309225567515368447090630438912397315725287042773714915245318470209415417255481092600549105725574006216545344809424349763830992726355516903989150658576386483323014627703394225579983246215124645866298420716146415677825880720031996711524087382180942180678647773467105156886750056160658853425237903165271424001374299640649306775538692509203962603264307590858463187394855321551609718172777908712466425691009287053215396551957946717719976135249692680964365685068932078000318577579649355225054225636634890532223066358485202185765125283019847505712114142348095982953005505084196662630313294130256156507039375847906308161673427828910683463355240060722855710696952545358981216219545860505213762580601000329710441991870902878114557386489257107150415502264473031574971176151833550216600393073849440620969251372103134942302104896496895644672093693782509331643355379840803594248372869848394374147739525205186831513958172732737613320216863871148814201752896828084837876938537925466697510036138690020611157586738866745767789365546577840314463445044681057045233533689138565545333270169363786100473207728877468817277618875569495906293581110247186592717453757937291902703957704043051606066122036597254779579789172977872129525567142277312233967342661468379144798095787022069074439332658996988976117107595238176729131492642602739727106983449849631398878482182245814463686374093453785112341675152934138456521632861142588786198092646976765722843625690656345678926909154235797744468540199271320339978659948115381006031433344274846645414271858616647622347828295503448211090075413368037253018815632983443171276535545547201505885473905776985618453356774203354553097775828552353606105394323388385678139670714643347332309834906722180157620920614632733947719739872332925667779518837625626199562608500151678784700456824147070482878302654427356529261193787802756957395574703983591495906413658638520763853578384890878894323903171833482323269581383127177028420110345447511428323541437571909674598619042381676432869784687002157698178093368260687280620485831705994762388408368172476729156894030070611516396275212313180895332316899653690761140983254512274440784107134855216346486002361800740301636115053205972762919204475646054271337707978866327941420044815996485082552942402862136251173145406271248894384966102147454439818662617314280905528252090516408307311587177010588823019462747440663667144965111142570608599662848740307187426122963965835262794204994933635926554016613723492015211395319986658448967260497280721274653019246002546094381486353857156335215872943882066276123534404858480446833931172762987356658567064487845574564203369985154906231464066929558552842134616261123261198790332526442229840766705808235921329604304072593086778282138974965816447969580223299746979705414791483040254323645104780612076694989537577434058788362112818899275428541662058315026789704768338872203087883189827424945837339284972342924505153559465620968569675455678120281790756435109392538803602760050284929911620803731251234253052758073215967652416360761724597322743441237051777229350832983237542936310523054408543492542204427187722723917245959449853246535701168075470144054124443609048019959983347492132449440741959946457661424855648419044558711662512552394667626007627901978172170456215941568137838009528867433767903631361817100203980941466986758416802750229678547251602667685297615902687738235941724419636262831504613926987746235853741738137685321156963854931326088044357859760979524875889000609366886416659688451571255885509838251959887736921981819401107456825382743944226943672192658945765761926330932679378304771218998896855173207598229444146851198655313211831078642215115471830558514640394643289997366745924170133653050089490629036323362811785007916048800909605969220906425822059257842480166256335236720054489965629501071869015092243683051242471586989755351710323874622683257061991695858457125769747858073632700037807207599061641511060058798137245360777736703945891495786584511624215139212243707570509495382517423635343949398456027317874091386742979598598305961083499341421421453097366572394894792240219235921920990378186232203359263297700879149090675852746693973508009241502489012358105453436645396372303028926130257119129526677006579176667694448213331807490525143149703211461410536756100737073105301269523350695266873720623864604923039969878503521695620066801825681608508912629232809049411076059548811844925501399088664448467592984355658105108890548951757419103222418965843593443882180467728180155425149931681741971154481366690463129269999325285392928213998424173186642291982652547244669923168123960341363999269641793797474777971054872352105058931616927705110969032347277495237345020096113020569785526844482917709116358942057049438771024404291124940583751332202499765422928359222171514190665560469203218421784358695402998973116356198493789105727039710940420870663880986654102034063063778744231365072469419304161179532218461869155428671802614233796840446301134647262299331226941389422218572270464877480572256230139656618862429544241877024172124931314629506547605391313928671219387009063719715389925363917928790229736118737901448069133500585330080302619037566315515160391585524511253497794151336126308188594081788550647363428248191552280033856200519371501003426324214723732186618215474559304759735031646414035786027556368601572938305068318071961660782381034294180065169196451848562676763721826846536861025147745773935949088687237587077156465955845314795213188000829680928958452001191652802780718159505780545363282730646146992361521998143060313813573950602555168395476680322480096584334478523576640054355650861073642724557165839676987542787970029685554886184142644906651803580046239995357453155550756651721288584734520523375383922993692406530147819190609188553477162628511929003750752434502501317600467382745700642568534919841334005828427162715325419580471319541654819412312010528883784497560768788852186361023668278935541633531842991712225994731448052377206432698353209944144053581701508852959236473692943976057095431312517781625220587217645115376200519526693074058569472418513962484655090800340097013494292963915570657139267471240315077817542928188119722612783866794241725856149599184478928366695034957572038485311625618545032901063814262042124237890522055941183418010513559598710192506173728564783229065515698644278982823627012550148122250659979333233982018239588155724344741155885305247156170355106276512295808845985810537917364251520493705426362748383877214138498938730865732734435505099510451198798837193263262559535953451903725300174340922151442469945955104500359155014848988226122318700767168309269558220405385898815464772678802607564342856308122852335927821373989923711548330819722464049621292781918267470715039683794480180542627108171727227772629017858300790542771636841388374846813547231385915715110329849412254379429110328390289344578447463240083092600316458872453251200315331983433079617885010259273207011585790888047566577970737995596903629551930749874844576645571868065186409694026816680465904903310497386732728845317882968201622972256571926788790057027833552132397103786563587274898845641061321991001743215855524252969887601588232704628130451794208423028454201797970681821851441885663550386737631283989850612050587723527231188141695393446596117749895018378477183547290416441662776243121736845289016513150702329168957236103182230835220839036064308725610862121850863324648428463989465377127407132215449347303012241623695728050881390837437377274158242463857786124542821478078417462093868664894526977972806569273333813064763509657685152688680053063018626606051093571263939652636815286709642196469438459528255661408809453041664275513861518339188285345338205001875945425491228376213881723438207640008370113129367619206498305103742569715587917583744012694549830793098142357316792787083721369423134680760934613713610939548287764099571090650505289092990814924668752885783931531819783580220174262404595464224674344749405023376410458230437685270382779285416419268780017469901778781584292987582881760045049215655929538929131219459820096083071808882491965114178146558935199041616775221221991782459232104967275481920396405296911538671174507145869248364019168057367065985585010462847159022482525032209613134695844520574297432804607032390780867426543449987091185378024071066047607334516944858629266342056837806537921244739627338158015263970641992232153669080970221672482722225251281194044005489807648719778173840079696906556937241789809401245243977766662193750043873893013410002651802300786752997900259411495177747619634688652666393874632265000725271711551029796521440600943867465512277550689605722667595082553084396801193178109223808646985189684358661564147386496007768161018714121296243775250484828874173873963892975350479958736985647231134561974608266926961047857591763275964316006238321839165112784214319868914332347250888877934676800749240131547608507705292566938695497443845994687492593412870635624663449866878903912615086632457420337281635074502637983659683051952021263041451623444921847321150396146302233252233084543676228563903609219018980386280828468168599661318912005442194147778204750587958952410845873548521447013569372575077903166853597186643269759297750187577578535246254030902356223955285654409411538150773691937253661074330641134783283775277877972217784728517837655631234092946835780267001025484247142728084650198884777595261514337244551880483439671439238117684351612666429995643898810796307724642599428910177960980823216861032499831747231072410681964894089884938809148803068268535284218613136548895833907348914823624496762908596123338894205148650410493343162099694535302844132823865718682509286270812349986071477164069730565529059645746465996250966570177499492193988131435151212964378088269941404359989182903723161459769121238864697858631864266867736148209393788161875123948359891352029393391826654462392508045566340475797546621551786701040772351479651312015309653753393893422854934753086299926236898530090861463282208928739346601900278995219862670554480883378705223973170138074642497263731787778157320267396365602939791161687638616015294944498315202879717273863351012208829816797921464843111250574943626452462465540086947944633785549353990118647032694582993919768918215706911569880314717705344914507483019239088564723966436362816439564387073768638177932685357171907657803329204761153266469083184468330948854260171083859483833694307505260882501400595356219485869372708090677551786403575276753405597079482637510475393205120379555312308715752130085606828358194028888205477025618298852600523066250604738824031588932117396208991940454860585853817274289218870686379979269060331587966252719774083847923651709695321183653194405286704010307353535198113394243837332823765919287179643726561271015605784964834913353597883622601361800794718374782514551917866543868856985594679238317972099953145314112476375953529626242614062780643511318504794497350499672295450571147522185596500963723823442234729298989916508597001949844970524535109115292300779936374931001311941799020370450618345556923039813306600042411353477302713843311952122099461806263682764773982028932162918123955856477510775307096097476179249832647127932120527885380493108593695300736642291086037633951591121184317471573591642091760886917506832434101749002698002499677158354024651139864729360156327748492632164992439680783654785108348987767165618066087823300483585889549970908053404354532218157411814017235308706116538081722132004242492474232026865278313070782596537156112912974811097735486252392769927480181779753682167087987592515817197796351942462062792928341491006172082022334065297682983892302859852829279826788262099331708929928485005585579089500118561372271629371144265197439779957126307458208083757416836872135219824901124730985133229230012158727904913857337558228472229066026610790698860783549478105757807317106951702356716548649013472748629589336414546656803439000468949064100589983783280581213756462496532543240826567489514700812577779726414802395521442800520621230605202714981605249423252197163838221561933105575325521895211897812931853848041183326202252109961906154445226811690815592959974476709562698734177951487385642320658132672721631747515610987421902725342069364160363477809511972215345389257021617092910081765461979984140363715046613834987911892083761595713915539059685733925026060977428904670322476063827705321092395475587159986599694749951911280387974379628838426937242955949902770263825373998730802337322460499802955720943187916193362636606523621547843559277584795117803930717042253840343617103508045040200889034299069994382299529330316092502926354090356844568489339081004651557434108666083523430052415072228383350280495146467884108610355060449857446867808552386590588016387537833273671530957037208036463095767627111744001636159104877018333314923159636206386247940120782636917985532425601330089836760881682646156902897046684460654271818557114018047324981060678085319939827321797132768871440999921866689343347538855791135992981724300681798419799609869080778092580810685188613012610373705192887502849099216592032032125557995424014415975666157157871783380151146205207202501746316382628393673027902530545797309789068668467851241557536875197880111289068904870961032040406097903890938364269020183319929568892484552353641399447097468292465862755155845543828220420577813424899174095387452971661624639038520622749822253109486456677561119287885855739779083050813282895187862259718444619388792912512680133093908739282257822712735525195630535375682344437514920446209269544867995186434984571159680811140914572878769138639884487885478593764307968401004002335963704902621314660594383802686420696537895259791319569667849494977047597382179849382021471707095295917410302835221566626929098942162185604814339874092447506658843931516409152534638432080370217787674831196107235977913189249856671295950295326693479948792536595671891162012073921380807613238704869717119298675623496116458248604139957929875046945134434772364404279314506729263859176494859450814106574709881356057022263838420229620155653515881356747151295879767047829784339720788453354400568520450133873040599845978478869332145900740432780801354451594066839081228237946849105292246640251564238634690995099715113450192841237585862401483168844957703176716308392689809888371701802876370414325078875748761885820167967788025205385621993341791899787213006637202820827916875696517622502393916164340034740908828741097853837263798768475561006994248364825731754823553496466369439532301340415124892160006412898627352000040867135436911216637800034384565481902299442010245773209540222750838736863920112188731065799538182217894466762304982113136494497206341609241607698116250604901688635914779341517596394979933986303054180969607365316766592921274772398249057892696431523571564251492186655196828308122948843634535953877778179103350720851634378552255227398414371960482590534231018697957030178176172584182416076391777691688369746907201882657498147273456610327589738586449891286511378480905519455430125493175686412351889574122811098101393873227319687318944046838956190846765918047217228904955301794271323364850465319031178739974692546270867183671570881244239239913323956544567386226027074784811249123027067985343215778761822616917946527876284838929283671026800566167114892209274545504209880045019022564237848595300578391463763089925855978010865178172239681937109073503564211942736798669529805286828124826496818988638887247147863212129014384694708341008081853565533540059655997546809867421140011407558846056908193416677796080844423678494806052622307832372757397385016749938847586814574125531826679528256258680247179345903860032681369925492542277028364606447043620522742773011319733354139406278556534944419638072190131185959773126937486749118138591946292396221915115819499759342580841474376807830158689303731467716856100971619716482809809539815044836272873470890864187094039105116411822581508818718861617044288051374465831926453822067245135069000881193777035565350480503329816998653019969868143363261781039499539485784499968361166481935920076989014330587038770968538637028347848662790612144551117169082156616006903659224559091695601198100539780849146055379715766790422920396357819347016089070716837951246931850588303456175536729171060102820584517384760993913627970699499684805775129191852030261117917052695528205533040317596773002614991910888288019375085886568899117179685822687274595174865769914868038612177351906598607407751745299302265829840944342134935750535473806164571698458423829915666763433213339409382410236879048150932408143114514941393504292134771992190560747904560764833662904514165626090556932108963584243617794669324572820797972479510898037820491403136614264471667601035217485437183418172215008070908622931986297799938872340124155731536030813250093886957723332692700791313760921085918648875964095813728377419648368370195628320677181710501333182140408106116646575234928813483800242018551820127488467410938460907641390244664492457856485704499242301152513652700752914006365506267430134037942772821101600819994432400735245015596216168306482080090331007283010040963513490267480067353664885010070384830140670823494999865650908876722621187265603522275274042629833593743232788189458646142262918376316329787796366314166637591985303886413112308030832613311557893757059507358114322559351799605918723559559001774937880769447810957006755307371955167270752841443212814890888464449043454982786721824408298460439246470772488403544483920081322800322356209480553675310397854027353346243803211877424264879334331979705131568557784870876860933210915538990682534665817776821707991200255066493854787339667066485186773590015509611849336028232093221743880522576144911416446051140554038879742218919818182311443631698235895273395631305994434369670236256613026161677976097554960355627375968860488687161286902788283714887795473582186373221683422545212275015639718453535471055355229468846537248446875539247222563876321179724905998525716145481737030728736868732122458393488158824986717581675863794231881726468514085682123659638447012806198950876522856404084753336347849728072623042192014601442540392475272888007422518520596255196078988891899658597118041798661415724457619825749035863810067349368586666301210712484130193468018689598479610070737604133257247548661458578168931719935592589162907400468968172786857347088851152927002870991268242534929040256107102825498693073599016505928629079511470415561250109746727396537314125537383721849507959012437592245239385140487510231042240902990137281669923895203311107060759438226049624916702777725619584334242389953049450680430427416313388711548619601468950108926932553474462679645737275282282641630784041329791795665011607321551345811326746771282497865632027712546824393386349116022861330541742138414450608915401657994015705822311641044300985641320405116208461396903410194659830866978822304406974417648412445699559262113586765561848773204371783191835776339272079546457062431723111005435695794876815665848203491950796615946324563593729503158151802538700567982256583446525539665748545664337009167045041139471375148542510145298688216601953009419983127045866147154283151228492994125403438876250764421343307859385390264314645353880733031030772591147714744825743592203506428485906533618894184488547406405370411459759985812324068159574044886211564724644764856754749004814141839476617821490893511753311379590478207669622285769966707503668053574137786707270563608405506418803850892278063781107811820461290190872383748779635196933259733143225456120666480593343963483328473045661398330589739460679765772384477491029273694942735900170420967558403175737046539413258737512083304142170328683144496809977932402260460090761101448132674800335171554107095783283669642475868700601816515153617894116117375812519426684169647600665493418233068518723677033577530032349224177762831315110608067734299476880974489863705336165724646562898840110419891730492961524366661824501981253208635069926514630654317935163861614766234934206294770630653739128736863648134124838404153123432106773845026955236875674363978521934116998022131594941051168001778547409710208923229803034926134824767448297379358425360164412997179114753998734941324778093013763489854224464745590883066003230797112334636599715995505851035718339894000714083002488744986944283311221226111349875675757293952028298583408713691248090499992983726424508205577335045461282688131143449243279885031800790649604878989287484133972002355592945955346149440749785207723727882155319821360742726484002468785810904770474893025808261621859407682311963511841926834359136181932601886365989031001883035506655537735003070949285891082367086894161619509159473479713023364788393895547847074383062562714293409356157743726870333714783622143380455428021456421888041853854648332001729200768423480358671150036131708400303565668631694688568920612399945749748979111368103315608622597851096405075191279725689097722999849048484246784980155741415543589759516436630472682901804182229727295617971307804947695036418739758616653136084669042535784645850799565373013297015027836144465799083818073258960481283247633988299028636315918424736036340773341424172085200013718225519647384036044184948557620675509084718404501661407812310898629220514079983926308172689319337527608755515373465809324793908207326379361104798698487057565114915159938232290394455513061977988354309608084278436585081822164294555719711175700744533242634614703313744460911270190688220331224090634566863357661680716024836553369226466786124920192036771727286034753597493261698566934092808602688968942573002388180348303222568779035709298064915581848341907310403593839990109437398425751450243244281790029607104928143702104151224534504601889957896847644249147349314541039561458569257712089905988493958871834956115976416768899478786089010483458013438152852251505703412208425058019007675687899674175686370675106979610527618669899623900819616481738472436065391278110682212609563393775917948935967550771546887635000461870877920136773592280818777373667714303380118949243338555612741744562005944057442367234507492072776080190593229658803745542754536956496019789611363338533718868918544642069923671694280341315066737549156132276266474087847914630842532934990990797223937094239850985690086765197392071797894178989752281104548969494454881424099433920709516305824103109013728411023620799992964918071564084632387846401035516566206484380968578627877220451234597547333390202050256980602372455349067296423625538065507216835493965824799491336745599300571867018400077850530498605923778462361664894131869073459150252531376667999682078236134363398430951406753038139200601218216193651549360690661590303005722556309965721860092972155830160772103399842202339995028286242894227047523850559674780678693297561842284494647744009228023446389911244887705052430358891669209363628605133711244249026375781492173113270351924608797301215505604028811053008727013367306341049126743107714918214396607684525058403739265535668433453714487603770692085998401748683123008489487958766406423030044581262615790188650257906371583212458671669254495190924159808566845759739815924317633673145581674330021887188574626420402208368296513172521893229304508336934787546066365717557349168168078362419337358640607160743222882451618166545095638348727509949275965642014048333875864552635086470722731545764902858003733634755284050737663930339057030260702951355890599476539752474660632389053175735782338523054357083854467012960201055308291445299354572446698884481169101950158074590362448817768529969573821969195221024495641715713258041118200825186213832878561641660847504165759516340136676566919529145730679016751305935142835709152033877600487213662538613585313938420812974185483049667455592197333508812530887024068975699410572142278575595749610975502586253500540541225631275557951921716284107320445317973339049257735562550353707201509461064925497418129313743789194953180421613158099587454179782297304151750026070875505964619327416536227345175664122068414734738476599900790007081107746201336931409644401581044243508099871752974747115891305006142819968719586661225979639681570588959917808467641902545061573352624988597500443724988443736805255100552507570723368169970205599181033506889900987686878430082735088524352551509514235098929103673987401719604472324853661946489731542027514719856264932763831154683591694891231972267134832219256313976407779073313772143954284931642655588780549155138846298992274497409142462749678864272031839893801398280170723999360194049599338421722714643432196749008641158159833162689433466190303369348389384619480755269234960547620569131166753193731560922914376056276031221212819444346333531931540732143306071212440824758212869739006543691723154201669998567519260603812174091143704068582754509382419900257511206712208762644218868421413174770098208908174365925177119558657632935943966195699334974229490091804679866487472552208974203517079697011922014244132818963478726148681307446591977064160852054939775013292948286571687823769303881318831990944688740659582366713905792726764047598050109788268316606432743011840689761905385436970973516494911475607118241644546342440085002237711806523692078130679579842835989026445514919452800917661088785820690720735206139762582794397424570180945628969536462361155139891431855921197281527119936400741641789563973178984615030492181139425785346960878976526041564677391648259965632107179752353713304056711859303660289618792438159302195771136856408414902759279761385871844972660450998447999531604284562961061529810171772472510658616281141562056451120928120109759874325117219850785021706742659765873719804248963337117245814776986784116428934562107826984530618101581678970061710346604612534279504820036094860468616253706774294517317893424627066774858826518162242183181512064134611707188131398467002315981161837035665024253684117091682762508482056050882449878196289775249778988758352797073960846375782434557213437388956497644974744965278490983978752728734596200768511492989874224014876211657610978798594760564517939321934007942741494695622918463327072871330826826575474099084009394074903168461226316503983901376068695802170507684575076930030974445113187211012523873852747750817809739968016491950037419750200999935212908431859630075243155597430251283399146986877301246952863019668995951911451656321229684984882885168960640340512522056084825350454156038683774935025438318569913613557323331961225413771009398821594067073432451165421177258747119697461915218117225331464856728499961616495636294748774674841210873494544970138433721821474955603495676754881966693123420477537669943568366901952734381822403741801565829644039671202947082726630839501443850050278684227979741870550880255605355306265098097322176254553047249617341794871541267176843102852652737812810839942514432081085081267264040944147589060719710004942683604630790224328297390865372794995911975674708879085504698934790831117818010996599821678198812453334972387321697594942459159107652095939014822334952356571469977244159727841059707176398235168277855862733848769203509803194722333415842275006371357565965994701972655223066617342867099429262140586638308333944252522532684913153416595042546015741858553509786426824002336851282877742349087219676237097228384581018158223714470939823578386723558394433445013011632968491299592427545739882814801374421441257336546723987020207816806793807350648268593795402258764941895863384228449530800640864655044043865728355659981175668075216979665806544088550079536210075330541916474776698580333443969647313657077494239108192891338632845371450319946653221997188085431393368531879018461228184344874948298773549848168068944440483753442064236226220023305915621406330266407214949216066896253345345611897523022069652019998370362915337027189347923408288715294047091117942591900032574775840397217881929237683443286433280429293307229189997079399499862491246953800659703478087939437994274205272095451651599110295944071407347838708519360700036487065662123919382725095092282495531485650171605604525679186231452302701722222622550085210097664618022658876569433826437222578887224632432975597930632982445845196034639550432352308368431673079761880722020427078289657373404701586298376908781322480733560895897979515641467411883901899313148333747547562090509053797837063110365701601153781006963200214372955477705704178823081984917002916663142304754392284796899185496647731094103163461826271071209027040024885002105311913986770034542583472299242920285549646236335013834425237051018308362929572828093710051515134933482810112426722209336147564186941646396567103044951730142651697069553351184689978209492723997327528397338545450923205122071216395612988539514375307108129265477787253054482459083749072844210036186276556958853623284840594333616599424205745195831114748664423814366564018122670394427994252245281331448232073034015001841454722398537868700966667425436810831294703072516604847009697896296390929465298933657057082961169263564903253861579687480139236718717516254809638612920835907269783606173530195680343955991596876887293389922291081617305992515125383358780728050825167521560944179654170505227108061550757172368325119206492441106674806105534671954941495994839696562618890958248168848554839550828109452485367939218715878340869387786267230494400224647252899791922705907645566448150891903407758129116414023375871747390666803496640897701547167359029426091458242810618115916258703878193396949483230037675346316882420701885278489608013661759950804191869121799626178247852569628771998658152430348326758356792617768048667115176138364821735209032468290334616527009917736982549197539852750859547883275871812368401608703921083733011744508873298873806861173615769308020592229863686555345760415894168840532603200898213603498945781227013925884109880865590625368793244035952402534283699571747828446212509314889124937500766048360855446679418402300720458811649201844471884328768752554361174530381848367233358671949869047667583977608018759384243655283037666098587932845568552343009742647598024042662700943030886794128952588060599400162335110776703669992156900635179826895967918481587686832300588278334274212509496792884210739476085204411349086234660973471033011673569175239543952773661855490514995529163459235619692118029562624964769149555060742793526537732637821995233818617696926787867101380966340119877601059022505584273926025891500942020355502939982943265949098956888540859986345915591097337409751547896045582038923859048174263670994558727053711069115193863318932231685313506167150273753520037096019625085327118957837481819393601032768725950715659591004431762510363254488278961816522697549657212545012121408023477705148238820664223104827605859753628453874843328175464005382359039814186599552633792040502158058896638747393578727192791742764868013554040329368328165661164691843407161811138753764924406598702411165679221677732224417198789003760979026600335004332586976346085433190355914845678267398676771835835410910499379262289414647883300064185164344216071879393280631235675983868862280087812413573219861591516679922344407800592453388357944085089654072758634131344023469836040633568223859328783216628974563727796427688387080851213034167696287895937552586843528191119819043292841482717090537492842947850853540374561670388583896870331992483295722925262683999109132688634847027691797069723912577020283285821569645896026823550962095939004092484600244852995943653685765404020469030078366111955152092705222159426649211623439037670494759443656590985720254937147660545019836430147473513707314433813925873046136269512284845208574181904176712535270156717976867098902390960807926822037936133830074494976705975011968421308848834117563100615761064211048347553710598869174666049826534052750152191399896746592647571147870178187987139241534136507547846325534542847610742650009574321584601238778806519321781849464493090437482629935676061540202360701974120556022207850457046369981167333145882762205058400538071021009593853255288453825827486031756468826012642297764245187977270332674663546437150604963701270719835350586760139536603050825784792993158458149678607918437435034025740120346511607690877878305683344377674991763616952422152034955607761652393639560844092136423279318384151968728338208002489540415664969181739421827330279950716146923766666283098652062212479968488129918270833583259982624196915365759642683072144345988660022775673212251041365716136990733839462954366359626806342551686899805721568879164475782035830785277138509575944339456990355741513262276320828028518946850361869677473797139948524708058789191778949303906672903085448162549920520237429294222598814268741833854290374131740698010846288803284796034010265249615556485527148260762360625451655741987365141105260108498312413404745625596473182238464283715003428054545055445013087449963509242871719208050392515978747398457114516465631421114202784789019776160955307106586055463266921883568100759493650826395691694938231479559783381977113985894069364798088278252610534487186723845763089656749682837255064221143766522678904791365563483353070217355103502014586687653723093601960517848559891405883656352556832825340790490570696485986141012665016940521198652763238777510813594472441577165575178691163478570355551131859135549116420890133495504418171930273491408257463650923555547440280117756761515333083193098077078737030521928916333773205375257238967815428246448241191755027241095745833982514707386938046661745949255843452263673284885638296362760344736142919552332185134031242280168006397132766855796079791220678779108676548498047828755147139451611374121929432339691618385585424902380890986291341494097315624147313416222013992496013760284688316803572616869775656656708557190398157747237471740321770960362251240656878075055581080452923349071320227806025630159318739090283284195708625387998727874683868810312403103344746766511561308753936866648593639213555641031357480607725740596306581391147256524237945527688452642610700753607050815868106708339004500919979607287781724473446720597108735996827769657049972118260813447888991046513047028561334036068444791428745324360309417806926924909886561591725389341446110927074689692752101959852880322492219626603635938536936825131616872741666274110057911801873428719347627900947301614075154127745404897987779036033788907276924873786852185255197118724739220665777535485834551927245590084072204496189733214084966474575319378626204638435763130379853938920313427028727407250165857404352571899671617459812321030436364583787817815737446957615392474824436322993762038980157870871506484782463035848210165409616553360104461424094695228126513913769216619981396621218444550828310553160337134526740849077700304316827142794865084743431120811432115119709862656543105483629131897769296370441980777491813387673895055290548276180577215419213634764836401041286745452876870235263882886862562935067146759069621149192306328108628838885049659263391917854457751969268700201885917735124948660375154144665239115873253160973860238902214850818756196511167183944908421682548572312362090212832715010100492817610552146560267604203906557070829143207368660688205102926820656316828816355940373663876792408169823259177180210643215469829020939743573488860961652382369197501003088783644669776045142660210541778037135011365941365195854045499761311823714050652802888317894037182042581849014123701729964743933278155195165125485108521267446233829851584400364809331511371069185083446880788486528622704586258938423807983905540634749817138155832265518965620897580757504132334654096861792929911290987799113185716125823203595469798650320817740316150779731639633062463107373764437199672892979805782859830205228081247727165489222389994113420760931178933173146502303438707264843193135756129957656160808451595634604407684038825553657728407774484359573240214650073606417161441921294523890340779786191118158973706935545169083818499843589707656737139670422338350750890095126663215523641809359195391022134351212298133513107991625908068084051285936676270338559867130682761497956154906486330818645729987969495767219555201593893320468757701473914748778769439439039625216235557203426423903879853019644194240988087224110362054365116255083977037646500799331125620398571799959496846506954168598807174807275451866495639409926366246354204130987180292339599178747277680836098997527243783420844986497013276241429977987950850146718283934387316816641439911134994934000455434901486849646826927081953819260997685118606325399967769725720322130743372228408231823341191328803725212167412203730114740100257743215875913649420576816893961054445160752872689529790473164769571769390091095622176328714649556977998991144640570957104016784391891929205260701925156016875484825408959170696338315486954697517864657186298046404207712093213675271849262196654085835659099103216364830636645949163049818683888464145083097016520389562429182860567132123697154764936202019881652429755611436677806530756894120335605029601342763424848949983899418932037836304493801922319898335463026240460047785965004240032622305537316056540547653585823680355578791522578634815049416142689089901365041619989111086842450298332738369395370692735777927921753243106286436070742847210280516773216856923763016943738875213504465327405800694711188963473867941495875045729112602548646322597608474065828312290986445271404802103621337543795938630706584898312645690581243044846342673711554542451598103232201785020096613004622317771193673831844330104546371186106884024510820873963681800926674877911306331624510209668068242860916971007398280462399129634857715948287716202734695619092032355833858785782638110483524006069825404387184219700996989325256160949160504637940949610667783906580548108918032587205733923751739062813206707742599660592657049256197459119182778264550346483808600613334133178654539657698632548954088258950262192854309185779943642375243383170325896011545618360001527366172902038979984958651521156967466313060477394917160408041978366370671395354452851727636936671845833874726472773347030384760207820371323746133020324304718309948359183070091570294007872002285237646351844977589280363106036701850636630698555420437354882224852635162755048282964732714067995896414973524381805383753191119823626505676578356031232379461065623861640796328696833316095254731082135924329668166328422259682473858182673954135426685822949226715360220653460441189054016433710718669772041233077481585418313804635804746770332375332607235814474486008793612926505750879678377795243176110698626614800895132121747631890958627365405189127985630618474416950889109356397856942681290490884677393002709594444261668505300125628278441557841134577604717363198829473794551068474272100772942628210889919157818541507683461911156830082150997684423526758006865351540447637273087508235041787980823868702288583760375420258493663152356954637465956329241063952742617049680707685149323466659572300275245964501359972939251534789259195964889290985310786345549490442941634006002741675122625858378286577963714426087995080896401745384233147609060370882723846289786082031922550517230438037494502499388421944769578265013196306932703981271543309377316693777745526391563089467480861352011925050706573713023824448002820812942027604617970269886592496879985696250458901591010874533277641758310404206391158127138358920220831982613512613884244834335505075685734834230102067243728038481409886849620323670543939220795151117242075947330511549228072127154156442025042109620479259474004841962583844684208100371467278139426377118838348962801382655069169618526547800217050546184600545017594502964096045630796664230767712465447978538318242829478295804884894036257679235612901149616960694164249967567958534000370763648146660063633779714914028561875881424529707185534224055996136830612355520263999250752011912367332337607255688251152600214562327514206948174576505204030398841830808683866813333133590352519386649842518812648856999433809546589255882128660081160888704717437027897612225561254292622806298916980140652849130918680376221331999807077877791750568705757154829238270327197694230446614962211655406754122593406821418856473084422585777043068709145280664125488497630372299184990303820852428829965044970731221320963265282091290964384818241295187448803031400445586852597055871125790598350404286659843488337650628353677693293193350751444054775879705616738907355481511860778839046479462187503791655620169338290395573196468065131151447084252112875738832947857532138743413664876257267476853787536137602093531665043196651659573885178205397077667498747841738110694790378946108530127724983785401122765673714091719587930884601638795816403740940581327683491914378965632999789516501571344717132226802126381533328016033168816104208878127338652186275346119001909219586751191284569278512700530694335990469713980659627957467197820494301999992135428556721263135938047847989580557332356301022692497743709533346339654883551800156542988315525627232559750682962484114312194478652815234501269244579024424392302023841050193893721917299722405275275671305826216893245217803826449949302894140376512823150848356853933492313704207736521017132111980157553938294510416652134130431401778211652328030725855998629224268132594675591368904514849081265388997773140517284906521299081896822185602867520070899419681558732679286650993714498951330998012454966911959586748110627955307965736712865740956395226933887521984466827809556031054154954955208315561326253943818923809625263586589895021723456687951898535010952710625622147996831978037910302998985268314990903974759297127240494924019401748664496552352872274099956271410796739276053231162926757857768078366772931775497594803286757237677824262663677057610913291245804543484821192089214114317640610447010565176762871297078613106432841706652060598731472668090109118768368838088258409679398852114794846373360004740386732791926218665362156318263633376891483758877002526244348628354779782014512880801348818970007060065147839162656477580363237696266058543149530125122803822713490477670644272642320216554277612698555468238787346887674696762647188454251324162744127862531972118988100956315062725147952544043320818394792003739101619336734907984455889476753662233399037721271413415953941061436653056862756432562878951614954387971632540338442013543249889631554554116644823825788187227059544621640974486121826497418382336068855507059206928259418714502547271707510203207042519162694733991940819099033683406893345085763878484605877954102745761275143877545638939007435399671919849462042296826464128953132185004517370466943931071883293450490155923286379186085100653356167563658689378340203357314260518965819614463934022884404059120815314609293579022083391309754014703516582399851145907995252781895058465533012567444904660379607802014908536859769462662923187708422309777764121226035277413575249189125625387303851459952870334793530700316587734133822238222928362027824535314460265184673425560617690074513286867255243871691659165366360212608587417651405852508305931572505041700028035690272874664274278870781624925086938084457962192484144399123005847435328151153705784513332001680925645986945239609256146193014669826013908032628366656868624864386184355701957842284500928652159570192346896071678933886183706013187362515853108220484562312049706438338051970074952458819675955503795699515785025162758665898367825338496969908465626819096683957644741894120103263896128291882159658956232798353588366304536179975108094208092847968496554826611062885598853596722431667572490848415062477131788233859432165433860026037659375285743287605023553416652923642235763992077784517407116805948545951810546988787475513916040823678350399669866757114214105969456731242517457220266558290530615934738098367002592679304214875963600875743805060859024274964258194174303729264395225989585464352578163397010507515216192245399627852179209184034183875195477626781752908688593382676903993329551289199643939855278104889970045850396326461189931502271321428179569867522094059734627106277544539454342879648839532712028776996502731612850214421920794627425932780857901087944160302736407064611360791392660888161870096686833117481765919759167992004502090013976709705267821140105378335640177422980983508447295541588085191305555056308139321735110403245780077291122183494649295967672697362816871376453684670792702247537954033925926875786338742694643409931644646555622852523180354588613765704067840069011996330761129551106059150474596607455157840041858819312949142578541933332965798883529634658370547489509725827201971983283142723438020842810697561315523782066655643715006856299412120927093965107457790722556993341897480601668615581854803857445147255787690654072628433694431593487651479225769784155928188244726048348325751891954403076415097339324935811629527833700979116393374392246063534426141218431249890101462748561535806191597189378367310698404993974814235112755201469380298918531384853801144090478641014252349970767837009546582675035367126018607064471600133096135919096433395237288528667097504789324947125320161088901867368122124383218699725089607784346342269645811716763380031886002452002064243975209936159101698959274925054554786548709935709039802589777205498911952117301008638112145512002557836164322497263146044991008563151083877862291196267242815997167607624945464596110439958356094599518003978849338618783636579582882157218522575422077045025742957078669117930678962481927212678508723812189384135496969566492713688355803823955770918821605597584058531236189523503219296002492333891765193979211220158823051663392668428634526431771215507661551017585281418894931844822012806841999577346090670952304858543044708282113175585921648049907561197854167311391494485408902752193347132285789494052542424739793853587825814523259286298382093778903074840685562112828501255015403504698733724076579659759959265809141764043711233902623920517431142768919636255185450523690841200788796910332280889446211193953056460826137973099353592752847844822266129137318194860120276565489070270258642228893085809879121921233485182820323336249539886550084710334996139476093321569431429339885543663368699286810984882720232968450407185751144080063775471131256062763364807319102955754139061295800213717376416353914881692773629544924576983782751787839267886560056720260384544221725462163908624958413378850437787824697451449032937429782760803678736356504972831390090790634979043887192225478589505775082002659424837168268891788061628201922696270016487621660891987380351534283284421709887602973017689933974899358500203555532934606464386693035507762196851603909640502409825114671110938406346007162049421272623038709165775395716167204027167384885416353236423896203996692292575258846408369589225592306782159768172388864040147325203306872866082622062320476059136397571306269868101429206878241431559459685950788726524189009380406951233029076784852715816974286523059812593206580304531915863641607985891319855458725819567730128866818904469761260398675305339195009407001718634354348898675515820748055806334469172923372508282196944165544243176476611799805421374296008375524170103006080217990767601558067865387017802611185447680254480820161717669763810910494356342608679901777836585544105981569018336283495233469788382383184160376396854784639757998567630322631920257809839229751662892285072330753645048265675351046178485927636238395685609987340508423860669028079348582184042613640453812648638641344059004257516140270146338064581320112224340626821596395113113750376480517366965123730699810789356987246032496292259224239965220154841899930014580632871523759471571343681837891387439824019817633216939551807377186467537302081350447698615018067380278063786098546398287947395184310602351894865560716249800257891768376843215073676277380081481972139055171775405458607492056144924889233679015317847585454771959510500832872815656264813807966550396494196609799696768906114663524806502297620642758988750345645724141701433665763120812259683564630732052429077380254323736401644700530403507038497947830350796265253266832565158117662958693155836782544117225105439182377160949186725554362594232868365143266260406687492497533712130074030673346454629311502461648297394679120049431021345893724231344486338682457233466109507571060505382019181025432234342398839942210124787779300957337703240629949957846794762957671874822504529456463117755622818963214321083851011355412403100933930648107768211136056608137241144303193233457962061259804820513273772867828297731709462141863923416848179832664556666311498469873013716879218840086382764702776177991873424056691330553509548813899516536790550407814804203827735965387717407409985834900753082379490603455903256501293561014245109485524214803314151120211224579912594762790004335135189371792646632452681548963606221515937493251441002682445472219674991830906844829118568089703618328325145964842713363160467094173297705695533619326655332837943736963084779847459532016124491334914965797408003447832894087306207889591641967539339631778741873242667166901511480733891426392011568766753567867319234086380791967835266459694611420566542955207173716103781542920627439183327928075934384016527216318000809649253506588938743862588226013808580335565852156224830385988917734447257972592906471320930594357216422889180732636309187744732773930003435266978261768938565295487200757614197160182528838854133757350622192074704451477189063310753027049971727939468342769671310843312802381101106466378730892947083444167505185729512283633825065890652798654456264382294226708549704881853160160289723476714675152134251410028037656635039901770750895872533261657585175663866137192204385675504404809090339952716941818907412580130890540066094435145017071697467497969383216625164603007033755915206623561333805655561498162174351304269068437729543324896935857086152513275797667771384133090219794061484245908134569403082059153078503110699481174224930530087767684519923466362219397004399774772967789755134536533834762696712722735596987407075330144656262471572437828466417355259574632723515409264593930873548196581265163096078630954498534593225435289782283295107285941454189066670867190086882542098126501803325614708404767756039769141458036371078388945643343599894055916692223762358669892788096112722310686115697984437317494337751233546332761562407555886184672030533704784572905369130667344019965808315503353551105374065357341068082403427947489902004658014604710203493058824916659568145470672316722511572459530336424448437058367170085111083972508820980668492305450975535618505968275976791468406237744474595871890955442396068679515304640006977436452933944007091714480353664345012776569507354326914203381434859625362641730578831318937053442489835666064005323024318567898017179685168213739235208812419201672334054576095620950660336365635211055280740171170124783665750918035225443749894343297221983508937822813764753417480135634082001894961134162989120345787921347834452618657199749143438745162973308121784491109251382720123248857788901822089083203684368806860981030711176869143722340191444413221969576723191199273341931911685598315961794091356811514755011064020000728658672038472143562477574680308631419551419667763324633056325001505064118491739630172975563330081872674940351506860636878531364218259622500150904639881735210578254467349304645129612495660868336340129900960452974191158312406254597208457431533219256532725151933724923941083545175907154146232314353257090503649329584178529174290638182528792558689637094831036847381710921582462332187261671461077745703420561558925194213319509138176470367646073515790357172081459950967383347649555451605937548576472275291158312890574937157540102259279229256186232494187584267334171733444875968829727077534712111280454790767295579551928737946477638186168013686990532792709509816868960955202046876601762831506267209531687808944391282996714602272033760507561814436592726165145450279941964795901971835391593459331336327265833728249517094437020429228916958914463283045844060072929177537787979247840557005058021140201436294987778597041204311795015961101121938873152371963228760173637443266610022888146911961874592575207912634329302151322268840380911885794655475727212810062054526638897883200357859638434940917086849796022116559248257346605752011969089627990517302500375595865809364956208461299045032055016351660771902277747058842407056324860102575791472635904903237919236138947142524988289897560812710966035162963897871771164983796723078174596333735571436085563959344948479827881239991268948966215316977654325828663954580833326044584438512364495274346896492095358397078400758818995370306117366357904338337293703591099306139999546551611194915229158609817430036777875029559579209529612449929724050105781555051435532119123380167417679082349913991675086841180775103252697654728356077497498722530426878752322442244893442013331217687173748103804010308625135990577495431837141917924953888555490994987954057270307766873338576313045853679961927248617416916361202126704949679451710264857235560614602248542369505322941116347126606278112552712578250944859566582911234185456992721934208603966689243208924512240106972415902092280050592488347246298655162453878522171047882308266326873179983284540705111655068188187973068490474363422495050977746702131901932935827709617369047155621009511221078156078767446345716198004089799676455048370422919676666005071392307361506592289578758907194690144589255941845140753094703249734686891244671907526767514239466803303066659336821715967442519311058666203109298058756883179975501291240948424637806451938113799913339729826954655404016646591991903995104322115146733845494063074622994982898096287743361276326239519235606554917345274908043703577566346182738695511821483499600929592806734439061452959127143445138573384520399042961584065717684015612223706105552620741810422266087924082801070898513766777333144345631690229707454168421837690881672441829020232741500620061324460893991707454303268297133157139435086499286815336842842219371242808241076619216474040949840170379192710889203774694126300262779726603797147629526170439121237167299481386521713953595084223993679762040256166052946261974030855047594809924342485944518029308065500433841449361645376186552078174117322648638320180047389289169255217754971215803907476087252780607189902067414528638580040955869958601573624767389508874671916849891476651433238898894624581845502442311793079000784334331117154372963407034392438769356170709006864466707789549931999495979579589697622118943485398499171245740176524885515775163273975985444114409105919606258282245753568286502290120978176165824939012730718368450663823325621211395918684508718869804358850977220067249396906855765068397348546845384534840807879644489300697300193964345412144907990530969697346158362687233881493095174619252854051796751361882742643886881593998794138816407629218376431739025921221032735370844621688154315848409815322268220741926755007164691113643488434755160320574230136716862561974051340503782804378116354918552106722884181616310377191346115145571948198453028810431224031241303867859659028734805869144844435099685558650902268995002608703090394815212608046992260615150679582737003317732716761605385946439702814628899996697723863160737521592619098064752049156041066753662253474461196835078445532243290637096197088543220089596056045273965444897548987813519096803085127038281087229828513943177892750951599705685540683392963285212180552561549220982608395031431152739926820774918710642180350434553795508244388214397884798213353670234415347948044155807691212264134828357068070564575412532218615904104945247127472153540279602611036218442445889402294813834776645487146406891403503884080002352666355348780588533068250653977200175366809588564679103155536071778518840488864200410845597091745182913026467548658501371796225830697571600435086790235058999752609923981940748441317131338212001268664516410696744996876182383715796511876711144011660642056525119124392021949729749069871936206453371161138403106577549206150398501519159032076638161880886084919663547163867955604221004837391604499988819242435746620992547406511025294871788346222708920248110070151938618802042039735932181619057560908132553063961718909256508670105282489148042605728337597487415924973421580443161778166549428457216527487079695761835967272903951291523928217584152110312809196362527130068412054296709073842927993476808926310539341942264595403010118380250793475014939627971830002265190342838823584504252235060401179564135989180231442143885038117251175278209296794370930868412441930717968292320286878630034310406155186481036453016456925354348735428483360334622221803893582516254424000598425884660637150961471382440104662019369939035545820073719726765550489856455369794448073938438703635699686214663893588259038324125908219442397401438475854203933020448102280597262105953680474814543696909560742603853020788106883819693008341151816601488718147176783829410439907278091215595096747740665455929655915070013544885871721551889179814352865728675500292009918703915420618660113846376678594716965875082418756343403241115325988372507386892864298258350466916966359732807738423461920407741782509863249793351643912091314304983224130202746506462303758081671779418061727033769317284761832300832250144852727443989832506262673597700036222909311391431842135787940262338531159776540236296488684780811628345821034908008449024004128132993724305587335848427036391750561237546201040845076630686648293775334810287680854307049805536018499120726999765355457366894394657678615789089207603853634786288542737644577005990644292694210672024560233178560108827224544025881859743643987384840039396647261732161081876429419792719164618695778968909655937305389153656021169954648400530354811103852840663657031253844037004799810696967608404461241807908392145310936277746869385876895880536393773824479152701466464022604620787880817210142221986841981041914423369649554765169840413080611822559193738537951498225974237115515485704583983779695517471574677168673291724093852367288207948025280923068070037354790749004325933529290725022130863606177583059242485467559185380648312476224957046565276666917062073723669433867038731933027650505216092640018710978435947917496674408399672038965023715584419602850869223991328564857586322684319630407736439250937938654707519098710656144833489841995511249668232738020530702969235848128888746469687812940302788510151733779233300646361860326155325103647717073689691933157067884798673399644502090557265332095724211353215223629690562190916997411651581303469257289462961212786829558263362214141731586717415299789903842447940143238680553252030431707690801077613657057472549582739107136013632041617571829102901128481608451380052999181725220281501046812112687405942351363260775459907106671857656187857846727654628007647895606826473085961143866262763398602689523058151487744531772863009221205644478494482973397754403904528560910461050158205288589716644529054522981791112797803119976797374398855802432532615836366156417319526364650306315958323052470143980071382171281719935581305699552117659492890476568016019909634149521703315496274453265310768507345559772271214062513131703774712214672198407028323064081889351154810091263673118867998086972151330778041731348470441301675797606920360539731256347346007155808801028540547321831479858357869212575556323171367492163468449249391914461158062923849041594836257098606478422128199506055091614993690166467695209848707443132874069645826646192484867826439278671541395594828855497030778085209665367390433496067631010600848773608002270684888562024714739208466192063707822784193601703386343934947856622715548655144419687290743919230963256877106913367985190948113546368468607079819862379010874796779561929827474354111678290252592236768779788406217692237441655750701307700052056790826582720099654984967736853869829963692539517925312458035509460758492600937586721049179717417161074937610929436599374727361782031714378301186693171044359782981107892672435942183806329321332008847791580773635349845749004704649714744284022196680221235642773168584111744587915469512809070003490981928328284761900335856784294287014982893300472329806786176871738156672087710425001701803937776204826961210502492076080745554202288194728502160424312556915178166003463018729727378377238699229508124916911255575042399314495056854775175824207109208337879565967917057782045047833478293433381625850006504538045413029693588515521474268120012103712728310033971898490083519824805176932698640105036352091301691196217342344681463855576481187002069589010309993926644386714978971777003724690678019171014601930051881537600258392706719795263374577998746270792369084023892178516976248764857535589472927556964394493097041346256794110174212918012901679890029562150435061128739884410245243653918883925482707456431910979366757224283754485191280637595468629648890214148355882870165415910447476069723725492565518234458933320702762350980213014290273955724931219015272936527397389846892900519337775757004286476789877177167722557210586907836842237619545376992115144413798277954201747669342500685680723326617823258731757293323525403045819060059040257116970323807214489891529598368752991768783745158511546767297085375694049889706474977465474866140392879074354801256425514478279086064836927537095007803991273025858085805814851131877667902741469394209245919262847465737189218955505275711894433974530389861091692682862482243257248453561503679296396603852464449787061445067444150811902158723785280106746719382984943288775437493380536847297105313313524815816459718697166615896562740169422537501025328686033869930223572032912887458714556781126751074141807034619701811360761566433224063188503872434306974734318341626172539720011829955829243040756119918681768504812053871512865082787789280853355560678249062834642741419050151550776648312880984980498924039085276349631676560862524349953899959443690670625271426846034234235354075613139233286905573672643172353115267542057681186841399778507211397835540379414196050837455841979927369118391302960532855135671572604075919751341491190075908035445132663522998614388357822373631623116606388378204884815372524713540424972900029394102387246008359763783756025995165884765103778832778014706671454168739292673642941722955371462669922110598915878971374388511622197509141435160117290020221077724450130501223014379450996404183986805182711775897437894454044506426047812173126109731072167001474770474686360421915414303123705728104118872092460785400296091699541312256599932550563286092162563733644877800389435177524494596198365803238361067737529479732179779340681611024940186832528550712142997512791236092114073018460522646534620827839968192670397285277913246073945576824070192317900401110584602874434810720764884336037514055653787668074008798375698864108632505219938840050496791901961124357173533883124296155014279194164876401580512771813669969076099785787348567270510396298160372142713295728795628091266463921048138405561475861141925985241974125235984905644790188057841556033796942074142488040109395387906595757752610777890750238509873600227538141005319769478137494465170239998201232252720055003409316556647451496947590355648487770643811502384783497185837076368103898754472331377758717424436089418314023895452635960189207743467658765052616974164952956136912481193280985261546886791815175635973887427982441430255426043417280288286720136981006645961346129314296153594102555079972204297471406442837010026483975746868050911500721571957932085729734766632837510894979446181553608827747219750882463401452457444825146206968716875322462529521276425698855921323138765966433809785966777743471989423422485695912077436033153910736443965408515937134593495564580030958272984824261249800479565740475216728523773578094818983551044146016724753608609836962896946219689434996527811811542666271227961671961919263819207378563288294930446048088414405819581455129258917588855545907451578504665880318244489254274484443958144402119229724083007775411003372268655283554696782215571984104519444797707648569870998044781863204395970084555850719961430216420365714133638783530643761628327275378228469006358154519287225436426278583882942416602724156138864063245587396321884432679996226762840942243672663792731112693703413163692213650389556360695991507090668963642803113949653394466146431371809780304054326183842883715344368994050862323264851639685582584539442461935341153214601828696924826084341268956572661521597482275430729442772754251864443797925701415014488300366821484860825340136325436499402196979565050554020231803174860716635239484380499318733098689612909912985434392828198433148062937398207679903875438725933119604981367762447770516673038752389826705024015791351423796518240886851336887885271147110941714534805650839900333534088808628955921830438940638986525551602353401607793114043412082975072388875630840281528276224340471488152243215612596446705290240739204145107705147719375637617976903892570952555271891575318594730818452514424873427734065300270092348083122388749057135913447040679495567681798905728148588089824884895410813298353075553929370154821581474228050842146907318141194866862006402052139491249847936356726514978738324920466231068001123929057181083785246216617851666430422533028225300545637864485667759542797930027292949587581605759799369933735450188195007661275992410142003303999879468091350529060868964505204225092236870403297232455967681107358341295866806300880744268529115192341897896965847588032889131992844309347982217591877843573203136370025094704832015206918490844307009203082483531080022062782505898847857601472581773761917439385976142108727955320769078624328499979960290506477483227354928398038687001825348978038714412287494756604196996864332904648256285282623910313921829382512547501816914795125472147041680160069553771468021337215640439238604011782488423210499896550516711508026530928076515643761146190199594909787844940622381988827232074038541073972255812491232978736540519812456836902881038786156153030432051351535697877654598943435813421650122450715815927580062195160748462602192303785215997134555120174042604578155580758989417019461624531389375827662084217618926696284999910397382935986728446420416717835391563695607663926328020637591281708367395854272980653571751911175489083939684554797450437731181459610453276616579951950545656053943586662141814008885081034594037823255322259398893419587178817093099600277092668382107567261618401302813244353317984420641181967899373707085119788674868326933013358764350625708669548047210553460244211753860680508180393255434696102757241264287274498937259886825305124658075078329710255074769875887067703762861634207803111443829841611039173078347338398291510712805477735191839826118411861987748292739591869397478606273013550240133967713632187452965987064942285082991912733503827202671777004229619915650333977727856637989653004347657319455221301776383596820091177656965573825736015257124537449830576880078316037061805752061436477560968173308065754479997456599125330161508593101251798576010668301857041914084299611084726043495051838754222564512872187680266289791818835413004513609884249643512826270209256713280720102552713751467340175725659688919638734939260996600998807351297673989811387524635615202303006716886545780977468516865961307096526470862790724533946478864554112070910182831572514045769298489535525545444239648985433070420073825852194718483446803150850413109972929827393350183657598838334501258362582476582637674911794008741778086964462206266745833973511241221284799930539450049447788503570094512991319494920477683198100828959267952554211331099482005751406237694649358285263841441429614285108475725462775228524792971423073532636267362025445732756377013221928878426409255529811223876276474851654993081626603315736927659450842542649570738003469179988778273294926949242116320982891778142361667677047190167516968212622329307404078365687350409249348183593945457273326135341029996764967261814409352437610247179305816431320709340227637395994307533254903222391165458031464964952608530441869426484781567975706628204154845473109002460052195480256266514100201363818389231125850989017449357743656523869857204113834906199425612846309255793817860899315085396531405314418860660573515995250980300302822363505168302648677750554495205779258428842977111170877265607581419853771932417739318590258502930533736131285058657193194820626928825856261778771576289811737337752371229064649560742917813429530832035676233883133110493260932252173548997148476124570256224381870461824832972983226743519805806375587557869201747868832493406498885265091771095478338151600786081085510904999469512190322126469705031892843536524325232194381989989989722367220389599103825412433022812076015527727812550949391171864166129839309755842091781930125873677423885929127339647168900030693375560056721487203627210010466080124351762810958689054796188722364385103235179421465375034026702440525475094703385444207468972017224586283464657387281938543423435635792362394419737530988188081859713966630360946346669064032409361342948535921678623357020004815697729588272960272245672382561658837691060724526282663528295238289518067262954796633429379041995639272400671295908090745883687154767529847083771284776791095059914045129905435126694311820381844822271164078756705682768964966237861009912405084089603424263758753268077474093646844063836514937896889921525945261559579531752229280004497936150734624995424115282441993416021158899155167804855518345860170758079398436368169608865979666870847646007436247866669396298613311198868212299140893931668984917356780394622544635388831379664891569874044867407066140954582387708101946386558198521036698606607418733806322086841449555564292218389170337950519618783527914151310745847893561351718165909127118895636875126691723463856616337391991248299468046489169160377080902676196078079691543826433180662664116688701788942948323270984910031783147428242017330897179893387022921749396861508694958180741771473171601650598640885753716676743930306974286967057859363950173687323353216655724402157903938511443050470002865546931329873951964393080340963135907387844665922169781039318595432635323915491828007209832285591774144918226791039269104333284003410228048594834844996232121705432314181046578833961952450772625835559483226203538255870845081655800388084004885967726120156883103391227486142607041979115147854458982810149477831732918213104092991167994602845060921720665106660822230808397918710821912881863612567515660473501907520047890587891432751277826595786361862877014248886464257979486362611306602216019959792743556188797580983076982981471131933872336617679754824809921346353368302616612297917762250650011602338998496976910423714996445043186050085923543773033754235778259474689604826391423668366915550343167078338801089674172659733660585068817924055821069917411235606518347090326180992157409241093328754682878560360305798072197605731027438715715972746094827186417695737042858699829414521639502929420046865797498209799317422228602935444686223257751029291692537985362695030429734288644092868303171041582003864302862279150285343613809301846939485541133695671031118289917555014345452815008697007133920910307382197714189430944443029873286461855616022834220159846235331034938669545672644283699958667054959249044881208387041449085787379252278736755526097358029939694618008490871137431342068493097293659940468628372633499762294410278042337145058330215880320547649133136879645123660206606647875944959874661832790608040957059195099317643899136218411085847408814056232450357528841035492228210475047717156402583118087670797458470848993786575146163192369229253242482082289814237945964865254639146972344758682516203477696152109505962893012145836889052241824169535182799659798492878664051751293546749764878120397435795445747305860396076206547468606508730232260432667234552823290544666756690435476193408347497376856678792235642525578080874726582345901934032450592951150483999558726597231672478338155842371025557138674667778520996669155427085629250744578782513458185972622788786533067174095527407282795067416159781916399448818309333369018081899090183437340119932664435771951320059552799870500375985209870732767009209566329582193770604117063883274696379485219078160733782521530697565156141715867211758894270235296802329468330972445041960006140784441003398439128452434401439220759639443693708047569768647458335703452462534000025844655032937299964833734719233877025432049353955834577793287677875336303810063866387807443801085853828849971794476021293878120119746769394861089222774231994388381876178333398674707236819902638173976524149362983795796373765046231223040695720006881122064076330980528395824841186525211649498843552880065500119987651016730291566996676365187717585201245061980322353610665624347143235735202221721658622556038021827868308119079665082763578977261913108782217484596211431805690046676434417481183062335799968262212721312896322335554733764484287583537190613579116215432004246745401957727047223048925153551019553529459807947674068760848105878377171683020881810204286364712875329079594810690361384627715557630266034186775923976545732445437437895918022306400153293328264234286529658733800394098605191707559624718427067088938190635684862304229291539116116334197321724419647347943292008904668998004820096592056454360250702294264034587666128763604781673733060157937181803723915216104606112991928767632318922186238081406096548632630567694818031929621849580983010889536449979015209192423557628080817789032137669232105108046191017371539804033503398342897271797027970325488335979331618834866968805510138281874767994486519954557671674720815415137389824812367579317582163505224562531570879883709654411202557332522812871096536169784142051653912464279266874697215867415607706540544492470946054704883288674151340073830946338266017965620990428612177213788473554503976820078752352713351836239806793028897528776317290449121812286011870304519571451110171342645477078381604045199030926055380091613066089409555953474608340077383375826069509558494450524338256126131954286569400641914909094006680000601068207287217128554282626404075515118710094987905041227454789357797745020903572348093378802765583574688161095082582022948580177975285956954447553912164776595642757133741237304746201957544757219725759031652410527117190876695147681876807911481717026518888172941687876887827760218548763167000627005516382057361567538822649237644234514341537322085161303117985589100391205922357484503482579963273106726479323232447213749082251706092302177806215139169924584308102035960318596535907244301482836683525143011320694621179501448610017819462302684987607726283931150420574821991223032656561448101513738648201426529686288845651256214745809716647421997414635116094409953781348451545599756157188426417938782758244116876388289611536331950984196451121909334531001546177730333106068105303242944070464201265929581241145894148915298713188352945668050006943769233617548983075348034248924715922210907007287470957269914780874424005447859506726627424957582166683520681254941964719688282116866277978240881740642812960683630969609478887266720447142082860655864227919618706835081943362883218059013972972200301306919068341720767722765903885865916502202680886568511821851560139035381888508157588050360827513994211910179106362193365546990450063663862804170339987060849453135330823992290593699472656585917492022538648938930617461505840106329170307681793381638610205169201567415793398247110999102959068665196860484866436345168616096811686960045551571726070590383856686154473934028378824838182753925275475899775109898085414319538726063199681751794543049194884836633925158178045157764608235607459318558644966123982137114925651407971905313470684890145764472308774849593879143025825052699731733854881645376494317085918915794163982782211421342455061788087201605218322744919494924472745636704346549776239708414145528570763365392274472368193779078572587684505584424887765226986958564117522524263485814034946595701056980275969666332268879970802493059919640270495303976467259925446309142791246736485769771468793269365629070480923965543377585026612218594164070560114427361416168417013688690743119093139498702559681575483097334975423094872830070766618264533036396374602788895200815974493535531575924177763233902672473023242442393441323573357401769444799230969118817343548175268899962736288518345547252592178759392755639903477431187546219101469214603136732661775330634481282183016983623641952627722935668247229937121698349247616366846919891926547713675699389320383024818740451057159636514199525895800668455624837895358765780423339992012530511992157682153602492333799149070997592180199007533205349202994082181591818946568190341417627073676983346676636563200534642306564852796057776551273582393476660212008303044196169955811423289065605421437924801623521840385857046911126595827512687521303205701491206627893609085343744257493534397623073109433747260797208283068903063780619405216368174180392018441197179306421276345072154146770291448017847544973332462419787709711847504939721418151697825327979356770646544497398730154322617301269870931130770221098109639897273409535653942203726379219386587784298639916525622185900870699219414672239489462878907047688349420553424382761932960275184834183727203626972993385778567863344369386913592911248754964373121546531379834997162753062637558559260559580165285741579375464562867687002477375274682557016804619871366378602021454020477001441658540795483644175769636360706350485253963115864719833697613035534182582628922698832626875159455494260842487416798761527442437709975566088082635476118892120691224348598723604788782347527148096562899836941628709119457155687841730663488809375500164213881563150947916950929152022178460563943403776176593525815709611246654355288131607857212517226393974610856395615325122015320875853697174691159801535092834322141843913867940881224731552422817416571370106134649576117668215894665888473458481884500843305518811166062370429033201778733224575268403458101320942034958421014271289899854504901945206928548336580124490421195662542626149378210135758519106467824661916887497638062714410541280252347049023584698899821350925873687308193324062936949272999803896100229317501111351570503388785389890496000440370650820091160007342957535021543217205798442285764956074143240668778238931907115745420576987949120829412949732707093022895170237001969982303397136690080922290765022813394405524239220859526838863486453133889159904796236187522453269679009391102256558010638458783540060246703256881202440701666343113361900344644721323697874387939749275756858971268935292722098144146869346973936171465601130778867994724579344179200393966471508212155621089500814160585129943031157819045724437993822660496551927615898097440608120453799439255630164573149193981491922453962856276590779878936689370546170337497594419063434005451871066424667513697115671214454033377767367197673208082019667236543676989638131444472957211794836575381544340722140320794502206965390857880554436412073433454357958206574101867941571853345781463075920678117563570910112653864730674299581418322090890258722081129552669244906531728454037126597558338977457449936734333729485088890009516207498750109587536843042582765196439821876514247721133279617363759933096295414292225729404764973459243651657979236325300680855837648560679061875833088229377565849200436147065677218657126398996384656669809703504701140450896812938464313919745246507521458108676567627915059119737762817685721519596105722428421532696053363102250986064691316900334883097013189325785786808735433621051870760491135916792185648245479172195112417149431426618026461827208369230836851457641498005652886215318492533939466674230477097212489063184043604540625740820617024969058275860963071314925452455869544329007890763753298961231594932731483787930445809729394797706323987014965636942468523296292772909924872818912411806588226480525281244501693354889706471851382575991538374010022926414122720635600363353456035982412577299852434595955383871716506468499633486723290544591988137863836246710142453636026270302324325617255480538783528357734693998265898179464931711263660080114396851494678280111551888968916632245437153778725934144030444554075573962056588084179589960787550680650512491508142168878320420630187042027685271369984236573977970526474718255945787196675444085628120530669377345433064881971152830310600057761566947905678232587188718410856720555352457345404563687395936862648889781553820656772068989631769980914559799572613160360266648000103145589143906885305848365158139208449571309738937115839527807838637367438579460492270484852433766947585118318864675493737001765813312746208597613709690688611128137391619997255277017484730675341012857241855982899551716096510264072372471757744303231355057269537706984907361205917428757002132536366840571466225987282905718672313916765615234826956764108504627790165136222290956908223572482277233015647834089314290675153667363235248506433914363084602756312063445250681875522593228339362416067285664128486250531535317915311182736464977160897116724873975287726102573287932612523036207717459639243294904555165950203752080447218306868628752241649133447102247718619708708976448033341577902552396989647879413715985592393107377625703590502487257477840670331923954579948881412773034659797661684108855044863128686011776012248567413305571437902070418211932016561302000775811024667592314761105814276471079943511129040790712692743610448714180624327128376445694324165460865772268117066037013327491322407310412214411787405463064781227183420883178645326877669009791721568097747499438278872404286406352337119775181406513804708362992018511391469577187458735433125304572472604124731043263025188904723266184484550892495784842598523378723863592542653288365480234919896969525030705388856236123887712709061371890386324829168759856777466873062540173745526154496866197973624671627773482199050537088782279224878436851565280873221248891685953389032569739591956869798250722364238759432638435153984405905617368100390876601720155253294714505480867748534554556869688430501672922521285787543821627375640601283092240373810616862875697886617779707977202051218431865342728875245596853232987585343993270020798135407674638461289225884465912448861458045771339615470931267123050039848155206559698133712913466213292124268985262340366097080244097618607485161172639662850603346774387650639286315914484972190587466057366149717765220020547079816604754191732091747260962587037478535832147443904083007758907124469314467511361532849525223240917812545400476258824436516960019480215178390500764342451907271424302057202333341738183460357614278028439405832968358842164637146104614076654556088169644357704621297349726435946610891344865492200032664852376898840223183717193861699631744743777890309001062765171013944137664080140221769438918161609584372710141142228942941314617436396220579969338406975991352253352193447889832168542169276993488303396112820045421652753164586282473893340960454056105077702727719764464639307659256902266401805053511995424820082878992917247189592634803580092942549296766509254440993017018530946038117573870431588578721220522575297922659705588240187042472687412146058029034729911155734304162952015540378982228515663089037729211361681228354483380038651368934394409442737052673761291097927909763432027450510920053635229742242836361169558083032678525956486565060662081995507215896893974672297373204343475765019022735172765377948424312659607050384984241373753203904290214975606193753437003534052054227769152533476209924699224763178652104362062270257386687998645242788853744801647536226504963013940806106849530569488232810455591334460161571869340978525697572384784399055521447126176152115377040097962374164860782429682623660908420782466301264606100175234991262653492642849983186424359621179332956722366575483925549885030165668240718083987316959167737857087023831460521501583582396358957826226840975053690924767616026168596508507101304979740634070456492635410419300591959901337144707275862368099534429192726786543430012148575940252620310887649584202019171369189749594612449295633674665049153691795371094004650239029511183652440201465815015741986007619319555573645587053355145705833087731454939163312253357611007164185810874548509162997720364512473283356308965638204174588888175957750775431056097716045038100618936796101621627692769879427760972952284620018753962194261391088323757543315111266277681058018638450966559221861859592202251681237062821375490478546644950535958622171276478031035454402777553900730639596486680674260882250028854275259041058080457963282313701295183200840435026337340381131084238145206683801699561937787060424563144191458692875701732205385353993025137068841383819341640143137458991055661203308399426128500847515570161787068083410009468226072960179666732374884714425806130942869872022987774359313753320186335477874106171429924776378154169625576056862997766441549159929671387339079426829082880031824906040044873518256003466630215179028477301915830261213175622966824364821694863696661330675295848832601575223228051177897844850373217768022548735696443919159600924796644226889144240451443652014135461571140801419247887426431464230467853474430998853367942932333085960494596320975362397433002157616836979067979867332809193867308289133762975952704530055666012591005461538758828746496251267577752927472940304532932835896402675473541534452291769167881751793983735004343698211013366678976710391961822984454205839398333414984686819318511807582298465243508933002979528574304274862878780533022167761587916037179804488678226463257525444118399206597070296193511587915096532839318539753713474286282331526985309090595589758146019809409589461149266629361158091195570416100875111271700129359857115187645296595419346170608461162604930023359140079000231233855549308940991434530263340458363218513609607469072729995480303915575955179411469867560005865905903843113005120474236848197644394446189789549470693842400330853529114250828080087862065057632840064738299280430697403483185837667919743987020343240451975531815860149064172296147741039515385606160294484434714204442305235917530535983762017690101106908298338030694291493494524462879668217484650298873796194406586395459022637744075824696137849556803337936326363214206180891878522490502711499741204957941208734294445051722057953830534554145229966685838748377206970704772910153073442605356245065976157692151514937762034295702424906149307952818719257232071781288424636258817450999956716687514516290001171994611031810275272773530230824544517738682456177028529506735449755171603451229663545617466817019949599337278655572091236366018221990513225978032444682123481503648640622551621247397968747732659244694987218260866927169147616569636075723941415593113236769820753931333091925633008969513658907881565899913437381972354810144167518724117722471193368020124869350044262165248801438811107710264504045577446520754412190346672970257517280461049512543178448290722900628694318208481403228427311303920893182116125178326432124387527623132690044888212437519192670302969562283791784872652834624761761444551941558986741849893801733488885723563916467028701633458114680660925510444272798429554050703656784205875527921481232821304639367267820330208168520945538834253255818266393675234864559813174585663500829493541842853603449821036085462121205543563812659638122956315469359328031816336524486787343847105423948675682484353983708050432725188679165707991450354302162935693425301532917869772534984324621178355018647236763783434994541344689825906265691257501454742028642446508529810632815936594306650233705795315518822970110121962508911193534638979646922336015881911287858709518896161938116577267049974345065807001357501016048721288628176615360596933440499428324045069669840269794421536145039492965240709558447708025822707490198367384830993313584872169453093656785707654538527006981773136430972800044443702235275805035146745450307355482373537225886788924739796828560914071546047895870985979437167703643666380138794030536372813150287917788185516829183867874426566909083699513245322009237090015426683928347338633197746268983646363567094294482137270111412302108849120615915787528729992849776688522094123023820476385693176434217097658013779894820698327141346924587605898170610149866708035530399810175422906178992471632989779387521593613422257964354389080971695356768000419446834901921996728894783568954613547330288484620772421703903623727949971350814903058924190689604506011358827837373023328658289835614694129852146760475175794960265421867824832512274596119145927573579929824215789939012332726762442439846358872811870137348350537272150911250540654402819369488927853200457474301479538526534434018664051642421926935214516443397909674224254502421430765203797820624186991956404585309307471219828396223504888506916868577500836415447706027402010145994214954891478910143026791646640544300726118866757999873786288571089155571432681630105480660705012816057280328870984545955556317987030419045979960097993383034956731585544703628502290242896803882915008930400807589835572768270955901322762499978579199601290767682285074677700944058206571042370366775689582013099163900111597004657355480848529738156800636075635304910034077381014230403345072628549869090723181327596900937855382582544848331192179017141379163181088281273529348487121134631800106144477269675402464359269377212675963577406468524685215733278831035545808474573429670220125836017275098020910092983736449712987163769500454864187268201631748307037119303519346951479648618038141920958097383331924278500727785586181966150508473362284048888559324698906071042771904363865268029475967367377200885300079477314086470383585296691476810447994293485853264010199501277610071828098461619478650440437396967792196064302828354742143649333741797155349259715275742119128168186128041329302513288558092818117638055863232560777567182266162632503214695333241190544450747310971680092406621262165858708857347511061766601762435803985862414487295291036623872523213129139076186132487937567847627252018596185191325961521380178173529007273586460102785464937838260686154289556689772084181775197306599496150597233563897664945354962769275847064368397201700285287657980524416596285051848210816460295558124498187176033340388060211086497898632895412559105678708973573454462873396358541065778144370431196571856514807382895695886339682050565324599278646313606750193981840185528355932597941882961894507177096801491632942257784335791929421001863415665183195199583981602808021611362492135922426911922985854927978732315636102528437647019559692947848705366476025539710301362387779223410150661283677481815598430066568934503437220855856107307721659219530784011463670404016431412486417978371649479777904329191950677950607585191729826063872173680703243596511712065507209366203424215370326552211257783482906664891578306436732458414996862904879256430635535087297426929702224744855800442046215917122849635535562096577085988085924513566660809697777553096191487978327693838862279873572573590269761418783590812133437783410203153909962412574637526111212501198979614081294731896343677698988510102316652061230803058176916862766056876231343744715146824128337049587348115033777688281606972261855434958573325504541744354239357354799858261486034433281193193976323807182655370620945505840327029956041861513817820824896866160572007807143185732609985065823918358402712959608539552149926300723722686966053082666895488062639494731357874070042109199014317887887652781938463938156697722576550935924203222520936547145321653734490344944064664523010745513282059873758905393396215487511298430506924069505666474272638224911299707656160750977322601579232834767640357635090200159173842536243931529149994363662632554034824961620491249549963040592745132719130191508768422067747301101504960552212731158566982601259612742060551130470497593764907519560677945758028158886920078143546659592206803531047021063239795916683209479315901799702887927806059571862498794093870797008700764744623522178831434411864790045011251899973730062972329955328398889277094959437126598802134176303524914378031792368244305918724752777493475566141727699831293981544806562378258230236406617459421582137106139880670085558800550602640916724235302352383151353963258718565598670027259705055997445862950146058330346762392934665531152497861861558412986814067942092808526481572155624287887563093502997956861437861430754348948892663476263720009967400852130709127241211480762050498874290037731673172351753361822992100530475894933132157798181503409351204044548129880672764900154140546209826310009099629012697451888921453619282553423774866830756642910020422081780223045078402254448383106361156218657758708820801288866657768447936594916019577534841143098224828158597861839274948984517200881089911300177178928441190767466701431606297976507011653083898182368995843149288453686673060210371715373547898307445548600960441440931619268869748555734365367596270639483229479292450537591226350569709890963768460534202629628230788624046026495322341673225209570000072294389642567722506584037768147044761569071866756967078621844248864438472416579271158039268885749704805666628620714378839064080029652267461452351467554479670701766588906649711792061666470604714940882469371977756184944472075806818083190336829608173170479317782641034883704356562567883150533669423631954204928421687156890912406856710300527222421324005849812904696225045105423582479919341051116170865850969157590800674870910125005271082940186928938648348795899995381563498489492213572052480632300263838536008036372587346891858958513083614110991478952786601700776161805192276773446553286461170229412373930660414422305749411195895856258930503516716919810869307856867235906592902979726851205317408419136418589772278927361232663607909376216729358363747724277179515131145031052608215942586485870506972228066951469006338425469102210767962372536881624860610026870715737941402352088503333300152613724693328182696022694641186265204505503161686867505598233352411137685318433627683069870785903895103764110436152152716273825721004500209867688741255901169467750340696873325233987166732395799676569004119068608105303612803648954015117931226553700409154580936827181175866213284312019190188307715865641518924067385729177324383933580939609197859017362180120379165138475310165278245164433319777543776829359522105520667834762714305981151124317796258785797324481090467247455316929022949260944014248565759532553552865947115614039947031252677896419661153899477430056281029976927681319970371574128545541285728234926522656333501921869234129310941410256157564751819884015474513195461692918573698170313502779781381112275044151986162620087165603937380405215810365039714004651035254059440484315009050060700286061510156061686986713146729829289890729451619522138050457913847397164215259720740269382982262707843326742169410233667588276900985015013066517823133707945181531394933161335351778902238312154402676530442858842137736921649746760325267976886663392519553440857667145980352898433818984716099030156691745618952418778331522911009232450230239572950371069493249113036926435521014718230910541124034657312379604328935212854676909039812880631570670891022646836963285639877059482841174099523784752366626534938103779431312005978405423498640090352643154469698355595227701716060734537041699215406177315787246996463988323676748104030924227209852921160729325805147650427372904834910585079035390140850998552174514127931767440178059476919201335787936806442071287155007450135675128573776391049074148613212918116155845656715796143530700156040962794956859439927281725849214014822708534907346014543509108779527495235698705973150238952857954674609664532665902521677214326248787958500679832705045231321135497511854941186315717464373145186271227692105030916306406323589628729879188691334208329468781769433693939616737952237523903928917246165515794232896576828971133422053742703006808149205805748746192611059882750913339437469613654162654269643215951730479100236378083438807634761916929615620353850696182317498519037956655626715945406574443248228222793384478634481229285616483264988400548941588561664691760167310546318213356774912599354512213949477328645804293349528972028004831022701251316957685049646111422506085806769150931298817536062564612506852376407199257166554973336801484309837779936387625629986153401630461635148933012817109453907932658125005546720788803275270847873063031129007018738567065011654631920972373119325983542998479552570810268696116140714777023187676060392289534070140747239896907177408667027466880000348502007510010156751590837087117298977344194411073967528879846786848033369845433645771480950768589583732479632646463215938868797680263092923554455885309195425365178516930907167213734502332009373051569494586165011500404941154067298102281807280251208058531471234589385039594154375433571483486520285766655078920841133265059806207256809322282764962352561912979583803418772603275546013718424223078768821773382744818523422319621118116844403599276113120635947885710099659743157903184713067132743537247717190620510131284214269223257849065406141640215151824575584935399824237641810944852215574925361587358318561091689400123877783813799713092080194191125150820418730903826357149454426563224787571629523263068432634453143081766536886765076802998539148006581347625027035838694453035228776963814455720768427691636328882447636193385684786166571756100013619687073059530022797174009439899072817210232057578839112445900963573118289006086742928817139798809833338729689387790712481412530152865148234834658460929896048107665549821269669812784066646473769466188816056225948309197654802409717201358754955691319003899350576215332765798637122177281829044553881280868534377103923649793202050396769360999365838913006035792250658321743840428554887878242116840575418431699225800359567719790283306740122812723908156627345776869259308389240241672719352895737719922060327888997451484058018565147767452172405571496153724668794710900371743103300873639150223585697354554090448967531440995487768051852717360889400427971599787757052283835530568130487794535565722698769952944738418267555650732070551020273498313399726519167429308529798436955709031996788123255314686209833929771699778905740823977098270400035819793816523101606848467741103703948792271860157013794435841045729567749785960728307686491977532187758895188434760513764438687164423945986441892801549490595912247750561304892889713062618339441516595772273095953517649990176846352171823413239889555193891350999669586975556140196702088301062574328254615011029280103506415107515333217204459473647798686976810927399436719224451677797118595115762803025571747608171145089119387273473436162205599122305853919293651101342916661159272964724647002910175089083158455897973609619599914041849190231985124959673141453454385012559556012589529496672427414849493312381794170161797855178353421679175554633951495742333011978813435974219065748811369033793936383045106296784159522811843921334748404897077374243917339139499676017475783092056588501474592769360573334116929083164886787392773913779466182233536185826282579363197545463549758038374957883551998371025502478475128545451045966157013508087363476188430323347460641441783625610968667445510417560527822227696914730656612956022744727703840032328430541264579948075310621067633504713906243916987348746030488409473673916521006331757900150131713800298795512641976402919607646925849451376704869074418949483489895868372483098267346546475953315756628587421831585091106279034303162638795229701786793854261417215720997236844740923813830740424144393172116862055304174331246508022502181799016790432665895031095119664069129487091606956823904156086533489738813178891207091612153052079835753553788527285491953681476135031391377621860041672734339738829916704027333409121198120788438855430779442076821750968710859864433761068239781162861130203308439427318710796854398020932694068723821972832757393346076658058220751977067776196019793511762663384113085804497649941078837563703526629569565407812912609302700099913549398935969589583566405885825520846934130784411353487259833125815045302672002376147217804927854456581557022006763027907111932653874387953249247618264486171545691794417117618487158554956958793077947992696853576191486927310602248477855048168762851845656217059645890948691084251348621075242216305070551644462033302171406054917567251165672625694197635174735122504293333852522970048231959184202986195937752835551687061387597859152625073880266547389707556094157844671997036494053721849211097635119048659675906087351788276557431283777175344633602211850193692141260035564185774842910201688968156515433547463523681531543656026548380670583585582530871629427476588180108329421366366852640605626585842420640893871976273081807226684306781686060425485006607874449411057243470555385409360313895163587510472453514995242369874624559050893685710399212319645436880549997389804060547610460672770985368960670281380089088413318631429042013929746685416628369656017702515296000697226187567055172299384431528282436098313953492530197104872582858688568379474872206844737515920847966747545112468587583799594852007158232653272213727520601078507525187062041891875860930922050676783174815044988691282777899075119505592346586739902440123524576771188772834922884805078107470361973288389417954772946517184114459927946808025803955027238916872545380406401757671260317472875125581860300526869099418258958541765469694579227177744649186069918661345710681629032439923713541606794750608043077595125796440749616137100680723638512584258032865118896904095676789084986441680287641283198768829725809524363653448219060995446757390928475266558330693072066223584448979214975519636655732896794579976945782054010378529643090250182443865022197581758415466503969116314334567282795611465473393747278293084915758774696505970447230627449813202242055281091535859951902838529389852513052470247827015096164136661834616706447608653208886882108440784837674681424680059756652675840342776864007056188148235789561676436689091007320097854039768265601662039048952382421531067232273537579774250448393283023756502973226833749713651469648762304094025352877038912441440890587202709983612074374419975194228261056083149222850174995142377250937343531555710305497943088694942389441541865085926438472287020557388232371005642656769833368682316806064297038537560114518592661351250944578091143464490065111106404712827050940046307750323114805659873264370092621994803340232048542147854641950101084805770485500680525673567034493210869440326683765689718655623879923266301205539204975126774728290712265385727691118742421398676317005875707923727594773227900891996486531707160630197530116530554801860499839102898083686391661254039420117370002265642860108663933001411650717629419345856296284479888015786960698292133382658593033697967529855213048482849640823171575802178116226781748296302344329894877980079633765141804180410359416574261639174973422806851095455620388313303061100536979210353303028602149544891954610327773361036942824026750051050450068626260559763093104347537670469284274332934689047234461992469671182056749588800559606682763087826010735932381632401901272902806559165108418074812316199634763274334873561833256123325514429811704840185837849905979175556110516296198817425269681802709300672418557949801179973069485267588262144351598873628048241140108124464850705928115257000772278195132149106107069972831630475042070813651883760263533051885026025347679272426474271040251013446710169921542277708584054608835077426344266108405861163753223131152299072424787928473097892251985102894934185502497795075170899996181355848735395799917990942250042043930478741998056025638499473517534286634611699425193333727602854762829277121451577159507621039889113420201924243297658135248872254536968100441652480070281102512401670700565807393271755270518056249419152611885107158925771592817308907174480125555959402743386599801918237093459527600706718035672202838458669556542871079706160397509820843785510231873042571731754475385733750937689988054412717548097958058843947601368430171606598284831149185599757011360966249054488659826140928083632108061360970660644141773496607551148663674421716873861311617840419160040761338077792636034038881333887126562529727438809258342255489965806236590229069482117566214385427506044958245326486780004610275838046249623254492557197214048103413535308567885400241004688025578127887488511369534054990220582982331238105872838414609668192893688321895962585362179285316262025954331082542864256074767034763433444847807188303943192855959964709439439575690076639218472921325103744157011871997346175737780470689484895084275257579482177892846064331873760268181818186854153253296966565931822677875655551614508661742985712631172690473086760645656116805477733678237728854081745184028611361463069149369990862321042362786658531079804554418943262708394454750751686424078594601310735210404865947991624880666988090771864971285300274136141701838344347997638468315380253553710568653218779624431949374211933557961021116239353764472267108081702299705500489329769845827762394672736455760907235811657667980353886789490045267547946453889538201700259285126895496709861483627090959123759601561290803885868536094572087376694111173573569147199716373759316107918542182178517483767857677293305893256158469901310968766451705879924341236320580157674178784637006675517255252935996074061372076466247579151332362143848540768494195108648930724415367551239911403703729102170294329670080434795856186228151293931672575693720188889018335921025226468847325507795722775926887878413679940455688715549565346752979333229808824840965210175594641649662624812008045752482594490922429096070860640034843935359048612597911367991277718540644887838188416052412820967809122625236152819801503358109328435500818185899137000706391210723452540772897980590001791026660583747922014741476419429130876725439802836126351726907401869347441082760180138128745065700901021508529399668554944954157469270671950407616787934263298108752826699194849926863021105493575558203489514136677378182763858597555544681704485867618731292354265223934682204202652262451836055833569824745998200261231105143388449026870099220447965849417795392827606150416032336795607321418329509852904717456793036653128259733297473492473851005660926450502613941750848566684938545564310750679882302705633388611388457774098860874155065896590413488159773224039283302070402378542911594265456866762029111199990836101125239932463242662601512239310286838815272521896202337141651177994615889538991393046056569834272207024713829658399774276650658495693702295152552910842772022185474638461005426098000678209821199893778908013108940082433331068113815021273212765778592585870194279249058292549905232201837544526451332441158576568381154354515710975784126982527469547774465313623690845373661017785063931739273978070867363608466219819619404364975681430314328676812483617602405731546336170710166675219536870397078174434009932125888498455316158390576301616858072960334826592323466381794458464506601753032179034751637562253251712361624801678895160497404866594603114530627617508025600420687344393273296037321755341116997702067372294539013065235769528022779575390645208491019541607228707029447302205812051465083619618375191124077951475818031016178055228968215350582547735123433604137628973077933148745231137573602119293365678347960318788367842523611820509743637027779671734102883624279118045174599171743406982577802231326874880925780401987025761889852774792738435241240767346478347737993301964535622249823512277536276076643743195038216578160995278427203718851870341340052660074973394691804450463088865703139121182210061674775316462155184311434190335596377641470347123620539022249859184587506651702403612315157705884211871653107760166486563358452086219407915517479579349264652114391061707208165291233136362649932736069939859112409291905773386667600170809042346690242870176576977777463392701216382827896504041014303310026919467454851700859646562960009030624866988747208103213106604789878499619485353955299856053885990323542606986068648295280269085889975463550255602260292163191594719117496056493972866671093098728926032301814078060503434992527970085893851539972722741249293814149311639542935408553029423383736564007337973500792325706399217078586686863181805593135130213375310808298938865687575329626867652818348484532315500471999429282947440187480649915681982224669016570630855731864979463546541345038720112318215375544255422882061555275404718032619377563058233804696040012267305242123707518922800643105647287677396565726765815478261667428290623469808559854908647008945665901690924098357710937101527344728648302376604698930208235879650563748058961525268896887288294491710030752088817512767130640104483451061636104166204119648380353658284398596661724436709106590176685474889576841871627524851663468001292881119745837171870646037772723837115126026835350598550449477334262647863220112080928280083607956722633195198799081151850698088463837735577954940766893123744565387230708558829970523222083822101848367538742546304319822405835234316784810947735683212177075983369229890888881571219723306899261539724129552535207194829460586703994259527077074052455806601023753269606554045486298723197410834832616531935658511907060692553388112742746342092641636345718333075228374801722926795219755763552606589037203694898533012336227903994892056727194273409969662179275332795601533510749179596246515287997297748953942754338945728040358334493979232408708933439495166010789048514886688143144160389072313904393335930774797721033236440244241280588582509989301272991260041239874015757407338766836431910624345958805933931525903295057931056384576530144311437363376556519015978319661061194583122620999927233464269957870733731757148446688886969562649113350936912847402432026925710205897569654304774095994183060205147501907224291606028709349513131417044820150677910919942071157884840371951431925225855374232023744690729439055206113404937977523686866062074411974599018585322089971710614932421852669644554582441675208994766296789437779643970687050000388014256890022428754151149747266833530796126180409982921550502752967766474415242932653786420902172669155695628594659059440273654305020963487566141437887836000474334748603357589132713511567924480830276863754089031973297033808504807291807853353728346103941408153874879564100666616740303867233654608566951331801237930980915996269860120836161861706146543039922049723245184042518574823446828161117927210941707779888253009763364140473881456232184857581938967756442148678532843665882341025198233863114485419764468018002512677254297379521504944097216220788861264959254719283974511120948371199494174305282956174390201961949818702194754001688191573304125057394226395651693507566541377067390169855816908801200067651469701536413043594097294878723583147663614037910454653063705127331768494254126167074345471320672410333287240691316315644738762359657811934268270939556542150336887877081313106516429217339974625038902724162960775323277158897688454006887831869190068320215583338630668906742083237731026281221669748639551862109562695548252662995426455368420543164827761435381008086539401995833740548164308053503768946678480858068523723112136802142604123602064258280696586111431519466487549239101551369746350656023796558019285804280308018927366344471017400825268890169932346747116499318117141638773024595324077343317640086944424847884452024350365877030772377371753192673824835192393924252313172465405266382839089921922548105300213614215990255210928708568658945927597894373830186706795688515845680654717435613097070080035014762250995244516266614441474955196030783568441687218570395049858223285294837362721503875006741067007325841857442813218022761480114990963881621179593385002715423089312719965113411666244691989592189263497956517758746122357335183946027843980136566845399369726131850081535358742063689141413956110685026663112673333437523203512133776509926819840505524633607518277011861343596793423435934725016200401426805671375309032010774650437912754289266499340217793916198209529341658091820428864317295743522521599268953269368997833506588489367330116283845736703378684132596952408810412099158455665044342165883195717600202391174464746342656508998461608900560312061290944866817702501751733017504142539345402578732479625168201274141087017527425970862451168658420074715014247325052509770757987849189586869904676642853310609582875981140077695034394779944911020229969819626224549236830606970792435361608071496166952160830702668219221473266796945395143579410597343768409291547334929144481931112672040417050194735351027299016966922328843726353726624543108578457631171124953885263004257975672092900432478443756545569277571439799842597887343380759250045616284873396410914943866803872789944124879025878141461572688143966133126746179301495972091264462462852567058655298591234158699573012334982990836235180131677569539797979611143327464876679877319947754323072640943504074877027180309052661220787606139145037167231141176111532257789004399613229966043242102078414559111959664916503828232954473141883890650001115110397435285122246903993946933148812375025982535067389177559905808537736400915349361682802303575670528678956162728703299703315102997510086220940129025596427766910929908988530713429370334968815254282752968486771697267477975645954271038960080728527053578037766210586670893213312231658084709284572458167322839743551969614401966330136196985604169191417874218350986276549774212508578369906996629710094194596940908777716775440283463991134814922614209103713965427026484387520785187027084591549430686119155545041826252878291928070117882135980098183588748681845020754157978616489850175423243301288885787313168565395982093528777522494150477550759434541309109457095762223943805730049792377158042814396972639928047977729500840496541821647003521364894865077241396179482809954265376231723066683986751010777413273984663151425286210114662649455115971838325161928380819857771980291604872348031693327429137000204689840955109206887318119326979897654022591394085097311232296863712807873022267878713326772331674232108743965570553446610773199469298151928486683643607765555818505687727226785342890555313754504108389714464169887811956796327010953288421164046943933289532981871661308466681769327798197668753214818590232647803316181206857900768887058883571516777253572379132960163718415956584083833848395080834070104151591797128163474621195033588217885780971230555758804347700931554027476830069045855200664452327625302743205579796133183555335775838344347198957327369351058560954409354701069301315314405804180126327917747851567395056076930950376764980189193390525996596366610888567373805389053554217260628347899781914123245756543337490864703912506524298654333942956683627854706461931766982758420252773700158483494078665221642834666043805333403264144043435985266701565759094373219597264718047236685476640402912560572060335413260694246887324127639629659547582808831717513596979910735278091713005006527279749318678625886232944726276334456625589213315142011470976680594806050187112839731613731363675673348241328568344141897408315909732271592216204196915005715661821799611941261620462948986239292343339831953446276657955313028930967060159972699814629956919193021056013429794813675769465714899103101886823350191978528788810483749821684076970517254235577431049818488328389631480919397713780859672353614923741644611776369531700517973156995185475196040857096058023835372103179745154917269490215862974331383943990921062047316013848724605747298265822823862836349889466819202241784881195420991384641508499983421560868571349575076127078014978674041276980939060105233851176269099243854751734671854540923330774373588503170876187162147281239205679368235594690509617059479962030167312907821019986954562581024933957887636166699029599875543795572165464034704014697209335299253495589883922833878848426907536997401906968903441813765795508089221556664279255395699606302242688374533726968413574078991585507646579534462086211332096735354462711221470517686392024821698951712202056257562758951219975946176095189000178185365644458925197414993982519842161114470584115432972238150999046001016630626715945536557971420994919437769240009374430326049512200144923133878275862832960504471797587647680507994739483873546921714058471983697864013204904291341975883412260359086168197363128229647559912445046723562983055491130195435449731571106968520832164593736815078007981310824029583720339566767888142912564366690485873539187690004481819705575992906407989832932136137494151497485965195702967207977295492578790583833542969339411557703266590193539730791577541671987132302345814918701997498828788897459450790003866968706450688852325425591621638124918504534660975759761757495486741578454542029032810254152108428924130190096267186614870862280116378961492871803074100388533823658208862964683020292285929866891042379431078304430105598192307509029639043844008061995543119178919493623587666648922072911611738814065657134608307727414254727191484340116405546361746478032444781958195340061107836960209315761325096407245078212128359216530788231924199942797327193155899430540379469515341380208431881921744375071579520868264760820143078905581669152246048244421216294764443517840728223310203646395287167772101887657167220471186496866259672337785936979433874071518756157164997819189507159616679852750901706348313185289699784262458331601051420621826263345809148292892276640258587355276080389412401863335383805040479877336618983593906911446660683927935888304263690692154483889574845972491154989502012652275804682065006457232577792253669287378738156094391908202472018357478718609372683481807398140765778255326543964152626335005475673682051249132333685286184973262175456467427768457896636133260038543355948280176636902429630363047977666678386298365583549901637208443738499859327246054884516187817472946545898320845429325836068815387196373914807282305282212152436921279858620628049685971742943335033664482163025639649117212669557869409984529595613647802090704312960120865820102926695396685079856908502619186253649483196714903180948053576529588414921693772887433187585732663767613040707195889678232709966078784724206927996921717868784039355779416264867949899850593142423952023434067995296607565224386982480290674528341415212706425535770047382757440869647804642551545981478241837183785636037265102349647045084520196649761904392505939364105074338226451922349331949135354034826194097456150556604265216133272177575416681712192040885745508017872221509020542751835163912602350049612648020359251965110948529396049030014608951196833227789573327771387766906957827405789845456288657947622575128073553079420954590043753026951503414356929261128909331511307356840053905050583141887233678246023333056125743550757183179561586346331586437561250164873460781683709536057296195138790659257577934753583092917088881240640888689855382440748490829148339108348791019423630519950579114456358064064101419433825345740380960677494692287402113891834889916212141485202067200232092091714907984899630316484576213898490725699458027255322623549134668769459836114277748622176660396036598412610521032607651798698217333291864006806041122455270917766892584820267433525146417997917631016933566552632261986829417293736365141956106999616216007002152161975918143533755285289225164950331751968339195734088136612153387658767547806888318838870276884212664477889489662687111967626966785225227721473431477591556342132395893830909378511543810716845231848693592121671138215057703882229423835779098653743179155612150832408228607019004454412754627489465390086893691167154058798200411432962819496976732109842799533155674951302159541799721988657906870537398956840449235451707232908888408031267252663827500364828410536787001225221076658714966322686694756971503514249240894048406673166139543515161860026144235310897272145715775787879820487472228796478848283194696343274444483987226052696769547609058439128559398385495605931756047790381212063586062576632826468409486796391718723297742512714137934343812513661777724468731744197909642646970683735883865270485445818569182110018123057481750456121372335254120314388875860923981854691129408716897031351252543474121982521138619507204677254673915141008764063292709479467478351610181542178723865846584303887970911230739908819243013977797354052603547764514449221908773617165565248733362184626415808999015145298364353441506677222877096425318549137838905568985799730085444533276235802540747161754077374165684095474584944763718261419721026818979491682783891463502884260047267881418328335226459306335609272769126415273900059571904285302959532108291963826061658187397267212163196509268102650965523285368611722719722969225840083030014393530639999692646039916685011710031420169956077459805406660698876478584889043642305659589560091483150570986629711758958290450092070118247573811306730079927571889439692267710519434492158097429037098076680766593017930079404021298079089714648841564474448954736838062839385169632044039373428066276124047277943272402890341275476927630374894897819499963588461548169223944474928902992045152073036547048973957399159103046234485928549831037354278782204012046871221866377860407484036944126791063803689696634545848678402917047232138377462541632503959079066115475872274867512317129215571384590101723319611211591025975100145929730485654134438533402974406321718874285123463654331443130355617099956903429155797178495179943200363584550926868695466809088866782987465865766563799996322625856912292856758298701562823396464905139965198658585382836982434229333394756092001071115552200833577029980692230815340201125425728190858828168445733682943055504570769651202695203171535387261888459487681832185501340929399889878946841494559516715388032119238843535560283180220614052762317712984995086571173974856194611781411123878491203071536764142299961200117006663335791147197435318553559458810456904902081333922073492347958213271174835609587727839470981866442335607872662129124691003870760158152472700573710351497120912019885376166961821978736780142597063322707585326308735804904929935811235694170162665232814704222347552488863733466897538027587481753838036525222726059935073197382575640323559130019279526402439414332759409402578285484122671893698040707744025210968023483586671801439620364994410584545301001153878546458149913819388187462508592637365111528596478372916633630074702908072511523120865187321302430674345328389159950203326306024240711420951375809298812118985765123806785457071754830446970095174097987227706247091055278244135200626278478026127784325235345582417463623921274146124087748189544789127645817658350168172961164208391006746036298852817612570070753577997980496775621082287896521195144382144503266182283475669953115640522644871777045985064021889054413192618774779029475464275849857124765024362277990697825701595271986996652513022386944241341498651974398773533067304938887557520847041020914509058379807645477006307272280944044129404268009919833439741909674486751683962789455471424479618959491133611184782788623450939648460611482547710576574103056544969153555972781486186028633605780908102733435170265967360398195520198082252393552731348964330517449475334766157412663070665754385487900737995285683051447784822893324663380961142300674359701079265385702773871607682945059616809952569785283597203617620219426469459099334971935086228707297312289814782869406607685987997785491129868688781333715209150033244205545533304665955314188950566782071541204045619946207286583822314492769019542348284263089463015985922015089723731507353529777269630106549833388251377268317381163891641946016024505450285476870669798092905285343045187739681059267068079956838469090671449007703728160747120829811513497097348228908532346484579315049914877550057586689014898763252396725180314026364594255056232933882145633799463311781050703281350445079645425267533945463573429831409952426187801298423029637405916115064628471941163480325765884319156437483832120176149892296967043202479399533932933780357679115057729952898589289167074805131038100844665011867195649513503728265771537322355809187993906891618260915847739499882835097996565101865718066766216458268115030556387912034282900965998352802131928060450320144958558294586485122090739912943223059494261857589996299228390249708757224349535443774044313905019976751726993268593996952780949122324002452605608382035725387006917900322250454660213030362484902477854745308860707254252836091232644579065756586180396331169033576514588751347674719952355952730286318318300346934011988023054262584341435963247142389471296464478651489935841253440327639049148596712759258505297134246304076991574757367300741033148193758992419904091536173890592364356623872041511665206474852301790556475561469978947043327257658528729175352156508596560780475635352394389592030564366327647051804885649404864434615097064177480980701097874431460978143963543886848164669430816743631999585232516627417285572526279167688666495847382251430717877832863632233712521722792483390901965819179274406216496685351418309874563148231653937879155332895530369352882018367978781573764193319015992757892315812448441904967892077299494026502562817760312339409021079947630474559357246893898389871669817426517498130151792075339166043486941772519537667681135406842180419448980687631509303753656629882630515896048681080746007166444484255313287159252501436003920568822351372928690879687063597420583715516166348364653994374517824183293497777185309859878601903543305895860872144817159284388259027458010506952406836413124392357126239956173276015750455751171579646287054748916284394694024662906051372323161431970063187215703578117215831641402748089892299725990025761107733885386594227810035898804322791325739932581791524241588372393473447847059941343976813165889361799225116141615106264911841467255781195129003024009102004235948387083575808238596001813709182174017847297639954221871230172128902862485487634721902794794795509735778274655628098245161543342403407665106487346774968978667910023250185225532769866983387634789142527415774514319746683437692137700549784893970653437188126934319840179512779010654787030021138191010273655650932359243281820108917156487746674245802313446400571140452515195587745155099799050074167024371509172725248148993453120628585096942279198192941991342162961661243374430583039269929249299755516754039473061600598837071175353188828262939056959435340053627333803185618513144980548925631051255976227097905103388795061090293924965045973482303714071856344504003407839185653040043585289060211154841197446385899742578918201850975510735672417252960543855028223339503212513068359009006333275867028999646777994506347282958139815757123857246841902259215299867682280636171508412580720181633883152214242746450085523132743287595981927747570276325795748646986201109202824228753034644704678258153275748917310230982668971714780193909827350097866217611914428627048236961629091210883963158513316135815413619780425557794743555709121272875396133156781581350413523213976715027909319897465753316798488366196755554551587433522174861773390641906669623006412425471315695500549102573450629191034193526643638003469583043059746169721679154652230856984202361234854777734486108668599847454167880742325726242147394617452303749172728252229576535763407062060928344460009822756564214525891708815507692649806015560535041987829172749620110353569346492523818171829681002880584826143107209626502485809656077258076323096585026479513231846996127869486628868694748149948556199642018871324818353676930290006772260120709336740402860895982588569786616323079447327791955318273492436980145650807726703345320159625600156139450701712376595377307671029420682423166322321338511847102518217535215294158168142105110199741855817685751628519996684023285399756067860422715043580778774488132306638188593452189849253157040466469456963174055727428019844112176767636512454275866037825703103698966177754834876254674001416274328458109971801984459898179226255706076688625352348624062755453036837869707122715809164876508968732464060819288427480074655618718598581185665555736902980629206267741375340612229944885261729374488130737230204976418671078709541141411221514682850284988492310280510723551259783646655717651914078291294194054984957231965339533926960102398112692483077150403813655593647354634887827697983497585714906532963416472936427805528798083284590843020501697324318488446733263797953028876322965241990408723728879949547021628028973586823946120620268267098214894100763979046608229949832558061605464025490330844985921575741494804999100094961912770769427009986916613446641532410026141372733977701199061052551177879567511111817127644316922660527889173332773334036697068484680074174752247892532985152722725642429939538970870355588712742753435237154594274154377154031382094153483892334967599779751463350108428159365652789450976704643642397112346497288849316585456667327657475355363617284742124435674301139303903624876998759992474312979460587566367165299307389778321199428236601013904979819617312568574618510356409106307664983736789906312429120705394735095953336527939703456366118978315707799631339212739070464535179526604704476115870804393103837685797973547704906035372418452201065337865832439547735887948768226163483541792893304050408790648363330385197415370147654533596811510351364994555597572178306233123584068531100351085972325052328424266415276424027117252583155579384392036762283809270962763983860418960269898652824121514995001679552916662429074879478973575600454710186426582289518634964910010911967772705649793994820280121054000257874996432921105536198810427229042938556118119218249599070324231506574165435480611270504505037572697800328776899006907348364525891131955034188499972594938670736811965856127352122769619406031475684047505621254183571012906376883166822285572785788897303158550847649768031855007426178402971313540576012022586856832729607271806770037875289285815512435808111627858379113661731662642734180289056519528990779608565275786599840447124016196307332057587195247779888384370484307932815599174758765743582602487118831363417024400123885067461401662113983488203212405153249183623901501446939063674979323838334192429069109600162217532376669023910831566725129767048001950304221142380269355831259533995687760798392470853106021977690312628739722600199976318953991480038222019087519545173913728903406815780088567349059863752304757623189214059853904851569313674734016792683004836802409073492349917500572735951412733320645225721659574301449150275083372190330003277101369450414655324920060892709752582044647081228424427650578747142401551509804317901942253637900540067097653873111444642482865161465970908346016957519280742752521946606170380303118787918367686727662280646019661395849599191343598978530661115882017039147357771161459672575073274850466893458404191825821316036441349109075878059896968084489277161997082333837612729187600687150020838765923832191242687545656171068037409583424319627129166204019805301000155867353770374171623335172578877603063066559073538624827615997761637973878546350517253979183753112097055945381162965706392093774307150802589147930387549905798777973434808461595604596280645144079729304221128055622616961370203415249525033412383428445989938100263069571925782309592185665481245486377959050148487848467561467192936166221615174612381717051067641504351586470872264308007837147347310583406312259911243412779729759387093928903961593404948680916750351508841000528459516222245749977785679403230994956450216728436245217985696571222285915906836838565150080029186088858918697798860082384269932215878297699659917811992814754173462612844813169644349298747831101687783814272203251198640865737797857160758228960345653252394818847282988137583253660574555068642788450463913815063958281383917649799830448641374254922640745058675386923954923388730883965326817413706931623942013797261556293579931670017869219648229274721058388759594533217446997490061593890788434335583042682148506521743880644975626261196486284750462191016871125837400179691039782482598333951182092944826400817595447315004340506098417675307231469202163796061416544003149314524486108425623733862708457322051291075874597461089587947406257562378663994989479342359661623507503658991174632697014830395218249972615850770956255728697568810258406904864790416477901208911566511743947907067745876323681635343319942017543185822269877905071368915444429898478220344065237916794047379071564295845437091216840862463207421639820432696946065326568576735059837963452950390487877122761908643251819149391962125965938922250890436128398429139703295759452185463531533676539197168319930485658780316725244530513229882329027233669908374766981992767364289147135989826608153274655186612682370090400901483924894966838855937005956012385051771921980000056870381603041917441216840801408638002922089413794673602292751667849848365361218876127312821968136260299903886872509653540697296961436505761484578349911991912255217449368957536383753715515312344910885411621854970524899535565488814954098712652581068881766917542306443562919083451152430348647255037802222637330097734078249184382585580428210891728811760085908553382270641004504035938977402613660839216253956944593722012181453067128605392804955502551506846130408778176202764380638585447877804504412348675475058101976064499272196282308526786844911409093920220449660040375460184079954449046197701387893821870116987256533906577897951743326403397113111643565645616676621648167798672185469986377089871057049663628152160966755003849312012446431633694474323583377551721674986210569881103700107308103233366441680021641404601247046690041403009330593241210459609377472128569800751397417269439084807109774502697611409471126063837995126872616534718205733506602664911720373006170424591706516027816738530184455397902934585510171404263501853314121776722543783405490316136720068334930326168170785429462234077501339472302182824212263631386182797360166651038386652746550400177670114376264871412069585213992639077075188227739826942132170815051259359270286447014990037266637976981205508588911010153558185095470195732819223483139200785114711645091358951646770804805657523288015089635573142126717101134417312854026048032013101185266525215146034621015201322507305608080746872545999110475755293612808071831805671620115141738379563002455335277893980455345621467399949862358232964250939479805788804974443937020166093723332959951030824194210427890289366199408435411586915181146989967652552737130909784173363788825694299888160858576129523004696221952266354383736703156347422301665459627435085751452146797020742807017924224962950338805937562397974172795338913982267498427612705314109072126274901503811367612354800156149225230904174126504774191245645282161580127078199380408662023857585631280777676721487953505225195359222919380129875025642568984260258414135570770696291658627143664489799085386324934736597881376587786299815136635912774618524120424762765159723392584985417139138857347064477113775889582218961836520076761975088448406143501283798047322156892061162376514307135422387049600469952666193946665172012641747079206786044082566297482417123124088563096799717004771366647407794561295057402933318435393233239927833216882694521673204606241418289092331088875538792182695515241838727300156548424513800989729217722351444163488328504872719582913221445437672424192322721407953554026070568170430091404587316068441190548772227150571911439552077697125473261817744676579793242734322549227392772207048746048654048077390849552125262315486111628642334529303703647718116255442601320252291070883757286725580274114513397017052279160562399774873879785643221223541144596350450203601308085282413166071561612241090965194716628791925147922112377336754885213940315647625667539482007383830806530958343931785361024458355757435691396642279858057859915042301028798477125817827572648370635437789546787769036070962336531014280737615638606246307630263686061424602347774862513091423348375636207692463532955660169050950543551822165175494456429265419035913220880897388043546075433351066789897798206732777518391044786973180308166220507111551684801685706418510239069430691984782746274644594271587369819461963727503817732053183950616639822550552855739809563830502429553982930953006596488876915611998979843547943530948614818610630757293908405543887018127457995101316734789335318491162495841546956957623264984012235674691457996445854769629499328208146886517146192719176119434815636715974727100137839733053010781277942379991742234463184730677063992307033118619456670869597170114797920731594974845256791608643380241087865468938285961121202965071009900929887256438424003899361955622025688229159180522413227503772787371230311731632220277899443391447737773235149220370559041874078875488006838290344385720922976785392849780085523421180411127376991945263788543832339705031071184618304090429481861961987259129533997418938314830274861232884103068300577623407250006663720102658912318985717160760213195744062929506441573273588215927376660252346758540318629991125172651547290919825664246041472087131307605746869757456344058259158274048440943627043823937866531124676527550585413609836354792628760500317057333459908592562347409229007491934739965123259814342309227939487849820002317311637931291959492343203645520590093602253830121288435955536317494291403609644579529541756569696737168720997742019318072890336623316593465366131994900328582444127983465750165261455069457366258229576990710035504306577451212828385148114503822510301761484611616548797946562416637971390516648403182363634094781850784070907955300605628022672027233316441612864405764590041712612920099724003308523232388939480334514001641637817759282148937387168124762347727087072255945659427961372142713794334321525130223958007549445354136456469768249240298366538631401970554335345828419105002996186136330478437282040295597526043234116008505271703343594659093574479457576248666443568203572387158778186353876549217180699254263117795693237106770643093265837188929346558345094731763846519866661657559269818341356964349321623327165371747605515595742700600059256282616577565482889315664608187221593276720643762230516561760303565310242442946081625175864067423392334766583930343256520598901889217709135757678735515601830127323075340536605766190717685461402157375657349820672471713034183887119777198634355523443753045650656720300531726876361581681135809313318894965399784931376381513624757719245293556936400619162269451887187538310118600003794306630348981313240125328312074678563140869645200413175972667574314018513615754209611778148856723434030501276693090096550955823928535931287343837816925070157264965136452470660697282953931963786788051717029533638524608461482849230259656865483157556474840191877928874777615497020836004668011630273026681198189978534648974312620925449527263255959405041619415667131916815698183026323745403718370662498592379801208279841064392761767317829070505803336289344986035558070757820347820810261149587690551520512375111285086498072991493009381668581208307385286538176614020975161879360569901566115339874197299350693639692198348920274272373439901715338708826251842829021187126535861416258955866179495306861728169819914672616560651612639389238174258616652144736793273195185301819784840574730554546933999825951756999994124138273098218868598485145962607401816890518616752326617252340101641463165195548909302223068900477538672561020210338764536616040362595299605716610132067716963299857443483291347266572764942368749723908709741114201075285832818887556440580364596191152277702945096879277989492362309132238400177949952404914098985632224231569923370590208188667532429365120060075764902152984116659121010598898796208954770828332290242159183978737452247559056564189475594938675615912994442620657976218490499330619584634461814249470398383001283585201652429967527238694885983111705129767054916218190483235498565001552230988464505826057584314278619190756682710546060602392721033845666265020238648348630568020735069937903412844193382031194729324638178773560495147789702441054927563695233258583949845332062903287288706778838554718759246304389144022292084623846961034339090073259015116523261989261344314534151932366803382701598618111996542247498496409527013870516404569279428209316937200388440640280196403099722783757075381741862412591691613471668085362058824893347637889444398974860670796343217853473868515845716114368725727500867621190098907965919070692462096797805042919818184123027920750040269676750211744012439826484718132845553118299130194979493189121312463929898571881431474158878733918906494247370562367167325829095181469976940979124753610223250587002975428775941864825998013538138862993160515232448093291333815904469073672636684407654111859937195326007601154067195872101465024652536228088201943113491485242474343322258875665000904649478784076830326002473752090863674316512652420899930182577128730135072565031477393461998663897613366465901265830535938176509573904869544929539207693233249260967615148888908537668859592292022035240155969575776037811358597029285851084136704575635347420285960523100599334263845506668236480231764667614097289823704898356927702682786759517848121049940555405775370073235560851022921803906284702850459038867127767729590311991845152859342719645068819273453253325886227005035982624456120777252225201471650250864947007271807309429972184532081470202904858742122919396762733497911914921735305735567289310252714486917893371533635107446536150584458934266440405584263282766396638418915763385539890533827122878947277786548673703304633758473654975996939853668830435735260009266499677869734312288884737939959110134762898709560684849936815110319089078852076658335096351617550013542351256567610943341444018485691767870156586593945134886649711575268103229691431776458713040309258515790957577269506305482718353512383807927524430129354632461097126203159588729605796818617005848985364943099777326626266269528176945302656558564049878436000244763138283760395426797396235637440363986486502288549247699047677241282193551132660223318905705648819727814168264678135915558465151619029261596606215878431245812445589338115849898398857175855848200356917160073518293703297404336033944462696215635895337635017740532604995575532647891817190949425722193026950789654879163320418214620449233812882875685384671201677095571491952983393854899771334342840466891258565664342400448777050322763894041033118682155588335218909275847656138479563624955263702368482722352913227298946427150650619315980559115857314883485130261180599724598800566705457012661683060768222759601004706828734406827274021849046773736065535143232487397641041426726094182073301337547152066411583069012701261769055287402404941599154101730597782652473854280708085927278067278079553986377841733998744421333131139674907231663308239961555495755917618013749298013437780186869128695528959301809663479430267314750822357610346777527137564062064911753689867624273667113982424887186209085144263715971023614790511112502392628050925183489755882197103021536947871106649068754010319420067237212686229425819183590819959121408112253614096950544516928567896408640201454497876484473853365117823127258987435081493517594577373022655219519183439375044152309824830291158747909030704289457615987531858160284004895022529494391021512337063131966158592873360163309251819374069954518066794795157488824319700630834638394508367623646501428320930912417138354758356914882646844541590708888280096723900584502028818630899647063033763462723198276526173937564673973173758472786865876255736882602710866064773315698154001164106580433710720756196772530979452542387597096677904961643596116356447553901707806969593973166158397958712869553392497606549470835206725586342273273126244797754768647880665952539875443553475906535335060917393427613330780779964412257328102968458043323317590260549681150538321378203394639415360937413332100278104601531228346706350690319766217846514896474816851533801670137500441836454556635136843471922919040066371453326275250882716554407355006544290291319762677025651084591163402104629525366162524875628292328192661069545049693072433941539434770896555057433305932356673847700209792298352525583594710023648327371262898351672163036008347969927184325378717825790437356684929485186676703721565594529958366817694169509631975109106867965309327718033890697804128938827786470550658515025272198587795213479309397855791256078392122448969814657230182638732861874420201916324906545358784457083110068132196774604585734395069831379363745981036759686144040322362119892142390820053213705178724186170448690478116854104776909034498154811382591587460947662557125134640210861685567562175598746109499069101435806604687722547712484191725998048562250530063636868853231401921764277948932955263924210689237950467580987584660665863143697195694139954668284327921350176080319322848596006581359946419057954515613770563171486127709612274100504546304116661440135411879458111575937828950242240408562934444344005219495692519228317003662122531059669021019175428567446597196842428468822210025871018057610389592079207627316927204122651811046670239830035142969503185521394927027039259162728892263322426382072529681407141340551815292140933093849114398222800967212584301847249327114169047804578617579625979096712745329695236369215318995325377591053407713734230169704269133221466311656796535158773508916959698339157882524778526308674502042474350539136166566671649293747532787947291384879317108338109644763820747778104095557797167460114610843589665006214763768547357557953784420108169911215984840616440952716288962325353653913198858199230091301833607765922721890601987672955190208969220827382981813131352614473167081833551820840002224879835488095875754453653811517557941207081985738964355237878120733478958833808651678791520011147671764590485896344341805357368549534930028923583770866128363789185033178742806047574900546990221673933157237904565712076229360660011984383908257444379512827864258200603785744488482207738231240982560075418176546141182604892015092134076910890733425468333693552459935057781452231869596095655128188612799501268965144778973340644446404452251057972213316222632207424534135727891027614317621502709147898811692965876343949007136621419054029004237538369642602191729593723627494233365655528916680268154697653382297710225942987147768524090058642420583515205459211501131428622681877074148445664830098972594805788399090023153904017877299516384965539488478655772876231502663995211914517781438729649000372042110658566334949418976475968294440649928177056127892700760325143729132683194495896288957957067210742682544659201993823619185732997006209668196453075857658449716689345520334772968446864959423970191445605913071846172066872705305121555535146945204023859482162280153946200452816588147461788274872705876733090927066679892636802495627434375304806206365931527213984716424331478934382472501795901425839637723893698995740439340889141987287585976535348722779027259152139785457371909426874114684071241175663461406807615941057727499135850280292045302505544885267367667853619802176109542085730027524348020579544096483591817612445730182834588438574030401829771378559007018209941698624426136843903958708874982910048030700048228846651464553621283560833235113544471068633053892903579417340867874266832878709660185370132632298678313898978381969733704781877013487138598592288366865253288871706748999386705993696166365975456761692957789229269580082554757055789275222795993405936904868293311676956613428381151069818518635520722341387407198385580852085548841843528189639589484750576362043459258400672135150446340575603661094833533902539402542468100074596280281290673696103714384121655151219675724126036667450490012882817127891847651465366723683898731173302001468495779035944852924732063882571358047977640838976493170324565006516740262026733618685279701606414901586403204004822486530067202079256305336785427558458505437250689168342482211881157677590953181852017334135338852332137606867186864970038032203697696780732138525409959667044390245969392491817398922969429705252286176504951020691322711324164297279142657755240078562476757551198416258990896625812891317965824951930802374911143699970637752017020762843448676940732346245636526831040885710091033296151877123349805880868082963135911091861804033358858304263344212212758631279470304304996230026124401660897740869213855913242067236627009294954457136945629936083075412445172699610404417245112290631762562709983557147393674272975678843170455557001993106607073044034294533088681224696596945773028128510451831531545475297364379778888624417702979824054302944934990827542160317943158992699731987759785733806390745491448002143080398092407818785904155803626117290208233665583551688463882443692762767016782895138818795242679920451413800857091941698433913379734597355302726279644956615560651088056890606769879000232128058925210267323617188204088906180049201242157874417414866030523705835018575957121872331988983853148836954757372122830394764383101546956011300939770004119583321068291575527713890808737171067089607082717367801345365205523239837578754345091118789926997574849752948895903158872232314472082438865435317929918268845768235426912689781806398120688259535633991799763880896542628270442619159217862859201611339586391402035557437082736170241495022284465063086496604428429804046306885187111752550319851510506159490110410591556081757687469896336271542378938468174044869161359309818353117048475869212505175928967483809009175190560410964217949682132779021583170161328495014744041250720168943679081240640673118487361076428579399463094799677584436401510905666630077003886038453155915838453716841655812993519320321528658848563760892625249734976251547208802064777237092135674713506209764648770475687725501564977081647728556256630020271064584178136531455902804614679768637116232864746622779696719922396997673646258084956925622944471228916546001433340186149815090072736145728054831167318451365189458597382725773825258031124379458666566384629873969908937483549575224802131474725582326656994712091029188771836388448656445605889486459740684378660188008241563083139740951006034070341103030647438407343119937959264296176946631466877070388644144737610245979622399165661643673110490545538276045234906757355962189773339796830334002155741649190405181292237922679462240378377068379017056236884921696432907921870832089898956885718984401890639161215612910105664212568872829626742603552937828466762298697479815519306932932496552775715214934252493623436083619209218333622446050136734263679060830653333706093786025350132627981982719342977812679948383046001154596815611511449531153760273838975327004293981436971883087674491479942274180593547573984592729677807516420487015459026455566775114792367168991092815799956884990023539437226095683259432186753797641604451264236645686474246556367528568675573314825445851835680488747810521434894691977431612752941157825120717517819978937177003304063947297759204035097405531635124244408977865002127137906210804556166007261716076990421692049081374600576914150611213511000662516117655022281485077259270620533859766712970338230506246879241221811401748096532420875293514726557564118662007973144939473950048440109991154547548057377535951948498662589071398983398199238759788288163738733189799083601446513441676655362519729722144491658291257867706051242803671190179595891115925948494405734533043372901972849279744718041067105221579507673563007668734295817790759035445823375761263904851313755890330661948432255202973141988520534488409699683781139178418688095020680729474860806847432076124926721082855456873377684436004322958766398293019816980400598191135632180237371095288114407504609810249361761684715483173330856279247711021490184379064926834768353475647931470283135409672806597325825725804944113122000143942181614726014432144420264498608917981422901561332539104518293932941440580874349622067379668228096787857319545192368829722796239032502125430856563034655758624671940339878509602933884238471602421412202716857138700908788545009268147876612681601169294191018582997776218937687932650529232280064061615079404583260882599476468885014358328931664772041605421462545061471632257721555345341395293822012794377025591801184405649180497655592654443157235119789575322750018151404905898100642333061546304347308003841147690740962905411153981249014081662916116259100658847099847271267806133033073012867354828763535418084233335113516061769897244394938686516387184218848978441006120560293494705398431220091219838532793188931303970278442483977056682599226000586207021360898821702362696207944587237599551921874472562417464028023830197029827218211829580186558235325864903116635243368005481701955308622978706540559353483620560683906454496669154705161094746412323795780831906528888332917941987375539251192459696791418204346304256494147993177790833441518528528678710121069224987077339318190481621305114549856363369453936142795261470075236149724844428819540142399473849312058659642424206129327915673003877537259848649935185510986008266440539728465582260216787313779097649907209225652125415178841188264401564952407391335649140930501765864686829075833119269985474434169390473860241161315305537376254269757695670212487385772473820123039103140464685064390494000591410628361051493539521344106559210316993574759134549125175232498130104504890555414970099004743660789106817917336093627353323877701056669944663706134894994141808128515392535771454406149750962648043164387385064085110201310989545917316684118877018946608461343182964381891907440929769734846222476274141165005295024360010457835971400876941739104017660329018584396429393467130457040771959355293749818409765813404020828054918978077536273553622491043378345940505352068603211315473999233104240248553272746984365588984753589648955046082401920581482904772944840832319446900670687942565579504361468285334236769500723862145990837007162834526548844835712729578308981804700849696254695080652185255617040067703504026116355958294842089154541716879228379670095543423405605690600456348302042696720666320698047058892971356150800201529953378301461811809327260853426067047821272461139013872073075807842094806413705256204742821857998269019645239405782167762646297495884482126837005006199589433809212154279953448875380317554283036707653365139793741848795633612176309235415822012776468600878128514132885428741587015947656413553990702983073966094989249500039014991154706678881936502176224271340587694160455351847292371892233648528802519251496047672774166041394834484086877842948904625073473533224727770924734036702482614329999961762525470176908500395587632439865252801404898479243579118443473440964113821110345603177043753658844727574897182876147743516003104009563738591342850902818935598901642267400471050314978486371473088220968909158569305353463972794471986093590795623373932084113883972014329854690040865375986316435250532718264644503545666772308779924937157505922177273693969399398995923585148171813437498698377230895611848755281429986821065847315147414081261153681914821859742497157998151855321806822488759848805589643027539843866407153559180686537740504213782098597273044656573688437042141040273351210377887697963739514207012539162739134525424100302683758967299643183025752138155564873276448948816702872709378676612836583950355755568778502864934368963189310470563976814320057143408739654221108228004407796284183145104865139226641875891204129624907304324907140638650124617250435846680357327811052627338042003741627682887402976606116910944459614224127594660650783902854246043049087332915718332143638420317704534371054891387198001980372433483155815710463519656593796107174944776200167209471190371807816413333185182305356113615166422094197892564184575739981363076310273878807133704774231190693225434588812739586003859403783171881604809654786756510186454792370914727503102472822963436880730284900824329601406351282140770102095569574356777906947120657354669431333131097356029459747500273506481061743291752824107796346107291357114512479114926829645064066534615887188339986115192602086906211608882667389326942842531139530773047868463346788147156498383271854963655495670572536345499985265304370734662731512264820887273005545507760811644376614085218246000732337514565871452578692507803669926638314382358528950939279557112397773801340792328182504389663355805666126353548190254448514066468144172214824114808847933746504651315301572665062666109100250892774155878084555139003427834895153478828231319832517148863543628544766276800846406269820064964282404236484308083144357400006961863900257494644244916082336061961584172779615114899261630522371105013419649482079305349454790194831140395476509267683249626129320968859712476679749817536499979396922216754771140261909264140176403510746930844098065958208749001058205822298938675546501250973117797850501352627371206866877261051227725813297965041570756409054604861151135485007316475160865690566161799445819219943247882815227358409299422414761453785243420860793638853371642676332482428938056054385031881014454715775971773194083693148641697667603938303814403894514773082615947550700924873179078837747750405055237815253663685754323801930000176406725596453874302094482102044252824993878120079291076113895785396509018192427881338534053071711646925725090171473901986030660951672643086509474284553956463034610458243374650866750310143749689984219873567237539907479130520282307700272396814151429685186168027871022018402694758586720292754316315092702397085481657104075873082349818514289197281058069334812227272318939878695199396248235830320537480259392911603672418213382584833431667255154030636238613516616864518555774206330908146475086567330841959065014562463652287743087104653940799249248809276013819241596591689570081053459085671043819314127910609817629175199428225015391952135917394499795904760907288925652483717159220083190959451997098023925788933381418529731188374345216436943025790729408594649744914658780582807266852573463454980233060834149667958127485965094015284737722893602729115338078755071653659773314459936044775501218799743887885097199838644231603364132961493429074479900719255111042260524070751176345036582661302284581550613616541682491598188895449154953993446823428332488760681069865047254003770705010988937976776687899292808609892842348978912863503978832751069780917965096644158369771814962683688271720431044748337493572570708887868711130300363041086143513594829315309515294732648062594321590882579712716609483193893024339586895487583176239470334396391399828701582490863368696008474253066852039773232547199146738909933482159309803866645178568605662999766490400385593228730042896578797610479570568175225407352248003973852445003102832822324703665612222449143970242389032868924648218359351380539085101391962316455335562497323616835579649199791358917044745229987582725061839558493635032565929010093368072155548144625513147370296517399522767587085647181270026174407222188182698556113096014816328681347166782263882339744909249744415502056306437883234459400736655889243151347682204709224414249164445913981685267194108243105845900149388388209107626615892114755094702680267847204658175395101044006143436013043785463702799474090963730158817469733497902451967552877403900962828117836806064341629878305655834288808888438197883926063956514702647517026931122517651508148659966431159757946715590156823753611968469813238910726751784233831561143724578014529118420712011674021953515600433403930861931616191554831527692646881063588983035475962836111454045196877163831564397741136705143581317978704933831732088520202459928771456199343387595648615210424750034834954186020708633095580666855711424758796570433512400277611539856366037597269680180948793776722796924831026855503153153817121923297135315811769326158334669614644111059368990973906576438416111916461821335176068487429413482877728429629534690283160097300311020635761490748616958948960739689872357818348662161454553359729356469732617331990937960064790755368905400629565244923418551733190082771569248474915544879663499188872678903498449804169472298806687274623734772407392190934189712952494378979895091104111339681192934075974385396441347157932339199925670999913968363407146261786092067484432758779771838564029386268744284459709869748738336548507536092748626146802164723997136596966771921391835076753190923146050542347638693953757311236794773313771077419055985019895872951287024982689369032110941750002089800183374427161228094740649066944462563063680647602816254337223519062508955658455675958645600361816544531381760017735770456043725513039648930101432376519462376951929721346140468659818950756470254920475395810231792607001120683352085221490629433364865576092783494872759013929806299432292809331603084782301462549395251050478204341950934055295792737487225793697539716062591833429900448819777274701514188049283333424601938536184148488636527140380402000191505760322426686218600863898462183162396448325461755230031091276806581711775271187021146928156522780025754508032264906250748662404644440093729743735828857500058462703800913563339718325159037298966008755259141461537749879816380389481898424761195147048078551116027769746264376251371559907697458564534208542199744069411355696451206663000283531876065725430407126367096511814216886001301380072440709959863938483828140086128646416667911281078412576753505421417878783362371103727950194377656459004537145374982215543603079123793134098690573088985592682595146525083351798497951237875779307001551002971261993051882245659509832018623154152983446620606730690844122424573137156542617840544584007466222948088199815131999439078438526324282953178067148779398264529619055492984110579798177408149149945384892213385636406060464801278544921576337864624329899063936898447558600129547247714335620391031236690800671347487459659208212300274006369719917715814784658563325914941959999261875631696016259925395692002525377725730601749553153119944072834421686279776742513978941507008496725880999823382206772137591429357878724828756337069318595864051336869612636791989187326457978783798890612638287093663634361661240673468226131034011921745643206919157078089157787507613005103781221707860892954239289293043556500191008022575427222991312525706341835154837144538960851707829342326349781132419575868296821187450617181114296142131719659673855431155319208425011051119404695389021070767399689228486613389654183430061663918567420504010677380185248249749858707873611723512393109315290479337926095294555450410622478018619366611189743071214702185430882490998227110369726781343501715197409382657322700848429527857903974715731351517327002335037612036644918909673956856189354239102628052645414235594083508476322095525671316634462786061654593970367605755725213204342582778266457261783502657404709379515442999368977754441937027828423381919497025131685414196460633381242255277878498743781717153747869227796564686720615780986697328504884326206924755830139531119876657822638226185689077504258935236692922400864789941317027784970711770517455204184980007549230379568394633492538453258020572909210931178993194193656912984242770746147985020582749500043212855201321071479537540652305107459002065102147826330974303700250511729388189842067850655235886055148308015175938683772491608028942255731343543191149847898842646815495089054309074012887775897183883166963657383864976776110489526811312269192167220166163830913220270020729482881923074604813000104779799205869101017853608997017877579500829161595622153375333499970551665107321015344842603407730951047556183439770952383770846700856063371548845459174333741294811147484176263739941553067415091957038020129247845584677387276519372088602326760848238773368855292040807422383749849443193856106255999057030846600455990411742384512226311889632515409302391804168516941536452585675005221539369357687690428096943169896078029169929864403463184268618770936767117620512223863239902258965266281806375001730835727327199177931998823860145502307391963298697551095052778628717330717518670816783244043576678897379361736653334393113317541855854611530061544444813537197727926095036222220134483657536802854169548194660311171984542158591829429087011976826054585936560025223715838782803327458003995103770425972137181965890251845051227016754691351586212183667786634554857024177763338550378370023904762378438649862725455761147003907546399155905689038134289233433929066757934246363561285137902671715554296801563960342366615839369587946788381933976109571120185423122516685112153284554501182883017048771948968821871867702588583694932221466972373497015740758353624432685482088411302317470504228700012048539149261702206011695370365027915291324568836256820732302458280959213400616296051953199220878802841643239531971572301111924767744940331133231101715002040119261336719755015607579131310420915934328153397670920651192713816009372814543175074781173254898220984442429953605288845915545923644416136360024355440961624082016812946006224422178949611965442805618434673486810696764061631983430399827706101027065523221542731115851087109869777765728290966901399608664162781105096485615403101054390020701791367950253308980160468728402549027003808507302729932273255400513977283259866857277302110378964001281141410276948183711785495625202384936723423981891827649395018144795634954013198409983884868791808370078763194549344041627720061642797558426888763304738951881905757218964294080430687636280198204861331406306492205580850960603867538541821968606848683528615455873761301154951291309183575547493120186790022563945324882354399595471665422484613638866813318812769094638536589473186215198176692905619370182083136444489098846133474250657234291330224008394453807520981430476849156445451195885695855802694066294346100358950822756891320581812618871125421658994139947594155642306717871138727962643801698231314925956342976077810135283068990739072332174144562886136974385364008040730561025204221822721447205848556217799390800972415860075825305614704486057029453462108061863336683525208145162033890467193394975518159358466712074338980901573571691404637489596864590416358207277905726010213073742628068069562321057338430471212156046754224032421080451979519301499113811148472332969457884102488950176924756187281942941889170498847424605172688409156234836097606864925878428713264318881967501158773818912080656435314112244536298983161505665702742617253921129224110953259125264905316431388059226033399181712443902135791592586135976523153969902071842485916557344502580704962978313276343441685940749141987298807144869464948356450358061472368774393664714180336014759724766741394479075830287576235577798274969167095063108728634940310871118118608353032192042584657965930085980453684554624305786342072560070295306423940215395609281998295043186655811095695120951603113672802960404640834591587390339678496658945995452037529974063181014787744991458781894422479394588868267477364283407758818593170444956026219144189675488091605265272018222034320940879374511591431314841473151300149621022381017194459523290359118481909492521752926251553464359296346218345161676133455236745367824195077226503388535488899300922816018186824440635902468824322878351536228079430356479922323002048099263381289804213378383447797139088854115376669089272931676381028838622655408470363635519111287615133133699250987312113556534126025645359256756507661120180062071932304018658047616629869450324399449510575254179600279821318326692777102520422241323294722611599753764883341497902551622320486984982876222105527981141957581406385877289385346306984963575350662671183949299813670436424382306159401707070749129457449827990658687985340896041316643432398053328594358353816153283195000241942502719485663187551511943308263275683084900417910880278625882184840138875638774434873506792002087501641395971910120937714205062738863941972288409565832471743706004260962727647644166469416172328252773574542041593788203196077005801199499504633503428632116020771879000823461251565119889744587446609847792195052428180511977157963281305079463881994930871452586351562578648745953554195691080915466114797571795927580893544222067188299048402387138829542413771920304425141768325859037914650442264131066990781507530747985124482681082982157071525593477101914239651851798169546901971059093758385257262717709069658970179656333614717300710163131702258671764645936771358164499907564795179153736669558058579011984556036735571008731474854734059781914540362018173772985427433542221968889530604790244883342633599400187093240941604871124456158775879932561618295977089416986219786929075360466813420070557267713514674111880626508930498206355457002170898810295023677729498543092840519922151253550569610798802184994324324057320548121796550701716395911942861454587163986835175753614268000828125935741678281343213146918485778317024832832184504683696509735331984090767748573730138363753634943751003733785791128360633906712071755110392858052988131851444009294320528252735335565074185339882804713820121711192877082598162243354145276507558979161263047248905029194644909608795199714942808316956102732373105431529804664687829780367043258937535325553819224708941185269947174470330119959105211290299544999734368220582967804669821568815693693501192400399304223315098980689367009158771882157353855799238687347915072588581950852734264527197034797222311192244133178060667710744712282123087094646328845628006733451874619066283480140888000901331138496908741868228699803300560877579634577276453090213213833851625433485914929431303452474439122687844541763468062640639681035601929303356613788091190557487703722135884031659405442603027284784104663518541703954427010179264332228178069132663865008358319050076279604650613690037196845229890192609917006928306999251040126649426408660112360511403855067915475394100011475459786476025676493081705021507771183729725757762279356929372017548270373922544361231657586110768501765267495637228246401855459703084126696382733153522807084461864049465720906088623251271701675374902983500061801394139153921554518789469997901440046722946019159395268112003795081118200210982093530569940612728087275309692868768089336866934389915825479971647188040449203943618906658267187503453195115442621786168930900910258441413727436625094198360275599559660520909627845107765146480823211845190736755473887721089142243759594989927402908662346176930839859756064247507970473620187162103242672458746287463104576809428062232819047376671976969701569439697238380005407946789958556944743494726694806855407518893586293031720542918906202498092673652286829457701488889668328647496360773414595496856295179026276044081856459277250038650842902492097035530028342806941784899570601399980276009443015998353253101214699760386562790002627252293769111953310492745966594090602051422871062265939362743269348507178786889713399280196741169579817794676378893660307769218427855675449834481431538301630586669478718433461209603564090484091912195438477883037368414247421951672447984513267721142423781143456306569894859441459787370402199003139930976298147389821437609474363914314098549885790094684387955640055670831146839257418495808500772970560285639528517890172096434322052693050826860587845311623955531246854107087264178480737283631401952362249739875808094162001197284052396336321630336743705108926072745612034170444062248456664036070905934986243000781677582757141379597346086057933127037838281930044928804180102496295060978734779855049621794096979966300908205445428968985969165795410888927346574575487068760944583441342316596168586285669042233878393138753773601049795503778862266976043464282827496334725062662212415497292969477377475840454350516143673149560187308476611214449536344434738660839289215600445518334354527419313204949006765918115823220150028170034380964974370703430164198582880345099731850440587052830695403439095621882478124658223141547807276256176136312397425189197233448569435357330542578274165608080458736437504151015400350644215529865448348952594497802623119620433287384954983598159062669161197874217848264136109979961130437004458141507033893269517407805171437930245536869925707659846325877720341279835375394406105771942319739763555411038309994077897243492874746425045896383282006795070437097047661663962741188877397492112601808031944454698646901595891919396493586502326135164434223353922051318230989384007156380362036890458233586085889691513376031361066120601459722473519945976027027589335207941390493306565763806112879666840669487611400656495643098092773308135587227382616267034833736918478477635854608340311726362747719123907693920646190466748207087371605712772121124569235212870291905022992501661091254870136077751947826879601492056547424537992859050898056259157720254500463082580135165692243301892087151010659799718820493579572187346283097243011370775210784734302461782989281537076027090284269210046221242372337379307843629385275976040468279338738783521196360204108962499113790222527728811289766334778962209183605190849127636520243184546952538950347490227074394200562046977936474751173509194945512657126444120139916501176587086843054739513192105874541918030462325061664901692067685931095113009147203056414016323034661483319802657393241589610137636517167604020301589151168227763555746417390099499267950915812083895708482003039931811831719594196335241232363549368818708998628794377558724688213337354160797614420362000861669271013590024926901522399172173825671881244391926158940664926807432075650161537353618947029094042736278819267709338970937011518245297081516689757468204591457253607666534118466717318908641324569855492562836170984128261448526582666483933128053152843105394825680378384299136897200398126004338631692938492076730870877298563530113058225523558282281950285579809128182736735170533410481678856231107884036982527652033662430604749841956945429885402754866763485564046096898104447000816526151682045779195240800663502921380473809404268777985001423381426876858152040287795084754400626200715338444792512184451571438694408721196390516552311045053644492724389296809413758651930883550967545010152716569001776337564277319138977942561291727400815748898626520855712183188031585821473246496802075041070741915475541886265610132202075867062372782681410289060386200585209041761836739720311980905955332807003340737796017936494054866062915437193438282602276551934371944650943925400129980483317127227045679183314527815134926898498733783374272223738752485664218699267115312028164975763502593572845917490706083078283345652241872974877843746085329416942121138728409901489774425331914317038667189535086801252037030767621037216615155584623276349115659892759481902534204669088444051612818510317123638881188914611574187999761093137034304482219466106662372735322592211950465379735995682727606063371696100181456920997839757091266623753565620252802505186372211777904654877835441291300415933982266723320621109214121684397183187534370397292798744464883403578546267877961630373819467458326519216728110052253930840883878745840453001470071702973442562031697820083826632145269404208475805379321309226409925262732059955800629508513328777843589845460622198779257341263058279938521068121914022447402532709394914097412134919387582935809664248611204070918489403861980597353634193846852863817859859569326164216767108082167731483395621057655108561672887849508268505640514234083062115385290709364980567688386939817108428077859387680214357969723139022323792975519101186322897322589061427687446994740608184251674539209705475670782761346454778334970997347000979940440382499709106620862374786805252447617705732913970865180001806548689433713193408454875056093743507039649728806473153898702977572494198949822257187027006017210559882978115206000035548498764422570397360581505757461659600424243464581563266885818886520729825901457847166619600561440456857484175702975673802273122411211222994829021054654352064538434344054557465431721543210222846760031832397312187892014188167485708711834537026027829248458634843796646842136966486458257621190712575359358269743752522953280311748220758036895111415835266139335162932447700905995176193740220135905083670632588532167357632048279208940922274885578393200180861607806972260158048845962011577906634942592036126797081284172783196535485329100570041130449755859229824263369964372003168447665501147181294418399582567617395413207847343643414499629932196860432971826161713966331100205668049876427384938554918500183335142093700011851030857988525557573890671431649224488950345759385853493080764160369503740900981054055259903457664772277334451679064717988244631373824448993413821731333839828713999919392486824791671944309360476579564773173356679487535721532640496011469175149703634353265852475831513048570534129358920165154226938224406283451830655922222560379777877912777769303281591439641679137514021084819071207855982317537085198476617393209219662011501270852273355114977890304406249233181859138925514497011803976030645132480614431763814574682435545679133405703469748865407831588685333770402825867503946324795682284478586235706825704738363374463269919470213992232782964372475901908547387602780113196755571706121865613104978565857696732439546344202239100373767527514057668006783450890834697931446683400782861295902717762866528662834439146541039762213889840236898538180022726897225875017288137928662419928695522002064771368076559043148788853133719737073490367577088279500276977076920984063706984965673672531980324519498840952042769851069757679336453574905155455721829594020030808551654990542425379242515355761224491067658936210185461291484666519210647289839386732324976951693015950301695870822434936823866286178326402075281722005216479067539980254654595736565955520478052350725635067122491166081172034742424930682289251502720550400768522893170725731911900758966464659165119417008897860657140915421312090148934164847770480875425061360883574695019644740935115134484617391357863405324484308591412397893963094908908190412642961002539276701627124297896319299091501453377974684822817976904744899845443994594952735636926945865779396481738485264669354271640529429551652884068292176651392356004480280288998685407727819325633182516821019969060289017159816891296660550487421449652498789036534793210783838825458735108246059911252014958155728635404071287732958955904468734874127548093171858662925225586817140195309601194839350542684917936232468583956628845877983330892747825390077454706309400872077122788348648706980624224336388234219678660243464772523398183443041771181105783000860050437537973296349310234214383483631460598483025867331795004028955957181492144369457110997119748321484900258591764720220113251144771822602546401744155037972138324560188845432171637191899728282921513806760342781532289689655315508816144566684280849194220378995521840058701505661859505701166496268779543158979894829441141418524191818541672188468759048791438982430887051179040906990222621335104905764522894488386391861688945353406576101741098850592383962779404098640010767241747650906118423777784515342614280989529899841786886440041755079803674033886107175960218543887060915231021652647705857347253326388662102942794786298308762555320830752595740578235311046217562720472288431240609539250330677680462219598262791267935909300087933299951185602704120285576344288666782953917300560082526760709188804303399880475622518159042740819005824143311317937317969269846078653011574817925056479836754762156498464603521751979760250901240281109244593002644835294758729533684185303972175080697449786642273811376061090368566823669836490483512872362586635723081035675210971646493937954511779624464279063392357278485912057879784458746891443399261254230526534370352529529808664656142187557242107423660705520680433921482056539679384218501326756249585096900468875587471532495024146567760672684490928371361932598273537664845270827643314163756695223906921327344208343782714971791171530999283665465555709376718315084378734431611696661954368944299330541010400904987576528072331789400707942731566295253882846884807344116199187890178285026757100710554959980151914277652245698394265374400895632672305709053062688311238411104818787211574135622433621611466750998663559333537811207087190218423141689195636197861728782266491621897803208750486338859175695727754103387191769067301337665226292531721486085222470919470914312283781602171919361653815079785047868987940606908757150755552859165481578289313290161795363850983064615555975374280562828078131610532737594603768208499654346581472698816389003131323003452344442467935850192612451889350781809033309737949861317019633167195044025069846909836857072025325709521877773025848412526833736150914802879515026770113283203168711417641887519456425825894179164737287811723037581396093774727125300941090965437948444907356554800947942070530409867810114500210152442817454633513958238586839143610968464351558686347256740921254665297369191254150536921284204046453939819236364545058881112032853557852375304991413755324738434961827797628781689177572987928714508833889090893500421981526385265730074167315783079679863922840111743192410581645599470858248622996561219657116470536334847153063875774892250969805860509069077664147539643042433302097398434162408395622087385997072926103818654089906540251734742115963147995880614966973859671248308716317711086468912412371631655270216257922630566619227922665575318635573626941055567081717410308811407658184000539626912487221339292152819849122622731532916218268426190347631751444538229789490597539638699514917992295951004404512398020451571874601882090293435752744807297724693133634995140881519457706592880909783790265490393095753559301202730710154037148558583823843332854805194680890497697845025438733555078182577901951306696227794018307747348410022701522095684252234882433832367788053327164746018706448923289282719310449178933885391165308325597159079866339919429810590329482377589337636846065638512080198258462095967557710199845961974871809071293498545204805847957241335760507996043659840502513374329337939087871224299374106597545158111301566166206612469047327960840415193118251426183722574554284091108078957547519578147019174702569062127591452201388215257067803807911091878930227882888441672718216756076854243121012652606217681748098292594700936326610202001339323098665819663756733372298057010168943300643768032313209727965594237720724609472705530706852538192191193819184341118543599308833306082565629276837137967996934121030830235783371500285635319840290893157870857047903354995570818840970199919715749394821274088351872429035058578000401973886155690651045148955730486767579793772043460456302257941166695969604428083543032582917759635177104726512889863374588161956238043369860998236232656522626207618795964769288483203299776628237076839285627922038396579062918905663211660609079242624432438671329198030366585501994997733695633195594333356898782531686842019772013233197816878445618183988879261315307360105131508796481542703683789817732691395235019882094023383473027541540994413057902929931095903340510544202542814068894948576243337717161697267794410677323561447732733300513878756624794811415774423534473527122790235919925680659478804647711342916203643147233727805544849166652749689181978652083949857823170124431388532086663231782765862984763041098904505812310805187694341646449286641394189308977872947976845816018046100864649650973027555704564804934263018258688946730174606169982430997659412683999383000325487944652652950422562468638540013656813859889558768283168823824864475960250786344522003628976932277787926793474164417291464023284054152010785064210335497820743268958267880076836009594334221279336092905964165043863266690946081501181215044267335260618458159362587062161027463222374842900296224996126007738924458606983101380587588491201044794283696690946688072946125188238895549018174214623558767755964149690892022414682933972287022765089082858806045830994721642493875548072562936071852642249386110050827452915831224445001011290217102148909669706089138572995007887380259454968346381963356335919931906842668272727288238542595338747457162374281190929116459891097136934305620105777879630790873601198985661176630528651466886282963221245778398114176816857079964936806297555154414297935298292268186289549759423520079912966005029465499907041660672074949245967780767572900226647718034384156165304517461661808289530081929826234155312547805587623996095762084298307234993116824994445890663740113311993088277111234418837389926527860332804133997851684894356867036414803100823653996537404698145642567581506609594763251289916069958936438140305897114208009234726873686434540973653902658989227378854740623048583594584901087815805528374939497079365320390800297858243750520917178145755396022011228412165841330839518350663403182811712722151852126800332796235194719248936296079312512651008626161265268200659909274371660009382084798565046825876428838624169919437083736970668976132846702189980146744072057906934041180358995595538645828713937435264934310836286198473737058958088490551454143762367502922372430404750020574039140490465054150247669344009410917013291459826441564488413237381601623394279600354958007288344176148978842734651614966524092914430679046994494653677289138503702865122438819734145785018027173659104095444189270856435186610621884184593840407536562721630021316353291721444756047354549549312980647073914141093963377146733100001245756614805411585246447893562846444392900109781724854593798604252897606385424289629526903560953710386440045297837998046226136726110918701086013155524637322270250213172740608890850178804585698129120975312031924913839517630874945011391022978559136809412392874013111249205348521259281835323396098347509063295982046348653507382130325648744332017109729026274221326451871254553393266477442669900831945565678216461414625167714874466908316403715647464641972371907937740917771753102508740852673475523760213729139809407188542406581072121898041463439507341759609430231308917079171738842152982752456108498247844794089707372896852034024659283464343578427306193942612080634951916976336009635360122214542892169272687606803515942313191295591599881473396401852556548416741682713181742256228147797183646362075909391607324915199674001047520939874082779639947601581425301997451057282618541371143988347699173011648283096340419595801974510554733358189108872210201457794725947453424064820188974100584510442738498884242843410762025896072390567956567774246864652277815717525588324100732286441936425953133698661706760220059900756602025336209367308668843072417100249646640344778301261562817629345611993690296662223872172556235517755074112280375029121549772145435172563342635786002153587173145449857545477743518229263968758548088019462669626918153754602794736392868511044111258846782724094884932425120216800578334600791371155422665896002664657972276902538717243653123293382968262255823981114759639916106041141606346498725282618432792368502384360016222944356032722321790519177933530658357815079606112544589733016855774141429532342183730797073875267085560609523258188004691740557962072361390479437693803002619719134003557075761957158054015075062358056746331930452172611519288723941296454948200074158398049879892908612420522381385616960083700117930038295249029036806980652230677019187061325516562417204189418578445098671769290235165671177318636526324434975827733149452480017381097379488705569262527988324282620008518157159897137318701268383613717551804493505950012686737493578429708713219415407069169361436541874658480473118234708140419284427785487806248561718060513987997116204411614258375796259719979504850439408512369242863190763912953168433554728854686822712439310726579554079848721672329490047360759081603262524512002313530260371846603479902427818725737087727864648944053890786288433846528345796432990871668351366200869094532736201871602085927700670535349627929074802810897019074077040926981342865079901562373843137382242108560960856463379364666523803034719095669545614987311340618819041710506424938314100935293133599688816625100998289350100395417669112698402727666225690211514875744164513755432094056135630826655147823810849628429609359735670761976501898008079025533229962586797030321803440320267793877496593374046029277243094142529908960791348252037751074057657300172140589714663683689941953181520912766197292278845451106833476401591701356417468621899062525636839852526053166248104169881541730584548364801657036581087798928588526450045216128261629424895131722041661024947235591884891624055213115450752893113514779770635566998073379959678008392774243360421007600183917745177617686259198321449282711921212303228573018967353549218953700760837008842063587659114486842874894949517119188505162422629180217445157807252341446911633033079580142806551518495532045485938376341895417005960583582096529140103136661470839174761175567136266964337680272248548908203024113308843277212837130101620900867798239056617513853197315198658569156273218227829896621242892206751501292714815577877717810762149394782187103489275724316909321819749293919414788321009138980683137460781453530479706650274450784306214189829190117264999399600613678439329742366723100292936273674131891245826217154283910651216059007074015610387885962004514443854019971277796533372592300060279743480780036446539542283623146697441999877007174655288434133756623534835072946454734592182364076431418728249738474972845375267309213896011200322690489177264833616251342492954808512532330233553744325996855735250808953601019985037822711710584635405837676948931617053112069913376775529014252258313579676380017950182993932094686877575662756222165729468643428465168461861709679520188300113762488192242313000844444597046425639997172565283359013741384994696793374730711394109656284499919444701826280962507899963386733153811790294647832738325555303418715685697248910664540485548549229684342280103309750427886328301959791561954088059614876459595921502656214913996247314215250217735934845468192952253334722842731766480003803068284822893415731932812201004607730638208432095227344246669121822342757381828220855282526586282952559794810773138831141625193963213677867379168782110954577910246606620077465555302935167933451697518478396221240010194740453957553724198140858394775275068602656177221725975235202158551384359328244698404667787091941992054873001048491190491047666287624725165318863413281703877136550942003408875411071223010034553642311914034890795299671006026081236567194241397232948302522989136408396493814660864759627969030850677595042790208627651424216287493283431735493036437873832056238895237501212313991139738369950461429711292113033470246441201991760125188080207998409937683474167639812174316780192827550595290457083948461544374386289184932838329165292392073958679109608943078815730341410504377278766540039784427064502332303965435019398895359856830264799489808716700527129961915086110780994974117695396628673747891825691009827342413472355909953442344746339965783106606032375584673354861680311141230877668741041995171419831556183193240115762002921653454376202800222110969853448939551517732891680748069364536315060142660920985874567042711032198879078087243509343496732570481115683975009785573619711291060918685410583908165870750606754777976368992598926043591491825899495824255296481237342878692521317471064425451343366572072641938506399529114239627753494108549391192168569379614160137831495535293415955846665112815841016360867476375414536858291039985524905265495534210454362174034552872405539313572304649643365476592971929633756701696458621964438567676999006830622389018370367366861150938364608419298797231979862009979303347180778637714519750029073877540195122540302823526993775756458331334816120334737017628019652141974958444700442611867364270964686868291282084847027151928422853408215470067955987370563358430891467387332829766759448393534313922971090196010230471531856137998623266644047421177206284840687878181814548723703558708841241695923480928363280685268567137118515000896799290315791943605400939024699947332055280412472773258971707954446683845823000161680037191483273185888416859504953730228686350984271893567788291805595164554547392689121160720122054500709824286985191336579933867722884126165769050759684838460293556474358519986696032350774431300199843833730759388351949695887197454930492828065185504434521641123752473584699606982931085541413612028379821201251594763701184749072775519313851942021674255604814745976725491668740911952736592547824731159653277747448556780612846677352186785480037861645744002511660684172094994474403324714102154979492649644992534659954616697910474203365478743893157474442398728273914143405226910222681432415899949080777872383689814312813940487925560330854028929907050114377293016322070018631259313697976669197537147907281750388012395151504499769034441661413398680729310054466133266100013958720335587563078813876640595431769198479860120053570864464546203551794396305130749020367482422839197207838639899979006901450713998717100095446182948107269218155399288497674259896738881145272400626054296919301962483347314595156493397061519734622970544777910864386324837667579240183565035468431687481165645594601440081073070369071850800247992561074227309921371058900884544246705968091793012880793389999209195109680557014824425012599736014789428282973379258468998349786162970241783098891839542020127335304853697770376071545766346335329193231598265657443054388349506719175373044852761781766025800092783848956516251800112194134402134693553855827462512191518088838516946328587777212244757231817824344452283012406621534351611711521261359131620915626464409019918908918733984076981543200080307917806256869401892355523560634023884724548976979979666125316492070863525839089089852581537753460201557474881145649867414203623589182931919752532384598125197479954279121703812310124188358681983162203140767546864889171813553742211233928733794238033023734695321954022350377702479638238062933965017594667741650376726413722062173834508428807106067685178440275447687641340649836481807449853057482386370528853466657695710334541915969228911262222201579924487442571085452260314555048876357790922469155230879548307253519159859608037097237897305124556223402605303878580177073150603374670051929133490472915136830096887543203426811441364250078671353094638213551770460119045377254677809456920942121086550762065272425536752717482062454004147101123991827681401519268460444141730103648271345358300764552594470014604138339477163797641903740491376867699628970093249565187895674779896365542227411859171114734907470144604765619054236390315986689949097580097560852434636250414447162092014186700689508129687159834791108890068479692248426792982725045293826335476980201531208487945936447129577232663863352738870897760226851539340841462145112926892987272298303108927295247436780986073329664862711766579446037798124797551517939330776191708158775320956741644950940253809440396792762540497432504183369277037534375695198045159282322017648691922415288756684258797877070616262308024379483604150113368366492713986285490068793059995247195969118354138852814201842158201227523439439893419502191268118567867916058620950300401424418847432601806445057739594204508310049186973641909661113922923620003212180033122777744917649695419743445842953435608962856322447663733823770886313010628225577396455842355931239269876919308707800199024015340400598533532921624431445761416795354249717690066347846158891819130266290737580045908133907909810313969788558986063031759248970980870383419106098605117016949664001869981733841847395362624992046561983270564039410422441671759484246919907851669507242668308184950222758213463136991979109188876668932131123829256944399837782255977168956414329087695295844318956571175719403750460125935365817416101278309833145071301859344099019158441248636383020039510026265877333978093481644789964071019012355631646516181386138111915599521197393124702549850165431485589409008684822875958109122680118411891430082033068611779723333550856413849942104317214367441733298126294730113236342712561342856925527589477104814255256912174878466008858859753914103722276518115573354164930945183465535446319295631474517386703963594563514694948203058926858077629658465058987160998765129029137999276011976233247878978129695249490809579031065352008084071205567312496618324001824873249538777486685797060867572221102380263983436996638386736117128544653863715266248038551679272712635096682302501172687064543649896247390213019734098854320022055144875453374518455326207562017963830582529502373690228716393109325829680857790645949052247196103238119569406129506128333511423586073834612064661954821037181237827247859477581039883943672855305450396399976496677065341512880304559345775215849448373186709945508655184371498753668055629250501742052074135029553793237146756532515132831614987999627418979172767551801596919601615693703729198030262234475727287636875258083790434153355386212576221440955758634441127731399855621878793517789043938992323542211740812330505438278365065020099548785298089648788146382689760425901579926424800310689339393091596229844698946541782396536954804512525766089751473915273767005665608455663340737870239111590755386532874643718044592099114608150907516282963278737034379120736941237515075355633511232270727594739542874952117747320040834142348013847684463700413733942019115640813848759059901656598392854014936336519017212196127499162860705491155891741989269724593326511804006731358060583135783363416826145694188303153460580964097649348256036336835595942956422523546499192943285691048394122224958345228200299563336468644212267638817890534513730669028945033277919470446113951570561397538320778088015044739367076482443102026476529802935133647152822107630333992855422606458353077067727857001491061388958359442382243322993139262290469938814376302514213806726523224837985324993041763914061499773464170583838433107805108565713162338570994647369282765560557100648305493035037632047829086405071925339220139883146380456593181986564894250844486691611835078731099241728099230301404982783783184218461570561344657257073348250830400550879494483848216253432223395066288837726812411499774589807262456038871433097235016895428708978084753275255854374029380148498138638658116976635105780944102676050227244515790465181749551967472741354842066610232044567151577787054221327859069755312840443028397997372335934768475345238189702002871882556185690668174797935127868393568287530300398353602553956553754752313943179207177981042997262279801324449436477330721415480834281714859071586408177331711966001943048524563646514056351018739949762732498834103281420764413293417677539396170933096207943590595118522622320873999697475624615166393737842299614540600379684924423784718962940000631571838528388438301172142287967314956692370105157499837464491482117009094544929743085248516499602224730355245626174359464598374460006826565623036911682885524715129268405284095520377634029494291306961490629260570106294601651046679299733990965463342663994961625796156521711294683264391056651515671552438851395339261423240196063463698676648302045329257533518958424452409602166146568863491868285760730194600851962926483277054055811076861372158690091599305473057391282211125136663864261313278109955136920120968290943818586296914403490333234659752789580658057608764812941803041708032685650732256291238963420428164139960948340640837376954408011243817626494558128807740948140442671771262534513733053750502121710419992446552724658448722040624937671984020041513329454021394417065938717976828531086259945687982523738225282244007366532402189147125279639416727716351595880087087602017918503776614629870658509499675361430330540000321476838394350044359508868713145518264098627644612607551180681476390259987605519270523097057200072996151230337661710469950083804010507570349626924629160056310385978838046439251549506715390549409287895645832688307895223226600352999985313340591891013024709573761870207790961667133605485506710640612660889644521600957572758530851762076435810695003793358542993805019678289353447561612604552451484380089417236409297998094856547469356591146757833022970830692920690926836990029279824024844307277304606636865805948677133582625338734521707174488192562118655884554855559552019139849102511492240600671130995403669920778134627773320100495711844250872432519152325840506692238673448605649832318434970965287602928353002459305607108250709606882755310540419302887771478239902612774581283927898201312776987332821007607032648530993452822079460959715183269661800147726971558901330889001607506166707505349203972507582483089262446182537920520472510534726176440607135016403687749446519987733107786032576137739152784787969778692116177161692609939864699564539279432188416495498460429934625955779670807171690392244576329641214616154209575321255885443388056883328868808350295379909058306316054569353656188753774261499557215835361224100904651732015340022637703596481707916146643934160320633744977318345128697770794170844742724840941096749638178314874803023016792702827360262546381303801692852529036116835679934848351565695352412096367285830645386034450055466966271488744787908214757734547870588989438185578537981891955734693204411641310461284295634568749383380181630119644266593717870031066367808718288532531623074460912705235184377431251253219388511241936473998595740581944832545037385677461888651620655747654622040169548366982063783259797290323144432190847943863777643104459961728723311861739155266245015510225367391914946968218668375444943712710591636065919164360016363183038818074406616763374078925141058400165921544421333169770673705614358621028964197631721655639594745454064052333137337455124004869599880667178291713590325102300948645310828919661425314193964467410994857978187764879485740818534135769486214844755298192631496751029791380949143241963023039069143764036683472967676251087853666360342235410629076992170218587274556803424162612481188863542881636279416414797691640784527108254835133535523464454255243747126904533141475603745862123487011456062976172894379161952095018219550868597976781489613050960353488617352085747168868490756229635139839024435344092915903728225907036308092148875162179830671886137993700826237297286137008829082657153506247481427516363670440642892480118897315022776473243120619752320847236594184523268936425354436088779976174175868660726427965426185802413311239546238331654118979846258523842619084084774920460686062478006517603101395052770149024494860932898366110194944260372032162290216715660555873884849608029521882194421168638040377173141605077381833387024671191520942169349183263946761129251629611888368530120101484328739538696606436235160257914456861831640683390469767150067606858516223595621528710107392222559307113957362033153204017697671874323435215394337805505930795595564568731035505367077143602064286510929145605443529747177152165614588922918949794900418649624304992178140817138767121243748916092945934441508548999397429385670969504963810223237311736156727502941804106143227182544703585465061176788039980313654738851940680360151232402479638874253593809580022449773149007952134413989228383270518207997689403995337200452381555820842185065777949243853759088492783358446482682779002563302749968519901261532749484532404756315593779367529640231978333553853850844823592826574140840885702931496150955999825448226245922956547334024261031909979145297813489356506278527560375333529193815707818719944905987688560317501077788805911745003197724322802041606987990269575324294321137153077918877626883878010003153149530402686169915304541529897575659626869056455742665325806633425066912948291453019607464009014434274611511102298369750519174508420276659633147500927033584903400916837366372099827769161230971760592498717168831643215515000165837310021100193163035893630887580289164007577492082543570496738975713092949234402396155701462685030650253609093042489535032381759608780877386893610231054957442341183581025122178879986427619201480591764047757265176195464233558900996146947571049879110958371611079308678501613381175193023550094989685312915029917615720737431900179463312410456139364520414337510205404437680307398553433452162150469707680934726481342620835290846397208532066618644313311363223411648128659605114586667692774487995240674001486322582398749851835891448246897146433159645005750469682887262934168947788045120154084931927618004684180429739477420289148787462887024895502081978236440927658030876548855205744005574467410963849987580856340500061502187386548668958887309953659382044563818526849256761662772522596737912496912165925995524223840914566641901138452248947685075377635900076798468031943500505027988812670996754494230380969852889272098310635384581927195676127351176613436205682713993476849544904065949996166652667640129211027126643107762052677382141051083576870840259184672563297134258789188010870307254908940563667522267002105402518369041068847077225975596959335806613727936557328861346204204322452079586855310434128706507817407033175658818855547493847362525951628248844838720694807189863290840276756330853094758535270187082246995370254071695121155605298969965001944127251489752383304647226728168506411616325958564105153817092914928223866754249757488350071863184309274437692820935632091613320495059731094004909407487108715699462150670819998168518700697547475336557162033336246732122160846238515450994457616624980058123909371274798557944937059815955536937504967287373514237229588113759427452291050343048583200398353378731211337741404684699653157904530686946920187338011486985563022629348703693450863361496355404498458981359711805974411669458026371366001398928648496604501739141942478965817603268414768318523775704246928571456213204547409169758436701801340536342431087093664704707205870241961800761508106412212231559191631752679396447748860387246488772303265636387989698229578338969128453444482038403158158884381796022893138266168542067084208532395568764810693704082444970352984134648371918117712579553186631882087920703483109727647135843573922516637362626046255090498097178503862143186722800116595447420090764729156381642059019366350534643326332448060853622464680725694047394170277735479177368851110902995712518929607451718353878335644072319628121895293836671050062247063880428793504029150494716035729763717874974521084183768165287078807319796188048063041603153517023160985178114671243134708430345681620630125858335769754453320078991198657459300515840876109621174943354792801483788807027222561974155549177384257167476897492323282271868516604037007281962555320783932979615985026295229756194217269700799166258470300966765281280585870720076313706307373048077893156562570303055048675698838245395929973793709086008278284091994391677748367635650652021455901135427510930967952779307376738419378331577284599090669006007031241377581911705187946905505751116109309415602301321982068590588652802775615994816341911731469619972756192055507246233693262069868410297635864429391103087999696681650453452348406550397093765181705992321842693078144302841563740831633556915821089530423080868809403834652623811741297931472984129685512697977350732386504873309835388069048990655826702592576080155768323477157716433915662741465669101759146903990275381175666410425462666744769623095342014862454216178056999067268115678022158368124112629928227820562313358623463603482997311632288425872901084897722448779188896932690628179734882381602085771414936753585533740341871704781016668009576248803263509452594309791783686290243657470967782140296809747832894568389066616611900593702600092679851742514288538631190467380467223670462031801442758409528328232605719315896570959525376356603822913832866032704477179721579496604892325229790130597602303210100149676460976511673964443306101020040712495835004515364476805391785605123766358734134330769962012660396238042872468735797734076876774823479089322371626035422834754484392260207601319481262287819557667534997256776879845969266613333710813308336374674902940011685277167918286522040794742774868160964695064588651771568692710678069327778677375107676198216969930175484223412227178911573157593612058384248290466001516417280463018985635566340801979061117859462939591951764027456589493652342392711414817122168542043070908701257280244982397830593893562190078656650656524849416896862994415118224858704237753199729981208833421705947240867219335684257352442024189503989119672410540012725377330705542239224293977123964665946129570531869146334300154635957942020247339559326124878329373729259535764685315237789272846756296844177618872283916573537202682854793005316784136057652372902148479024110909576580578306293946455833433149020783279476307480656258261558618799505638185789634080420193411348560931187535197798237235842555324751979965474406888074512351944267132467817258803886433876120412917002031162955094857894130081838006008586916518416006628675023059732016258551886691083808918591223801866043556158079124728620191674034334288901401029394111090365003961284752348605333764195564027061874070780271897260917667549482357203962749488027884278826224084991120070817097170737810357963520285807345498868852929743524774768273042450675256103846287015555038638016298211889422561461072697452321023160716383713834765706954530330660470725956018931436895848636459465638111917968399428279650594399934058955364097725704253308965230808851315695308135507729180191459675314131368208562895746922626239436505200179449914758840847261098934639235300558949843584561410994740996531777770617317893093170124803542905134284901557709708785694638237549449970088539142568155445596111522340290340139318229145175727961541192829122716792654244075363972450223074167735377362862638196494727068382349637611392815226458732013497186673454656901516772955630265039129068768756477731630931322865610339768099887537145092457785924031284390644261576091682997753607652568457187064667409504391850209775135452231631397392082306187686327111995710438643202101500004444307610918645572831691695791940916159581331720542381461674321121932825703653962539938696929260764116719990013569173940182720689089558480950246891571835563017981831428204439151440638195025414737768695511929801378946200903604046143652220928450286113922398175316714347787307723107679971706896510468949660703847031467211675374622707239127459688247985833071483785641887435137198578835594081824885888598045425695711171759658207503091516563701189478103044447488364177385228398206463980464377349493017941990492145041951940035222725882579476144867191720333038428467910717264465370643468537233038376848533407135326645060441626854646183894479423007399804146774651018050744965271091372695114625298094291200948494564739456264562988966490794368331744493817592012432927743058510831460082857633260014956444450341166999125867098817375559645577659151109372779453237190282831346525382109822705971165050095377366708509083063269804604466158496735628630088155287409327426158878921177523915839564850793429169407070412155524942244650456015111183582281114729214317384061039678288472708164783117653991928431407021871863206151325607477026756700659228065826233091415492717792857284129147376063307588801673788213002237243241284595064867083680231513835461474117753285717584317238113632031664689815399502807782664671814128656762063421193665150618496856029955105066303215877019967265518450645554198728402857261588105673710549558017993096439186776996901433098115368199380006445094655115654393778735732672545688540995419916875210508546227935038252695762961781634306362853385844326619799781152322475802293881331976441219869822981093469084179143711981349950249172177812011362368386974656448464010284274844298763488071660020081706396021288269709937668523993612379720500070984316513015429018070082848416457458207925313734384111911147319653522267590650524599263734505877091478160563317251544736141831261143151381355668022808178814923752357624405731668046768121616750328072882797750622562284581625320109976621273177647670675496705491388448093484387283696883705199244399286319139466764394346378692295609671784386642351522732982927895634192347211427201869259578702807408632390777068188067958248090813473952020540575845217540036403224574763976861123966830174536487066207153197278363440565631113485573826874123891121704378470956505243545877387134444109296241208926698829750896542899185804855568549240028939907510762303591562280598567951422412922905503300896841297589631304749749102633968270087590844711425771723729366378702077376308273722772534428365225980427005773189935080325208905451414476101384308911209311877687788081178581956142738071502041772575653726404305442363450617523589299882141391288588402870306754007800400946705712737086402151202363431529002911495457775021520660322892594400572912494800214886277487920821254359788658278923715626410514723301502537742818063444124879040877373387890529720774014165322410294148021141210095990859378242270041188146701056940066644034862109895001692967622430520895976995330297192886726454751525173942067008778028079779826600397096816869364620817705416213780343344385833151333707997415299956926915445098315786291460120242713694421898542066581988608396881843166462486555112940471612993675729615828401802225839222325274631318410009228461606153393466389850848535226889771552085516082280881461813190824237577815883783269819400883414105396956286882266082896143985653347991815642671951670174696795303907084898631197759720319491045715464515022372705660378421275624158404812322248647983287231665366442319189453858695602445060080624179827694895869268946951323888178714674790071875496260706153772190731198207599352935581732779180215008447656723764229590551640249279445846250767015367402894154602682941352043918793659818181700053219702312926502879154891233941916549956615353614622513994992747158690298774657511241998250100687636461444342674023170813599894359109525910917285492986123828932918188456293248620536435751309666209283943904012333476131035934303004003631366667785668964183908335033799393120120207231807596881072464857560418898082398679392894975698885379419177946007004772151819539935501603446079415282636926057433269582526224282342042302396562497993179228590342679196884731825216067311255192646648578241116953804652306409539266461294420733294418795361309682774814984911294825733255370155381443497471671466953548304264223597946249791723263099912846555190845117493938802457930699927252732829379622285174651489958096386978753877110283695902521022277318506490946353650901048625617510575877541914963767961344555755927476126611333683567336764214903732657948278294494483147686912682128160207695836390952564134206172474383399591752356062853109729205339783535131097416030553921999391492385790420719697059160999415384309900982682113803142672515396230858217359224562295639596327679313599272775803193734316928131767915145897386636101657301036037409754890372912345393614959377297800260234922921590802767817861643364250370353472523981727991423667085531604040492143187664339498643425395256064269259967075142999989199677453591490864024512473023820288839031520353833134860416608191406472039103607681110033534988310717303746121553997816272211165143426173641647738553755349330120006503136150128774247253507300360629682865089587009195033711826174890797670388012439200397658521128316970275779206539923059305812371996303087708279224376253010548709493509452019338093794716900968968570500325174576702481974801633872266766514707262862710541065968880830867411496890591851793438772154208245708230089181158900601551386207771790230116460765181929267472240831105627774996028064802314336842886856281132758904625266741077475886311260339694915204749266078394988107691131661437393885878754476532307195188513055035529397160934718111382921999667839411762260235771847628954486246521741581515785584779089410428077571537139862175527392109083230967116395230808339677329938303743690946524280282322544316570078506590722938568562897042989774846427155754533374007560989401838302209066282094592927862025546214068190616904548412649218376344986599749157639473121912649675267882227423035549799656482443058914064401306446555030690008400722695340418254096686243273107723923152574236794954412799680561695103564136235381605290947689220670517354440286989239457153718754454160645196655880967479966972423092941871872152930895062547662359294741115517225465904480365641204476534466623537031351427141597972818718936129432307612907436462439405685470112346406090472733921396665037369624513211666823996984528514872664548086099345773284897145062478787432936209305396497916235787710989772632681567444898503706245658633669007147667854093235510473005421499255559568644712345239292721881478752212766052231475765394616821130148292654869123712357905002985797798785806608243275665802561025374648838303157245953622842781304503954975837027866804270354304014329048556937870152023729708791244219111109522694524068548480081689998112274431310013268033427792901806775784425723541471152719591098999402313143161574876932846477323049721452187604888571161941004127143837277208484061454658215426364464586345911113462093767826468087799031099498305318056535624490506623011444617653005392586022245286439028563507124200673461590463174449875463845062536006005399894553800420496331237666122405122439852114340835070162962679706168237400318137692392414340375927203269305956939169734011858503402970389547719308794706600802925819615278395061231095441138776142895210507526516357116898242909513898378798359655819488765469506215165434822673847577869954894629577617597262027639625336654369551696671793940392285931127960930269950354644392463796918446009893662432382467002586342638693653191178516859149416441016460136994055750220609489105111178175312943350596018835316520369568221559177318828475203514784324766590205985175383885529855957861746805030229829102809768702744899201419693606062910409425884315893514015501384830467994981971992434619116389784647351743936335357600060891332258073405085648807505889413958750283453947380465224829662817108363008246946884445551560707596837473006383630523897911001724447224133216638001633858878007701533371158645981237289333597565042401087296289188186475707595671855345422262868891913416369202138216831539314878873225530817187633786816676152576082703798486563254846704541221386775701528768885690048070299704326746162057173442238272129111850807135418145775253188887755133775578184644938743328338550171675714405866336952030732306092946939121779713226643082436069269349886484823936580471699604934379284103465917519940136597148807124500307960691251482521147346700875154717868872231816119787925965438630962954904789369796106417787654370286754360063977533396730973231208091567478781548037502098235901677382786139986166082832430808783823971246252553169989890658787503564553377344664450020720757241103502687803831265237067403040834509799744889802702709870318753514517898914340733877681708603439461196556428428387557228715185236844926538116968862758095549355651176914444113925225487432857473436829109280580788019792214673820282373313374096863817720093435182246623105027693507802401086997897252997881256766247469389104730423583976305890794293376021177690481190281911091650913831457109824069555484249590305958852029777498173286783602438940686335786218166959459262625294706664430045463501353627562955748735968778547122819963006149218040453991749086217091824723311978658294375444994862186613375505797713795097313709368557110402730842823445982120770007440176004920753417016678001227528490195873622610162284912044470232103034056827595000327485143369356621404514812556358206773342752520859977936265335135930587891841892019010531260733380260118282694469634407185104802225328092965700675893687028415568803194600177671571550638617591418268440355609999536151497003509906014639393838262576713894917385236421824507612539454199644706867616830770763660252453504195422928146696778714615206524201608567679477391626320333531131866107620005174447098672124847630583717687552302616299573614063122739120409963542359533678852073974022455944357042590153794963902810825420263542027600405750135780557809035903217998410831940883409132179004489381225809474628934202471546471291670234233612718678220183275898550958195548783346752224628717531661745890784806615105180390343274246593827205023031318604667193840502552371460621411723629803820051558967120703169514236435847178633295945271813419085704943405636389444617452556457757937875113011458874080507797877210585133621046833597679175683077786833200095474895766370349856135883969347031968607957269037568945427734949075919508247081418314945220080957386026116810577912794489203979041082602729184216098574628064087224249983465669137933505984542315940880141895242402099152785667225416550973863553836761140091485903386602222899676756249341785497223337946528094985025470990260020917140285639735871730375314025700569982620131554738742745164144408918389086444523066079694924430624250613952917410586841569455237547017432257769835937900269742072255234438045638378637580092116845609998276231074493022667051559426531862323195364915485870665732794926937357153608764832042451461819656964088719704944536136382982061120989872986215884996866632213740110594608364598418332167071607848026397178243751039621824234173274818128666176396421466105051271190848733589988831549440060381259630160086209284378175889477951056643119929200455725617752332832852252554148757206530197899214493494569446315235263878336805407655448886122856383482112348762433965358256173762702859954637222447282087282424368241702530456216400057176122272674487037428201679202812893141706953565268689912202396988521180360605280705658589480408336951364612200504086017510234292062011569604674262659716768382367770800116881270837995407001678261092401699999495500084801028972126773445859769372444377011142680960705248992775456830571497069740393156913206481109657059343548542883511638682870129717930385487502467970259243684117090197558404508559696197067740878396048251841417087354777179945025975323478973448685838080028386972688363098940068142110381241986923047174667040598969809034809978569985270276186495670468935281803355683397648988438049910629245056098539501316773399077368193244151497793482365547828165634466371163694372508187230999727278495468358338815004613142062348467596971758181067491068070347408971416130867486216229658279934644815792093068445716491513727849413750627073009668106974218701960304980541692472891745298025326731132659775971970706493816419193946203694784129055300788041650380876967104140590739418159336392509835047746782480906614596681837107649422356016902860323799156359215234273690237058969395991590401122614165586714196181499368021913174754698469593792275699752032758325924389995134081922103633990454690033220345486372940866622010873336363177794559648218916748704308410963324271314319046419038423200533599782792021931159440842394882725176223831514055951236231495954362953687255043017580683359302666138923080123871089790812666112597371636317720516591080752753817837032966748659647624789706037650856320602327806170577159836582671411101529707887064918966452957201291407207738721531722145241132988337425007672776615399511582401122714927075674451563734410383799809167201407095376806372219186469914845366641545778980157942368306028209996416396264719736884326692104728974435956168521868890861763494615043243757727578892581544271093748594673243056380216927943009115971070544892583034895544390979950990645984864282079734934505292483178644738800641965083320379576297584269909809815869604795469677900739793980574661597010473694442088126252114830406121243890973470683121692489810695481978876567001319077057832762893729303354603849091592910445159669540964614066730773236426192858614166442194426819345825057552857514379825994907277411774863041419815643252898627979306422290944614598214663829986594470621772310859340077632368016457359254521091093568366208407437025000378616052549213178241353613866837265165438874586461966836084388433123128881663573657576632930163402214379255230238019443267206091571086625448227075556828477311303746369479290089422233276072273731959296402177397498553361311398287628032975988572672410762820736123213298064045044864131101917334301670008025226542652063355794151435629849632325486268804567371737395053039161183431529764003029493985458447798524165333911648410577400702081639246369360948513011655140307764851502802400945606535066939192286132546464688341000977116501588325516459610949345738384870528912680686881673009460313889891915845800220673525085047514220878537311302124230335535693367149193507189242156354001156224452658966013622582227100381194133048884893619064264887855614059911262006101886013618243141436760192968485988335009900928598014605451179141649519297041660694427663702725959191704814657198055657412912959314221906101643776413521181645191625827469628677368415519541258667190164375365214557176918247610215592905671482480570263865299134727304822393770673885498962093152294616157102845845024014282850174955218300541013758505340579310515945842745697961127715706076720795176260955678784097214461482050893092468746651839541615976264443751607796011703509081043591964991559222155820002457915513160280518747233230891370993705640954678655315752682132264560484743074820405192660442187930552087569983725879251386702720940609977271906228611066276335247439552112103442448120495906487766996812124081155259500141760045392433731312525232231099760852467032029989996067037671122844873041785718914852810178690318734989368202865736737338885370240185908438536530049864463525531685029988444892043508735636853671458670193686884273859238747768822861280866451635889572646426910544156907901629857870075483719225733877077193042990488519685704907839261096912519474813534613955640445377308999387015734653634981628875604910869534772546876400552734602788339730892672389237347014818315748751759336072320475669695483350848224661318366000294595772514315967649900611891916701289670168185549779980188333341238519451657681319884310194570824684017174771530840583038416929215742825066670661111567903643080203580665931622307332199860032618080056986582218551799701212242962279279631613946719809349567923807571120279315958806198992477484446319970644169430739904982640179255590774104114330656003648347235475100218913258870229764138618438630723921133004272734352399592972034641313682297932317998260023658346182421613725048405744209149500089770316791118808281171983102541152875722213543869521745783934094601365863593409700797051193706907675612666067352265950710397498954262032867078889317185425370478773176707452843649472199359607347047805037976252302686729372053620765909424588432568210593216872658199430666098260224318325347915074111809960175341204215450015350877676457924690318235108943284458434593137317946823322603493860402719051937856586485756964330253305303503116168609402005712586304232538397052167609055802272958083635111636009501160073725681691161862694625863220167911440123529874694779012848848489109960213098832577898969368945980585738069183344940326537068496126570505082780542667658247387663118293838864028316170134800732082306668853066475740496388110571036325792219459817272678261063446744190509550468143744670045583070775432519628451284062525488014572732865505908094227932446276346214753691240805247654780357280815838648519864489878645688532048669908096909869741148294760360520487996403557855847506422667579046804860197282190823689469356031552233304538672571126580596910697371295257203174016640604241831080325126757495499226920471260277435301134867832562428929881206395317515471170812920134226509707128942564737156944873235893156483249100069039457509878229176614471149127613104924614723287332397741870132466268544824834316559534307636538780422627798652699550300757277446654398768828465584903659780092350251334763163656103510133804658362674946849226105024246812367395810686653871874065227888324190654511315171369116274387839133045338499238667473415511197975593935030901384634222921873728936599219410323864406203776083839747085875591614122531471741982063799849245761269729312113207359776528924709212528341847458510052054204114923864827398947687828631769763690927372979746964227346394061872062223735536652724329384618434603281528135837944580862040696263504541398493200484577255147831748210603641825611393923535148718741414386883071314025642673967627299006449127951949702637919213317169992274890037609505520467785503345961212654969979487827017879846427478225474936395996296143915964376598757115753137151403111371380903055846076840381585539795272067193371019320282461557792018833441211581243937069692365536216681671530900657133793349967142375427017501419720613395635572332208572980718608631411666380069351658137314629819686116847447500777595769882970810306928878551445233698246563483225744560419004431866173225833292739957644403351136775719439916357610276569331127414506168004221560572329063288623907347667879495677088730569311610902803371778800989213431525919470434168813995137274651276084326934313927466171102035228138642884084954039791823406403860437685672629282090151532096183449277019470250409864099674809281429296344608297181200012582185067972199186243124327097885290961503048439621383893720443557864977252491237568010266358139164573192745705693180611033449813205427496160145519867989369142011173727757870176467546220739153034448923968218705449789841128428327474514926204596010749035964130232620526865452401505647639947018011053194620389532515885995616109372346949641821451779393129917814266530569679260706157771259984213764840145186082269233423536330941651942401698343816766407718309811846967318476307076275711775573059924695660057085845047991193496832163836594551488447782992706430689816013290045582346751437601001902815148950537655171679797880957209040315464270257739987943358391035596807994073907730869954534364393625758299219173109058963846183719215302328023537531556328493914792694681595104906766758656547030670202579787775218595278657658644347331590331302272035234191607925562979341848896045423190408827780706642812233449579883212149969789492806817989197407813316082867755943300942082474154835223260185883403498204864974937066193086866350815993488701281287156075063154546503596550260439081820617549620267358936647439153569140784425761999127511574418513701665291451297109202353722351051226591448628723692822992456023100632892279580264169524402274446379632818424088181938525722667817633077551045518292039391501488084933268842243474171327590597169451746359645235155586691703097989029048010269129164745410512820844331696844758523420137997586786639441353056105375619675432795008758685569529936200167634157677290886041838753299518868191929585677561510352988624811381495970955606404569012839131854211839420564466785181653687811181299768675746768240657800646418235003017583628789802411251761024488398086841419444316195749671500019875623094797574822647783971802228529971110295157202184455318694169293622759833812237214473791015703507019502179617968712425305668388686922376240948319296214203333764478816106467003614690796912389910166847766774167741816296536487965615280045029794138946073941621086231121244851879345840696300013432283808880662043956230429825390238779378668706618119108888886344027600975550827648766722206700935707328603090335541853783814631475498715918966211805476579894976163638757426135782136986798393558056466188878613351590861417792736519878544732406521014366676758162619054334647093466092689933329772279750292323316026542778868313539480395537434631380517950939952542573896974635517227621227437903029832363449075097046398486167174179794594752446768670288078490742814639171903964059911992098952770373892876499948026654430364108621614556165353874857033262037935154382420858277292180670631952528785283568775491532676595689431033143113741797045677519037015986763474379659907730196882732931538185619992151837214382522972086331689559038122848106900883877116948779930703871281032960945603021936922795375542018045290408376002528402356181030864738657853787940403411035656422452276800290082043129372749195626585353940605216288783443334726381702302936905515285416476130729251174467224084476059872081874608190630795184574973383731042793244679860200201260013986462919567245639260521983166937689836200212504712456951687109290545836700943700978615192214249430894663289671844017458868421240028292476761679406038576127040975540122528093245332727162910775199116836763601192411905951448004470230834287364045130551196803264468276278732892748174037898445422168243331648193406762691562336062918674034151922955113515065362562299639855045837819314644470418645080365169286393191791001231407949430785850016498429973771318644397441313589081030992860274794738811634300818559861502154538186184128424522545079313900064889384846826117941018746427413946536171317778999990375536397303574305333247754545389108317939043197710223767351030317448145532741437020999777032149024624174029181227910369072531575382195351874275503809401764762874316163859230252614921461058106629226707529075275603653107152218768373801389135170462660748185718561447912364534156934647009738532644356533641002794593986023836996814298907861752832298253781818349008171406030151508635737138944232040104033795670970600131295596804163858761580170827397580847203625387910249811882299438541743318584022705010804254187646518190732896151301594164347135537003147945952020659843303912060698561036229160045534689099145412345300342259858400557540044576760758424170491479725129496399032304559899363349144289536415910407316265199326355499697325943495514953687735114740612042593331375169110894761581139639315601173750850885616610358545961296767378969011444440087701082913876251030522035031414211020882828505502713711866817352859195989470586151654903061723349714325211097107933882669362317510421100899758783419514692548501703272595698028953461001055526713197973115626126909553388284043109949822928665548836411023446750109969359420119436951522652520114620971058117608268551213425756633078820425570476154927706067091846040288726151403354662020879557362670617017618618991292855304396778645425768018001584361895373855420333546080275298364889254713170997706665958619135822614891407809756594309612115464809270210050248152005579920243183966835769360140968621239135904747528022416675689338735423521343418607121505960983364944869964916946594853010584174387285776806814176885198624456169563918437917228047502172167847795177445696192251899133189879391125929613182298920581141848729758211601343246185443841743898658038006935701903975538451145732197998189496164559717600420184790047400935373399506391572234723971317492885459775188106439673801218272686759009656802945023098046079891908435986224502691253008164436096619297327359461433238369775690560865868114439854261806033692158334235209711411471220145114060383090017001675641682483331946702825926025783314584141702424354511874848108813334919637172531069185894176084535666812506390272703427520708941259529884407498747477298869761451767354367940105698361413015748038091645355292563580871664941326390127626214139912896036093958116442621842401829708188208247337775874373192153877549688287383466625216912892120756991069409692551795378174323707998676332009974084360958923019097448830261880349113354376301572348086425719292383555521466956291593747093049837741955693300097741912851823042865233374835056533779623930246690702054178712857913834152567837828095443988506606515175564832516457950004243607679477330341790584085026408629038478267167791597791000528393195521219003060044713346141127489153314222039306497581043115059513708521345901398922953257947085127673301515669108560472413758288549039165196020663341715698655164714238956690007098279247995938692639846985400417382588008498728972938023745377365233047199343593989242187675385953647293499858758518735671939876739785465667413445702025244519540089980026658964970672272770094097875625271803254055961664232595774718714977042167034769131042620968630442990082457279608613028169408777079191573515004069483621334291436684195006192004641184525997601133118089388911230249791472635209261887329817127195095079991228434100545574159982408684741323268504076456845971786899138729852778526601150466149828308525635044638196416071852297761826907495773505610588275645487872854106347350182900836358054882923949574800833521649180679100585747003851999781631971771431381344420897080356591580400667906272070763257962041255633816145596709561721064563888998698601120487399546931099737398214628692735644957264459077171030006880437728689615477210815823305914821528274773562998670392924280117948419172064496347919676056935803772273585379092722749454377672345038094500154085290116695343611874460143754849229893739145378163579277568644141709071819211831257405987463774982357717073997558493078049904368695054896808295126816796909207371175160706083889125181652225870038428956970306373735650222852889290730602388292656937701271756696907951812209232774600505025791719912939196857581804088820773388410689034391412730861051626627824240838168775453316394061141372838277363306145245512147438887763443568917597626902779077608832397763049414601864372755665879674533698184690761554041402192770721043348271904756756253616078499658249951290183524415286497955085809296386283120160287031989992426526789536042231512122601218115944542641221954979838237034135729856610664517479191840503688881177970191983264165365252559039487671159809709189889902614670612111847414438325021890177005225043085028379472826702322886208931005212588433503804641188417016090693832402310509834694886009707482315693638933455449318944794646346536101804632082478228437901358756717513534725579782190363524599370555217043413507157980857832479632993912029884644895370367644516079468750240390956098592179601573106057423356859104538414797285373088512099008813765823532221549096761656510649382094132741742892156129787156601250164367167571849098365776435315970239921740446947382913986298835826376169865621519255185227873636064124150279086034481759931509500623777808437615574908622222253278517280636099836261827403228755076909022655719758152901384236371071302435789198619162832248335166816471440650815730836579358320742665577758564532287958162264248043778465685116048125796216739629531696662600679164278824511645519923658226350837580888850705969862676228208816420260448116851127139232949479992389146101444022988157952765846321345242969669251777153091740473446033210569956128244383639018600033303931259571991040573704131015612826249059049665531361477457564905372600729788331439500445246811283417610500509386549110547673031655688601490681294470509637839195293272050746703785230746659389581260652843895546746429996415711628579545830436102816390630546578558161391264368268722878348627693799303798755509656248453821327295663764531337865162091822102994114143470232106841491864246632980449549290932222438149204965150099158190495480302257132481993619256597110660358492508036063794655114395435791511516148790486121996626236517687019041338465701286973662653071935349870726116662759638888941679732327778984536658806868459028917564251666148967101960049012674294948118257513500591966982348655030135912866693305911930040656260656784446171456713171870495806806153532775233950262842012225886603640926065073371977024056674086873957627877282855527688479922540239078413152763646872818058656643088338732664468626572971468685811279366173795145575162240940583737933105612971322795340432870267499407437198146468358110538229162945197588025829070118838390566487037889608559136366031999663290163360937061363901322593903689515731961555923107394134520808105050640073492503557369676926870442632060948709222944703010400259015063068830293812541791727771033178841067654116052725351202110946964582258449075486283866809005440649253714284625805967864867506739475133452075168169441002191799983261943003392822205972832164662686086133071225035660615736402870783233877220898913464879687012387991445714299364794060064937774035000733508310107855665467424832922086645517698066585506666800946126646209285818402415327873401752917497840244562041875591626153997168083804982866606626693575426169297041224028698262574099653894961269307977395101179258311537723260450915559143968891151443454008591959686285882813701970259721660001647980734352396644557679765590119330080921395552513658489583273181810206614677374084789495920967692810309172741357429761709398656082798525145175051700033030482844412547658063696949687888677707861032399391429066046430402252804371548932105120218979839955128569797492036275712507914825013688167290872213918005223805321418391972940417952706182905479916201126510537693765977814237234187346390312613743219613203059257410459149632373587924677655907820218646629796142328120606405067362212017270107548656324526447373965889869721863833522912110942306117009281110979134150153065933772844194570343125071114561085351245380675448894371619097556698382969524108916883998465274778540276524517742317550235413719375842262392878543922465127278311255418212562626308404336536910787613370570603167043952439069842273617241960056882702719921842572501851008939402965178830632291805461863297059731353288198099268403224361257672170531557911972313372841226853001248527745585383584288854393389349927907171104641317448556193742616455148547818547143921624098609707275564317207328219591586503515202577499248304290504009233499687431978238051285144091444650895656847078075194323646154721858212776748355502572701627113083948656001701739768268246028287885925959969033994734459836272089415822147485347357430533540277156669349503026022535551029267124792903127885844747852522523215622695056279638817033871338173794963128830680184715401792020690045256572456542939526984791564130216469470484673672528767697421826972148206495172322399594118696167136992349825481895578996946170003546600619422109898949374011843879354622594490500195561871403905153442062048371544656265370079302790535948973830575558913600755966549093509815449191373875530863576399357580305737647237159716613439795322388872863318949043243134867068228410168053359219908571316789848665483381702706647560988463465237739268668513709225806350871433387961585517911033993298166026389020049683306356861281110346130465883343041459789700231650414703825709145930664080602425611936022837483930393652477800639262131204628435233717964166417195559406117434628294953387670141074648702611106141305880811669887610617837874754222341562416737297524980415336660686557153711744139534403662723265970220604497253662610172220023086233870543604630067339222172183472905028889759690389976829944765252083310169258354099519934583372191966244278512619811582181733018844088162628429461202788747070739482125818986413602834419384042739901333400135952765026875982730891362888968234147530976655084622620721828059594703613133512379893298115784986063766591780718259105614781721100402559516025350120979750855036929638279942941338600119139139458151264406257586668228486791421469686473015362313379336012193602025446380493807054347159837556556106020775025981295935188281975842815821419000506163535637221403442530468581890787103263442692551940182402536643951435071897935017165542266153871631590184503857663708537882515497985495338991087731914563601497877824184671201459113925917189107121900838755196184273380952437890223133589993517978053713943168218717979285489546281476344027036757250200623464306647896610936278268233073886136130844478612751845428039495905651648634428757203863180706792252592646874482980723945522052818944645899021700366298526924470176781592931327606143691184316886525880574742261814951854843901622214841915162566398043955401265370814046811305922048271795450889508949552494230962222071780079260065446850699678569678881873143737915887892754680873042465636630891118060291222620181903429934899555214230174895594072535097068913190245382280840892022406613888111625071560628197828168441298135662430604672961157141789924576380528847076064784503532389031901559132694664340393230016223161342326001277581955229396079833197325795620498199088113763669533845096901329315898780529446460043004543161295425517059542474675251605577320259053607785182153908941722923668328199495408564905151157388430356414762312926976814625909534324745726019511264726503286954805055732854919323766540227825378501776460274443343050294645675777875507014822961359578266988612454554132144373588335154248862515024720004667309193942154776877349137573290995346866768469104109044244201940388139644752246412038371847081252209332006085809459885338661109760628801014108743487520129448088010455644777882932325563126563478130474956876938236765251936179057090395065079085495858648544499475936966972033649876673252981788297009724179585220409254983589541179941736979388034458120865237253810388478465630885912143232993761728391648062380959847480534218569419428388453521197031664759133398371653873405160436695164801557356119237226836123376840286117987459480664144044160489249122989971343216029660329372497033006778308059491116121846146332538587287958945579963093170844657931947132186432486918464815573037593062462797601179547760036723966321665713757542580198244273980890531176816719936380361483404417228989277380048528321592979284044107955280569827471327072723153859187679706724212435437745935295010344903668286489548882597657434958854078058816117324295706859234939275439291683232921307894404141868770099535959270819174563495245283026599567967286696478073465479723568873906135713035160693253149695652481571649304227428765691120278770528097593547598451599199964376980008298923272212996223101946860511717720832415728341355094644654227002108009151999992235500648410789145599816694994258879643049684065043127397210357350143459993306710669007875754447775762024249915368027958275555732809116464106228197276253992835782689172462684309566532794192550902630246192615336139104991713040078921888504325020592184768589045737057432184958711811178816405691472942060521867075248346442416770537110762596059902720976216936592467800224486471467605488823069038054779089661169319089232239340857250564614113877197439557575183542544502598976814310370578830485339266780893735218348935116080025034819537756436463627017400719305921294158365853966863075829513471331197225749298657404107456490598959706072627173835274971370965112762042646095739059478631188501529112207905510151338120346880318653834614285307334554730539330333077733622396245103151617149685984088443257798843526769293130227960725308108398470376435593202150566664733043159479293845814532564785183320394466727009248504120844785340074263614317098755811621095523543297006260862119538709757371102900979430632451448247086401627576267081817915958560462802789258715101869794470588552317642459990456829252818029029472697947367980350174656262593585300849601472161093372144652086583630281101187548532581663786721152513441427677905126845263762227562033942010778819124379943563177279754679019939900139758834239226055571188809617363331424067808424330454631577551922248859505244931884757584375871882702099025649749572918172413883970480699813532877064873001065974361177942762027268248741828904327686973140702154326788620420573240900010611001694716036273114121928551097714595352509949239104088716999891642782795311019719638389778753843593232860054666347438736549011922889966097884947615341202221698613466990305080032931646679116647975243763370064449520733107819284160565588215245813364068166724018195742866615990003315130717066088062475774492254920049909549922618933786095307818604183579135967418473923238590290802923737395124154988093470454577472377916006285454477087146603205572643326135261746163241367754378015772673532719154120648036477751428886628177887712954634924012606306912805608987538442514939169512414019496566310943626506825531758472398490637955468420024571808551390845297147146037438736129288184453209989392727600961172099513277245241764398743296557253954550662789216991756732829032542487801639384809931525194209892683982380765994036450538476914104547782341831537585813133772336496499313049501302023879914614531860553813404667899335783410375981151361759789619687012211364472287012062058604667938787515696604994467510062724680192099995240520461621657619874783558382168213058816887892257439566581963763768306083089455562665742045244367008904031092162411343017769965743437967206709001304154452231914731642248833106153982061122337662190121812197367378949345469835553745593507834484193987990752910229079222728760411787099813375291782039139006610600403276379996224745544015993025890208030124252877689939725810091646740840719043108794765042948548131232867102953265764773064359618056832494237524909941319114529567969227148550094059944453947220166931020322856440691736867132215412508354635317487193428520329830480443356774040648123297663832570581305760321334615045767874800317802736958641903591050887340455231617331303440573569418299308224423566717129365063047228901795796772999620508271901120046266859371099098624483222240030668092859926310369448259896386999381624527966188564292220161225558631067399348959675873470555522448907548557312772607891159811507190973608430211309376988352149180991859923043243512645870978420254194092174445675706036242520598260582896272427552321776368789380549303274872623598145796073226490439876416784366184474777875573795558171960478090610033748856847685925720894047186431587974902343648126889055872083529996751868520618118055340431523555402117397851880784865309247424781634092176910448557494112683826216859346929000724890526318181087507304741782921822601607296945798275201325737788346051587518042523544169949802886678760697023892105839360101972525689048237409025234150950767947826277833969535509385519555255880979385191772309632100144023269683845959426603348874161293113066173411272168025911491590706019838547375465674939312572247417641346792477590064627088878903034748855564199581220547051061585164326659555915079547327640044497646023927233678101430465961859054813786784967544019219091873939643583007941115762633036962857471655334602802542610538859768226791456736962048576098447583560567827017014141614320564948039038004717260722481392515840612564738691044037578828553676320275402949608800080910885251322418022235993604905451232440286192669183624220371433901948404073007117723690235932403462006948555546249647297810356055018861577529699223179859196651032118549765674811017763903532674819255244263321122306424028556032048703265771735439137861313595802410685816611669342809374245900804065029074864208170109342414433660784486281428957435244479128081404935859886196539424419967877699915057669432706403191257471848070810744081741163119810507248948782593622676849000456657718686069098737216821461687385200779890655232194363591920686950378670100394075356016331182835983474330891395701882306635920621859324303476042895217479847728579041861279297839373407340593977630507382020334681978167551447407795444668712229088074408000363697633014201568817262744959418839981264656415260047362715690384077025860386749353784580258468079022069553747253227917212927548712702232616107323570877908431103548128785781656954129593752687502458678785540926675707460802374528061642931473000790715160813389471823756809996264442488299564251150319625037509515982406455116504806302423234420041189222575303500766482557984424946888470752948919093798174436355739449686641180282906435622068930374449893581376627096163156561595146548452581180527988837980203510127978499180310254361331642440633922136837798822387223756219468890077630545182664930734945934416196644959127404119022806770945751068917941829486713705374238743473970050175693953955403053758706368003469703177027435207017729225101859504715681876752693277621896695576488336288186585694231419050682866940236666978104344905136632389228976484125632079344342656076362633097703055976236363279222665497389689426001624840571850617428902733007350922587623642422745708861988629628500778057978718649533358807813652658521933380450988482978093240455746781362553590886059945627935669081458364228029504484637932838050163020289737652013502624297562446847294085798669992684732375072515508042800193568262814685818346993918889838586924331730509287167591684398045803012966034894990721847554956423696805367257058737048332855255391640834111026650788985543746203713945954359956485689753093525185107208418382309991839184505160549999832063853007427618482416006434022910213676748032854978465156826300595734965688918826418841543144701162539784517282971330400379716408471082755735731757741958008269840375461694157953833064584268566077461328064274676527757626495238414359297012323636288726797589774475691544053518503666785428647083043950000140562025166210987569720012921921830026671931737304474799103099229210262903691053920894634803259662607418604594517903411757775885381745363030830396145790626317273930603300826536095708428668805988915197924206130672377046862083112635410979264663029507157459262918098385512130678244134103135686942675391127356292725249313977949333069992512653541928164498186051332884786241405981964799455914693297863185364064495124284755716523970804286619112500514485955372540583101297109553136147201718718792508495685417191885579216398215734439417059653371114755818459417626698585962778450551270919046556585387452367060365764100433532660153991049726345017603690947081570481583412831722219519248606610336175285652465557257643123144806186878657776862633053992942225739605958100277728691628585616628814761234959829464695039580297093628699338486902735934590549648647785913616473855639782932985147427128600178246209625696567090046518676107572982348611713590120053622629292380206917733685601832254253322520717247035849650553247962934234099637590634549993522409870412457194350806369157052884175212010181662047955550779660528148512274731782749952629214422922548046284273488342321701807752948488930343332729688468844800301468796938196180738367787617208342619305469482642762814903896968352390161839545063654092877028396227583297635661573624553444244092657505697922556864408864192451283003440869227843677340033392043953887325560479626541768612988131833847784462057520516766307101481005754675605280883797627780932945950484252684159229172972319666742118908737858884797519653177716966974070482493705760770097167459129059682408653064006172607470313306979324431162794960962432666062688396626786803486500580400763768900303623068924544574375243668527963590576584227353959302351872498158382330905887991830330733341871419611401703633952394935573778830536853762570579224538112485235869615248329218286463063313610298242269244209361703132226948489623784701863850911059404246604024984465401462360962425684465673940223485042427190349918501659366188510615594164156730275698715538403461104041730361429237846800399406243912168742940861932018978949754639247024888785516708604585381345393841833720688261510667109636510634071877100696423976983165844873649346442131416941821060313866143060761398345563407201588871442140269186612762243239109668701070274587014375637506856802297105821104383767473666033464680076532770987398701825711755523223195788513504315860832464985065888513975526214137197567480581795884492420939250051296258913062254912440652233998403658000432300798350884890980659239004668639442640495879535240460770127151705270472638642989910918142664995385754591661910103414997288231066671658649639603405431283181233490288867971338574219945074065458926420041404343214197698833716282701758555421346397755087169494017207281273086130950391499332004787361926893038126716678074838991822744207248031879391458579132052043947480228791031640128854518570091659365624199995901969779643730809950024274916286819337447042754188531535000601645337992783815841503257681212318400730734181486014974682685277670015887443852374014687862535671896344401717712811889917949637291100942928465329743751426995712829702127921612706897732656623370962583235672683864392874145594280625061310340359377573177933189835291759807638460033130457683334430953222001304701439894345933012572737527842382993976630353976954877636609252067454760527917184096165788175129789641708553144117628088937574697116229061323251349225086104591067669409556201167465043239240915586029139044682586293739334189352548738256435899789286883575671426651359308016949537026866381648914848358254639488437904410336504797042957240230434493206682780010886477644561943729873825391869838870863739560505182735196296804061144159774557230535783967651916932937438072100856697346318938428021505304718267664723825690567475692967772740965866024798571400509679516781109687116160497573161341497590091275738879256414940991798619746809465400122168335113007944198533456291934086446586772711620649179100078783304062607872598788290589946930752466546941457440842096491244234545847741884190665328963213439057616374871972188689735893734932712843896182318106137902794547079668924173892120786569538453791560834017789331554036082288315529997562340953597152244369070978669639287898174227993528779353860318659502702497934220827182994147036461832896981870569412841705205518800554078320303379881624228889242582691821697583819417717895351416967142147484801128905971373253586922899573760419088187635842801828948330708365172558241449546742545179907375233100241411697401594727236668817979312928359477446712875474684393443847443608277588375486749213040722105364770276839964720579310367425287609043470772430340240787857793976108279630044731233998061828059610304361588624609215877115343936596048151240330559478544241084432109413520841699321490646066026996479993069298096994378014652771953697675463620624087735429320216983571148944537039805461729102981941001112337179186227692126354479690929024779207801426946840263831592901755879797488284996587220769384267498352628244691125021108106724672652861711735710616554213493789266196160835107129780173429724640447309656673366225695614788051112684782186346908681304633492463909001234608555259387593581466255623670758686743445194849573093824698157977206873088170407716250818510598073118996159734339578497159407975330167411545854093225747863473834409097457271505207890301530973459444310448437423961999910042237035397017040391462419885099248403248543145454106523891347164620510795307405434369202249210928966215181991489616935014498692421981183869332586763624196728156803602342926337111147252720355572019332815932732933785040587912046969077454452453821235513843589535264574664302243273148489277125127889798692546326175515948153397131393653457627133799033080995604311430775642505873029599935951559789619843798198702014943738936619163781898447093719716200683731183221368288511213557239784796855302547950953152683248732905640177173934741891272594960538452307645611718842582746616737138911585255013267795628377009168057063149898872141561790937490652094587018300714931950916079827015685159725092411683664561784543693247897359843052973105896235289077223010832552269954307908729362986750285511225789686595505951218006558580001816111075903193467755363921309213914921379120872399502828321371724777723406277222095321488022394853714389994368673003795170608781304392235844711075544906991650741423257297465645373719012051753952636634550021576206550575776153390028652437932018316922996133314556353297146400720550443048386221565235058859222437216300002793633714881098225077441195735670506820755928468136381418727338913477593021156895120855328524031280777421295595469440861458750600971325022828301767621468225220513056204097359779733576277988591746091706853270291820703506348099835932882671213340898989701889639524212154815858782077749559074880367995998398310366454682537598499575653289087163487547969315726045628940517212479443040163008549818477353561097349931018974399667194010324933075684725957828170212450201013476464991954812886892950605473781870276678523935095017993050334460676291091602755449710271149997697878453953963680301645081382076751761924055439949847391248031346655698181917250075087085793810933905220335046573287124837391781853687243867021555659559490948107471023342980939950376924342051880178184052610162598632152191998545431820090595793237054601383910441597648091201123640043302059664037029266083737589658132601379974368566151566568950962067742524036165582760606306068787975575496115100332308934802600791595013285375786996815780661537154395793169034299714590898689459768564827145438414412483586020371263505081233495987987387264811058105252636698747171654399130240630703261998749478206183403616593408744484161035351795080666845037788767191548328937542280033311526388617453811057315232554625673639384513685416091011920011930282632345943635220095105427590483559799758079554839961074975725897131424520281842980372900196894589288024147581364032727358101106504620974354456264577839276375677956206053256859031696729558481687725403219544637345145095662175181660287302761536300609041909878295214084583108207836876854330628802342344584202284821025969174568426090847923354438764069902977810711030696251029916429850075313388385041591769904859771672152429263232165117338422029274840226626527170374500210089177467059912369306008591360428005218210658220276623256002311330923972588907253290502286315358915735690346271697047066256527470160118067221949962662615815576048147304576510942130514439486015894567217724492128778738531963234736600836120092821789427420229979809120613905822788493697738512740857632707011781455512009144628038638925090980481889229139499116672071541779688539324858729512002904177320968546151684993350375139433797498012806741751718480299037350130742427486181723932612557303415981757605857572465959299816643711761438493063709773044727666684440656141768786300152325273216067059804308710553997568225233831221811530860915159960499344884485361490249935446830941409295719169132042973395394504733242524427487012241810185395929128269289377664504589025156684693789181530110630147576659420477537812206874005775537564943947359160565563945766922054452089104921590721480009973821154740354444111075013204267078742494714157440202998082827626863488980325598784305887311344280808909921125667183145798120364528321887741274348356439992111648694870506350023219237058025872838348337998974487445253012544588173738581040095851194675300372647642026067308490115673993425097529168417760373264120301806869428346129786513869107445840079662107967299464121150063686241541462585186469956429766145404146191418636303712802996838341448209822814254934039418529510417043132129948029391700344938007181449391991475859531034203854756111791158633683341020425174150242336820552627052261832461914441075747004825662403633331434696650916602568715301672215629485937161546490509095460442501141703984170119599534603403289618802426928845858714441083802782508920564308450492746645393134619627830747551875057603180608944220513066482186588181317764066770849177027762971293856975503940712856082614228849756278096688039454730792817340972176466702554679804735425330187893668260097516372462569540440417556633118212710677048038928568473666182372143490263338589135624658809821545306436833944700660952767687629294122842188480307206867011184172456060651858160132980103607565796768787503901566726787167382477685888370168094068225098944997180413077853805795794027801125519769773779094448111237372597374682650465758118033429842742187691883877725297732575786835112238039767111345446468006563179473762225656058997376316079524194467732753953275879189576992406992889370643324183170891430892521151858741646594643288847364559741103612762551655183896454876867632451963333513890061831861395465346679516356857743072385902771365701851553391937408934032722029364646721230571680070207349407554184183077530635190221441938412112581067421901070819299853320027628630006357523316267760611292781537227403259803038871138971653232155410377831847516237590826870440442350657807611668308459749903858981246645013285573886200127148925539651500910752899881579704063773007808666282266262047456908118379373229150041539719824481973548291995799329667509946395171454366744852282010012313410713373397515225600801060251054442944217004055762628899318983834355400161373299141811314386178595199486957444011455566123082091059211300597186938492840870165140397648805492046561163420188283714666361993549268462570833014354937706020683594084933889447882925356315337798560418238616397508486704616129765705793050057632154022279779240191586802570653516242186775631744214554151745684332572093524247971064157732069672960989415386727439561593238369158558641622928726969719752345734718159099912585295800681368555749549616863204677437059064280179639530160428338118607482600132026011769173811542622497534785090558875687298442845417429430666136360345017180507885382933608603278125824000914848840767333708380184563580007946910962142373803788739094795461092219650355083921586112050106943553676731505600710639946384561184317526638330393664580129416284771901844771167477322958475660853895131278508987467949496962298784795070347423311005693357334548036319681269989270362162096571837519603554051062946214059902127083883927093312086505910393310935781784906000463213948936904711380587598366475279744420062096520806046974834167664378585474151088870381570011657193480616569152958366721060972308174205256288418379779018072033757155471783395517780519729150797070069572975210210214520483213089087709354426803467452038454143012650643155873169093161560056513957320946862559163895187124193152900765621727832466724522972247307284149056023340816344514737146325329627150268128961589689676277466546931544467721851015171414678021843911482345046395070223853021332884390329759700821631292370093356164104106906262978864378247055673765910936613132541453802871871996783644508317470699264770923201296082452817517880503278982752257048903723135533812767747920531014697287924445823244375557499162040121163861282537647145523161451763926746591834389690506349838740765026537006361403223632651521171534041453586766114430035911650365273907144048142551528874588159876823280107942606050624307866727360121085439110033254758330225613240333668620581278884410888848628397385456999522710103731609084449322708022491246675366494061879433601346747832736597378107880733705583006652849197059714824397210642697854917393989937722034129338113554742868307485384477716514316160535167256100914852965115237562640316806068073984999939253854099687633576324772191972509753533451268068188759486547582664480033868889476583782301988550802887421388288450132364419738592886267259853326838009623514804917974318890828759313159962029534696663169334128447094472669203791252911478846872025489885603372899433599887795336228026647913807734461023111345836225409409270654263818098282457349195338598402574392516665173640304515009179644450933347615584411199663763691627499208869560543060397491426836401016165642799676802742261309408376593499089771400133043038160426663693997597263776920951965995982382496923528475591264227332490463484105618515067635238683353444753638701571859317138895856411269455273057845891162256846545728992351161249189814074125662189374179460937497240623906235039442686803004176232025912641062731136978311877516795623353130586597413571033989003071411378832374922604088623449758956500459640787808411767137293732236534023922837669781773824680092678069904944945003200210483923990426070383833441236809393362066414886273281124393269778111653690405874845643376677161454177870819019261764524426906072379643203632640609614355715018263428887616223833179722317628398134538962179500884739731966080299891613514083790257493499669609553518770174085107724058068379676874002398073113256042671111486971776940972141746977839878898053517555170316672880702775992268687974228340571791028358241140005514831559074569522721169049203448553076253140670653378133971495098652393212223404837242217061556291240805339955539716435337040211348042528787913239422030912054180047983260253741312901200977224218148013489800009617697681081216581668024068388676721053038754385922858825875461879965389775175988175623270307384019579366192879865973954083361790572839076925557339695092698340629409532690601196523796801809794508391865139785860179432335478842718301996865558656441500035969749588693875411195035383105751716236117498906597960956853408490554772430794632034177814926249061969982605908343941090622822697187991577875683617756577367859050540628492360174784629718463303019763608915578836412657966607558925776288944352158349993066746329475803086553329993635702824184269752677297083487708969187004723370102349847603237814063192916917562545178041670575338152007139978076264262691674668165773221009101443349411827498943631384946774195906542097128974165350299017643379481420109911325926689796699753044409232898082109899598117705190032862545771803261053604330187568258572429521790723810644152324445853422908891518570624716845780464558771104342544977589317592567522479028245562275068175617976204714792711985132042223582124153997357474074510989639205776489770938113219143008167184883820681779659310640243793640363041257636833834303716767156376700376351405311989514288944035729485480012089387866971714758556232740672996285793962033549765838204159629026986359977912330026574358495472892594929012492488487119048005754489936601362057075887336360510050802976323483296628701533380070941794186332345397478055704517536472864842559371545019461812899239753400681215670079730999674237808686720394984883673230603459819928904999776278419997189093822809016883203126510230796219638020669487433741925948547334732591225379818498359479547453270432867710676020511232636264897628276081857331736840952535245521353660924490880844013476673469633273049061181297137792068932176956722585370988744153245553599537362728062318405240055748973779169851609629841638338186274206591540649313993614180523221853228147135388859638541104089209732949080362192861056381426856250496193873720107133946124715642119355493794855815191494937170155129577967364477747129797107401794048014163024283630014894117650420682885917026055467713934973356861124202002588167961011582587786190713436973210848576687445444683897531835451925428272944559242377036239149031655145835041780879994901084414879976088571373130804860030083670345981099103896419164563291452009884785857526632904331964647677445929641424228070495724780201481416978786908528609864785914535627330449999026264266185499693982218794832202643172887429453834686060974475990130214998560278432716119662292824147860616224031319917577711308957640448580597563245294622530217940611852405018558991744981164578953721381129069612166610182308758367457194103809433478944893813077717826987318647307337418789628140209716587567150419371005267959832326798874026360845536796989988124847871473464808158501562139993064931065874561036434736324725442967001961180851108611473954650331661386435887251605948447846225467185522655383410836034706781927262796948311365682260313533901627635688026723145687021472405686930963089630689182944775307307340009416205645745890955048274476838036522953124154078727742286817113841326870214444167997735393812517899280862014534266423945591079001291888079818358946097413887705409654732139661782386404595879158746836616996701629921979476788857778308853153096337865284437384112305179034895743786072079207558835948328218239526125018204536146642997943349910287839059122174722619305068983336179242302483045889098574437404605296372803129817102345685932093725306443867548686707689833406634067991006303282867872073402774560558570811336808989772668786611652008065560467800658524057211237080672110728903754381894333131337538315071132370892116678479682818358400827458061852788334561276440228102539058454311391324965817367870916454086276731732442185296739843443280527892621658122732224206187101395842406050615675558544753750146752000767660445849840499347340890629906968269852021199017507513564195284870585635550784607036028749143347519901481925634882772464787594982153399877827301980189619024653712964041492426670955403582169131722172009561080638801808174159006834213294432582219951691344141271530418795330533385618553585102265427964676011266383471251166195927638077561572565286717377506767082560685795080603348780889198649286199199113551420889924395968065383316866447774996185792732881592686549753721630923746158868263361920130565776698269859086749652536856328128630708703800854378139915637865080666199247310107458983404180448367462213489108018857411113764624718678987347095848044269033387789498479212653402933601835721970228077139282191926212779294805380066206119018632268084323409029639480616927623703057315999746848509926351806834898815049579074859685255028073902674582234300000568601449342455271105340133139134767172375539516493286443018857574109518336553069575242622829605780187198999667088404879621395684021583968288418381145217137506368630586452568559708519220316774196616525710683555208944789920412967023687397472450049158245386763789407396469788734840187800360651536629728866974622160805599077957859303363265526082228055334834793103732561752187518374098346359520269885177511474434350109655393486942634923207717650509092922416611917693267828476063190113829622361986031458562807949463074077557331053137358516817573203545364882685493844099762539598952898064443293841824117534381045225160976880808266687310115052791310466881018270811075141330019432354714575743959241209584682777179155158709873909652003791779790111281560384338422790690489964804913682928932699274389437658680478188223597227563532658078990335929480339054054414650895527734241852297001530367083634958464871702202198282077909238168608824427787653600561582465529132110626360096786654878067682484347332534135250704772938099478587156056308933434791284030928595818865049228493600247655219699163577397963150728782222881720868794637097068425367375359738607488496872208557496604015281376948888554358991450573500359355209069930253036196646123178482913363749464341709101750800751470407079779784694957529291545440738025873025883734432937198626773166584394563548365891465579303772777909543896999778971736207253020870754132392361665649608791699573511603101035596068431819695159181126669569517555561034664645436008644724770837055703752259608952364527259715068712744062766176648728511121483305659846614672502262022602193260188902849281920996435646617569821990454608983907055092079567465247273121577726407322490857867625124680327872658599511497172754861663174122135127389417962612642156988360559646807399008531488124519851427722793154320272223692584226837750047745923794762906409048951883341001271672661665973495226339417000963142002574635791938222528628858081792710174033470555672042447321112570573033928478090412291559246932140703704324514098494933897283711494921048653226339225177262401917852086431516756764028625830351995136631870038114057305970954831819465052465856826881056211322378572379759009625052342077433394279072634848876622604180477076819269798894664032261093365214988997026060190237254306579734901167842581882780790923299960819563028570494793701309123669791026183881887139675601722173283518262267511740539578080754111796660465800135234595583909060760696445681919741717311696778474728042540712813558016532694314736334238118549481841983230038928401928303036527322960115238962651659361058123789387824025771464037633400254672818753472763734531256270428710774912576442080799439545770310440631358533978097242856342386673716012624188689261824606624812882065427771110806699163013351955014735910470990836418786846710818588408249967612744867413769739039194393955902632204521302140089467118780281337707049075355050988881088742705601559196160708164822371725527624478347028236704069911243191159595333741048139495359809307263769697605113150787370210591524098464422935980484449641105202724795182996536036700085678484026752909148941015706698946620567984074053838460315231289722157705802578763979587187363640342617611644365250387265478426540487544867588481157030342662229770048767825974329444529425029419211724503582678421523350147649097081554969893822548334612109877677646774970410766567738751177860740690791521593930605206348854345609679851386877338764563873533787985468999629281733260289007694474447359006954490336759976977827955085722649673969398093040907110642724799665782952457566425712384916876985199726464182832484792697986547061776663309198544737838115497988860628149745128661067568499199200848861873556384311434813578854377916189657440816571237222056182374635438300888224767313854394883473623418692738119849607721554240884619696159674987882532933419784755738244684008088720485268804388572758152936531041442728339116062473199124978417926640495794273665003547573097785632440253725835489982298112916556775093074142656462716917452106566739034435259560876198726443345803955962978480766478782345543463755476648473800903382857658620732505668484327124531179279776132364319541874739936064209033712598329019751285312035929251810858307190614528074577020610629254454532880916546853407438223657850723304880938200043738950733536464013629444862959697955116600974976775100749125660116697743583626553381979131127225702107685613651420626095119233047616196628762394688290625296318068409598476789745574713358508751707332997131199698269950488178510485930274563805107015535603186544661401177976639850755960848284566960746114245616991214536829831018846367576450072201308956816737311662679554989870212919026555476381065944168788616378428199555701044729136590006749335321318751403267664199219728123639205123962268382907538315934599817145543891418430977454812455856425911842560495141694627316400612139130364760804760819697155605417337454853080310529327550140995432713359211428703704432473139805604138942466198998273984485173484605670448818667035780734371094862302518582247268863505106666938154397164979182585820078782738034677978357483606610472254448907461063217325069117010268102303244058243855827914682598278851825705429108059501281086316496610863493505469756110405715390489405496798528210342236361173163232628539612767435674200602726215274091516494493712420890746649783793219337095031359590850426794718952918927657416883305976124278641057500757517275753917987179987519989038766813632699274193006944929856574936930184665817739077015994616074945732978193383247497935281024155370805277361141597966780754673458954441212495893967908527697838725595708634137433825997995898849472564190707167705602554410201143172852426052613176355415728610754465420981678408455441749559197389785057238667905446084614810840415543494908220337188660830691876551373161040666566471915394790765984139247562006371612108215780525528163883018563191019871691972018781963916335407541770851417764794572083991720886232479564572223498269332792561644513376165291718931939443318664169968644843650490148887420957972972334525693698917975489944279098524574106413513210074301710744407571726898445617575423309068841670760904074289430024873807015945397504779888130451993034074711070239728994957349524093127289125959514701930340543034812643418334466287407355740263685270905048763145582629929288999263642995876606262431363583189499895485931458334393964415314723932344104971955813669291505552095316034119936375520802141128151563619503574040167806514089718140217969339705377249207881957479337641877313391029380528580689678270753828017023566223869872602925921532171012587675202446983795129118766077574348565205345864565795776199850357518469543690098028575221941625473049628591683085078375516630279925948795600265188457757827844525938274726478281088139207488233002939078278613454272160561487887062811088655751103643635598644020615608610942556843839847336292684434706018734747382152131295138804806915792418853626394882629245168658734569720772453565560295850929798974749959063575928232898590667158194310873830464709015970050287168204328483296759357625589193139280140885140036431647719361003617323705928532904419078261608622645978017508857746957869935301458048737547218817030481095333895259570877997821938365287131634716026973144536940917236170716326168286866195272371178541131806370552185939986562080299071392955060984753898219192371509421981672897159214141987084816377662087327085393076837355440955350550658255445294961878080066447156247965785907229149379363601334888304999513397077891831506770271881720949047082350644365179339999753601811199773824661161083765473415907315124492985050573244816751336164461016176143916546777205128549028413145111291661676350485138999979113849493079487358982668788002662985926350212720933637414892796353585333242395952201649244828883828011774933533111406254981417859615613225166587839763737731278613172195183922435353623650824238920506220973597843468677505011063406291992888081726008335516081732593659178225866120010212661133515673072987329663609122763762839831427932436402628305583445537171909934583967882164720638700057839498015922776884957567191515963053101824320710679705161617617506142965600275685508175148616966748541015365562420198216518326112135244488968195389602347618853572905311911268204595466121830270196919574551770349885014238136939068217158761123967372471422558128716669887852154292304108513503342377343664569415804951358683178358207258452340686552260216242288509653126179625937131836428240332573411995903389344793444982706077282610820029944299081943814264419075007759314802771824669037705054574090783248628770344493878536307066622731927975035939381593149300164541663867259771737912502309354602357910246078419393120755450178393219718335097014191678165285537367551904730094034391925213336260441440473168124306416296080648787514250670933231161109946011821693688595840946447046410082649384401718508466084383600717511393493919519843697082434578743423947584936745059753222754412336415755210778222761591396104196274640214696007379224723950300538636732169278391587076621126113598055947789491508256518732263974411626257682800787025696541808378247225684021748952175839983455442857316749229708493824421351493004709581309443326468127879658949211927145662833336638273912909680560033260174178044206574213572930011143347442145152522049629850048679914547249432896665572616705990791826884855382294486461723519613472010863244620824397962066654708265346534745877617858929136382871743605294158188568989743354073605156983868686682443416877963495687731246411772556444980593772382550571863190113591704929755521682903964298584026669577088197251843491112201434022864166862716743274862991890508419320105197629695356177336975853310204774703245706934448117379784838176178880976825726230639932471390738639173833445441514814171443317837958286880698373998535974081120569460081867538719784599753944508729066492477219894213950450025116081279656496469978469846116034265432910634387131426927595614189458793534943976520609279039591565527394045108886255625427767322776534780057490849255074828901679549468851506479859331004265905790014041662502983562093993137106706286790598407200865790615522499887625243379926199410835827205249719923702355530948163090453938578121092973288289936298706202011930712891232454367832941711323800157374979797919023469039091819347902400680552044018069469106395676056673003803889648285482422961104208400382448408145880874229146132825789974403854399623092986304147967627755057569286934438980686688158566674775512324958640696185569754115778038598407775609895651000153648618655962003631268500883528291385618118103880376034789715948228413756126968289002070415408453767934390223521618743161950980879925726253420547533099214210202718514583039115944848987650460447021341477426382433714606778075763277517306941268290788526798883835233052726256815955587606225724709880490366241681695047430767787295077650962918132406411997700553253269440523126284077244652721967773116605417835693428769186388083342115575326303582081617585662127744634077032738953812112623917047575632658783141563678837559393450215293106450585758662108123308362472878968241182229687555636607361239160679304981543334063077949608629537312405232767164203688728777654156813315296565240458167681196607648001783814461687023134087280687209243047205941341572473672128881455069353608788895994913040727590482934229126809395087976987044719380638903141119275168845190428793726342761183372542992653394696403121483894836845785194060336731897515042180616005259589205911195048743126643344465149344103202521745038791706875487963327201582754203832219236166103092378372622376993560580630186600127097389012028948860575256301332816498041427984270618621050586987754176248709593223273005431405767837339157074555127668399350815852122466494438461220428465558518244315079986114182662426957624469080757972586400542864260173934889666008333213170499195637807203261265901860559296695413977754126832674885637571753191277892496698659789598081600578646426312169718588042176980261412339804172395267853361198902502339272285990269405396659866369446805313205150440527513101125617972023505863473663205209249179665989613334029054941363509588465990694165483027816757476455014968195272805469040329131971263028807432453938711070171561462583102917254176664480469375315605142501556348409579546919906382063369392282167999470921461697953100439472388478213095911497149566499877445210239971016337251651153540860389769352530981549043609922942123045416889552169089374673184116808273597869652544662918521176522141653206242098323014543738388796688515704384521074622675480593437731640338530151292405923299996661486660495944338565433337909382152490797554452553054548385668378474015285249330869300487241271497662162538732006606698187750464564054199046580126872465739674358804627895730083318602118162689956725693087927254102903196890605074441225079723372204417433694072582487200122953755088500395567762754119050292480960481332749585758428997471291516053379777082804981321252137019208275618493468969088229181125949202648383026235528144680760174370163727604944767238423625830910446845257695558992935340098012799311605647668489173419542802701891005907894559976612756889358819557306297161689133555057234142918402653542607041916521330735188353920262263615396879380339345637853752323377388362803074571094048089852605798705466415314632343003348730716819552445061244410784298898100073598885778143964518063916497921740348386816663409946665319016250844807483447441267834056285957569782304188581617013548113871138164417749194342614252720244324159151870586460783503726850014727201220436885711377213717548766773444950881108609474012877759153365831876253462131866530777115446732304032070212801793565271767784951226509740169040825280191397487738128838554054487988310307199896083846032700308745149611139715923565684075096926876600111726809288822223308480237271511328238956745492881366322383179152294492950792214160183678525118187401145150445063409850842467922652710051159248033489648553090602712675933604447541596267575288288456380565262199082039195990489996472501919857415531205701072932292543711776818621217960161969359103053897393510627560672963983281809722539842091979830454519845423471433765362437496998995407584318469018646535898497230918120738856488923771313398396931732501339649185240104640651600778880357684949654090563419362822269213456678564248678486985919195056400316270791324457734326690695685853239547657647765410706277354943082590827926816825637752103122073792518541262762862344171931381847581098589294431946783067942394399057241870252090687177713852767970044818145846701882598969703773648170201737853856846098075677050898300648450051084393703888899479901671568172638643261971595311775146386231928294138005858518483847047083077310699920387921829029348332581853987987018354105520318158860831869457358682140778374043214751512709136406706702152343328706834814201396023581722841052267192401457088517450573958532109231821493051097746497085562133712559841110794186527714763586852381152858867729375743439673220444696473989230227700995858288436911718694696364619453355675470636690713884625016540974911070848094014838829373903671845889320158831265520686567170686490550122493835967943800334731365839182062047457973626816775860545045026461590965104549004048279853844359319971934070324927450736547398499198252947022177794113100931711528439288911434904633942099449796424524973953334499102021778466252624535460786707764110476332962838593950018039875642881020577633996534285360570623881991914017144712309879676509859946425704292595144370286245296819398123561660790116471431965856437750526513114535912692811051121622048030357383489481449587877014132163077844490663656141084348249490019099040759669090460052964907550119554340841043789951610623175403074244730481330012410811050102792633509054305322662249518097019253938237016627566860788606302235793931405753358427547804328224214231572527643704780963395107324027980388874086097756216449069807288955108737985490885008510657842068159026679850101837491813425683980656894788506534362077361340323535299168546692448409773011563447590331915477938085055108826115700874513209857031913812307359930603027957036781051726247107825129968566074358937478396129084495610001986252476497090034339168060162196918749148628314929690640104392566910509516436765956583344816900821962912844410158044499917359877093334027526808866168163595680336595269246630257881051632882892577998976635344353554645496603129611145144022247091133419984493392383367559515563794359697478123446403511056566470908553875077103941638253485678411764159812401323737878609535843997022854122599249318212552585517827397229894115674234091793261294880631577301300686571154342826019386182571703439421105207903714933418947493279172178590984407566679565343254197320299508144553457258761256599125412116928812576903946091769830177969256398546382448543220154344075929039262881367120684370452382267410979640064355423711268805350797647581098231176277327784033170999004890430199836228750095407895943586867244566141416210224657865146582185471829790261787696323431758053550710505369659762845818844600800593787367594196920363468841403575945009780629878707602828926599834651489089127902325055328434589877755788058850493050859189117835417713910989259275926686360056345822264044006078063572662996904911457438245439216501258527624018805075512694422261527937335823312594582854219800081336690853773219351605099916469412231781231262464360747391103853842213558925347292145781025865826156543062435621161820564071383176879892020542835662613047155675428509947869807840126725193849467495773614279466764673821626420765045894570429382364713664142155464117716378481453448861897219247886060180814401743821219229614066037380530000537062765271421981589177380898474929132344018528185036889831770031345076524893470088730528350396219265720785412860173296429386647216899322216988542564120961904097819880029456097755856824234263858776539231874152682845908332434789984351260996576407394286435580132060557887685124178628752914066154432757991612326579611496254654465835988088523460786623555357923221401533216846995281320158970086204229525980343889581784069914558374147422093285187544843803355895387375597692517775836198701839356701056779172997978913827717986024618733478389118607906069406579402502534054039683443891899856344468730613923077294121397487449529483146711319438559504880038510015737886418341877419144534853083011658315131118661487592255838607257951876613922733961702280770973983364222024411432173920510520168612343384700567593018467493705173732792908152989290170954580413762839132057071332940739448393347895311473501817448488281488611990342483765790111222730505236004465349198024119206437043327221583013076962356395707117727900787370635573044487060069758544354496079444281086637739433518445844251154478542751578945793007240505837490131010324752094097956666726382323677920100348703382051552564227050176359538206394245928692210039506476632387579251423734144218785274671571143995588386179443841969734711581625775815752657054870924705527051426871977196395005233480977171825284016579305154288654557193847303248240398573892867334620886425275729744396700672660790843664494163019164953222765679488055558492818062579056613242066846737556582919056470515548322081283000917065310695271768574145959283995992778241430871236300442227204784749937441223643124394794306138219144667576316525005049919492527015777334346025721492951877424249401563138394036538308040676468122673808520464782322224405412392086513340774451750302893425819815739402826131238940441536891081691475093281607369124699619352158063253687556002109652597189673161902897784339099199872368375837149907705290180177539862499386174170872141881333033203871290306156418093115296633695922267216749889550842996230904849603534550745275845384272335139962868838478486735631454027077313929001190760541753713220805273776535665147164715456451770656475896649744976312159069253448106358339168221867674351225651047788954586017515414194510276369166811231809893809482894934765290455645066179533124161971286496619711439056909036756639156728088072181158787255020916207175666222402982049748373452204514402733192286173596469575224224078394738726136216075232107409940176605712946459769445844151487149279723437697798317816543480287073259066718643161026527628056167356596498387150685702315359794665008386130423856487657251553646500153348405992000981336133516195894545588935951111708070196507516731140359792322950576922595523129659041232701166758956449274884511350040267159714513476733252824179331719346047102727343200496297055341265209206442429813694790185337985983177657771259806133664997793910792549975476985259128493598500009287354730487805461698892328758630171319689583303549002467011968363620287375454453503123513926034997353272203380476402677170280895743584671260927509553540006201377665771695777327950212384625319840988214762554278330928755429407176804120142539034699497764274693995852582214053129972850492986450158909055559005106740228203381039157269461413774471067123084834381615672768761015526150912591561051052979014795776872548478815228042442238514835533223775698785137055872292388572909379283934299416646144383396955278618385028156728109856431247338134437451089729811127066958120395484752384609207977420383176303184964304818346606497687901631656337805084149313281523598408771293149172236061910986199529043399102826420036334800206736077217829278481159749079560631324112325035215994582992712440390102257293019041069402736148996627348557389642567593824717187055983467959616812608880518087652034694298701155914908426802378845388950867396523994398896178926878926710967968483879984332423602616868548056262706698715105678843768304314757839443822973164525706299817301076382383464793818514932276341699322555165451387932076602572657623482909553440744924291028694925502067021257689772283229623403568776754237641456929158882432471000223571564044504833619363943208509242834640246771354114870849118692638546497775882774664175293891237399593955931703568134160342839635031545656796109915723165702445061527691494129071261833809449827855074472036647922943386092711868393875460258860013382479276982138619156586264584256395215998820093691764780035396360932428871294917240433431186395371799929037431065704878643503293838190205223219210618568065132070566969626220962106858519909386337181918311522491069368131525294441425899899928711995260090031795069389940383142398822303234579880699305189575247280061791430577051661296657006102549782899066865952483319093481234002709716313165762667474812026154583854398761290389731482504768152488012557019224185731989479880074830232830610488916058421181374095101226249887252310233290341575933681485400643512274138032681394753720060949884396959367078756528977410313066070071090187515114413438369627295862214790294865525436430247395892925294858872653795940171330821702082674566994223029341919381171535086941029573920626865593592361317542212734752363246860946521254803406347026739140142815425742635660949113699365940220815314679596150211279304367603242516467080550126745467986621201122497575335421439566586274745319780961106939040183823056237315202964793001605466234308577425624072836857233842599197794704591057515572682523182662029277936365413923003650364826996250466660234759323008638698688222051333278473596391392548178642415900974206741025479783164120257023024641332559567036671401300232448103431131388670718101414900464606560672155969303199965574382271513865910364513928829488387783770055989529441244454863383616220420974778011744785845679901559811215872826241495162228680397909766974189199967411160039928382334066324982388381027797879422521353420571063386655556884912040896550321737431180119267923559017369123877756692870154451166206602373067838649714539211114936861170724038503274657075224083156051467238117470413427778208008452853493452642999250148980603810804705955666461441221211202032601005065533156636956371859830909820230006273298073411184407998043609509690204788068121111586497374654344510648976391007449061240397627750798296732119382378204307799405786400290463987724453755185522851556931957747684310538645017838314844587352071067944516743541228403351290513174922267162162494210615676857047058715486074361363229485119757123766346373018522258376546382427261216242788398602313412195148711797071127395007793305593725026321299484324269530291126576270245151817637684207747785775151110733022586019247317581635205217257303706392604769749477189447282815803340347435223652973029058112289870647096869086132252787459033579692975223107209638352838427084342383764398173756218557420471817891847563132491698534081308302554880165071437101426948587281684534539092178320039957264660555223956632479648485088827306343126776506579993948311418034547031183266408355426310698504927025141021832515774139223788269389642128332907451385892263412095963380521075203007478792485119177556323188537012512955369128189633605056080895816272179776331101196921326738207419392395799175988614626096964591742567239699969489678500991985620467552242170430564529009899467927754853350165352938824819022114098270229516324772668063868573830053068821351143592316753415356746699902079548807660379111764778227347456221740357873982674029348181144921231971315350160385424602493196452553140449442417397162439094554472543877103285090573647841775125269709026858867018118749575755898795626653502051443964866169820959935174053936358820393414138368667506984806005630501083149843461346780394485040186013120782080326896934855166765848847319279282489400597570794509523942383000811791056972610431170723799099917485610103138965375432893696509703869089696157102104986449250990272209797591846841137419985532007643345784023205288336609498077207842945779014893989832614569678421844523637451092469469691699137886869809517577607079420780214411070736494599690919063221978275330761464995168395140477926898710906712266532152755753023708616824195301885656998880762501176599325683365421674212595637814842409541538615911443163130814823907233526195757935475023925014486656097831805682964979961267723946439690669514390722435280367686727277029794423695189723891075375064911267048665518559976249480792545389545440724464646001726932719343760751437661995927368897847307233692541678591541757507433082830508693867773154743982984490660204199334062126952466730638737919088733285196942170653046590534689579864258168715651325876577250842719280563757317079312750531788796749960556957636033493062351944269568378857425793964955787845764829978800221978005231560520753201399687940622119516685449024611151650279842904029193745921558299907629784296408660015610668935506446222389383047238577576014598418994641707066677791224620970412952067597405191511816265113188320129484319265179298854460340442230420810567559401152637750568676083071201720437057641735895105383777638452386832480194858267759854381836148427351560154746029573245934341012295186272063570671798907175818571014686083428367294083413258450013983464932991033012133056708088993708711909554672701838948713904063643085789546413633305989851000469423298917432710057355736363606272388416263618859818888360743405739162968921752392724863885850743566881242727219849678231029852064461381515352211619687402278594265860176011928443491465413289212934213731960278562706184930445133411820577827305166169629780738497652349358895547417846975497652139216584536466350441536945233496560758533582249494398200677025092373511057013935738315565046878916121587657721359190762836562662363025669324012931520767221005123847842503279784636503567004105325798887228098601538672442629667859191746678117945932629055883510278497661285390943202284047201375541434511574647680396679223258930920440899769491468971783592726143821239388509834903339897361243951484629539665443557928494378653024693427011218966780383361260133954334801745780064257961490740473721804293399484100076130611505272772762600770426710249943015730018460894018495717151326932332674652387877987376036293293649704312876376512715603624148220054254427769893616291881056326090819038796297355378287621717160260750635648863084065250513011296463461415321172892838582167242203381407454944601666335802094509956637762632542059778064656507195667766049174241102835121359930501043327164857599553721500030400917864289912401016675495089723221161141224129370194617948189583220004253208978033545148277623856088536713120249125965416076681923852448553515669384222633460106478387797924287708183344196312267664645714480518086895762228717867686752899992684910618934530529145244343046000877721188896279496912435060833815049546619667745215764841662574948817125044031015245098532646523035002037563160129106595683064991244030602216982317925115141282764875825770368956103343060502615886767635962674903104636364000993057677246088704690220342254293345518433783586491207323152968318612472678756998411908201029071922545473252768399276310118591378655827288753092982454046435737968246576073616600727510606783619687588030382129190681824153830387374998404720373902329264143740236731529495431840277968355586430056804647897744629962298699413640467219451619115878555713895831440930601231617250239913957936251392214401270292428992271145261565900230212135643937931530174402245657786342726479903080442340822461406448538044048602591889623087082416448440857990326401948688825298025977751419504705107763076749199709949440761950720502251678092717718062733617296721217654958180434610022422720912819650037498398816835225861252154944688735470294228914679980048412024563787882150931637344365477680175386479586559991831370792975463519292503373503383332901127985300045019043079968270088461903507605306368022107687577038222668226267617347512908361250127022289666082609021562555079467998561588886959567425267777258432758910338089005763099171660965781443011386141738852513206152194528929386923462293484281906017817208663046161180858983433189930936108553284989435987074394105761084689594123159833262394952806358781497979962997001081268875485230239194022554546244516195976146641182018135011147856510378820981911410238270984963452058138525486790964813214580194505969477873330888961606153752347522956187481985723272322984093497355639204051670698450861442152255009311758905013711264719769025636933225923571293842592586978600356071126659838417061280845432328633099676331838364117542940369974041320762309188684991655112671768134091752764574246503835623949722018922479619925657357236144356187392751470159658146172461242177263411115787347490357670016893437624733657474724755057656322087740641753394932356687401674419864964904195780404469503837361970535784225814638381543037605036671661894265392583598336629673405600725051435686454473905618926845764524557420634594536913386711002735480823086288163443466812811661717592936777821063935001967219492878992055655099126317924141823672979679717678291053773724426135904100862783012869728688169860355205156139820269592987122500430534522659410627680466977836034957591228586171569362999594626914005628650493141111319098726176983310949188833974152022662752748454548747677130510417428332534364925480047122315089893303414495378245516950521402954453387714108092762651319063669663369601041798809193361977006190715914879226283687795311331169968882731033905495125879291795838346336552181733621963969561475459748787220329083016946209882150618012729606083541206928714372986279281938093413980336478290789233573749551480468068130055594972628554693662945781404716973510508293146268025529763068115806151123632648432433706100246891447912017773696553209013845343650656912027374473367588054381202536171028831976756513984514417307488487658605897094547093392242194728550343927344143675530407322642756158100248338172657023889648778205629541779843794026340160943815252817035949205339419294478616701797352455340717559972298112057873631270731986314018935384905447354794158257065238003328027738035988198518903239638460457516268638405052974034084302558195993062356003226819808056544320549373586647136120998720961478341643977200762352516543549671152687388729390407203758129847682062206227040382012113003162823700495995580715522951941392499231453652849818088802786008306183425273302321907967927282739867013142097717934271199775327242270929238490599172756760470866987579400445452112995700672658678106698642323404186899846330085200527756864586445300429223069108225576435426688013465533900528025525503466674095005296830225904733888843885194606511696844914527738669605600026404755054759821989171707424135787797435674778239792617095177522352387854940424198132157732188580949098173951040863357101746093339739948234149055713680565392244054523689817425859110162581368320385435762948589317550716933968459458524652154818126829458055434712045167578229216565576532375526997949190779029072147002894591090681016854719600989663155204076477049866301162677704369757620938796224414955564708153367546517112452549498844838540037299543806471080666580100942334861928716293043165699546604641700856800503979610516542917873495855858818010016576851922780676255579894733482099568220098524303122735039571046655784023657825824795096030589642667051786294603973778221908777285040912877951642314922412276596721546316937442190268508370792317576381366754356847890585509262508795394828888739146039656482715626061512048197544281347890969457705774085307875917397890703905705383998733368158003932816919802359107398269318705717997466063278205857691302076871017589948564421776314743665042259932619887868645751621519302391254622715424892969915170543355429491415645267101673752205127441177003109350471037931391656099831985206670859694712376159978097244341047528355555910608605357862024353543911980535232462300132812005127999002251233867272667516718718294341711081720418692382787459382561218258776159014816754906103612406644701638593766894728473688925350984711599764719610215721644544573422619643395880767722660386823442432820118561051076803340013849004053260941274192920333037363193919394083040036568194656786006336632526779677227400641012037388525046217994082389637594297924840034066009917907419838340926355263919832860694271768489089611574706889610298181763821155496682223878652718359285530752137401008085902924591269607677506390712555114939795521518260470182169339955158296281142846374859004331785970928174224333805001672029635540739952377591406856441286476938308212639461539238861348940967989740263483895894785899049632424331323792474526046350088638559630764852373340388668669167117620834792980862815835142305900313962925341383957966843065007967056014844235880835325600114772138183693590637462607406422288759952939479153957228497981400384269054560698655379688004526259801841058783171575187635945688187985163585682024972249188206413055791660940801823065270003056993758423485180809679351258729265244662202843415157630824536640057598398335902280610357172892947103724112813323032413404172141364523138906507159636808588642117062888036038828183977073603988522260538929545016242763271308210173983104485438879594959578979114406670111534922136887724352560374017471123385657147271697464086952950783282191457389095076038587983171461749895314714813295887554491640388164205604748159072587674153247136909955890318780276664941941255822452836188502456209737796338273594493503460651701231366074002191517804257587884588702937147846449526433262119270960975208788317270574305565606956801058383861282288703916317244236614161878330113581438941936194195714593118732328197973026468712121230329355961509287512461356544067762112095585872840072043176820943340161211442010914681203782270314236009099640378097865561162833370724993778532858329115994423919034508074000206956853194031341263777094205927529703077501003041682127539024457915192752222607407916285759522624356263011850105855124500645831759246911224519761652104567662545317813176829977912782151274394314443188343194855870217212802188138613195045511537135070875961852526185507883062938907734750175908069451473866118519912848809787237110679871965468966174265948505378476709926960258363254606961261159986736345685643498200419949652836857363937951539780102112688930739927335528070953390419496615205690188852812693265710134636050129808635945955381373917480471036914751135011310034267117364983346092432097901136720601765121217916018664089258865509545735971235577430857204889337214354476561810351964942527952764187173813622112595423012770918165898051079671437004931868909195409135412926370730678282122395251208497032128194896778675061063169168332806026848066314125123772826369905799722401966721746845526478527305249856842037883862146463723898506092172678053031632565528399835047593297264937804066785136614134462382479293126924495914070566400394854532864937021583324925500708788024992781932690404500012876833174305432555699962477740857692181030631115893801068349528634110657660199443897706459952926536447927439731162111897066752401538350570180631538519967654526771545563610727936763153759193450458347302474306688455943143672739766308550108152340601176277655707648562188054196656850130737299123161688229256836459076752117704407252118610810743760915545045386381073188087445433384388916404104755325739493689909550887399053638175701381987834622299369216771007427157480145011597443814835625373923807331044527117420971202968430477360241648449560347124955831176699443386662195119867167497190772916151020908828793811878866682500179880619431676674408957396655605588340282745078582317462228929944725472693604243850034631419506807109357330724550792911268592427734984591843050821612545790080356666035949444704521505908598289882327114069483101529097841990104778024066373388924639269630421120252838710947768244947233697280235323422903492614501744340148959322364664748790005717287028554288843461898342136276172730383582610730830539606770667880554394326187030002730615697739989669573140960076812778267223993825557513750050405191818612934026098504320511397742285430527668047113531745958743822580026967558736865255250875570674022584634334764341458991611335784765422149027285203853670403698212389699240172287221975776508424804284100515082097012967230467445586706235240870284071712927766695197613842828006385846975461239779159625240104679732746236740685080433074648947987792339879693512006128432013729070841678120855355931049911261742288603694217069077825084196297496106686783264187898580784389237451739702695925536664301731608608479181772338385042009257247709229956285587712527129402734598684286623193962911423436757774019342967583700273870979711121589077534739657746103779764916437069748900862895570722053710002296268662997770149165329195419819373739985563014590068483656613636728878399713469856216471534307783226512391935173332662916922462977423741654535006796460024806984981471097469476834312541678015734768364117871791850507629492537286683503285991906268198160031334230300395505122102142567069911121493989630508278607156278005020992852296205495834022273353585710963869584267495882213170983639465945673846203188785978613789716974689494610212387684691160227721476066450434200456900845736938270281888199249915325667498686354965609397858549990702544292296177762574097794995386315089831161490864983903390198690994798421171866102837757063109766277000295377302804403558736601234654110406836092095161757482631858218811105834555076128453817184561851421290954846891377354846242965922483845093069274335107459336369056512120433876007117015414132610148101279624800254644127318070556051626514527518777171831917378604274948590801417710436166383960795066589592024019783136067586399780373763259460865124893509288871253599040135932908318347290801334537737184561393955022715443456806786778406236408937470305602214409106992904594247019420776047650210648377234001956104984912269720337045351342466090431699836684296152664634133918909217473511145235763410544136007451424372938208436069600196439765505601852499700259415019932700678473714438364459392205232038775166702986405190382017019638899399388698446562221956246032346454902728051008825127491862796557722338891021833603428354731565384803885301483243008067801941409649440204546569651734580301787099107441671991041103305142211079801652899566155749914020401026726048220518677851102196972417097872802928155450581300138152859895820755030629014991139930534311467230943552915590401735377704686264970489188744807827671036963852796189061636102754679885461835704612540112026216626182644758100521633186357442944253022024851333941705694883888535728293227507061201651119789159980590459680218551720051508601902790945526854458205365014570332344434738924477789448656955166315161654358130963436091049203561624488829117782025558145858977783047155848377465900076039538051680787608635198005216961351275526883143740489828849852574799978122386496309162531887760791762397353631280365237408695846429251653713760943518387886149436122837172169716607834795158669060822365127610850838029692589492688354478399749163533578667949096192598391154726961124927948974009633934970029763851022025525180083602340402612520077983654251437714582767823318745372606377556929700069355279310450237012718588790927132196886136776356448279925400811998891554486730038755517109813093451507038632985955282366547611140532053969594748548307898619680629531904162842159746278970054297638866330671411033023090849604320390447200908767763155839249386904947301815432798827319567133654469086944714028044704828376374060375211398948725354798289109889844837757313315316690180580554441685869964806555613337103025125556406407434132559521438021050570963153932056424669566945980122529945636577884927710604454046550025106445991064746211010130009325803307007209465155930510029200698216860283541470149942833341807164134601496126627203940736257457884376114459906869472577953780067493828699135360391765862235031582112961320067098747751921975219747913921480551394841124419536511400144724050955194674068625900036864083694989571956965619379432241555736877472465539410297665155385283745033482766175777789562283403288821252975685341579847580203404933574820759401963610187670025399687520895695183371628002130747908966304058730535313236530579685312689667150990132162176627796074006761824634960173652864306500414070132286707662796833183205999039792008889487271620472960511706774269389123514102126055756040251624008871780958518826021203864560002446234535440419516471942879677553565336287144110581578435050866217228869015485300335835954221346722672900064239033041436543182471069378688898229471031181334482295626982034662248319652310659398415415669963709848073292452306492285904159195692486483249747783722663675416603462300378637696208244613321824565863687841075960554264334445704599076195326349724211326519747494883083403600389255036816028605479718792023296472849156368376604465475880315684515621336159127198622889367197617976291082470793970462017772517381701587145212614090029314930251126866032194329868679429935667283842172963921180397280277616296379688260775751465064134519877331034334423361235613455225157037256451495607914957597199274446181636937966634233026892265990730798295594051856796197515119483261559647771039300975066030909496881173910551004811240569215842918192989993256588499934285496204907423509095326388749126799330797854276235848668232969273216870015471801995273098507329392936496573144341346398725657073285328286571348547572866098016299973562844843342452566618977633305504720293181562551791936375334924267648808140040996654762389398640465351213690610630813711966424773124808185512328426834584300811720459855652483660082278887688302435443038917548225864403095553928452780361616165897648165133535893250575701459595645571126725729573120990800216525600417437240398563343213317129739471497021600508100571854457173050942148246234193094449249091763615621423396291891455872396054470261191916449446474021440236181330738870847757097207769305747613550364255830713928131664914546784975232498994638100258721141841640363894621526645343361066619886543475817536323809707147540955490695062000649772987633825230843112926581510586079380638396648833342908350339803457681355456924305474480258225859357846805813783024557192790761852954249937726614195636712582232370783157021646553429198121522255840548727718029415172270317562349735837939433866973991319197957664591906647427738893808536383254874867487816367777813335046586200229361631627194010303126456758750616778530289565071131049380047505903861473236353697281727883653790872967919549637966638704135009967017382756388837525724233311438363292388582979377399675494229631448468270794143980789028413363482497710540151216096479779371890816841232086245541956240635296226475288564934189259634485345345694860325093797792965434756896259279735714597479030417990300211789752665217344670736761338076415001449369325029674186613660766975076256012520074643766663052525000831175348178037551336797722264061802837844984345701845616039508881703987658700815042232411899776761650917070025666473429683292353007198552325973605904582485765873550980295677363063255976512718039730893546986253654898567973479663641669220476061037392592484342719280443524938897867696756286997035530636876029712176650353498295780662801153621739489636661049641636134157634910820952202096156274290205591583478662546321583783439455688469427292958400362918861503567919121616581517320190719984346142408977814893302094086218353802538564530827855035620637212051436583787358020276933191818499548429487690803909312377435915889480142244645806297833533936421638440520669112664506159871412981588364020021524584949007412458741113898204963247306764480457900664593722193359097459702143428623071839121947494029922657530586038796188478588986740453736048525575068113249331228485486407361398632276711019862172215091969480440244218562643676386638356100689615964742061960537090057856021153504815621652251192572704817155137111585186800848190851396563506987526112587009408233983254141185000734816581597488499445142548472214259784901208743242567671722102579012259678793495726478155570064237452731586824761502534507595123533440348526273614493895344012223046586062149782930538971576474895210557823212789367075288181682669914227844730300370285596942924746501281443933800534119436606094833057060133841718426023198809587372100214472062992627927543336736157005292526574631250270087003689798483588495385210717605114420539014868991977071576677924605866781179298159373490313433164907816320052698235470469332598660371135628737123444387095123647994065942708567488250334141185702963977021508492557641210805002649942495781248212711422686711038833674038208545180587514799733417864345864653851083280907796329725739627705161143213297277377415730231342997808217335100928059667636030911107970865360743600273328698017925011067628646446200046028388494473043563471585055087599888141505484986628485092447571060783997605863204565517340285943998787457708328052626459378158528861890433452351969583868207801304238360617433168315141698523589975090391339224920438303118635475876378017153754237728146410463114710490528165047136967756138055425355706388227282309176015523354183736310183380083049850191779616743479489825509183301144942644517554968341664198225975019060516782679457343485120718178378524658443656574078677045310036874646485893500116533878110388341957277852739745084037344033509035331386855772542193683654887307506355303944022911859747349041351211856083098257902870632458927116200884278902974598262925206807867910790019505597595681906237284078255983676883454423801160490136690244735753083909723761726085932779522875032463705978209565554801162961248473800180300020111054209602139585244579906055497416863252956611420580486896122010764468199543174527054844551387811152503243507256604216633804545676257897696966399104836454423914965725323619151411306103584870577699221566436319494264007386179159275512925956591735027034946824722026741838655140357450541892729642841768423925679343618006795199765498672549619364363160817518746884061647687754016038498683733549073220227757067742191971420867974005703368186456596588590441570940145265943175722489871009226826720784208682328243108907056872247120084946594131382121144472869022220521293048092965109074959058897127894461957749990115965324704322111889616460797986607465834966773092676871920580518815833761538877301262959767428450288394567343700036275031578428093469214153449208233460301412635888690651451623397557751624825305922739309829871950497227392127877679580689868613458349380042605041318567765634401236743231098315511191012186542744457152697223563005490081890894976734336852727256779086886182005606314093539057941023836242980576973163385960134464922227278198562358500028661268838991211480630717635061291949172521350762170261735891905214233746730427816960452024405941719535054120860068056719689469023907316630279433911998521337120067014157475766214165770651584261648455873880642544521783415256259908755170184509744637846691009782584759258151339945134020894163846429700357662360748860555652208716416703044948239969521277032866689077147432688506674706461322410778917513649353890751782262079899118321291396701596783664328953454524709308230491298553007046349413363411723444974279471789801307965083721061869889239961959129443401445107315825258272073624234606591826490431479099657329443600394063654042358113945390298993972269879799140939892131342689859116195705093679358380002673891046024855322633059736692100139439562598194871175993349560457017306381719484529266744170866763407333405193198682886603748989137173713902442641548259237248379159988016584308016646507104495708333138241332066099232192317791549191279109690905269000951317065858961005311225683244305345872434704079957443893565490744302563038257696410386548776213258541072616009617404784344008493238615159113733130727860974334444675031619422243155487682998499794895697641005983326622813390600291556520031168717207385569946308321596298671017486670854578020259927529764182455994630262398470590067433018683948676634283678550428160785131349924966462127311873333192926075734775700865364221289208543620490747476808087509452474434843832292217371028011652117667712165325564530780087057088279220183287669701175039749040138153679827751922647412072547656928924743727353847921348558773876520443087353125642471455626681394919078255404768329564369267664987508536917632612072108639761449704971412529031552149185500419961576498823489624169392325338985011930784121914114547580685987516396251087625399835731053417175227924303286308172678139542651796264396989062141027881709741969138492827781052204151461574289441386969538672087153636989942455879525566556088638614193261122459883449887407184583247547248032547576546147680567056467315032801305736237612102928134911175769584378521248632292037143645706484212009988552672235726830093691451593041070116390654432840124502022182455761769000930882321428686625478294418772433066166827879607722950301444973146176931064880229007401706738706229925665134681608762913557784181594252089239209134786985406545173264376958960645812178977814078339934964631086065263415839360721471778699536012465231091929607617732772897338193220963041723894498784646284216726846493341911455615424375184139736569822982419853526372333964493928694724722939361849827659184185547943196311929981728222647142435852916593835753336031325746738728011952850464488041352590438400098050055811305375289806251271287285181666934180153759063253867074274074361343645940010846811072994423263533426068983662537840012252401538254970809454324727729673287808857384441469783611842751446441108650942617091989485658253904036981185169847164321945683121164869103360081572984999827307501938240125769737015013267379836238066457447921184884314235343676064846328553673974897178174121365958332691984943989572510463783851917861829365199889161855182548454476402257972197604768790650274051478842398265948294056249580547230095015889760081650938993171532396003102977892100989954580276405605283843311712235223791363357227171848916473722142531506461117549960833749716088211753666083732145846403586288703584313314633190312603478636714687335085728964130706707128340199175203088807562585185411246493051102077877634664541414013227283696071413816749505998661896560869245337248182159991779005365218118282505041320893749418946658859247405325220153999271223240210948352378181617500098862065429741703029959513951590685062557666286859810042127836172539592680407271941768387938047542023433568507864123704155318663283206056657629426471284549403034351452163595758177469685115431823937942722742336463615219112173378673260143412041967821417837166912215566503047124795588546686899663358518537818645893206342159124452685362374747662191445617245809761726612100709327450013281359367690022083326203520199477761894462499974418811548577943376423898542554424135928075294881934480606244080952802750516615002959024303574925503191215657507362059546409707450024534704146523916274170156684972821432243196048149343232190663351473851581698009978340408768411219736804938835657271475801468594859978432435230651355723122590781308936787609684862395239702211256788934189310718483234772111371642558280231542922562030291352597432404421522251776845846100925120114880746593333945752546027578960588873573927295578782750154058446731504426974186953647112021536182014481696540840348288058174954100224035293305748244880472773942173032853374350012651226984514058164220266875245849751974958769848404091306777380861256557815154340680984226708883017252056395162624940598262717007708038831122633972231036543385378011310758582087396438994918163800829813094424766345898563362008854712159117664395575487617289217187273316174225863526562053159526625465998771185799049391424092013887266551740351045288124713323570756531365826823971055482432001719586400303436394174777996724628007833485111557302787917071181904335213973660704504380354981907216664960090962469906670508554079937517405551572412983858528203268809809684671898310139767124255536890166125457977155293644469378534912613164922952301776696580044570216092923744212953614259400592655374954406770125441953414072198872335118441765437877070517063615206814570231641427006603623801502955412165319105489508218326199502054017048845580399269948854559294850957590754075157139245825658306384726201623826073713033967683246319707389240191366655679304834279881048607347218186908136488793977343616472549831547153090229915997455728282293991589249651647033977919408495145345222529191765513054307992172826167366466242957071545172888711418981405495839905288453740398149000611651581207650633061184596319410194637787658400616670846971139152869888780699248180295197310874702216366039186112748848867552439158271301109050140365193883546621727854054662456312547005753891301452564232016073782867681945878385314013168506480966528421064223928545277455604871592330055928491826468177526303673190481707194906282884308694542658993619984919164749054711983614079488117341576551480971533012009021804080336359910194850515027640828648094579170413511269083871356315198694555419462353528472197291533068548798677422333081519613706890441839674260678436210887222406208249498039384593144584259715666147451246689031990861182503204513230948156485158297250421207977694462023141534538259213622481135068704580366337693743102239984165549656169879047637521923405535090506189348343078367165758760324350977524678842799469720665205596862730462227560254309347036615987030111333605601636350302528666046262379788724932988748529761772770940884789681254552559198297012647664172632344045289667464717980350272693394134071004438706699861774594230046172686783064322056610982040941177672633593747274958494320590880490410655090568612340053689775305670005812241523093470818477128354899575272497099683800913050828663092145933929451610470186426574043882648245683103763482001039513787976358953669571200510508825060810883862453020087075693443838540433626735712690643159357586376477559013719291863409365958757289733753667435543381694048105896345058754233685513834257412088153126340549625613276287094548522884414934171734145549229546490289297900863775080217544832987729912944791964861151291056325912850332352559283697680145192512561320995683697132993058530634286633903514395898850007877813828821040897557017928329140768186887907509492418633137480626237715082911969237790535447676658471160358750286332973742266869385767850897378119392549771460903915442182022136246948593677414739667059122117886530553504344251042994318639015535361040789434874270854210689045027995065290616979208907540202212604707138615532637214083667246066850247050105469098903329110246171960164441962134363167832971367022292505310842590266020540935193641813814213409098149329898693210983416518182954439199079785791956083125539087642088138574470586436431452797824817660743766894671268255669664621271653824142042366806623756568701230358984049746352687344316583474823458015163947290362656986047820285959772120598336563980109903946592909134788213738706137324420934158624668252782656218092237714359329984685936070958281866981762866409625307310390172979565080837461285334712791285686431219555369379992871280474863841455896074276505173010914917720488230975977671690990937910754390725841556322968695599936453932100724477102398037690747029266750486350742496854775117380389800054817933623211416139641228478076205687986700389106967862009862265708494570739235308765742191698643320219145099990964954972209274079942714460867797835675933107932911516329944440216847092359490770655652186462283797380606110278715062738604199392428187702085229706369941160174683486201024756155143311062919605494338102215607236102922679898307017481149847174904048775439677224885345463451047216440987493216585021402085566737639825113614812202664592218929294346367632581449001595188254979417433145611011582711976005698931590144545750932649520991445734783116735219412277219929889814081774573863204375749493849451177023498273946429102804031381128839044219694788414157768466308660281285626498613082536206246435700061832699645679375707880833420847710968349507113266637274006820641155978981832853769908998539897548657640869793483020469991940189370512841849807194622386068851283896997520194558081340222855211572066969250394837952039489599043666624308054877982706124562222162602707110224987354377496297458931229563325932408977611608294730565346701665596191086533681330913746466390984544530157269039566015947221980592236041390626718111894486607149810915621315571596764944304678439384438115173742748102457194951767406410575635292363581808056998195090987312888291397459867263942246565225399143236090887571211606112892054684342619508720489783147392838752492296904749874942099785350405744641832529251105081471453126663848848652778761109542598947153365807032858734504861196737539534464821970191645159569985122480375330880721104198426223798577839180576204150062560590591432844909054178662421834862444807117881404565842844008252851193873941634345587859227864638642391303103560758118366012958587253893622170133547867172366630657018327019919252178154273260359076528875490186261106306654693475321027714815462414833526930986510622199115982203881482565215922109634517663790134016495508292506787406321741861238547563659462022469679675509688866735759754494907338479832863086180990393949081384177581611058201106048763056695209221407681681150264216552577669528603404230258581034032929797503220198920366401284087722064957131285930745871436642239051156403269679726742127036056990666218646650644198624987720780273621049871277883640888729736572058305567345867567163423191881744588665155438063892144829000008148578407774191926090175965530595285492102279808839992436228468731477629067860369469220847599041011871210147659120699105462779350966871369620383845747086303333635022234013079264445745112492492501963844173870543839907722347320975030231907620909939336043879238369183882140710943925950183731803502840469075867823041500750933628821739932440016066295746626473151830251999870606476371778984122035607261883840345404455737014647520397525600105460971944570239342381382337440889545933883511964838579241371106955562477687491456272902298859248797055963572872995978216053636403364758483779646909272469994734131109553898284779241509157275557653184783419768410385551426671184262732003529366900535307779724910141659071382156196022514129215535297691501711666338887764223758691359391980739306397736638623394381995763312315532091832438640407766244722970039955978306208523572227618456632084318749423669320504106561274883610204273249268226372936664052210646496591948939144504972478828423765297231078257278540505803807852051462782604359437207887339709868410062010659232826677789561270553438172424741253270129936103558960235836552045984528435992107582306330873775870382170827357079040691368065786589151788323135310784458703564157751348732096641423525767840737359929429963937750327397235051981867464478698517684320501952974312787708760621981677943048207121836350640308857456397413376517971293864251920489130900727915858166447983610907998030342018332190077020231658912258790030387792263525968134155386001842235391643293534544464373966205855059744905558464614371722920699796390716609558557779863255454578930846226932282144187712998060231117986708845666651972014974907871688925765346814970355009809815513677397303911380611008228396448891816529129204564338943989464089492788906382207597967261575417785371156516988429210918199543098547503956208790922283460154876437719776686433819441000559531248595553955711990985598553000251241378763358438325332693759584495263786112417525900145216970951687800135223628522771914280634154586810678345761946020130705012262280150069226616136018463883072139359505759687315158260910099013529229237752763870062013388265113545339052959678591419310231780570112051792979029749182900399840515982585178986173474587074562045970298672061677159973213663968092696229677715633279524891888519879200448866046862272646665489614764443527970360392455917839331718392792832634247559739251800247817114446676397269631383169523248854256028601836057912651016565443146702883164344215041169190530942068147822762390170511523197871197916920651482502619816126728907203302417850814602072944781968168287625591502231829702022581198595640865964640315150947945410987667178397982744667079025642696730523900398239061951867583056942752174556071638595991160135210926102983947664666056857602203802632931252674570972917281502117088152172750117297147656150443284010569360754854621042719019399058387661185940747061244942530540258921107856354052013321762888919770921672557896852891439206998342198277028145789333944325693145651716891020335813335874123264546001274543067660067919573275928939360404178328042683042508199318875317743345552842363027152084428652071171887035515246036130009582590835744734343470769352905766579878001372838098748091108905523644909722139012287910317495934294649663842532187893819491350458375651489432812475007290926811994670392553108949202926371124134657064570405227702208522440123641870139889571865825195851372069647537329818726909759626891749015507286516877359685042509161296866039803592476800345862007658709364390657740640959206775021874687963452035137029085313819949641509049178154071204308034683548619342427465032695896405085124725958405035272608472504089153391553974397342786858676910214783675949724676132479432089053602238541860727766450336205881644066416675606595681287235377243442379098270491015159095819569710134591013928281052502611566596155489973607919893257872498876770378980735434773879653452040201469056029364032428098995690062251459219070594909163656397500703807562154942943858651520794697973527560374437115490716893883828706248700639604168655431108430647585248890243531491352956671612708309030231051639098704031091461457131781473925772580853807776841658461438110238860464583373989649561742181144823939215483700044544080550860869791758569089412145187544156967242833864789036774962934850342857995256009917220378844051983679553452345171728059447173580453282403550064581775624134410833035736687460555039030652005752184461841952362193810261928524025964467365094588771474504196005798075756626236810454668367534977217242902081058417350693440747071845371832404538885958851400547063792552761760402379767549861960097338735269368117588540373981091656362103560979882156174772906232066472163254345547329901582608050132517641324170378823386940396154562540169637881201667878096658299483239496658481611747892145059192351804505804936447943775311580183610831434865193072153342691136628839318318152201560767576330930802422853344763266790272085709583596222679670535570555254385434037814874817961832698097357220993694039824211958454927536426214517168821316379130643119102644226355217060788363719549961395098371513478402286557454124963996511952947710625657278026884175844407461564464848223057518977136363504342472467702024622632977456223351758468493613377253298032306168589447299866940161398509233779219370126841276080477392279240943289561392628465892837446405551785294541019391479931147787740029515137247014910514827222255604092061082675711440870953559582132704838412660742280814647894634761218698926123455061371790729319373105791153628206320172611695800334506304541851425495553665837579946894629146059846636872657214484433622990285456478870052522257335599055407265362902817751764799927729443248506233318499896974805647786495011929422124757461917941255093201693277077958488462969712567042857941655028882917085824837296622466144959689356352545986051497493503815025443055165463032276881528768523843570263874329024990868574474489258547682962696536977321872668900669850079035200403964522606760605985657037921771988029105053664923146794871437960436189265202556035384599605286775392692599148113939531326653525848389784289136862490511911749919250722062438720866151923929857924604533210291246770530623288981245004264897941871203824855277880170017063460035141346716571239334818080993447515504074902348683324805122564687087889840311099722901577889124198766385898321683184953775704718631703253053144622208748905010095469647105689426542905859104968062500386220167667272665374399956010393668156920379451436346701215177948306342062782163260953451125945191384413265551877319397550622082443248794414953050821521380812804534985035540058401439741695072119736615881239981015544303859828123303679378771150574262086144174466448452980566560101170064953843654510996427861407884012996415279683670269456895517633113728388779879993355976586346087046713492783666025118283143234992548765687409965298864821984537153339013812980194993405562522427096425802695469593305817664220140539472467569915601013202640603215735597470472237460072457389541072538029763958519375039175857563676610228352836358265095264601431114642231175280974896669058669318911077498357555139776246574890729708454085379294002088605230482486268071199644758408158134865357993223484680438178946199434419117168245318684820763231022332448557301665283831927049252324836916974219067884161230426022945518080435002412068495746766178997281182546526671340062196233656424019996576615022933001159290454647663271059872276005679883884604926863772103635635116300962430576543663010704959449217041158725529233802669088576761796502730180772004103551269642767022434622439532008077264700514548656336316745317993919832289619453765629001438639777620390061113541011442334844986743787653245123566957067432300174936666834945135056137576015059646099328115673374006905433555513249990105094508581808879505424014026265613865351102203742432178769052655423509472860877129526399076487009619114690442066935626245717936475221867834471221412979426954180832754779407618997329107412456012707116734924417826965583554652394509431943320819359370578602970204605885450182349585575003894236829551850806983928494177697567700076781134320282301970588399344228919388898461452315955083058786401727037871370056685600995059402982016211065291392142745009681874816638278426828682873492045636675735045289074256815672620393868239174612633282285560428907637333432961243737188385059192897108215339371845327669155102921546592941937717907737292843450135631462667265419716940821021316072270123632319525696906662189020521071554071790519948063862356169697692795777941292736820457332766062944412818964099460838206198465996534818171013277768212787766274186697747247607692816037560305278973879161211692818812380954935455549455660652398236263300716649260946514717264235420209606151023415862398371426516299866154343308651102786471200791375818534386145440446617183016150513508160297433882988256197579978802317199266567513857441467493642511766842479027897405383177072092759316316894193584931340036561741651657673144043468902125090935358293422640863965214361493617674464894146053651928301983910360419168758768187784758310986802760098436178093713009938842171799423427464993006701937017596752810019558247871281773847619537332835351306852592871527293787929328500651265581578280503828879813108923772293588732264934173916619846216904368437717422846026713852927147508187938562420961493930923234133949929174881061217361316890765062193385094437435822949824832781896280495902097448180046745133286812690473515605147666297177773328969032595232588308445327143076768339864128265768085835975848463466742647763819018543672718698399077907413995491578945877527776734172070446828395155553960602969895375225010911003542321381691951930998447749614708616487675305253635533594203875917344573562497801194187842478226039224679643048087726179126101488391946481504822723459099207411440080559643606375908886001490334794520100034324057126053671025504327402639262880742280748958349934282260211118170057280189619737939410699367019108877222515233426398378584027999509971875566635057638229518886074711461636751043710934503999481067044088060132551631863801183493402967525190446283494185513744019647610646019446234424434031994855852203620665002512593119747663380998671507991137818277413541281243768781865800536195207991039084910928617232045786421026335709244675039045440478454952089000763422747515571720336149602735418447962010646391167483046634060071261756391209450125223302424537112857469526145350373436428719856518810694854622044862183084138406136742997906737351496854019581397911185499996264986628228479407433782587225268929340510609226753614211303398784500098453633469192410383191450747349329382058298888903475470760675493166297287806226508670703811387579289928526943133221340031178324679125833386787703697600310097110198953602405118764055406070811071268016417852101454733694754852622568001769306632244570848591576727033372341640161795568367592159919209883838408152320447074981841033164908833969204735416344579494103342267823351361829582489327931840935075065496910791830132163471066708309048899274834639524761585322237494040038676203493534701831806645360372644269769060950776787954424084125858218686662672639675611360049503588934867821187407769108179382708155211501696176303211433587614490233210571245160255982084861215932761284083991180045015281980979945901316030742855810950185589500951585925089090144238955050557492996490767925798750235920076064088459561001700288579850871727509819766815165971246498324473687322646656330673723907427812564103387985316911697580065630501934849661794339133098963874073297602385812097817403631863854904490752723462269877783107722605590395899113707676648611064065517326401540010261073448774708319152324471750064449778689079802808094678393219563373869086992291233929463916434335515878941504440182393755170903130122274987750695135228689926149611390960565673699559168217989241395994418996286209135072409077935210698236505078965689476845081090668290216125414139081687808283717638633586989585897267078449870553118023597815974932383184939820306965146725047063853556722731417178706198883699821712206068151089332915971612222769547559316341871350259481058442582867621840879644306142209537972669202371092399983922672949001307738249842509847593418555093904775491591658855426195753545203515192034191323931229109831049827050982232963262113891036376867977574281578195360130659975481921250712684405264319759375682352117142797407272667901258690931281710057582189263261394079602828005535630783884617926326618643915747462266850209083987646585157684211195296845033890876618232037602872805357477577034384072424803640228854608520379309754843989386071001626821202558133760785920638616716053290657021570090827283384498263071050258583906861620034951644323509338824284852633666911961087428462613057817357103164379109029802471616876478821506784906162635019225949048039860459635255295805582683460366271913203679342667566500843876214230699445037403318232921093328923973722419691194354328256721928560054542047946081096429780319247113134980281161835329257675963068971745070589535268555414267774548227406554205940484237903274825823712195881380452131432874532323133672570940856092673537703145358460932354934517461194592074178110770391766355668932861042470173876742219951958560063116395184811179344900971850124308670548195735734719623392464106863459008845084317517408731346402578249980167188938154834801696095428003919210575825755119489297340962135253665213955817047112330147958414971921171221329804705501295433491787133526211038482105602606838580673232284628529548045202119474568812238716269562821320553164521389345990501772310834952308297506847805137444701983079507921622439775371896536945369601590788994547921589083023775072069672050044069380840415871013355533926719653924704670085162863063287184246186527356640159031704433273679464307272846339652662973864996804395516028806262836987409024245910139660996682869397619270700971941931967523001573748861938365679665838788267765311295426831432832827050152863437579147133406710332949564519820817564258720409825230382412132841549204120059842558816825244883121203086460759167978574507260894312774167095096117130490701516555510362481833437227008638247489728169104626629701711467265850259255392106136631935298911244797208928844419806933148933174692093953006721501911055139383108994314443673627390174466258180995085226933600943316930555201491930236722736733568907885452150920462080416915182164391592414460465636876920039982186100139652913416521825669652271798723071250290187708001168572894329289176643596511045174577308935453002756037875398927799571259646822404485116591416253414954807167374017540879530713418376312999428438019972887128126068227977546217360791842328730845164724762652705719649050162949620001817891419366506820963613310283569853746319113634122854997801326327180137443757392061403366827360714761860642899427973425168302622982569408632189953161197277870398349943273784745988181122941765746909331872567786629348132345366692475483255113218282918945065673044333931990537853026080786337853371441621462674576481347115992461554365416981080774832022379821341860422215297184200518956217110378005708387063618813463810801331847893643527050591074046195220903299056428322030570361362037085315170006669004429286921691210422755922140793297474600732563350174350024175779488591499028994860010611419202857712372140267100499950687515698017291973369798118041923984887295047849596582161481267157790314440631901676496056581962676409291895423217337648827565128134801886631397333405396857919394607911467942534386680692348904859905535408263980919525321872557078903330176314841243147004994125728487789294628644245616645528488861306268686771868339283223220898723064281404766069265140497304902843702755843841279344281309680302559330708017942919726287465948189233866074367327329698115946836407692562240597087688556428844794472129639803238955319618439543316289858074991379890396885551398917441625192308265616792028181089826089596833787387599758196090228078627904143517871599737884853583885994162972161009196178391397956792208535264520313750178972190069030466191851765017373158069048055068529945595670273642231113146206540216924741918518510148947089757000146298840159854652082953371511819639965881993831722445208203071800885951416754384412447748580094480632551652765543068140170165224098437480929861022773944161357154178214701468783297069212664832703798865719668869775942944972229553478080808021423665834001760721132232511231500280154473244813995486492674878378131812185404243055851306094729774316178736413951546525187136723176731620154797341042565852832158508264986264230935973578816181729070502138302883575999559244703120705008559696646925839611276444688416313446152151355067980857781952861342271102451383469771743002622011816285369506841270163994636187515902165589295336346424096436004077315025792577112758749072574262626838658408104497136561712763609372535346204620800199420520418161126152614108574367529492642328254557977321796768729166997524770047913331567711803882073729732839553078525594062287291568777331559020351384594412063781208170540725246791656800015340217163226124117106313378868900431168021068180899450147420371181441539949372793157141119071160940379838294532682397423261386938655409128388427221015640401521382090080267901726134126632721397904679189408377986767804993873247024730687503415194307598886144474197773130114939170831513387234942995012392913990942639203001457911989902837958451989451164497133809798605227533460723370147749823910384257426998008574280194685640118700827399189206821420105001211596722852727358657013223353302855243029807672809155385547867909714433714148477152805557124310706839939320935853317277379116785034271160978829374874697644622301241388552629661335669266126754778064274705118623680088469982096708431754836981230611332733476695287940200127629604967914349861440218470740118709595505857170520711845582202953706211398595270635695489698163565201628875727139981253663193763389798206583731372233501490299685821593021711203018813890458589232213667864090146963366310855603865991507306560057652625825855788674009622008804371764959765768664722474937158327045274438041553272019128337504687054879833380979543476775748070110180859378133790727506278599082793435751611758439796411886660820313910547100732074168229798505848458347150256612879474960048347080187267350627790835125233295644964813475323663696819474415226886968240651869723809682736389056180779301725478321580539232020682938919212805291586493011593640218405911596100133847245764886556573172274742496872637631000926095188307221227705384996829847621379123075654729114817826552866285918366355190780457115958256064114705962509501188433858408599279933648963260064548030253745551274069359173799355823771830288822116612676157876723543032110745907121339157933779668148895870598170980385418117362873060238545358506178114181326803520484870101748014516987714441082802750269131485141066745496022730623127257200597602178048325467691746774498968452832218205492183835727048258345568784166190815347011355474808834705518224100837503016807919442405289735074001944063113644497943974245416120581091523412530931199157364516228068132934284350524408461770035065704265402632097230445073401762029505803633793680394064277190179055062380356663864557072349329144518612123931255835437462732829550526833394573737696194445470693691595187767483417656340842605038106756026959965494861860331944746782682062305859385997484967205559455588649913335729920966004180735440135598359629172831169676825256531777838559078230346602871448397396379921574815193541949034266463065200187366739143641356666433336461482374200772069439535210145531645190586439766001455542292669454531815741656658114955646193039985826097669538148111425655682833851915195347894972117080245576102977638250261137527857134438503884187410173172337908782803491005330886641975458386785928792675882368769338443441415675292275138806932048072249997928630026278205691408890252949090429679017274583767192821630546646433323910364274355407946528629954898084991162098180430614272877743227076040471681893600446838012650557077549648128051821760047008669749491317842558993990545319450070562821522037151925456939690734675977851324704842448192705691413666018254180075417508437467935465500877180540448831288089354269146669914123814387600406304885488276527898867137378638381747303165145064843740298697621226793290139837669673792971522213530726977221692297466015618303729416215066310675277070714787825556432944492537641343253826361207659783219394729809234301917059879821106813715465121263131588587097487745365381293920333826576645296641029057347823834539306691593638510570483898149750368306408887614648663998382423833061940935207499618376437629057304708816086768497012630066560936085594932749788806957492151708405478382666034251827967175183287365436861675302016038168876058659610613496331757591498255562249570219284022980945371653239408663976153231487083119027088409602349766004623963644024534789161343815616015956086600409200084771899345661161271317757593262061460377436227241378239453731821944220949228930790915902291553906391228769758484584058951706768996940731545034933735049868930804857674016772460098137088614239488055000914538235733878496816209504898133796090536069157406468595912977970295349221526258338001751079832415980781076572242808677368757816114659117405396642513698803130669964979079216900676182373583825778308565072563013765171571509153247758475478218224863430684086476582036014483408429494126968069108435815981906296485830198525438491627045870889843558606463305806459141770043089035302835885341600879456636861049307006353926365669612550288830407704661011828195466789795745488603109553295667361468192360236928954695590234884787339233020407099946574141208689176468231889058806845592023967183139983533651765883372506706584907536134345715096117322591218768703454615077253771235968812870545327426780124249116385997607366761928685251409894555782442405231100538565079144569715868187571055406877069928088678476368161758099874548842299516131994319523756509556024625548562181301158500991088424192945881715781643105171228044352544713763412826678064905482924156549976768218503696664246269116641779950292757812422476218029182834350802827926411853267013859113400627238123958173314270320551945175409597479568939703860832303528033185103710627126640007851062684810653047869968714113607839219182789770268619516907103183279966716862965723793808271433197143017856704651375997712198677351967927736003798226592225106691200384036219018051442528855355985929813025918739264589396523766690706513715324067648698891054268267143002281838282385855904165608087235568248868134567141661735494932510932276695540104330242864018938629859675178459838357445716565539074674539802823125525461771889261147755372814563379429857525199050324474003543633720078050384199152292112225574616650739744845136940447422711413642338929932010317995023717438780683614913929333567327760543633876946645093458932147075782685105459319640729071429921233158148961199211606966545568976515313557364057325374110695235022141215907458951818201771080912112207831578621369364246498071490079622203487012820305253288459099649427873226943991075193617131417275482633557859562105216139774731957673701262069622479210708733136415419052628568713002559325258426296168190130174372685647533206576325326615935788925101875250852615092288645347275844316412584976623466037015603420669778867680706898832491826240551453252500181197832971265598120640686196276722259120792231636530128928547361259720732076006583942954629295172781202069318030934794003237122632393974917319579940834920921817866157377483460571000030692158406618390968722916867151414557880641736676288166283350507532092942453823089196749052099267428823495034690714574032947511822185836867746673841761969184842550403046405665486662223116931343988069931340599775134739004967293828084691124097358230340127456203054019734719368806821706629428525013385842320603897086805779367532601485674809260419183723624433448203135729607562228083157105860112852920399458546416479840260762659556625568678523080687693255986536205029348056568763177483579889477058456293320791244159600542081751859396629408186237465532261473843516478545396853709018076251157841016081869238118585331473539422091880373251429281623057779133782480424706524029973667742186066375551333415113699910550181279136869342600920287598418214129912794961120802176170402443963379506435457939697313126983425782464956310825243409106511884805961574026148537883315853780963599644148010327251690226975943265912004400513848891584339976445494249940102579572752235415228103072062440702686738207200767989498618347060258057619764962322829705396982712662649681814246902767488245475509841160744876569926900960303262724162655116603045115833889839253608736979823946339937230119077032667804671911548735314408373178015124387420946405612872699199262171959541028639776037580431350462225496455264841574770852024305600805064981274206690564777555476502951660443574892410877910530717676533537604149823706377306810487291489628167193488163325280862785701435581577520491500911262386667272235457065445654408487164802015027116884837106993322650219631154238591327318948916379744100421470887457319288717373203501999632350376973433817388345856873425310869039921382440235292817401581398465131763797719950597629744502792172220817184288608400222910958592702628999178763945632230711836480715027417482242417539808426147418932692896049463938028785693407047213817861334751446304927485016912632483846705121237420531135010918415196466703632886447011564154735976525001025710141343317801904236351211666524122517229485892411739875724704657508619108786049150437256979732495719588535516284878537313748022711994751382819190588615835455572615720195646752425182848562199264942287763259649300161696321166451185389777156937520945561865006259159699411864549496834955543939212864156777499892903669217039022051404941823221810281431376718360639328757667146391854846663862868282829352431970344744997337029764965804333031091202644798974250849642376074637327280739193680865739097910067074574715361649805545687146019659481488247126490146809439846544763924147831770085896959459834566749036745655459611880021664589635981922244467129176020897424527921918712512886558457901684325245153085096882506333352376504103604706591985012013936072567292557507137775688403647718330820208378334295565032589710825946153810384364298505676099635332177388807837471700419422062939833111491857852440287075831236321354647686967853440915157381239164607521002781942388409105818305180256447644036945588993739564688048548785630653100561847159910664880150248346055881507954364871528231078585477443158306781824714015558730830426954003959855834278499472869306477860984856238184897664292806928129514896789213194640620375676646832213885835662332046314577565703223078974643976933488563683585226034931267927347593291779403237950940088115816036472062516055869007124974492707383376245233884297695795461257442226215542250301452443626564624687685493195623870539266954307336083153457312228428908084626230419217190389745042676464483446724979831325996252061447580152103071873858401569925671606205169282620313419769513032067385872368005699998912033581870749347343853270000655854503071616772110664731054132141340088771221275983906990485845504561935886028824302555249499225802184644065776705844132585765088970227773830479902265984000040227653970094792804114583482624144935853140327698467242713012078656705066034040191882940494757019427829929864813297661135709494358683235090890526892602869250170696895334033498319100087300703353832891312527621821146095531487543705212045711822705975504853493083854356251507780266871084043741761662601798484526472025550266956646807860079411269222091289270073915857331107142748933809636655448510309353761050837419969808274294716347189123472543017235752840734214315395265726786880112638480583081143821289547982080550034310639395848918961434013815747466229217696975935508969059958067355632141070392535291445448317871795752859151803313035050615393223771890183121232843216507254218512124598874063121313999885343816910593692530521215164580588513989386860734208122264257695686402475454132869099406123029867656763150593561694833363627285164524849576627161126724216844120514803132836969700578410473159898115021871406964580974716735478931438631225610725044432781270092419166705285432630076496872483283980794514262429612087873317492523548668717823967305747222108445386103778041208798686956020050296210010514258100949400946625290171731931231725324407525316129198471555318331255265670200276022986896427194894067204066127998580937669013045573356858728623513866687775221011087972532609944400490057093389391010553317877398984256228334803136916530291356376045475778155809443783601885110183543944736315935878747864890180083939005769086562011023382472209528025990253736210739028098004045225810928226751399418504992061347377545515849443654289248916264792075233060947170617724742236369445483618538208115730751920012621683413743955492782227996017329497001208255033959775673875908983847841578951530253802426145547253236271833589808758691370846205861971433323671817686963439408373172530190767093594420694486130994872773308436051323752423171357766713625824767951019607648084696041371598539565720269010475672468882239460323558815991182558508562998040797084984328816931189569397907369264962312112488351511526107096990607359060827626757751338569117929427001152365691323647448274821162498814451613425750590090944558756589577366420866769761466873998730478816787148555280679034683601522067153763030400762449051301912623843085766942910146625494317427086497163100848638738841242598441092106791296438640047520056325856672309995104297061051145922845104220734657010640843757618674588372814705152660867935665549110066289847100018779867198511009622735820899004418312035898010847028075641640171146353460886736758941328353971059621723179321553471274887030634826611522734920680306808114773011542033968836316186916871405443171005733818885637748183048712729728697893578488871771476566176901093054877805492296295841657439998660433067015883597682099291485678283884224775464865277002544927976005453481003823103075090582658554526528862424017953891415439907628520427403694255333553848604175661078424130671237003716794680582793245223636028151267428999127263004264557779700273840423037525896868374377984830469310655059451446052293126624234708789773086893733450996041529243600393470833481378906496884678062101131106557427757968803371784780868859115502417457051728583365205404188899352370397079195835414617640064329109267431731351341076592246927337166324304946631612665386979146239746753207610867785147073041133782255736980044291915661923664938588302732362012430564435136587595030469083264956895326257036003989748739300875406901366481979853294179397854001710737294106629624417758908406331545299013816059977511174535094182327713339879614558809140708736359659222639679358197656414609735053166694422948413073615730549372431013808602997074145397044258595994969211622678565943379185338313536773808832507802651859247595819870366717999684774815988408165683638602753312393854014077297308568151411917491631387125001604268773364899854335051391917021676497836996095916108446353025555381204180053813121686829410254221699144865888654256022803823057608628704608205308456393791640424045756115528825712441435577350426296075877153917902748177436984563352909900231860290093547568411741715478673010845350448245781258652176866066904726860288340766146713135381879427691570995760503673680624660770117156998341952000341051973969117397252023804916948774590208022680360471729636951533628444377980034654925152306541629675541608066807205233451249657974249702562157599819037528441840285171932214295325334428177418016755647053927959889322797240027110495614109595518716227598031077785835456938734750774790404233911880610244027594818869183392100886826902181001300095849423347770282181651266994863846016247005166377238336222688704281850874323083160198204144180854583851618758669678314884095976190680143650955967063893008166230925417896592356285675117154751590500080872473118627852055615558594040725991506331189983337998026891681540250987778929197417066170533080393763528326334584511914268261192473636385399070117649949964281158142056833381839732452570242131720972816119228312948148572135723807597210054095590480845700654837602307040220195416885924589130594502846941643748326291906470833044884935797557799244491689863896841799563183598427405860566240211660625113348663290295380206740504779158633779050436635202754247340346448576020933808911985558641763272926221356130793059105807689980991823164557555398735761301742363715515997567166210113616292622111855331699979184416885005366280900822793620869781552932793762879698949101910297964151729081835592635835134301426746418784015387422755110469748627905750248498920145072042416916067997024207653598606496032817212859254240292928295029159219473397219210834881096075679339774802596287482933476553146755301912160897584547244619856711491481230744462307072206834093223206259539855355196748155073571010233672035441338341730764738723311715137618708386527353074915094830023703055468030837196036880277551587397874536426562097717902823991708346643025827367238958360784681089032670751888409772763410168943555837920449865626053664997792017671849353066865372551060828946345059265035048208599303954731151582281422164331957621154323693199778113264929353956849942357703581693353656698904157913702323288251034856459731184107038897611471448533427800496266146277423175113557322278268927341982655921412938015203597674934156759592868975792609136402512607268986931524179101808531629582508216780267936620878289549557479785360148056011455145163788130465417924482720117528543931903404182913438427712249619221648854842467221370612040358724775594613647215595244680832134661063791453303367153573151080412814551125798778421640549446602303126185076853858476421334747977869018006028019733281881439547909581466701900138921298309625612281752193954056680378152998132300287954515813175028314179649133814777424354730499403965993433939023827205345058727887804383667682288879383357855345398629754550239984967915945376052622951786672227885100309817117097750318627340670092673238018581217341182151330805208265846358493705024010392721553897724822968503089510017502940769920263788812437734537502009329781793232805054708836262930037763480657708142407175588821112911705414010109095703820014994956377237453300281205051995886021981737294205542440287249050558674338348783483547052863157302601827730151832056326014869107277796190042931591325203731930055497403504638296624606117131537389533837501263257804144156879284896025971897257872811868917538689752216634130545975362414649706989126764638650822289635163494125209905352289268896793004601490136715844696745405347551285381753531849740717562124851163311780651382131210181194731309750959025625513450796107092229645578552210760142548925019308858320755330814068789581494860022844590947719992595833102735070553357279186928168413793725870103149668906081059108987810824888278538632233143018680863489985183465149867070553690695803585417712321057952539574066981562940299772767615393690745421202020784184354946208642044688937734579582019907839949353496492447535300281414087203000607503519561753780244714194391394298230768600743465583018127131867601123660394361685068468413319194934135655760594552301228402465328323562437122158429382021854942003349676827555127726284406610800200117327168129679704864833345794302583156414800514565756929502236373969358283896519614364622679924667344142565987600978188844810999552405496853135300670527172382128379261653417779171364089288649143651746538696915178525331046356983100281663105661008796300915949848952817092769071115173553526807864998195596190055939430956239528872474484145523940306945971598278035747729058459939378302595579878815709214847921894692404313589418395324925410521859980931080498156777368342316188877705766027337192488770373788921315512084864881345445336400883877368991204908549696209544344873804079850393458897251785030043254507629845180607906084868447511349160028606412383390895486360252032385568993609654477244405304337289781379349035919865930508916491340084864693202786989924838458158532524305005420501456186069048373944362065751115142675343408402663923758816155514281148379571798040877916559195783807474748091730062372137963603216466254056784311673178962275086150670387861930896832733417794315126666527719291062468999717094851443340783000405669177547019066858796766320888941449296707016645274492976606570609803030082985183555421701360393374264209267591020828759936695048128821618971259388397977825298098425181212634769326944218579129355534744356746650427329544689911586990539771664553726958344763424948935696378548519522613812904904040023958218359569531871233665291006358928864214710025473673212233696421573966005259834795761551326012261476538908640773254376486216021069490083975686477039464534048730566189111178720915560459990933669017321435121173422431821719474120678371051815495074208567140163031569808978102147095908674456203837505884241814527954607537939021143978814007466892851963059766761555581066580300418830155438447332774466446595177750677773973761814234421511966580619954483272838667764581544921626771972388300990689211624144842690418483864520842128366002099569326164005040261477543782012946601673116720847412137910808557757492991435392838588720410089899308024867987260826250089376587604695485467847055592775650396442290321440148425130691675498582418074764935401382329345657885611283069493794509423530246191871671527418254922670223632324896832478888655244949051847020029106468433116967991203991733848186569996344006152155457307060206962187782016471689232744017112772362311810659408104268365604550394505028427659107642688126885603000301190843016008202961175938905624548963345758006640903813764608197632943008860971657615644012801765955350204352292355198093387345829145305339446495930780596694193362965329424976633719838769275539054531829052178312999297073197990086931852001706436090343408996043512153415298675446112699419171639595334115718080741891497136637449455043462302915209163570369458884754945408470736841027896101736576739285757258762641636771562564300395107051273181214023138091195519274348935356499015695610423757832380145247087206703832444762252757445627881376262784825882621902553825559625514689243333744873364325803028280164261480847144919227440544816550261855637074908149075030042514423711429590013175042515485248132561272694139026212458569282633172337530964449710822204411035002904622824272166561672607478464139760788190338275685876422066688787069825578269604586327965958093564634246127191270980135733205462923034384520126595251059928054089046701643292704916140005313840865860298444373335004317747467312718177487391183297042326119596996966716939926815403795704768456020551945097379936843428327054111539951236789724097939247148072975561646881946165264610136173427873922645173939927642363036169083928329101092329699364437336577857005143955474307311097673358496916201026177634652460331180074465706901926081919485378798628224975766803007517834419162311953250448873704804695139274452922297552810108183180642162121866249233364693740177211345370506572385374972815829451978883907017245650255253401850370880226032278711061397116523168267664115497518682093601812846968861062680899191459525638601782937898834182690279793984226164549683246704348291343654634314369606451523509540525661602205372202432879794688039863377011151549904630957608388958628179123293024270609985410244103200869526747968402043451540922747060151711626963080375425919745121324746290168872189364652454618518316876422396380123966706257100793348123081981363891156264620581821346597038860132123967897172801875701489138005938458447803736018483817534938222067901029961153521064116642824806860172101180830190716766954926043421943786147805287531232994176505048480372566499501173671094785193692736038475535632218903359007608946089345360950735180121958303302637574265428507324856425160541358109564924506326382852759135526307503812794980034945410129655150630417823010501308312916297960851603159700672447829841225759971488679842376541155799727305176841819929093935004193274687136673834929674607275735706208525775690221421836832992190841888026322342378587905585302996546023727872400731118967051133511609557758441395285504880983837337680370570875034733502017103382986133382841094830231620972333729832198562172312725645097071961065983435700839258524430151694250665054795131634664835904152161184096554427217133793560242005478868834699571397025739485612313223876395892592860369518608786645601742004383357169738817884348295126336962399492283380583592792990640092038905088317985626548620824878439422918023410089242431511154731196237804004642732647808455786143793692409191705934647545669620354864504759656701510594887728149909092336741644264261782952458126776041000232699378761426802821250020386809475352819312777549872478817130693420149667483223595917768067590789560362035973964745993583396234008114903568553383051003412863536629048755674159104110296831035469946050404181969031471105173881292717151096320225773839213315866035267097564123065049285983863228267956733862010815911347497294193783723005930324978691760281325310944549958033965928402289395075277181886229350915261688743474877128886461298013145741814329006400120896133270205949321206903765399801713285058383418017675950589050364058056824702146910450236723844002036351559608513964656601845885544074970478850688474179191295974021739717003913705865554952689047265155618052655908298046267284785485255008169496041975718033923970012067063745503810019946600176156807006599955126261894325728618045486592441570914217413105684831030261640209217395609024012725735317269773699375842543091311235371691711204203060966106477294031183714757059283194456067325472361589737522178207990032628028918751725865021632445951845644275957604497323844650753929320926809270277070360943665282664413133436943808640250681526606211041298830480582342729682988322765084032423134148484566438319993063208782042652553249233784811149591417799529446750573690560739993840211904225774263705216889952013572173852752215705770325059894804007654460812619778222218622678135486543288311737291163600443890348417096172285983811951988154227412778371923680094175809984791387666578800021467126269946371264571519999053226687773917407466487097137858652656247756643322602990331947933515349537098898946432217478292594484114481842169441055004805749581972443090808005057626883435156041194534494238208169003229852935307325383839187488539662876211869971961597237850029615173326937201210435081690534467285226996998381072246341947291462171092724038525497111036757319661161900658588154060452861882251733885087412209717446429049632313242130840102103789873105937042567209212429403690515227291359064924228481204584978722177297487275510883342281791057729659707413210488940434402991817821073551528827606565966328390708076418008143222046039696191378320774440641671353614533657794785671297085654333364437965295334437507154048269466983599169479458884925043211411150270857117968850118923856373034580810753270027070450687466974950968594572053497273879015324502240376873310348435413689291049399471287537896446338855808442183834770045410816058442184590098823125699830223494404830572329748750856983212596077953256645737062049485505645086320791448629464244796767297772160121992825170162772781956658181605168063453212629092631930888093952621575842141638277104000267448029031902358148630838564734000664843540182238641533253805083892004154120720979946770227974276215387860998421751532519886009765500884097708840527586170444056356663723627400627062611178314181975241615527415614254964078223826405327275595595006036129011752977644781029822128858199599549138340298296786252263959815802085109826124477529864578481100357290329923107766984734505185723279736447221121254872546130997426084892195283578929438642732955334232096654942167838684280906921524378207184746105537142654463005205940514610796500932137896914745250220995506597562735913413165812959289074354108909196597416666497821794431968249443075493953277310272310079739813722207625863376030433595419163881171677139626352515080580132373575227183424998373075388341194786395747751704938051299849302832452367240784421459995030788162417785868739540637261913386465683266947885589807279290367327781393201705841516036480501235602274292495163915673095259974554961546094908893858165616767581511375183508203110117597581846552443566993403637128156003354983683429815091101444279602313029940880505724936487483169888631709428079242766915361000278956673476743484169266560796237108608630094026191067082246170533373866582360235846829683847724692067665517768965558631355477997388425387825960034354551452006379218393116020282323108665783240184493215828305698593544624304675148425255111081090597518986543815859538802874299552385746492179710974991594093767110006028320381713789849641303244840657784152292793277127431535814452689267912773039347809393195963578288734521856921965098115856289571713450832105987708592652086359768707514364557948579540161941480284746441676228025310115487909180019056669245856038284817516555165896507849701225883438239025531172620011391576961704957483669913683706206728273659180430496148155069014651965102358042887606728848578129523118344413630499918381944390917328799030683529992658266930919847019961025335283349413908799022817736126563318993679175504144896237389719362402404876741574000523110148583568045523109982879627487774704922946454731051285790831339048734967828003117003563313562723829229766975792841267424126449284086938772949892910151489091071353797274714989980319280741662000725909890222342594933675064466947616448069383552976286228263474861408523305412908335457258965932438202230802911161736136599380862644428916344386013824834041917948247706404584509489805726569066708562995210314079819220606782355591506639050624645251224168898980859579289912733710183362908531208983385711232912157960448649770848916295197362138481394599458831345047074477745511603368480602534262069628849611988929026741085349241305748169568359517710321713727691448681048224465145193284201080340207649038753749163923468653833711926523151523561559120692232849463509114915917590339543160152287364542453189847401484181093482238150191012260441289258009066273071181856747528705932185602813922459445159234546621270385658456348312961901237717194269578874484511664927408973326379220538513874670779991372475757709522559591724224688288556277706971192047134982146186361750771277850281625739271272324840802456747471095110547085789469414579677234964141545641777977828064284375831175731332236007078370705065331613840033912486919814664714517796187439193797461987855325626863889597198415966095837409828433600444210140518356687110705631666791765726647985050750937532745890674682773070154966264153747480999647810474636369380713626252007715525789833831863302873140168758123793179837292897921430915422604320964864123419460885007300154129450880213376478411230444113678172775496987481744447045092115725964262405502690614135335000403257310012825720938562426350606496400298383977638004241238778534068870592369031294863978984702463962798730713395727890088391088741612055671227210880833735504194794590146100042318558767072737700109177967554840815221508785406642373396847866703545717198620953559665295313935268691566694523989890734498440537358698495660683178175639360865600878375866428688744025524682435309336171693955769214830276706506304539237804339854664618805964212034321894646492842186831859830520519022935820102292925637755482262062776790116096889574153305103278298730706807922150379947170904915643107914328260598258338115331139297682546200317459378287197988306162269639565227862279725108224841847614932015779781525300128430349111808395536861669935008614757156658231505272175089904798462401013403463900326149452406710904146517112125394590710130617014700843277058889672469406543018760915132398121624154886881380701892981356565349595058950704410030683186817538353225476045192825265896617821365325327068665872893301137360505200985502288881629221767514720133488038357047491560956555848642478462665101479037824357036818338777446984063957948586214281029255156339047102596734522805815216408185103181266886454169522332569558103532247976268910373552467866105152854011105550478297662032270670929234489891951491601494145227824899889161984783048954738843843665754577606530260314798849040963988436876106633506093043487423461327868542893503472642546547472099422585840461899391793791283607650466571143748062139454082528173533329488238861388477475613374014568685544758273487401960287058736576493646503568463779544679396633503442258527268115151354850756474104737973811900258699235408015281371164424734925641823969931944873341871053471166925117918893802929436821634571765084267479762436858917661937640233159041831077330083624089093636215077372113101994285890487871138561944979152224003795823362828972954772896007906492559746256372254786921633624924760421410238910317467924914885304059454407635561567310577159024044773755690878237602998360696167619178539471735988036811844952809061237155440663759792990257136707740627726518306726942804274423074499236477709255787562312879951965584220681653814090245802544881532855875314620517724021964736405893909502299359842179762443535141726499739450279359775697340326306122385743489293460015352382149499019781313263941391994351867073409907205543291752603145934316132689148095655483809746976540632293827414668080806410625942158117358901936020184325472200177852189543452670408064097070124793603116392990651284275321139637831278895828406704490184215123941650959015905652188575174674224308620147132117527131899439984567710375662782149464482511413667228166848380259767900280598411909102605584992838477749974058869968469425298121373219270344528937158669737904251999165960958370799911957347403447884770939414173077929851528205715304471548649062657146936335822332900886711067636599297084203342707085986957841131500428015318853748907619565591669936239229648764461874563938916219993241605238577978682418370103222283126371256069284976036685521506546071033166209634468993124964982813654520592326184621908618587541479631186797153095977768413362949975256446271630981052247422014111881511089773205782609910679387976286771655030643003927871966446852618519343977232360131048035575284318258246931043760287908349915838833886195263371044541369286643433551273375213977666331342891817580986546613083714964846630723542603989078458454048444715959031973025268083668106461407697690031469769604574770526415169996918525781541911420017336080706113915538439209267241146926335603380225103646074782774962091149523349661716518667115995707274382264361386553370259246355625362580090563112449401564614572053219550131773055413456063106841686415043009972288044617847653336368329788930808223691429626367313603733600693117505251217224628350350083154284719938820137410259888779226284364938580720592484645955366923566224497944046066839607978688179977471884537905533895030482781439742156363909121096408423352066451477658435146027653816992620367528084646231225169405951133150617213340936428204482300366545195831046975833969305233559610565077748185877344793722086510501130647142297930810847254231934279974699068197636639252120160104768487703506231414550795636395309386999432765920140710415685271993357584239079303176462741492287047705625899273666285247745817851553391662305254903737349887834555113211007985602810516325898626672682704567913697465006154836330397617835158663297575557561784740159746348997470668441641023075831031315256072350686639847176427488897366070237302485915574627442888259972816976991199745461677537767979732285733570424423618665094929452328408541586900925522014687908772848730120072765216051560474613388564903605006567636255212223348277305846880804994483811858439837905785031907773555201328623599580754208541779965900032787708829988118709063984868092270176389845803423870830933948071296302653059320664657519724104583170292678316251393833777301473126636201250608660869439973571241802475659940893974419666039299639660218845293558803400807749803170340936575565911294303727990669871848815754113738031917622942125198508093929705472795178317394638545374523263021446119953800777459830540154767418826708327089006252144578930826441851647769932527588599116819500229293138593992754928592850019467161395596948707866130872759987476236725711184081808779437880694041509726974962236291666853093119347394155745615318906019718447118453415347954132308317716795585000587365070037638053807329230686858107547294799971280654063744640497674879209279623031441384404044636107695792869882201564448720612068153906599467759718436075614995733433865759994392340509820806826316480984406516089675066239033805160477227855636333254470395103695829992185882096324217557507975457325271929142955930355713712722234411998702150017656921146082897164914216729238564573701495706053717490266171241636524597520738406577136695449202037720108120775904044526088241999614074218786668101196232931281453366307534861152989332748739489537356569061102548134215858905172310727259754193206556508517193673235605975409650738323488952601205043237003256222002802135087942022316176001975659564095402125148093223482430502935413814767069621702189748381833838999772838588606123042990208291331227378798320715081352207735397910008960055269474704137249353577309408477430843765895563217815175084279832104043101744807802695218828772626535059541062854539282643386390932832156623003120595202389690753238225294653697359018284178928946188042598808852482631825261791331437491203455546899320188770560939212608747706527752933098817469421560203694675807524512075257446543830334488626482747504985091738406231939510196068640634660247249188407027298309330535377760238508959888999103411510082681350667731499690241395517447158183983101361690133447619165678854831769335881400597516485413688825144302684478101451182898694925054533073810068190659590503101701591218353065098016404842485483981379408357055345454336363820397335605729545164005393585437168153285994462102836299826199185743235404692133232776458094349232290227766582925040651077763261870794107638584161994769156366152227278064419634743950857148736220378871692631722868046382608324333934482409912732605556089142998662325456390445823088376573574971922838170765621923560420548378724113578642282539492895757455302288978565780762420765192173367365632058676705148958049719775993330345287636722074324349068772717807851901433123537762796145141821949341143199349512561384492695058593850374524530915989565407455383905244511062900041274009158491298735799171023048690916776109320402079143639399926288831634070314163980842572569509167719517489912903452540763696405228579359370319197045306083149067324085580996306394471690516237350873171308493333371065280133305643137535330956748253352991932616085858489461465502763629929494761367390596836556254374471868222299904621409420825573309617597736886023524261584225648796789996606028281671388691294895919811546816477151830641910757956397447667663129160939536230012825584785691626335320650268582088833082703119814110802046260986096305233597835379155982647451261111968843255065167534617697762766219262537271386129311288731621971279667523235538806185652555403719096112890480244033265771265903857139661760096414124310559208924929825947577390479549396441048952348553460477462545139391016486126320024477125992173652818654903986971996370443775508050722877617212973631807343392158104805405976540317000341728579877056568184899125319972645946151330635616255260373429375418749354321876146687770978186755049248228409323868822851149893132954440422984703489940376165728212317585392626580663830127604659304596354064159575724082120666697073485902886186221215590242681651435425184849946436552632846288129006337468335245068927255397771211497385080807334248067634236071061102645378176854168437192744557982407599638270648370984085447106013557137873401339102014302953318232018558087011841549323267705679641489126532207167275860650690654077722155388171282854294117803149521152048468323484810807004391282237962842390418537063409287242069874696993923240797670957544369814974042707326050185577742849507596516584850929639033263278741677681647098157684273744545730412652307059101919203462054283726096050541438129273853829311177521422533330165719706192570940738094752387468166871871428210938016310912117720638001172193458935817736910577850826787014794495857706896477284451868410695550609886988363058573005051331539080999155098437014596462582345708386833173180080085130376775577124773397155145994152250557733823697427844159700552867460630998786911795350957857701140062502855952673515253153638147670868754690491186281372508218023181215976948349933323688657964898942877121394714909530945761083530415541622077247110025485516868982704700676258971505059358243706197128814335952379363621509033939245293919151401163406041325689203329696623649933972619252670470694004163905778863931921965669022445147397535170987872780934430724155667188880176810111341566792391204010939415584246429248749096871494407604908943186693865557679484946040445705079430808985047421060357547018535246541264991049943714858773948349114658570530418166958261585739165367397079253063471410351259682655576031164944218401600406926127834708015892773467778597680971272696971696695868361885186364963161216882889961936267746920506358130257486374342936419746670305136839635532136861474699656354031360955574666587662490668962375404139985961539527017202705362219366760787278454529481649480520537964744438848902399717037448017088836907248812607300519678392955111571357721513872684588627617064722422441951690099034295824338553809301734742429490124504280560412346062696593113735274562071301539141489665013395151861447427077720678380652557556656387878111058361389023152284015591748410000299697282134117055872823666923662539715100474662906974347149074372310149455364540693797560468224410159195445189699118448456264850248873502699739076446805218296635320467456393322360669196763388932856289563606909714534650091147815566454039375746312260862044677313762561723968816308465161951467048361859493906325718955463449344050206471799685716132387545836800292080536130711279343314781696054788532476483158196726108644077858077071063115586522182405162142156997502706691419359534637819077640281912897763899873949350174629057631807820822244458538823550888158417564234597961726918344474130277436012800148400030053023465975405420713911393547155137119620945227461139850493541978174423025514656694238107496703062114213269912900069466593201982205912884716666368581337268475599920662663986358380795391612094047467897092595982855437117010917468778941936331937791725702239336177784655681728014236082573400035282438147705944950960441877648371236624883849011791755776871467199871161004844192846267609887107384621383704044885147501748369271460660657833009346482399651821774745690347135509092755074348277547986906939335471288557886268252684377097703366756745516814870597255801442091698261006824156545641747202548218803666387017692619939599105602286077951142447349769668595139498827641541814937687421310765013669757732943673475238246364468295589451025928774150457612653376313281046637313789338134437869187874829606298164019548939504088218812018373398115045454411040124785654514400649816064810571744496158250215821491033359387468677141992041506676736050791952441187537939541586417424437819370842997198856998428017417437914456341352183994147560129974720807856813507681811299489377809222678437599863016112056314972042683488552869732986630310127554548798834512549188648905067614048115670179048450515308549109212129971080526341910513593924764486985849558111641271869768199358326845521390190668418671548706319955311719234088374263878132584244764244681801375420062325584493239781201456973029617915776782123760489784751072376466668151535662560004579342313910384869049072231929855338286725514587330812804544762571321774288053593784199390030117850411858638451325615647034472766627809037830826943579436420435431792855770749223747894476477701525010342658436350832809116640926498087501182468650385551714921082996071078219406143296821097376678046887356862884048353927334451239286172515172764541108628871727489264339398164018450310305633957346476201438153909698333726191248783944407330184342912134946282220465006015163972175253027768744951003107433100165095610859213547991862727786754369206077724780133467709245115123140634599883459843423483476013675748872212170250474650644683800594225535535922325066875516299131264015405216556442451125132891695058919799665870444365567280337926378672489273574695733231440784360404960115188169496300244917646600067805916225999793046719983793014858113553709033468705386673983927997576518951329536316090176859045120981510363487998843894764487200397618264618177701048138862567342434975125331670394107845085212376125569175603916230251921030733082005545547570662473813528557558467156415404007082599381726326335181991112394407095730822382365841436019495012494344465901467506656720116802517265705043105859115670963084466914559555439621917809505454075433584969315069713973736067923172937236644267015057626003155281615328428175279172704309127643587498304435992564501205480306236352054671903289238573879991305467583438986227788144090976018146200315627427769644126575404039615528971930854951606215709034487659035593866824819458723024758474191464306978733939604499734265203002262613010877849028034866974313929881612017533675637930775538307238181601398923456191575136954926670243071097865030759938890208687587390036989685803463783519339192677062745871808539844339181615885759900241855712211956028026673102447429392818507814348484963893120229413500171107990625264587729706428739244728340778907375846210217209832823077191153217097401556073938745357286007666286639646672537731954175043519546153884507031757638472296055314241554052642654646544265745632886315392650240922488630930034082143470756497040922415616875271407539024467401638244989549076748879406191577258456504485628626459197900976004275885910876677691172295031897006876023298104271891138751377662652838433507945430242891277445898172569244353489151133070995845675530634393175470665633417203011214931214379178051245670108775685661484680651495655630345931894170051115362151782694548153790505424975598131918541133618508548283182268840382816857874219106162977947692288199058275830328624741438796005276189346555353600493284294052478633048793894302099918051823274025834915388980791793183768762556195658460727223357279887884570626072973625127454499645929540877812288401382249637968076633789610430034307688429361108893420803234554394126097611627984750936290138859258540212028760320663352915070497857542557759244478468693374673384869625162075582202282211292998282814141880469190976300965049595297762547122046377006328225185780677040436176717451611236451842699856024779857308851923468998268256436808805354616319243828369575709453184332748581011317346196706944565692133964306100403458575983455747830508255854490123035848077381673637798500851361578792329698091983390302300790068618892143261054327025894558407023975852050654090671089596505103476335368258278647565065657743506098557385537149510229952525766759123287725646225267232606620367410075484908074450144390473457904105920232961962944039670402993807683327961084518376732757113480121160923487607284509032113823175256078184038918630347103052087643771445387132145078976712274177357066225328746244794100415603658397053437887518158469690826783873108010375358110460803700234589530933498185470691110261421264105772350429652980137681752731313390780196149034196944494189419155361299105857569264210210825324531561987850920040111425830554697139280203108869362228462786253915111019970363842968506600113225520936052291076631379168530778209595230677776856108260150416424674295331744916664118727133816479095238953551978910801915856756156304511780719896118426645883427579357130252435195349357356586925242509876945253745873552582557916660030332045977637711645576066321828603602606099326623122328201440521225058062970714045986499917215497148897118989686053394702457669538543633216398140907798616848817277188043731095103748778859029496787183251217467561031912034979840683999033999747960982793243968053333100874335042396416782109934097896762116736978708368101513321617310924286161195436616904133030031986221671170481504705432363753134371984259144293949146731910826788142895162009077217892734405272793408129927154264015200574650732128652320825576066674911101087825602695495545195431186260989463052359367865023371847217727349403898123508102167023633137885105419027455135679977199222794893792238015487040850580597881437786298194762438823406210166697824075660086688267692312471898674652861133214403276294417165733918992671712602926674192294035180569453003114591076166433514166246688202023998015901844220990899977639786859189392183382797335439510083686176307745988495656922861292035750105720203764566526307404152976492171269100146448674387172419931893767916244219257027010261848503124423002745874532608215710519169535248975362644685151920283201699981787122298305567646927934110264350566210497460653604498341145480194848234944531216565056843570572855453535170138748243285909685867406435613094400290621162616453349412637577007396614963011740419739176853784653399844814415518177688095582942425556901577469031803415503034238835498188597208172547621976006788446590285643996004658443305592692294489929416768949692784457591955903585283163216294616053095514788759013256491749415805343186578865627452871981079730664694111000609123773533570010118576007728461965368067685577414214270091926360640452714663948214892589100527351686256158733781313429833594889909556260918481089369264570565975089416345573953615698643295863333618595715455342592979499484021410098629124711942167738830809363606332464108861636223927384177740445723805214159421431933709809834430572992811347675435901410678984243972403298912210754560345332837122156941001727466039741909211182571026884601301734587218405446929325949636605030352276091604035654017377200979906822220153761230928867270180600479077751957955493768542591897745114977064849766432635082625267357512123042910156741109917802662007879003121823033321594194649247651813502960235220281524343585273836330995694009618504758373150544169715932835238350063273842190308972729150143534193292294680437623126303978370867261454935791871418314836206206409228949793933606495084515346495370011308209787939670530483967293974642526049211633717772485223321862194873472292855557036601475440030880055066843804557457148608341023476636402829182501942525273721242093749795210780975094752246074047948761480144465257519058693187934476118129740853752962999344851708503436447569891606626769541991842084388647843632290731099440865379449574786088714349766507521868574311237374903244846790145755524122895220416324220866968343646097934767837486054765691968949956942476848796232554041481149993701661747535835859489573463178753709086988892807616964797231401010681753864386059011989570533534834920360473899021744291746432498008463837000096829148272481525906887720086639200931614613790783349989482033340241268438566687434775822925009439451942025492074199854826720284180653651881186927708139777147943010653304601481625028230307916468464762577548224551854476031647063877167031278701340952374941334340409000197465879918003051215325138959793615679086727904439573954504587335773266535450219266556840771297754238279299912686950138545455992026578213258191968695776782340652520300838070475570804903197060106059042494219821917095630079865371514344818124901736032277192928748298054676154637094219879318833548662400492529749276782922464686147714151097715837802644166129405459359469029308457976529984188764113431114096087106446580119425260010551716887972087393414798732588307677076322059926981022064902730518683072418511055592133850637076541064079929203839208371645662111375250255601654126612275274872260008105268384010594764005665861899402725252164716392720602657763906778291255403007700539359792352444284491859072560074151700395007922826693543383059164966250124647486695124419034389124625321942330870554457959087563481161024476225213147655311734046319510675887067902267864617323175126159830034770848836531479103575444982772391002740499723706832735215233415020019045401473509590717144022706487310375058027853519295918538467655109795016726971454769398849249032378565712130538246518300899649910820357423061602897695956665741340157451928033666983732720485896837307264772112304252971395731537679761742285562601197666301622243387322564005768621911061374215723055061491783939043276267749245960721758693451881622835311643941630618257345655180196010547627534954564839058683943868552003343966507174054230454012008382091505046137361632696868917653545087849284080973047720901540958129686079254922301915506906019283381103691593166372298401141248381999855929562389464159894937587259400098211537297779764783633467228110922186010528221479132284880111717014931672433425840971117412080318715636480309119946611358845684324830655054431070382353599930839353443292855756360187779702804103623797492067057244903972712556527393181630634625181154638057521578579434985475309650249593433424882289337025423370640477287195633266205021082465777062229704932810079887776168863590854429982933037458311399926464114622205532478139097141029543154154706068578378016784065429442580944359530662312777676585469462890187256969008480595537977471857767546713694183093711832391251255614055251001365859439849229162671528292634131877670475049681301485191245651507739566843004376794528913879415098240993155213744695742303526964961781553077448663504585451306536913790215446563046012617918414091778844569931530665597299984683686833237425311632483097093109477727426210134308709063608896709917505140676946952244866189284617227038999920796755330350784134328000044724431758045212405886824966157359820856190804904974569225218662593600396099324959896605161248531990671032062737227107647225171412316147149455624527602702994881397255023246051613012414206377623301510302726071294026773337033551333474360553928294154648936665412232391837554071671653154891353958383709891069399912285399273274910207611296799598761146811521400527449849453595960388566532958400985678521477334859831912113754604159608336274779313906793279050408632964648942708545979147848801960470508041488275523866434480958026749393406998953928970198588623472263596968459062713986124101327945293317071248539868438068849104023347744440346094300375385274305050969522987724047944538151229919617677489956194130565343903664422931046849785008242429293724950242081783177002420655621452870526704773811516808170452276033726279261594355343166462324044477244739779273735987541924699522611039175900956685719693623694362146290691366581722461630368132850292221903292665170441429837742720694964248029488908852811223911265845142789398868272068212825102555611431231224100807562203876552429557081233015804251635808715338505869896049682063464146508905759835094416162153573894806258590433609682139430963787631101786646190232251659023635586218804274826301733258764924699144640418286444785408355744433515411742516220485319103904678017378221005792943803536393100516129154809726267193077368849644956508191591119456216308914542409368016440806676143746574173754580538590509302549963420540574859964477701250598583087206768622934497932707547164043969224612121120805801260435352822809637608133612617747398308673982214578558467979539688204687730604847850708280063748228215645713037348442749277090384681021725215315486917667703927248445982017020237209682528234345628360067976256371514709582188980048693608799862501876998084808771060399398635984532998190292058988024154229872703562885065156158900497001306806737112005627360368233472601200651373846061440357031221902440312702880869385749309911097932772272559678614137276096860947074651461759899441344075686313440838264029976967894134097394625810122839397351228952200376470152970309397720564546967279359440124826880555106140344171353240169516919196544190408272597276945319706217416302216158287927843875424039350941310952004522670018297620703365362614707475272017657623277720688264868007930142676966602369287809353997485122591772909597941829023654024479561245528258810798115553723769619545842179286825905483123338002604677646214254981321941053518739567629933973212516878938412093419536123706974739488538107310381339930229040852392206200081975443346933123352577503061231104359814608319783690245380378318247544183292260373723808064994938120555453367110340342337111102025445093420157910465959278626850712467591005557856826805447253461560651160458057269004278240848780885877576708320985521887376829041245731665073047626836122562896224488460734125971998665299819107436008872300786508937841496723465978071128608195213631992173723953311531057558322043526341247037921038421374727007324253186480205497036283324112322977702213305081090193144186671407689040698859711122305773478224672983302316122442011081297143122556331911585801851064756582349263855267015708935606309282050259481254143790880430836584367790086418496221888762190994804513205809894471513849560493659472453006224338412422549341799106959230895662608153039494150762448685052834961775618026038214401445675502357400842085412063649986689996867678340012248795646268925929140046888976481660353486257602493175275493026344692937864525976199118356737513197061089975101398420188809781016634918270368189294898008569563606446042095185143706938678575932381752151102857218681405541175581780242430022814982361644115968263695073460909839138306843370012942094162881821176005809502007380524056827771484176178885129929712874426829499416983607848127194574529132401843012958271400811007920824265203842893607406494642028149892946524537742503725078199385196757109665304318701781041665756702735228267693742699069802712144915710224523742108479014113566151245334203197963920152935737472568995948899972498623993694212814153596031348063518439533724972554281630823205266784269115869634155884505049080297747507212692052657730388120679141552090522977329659230410916421294129231308821346889433705915654113806378881148294116282935420898658354264864523952647873275765743845793326324268417642260141607678193368066228952230826493991825344238674474460495006721640471649799752313288201388645483579003045450319813228316966064294343821116076307468722626214248134084762986654387398904194068453867687484612377461224389788359615427135166816178960512866908768116183142424044409017362400439937683167678157672026367260574091392056325698080987115516613861013828616555127852856032655051410346022963329153670230818501435153915772635633806006548546049255527466519086395414197138106820935184316741982061352924325896246307115014845358319623703790876454928359501750213919940354382841492338122263974377125983164289762721518845062117183712861092984934337818926885503997040643726533854453957668527369526764209359474220914230593182245138119691520374320307106277815862854575308370658109386268713192456638631824363171544100061677723990992468415574631204442188170916976349408693577745014499962392018623172988057679934044931915648417335054660369090900481134492591042119161114111099267226779289295625008037964124329821224392217348018993594976291766394382578039639430337461174809772404978205985966170551664825310748400937202859031118035346958019975608102653262118201068719245800629072577738461010970718025101421698879701549804521566728494320330255166508993586451104857053228163262060729035406434991646025611873926163844650925737071911752782177185271031256465573350015984367409151204250391384763885329316921205082304293731737272986827789932409630425292638971586818223027461547602405236200333340848471066282909534443691983736711676850542103146144976128721364297326442893266570526405989393794309240851523627911337804754660904593243586309995566249493921232956290474539405613497363299057068800832690905289179927097459146657256362490894318726425270679701660051143876158576265353331550116358167035898798232764931158242301246570107659341468705386019337453435109939112714067383980635816872100046410824391769485728329630242278190209490349575282623001356015147547037722602939763589916849468127130615777580409304021607387146188974394664532523137929823184942869915728031701213321847357380717445216545024749559547889126515431493741026837390257918910844184489597114480681358041099196459549048306487762663219903872359543921245366787020951384882804955831261522401321452406509650991220728764417147925963357676647723245931141914020488407779725808692677428189394686583583253526054813543695455498933170339318697853960219918380133830886076170001167187298611063526402210323447046221110890707220686847579531419671598148344949259410113056232013237986701414414834786789519268074408395009051436060471081494639690500570537063947006795362489917270217029594952703283108827470408576359917939316450747702806905684631807422541247803557116400338336919703467688752668091801948667609022827073264252348000484734456018891670756219900283185574259664215530520882703374618587264478424986880871315487112504652750956268809988744356198898366812146668397935787042462503490037527741008252831542860547596995997883253152079042098703338168378403032584692371386380226654991597499808022929585616496600363573822553738776508043247255589059102819268388941158926764601053897343325995706772239914121530443985548988929482553082245941128683016706210881183428889903083338476550079392352435557387598239932980167666503356851827555334835608657247214857572796771638539628504033374122469620674428113314652177024219797723879532055391960768894168465315370846930126024952800305603155290374991942166502847948640338066662140600262778830702876820842457557016073664132370824850019752316973841183805429389201719897483194108469203263054235140849294514136504770930587341834333002485280051920970530320917641006291359112208879028599329431468249317842805589475509120116486728367520750204665838689036593498169369445558627399934802490081813876335568111678100813796452396826994113656656259746192337402088287438681532273271555950992631169276595349853196851189932564272706299705889923353518461996430650827171856448064783083113559453514676645921265940554623376431821197853795248092670222636968439627699108469110519096431537130150077207278439078695135595710119816138645338188775872024423670038421269371341523351462015665090680424375195588094293055465240901525771511805497054251514079742542890963209810299352418632740280453056886892455828682037588331868440171119446657559567170589489992929942299734694794639584563894674642084648804464761958451311819711809805830660025367285686589949146619447216812606035936458594715709521470770554068829580875000278829305785753461911106812783838779284723956130916815621638952809511539869835616031766971803406213904596097350736349115684297254769829610756715741537048040922514455232536808869239335549366114937355435928403932359096554275313088325763088333524336916480958082070405665428407436982461510526510939256019193173954102640177541686278295207462377141911797087447736968704503643998184814556375877452802886428742816642360280572675557076136858020716507964413910937237818848358910896455275762681545635191771324091083051893227256121086790223484753824775482586824918673694741028710360784919320401951250478382880967687842076588239716964859871122775473052937576993084337976667418893598207268846870532013154274728409128071029369568233290786991863202598797878849111533245631968852569369556842367823161484116522415867910676846607414447993288922597471964531406426561395995428694187061437076148683118664814509049985928455243984348010183824467406936509774613828974696577172080882395910421766745744894776831628541294557918082645887883779827903722266517731357604735462280504716240798604508957627542856305643428676394319130393486013103579232904524411485640644424558426946169391329508450145960042294125257980309782642277175103972651442584082176226944375055857830146122147301713857863082989900503847192260858029223820571271000982331976298557152979062035119492810086984948044109846181942034730159696415730242935289369714730065499110746795750046647800132849209863154705946492860906998249658004473780780672899640038234811560981029163574660368899855354979698623598369308629494311405601469986834156464501134481625404255611387426619582988489277972312763838056499353924268528226961122227567821355719960169041202307422243036010608899737063077943624750504871906212902360860336821168257082325719614524398864776162138987922717744972303006426570831578695921222807493458901167699870826137919133539945654371654412342037034233555433526045459711243292571084542072523615484943542566529843294535625773800663956675933627281688407216278277122508247335054278016922931980639391236110913822804135620720381495344891392560478656106766022172595626004468738724988460511123353801000873302889296384063529744210650282400621739398096200125826760309370814227569795901394896360344119839998277487069268417581885527187481966275738763063522429194543215756379152416591150900098161108066053853799533048329335101051053024468516802617851238723454134770713177698458936342561892133163076543116974852694332868867462528437488002226156069034157096970412883583778753507956055712644249772235737466775163774671873422705894851246748138684133978588947315995506646586152334116864858032910222452396968478498598731202238648261568597847622809079771521693308303552859835987380597694783536774618970293472287246862568357626916369575845698119346289469635428574691129795617227238328289084930457994095200551418057596411698161399806244910127477047301804267978691766408296313000903380530567021991448923293035715022206908161479607652020465416112007632391319692058403404797690738140814715653976883086331094614027616870601356099346139999145604228420104996910497831973669666736395025125957262175837945362493232344157839788415708658144306917612552756736133467123921329779635604461527798264011708768879677064685515833332531859857755180695548924218797437800416342618640504214952997536229921315121613935684508893606483652298513146451493729111256531198747065149185934907381474488974269237915033946874633862005925127689698984431267137196446577215019107858294464992711346929424870293861682801737084325500516538246627200235758260985320240528119629197698203449326526336400432983017233719645559627168832784053910062268064064835252424800218845863486127583982884636536529291840649428555954988770405790266383420804953736427247024202485406157253981805084389924754458054583211807615813893547735826219469726882015402218726611175675968102617379988367651753334898677442001207063623222861382341383971595627704504532917378101130688870768646684231379563632542761525876971002663575599476428878576163646529459637067589754800502724692857212867426375907193328161045973220700141704754196390441703797981202165088913590752164199084842261039942732897604371918050097421137095762413639591091296132283184487043728153777224861937557543298701964533402192341017714899622239769888042897578115742661330185850647888884913528598501364509776753212654167125415149692276092198371211582437683715763391378765162433551417588082973575429047139544239130148875771473356385216751553313610959156022904351455200817597998888384295376127478331101774604400161651545401520900807321586241612543136948351860693298573951541162188884452462538169408739574749736770283550145468715986080653959594228096882488474134504302069589412375609317672820234370984937457320597567670227112326358477311423166154217304809437000608876889363600272331041847199953769472278979652516497028749247351008822499666025099215225533700019129518650136697558080818474039815720338791430212513925835769121875124154713336983324450482560783429627325755818171130286915205388777012000975885225362657882007738869325316403711986790940291518450996447787373639186283382623504549816893669421747754066896762492579821093810127238247747159621257175142314696457342910404386949532696160756727864586027828867543227919693573654130161255264130734375870053767662310419907261718725495194556683735916315809482324464612906651107093044501019770128355724997929612187182374851686448346032839826467217308226013178746766216127235278824430202292107757282125363476385028479483964226067638962044569885474446719690331894683873765580127899518734303058358502226448236999921939652769856268995325886168561021419384768328345749493313327473596156070202621733632906536470898475734959044672813237895148805566596056531471965173293418318515753648952300018583179615494763222225193424741150015797258654666060319829843391167320646777411872552922557441477352221908153825571179551221859028311987198738839195217647357044861707144873568391914966707684079936742329622438925292290699673322773106087971283556724790725930995811554602582460049979266309559793778397620121268773779391080272256649517722557806097942358453399699196292536685936804914563603045528942540030223604900148177677868210139877177667856306772611255220530775068739424135140679998207576633741352476928586463457249069261173557671405404011325440588178510597080426424908631124863925988625380720301931538195064392653692718834833765371392062630624057708092304727536970598450491826660357440552356883177786870461830413854308087988940336572830424513763952642582700891556900399745676543139884000163853999210862465575567196029008909834229968318150971018543109068251645078612113101422711521132795574443791427106681211678655328443323461347948820280020677005380273094929729864967661430552190453448759931453646408331850825262275785266005282217077994624920791383074156133673515260987057550150111593074918311306159396341885449517042997448016872952668403798574980404553419013039546721259945071271527093191900609018161670802995668935043334535933632587924613910572748390087935522987965587793732429909872618217031735637763092024950147598509761736652138150935581236621210751021614483556627398046069846226181366172081080216119639581796764391459892380920256884283485126612675105403797277632468754350180645501682382983127680455851597783540295232670225015536328719611262348053320263543665964086936466937606032194693024497068774425158338950932934992292606640411068640272705069732153955590179661985900645413325503231514939331911580444635579136460717743369985464206155263216106131144417817069474757443362628069973927068715960133134210100523214540865356560056253840077741915040565963709414098958560907895546408373737237935319164393977150342826421748587456365302977192806010915242703346676946605728864865436962724870243116984221496845436279163826552278604292927155038484826736159708285883951848981632492063422676194184837447272663107394950018468202547719887274248084253083915227846304568663652538237377207165280332260469506070214576542317087644228629161821201026082958425150426398371356236577662740413924655736510240000854653264083454427372288887319199123805671212178740603840957298549846147389532011233685181524524241638999197430865065636376674654046202830522707734230995633421965310832776628825641954262845970692492573241956262874886260113173152789181259312656737756721639219923318388139262879977253359362211391801394892492135755077655031771282598370530917062565111154431764358589869800795473758148367982168868108748920756902448876977230684004916177776361856930877458626878061738215192719790955824543263332953471283979560259702529088557754881766133653766206046777392179533347629454433134003324105266437386536220279617226420396632425349903249881832775484060040951871212017192378998674655420181080675773120594594802680201354889099225359980652217038521106624871438880994978114479264903043501780824750253367768909399185128214906137859570880569508472484658980209083244675854486111476732522763469199656395512002854518743522786303988213988006587266254471728113916030901111183262741602777640735962805494801505676819844857351297658055418286785227552641246140527572967326753787830508464446786564986146971985345313610748580280686935992279175199917886236655913498627098125286960275841572423640619559094344309857120859497552900320282157737093854620558183743060809094017279226818084585359024771945609199767911565520189184984666823267880613065808523338407387527008866325857130469819835253185728585345151846380984382245205015257014026952997963551497873066348149368899471516131526416320916805745000431261208399967372179066657718402201580587541163777272174511614502865651267054199809173591935997083690958175816668803418101964273237509672872241275027947936989172704497570033960675555036269767316722932675163602049512614978350573383911114648278934219079210836739625006370800070329950506914378470811774466826594618403780755064779692746777806372462784836882699941550539604831266607336624195054382728699339496262170402835879438314579834888283963818048255161101902744796521008142512051784584176166580129683796097273626175981126599468837510013084261963030041839361710479836294399800329909133130680011671317268314330488632207952227577398088717593113098037200417059746519257688117133177881133890340993354496106286571347969250088515979766202019398655869675136114027208654214799581858823653346513841677941757771607898023105637018419685158654646857699140593408988469078907366696197784072968911105456864923696311975429773186582618344340268702243088498361571711924549873504144068049756195513161684872626946900899630043472079719253157106369849490838063272871264590479696475521531183594590031762042637623708593009355307646869902439399718946967475845978459504644562883447120439576272359321317230953018066109418494588818074439474249516434422687226753253141656356640822320481870645340966135884072652930152868837318027250267915547365347321981068736823734408762871053618008508535265559411203834635074318333501642838624736497833214244863980232649741438695862855614662352568723490309727718836523839415668919235579834298488593048156387325656744316222219651971813383563984281454966372662972286618497924194987168379474987383706470072803030816390808337008717354380164685339594293716245200892576610080292386076374741077861692570410079204204610427210471010553616252328698565172042936042960469534693834976930056347334856517352701006284255366518172924255023663762474169724435871682620478850188654718835044344045956389040762044481342951249828618132238407729641135698458493959785099883376664647687356412103681159388148688389588698360252603933512084180567122348336696071340387256477587353184091938642425388763246027807537299446699227152898343555384120282765437985569695024213272619938191123898718716189816765140236828216582483011106339934978592938569669963184970951588920379747346040174261551727133536805252482206163039707661653544174124748144694979115163858444678297125014781853846455442579715848202863845779516066099062810782446229186625571876216097167329959518396153255729345042745273170295371383397020843973245740924871196663509026231432659237029998702996163614864744577467755570233355088997591087028898922660010324214065088785209119523672612873743205999036750638204126109588090316498850623600831409953854535840308680685645441681213721302203547255184416502102963064973500505955552653852680141445907700584405186974489646787230137833836422393738535750891895146341969077094332544640735238868444262877570657005752218102191538625116701864027633417121044046518470312816951567991959945715359059624068870191188783703645981846597361560555743378195067224797486235814152062900025892529029941723825904514243194566020309797709541234581736797319151466144121206366118980707918006735525561136398761229305082167876935115051293023468781806992656578033845085412277369590270198672225668450653147551297656620107747254047289416560732132281009979266400125599608540985896858397091317780178609576233809041420753707445375920526511785534209454053318309554815918835920356459125829203633850989169408401790414237223378069085920236081149112902312865925707739234806258833135377394194484486507261515675884475864046194324322405638487207181547154921640167899429018103109804328423606680091400541337654979754012305532596229784239298611461841252673150751049925933513714063417717838136242944140630372253341342119869393227086618762439695351216510018713795746856706529351063460046814174653033154236290263991447133250379994080362536922735497968674736281665439074444298510567674433826732238331627937260144995514188584296427988234715832234908954435683063378287604605267560718130368991950726978615233469429022271681104747139132761433002817292372904149892523466366638112625851858362128264195985410727024184030544395823351137911279534220192488689194829432592485286235449053547320226438070943668649439831241530229962185549902628794127580385023801108034154196969572189087720040537933401880985083138454769955992985996713285901479064964910254780678808644492146894476746896573941461922118848443253077912184321293371537038973125759870414723002049322119411821597572655220890154153496676583714020835851919983090647834656013800589720162331400712186822663139055008899656685816954284972149983126169626267717955384361452259674157302589430507378181175469376597690497179522570471552981983166623067117584815050747531617867214548863868614619423323619727214251469426514373391899803903897459972216269347445562193481906829945427610894884541282109251300066327823875028128365256851726948198066166646291105493830659056746869733320470121786920986730199307782335898769179509474562248650689029987479031682874354837310187765237028577939649879534420817069960800865136050332573223403758016345192194235981093067048266984207579250168487131788030051067421635819874291571729828329527492522640637568498641192274780960712207838083954485002448711575986519556940310093873490774558618369967462027479873936451423562845963820745325634476639707758190063929158112983634586976103977570115381244369569707025084474759517647384581415629467354392238293301482872812659406987999736974522503474774019717004816239864787768934547778204601883608778195358710009356621889275270649007857193528550270235022137475135302457179397326230619439033909013466419869235230500270411589344019471362796597561897348951687258469572718008971274566663537167236268444240143920913685833439284804493019497416885708624499928133914831194649185596046973550773173509788812872990664613384746864181297687333505105958255833936585305624609783669457292189130756643523280738568852564410958389004567398762685784222269994766065612896362598265151966647914712394708061165966522557051163422628166327329502476415690105227129468459155766175149265774112147404187447791458781134815294612944982660895689833425195576012225007826321711822786874739249330271610062072440532471630451674786318996251412829121614601171934901436793975418972045897185585358592170093206893093084742335158963727992929388037914757296251651929061629840860870889439997003946703142530184533201597210538864045964813306428075480752624510434312055953664491031185254307174199258179455635660818355264085623780676474159969826385878129974268400499932587227442010804421470159820328196625094089120753222912326808244425270237754803190296941206919238255290892605328012276574242165961331151006787649213870199615573709787205125187342075193659732408998080886735734090053564559137844263533855346934159908541213741049974513288327062481675833572002072467372672323085305249778503379705381688861715546654268655959202845627618111991258832703883686293523970443403324996354939300756450463980177560195479936114510943910142046490136544110701215606675215364610740090417388865851982078040828545841498853443890979271218054033107458137400211188834844013886104629562330021381600534597772759351061627201139984668192434852704370892249871234227847641122232194027811212361180446678221091037599248145599783079568745403331182093311953819701345596629939397775698726128024137095074713515303396630337287007927321191833180522250995286302801621247819399860577067536516927452213864920412044203875381963628676308396693940497117179499764856603578091051725100792797208372400026412532198329598190741013719350765707283097438782911607337795562327239295405222967040982430356753846941800511673645289743223628476720470490140842777290622748433087216170398257009209792090955803562994172572163639181511246681108517112896949615216111723109356643209259078668468749024275036006092902059826457712322368303186776946133841960351506047728064539711899119254105926545085607795082861566371609612627982508751497034099496259872489695664239537015216973248526035697430141548049782769692371227026756043762178565588758728327854109742816456660639618438294958126955001059479517912654111326805165902916727666625120680256452722236529876024375311165706887246666914079569266279784675670538597250104331781236561199769560285935131176570121295007259359201545395688499472919830967022607993232855643989142145047150333661822557739376249261248342589721893789087482103497540973074006319396295002491297489755392013490068654019280761413342821821542856008906571294337820428502049912908039898015517290143351361000003464970196204884567057691052765201671785657355667024372865129434816615897832947842192580459500360166010518741297874808893592376437509804638830752822967410571577807079063296117793381411184543835246970537809708436957882633379089611589890009219150577014075010984078367794450041250206294974613480840194342423208600146000561193648314476572792837318021328359319720599256553420981503371301760389904831989055844556233443031822599196703557277132530801361331447054564809219528736990212167105904867301580256370764048811432271366189636345101064033325286467889949543677608754860753830803451923528342334311275685113107388558530794686525092515103989344644558556364084115870088717234191104352155055651173211167226411795093163753840089103558859083518854861380100403626891607138628469474469069200218316625725061979018239130403687187889459313804948263745755138785947710304954342595960377409336864285666534775317379329086441267695741898819670119918579672556471217620935827927398933606753097334206817094115505763915009398361920425734143575430147705438340898888189633094613364196133110262209350068739092870743171987327478403029337708135794680472655326048524071945485720626778735634381950760467129994776086276052797377609559709964666305845577906284157354806337943142996728012183397866139366318492705220304363703990349187210704197444332468633709240126141127561430424150796032019935167472474168782142335545992042743905527282798116675964786343259670233047108884370973476572613733868732403716264207990836144330364109767094228604511923170366267133578600386125976734214641482698451741077112861130035648358606059393157691058577312727178848405294417382884310394803531171857101881681276077078369002008147446243971503755637805990694374639511672885675814345196567055826854493787527562115987893904114654738951582851909026194545409003672060468329957632674102442529405063679137920054448304147502642729346035633990470501895478434776640123525892255940984898521561557865707833803081890304001863803987673723229694931156731786133121097895060355842977819345427929822663678375176852465922550301794259484206028497721325033124719562453002195646235159529442216137751385516065573729364905608811577091409788827167896522047643886009850317222821301264760574368923506239260872357148752920172181809477366233913054327726903979773920928776422151907067335281587106303186969470429528347336046531049208802101574452917624422864986089764688447428993614419643416088806900882283326570183845827814454310316110797459198949047382895173084830656133663944910303099779223917216965994394895944572516162001710204971685896289367193956975072221716230118785475861857504392096960398271900476693702761531034400248853298670276963547118664278156085846456661419980808071196300154073494509741834362018857549798410697628713900266203631534284095086061894637442118876003772868435487935349065189578241774315658293260019846391344475295368944146691576177545877042100653311126726005774393072262830570556997118197148159288297300786378983756634267976431903534876562153661069318149562282143442660974311771595669668969636415920125727556395833071223170094066057211800860530382433750354883993438136971293158534510710881338256821295726577611399786558464789703558034805770906755061155651731840773083711097977894571797819269759229415439809589190218134967864679369043101967706228852949311116226211556832117858172568399977541002149130907274525285521918621042303885445298539237963335450858131571775774739970533242276621298553058959476014852773230161554636445722334038689308494456261325728593362050278906687821022798495633172706471467751659799175676087695141546935060831491745164060800500540638150848619054773445490184303563009133043104192554011382618002485439670938916376291945594859085055066366536625725956725020659586265698026186812154674145972251987469163064175182671814678550600397534463461386883309503865720688257724093503229855864831696954123615155892919015803273576352815091797896884540735868475279521346007011234752568085452548894908325687794449106015367159735358247237813760203029522563228874662747084829718690256251035623203455519122758906237481329659437803045986633670167104748440452604269551081110665425413202243763740810023676263275633834800011110959703272623875956292454699836882046580600415468621354659021110002116203694735649526368559877653586633144029711686967301859395268494265246090448798509751267220481637492355849617796901088606987092599885121052499224763731162381603931182603152363050653341922960439540749820453517896727412714425370909282878507821530351352841113539583415421387498657487544933520460790859105998006830567893612896703138379785476174606593097555296073457994978060008872725188858461878662074166843133234661726214104378455302036366384257290033277625350842494775247033110178993616711769821292861191768641476158343797666606542026501298442394268708008228576177249007549196056099751339819681118262444906568222544234060459685957688572135455711435152131135251568386132355077227008410679194084618921637545030400870989257215565044913391249941094169502392599403977080355704569776266607031053301365374541769383687807789691827590854354679939008155859120892988933156500129024424277679598423253018676191676121871028042040885888926195278525903923517715655852124422165830949439992820092659683306721041425204958525902944430390760447696459705080066000683756963170813007892215543043299634634982386888017694668714022179624700718690697579025261655755327938345224425819174910891123919755826495886048856752945745860145096081387148210114006267286944237133961049980857184251645812898334102213540861830649924673866466625565175553172888486672972026063415871268072302044768971066882665799434747040223525906208013857877655200868712749638354653697917721240890362472698401440869378136962462568509906620498763397640025661848789930583560735144973389771649132645495302718882217997545223739300638977478535145479204379017425265935609750841752705151870888299480227655018371356030560785864082223359170207358079853770491392314229602880591209856554492369465944725287513366379703587725944387809931574295684206536944794859940716043451413709104856501809757258784702952154406236163918888691731210229171618769632604983112203516866380685165726774331528609824772309683517255926208679591601166682316554420577628253848982393618603411925524818294901497429184382408972555835851712463743733466469957659194817660286534121085871044246324612834672218171242110857219198925640155797034027791383013421048569097971004222279703829583158019615033149557433996859924171617154673779032548730683556498678832351334387629857825746387157730507087671292218933070040739267631832435442825690829890731914210258751750684544035178172064908699657719818516527890372739996046698817156115074300116510920478128707988640699974487613147001828296085865825247844031702889986571044291256309018279236438379843389814682596266875139295165555835772082169126995308505254976226978289102573963879690367316117978252863588608606434350991357761598708378727656802057093836401304675581469795916848389736625018466470974082321049043256368230616252594973053140092847749293506074205209337770490133118227095425994092735711835373267458025015212704489297262490530439463823227406992115518844971822942315330230217284547954538873856184125188574256149699618292787768813098545845783759810552537320840349646434672892969969933798997202519580784013483708402579945301116773345530175288105582492929362168614065489710718784493395203354205308118862807123659714148251665706010986215642379325406785484369719453735133800556375583910691853221909010769114136437024538665997083361334421436900326493368179441642347481578535535349928409210772567093950549167877165146455649109866308206473596449703256355765142218627983485322564563932778853319334961559753534351149885703305029712554154031126265965326466071564955576272705932264604997264877886877785801338933627555233143503942468466241135087662266434698496004810185528010004380867867318438378517344336035189794395287474970181396725468345699307457828755678559488608796915326278630181466340982257412993443281237023472562870624483964646690380051084119272457358360939929454879161293421756977255058397256420779953096782966880898188241557974872216819000134909371944495882456511628239013086483069520817988682036937877998595308617389447877546595835127090277214166012423985074967782115962617725397205984127580726906108052538513779583193529907674117901096463834798728695683648778337187846438363159796810328299361566163074210758007095460583747910345149655647660751317035638892054697038701991452537791964336698791622060373991032272300465205312746342565291137360215026742347923390179927806415281863276058133511045247335586306546547799483878153275790096171037892305736140955221208753761060429588664518061761827635973165739830984292924957556830094120960934822122229805962198169837580558630087945590620111984055485335145490099563848744200135553910526668828844019678566072093323132795746876692692643001967996028851259341008156886385925148819599943389178343494969231786279216473877042309404483915920339696486115662249325739329355708448361027050437646672414077124154842380295690911737677030831775159205089852013887772285230830925020579760882828828974181635663458052708791261157148776550669553376625624448550384333445156473525699439831395351686510452923221724960785614900853333159283948466623344182417354196754730536235539099085155093829771713328296676602604012891436385299293054377810753459990790083886575917756030473571625643894740730169424019297298200696093477041716897291141334636024958770003411117896984627877070170448297857881408488498657154930128065737994430190109450345117378110176385379110046724375319873062985856187932667030492973647063462396485811114258629691067884576551117813853093601936060264480576146951848142107858580883402054147858352958036615456961916190036490963128961277069358372052225672556790209049856688225675218786922150305123856714520098014439571072595126267247852312077211724216991704298241982682739498466469631407919774066807073596117541517669019563250858816624674420950867267893259846315005055617205467737201587626815210985348875741904334962240073728332055475973502069572345958192488601888081735811301144916619351859492061822797149999424649965490062828847398516552254527884917151245115773024826195411965424199811079479406283883040991338556852815504028969387650451210231596851059004351503839108927079867797510915780082233215002508224597753541139705080118123072876946382395630615969592225971873873098235071066580732781191311393884563595854538865943238694128647001763644249916640655112327898040487494558017649944073843588239568550686728253550854068905578941212170721855038858724596139195430854029964762433839888944416086739541551828129899606952787688386147419221503818892843769113889488126052465880428103181594386826683157000730762192484841671563061889298030775902463659695274972666171485336293669537904056932802351212279408027274545100735294829355023193546966287979120615097904413716888303008580566595158259250426425275032777216255341823964079488611621323119479491645064137357490502994450381791488921067252278234566742612514445145415744862200888140334977936284793438072852534907967008582988636935403973708191705283239991938678706194302975387987133368969752544766151232868756540778895176531061824384747096450091422365951880818649999193663976256583296941129513267822131807098733287086715707216390359282056195921431165900081310043443959992035421217776720534815664598741861761605274675343261498043417677220630057172138320891206642158307017494686668151941115323262230143017215126662728728764562296010642453323496557966014279329466465464432439253563033213048779128581269288148512527558769484385831214753536563011146782740328649158647637117543158613803883412991129023896840169410785046097687843525612856035011300358423973463860942189388160680164373781525868105607222247329258168704160995899383795221583717984765515697652987391261958165888309569418316569253655957457677240250496358496223034022501044540433125866749782586140012913516824963766603602701431030419003412676170031206189445074632720853549366897908903228319154919361690575374866910184225319187862322826626252999174781651342248096623420380315020488303017417281322929294597541634942152918586692680291655486549155161726008941976814538754079086249309106896437341479615126765057942164733725584119662288039191318660593137726124046845180335856314730200714221963003948618649007430539188153928069664536291226650663813354881111245917008187017110589513534569052206845913307022251662212446552275164941268864361362587920902061663781575295793625309760216229721158201942496006265169127168477623161235979465581817524139864351717416028336109292917589149399364253714834736302198504971460611617533987704803197235549913112050818560616367051303646583748703121212534530790012591675817972823122864665093399624320287993950375977143433557689398405942311018581794140128957415304338371519101790251288947429537880104044195368277272178719150754446832001298373630031105644848833745923246866566774121864070577747767647468750934823555543510539588276823619315629524376070875106145241755904983823165407701388557459603286648458411801435940365129223961854490970067655588050493565274293503442054308968289517662034028146167555123870727728139429205677599322253359548705346728695226078446077535694643081144399428262106617902486758208930504961167594713834433172128454348808254499784377128391174126805411827328509509012775612250165972150540564883090787854903717056075667339680767835046586691153614597827363424829249331374201908383968034167604198949527142338186537601903555607439658447025603484160601021205510366692558890496609698422999402490071813449883345913621861532789319588786056528412912044072684292705392649175278812996720384572290441196511200318210041829749141661786944018646704941169606378223725349769052769870147773007422550378932166589769059611687903602833269408951370375148459504613646804317149373231280607711929094901201889541363035080010451004091140894081052791606560648263670821329835756669613112946065124530456298761949877847151385899531554627598927096535504540745167044078913105239269156784845254881618532025185414035165380521433334421715996850214431098404113022347914702350939968961170685911606948682768643021695437301888687589450927204921246984119960573748942017320226429290226746106521990811955502386811672895455538997480735406101473542495294432123214758799724967351457342863458496280887201925766052535385034499487315523986435460597381158977354245410335264684717072261057288596803988470589492581858458191312760657231394358057753890352730097396041361598399951270653311167938177000165388546894037334013365837374336734575356258605636873595574306818085678145229012792400954066386449241069910258872438179110564269095769582196203825255442336906613028192364357526884500142861085312154705001849972232130851812693878832967314508077416683972007918804948912998458528387809387444603360337929907355644930387704043951418631459729235780943102565753068791200222712542001730282326098836635187949304584009995953942253372306165420260691406871218586498405124816069508576023786582554474527153127324651433270350767733804195351050726355629818895998696387823631345451252506006681766856425588526372794004791364352660684151757025528809940178609634101736282415711230893549149441424978498801114805757130289950676353011552249986867936868504824364373086301746667826220245892679161167159157263495133649727136616234620262402239008283205850851403246390425075465669634331560688503584069239386948841851050686697356716131207308219495537115581824863385563687294764057030996721592867406769237926053423632254384583979979471611263481431953412408961664757180899262803028642053646964743847976565961842641425079315633058821866657806405405353570096736102640469637134867653639192950281116850265198476881846350683037410341873588517116054041149388057617530953273504833683661799510280171260647654504410424549450119207090727666802453800463200120022916732714388180907934337840197063061266897959702190773154233202924608345238401483216956652116389183152100948864944713361662795491218086739123451406513069533226442026726492349251915643476190668910133684900092541841594206543183744170219937624391231353491868707304784005699994802043391946678462145609318374709471822668506031390401342866009449170868645627466816366176128881868926776146691025371283391704475075910095813449229745842037087764351878783522442248597036745443262254382489387056286787548746147262557536005477480268094906121627780651651853542880622335937729785186669407012990979941430265228444899754902801261970568231703679125849333296783243332940064171243301333931820945605285225444907870251405643236869556399238725029016591357974711927749319873851288846389015123564861584288616158812463042793341486678972220107612693777354820181356145299020891879367387350106956874846293690588145704587529731476889251950526956745579158475735383627327995844449982885845253109878648988677571895128566211559195300379215056776773483752876080071961309687265581201174596639473778187581127119235466783326931133750828674364890869939407851176691082583227819962369162680072464374341579213621797321704393406692132546459353807270908508472067982565610289868023840168880167059507430429799125692636398459948378179483898638928349277209241424659378801959109470286901174322086433977991490987446973150894362806527327735074445324157646493335618289169827575108639844125371433589058512027839883807039526323572618976780239234664725700437724182968827936221645833013214663414731476748061174932153462721691664201182509934649677887390640739135664283473843612128963455421746779894020097151338223032513204904946733609633362681182819419764209748603804733843599681268307669070152740125891814306493991978971580661945634081170676366777282545217462709091999600282740001942849759433621754310828801579494177275848242623480020622717417331708211432405931646690861099429342183731743259600038280362893868590113430780198476411554703051162379388655812825244624599066525163966596551391157974766951280352499567292951945539802856183223246880723879310314327984529780444627256691595223052609790256312104024724689123248460797254191992790124871978952215125338724894717965906671649701631687037056787729154677147267649517757584555780666437058628479204968333398658375831252397922325633750921887767598232198545355978540324374257510862056628692245995054271538318356753289095438767481639762624949388634895411585944640110774519478488876646027514740362072026981975408913578113227995105757662391670366987393310336097543255134513758106267306261942761051369360184252000215318748078529798617750776183075462956482459047953548403168341423004563597612909673207072718481318880797236612464384795096912201613006902744669358683386163477654472222299823079196593114056640554033959258321460498969371618093821182068482483801631949629342129704740595319448380080438386446286361143590768693142730307915217766357211454099257315552934809158954919922140866169663319329644347945605909780117822892751058895341487638134407755925549174457587442614766907045970781509039267206201863063881674074832292436542751203041714431533081538033676612134848373370993675442543968761106729177894755329576922736591800133376621229146512476658570883062910659202280722229182757321406925348412128486011301788215419603224132414066580011896979046839059042559414669762303197161129023795584121724119074200448159696322870606165766056691484056330808277424762268171214050801937857689680037465740116374362544982054152082548047372907134412958752950877532022045213326483279771734656904597530003087210689951045903523582747580586742398841906370635266577143462479790883598641150019922889379269292916342741880194170942397856765190833548178485102520805114236871637533179599135210792110104479980315474157200370806282599832687497156782585781012750104148052977067283185614533895921631779054644895524840114617909314547411644675514789606539157244656031769844160843234715611918209294440373533076391558052081969448669609612737211169457070613372530639268625791058891200341706433036534409573876187262633514203768935610964143272190056110373789506595760916856451844517128614364562013696721745225779733215436534674460627002820808033587916886634051491690520169255689807735245124394491713867797734254003976443888873781000670470538014845172769543961270072267517934603346981585487185119767144375397825540874418140470567464356222691316423609556934822370848614511477499802836875420693705344449268292896791565925820093295252511032176588313507174251954702307402644819022216239222007384383354889764754815408745883795251352260651172701367517433761928724801374260578469617880705498493059958950800445822372443988061780999357049200983393319701121922700751121096816955418130247092104032335640963904666487812893115492541673201244263975862115287219053882449586886426422414685549705908454883999745847584785835107702680344753627333763220190156381142404588742149058316307593412175994993856843038440660406487568229611429769100014352501682537998289588384297612116727403472190726327920960801457450970234281759636525985199470436273133984204699433607805457142818585448315121409732125651342878009299250446595069003698345956105561138142238344249259859899732946780580103604946857761218744283496584292802320052623433543950201591159025259492073247354792775210054391322697862951469266007552028035163143948747260973749731426324952238289005851891787547946142011438841923279844861029896215966401926277731421467946693842018401314083994943858422528593713784008548314846416362831208149755464540349506566668733216331597155000230501756900569663137481137770687391697821755000242880994171939139857139258354142868868012779251016467809622075000491478553930572070947856444379025458235395592022201972729374713482546052842260476600176289669358130014407845337686600285792989350001964282808618408000621046281146655151333388688663459961335278632693412377679141527828956094824384159276923873386192402617608257560966780803055548373939273990130057817736948123332518053681402558130617928976861760242040467903596857760437026071962705071486684648004793448973786040090050442108291321944881468503964774090479375507135911279252996809012342804433975975664043978198207070306197100883842989345453177460023565876831409917851368456769364317766554838273298149028218129922452254702280205394664814865100380498752272476765633761459367912416098041895017879843189055557520566456897635437366940608556816233992622685906002421468475152013014365144685507383369058731664672537390903520040617130816258884739955032691509606541769782483031907028664294537699067164449503690977068442835363117523690077172773454504244094064506160423104396632090393976030245978203945360856078406808037110545548925981436456227661101708830985892452067887322432606035472786090891719338488926554215852970603883299388263939964981690801367622397988550239849940603311852372297545686021776201783243924602441072736355553829553046439631689344426038864100742973471976825035499023025289943378666632410175455678970313358410640036134637670637986463903440277663159505318388604377555484804158017527553131060935728956320451492104064065798049337247694168571873059122899692422443169119250874838353107150165941732058418793300482546509323086416897771820258183793987687734482322467309230562368795925758407888404239251740442542785279332674777611819902187544101774765731034974181249008361633779759891761431343757724979038305998151736820939509719947817008096542620134928153930799972975839588370374219777661987748080785101066939744558902691990613624624259862661998400069821928244573544843072726392929338102020309725120341094134207203266614229475107589385704022051757350941555764875753289217700061773131556118231625798120558114071095367765788608360419563233727285888151272098413934758391465108998862734992977431646375090186563046525621386468041892444672402317921425718010822563795435379524765514609344385707597765222903746328652630355497384897045367517502058197370183219579241750007469984380097196158268678902734753231086490398422821773494835870491119459085148558432551482989067465191313588547332402737039277956379019356303156833457063502182082509928430892853759250327241610497356840974751603096585099679068652089569547607581544979023780809358928852908720741536384415941729384741793183296441425357202476288370925246352448937602648967727605536826223224844652678389942990239240449039735235897215934297289716659959716217820443261090859043313212820623185238510102895028196786933909029156861170936721290596761173938820718679365369780365144123618621565343242237342316598806887531083642284668112734470336973864036999722297448832606914933987894022240000361450487480193775258616930839156477976752442119494959044044204114617194929874456046661577587290199595757162104214463493517077436775846881950447317531954328146703681468470895178729081871340728296386291472609858382171661542648590552482910074974212806019475722395484450935485565664620437375640844186087705511740649756052761872986419172103290984711360002513910446072586003031337114633257899201654215903543178825800149512580974973657732505185011174686605789390484303963681917248032558680825008790737417375072229130258999827667372372179239568165495862522655951654195965681226672244418293323191707143431358165265875134942586307413073767211338401692969158082086081857884258824258888308038187546947724631322101912182793560385857638370385835360731617571112041002787917877174264041565297634711449588161560695512358040643232022851567236696176384156415368148470926763033452781196158909013560512799550604427677053996585810794524165763036003360014739801941280512102530567873420540028035916925232232575049321494156319188410543637153525961622998255452653093469186495483093172873785711868458111610240890167718231929622397877463987108539824326714189708582359963671408132583590403459344281895588616271284981324833496452669712516737028024704174389111931310159365584026521871906397227204128880493596577239374526881783192263154163130159484755128837662561360207844035379047053792212397540764402585066617573262958492126820549411658964817219352645264125785699642664730090534954166010345106801245903078711192089232147038890468574505270551905098563132317334542971767561523709128804001003447459117249357777952590685453763886764891200156439217011964581108044314443618745377200573752662471876890551796256908510971055172498586337558157333520648402910557727164717336784918638238513667028409916489074646923426337719749380392616615631584836042866824789834221161630312262205524767507950223388408368214357231506686440555325563648058792672509645427715470301372256850945487775420347824033142946878689706417471241837882010509527422918835327252156337910069617092929289539810295508907697322619212930388741746573165688814133542517672314562380221974208637373879506505956014175767052364027273158388753737998208912366031273537264689737647994224218964596452907772572108956812812297690125452439133141209996005263515983337735494930958384672207884311298821721098498578616270088196093231980635845492685477724055933857294865140837458598556734694532823101049303360236965866526278513797694998465625522336416573649417127976289258720911942089385047926039386806966754041295235284194006564336167622146263307467479425684044641597365954747791746789503590542488691453339006525183966864007175568536929006960850473360382815035933779491441365346807124987861875722499504786294956031706993051481659158794126101617539350765361377101771245708561457341082875299609287800140712177042381549409388221181835497153099830814346259017140477495150473281467975121324046962874762079987986281352868839476900401423872908165547691510140325001312630683403538736743887681754631004775728361249087282933319913104291330918061232105496970714334398594730662991900409191707296316390975551017547643125225209945179838114509589221269542658106115861125304655311402036937264399001559445203119204686156329649862419998331794902918199789924859073967642627236969838910054550233513437366867014488976683787295702612253165181846951590879814602571684412727722846907261027104664581540268096316596602926148759767728111075481909111177169194420705911710721490023531095599963839039942487705738055967896862686191497878125769030172193299283304926831760000795691731389149476729400247787563798254710805532497593040399011900465682816772310628678945581514348319712664047952953045228085249319461468148595973750953027833514752250920102508183858412804980492727153037966814851112918706225891544593551872762355045106471765298251166853677292493956662369300300737160432252510233507405421408934375742713042074746760545399579106191701905783125768930553609199191731187791110856343622796290088960835288047996761346998309498141137667961317779240855797780513457274165980100948553194774503244834232334860430058263821760753173356860595942297426535484098227794793792764888102973509195456847473938442163683993508353480117277872781303983301866491790946073654132296925900060360442305545449367053558012530764146562349862953582442418838362305571249978029107995876719465075849188975590729132403795744799097913695528673767404576587636797012285119311331583434621123860934847249382252751743815305342810070795673976191128944797957613901790465570853562425806478239379380169058448028801198784642212361350911543370922357493898781110656174505512260070107478819371663018294297089062042711961862346626871549965472049725728514863367798340313605990792794996366366791164372595255398853162723398409846789538538211524660884072042574834821319638471915834922578096309106225758754486033724115119269703606469302694448797080847943541089693943193364836324284408328827565059541186255108456244570440472081500536292607710953657965416494888415942573819140266903500479340084972104892470739608563669802203994435415845905029039697157352344432145409429602353110446460747011930956440278330661805523997114199368336963607226076926331991446838583132407515458168207787860417702928157201222264483495849955919467313132763976508923342222964620807789193191383583603833368204862707432532777041330406421519402095927356130878209254356900148277879526042563346394832766005301088606403259778264980752418226615470058596300114992155008505638583437834819947161403018337310713606750966026134431017371823864787560481126379776518212693268178603310871888086428955651500858991930172101649223896192431870844850810820684465029615157677156692653005512620902633851075848417283766016145104311858304062333342962152450395321363871237265201986831163272002280240577590066372467708794165706715216950348626094437076022844444732579336425199749305592860171712639630576264758219451420450262641993454761868375548457123216237509724927870738119602309711119312258628629022246393353735431792810834965146721124475567775451802711767830966370723550418840012130530138998607970837208637133803487560410619633262387581147810597979281231580009559146446442167280072594944859811915670750776783656161725758073604492895160577454914379057632639388338676691876009586684087475903800534232510547428686925907329700852212014353147122577199537988644743902810559246387369128813770933666839384841303474208443795839598484747344456651013439485775565195498140158561244950017019064766913835270616349802324047297212848905296680752724902824136459706985534997716362240716132574503250395516336236263017879385808827043965278401720821846625754062429460524049683923121153678406463943356527014969650021484184255222617525905683020308279756244232188486721293645174097756557701203684165887367549126572744455146961496574716930764845760632125770260607662133527478836229435823487243843666706369861112285926760656551699461225505646538953081461589979056224487900047115536952242443997881037979197887904356530276796131574674239046819442274710678486107235249088687183275624724619251668825092506046236057622809017140138326290412426420407983283816107552367729874125904875870439132456506394148724151140004012129948118094062535083949965842202556838708577427073583782855373870278082212552240883490291926587961726694309150935407266891593464998574150418935259748416106565328480285425611868785107485670505864844452784802033573100586038196731774599994050441828748003584499689095279195744990066818618982889938479344253476151047307200306533240791325974868763449106248478954094054158016403387343303823984201550156249283757621994161944791651698780498408918214601946982391790473889923897306055294888837118655383930769538937891017732831143247512069236455105618469092615058170678496818522638831266843085326778309844758392937718172889359514538701263163856267391660550665733090785536774414354714384093066491183177383024123063705015174587429206969785012415304660294858135138861541281910271977998177624443279308422808876810825664179711812098821638604164687842338002139363705058166070066980844960474088477001856683394893245867626473145587348497245402645131820107357178189404733029704508013841197013637761740690732028900653730631055615604517847806807171778182690890845677129920925613646088309564829032182058004880082698704110549955300766967691122409187567379129821270072473764058438135110447146597903963594507691547527096953289607990171112937571444823016094670730844021076120336146985880360032741076045263629717443295837804939158253294909572870347185007580535344659012830834159963760578527433224442979440053104220958431835489855954870522494166687140574234328005800973844132477997878597555682924576124735582605686927239238752195333924769216470721174139580142667070271504692566442111910432955073034202983534334487697794344517177786226811726788495649889852815360132676726020361282683190406127695529427987996541746488031804519126495002425696105668237359905365318221972092304865630843774414489323076562228092740811613136562646831706044166556651123014121253819886846788521598124507950690065897228128999635070003143110522498461537044980734753808905429463191853577068141309716378478195413979262355941901443445920027795404542297778920466984181987396627570855716476787173502640365501190638871024353792948933087210449378212613486520085876532827421626013917830634648359513583894720690283332729927274763152920044234373149120886591065946381530704086003717218286131341835969555399224225148164911620167771804621828227383139430724556870265341261722894110921442810558175587818692196965251830113353162787070458331752345518490831242204164011515946386907562142763715277270290014331624690975115002855325861938489332932137081804833342815344579759507028676441251429200717509341700601129596442018168444997875105678462452582483975303351901122645802206782294086019298793121905340619251370380747666243964576213426079117764885712583111534646510746603221395887186099360894127760900009556561407028793095981474605621598663500893735628086720786852065946658883774709490417867422990426141786770295827640260231973327582317293189475410724913847793631590788411438581976109864708104072840120083266006530068191172253011469982051763804258321302663269654589135817089333931807725493056805326135131713814196560921803996765776851831685450681452127071145564011918343479649776574832968725285489766520574292953188871337562734076354351343337460614895081267258274501168928804095304724924969202036101123893236097123729818172091137543716251906435467427880162068348489001830084485354980753427799059947723507981151195477108206325958283243728587086239315898598940585567999009709102516064358563609545941267358205954129944705447403160521212067632704698514860708076812681216165009751177663020347313062484815855439238449998219066361496346495391780091695134822592095197293084084534899982397975178031485887814914670811756357947901207708239760090627355538113946957402845592718029287878752918155716576299871438474277531902965301497578890979218508266799150765679955572076031642502402299804541863879856870622281578673373081820673831998760255639196351119245849734825310372949653436209171879290934253984731486121639425414062226618747927034314997156829475665267574891900852733623920229418711295001817153663221506398515049275630486755058964904624273852689823352794351138875013128962195140486745855691174473176780379780319507221936613364620648237251457649598700603819540973924306806831273799503926027336505083031767036459049519743748380112588330283131645975043421983138086913461797650775341737593829896615466606198104390148846327170425067910196362959212965696873172637473744541007994228315989759950945425034408368553322211152054902123877313368955788941959010155472386247230266386745961468865422380699221859374476843491556596314290340202237125515291139020926818892753723578333779149825850009008540192024720115713691797988577907468184444351962634645893584252816269763345214684063889824385973056371261865429651193398626342565285568887809720400356155905534220842133347379923598300009376962283770774413886410233377031632787769412384828509949885981849039497768818809800667126667282353943170498300888023262380699582858687208006593738789022052104235433045305965017003258157481473620413338784985940213023214624381763948610077005108451161139869345529583932099829704473490232094789340656236277548205438111039881058313758299218175483730793745487720914061239778713796976819965382898407421627064518595072122155472596221444432468671301493344929805940911189708637682575384444922696578819512717866825857038068326122644380890627233043793131435732645886188267945531451984122147631828849214090325700042271559510620334328970441756956941477622398368726496265614226059413006221068784818143573993242115511139349059582712131807950243754046960890275746220679636725240791629898703917241373848592231380418248402050614673854660700181747637836164844447407638316170314975664507480751155202887857360792604821984845351778929767088045180142536866654587549376555448457152760347145667466847632711868943193645281926094556596649072728684460654999529342279734333640796293587920012484584949334071510846887816044808352628521899668106886522438916903532287107877299792603507948402740473490968943174235167753294967646814030429232261790084006064547804204314157944936901834690524956884999571507182610743939885739076977207433939968317514610320895046550649155733076160502715003892909617063075234135798262682016619604965008295412133423094966924208557299440089373224682182532106656580319116729076466228759223051419764385473047455250563426798602217010637738805968000624974988154291358036056530353387285166712608703357827458976986906373174118637905736662111441390067213377621356239437949524727009652766697282250256468690875290558281725965636592439984802749583457544185905817192967050242136584730742942417391732838189071272703471356470153595923326285910026528489199755615784257870789774731768829817023284266167685167206607951612142928349193493680235194046296693877038499674486950851614998140157152253611791849974142330091600243302731402717333911157736595614624483286869266795018429444164005475536826466899424321556809016027375076158202045382460830093263234711858855474109487441244415400421508368072001224061940235022061924394832228735763408509541772818779736184853871220537207918840403909321491181253521621917526286977276848688607355571435685848383015539806989148692313824915538100977468971506857713459037776096004079375687002655221424937189878713748381715332063706100684439893736673680596046314844521430813504418813045914844812959541411532411217224716931046914936048884036963507934497315548565967669919937748453618985945520092566689545026673456703269114654654153970648657946596655188776496839768251981416386596046288258197554382326869473874577996832350776268767749859001909935192944541608582966637946274198564748067158139169709651891836540727006344542204802897840219563424786015632411183410182836483787231793541106123472550704156325949405834044621407444331113468196455433559382199500033815926336221305941817542879849907187452084152994969138493780912950058264148276212064618514568109095740308501849644571641865841546585087505268714557685887244555211670315275317776335638563431202302707710910305442452963020415355902091753169838979685193140565440704150979297402003473864038480882921205020731797287689359497124712730560719995134524077051981986499938103066153783587060867045889467262436754289691840863537408772773059784338873511570995453536281812666085882707905915617210851374746131949547076894877538687157971283970648512222510819022483709132469570325963586287207013408763659385135486038685223404765018420766481529165785720051198720410399002650913757934768644942947146376045708194955406562413699373799196222190496740888991705555938784658710052998342613230184019330928640981846085738672672269612145918836857183640816110088853257746953722271723654917577837920208305764499481557226755984916662548138901392387616214158887485690251689680861939544408652201222050081634996937002338977331302256268476647001546165760826720668874035691997475382125656553190200558005548045910323495163216613230272619805112916997023933498668858412661810641170777298985756239052012964919731181998071570316802764898353934975942011184056753265808404415068889517291486119216767528398590544978278465161793933719388397401900612434027978902075341117742677050821430620483493467996824885178703305684103524998171912474211680207312286198349299564898592783581555889975299773265966178600122223453632345954146802287634433157956229720198765819055938518853432682917923963147192571007315359861899113491471952671486948249636375032751170051702067022417321515386036657295439163279860452103431294294245780520479466495228832512600186008958458970995444951504235709269030770026108089360717018790226690379235359531856952025715451332099298810919550268142737772735618335854181675425027248839991981762773017290011916444758802611951677650700353235851119488946168187754970252826240296206458490369668587089316547857242052690432287991035482255972119277411587151034730650876342536206950941527642779701335952927554536539447249609797742172984338656463995102191389799247065687935384264627315989106807517905111315008523039893021221437217291790397428557471462219686783229518902936420446141292185406862172682965984547062173290461803779572545828988209968675109341862747593160646685581033482889871143092764374247349349321403986938755348362471799332103996903338163002327261447609872504284339490229186697599326886846280816701784188365564951871021814362047225944747515025287105330825382072007053618323271313109637949080008396056523592674576048358905096686544116295217198872335646525868326931013770129791011262472924523197570876547200572377839236273576363697849573940793551725991759035777559902768014887094058643086638432716434112315816921238040225768039868410474485478527241073441224516138176604233957014405307423454209492872992601537817468163837802651646454578169655855983220207093620420568466687546039640767859551009546570107828117216612836360764384126284054869042869392714005764687682188480444526308300867446760424401515015800093560889530980014900283864652909542751560973516089738893545717867810928497864247235121342818785276777598798396390150199624267108903698619635963863656632803082364990374010612248225299545111968267492876038522750119715522176649588647168822010254912562916344301716669091672017084000806136422684862567180920296299037730775768671245561537699265814699986164266901999973326307343870256276395198970435515469039141636954536625672616684253356036344931219396562212231561326802376014092431917869716709331480183769564930134805125274444119389586930094183937086337081195437015118610553741620048096872046706385935973530557517727235917604919152377781483519678311562633684550862166605448198549154111394561485231065459223327650113394524011293412876844938350405467201194606923910486837970624948745232095181656734628050614886093158691099231633436258317196608977564128093022542877160080386352521475929647744276673157091496115920466378692641938586943796384126993032514229047814116871448109996800466456506201279939549014137283511321906194530715054115456211388948098153790963594406509563964718397182551008883254954626146123510520704840999081377181989948957256683599301452167993750461667157203723602081141648719430481910565486597353214648644996857915775109255139141409107410107490400221068512868417298133554796044791223589143046670126262867029082357953345303245178256134863275099504452697205651803039174934264931414101239966238746448636681397283959379881769890774556168323512978541164389092931194841894642482840918496199246793243831877473324384368794262597058242952648560331346741503026672699867741534990441585438781583456083616747524912055794263955714957959946242788953139501559447455615384307333199606268954247022524127590634903902679507274212860430116589353725366739271754939349131044868585431809131723117663496968829222240084663959142794902367060109980504861254911624858816458097175026988604784654239119202562566062934603905648996089103943636109493447608661535158151921304502365192183100199481479458287573131180258133400682547447694775733716518374438603496868251302712848666652734108383665225269464907046505362222057974501773235605785940174165857546237749355962030626083503928111879851530692432039954586920077618215853048426126899082171591324937706414437654202118467385418226535195366390232932892805960863264887215069271506321744277638786086161817021556287896024715291203245208688633253074213766177354017226387948113805617822709143164023237154161145811130231540567430083291825597722425150797916929541312520802242224592864800065234417213161548451053706940344110551774511062704897560963228869069284835721518499208734526077295130610521351763521044122691811169088273144078083031492312847725201283675279002454902136335210409487098202055740763525720499783997008606514332458965483537815314061529326084513030616039493667858084325931699289559598574651394160944303316024777118926944456951587517725138487129235841664333106363847957309135874370898812587423379150993551179784984704514207797219582198146883947210178272222976680088947074370225539417478420555577735455229760187528054628757051747562062206927813259056516034557949194102348238424077572867917076099841203001521579049342945197731232477139790888407442210008328903769071556187430153067451699300523185609798667098055200184974704802445930486027833337073791981714399995404941680054633182597889921589571332721956924923494439351187231769405069872663118347684985820252107294648998560105918250836784080201822687124266024863733648991580661927926311613757590739465191167190544563565041855465472889911999137803355527256914950072791014328203783707327411606278029997187396395152352848499174601759093543379200949655327385250475030126177109528942651537848793066585181276585294586310589071052475733232409329200924679089501596007859000187147737951975275974434853970448979980956134537082688140344379767546324414233721757847945931779431020522818121310744348604633376845600750761097390852484181117994790919719493877209413961701660745812439929318366478411154513695059442857076538900941970145271145604954769542717064110330161482177499528423035594057492774229197217177829122748155826916004907858234667714373053644278220398405566658244606700748071143739362438376601394682246660719595773728703287987910275570429923410153966284238932733196221118361966205744569481293461248761583964833726999639978162948974978952425794869705583982476164911817785309906138914661814845328245358616686293609511648924240142596122527780880412100997054408056891686422571647225693064619632321062533975884259060210701291907685694817771366796342884852846120170436485973978305925360778749116120548531774640458637104368597534929238728807410378262580808934064932735128049934899992573066206142213954929628632334272598448586583507373338374672227072439210995714168162438770607909645310747386683014802947783065914613036748920914505828378881212790889542456944902793006532163290957257657390173851263256765522431662340043171644352356037709782533538547568839413712252808250885791579551918819594918311265276908088674523179128947950456063559061537033641554678875640414966758596218512440816014698872184603110156835317287036224960115733667592987695830796360213237808588874644880130554584380434483905921949053107447083049668100618308982606763286441549827773875738468718934739052922335426124979805595654531243905047629789177476003813134821207251418772733742532595056355567261547632142980037798554662730523904456901629301260704263850301729592144042774766504761155749443679375489828481869749575896257837502990197039496064246466821737180945422416298313356041479155165656021771668615770948565444208964937947673150112898188111593948895333252587624720780774269638914114670338939770359050381793655605397288320052989493328893529339230017657705032042723689971915499978329059846626051260530319172980080113749445613581230844545498933206728624620207883267820595679027294098226531578388260721656753446371801846055762910305355579488390559965461892806028128859889435837844805728523868533559736705572480201364999054290806916274443926620416986547729143015645391673455790850796895159364216630680912896148637493120413003220039663479474882150409773012618157427099624308440770757693034118090233240776144507218923005695920625798666425283978627429192002053434072501575079148374294900150204135227632545438225141106294527542628847493389188649340823258885666202922094762132197423485412547810465060138394554973672378149321088500049939100892845228976238333011206932711863745234695318073398274954790481460660279840006005484777756774089374200278836825645189581532531446634591688237548929500025208497578626782319715606495803649091114084398198214760284643705531678187759274939890201472237093440555832278232300914373075512718246666180063811868314104254680136733089397817956150440562279605456886305625395167266541948344667551302102167790895936654415296786880949641887832447914200156665581593808372099869363883942497694627852352789992814059041551179900537107942987359645388466770291664058599539787226329297139165117905117890714568991822624208988810448778236518350301217040530561080362180838580829372770778606334184093544188124149144341518960550286201752076783546506714739708020185810321404452190977070297553187154787711911514561670010078367040652429174610311861284620248930159611837970805099186542244379059459504682471978417157422308442114204950366358839660011947113882949807890622433252508198279751507505573946927602874959174204515401865882633958314805631587817103162220135119472506736167399671528322090932506348202770682108790383784542495413804322186850633913676829314474379225560098525814572603623577229617254854873961995736472379734711974463502145671383912735257060135495873776482005108483025127278048430336974221468119659651820607518291661383081636798876760690021511968277961035942219145312685024209587112704056006289869981623394075474126573032542253045388340773175222779851571537430058793851452958200765282315473892490941956208380663079173170840887990823521932215683904994500609070356894663824484330043141902465894004519634272402442523750866286836828544626763797031553555591220738255828809606769404907684045010846998016838249776286725635502469954437377703238658577143678042307564597321068942398757072045245220560054313033987139922298088257001551229233309089682713856906844960796949149861988886266837058751762397913752451209118115939461853882097967440994017791623086110780424262937908245459982274058305941458226332352514246752225669605676277891511380648071991760447779507520555465440019593962649823366056773450979012148393073748785443586664975928968510411366970914408516748164851735259745559467395265511857554635583887965846946638628355119111751307267987513442810502802211935859099272555371420011494919798770800425616550166407746101501506372374469065348213019528144077936803809194692120680173167389004498898533616512002507061258919573719911907991198122806824626882660649227517943376245315330722430160093517574049341202317143997143837026321780520923268446520197507991724033481352209170390997697217970605630327172425322019285349883811842522299247062204542108764725339460139219475482569839365092235880091816060733470375555056059596535787793102935223817880985832161532439504140095504741242621550933075803464007098483736915631692481073784944057393780557334052485768713595835128946977425357946490255929246460173693962902813252010452346333553123032777828235404741047014996965661720788346451145792004199983431995691481493761469229757914920531510527178619452971498924220344232899564251486971485873127707931131802175306387270601721567139993546055010306461746275905306156094269131640172163046446177559290375928407368284042158775430182255349305152989247258328445022160381991247383139116250801506298205664667537219449532869739046803326979733802067393989234964268609201963657114984188924272533239822321201737664337765676193122381376752585557346432945490144399559822169376765996668489553447117422929748052655432353750735964641969330797135903679802769741833312429450573335192375015845068252441036333106650754217788660092290015842449913732881613978497983516307477380337233262202538800749816462610066294845643986160496345836689933111783252706648680922231574134378497221994492865358806026573087456811673571970531482285318676364459576616691265965623277563667648704853171801342867620957730887734369769457375667836927744170906702780964999945693233195659624042000183129413157948935000708444004745652343468422503279806998990596577820606296087967202396559339450384369709585774929274767184445942658350322558670005140453644199459129843350619090099357050402466183637624903443525508276811922679684404581606572205561625090231958025260507332210356563291918721868970889323079148457119003946512508780946791035518320839307802343734632736360544557362747267807475872091118065655852592523487371462636812519158771689094316449177545446758508149557056804227482544374533019298986773453139383615211164168693878118761043647908061139084126642436800177876961988813141590616076275773149853306594755557903647750592929974422357463144956941686445932765086499620976653990106028580698284477132491533207293363162345447262728401182993556600496438870425871236486901048874430851125049927302333435453580917948648277278222335812868686006571549173701827846715434430172760286434195364976344317540930976575105826909349742289137980891786036394281560766202162947685002281740977371680267899951619326336584125789403299604987481833207704577319198687437136956459534470529693960292205202788006741731042866784957852651923758324491782196559670927881130090469440756075606613841719704220388347746188747878975913387923856755183362858987087773320937762103868704214128217300843856011560943969020039308540470623997970464909294907093231134885954497627291821490839607190473653078108806005158520655735359144378863884535138106142430507883468252170668683515901309944449010823224636112262130855742243825754655808055321895874488101792993086379085976571872283816639822884069262237280164441502221942035817325392226294506086661695344738657053006556214271551468357427733998228672971761283323713992143602621577649799936133294373942713906529525746900458411231826639756374465651272516458478975995012504633921693328471461620300489463526304870549220701525701748517551002409409241379483237772668294856555047961690527207438171404928634263590746333038292761727111307224215303545231988055194035781810589654621760893824567546061902225063230850662623555142754399368606707644620948560883031025407232169932606139512682538610059173725821266130445658615800849212702673890788279383054442670769692093074551889645090253898950695377229009430112955293819433349360998492624540332688863561416283770825226531958254753870281185885788300443526145244001358423365091092018586757453503811755368231240609559481790551250639714872804076057223539535648272977778164064524532413798595577734175161516678667307397790098256918466256647617549116216431813523669238299337460977721598701435987152207368504073884855300254271928094477725978245279197204500078610531587018566774396935186684654062050287955755374595263708268844024177363037131582302356544051603144249514330577646501262355899084184721391252938860856117777713490779836561895094972444064719579891774953995602377515394308048609014487615881160363052111754200949800675075232305367292591900574917897254909824791172336629111596414740552099207398132060466269937953539310205088889790341168559741007105283405612084537073003002592148007667452415972525306371969650777881317450854798444776468965002528420862451101189954850088100302348329433376717546604284713492076398496042349799382250107820964613678252016347665625135614883249678616746324202089877313790248953336642384624505283440069877321143259006438712486357785624388665476712878897569927719407439823775521490928537772814149252497558278138122154070636261349278801461664879577425715472079537580052235025453252821606078508031497274254633528414011260879199841081042869288818371133210115701907760868704137984660075191068641531025608105266714560130817732850149149936063540234787952608314925855463786149664871180033449002707094029180624576468688501818518889354721312824531118149169308819652726716899856570359952461745704000274092454985158252435261047306455760752391792682289054023702370157242927565847926932284249685123810328749486665819771834721239136962430522205951660747966967649811026402108387815213750510810747242461585170660104236005557715589828118904777357374414584725659133737657870465653067745202802873075970149457888689662432970196007123597455195014282699600707919259122225878824920067026627957476060748178774952875810118178419461934475222232939202076864499605383610815385571291687769888428385462016219585564369164619243146059161382129609118353421756961499020813285345837119887320180136510321214460410203150340518398255933095245292634185634328031283708247016676676872896634420793837042797050803196214782647128076432638578025982903923448267219929335831826187778525331854604927057818644271849553856566326453338302310808010510327244387819930560542411277682136962267609437585505282492175229549020357934737475391868662270771647032112916700486103558997508864991505859671426908442113602816271094701938777572896342943474143269062533729541710744829293724546720870485125792181350952684004133184181840076642991948597841111332782114568860774920738090894193982702297004547708619817718824344475800736816505526424688637987545592290620492569852165241779308970902883442659244952154564045214014644699821131517771346339497085015822524328081874287550514144771061299310550505611802045434922567846659459979330517343593163903261500941368340843270145717139993519541367579778660363882791155045479481587451755463144780918753738910426376312897655989567331804852962581324937018277455547467399222585803515295857924790598039074464499358976446719529479016681597197614652239366651924286046069963030781017694731759684277150998574717639052187427100978816555625158337102014115873624821183994085574571740041182695651680363984908430134540216918127826460909441685769242957974512464131410792810965012102424714765083527856971689698654327363659204792160220669460949644867170821340381763841828216593705054680722996178250604786832946896171692766943395670084133625957286035491397879350081506165576755755684724788830531827616984281517768992868094525366837776512899163356083185792588016638696652885789727441998200838880269593299130043794962079987777491158623093306789769790351760190798715245038859408148318336161057294428091504228416657781782488020184928015679770372325648375657111043583191361959681127450086104815341386327610683572524154349192837729521246493198897081436555409801513774624504581688869482526135906247017335638177636691341341865368862901885023993555032899255486796571541466815262040911629859583174186758105494817092139607245577976669583917313807774438004511087160233248307953080755918167400472234884725634153827503998265104592520545065828562574079057632796314887696310360728744699427130887120215064938679961525843715205885205911810588671273594795577256312043127885671824990489889804782353047580504798267773558132083005568110662903361195710354775287272044955483011229579047488090559486905724028308090396106674260129602314171996638122449761783311407649745496220288035274648247048636131809730698658878238723832924079955603752734388408532452528512788688724477086303197647158576617468595664686539630833839206225282781556362434893086446033630567386741836451576297959097268245457186014135721816363395226645711021692884190151790753994323508821878332248645750422375817786478490834490907763692525278684233881096798298825067177516879347063999684502162668357343117460093310402034228890135612473494981840505025061285792238893198692180238544479564900315420843893748892933387426450580981935308184662640276562133632284439537293970584748516950875830936604435057395888806817092161562825912136646066200128954601640390242817246606700647075190117102573708796005668972245470220529451730574764425443048964515688662831566383674698137439402092780039565092362830358246929141627599067553275602108876873545745012093450434724582776458934939072724007616915877880353599248261119437763769068208412192955295859804753516119795279471397954504423249738817658552370658280332490438104814652461860485803065264579646143217449070919696202623039206029242582309811909365959683998280513617169122359974164618157451540014365988960051794967056518254336574983576574314137650233660220335706328209140993828448015128531069896309297439372431840950421332151919821822260141735438836433027277545203710498660907926514868682978652895053253458596174599828039091840339783164933234924844584227409422764512213534485617128772474758585465007696382112270196677230263820613868278257514607615377258518637933396710936346124704250477848190267117943701946535929236854113422018816545921752436514955185489784399120838812654655903598867444196909384801095630025146367390571209094404674433248965497473972907668528163771717263121383953540414362230083708972059017929930260673408265838857375813710266596634221069999782436994504780422830065939051264579234171413899763114505738948693237143286295902038229055672429165015156557874114142334730399962441758218706390159183348178135942117417128278850668499436607057745302109640756404167810775061850428859694644419873018228800726838416961917005242636725659852711621928255680866432848579306599649989738869068849086696961187888429629556217485176428753492934749512459475611826147764101042941595415906114298940678114339650137313405249304080942587020471413428197125725684162256257287446869243453330425698747517846851569088713440378768635400472369139281829393612715429408035867940283303961443768675967470739120369684723956795805555208783274471948716207797313813880653505697733995889932697667989156080061667338429402254344556735767762496467437474620220730033197302173902285382716329940223670489462248325222828596020815594668831148201842963775498554430960503864808409513861241103911725272170644792594718788266078208048840530363431863937019535032365200349448565491657637223426061145680613928633702470293046179529151596769310950052404011981223239316050374185768748167904016175654555871104516075079883322102695922775353580974213158953739619711782914484802618147562754120670546971719675810080977949176391823363173656399089274054191723228221262688856362580147430266143638945558575546615473786042115540364790687309679725167079782826911791973153276805919373522899277172759477307536507043562505350525193818451556490084527108699374104245455853595699251315802983840147012903442143458845106319783248127045393931654733436453784011633167234609987138104213682619642811536021750511275593791856569993530478474970981888390810254349224554989415949300347642644377727181894383754017383890036101088991815583104260984009052036119013092254722978398802032690129961839383141453915520435804971733865351272982222524841218025902334798856449697435113265631927457315768759345215663810700289136605990325861969792962823293982762310541512473080899835223161806211744871191223006256995380542936967002422351216843792297440695238323183549220834126453039155595493399329430734083289077445121203314545134571569536146232801801236930007684519159831903941091794776626058880552625215991266564296060686627239951325909502315256534383054253212569554113965932560275098166672054444534505678290115173722315312705668284534730336441022980992654293607835299914290678885458684438352703547994400941059215877389258852996430788684672775338047015391468906541704382073392141043759472634057460016134804388048026077180928881915834694272551326514702731232683651284686570923649041481152439092941970104706987427289818638381638155102767155447359428639698946754729897698156648930040789324802464595656459755312000760856923621763819726558316404043780026617437930768043102734048657744033266222626367514004808850340113898432290245180137663685367065878334281234666050077717484438112004818613257787085704295085618247747793220278926713352114584229751255609556286159913843882964924774628560488227486261694948346726961535777506742602627450521684501126061760372718708433034481418581467602808011543077580971538027523987023015824181300985002619833798993501241184268859522365314115094411591778558959530379209952612748003524137173237697654088231605889247138259464040969579522940944324698434833444454269202129941226528493136313670519904223218209906258547861591062765051429043005116054869813395525346828805891233973279603500654373301064624122572538902191307734172445914831578600740322057716948123067027462504433372396426394443963531869288286154089367971176990183065274156556329058793877514076160616628658192795338830510452076099424808707919225726970421040735953108366804447978587214345106671132402714409226247002022091418582127147617488278178129083562284558917833259002066653932172439801058995081515825388768122900003087368043893875994166952543915219480448675269394239775955215232266095213575951542674415809643136962182168720514837709372531544010622569227471691353666089984577106233727361423612108831998626513627511248215773113571916672074141120904611045541472838477464561853153795452416045906306000819534163259470998447524786592254554154192012995258747097715211749247492107702272612701845817246332112438878553180981340522667996699854190964986353122396048673972014726658749502524492107716692668298857649009828275498731518675516745730332424958078711163393942709672413664256455822962502390032422325485985611100699841490488092634351336023194128014904201637300510359682677542608042876696264868668236232500110848185454067991472933492540910237157161632863178740958364310808454989173891679225773886566887115241068670494858477509981938896321613154528637704893790140470491037918291992514927676207563089973992485077509515576452248913320211069819636064437808607057131391226047533774082237504969617357760755804017109283792523282379979733516670079526192067460312803968061458167877936310579100641415572588464285738931052322994867261140726169485248704456775675367890529409531882732782958734613303837748240625949990339429839203552543931968953411044425287656941084763932680817834824190959471942054945713399779027847179188411874561833723403716751893155917919947893392146713097872338613361229537438266215001415126369201636330732263564191223707425610624203445707275356360445895426595578163908122770534162641436825643596162231471820550192673522324403181350436850924716843056347163437141596688883407559574784035199943476094213665274116460055146472398846686668601703447273623413630142198775817398576435441064496754429836732072185804034881338447869844359097517198020410886015310464942463398849973879109200277115959296702978998276112218333466807873102057100898678121741746814772168230589218260691847905272766180847914721241514941440804619351819604294782266394509205049521610752349218636015205260712355201551432540414748703944633228172969131398349138200684585556852248612757002587668890258187905255721146078756725673106083109664002704626612911271142902571133132784041481637773769525164667397366688633082908505416321313613569481195331165812927104941980583066602729260923909157230698941438995214290441413618856772545583054800886145034515417530458230432895454179180817408154304904975096655510669839076865330719901748229920124769843923743625479670964219409382026292261694263092926209375522962577898790777917383731502509820488709360793779579869625367992012667326783726737521333135294288164970813194495995381140032797815632611741359422760285864105879076057766422379348801531852117017390271567543601696768275004952969789291754175938307560030835870731860778349176668336985416925662198621853602029038755469623858161036904872194175654479908861569085759910448163728153105446631711692136793518837855657769961274436339465459319559213116750326212942318441103594629757554312415664852174185534122001028549277928184479170762534072265478010326996379837600418776069693827703579030286753242455862681873407211839876999476100709491147969036261037262167816252007752709000622385997860823135492113971734834592837926037742344607909689043531623057430683169919286341721555402521793937238469955227369605052323648014153535548307055613085499464294563246099584878703001770376589037234714761700501645074320638532674790341026290205590774007686466400252875738097130146660517048840005756255547350873183556207562965648990499954603423582558322093023488136429892506761483168589190858424942490765741755893332463880033298160178208906155539086665814305738921058536958796943457261252242430086328016193901490722679141519381072707171677416785264886075250592206361265790433935903591085413397711668964678179288687902414462444197402437115909473645416341893148168729380871305860976759510708368989220311464670087879860183947136831783326552484823072208917014726910010022868209827581446884804090729647497615986924399479402604200035970734757607088466843232013929334864257046319286920613164161437103584614383564961191487325741358711480643950413016245377384217071270795579641898095968666195433703003330591710458588810058656747219281579571958196200208593888206036750403503618158072134029865840744581579007951008313227456381064647856096209358177378964454201857613431332231443615771611550903936213611267046085244920995366254642568230951398909494778148100706415402289384945132815875636014197259735073745030072489371009541463970852854991366107437110599429550627518529171919026179320644712595860521395086710618414583683868619357466099267417726245061800461462158329605818136645955227275855171500314702589340134603119298336583240517716783506878810301770765460423982789578203579331716445105380871990278762522932839706151823580506072998112286366598889130245009253764956496294331179363329758189095594376045915078261826212743456164029691784073114983434722499553088793088626211830528009163713590640304571459894458079117912316952882857562131139029204863489776363157734621732982148626646813987218827677567733382485639641336886912471989588284764060210475622348786701984298146776782106243345264301656196997819962753469073672950578290245908150826245911728128083372874867505073319277464264742194281198213073710933630455797846149649027103889722761870112319266039391998488187391411366399554563691294959524487241912405957125289548342677104603533659771345624287968881066758019486830039738885765261316217387968301997590771655831479664597878205732181638075920732750756480772415090683314044970257631933341555919901456342977134397744014862446787634601494411747886951014469085579539151447568984959263928344165131251611259820951138775999825510304007230876187465700553731947834409700758098178666006641344742950187860206825418068378995643710420166711125492107603316661430045183516179599212151007084697180713647506833465358237372761220663256865364663081260842322330717521207884528398659572806821266980415469794266825447492321414624067689767807205320942083840225596761157787508517696629272984145945531159138484845702370215746439537948720160082562004044523310956860534677854122078372964152267885109723855443314148297461497619050230687091969201853017536785891649884816480265049165921181902399156117410959925847472448848920021254042459523954540164546014228145622392681090082732812882903983156289728230785266712673689359770134023064506980369776864448775493445612050894106130200282665515126780339850420835702949480764975468622685100564516357834382038403233945348326997073252710580614190330616210495500160239855515997062626294370805883606133371414720913701498535703047708279992668689060035957711622582219959646517394276941655780784186903001484916966234534681909001451050228002249863073914995252905211577066976769849291005853516863107706385792394797025154110437907816488702266909113161381420352019460105879644943995708489561098980605968873017161727240931647251781456771296027295716882959063865469933724223836838683969971185229817942495089268289007097818375345835115942397536245931561843499390285063480805797296275800916779683547632250564832494277631380516981678888589966106287682591749621740036568599801384908625770019990524875507455687604126945437847963375075532039405771166149064798763419032493174679770603145335242608669064197355712033935456606860132792157245968296443507722389990902750557877834680319629876944044073210487349471206725814072581906079328225504392542377050075513013875321388900726468420771522101986204416446358065743199485612094644186472551826639245184298242994688164086515723043152003285795959774120020144833605258427582911120669206427461788423035839468179099235686314305059901051498153739435565054556104760321857980298438628105854982400679347679731990205851333867183951191760855382690103834037486980416991909188680088148588217574159766558528191984444592370421513765681470204894339044029406572059233457965600677730945339003315101726200756127046207423896411489922634963310440959221950299445508359618753446141137639387027693313826158916926876350338530153062519090210857133539666942906350270715538479830240382890500972157353254741221207706389704152869954258545675991523205849591660817288154689010174480752452752761319037758158297911979655888853181135943723513236757966874307421313189419728247858161135409475084552760628228172401037218980545025463120308461295581668034868321810864854479873409440223155610321243757911324434774886608306662383701657475523295194854432754351787225523430532846849882882950399162338409218224656741914162701164366102967065999053339248899765208970187690778385492308107092826841636689583460220389712862057589248684609654427096850469114637837527883788747273526627796800728042337109658382826911762726075576858270084513817539717141432421258292895832852839551345061268664284137538095843005668200506467085441334222171307061648653681584932682013992427836536366499489001304585944123834803815667552461507505509366950691742804727819809984804017960297467859697702560721361425547122919550026996946745308991581325622880075887439019782082516670877713754970203816672731937657146506274636497779171814810300112229584909327906938061639297019197257215622602507876827901209004532656249020246019829850241704050369873627330069390106665915535355590127320117045418733908891581381266535262342906424228562557735573382395844041874390449009324115605623891997671454388823546758639303522474412413004768297432010702335426428150171705106988111390670474363221227686737815309070674006002819514042070374520960590326938017959858237081092978541970288165598920492925648337567972425499005668254390668728940813094810468518291238528728734589439370491455822608612401746004507795481268929918967888515046945933542731317295009334261297280898442156297559685898119758042153853118247528770155607063183850460672973452562036382033394725432673558127885439492207509232214897301489222752006777987472917841232915854412048208185757019510052302146006200998974344159159977402800994449132338465333228350970631984113168413570894373887367669467654854616068564863773044304443673450822613114672011012775492704027546210457681783541049104031579724202567157793391945035098202695638560036621722277278580378903281623502061526072211466355530091874643869357525032868380411746025441739707332559850774140868001422232794551572879293773447436884826754066571764191655251139799104907422823030926447837928518949093232590863570672788254112790885051548052520274594878791782719964428725909090884664055247354602350243665881707179343169136808678199933006728811343823584759406748138645401368743441278701812532097441637742428966925029486858391724452263686506527793103826134560525208109795292374164476394965577480714513165838299559141938508218826396835044324329899493328316287534205254134934802112923600686831321245661444986726171299742003622615260554589990109864426999901441029306598121608669890723325783444772922055482847134429675511446344913583650275511304674138302371004730081996988230599646804617596564091537069184856333390520070961229256197108443001118582293891481738101150047415001475707189226695311144901826621918567158351327240256758106538690601827202128922464763378425394276300170628604457906732093595654308633514644159926151919354893598952310870540598414530677623274154902706402049244088792675829810229413455287383125469393978916375796459994541721165255092285611122970057381812172190947516744878359805189506205921977481914372199731804327516781132981457037586359946461577927520356811315557569757799045256299318326176664481238918136142951497764964524750200647525160244752997110200809481957919892695301273732226102886239016335298756928208172077210030109782294547216501595340825557029871945062414883489302125006088863140517908202833422496880115157910333807725141931000546356745643506458947323037974916787214933308538944151007579072678194756118032475602880921892205331938795123986679552827543445103665750750044645610349700035132850148779176276934862632111561084859630292886074197498478082395707355560242300224347456061216785989237452385315584761693224875200573134322704824072684440191863040213335796413501598649183672892257950819286645138224105701908987431944226688478851489447434592896539730117177772981903049284945943513822621529793028776185594755457526993194827960570269102919738347059850057074802472255122639662520983649528795496340682288415462914152833642324261958224090898148773163333294673009687358431063713739619965315946309693075777270422799173325337188620042007779365727218981405495735061460609004994709065517353191163559807217226402137364107448050301006296838878549010873163316952203159215385161068365468486841231958632765825957709963740914490480095063643083284214019157292490661671683140803457744948715481536373891166218259409504649512413326809337794354709511741375762033143498382287329392291336556382867181519099203899178632909176697479456063793028833715126977610930723946505997203578856694856048729093490359108620525379833963340527105772454526985669945643660982383635539954262704452271843937511424431443191871774510165878855067714278582977613130446734356600926506419663729806173907427153807844376694387777703212316110472329920144891916556602521823371544231039419665488873062303679690811914206086392942268305328672476024161925484925183552161776834887912314979154053461615240529617602755188424309532336310707168823270795048686323713398865235011276552834444210431018472085325075865328468347770774038795497782747724568928072594904711318197850233354640523052852568252074355864477368104552151628734236041931719266255719696506955563665850316487167477187059179836905139484746831032223739598908413933867214040532122880834245279641227448695648161886938881831464455159630544459627451293209121311313301406136141119931128493086434485008430310345225981446722962360748898794013017517389703310430818314948825158028397312399688666429644229847925048480472450919922566487830212753923803232370743982398054047466657391996621093958530171478494864677459958884955988953940430850831395605103969475613789245721370467034245197009002838346412000668181237557321423781274152627711826618739556513774338300580000933879918410018208457201416031979788301940395510790407566640456902770923509401122752287466744129246852895596456340691921372646330676944546682019536151763036638743465734275749684327590059800381527740139669727195339264415765137968737169477199079855060227489224017203563204716300308596623077684496338224789883298256744144905189311876376380791114758631313518467107872321406988240822791047299329244410374896689668067291070102788500881517769564137869759760681663419337336966317859717765949987265808945549063165524988052592621952366258472721768985802768255979952706710288735190720961982559507421751646529601685573503261015339036239775370513852153924025826125431540374218508764912957039708346905304369260697341967226630706893248491174047431384392342012173418938998060830443057166022426951447952907147973406098337077709519436021085521713103615223399225332838042214798560732316027655785523182195884185216603210358386073983420869319315079273793773626511688465068270167972993344528336570423040196658783067442933989920496505030378508271760023396257164746353719312649990289828965698876464422598987470416072014980082032921483170174721790650577066759973206759438680780757394560689620827575993357842012971484497372973965589188887674575007422418197583944792668944016828852777636228455911680167027905991228804637110968083908611014609947547581773044737726258445166002742132386933749570342196941781399915827039791078665894999721563750109965843976814721729182612494089927356067476974214889433886245442400390103057787885286234677630079194267293446371024488981385387399747393704639814179688687586651274418505187497588383367819117599104583576374527772822157611783004807472482265312175660018752713134623002235322976232855311260623273739322314784901718204896369691223651502065950156569135971699738256679657439851006977239931523344324716551163702407403209112915264429140723532937817327694386532082475072515776129775042714574988810667012966389598270526732386672549398239561614228635000896137315883276460448740253622433548871156252902236401661906970582627324377898721922820768087028712548385502975216166055010751146124929434397169695071352277469923530766703760824279041663298457352644017806571311805167228884878301507071296030787426248961329377751369469907178926616365432379472416953401719513781194990453772964926046570475344470078221175812873620189411605301379455366208118293892212696802196688735491453760285696325195535656481725009762728592085554774320503685152956310093861820536348549574763038991488938355970883198318105316219979837004046715371595475265878114948825430667228362206203936600209822736655231940274229407745400802474247082077338919410122835982125235885155666984498129434125592401237662371000455084872843362155003048571844398150411344480429194346648856427487719059253931045200029511065697458096388257460464725663810101842300319673415380090893755529356692965696186208600202274435366495788996998354502709372820640028779090474784091151959653229233380606035631429979825629598031804480910542331333622832218253956747300378887800384034061752642860555213328874420290017364902162145499919817159791410432708980659667436171084530638302601487187321513909508755604176180534800593969814158650085966270855218197588577455665564732493125053361368844685139212822417664004842423369665423029679326079780733377283857783061817789547703043586007761704957557853175862644471852744002211703587754302534489849765778575567835800212449364392218791200572299304615033144139403558322711036244775581082974247894086518718702645864225148379490144109258400541367234729895190045286698497803545561123470781251993982772654698844600262986804590234901232828660405535220329574434049881519484039633224305627361798652510973609305427404999115395316567218861230354692519957950462789247843653504610506736648685075143372220170772218621217072653806820105298035591749725711457484469764679576676502042954989677300957506426321038610478833687933476112564857702153706666178023302501214215838452057982218698673955123826841029763330773368208511163759524507879032433619906791181383248702502240061882927073432696353495123526243512523584905542688156542248435818517027777278578398837929281227214769453242561903409844741929755564288404114893502614944239261072525569352130811514555948269407402534646338696053408737118852694631114233221439926069674253250677186886732462878614482841595902100129734806358960113256778324317245504897380551966219107711141642411725234087401049123607839305564407791540543758130350166940385454712717563768757497148000325035842534082563992745732420216470144417000995737390262492496374061666681244013303055747014295860359667666504010581783424509498518760316444837624907851871750136202209753115797257478321824631907124449314585434269566111208385095897223777570038859674145650456577202877586968685604829089481416228890756654873726535287246483719429296679638254096081645402143982317117906793182815097171457793762157025174084320211723365658427322209356321100052700996165700021879658614651048634779348044230324144003971891984516483958511579162249945287080084104592653963027253793736590839151692617367541489907513346032718567676021230887606296925082658552250204833812096028309858494052156668201664666909396657752272189619924588144047808219624449169640972477442166544396403206998642131921011755631594951657723123530515124229128919548252301628355971200250153408797205022892142132010118195750513058860719552047295114445425255277374513280021309426058279966205689363688504247864536525951347297876013961206635481440738499942608186330873998706988526867154538557968801348305593429257614388524887399802378669765483745015090498480604044966702122102315911939025836631784941970416788377326297231302164545539920872033668380033934189410525974541229215296156755199146500408863316316740431435392067981322058433163628048093737021917042615901461173941408379017581569739355431035097455217318307288954506368840643016765241669311884466245478739060131482170571941001582596831024363092234181708267045276815756877904884639931439023179310841338019716145840680285539485137332643231212377459132417621763591054696225054615088561589286147060255251427446697741890247100569575168342792405538147615193168717856008156344386079562163425210025838492116069104506536856805783315320904749191813136044342022687445440338421981653313999969181778889834720657300537578123728344470453588996413806808968944934982901288576952453270494291184853003411411109535448210856535326961696674817737504248771377512268912629275029704557508935254966630841714034772561013971965071060428559759013801679448227629745504783745104582797267571502548600550969074294403622107175577728759536792927085321276307457579808632612645118402207861138687886895271087112473514570937366507945488948338667522523051519330558421804018597966083697093817624356946729288581567270691827697101728944513604141342735652581917782617370031179909055343279513713197890136604423681550532016874567988195485688367335977119415784156514825232027674234582554751526823176167293742348639443776451278004856790490704457860025567102414055698322560372408767306539763868960861808043141046078441373862712341544291163366280096220227024520559901296190006076646152126023070892724910685858570059997549295876159417046765065533557039361438576386625503714644978185833359709704193695398753264316010915454043302378254587772297110189531420111868604302805507789052207685175296958994651018045753607310323530128435082573105007481245428418692530854567409994335823824086697249221952529669220700952751734513106325119770074882708818631367330456101596751931404619294450600607988618901776579697690978355570963596680540173592034125563411283571769999287936798473515639932642773237880380679200336087301696761446500994591980384453941600645269662121652181416341457056658815092618384130183534134219244942746321862939243186972831617048098512703688478423117740558393691997308168979331865675037963337895441382228331580939321284251922194812066325841149686369667659752882403846923667681133761664846157211725887079497966990480220117075684279671314944134143624030875283805489550577773367155108847768105923951524509972919157544824547160195756612698812184544142550889154430634755771128375403412037235729416807897978753306486864551541428781339452827175895604575789280707151437981667730886262681792130486619024230962357773036834858529964795643026949891742899009529879543980150199746253382553853805915707836015333434849951595811752011358401562737170004560177403723167931500050745358962842711687932043890201654611576046248090086557278374146664225956570855414065320013309165827424173794171015453180394756536536530207753973900121676614413437526554620260135240486050361867291303995146889862975228713232662872109275668343312126410803527404192277408396105382348324149935474531678223082467645419030079996870370109155697324000936193543514681620345638622147344642624035294613495153757139873464691152788697725539764974880677533569283123522935405411647182015868236654119125428375684250970498635460533604724695705143169045366754022930030573147685663470453530799723484303154744846243820859436311663317323895263223686063344218320933210544578607381022429758728185806798271571191877206629648117175647728009762484601384161824791919430691650806150111194007952805227576918656456348438099356537633366045700171780489958453119075043523442006583909146990162590923527643080690015184895481307475930245203409919482117655000560634550380239796851010030252452524212789356165307404182753177872966014171878779853886794361178213511491954035512455754992686733570431240891770673427044379922377899491631993136896615178660755438924370555784442635708418701318731695596335919811619147122976599089399614069446362996881087832364165484451330056607603913383471952402598769808962859767759876897306907718431079657303257470679612842516860599438041403420915090474863440418106502537682166100653062454445736922874538115236515187418801730101832135486297872748634991624050106464572055344014079422490903899697964443025875367507186349938425895046189045226725746770764137425802159826118474796650698744959727228894891562756755279657314606483593429258482524508386530227639669878837714707700127566923446415650310279378416770266656659613799274968056302567926323752072332128369479354872917569934772025554515718814743540694075125917084424965319547560921757504841242103190524266584503307931120336056456532533596469809925996609511815911478976633100806284897848704942796594194137308658785467902469474683036498735182150881819929555130306648302494632581343573764477059810147879971808156658980527843865548114631395136099761457876555837496209324696984806647213277755174490091976580347534187389977789895193952242982442516165145532553515878964385804686846413273193587425420880072140355589855914088439366492887859424459836384185285430545889536992939047406520007044940507585452305356430822411902669020196707637659080246880120457050433640062098540497345969406131750696636883049079493965357515301826254321878391253250500653359401765086883172316137269725143442032970152809718468001671015446016408517312226932082848238421583376795563693810149506230172767467720586657257178661395457354534776346771894189767683275461974256765961590194526703861466959295819591622169716903622239171099562496991693503098902770827704752463420435156698687471377141789831651366122035796883312285614764630018444755221195178115748263724996171985061166399151868736294634861849602659280798701053765773841494916924433413371411893698744673972833989417602125545480250262136573723303766552021166487705307732314043979698891697080648160288996977738431093213608809562671372990527088777876641682119389035870537701002931127400487367078431629590753780672578803770990568484669980376539174232789414579445712959923044430135641099640186371792522171867864239184337313902274416929569766039506698053741124197671692510417657309592417713596697005722743140781482539331964527978686591279791041726881688300107588893566922047808772901558290171936084395175140474070766487509874106249190161701767307637261310156053832945035038360721256996245134948380678665021129561441063237613074387353556368934663876061966298155886067279717457033292561891359478770338118134906126353861565243583072495363991170149818524987489572132533693903476872625965803020827946114317984701272585236644098490064036438809925394223798248594233678943407001640950276739695770714521268243799615131123923971470977995202974252933541844137362103400880820468877367806690886620425360828278267190049044108495933206924062367306594439227399048153129667131213345172906328978872171330699851692081536835308202278227017263132057124682991289288526380699688942743748127409493471744846405307871361155276775139925695836997100723395933905106514096998658320819896957693127030416987651376293910143558668682087746400278173107529584330796537115414830874952006750094738693472695982741552830451732748936683242254882091579764629717566145117668087088671190041220737192589656042622343012621628061759131315526410248643538291236211140464583204893542116505353556852895729677513572859789275786970843657091087187789436356188731396927890062650816228475442118797741610842444621949228667938841421876569508017652929065654395513126671566897377730956129399887859934306201313442501185046992010836150235862129944124180915642937900270750793702250314044511985480251146555662399810820517143743966550474867286325961413898425233676534257733787294677249253355924974255566083525717176890425792420936236610374740744387843582238682263028813493031685488050890986227794321126122009253971576066084820386544883633435124416311102589710115338803349366622853484254918101135625428893687678564161174386300400529488700824555680203987463057295602813023248289231097192009573383579567457915691808451870562856358911394700766087097459749325122672266773469139127884079044595248994427193500811097471358616306013767989613291802975769195924499342055103717673994499991590515955803322739222884887820599238219081611759465522204061743984473297297293214665695570383340101938594026073095886819669784449832868835699663136956013282287558116538379570539881729120966116635756642173969521949249011491693011427553226979390333651986810528595317783996190354235841899512486303087685033291161453456273521874656497730340289692052863807025232770198036282702008847195804599147525809602908885749111094255891730230256338618337466686176250422975616913548402527284779102801824600418447024875166944893600968024931106122278290097553972542839452094255586285394790071750316151991284177846420422382791800291448194721167930517323045689225026965943879567889310154379623100730952771805784306903155149169837208956542103002499686718380733616880385551200685955776019170703021193124426231839900069817705550967767499401873911104104321425847089201177575221102188909337840268853066388159288456803772289947930981832528695861409742802516372001389070640302038662646824125863342249926415769165828641559761638818363544609482837411904428741302870804221735506931384155190593953030456043346174570283299932834572961847616937423083118961645506844870823432762007983001973032422723626353119889543477468921004858824192244366032734747315174365331835052771252680804598549909496157491185723507140429761954475697308858509163649458695473598299687961164490948153159603860716522737007559274026523291719102985915722486169959167440826201965003249458833369405478503381085438957470230858925469047274324045468718111109575560678620215747570695038399682589423423102067224843297983078148567158340019855601315525574540391379600028016507514788927783996364341964119574381880710127160665348674186915498454595087176948152416467832240273218396218981007060676864914577272268287687589815956285087384943024768718723086274107401447378052267092004437933630221584895767018188365674272023329688740211886733894896278858729340537043270877455004446897989618651570318999593777554452217468550131706724692417281512535277751629837662833584697312959227787312944897444705084316958693377664467823659396813068695018274356659562588431711614359594174073679655686764951384658633975990784873795884593728414531128768709909183659534244727433554106654007556823455602787231898229279964365837937456163999278825333646094274350030492759457463714275790450632464857076091069365037979137755017232800535759936952078108407184377028250103291948906808547234851427083825351110705579159522446623187741310362397588949668916783037826079968040501015565393504664655360185149293110505532691856129129761556887973460176367790733027493533974230353351727868098518211383462224557011457517237931349865476030766215072490512457599366122882261307527152498035423901455376535905483061957335743846019685876507743247627761066727241752704100578694080646999253005184010418023246029167421233763218756848412775360374930199820172806832866239863865793177991963404695444083591275772875724538881799693173025403767022037889248407672033547549399818903805746977750834053787840618156875730127412590121264525412907749472934744926670345593761599483240499954064747264281412871519029930788176665676510433166431362232168701419757707414905619079038695566024138292577372394539321715923676953105610932733113918080562538563469815378126831290016299911020096693131009802379674333154954872842418971599998503190904400176074555840145005575036926168950736889148067181483619220297835917719074439455601951914600582900235544307464755959840085305616225414071361236779653459093220148741460276356990179502176119125254837828522952292018961974518524923806828951346506774881048252917931096359979447264575630496740302800080727089690059386724564639214195839497450010413204343712943884307190519554774547846844309950417079579831962212715004267787317697355308927693207523523325824011960858067005480911005598221920289880997318460974541965724499916735972704120470378878435423234273608032730767763647311667053357184047971460793353388258628470746692722701525485872043920907078783981268044114748163511112143497338925242807848862810286946587544895401564654980676452814099988954302434467296280937334754467711407476342960102746663774037981998340469063674064484550082056530784277219227209360408050363256516096682227972034832684588829091344158124985237946354335602863932179262364065194375138195740753806102795437365392330883102838304153022995283086688618593921862067802770656893502431091171549084078307996319629181226158864918910214442424238267797036317885676384613957559857944973345664092884012106048416097060241267532078896403941354050937206126107169882205363671159035349529627118058742069834122062544121492067207879638817593418800265517456375834233438879647051512840809010215934810902991442700840079737334994646665837956147684123694975006684365420617583066521485226416903014227627334879882765831259818941639347365353819161396166433850672100636453865816248530251854856500233419280871306781822312793755335933832803566309989114257560410296005601566926468384727403487039020649733233674058801100747493252191595819150131449595962034809421828217825017022492226718627736544317310012387058358408516347378380212511175901209811655161391103419044829223045487303699845619872758043941588747329017804840001642035885351733242443085890989762901539372219565689116467180035652818200973439166263236484506436602785372469220214199597728846150770794753500028957196243605329085107474965591232652619778629378481762090744778329940866804023099764356449563249581620426323048680908360823419792341515660122740882079105360072239874480130681933415272143198125568450326124435072791935374644516182471241494866186042209725532820274208541098088551209591689796815542007668802823729102863029791922691172233049821115468706068834955165448776529686711636897693529127246542830573051235807148617582403462839836476212965474905562335023478319956089919437762167097309401829981985899806039833760452521379682216204157780527999590644825559429907583035971166065048334004096160226320059650052814448665001277675126526202607978172354195139365220203365532199647747974895048621225543868165578649023944869311213943646991357261661346837487139760347314763809346832494481163292542761043658369456985268271416581696812476115577315817157731412566081423244440129929735600822461088280901442562157673068537834858215246434359016695972792072107560069245807714895589160054350077250989994321729489620608580575170023048952790427090843920324907316325799684935331517467893844971138026344835572913878062470359283998383746223687925226032891106349746998447715275703152180672620355963262842168640725646936506326218079457293780935727827720744134777039223933509603242632162968320164939981485049821097653837348092348518913313534057779119622088590553678398818706237054232047237749646825585109076259408853500769727323550683074364166564893043838879320776947378486907738964707595071642855815147114028200408454082378955419492689221541960741876061313020952742440880303594472120383054954465218891358256583794173857772222951246260809209558742314728880494740541574503635003990330652329278673757324318253858630400020916502604971685533827212982976889565960922032538173226267922064541504525982091210397111468940362650874292265470396435837710206259248715155818750478787319051274928855350227261175729116047850828225569184701010889050488086032643974656772144053968640528175351103296333931141556282244776589798385250032029515917624187655567693545112884072626570703763378032793026921594288007205349939579790413142318109743035352644332471044507654349075384192209211639659768191954023750916366719556872602164430182497893961815337728973771945822644548912880271622871136977637281411295318437786211160537355892917549576356344292456877416034049989189107816258922832098034332926410139653074420521845016259125386768577115939996175291262006292388904898242734621726776739136180941651807117246907893654012935289797271258366977825835747327373918744887680320409325097477259769072312975111477716943033742915267372995433676981995087463404326582660708597650601358205528447390920498206185773285710677502677758026647709625663298009879017495163124398928485595247352478122864365041238521056368802821858027439175993359091065457096856105209851307149862497050294911979234679143196392376592155514339602418255678440503469192618632074854062994914477816415747445794153786494732525231266836199892773822893143429489522173401781722266428074352377633299969773498071480167726275160032132073355839462532513866253297885875944718455361890062888033508487474580625884491544464040312962179042341507345386996789299104121254760362839899302986984373133594034883666111655894973697367390382873005902254659852424387816952270907082656439790676587376002328769824945838637444666841392218993551154486610438137426281010090545173138284983098389370723358402316316104031304371992982144021480635662026447686957864863032292552735260771297622202525395848045786759504451996316631717163439708031498397923351441398873613558683376275545424173850368687371767737097793778989937215377200495445619450018536310036728765647568541463717025699213178232871563451218383585792281781007668700520850161524891564479854002140272306003536913360805411923962015184649885609042717263505446862303631602341797191727173018592236404206164540014781793748332590116417851278081073217516844113768175826145112315217536024306254189476153098710323314454550021918964993230745540169787340470864002207493825876492289609652506190866567488689997368654726841168776875912826271597369489765897871806492300728884562948266340814792374219603466679017337864770366353722479868290177214748617798676839180660119921885480108633058503277219439715225834915350853832047962043445205718237030902997128772341611345997379732473793848841683970048911953670328455063265909600682475806068633317164450520851273437308673420385502970526693943443092216541114861257586955162766620600918861735773843906709948375067943530552884296439582272402895176277020888642976165207208408701031170619142733003488361623116423028519972309930492816145060630015415064903023448490833117273601172047012595975020565349062688949442763390238576632568281058238432263153584631503086075995107892442211515549812242185268459501325232513729553821678168273893966782949790590094845448405961210740566555298042847468865900724896464115244092222712055218106495898732512401718903766507253484372370408852634581842188306857276014454716713080073551053130761149124052961770354059162653869056458222592961308563957067540465794893753370761244572899712291345454922839448828271262981629999914934480186599807203839897404291724690297806177216607547622267402955458120621135279418986545042559866970695577434017556734333253948662613595928583623169558634059910735219963925180678548728353055014619942285446578796614215065476693094163047037798140045530657636020793116394432924926285228420947869601836900965609094097377007067695498536314425096655920552129060080068606828037153512026420170316568084222040866425422802783318186848717642147562856777732982841378580937185841688451904766897386553948327490887091922261037952366561766095917742422844315457079286009464128554903034702221630667215578409885488600569472247206831012917864571072035975672585011108940077234583681843548707835515429440457558255422462325581785548927033233983125802877989285439689776271456817051580906167347349642735822373257038537177208732849538529971399079526612521533983012241456364050761971147614637138920354925805624559485528320241821698800442057531911301992358183134889470884419554766043819286929167094008977515259753283976175091365219128208693207769041161160939948768012577094661913098993651227089172495466204726329623496126058232601202606790179685467770638106821898199231296384589407797376490726957743695461864248438788668177705597635655070585372178444510633207766637327029952769631060052437385858111769272550594498996180402977194893728760635383995212187008745212468629210998857948593515276402463276584847413182304810093521632694773870572544047543740688363792540859694393063627317401730136028902230513331376157992629291707385098909037562263020243359916331337031982288868142637400416325797353614724321305207229220518817204552639747079509128475375360663025660263788063481318431448162764424830867978087953124205018845978078801522554952739240246081300544432680042428531902608297160172227640066601809909002348599765913585998545037332260852548979388605288177827419697958052731713857965239010633873189491963853127291530658363513741764777630618393087359998487139119248718808312277447679285638567978791175890470796486202740883266917962820753607793999324405587976056374921382845969003421603703276565809312351117803697087244039134623081357133614483197995664878484740373112924464238335714545923421496636002279425501118569116753216537434495358216643857417318580347889834918501253071815941337542861527010524791122867367239609051543871027591998531502010218711223162181031658404372768897314550214224590605714679733447926543911802529378370246518507294291312136510002410465734817403845416972350364680191811531396381814627841468483516384069197222652463124415318535265206583054514193456323205645887125310800803093341688734262837607918519385520939724391125004461288002258527278117342581578719570132146149582702616849298280309766169173107564091348164344434097534440473012269756772770325989981337665562199469291825996974774531796226060380257437289711354611176716834991759550661161900030921104020086418648414484141819275063239442437314661613197287305111426665872973833837871311691316570770074342113365963358489812160340291495717434129156160793075955086417147908552525720762617390918415346041437897177013554805661253519713548041500855695085027954545805476979208999829882882777406537272383472509701525642517940415572462994103104652111237754323979709779619390454456751874449875822890470032859737934083846699876874959079563405264687512234934609762366161221568074086767879595902716016552779788225977497352276249792781499574014475519629094513171767575222061621833220418124880792644076189774878993284781444663892565641613291027265161185068737654175739723998177414728661181129460829110601234024401045974593117687356955452746515032165170356968201240971561477961375491650609418454796583587895140658476605127952562111220773761090102963227646388494943726278962824385015340071209682680888804488874025031039385410745036926780506964383981099329633730879387862189553511646711556505603650395157527464459644801279802052899875256857813347460485833249804912283851382097438636458513778368269192192218350662632154747356498879146177538678110608068616526513108795055968278666314449478149740243514979196990909891609546798909476819428013240027765571235767181597690381028568730817518627578671597724845138241039153891484499379535091861739244391300383386190255212849336670339093706906210386529252405471819828593162093685795923433095012047548042451545995672427981593068606218061642902927921723435404649333242377325698759495178893967116300874986494382790406696809523478530941641651270317118288105868281303919773720642490080837909976547232048992010479099269664648284041922276488638984298216073744785178215086999412718955045768713798545709743511112162290505055822446018929339834610388773353742791225977703528920376706649373482395024417488094643445523203593317729565513960330915523201641363272277756764905538312521734353431773523818968072104534982874289022871064483099941194079870283929749844878502043660877629001702012091154287675605480417573617892284005132752553531868974287671772651970276500280831059592357150423288682362674766473912178560826024456695630249678926722105454932542030266981354546048589219756707816631521058808216453810336947137896103976467820938637947243911092993582382864657976042695715993732373621762378420113465891095779844738694352643411926489701674846372648000692952849643300734998988954964152611015816105751786156423126830945552593607179201524748202696958636979407594417411850655526370445323894154702794397929333801268845966180862544582211317780143943123680129031523053611851690577378580469933423520754713977796144983953702412871551138066535477408724032320968499382863707696044786293056934810209703554717122284076026595379872040458238375058188654083965660738605292711962133642657553907424035912837145998688314101807144967863127123995849617405075316365862906710408960519475311679278611244899076399251936688825609599998840631918546546081787068492488762907450341667409042266870656294984512626752925480445192505843093032886980623709332305138591025855847004034871288732519544569123734968386544051659192118960905023151167656083324074407277196178137794876311720932912965654320217372604113858930237267648180676037626754020582065826029258578787628200496480163029827354664336993025874835656835314445890069880390425155172834923432301864010276128967037946843347574602691233457975640549852520606776352296288026715884378406042005937058151044567580259021161044388088154458775776790262043351452194706602457109121857116721743508930547460473836577669629569525356516482413537633087977336197069283312090170720171834023894598122333864925432209827323419219592654893721981246137857602047381672500308091271849711443216567957103816064420183256803704591600880251118167566982437006680824244578429054747912206427031233595269489405023782071112618086251727423665163169676257736256562099968316661129973640797277267732345725601136247175794321249634023993820370239626257650635738692488965161205708928585417691936986641444246213485521560530188818230415396396745023463879268874805456937148733450327466015164040333781174408188626202207233091188259443766874970669246669051268004736074221607297891283883949300274756753602508473911429460162715329395665485072853091063511838472282161715223403880223504647641231536886925327155880446543288622895905554649295505243409518077753496476877374736440099810759218883261082225563579737658785373849856125999235484020824382167060076458487150992497438781735961611713810873305435360459546309891830679845754632978386388444276991708271900206846014425465359604523816316697382998388381277955395188011160500854026120478841861137374652577162779195259477702286960800835694157603031328016194189244762753568124541649982985685766322529669192030737354246763918627168324610136425115041494435102876979727405268770189556578660703315058421166672052338350642268506834813072723639107446703731070170706067585605701145880960809068401677546187298506290928107326177882990873593487286977983531597167728756366813130582930695241232244340432009904053753576023170740834163094054217135440222456311148158630831086137570035244815207315107878944015346604588226466458393673027164996971046422798952898566519474868972229730352332161495600368218408060910751496424595844832261484239032468577484720199141351262937661762009979608425432397555403193062066019631622302771953065574840321503244689576273591076376647925948389805974384529945761562561373058888495503394455927426026205351159752268783849053571911722555902274572590752990686699668177343407110264927834422317709982856276572660876439672923368105721578254933052731551796627388853031742528023679760754066538678800145367547128428198268195160641706605825130399848871955620269145134822744327176825457316423800354738215988328213164335077095168792217360523771297838576348857431519308446130708962819068158490068514184409394069963046969330048728209390212585646665148816133610358540589589455752659472519411645422838848004216173006208175507512801316692507408644636278850320024866406608945869697738065698790569841022113957042520271614989959326131328445314761437346382459167818440733432486594822437704744706276099250635531129831490518128867929472623540437693480542771978010515704745609849332422540622562449069593622007384893752471618210154569544853639616796733091513349240931646068360775380652030458152628180214340699773054766526473512794502581655796732599977720129637702074692116731086860950819360623846730630470879053351414209163720803392056453080214209730696839834316607856007797474636503196058896948416681621270098864914701287786488025809099394938125087856573827552744288794664771514254340081150343526899505794238809728049825251304224397491367204403445310497702328775190280417699732947975840047356994140188923487583296774245277335288992236205832792497651786201623861931902940571617502763983671227587533566181111877524397030918164323098798965023190276150325211512155444930710807333920133764596251379564386226279435880169403843458014113897204416188822894852628639885053585954811679530364300525515209388383798129388395603870375401141617603435683283334964956989103878624050835948775059164302592026888563134455208614987414229622103904156104573443103826782102256356587900735251610696657138380028695336998707700808400178079299119265422181323530606132309119155563899095677459862067253567078108922179262060828588637344604872252505958919078368402598525545350764038316575556025868603314955930210724088235081638878407996777648988910659400923241880635717237507682461952412386388360275074702951202780715276576466328761203292208673920727263099916347423581910677773110650086505469188694671498037703226263295878028970812358429029335036196141578700715717215126895173385931014631000007861863818464810656705849016848019755035455033402410405775432447839221505493744744115704407825850842149183927069344048279448175370462781836009458924803008821975659194423413115147496259781835357783112346354561093447856677373070925011611489215861007610176920392628148166447202584221988534808072871596998820090769237939971872908665125318609365890569032997911452690837152826976612640584886391259393336827661327819585939076086256463331935588074356909953580044515262408445754313037361050839858932032742337096101566920136940244537608403622211194170653019508303530999469824062026782774490672550034018166198969339406539988524241578493935256855050658914998173800235436618259303746803850710503847247093389477482111674552990087305340604612807028364499659751105244787748160464617581824517677511705729269170394110432016720175421152633496544539439659871039766198812899427050365028086603190811438054579416539832223511487035866754328800097451896583404131164540718294511071835915908984754756807162574271525612244254092201323925065758050665893144979612823664494243784517961735271034621562549861028446268490061599899522353141194477678569632933700116988890721488671499795982255450890865101356486475544688346745926636864975650413279037431323358610276849959456578940253704655185150362516255998379266817509331902119899582413998403652702413045600560917247476458942572307339698710426491468396242646700584914324157002269815056585257029273095604323711362105119010422250743297058631612883104936283802094076027053617089710325342163983080228534661682321736264800708447878655753117085694868621912230097773816744602075188727882396472069543304521691077622717794263698150885373538920805087234154685364156436716545210194021742059972214635909733763140494026296215963203282586485607555341684598950964552456308332760381507960630675067377565580745327446400583509136512629723137154867804028322774980416891228380127098441340217534137002182167265101424101148250988174709166570786525951717840580817748220565455257557181513303317569040653028831364332467962070811548360260947597827656058845247373000653447474409877090982078066646334120067387016842795721787642164884063390460522275118190946997409217682902540604688130278319058678160181138963031891186222433508693394747589898422481678540229419976938264743514059385561599089990967346216668861399906074916004814548725721773202323264690360594306288315420658579404009625416822769095670442119094323607744143018175642266625536326875633125276894864156146812363237722630166941401505203465282214792433555398633323834149617586252781316930983193047994222421137151586366299537902205323731311103011166794948370237178746921100847702744567738542015181741383727799744169519918786835456587419812115396061610706933644849150536443196635818419492010723657181242569701836992161309720346125572189938206946027681271682940375581870127881244161597215851754176573134259199698387437290488499674682777226660319276217011821777966812206479895513930235447968593288580457816900093152887840052125067881852164921847007568769281848363346925738740163393759219984946556373237938163396579401823221169836771252670784409862245919890582119292162793086460552798754271347191310846408563726815325243461156177768746942989144960938699600320684624019636728690992372682693453172126884222584145762426465737713455991046911898118526883465266240531310697792147282858552824421847895462970964439921526751709976546635984378731804167596658239383990459057974855873369104873070517038242927119863226838733654987036265520277325107294748909082785806111981355473683387798566799267360266024984044418262032325853171696842800562311827069698767267103337621183007786741207163850492871733311630869460375129211934943720924076468666178476086384368808616552532571438023477074547884834094251711011616276792321792504141628995454012905889632302371124747843206960867965508500439891608848554070047254652802884409548461033677959313203809488247321789403990579265380654371101793171362714024327231925473804579726787133969747549548624276774480080409687303264015975830297865416394778538879588785614105471361635209573483755684594145211598385145403410356246596427434967391694678620586118777828390238087550413407702984174435223003295475929792809387388406742828052837487444577200797734163367901214241656774859344671409338152395968291354463439403005314901077695273790115801959766243064498100201773769170347902886929777744375107179149109690332394893819845909656897807680846837961477592428369755895513511383359358706886953999661012446181467286646171373096357756159628621515519734959437638733540432010744326444578481061639633884939676176321308935284052565820343044101451099027288058115791761996570354665925531076658583981913274359672770250303536288740873677784856337706092238848531947165625723236659481980292482708399463013316617003136018652573353932725673801633173517000052012138909705078416374669788041266602160249147431664254657641234043031281430574887041929387571797704101489497945644220648594895799806833243454485442088435571090830330982693972423690727768570726630410278177951869797242335103694823697148628361292765880167864490967290328596162100650504889484925268613830079140313846853849042242714737543709001492659641556883944246703371075354946170647262809930369630122649257473531753655063531060395204649327480935906078698038769466627244132528320975978453756405169794095265234651143277163391691399019247043197144307544730798244913630408928647736002589476150237886925929907682199272404460760041256083230172780420718451953773572389974067398432109025333465328338342041318022603586892560354665368224836270996186875392189955555288096143256593561988048424928807365634843150193757391916895495112562156714089437172309867175083679716727488404275195232527707679403949717926327444096277094477128710829495076537042077860976858577497821008020778101325537096527471859775839756442682534473878149093582409417045100021270757168318909905317265240172837805909239472573651079337469237333776633398289944355495766317791579461110994560472629146500788574278481449440116554091637953534202399658073234003416131100198527323833982145016158147470647943925934138962010018109823872935952591957015935267562060156033939627833776219260659171011023160264407099390816953470676844778717423209195326243077092372298595248004616922100158953094127693524604136744614113429691427415710288332373323388086549824610810632677675279835072432505865661259549245194969794908792513254852116817942005100215918741321921814628923657299743551194324332414645919379289137846295596418939531823643797717902111230116459389901418832347124923284452343597090119475850655042408337016734609166976577562268236605405123919218295600374715865920246808791185438449616577340291033386842576312153597053109580385032101129757668090589915714507756702453527374162389666974818271300047560505914115833499158731526908780121886887682350235848125026948372345766882172692231992820356503334068178870502283361197359661827162926588318593133211122705653334518433621683076056762471158629904839799409846678112799686797778803577209649066541787178011510033436353500036473778468048097226919084702490646566842485273627380868955451207983994380048705842169147680915455886645130663521995250448100159259096759656937323586610837124800378818258510869681172949384723988756943241746420478685220112649492800865471979224601763994199801457063028448964274130536439714202428361330638475800151578406947625248841777153006742272219792109096213639932781151529721356616031865816374268311527030679321286034323953954826042379223080168908680350973453340304894914174080264074824429257716813485279679259608788097614717159549041778033658233412371127019059566793580030844951576111793156596391989073012365751977376178540992331237670392830241118086721584619333421682029496158030766808186175152337195760062800929372460259080156947929268228031759971176764164468060420896927437121647370596208164605801114642909742590286916450172413356032928942247136583631666578758774178111456646986666238109293032771707877950659727188738181598744737901694886356574277311898556671315163963766800756733321911629291270429466683597700987831333027312386939381951148136439558971182668292208334532027654307538725877011050129539114215447416312579949257478730163940398414730562489711899611591752416231346616018273709032541099758606960971051140530651711115821012766572299407157062223598795055318408965927997049821487727992795245926065298103000557902978928167295538858731525356423240794713684370735126265811693880135955762866452199814066756268234545798297267912717805905052504354979511710376567289909945730552517005747424337109359000098731374354612841832421889709072050956316165042877091667971339194638112333561540805245306563867535830010009863856569544668788319724071351184129392529316450466156143445322587693467437545070257055903695566068870871531355386265344848252905164239872767242220264391582024314569275567918903286328564282365270330543567353992709582004347612480912490938709377096265459666020427690493057494303088218969382449702090404890326208631427679367807978986271524605742264021040455719342043098916795065342703575229861190148734070826858730781710797487836942351530412170347057829555190341291143392647458366541701063933699536892219178450521085828722649906699575569213551740833264329482625443945302454579463503624935811031815278141077052541493562435263325773014088595832429810260174584602327836467060567597739200479812877369539965793572560107768612154479980592762723794375584654190645859347350546212397728006727207181038626565473912023408198971231074543627540283718230452916236747172626385504297410894393378099668747344656777265852725239339458869811808591785387499231980347682304433745861232106365031005863651885543616275204816346743608049961997288142955725868271865190776215308628828923236490367819640947068230468157460841921912939789965212862179749324589195900914418598060755507211713887495374710789952336965216103221260056841089270727950040118871369523688894738672903100055464239376270446410313283445872931951274874146732940648699147390149566560142020959969527985361679734700311407334180160541212448553186003249480084400479366275242913752353814545410041712027869081549178240276935685568873641504628978370287912517457856605610711992918043600975116253348007067930995280894437421891307189447836482626255408228040121040236782875717180382112359111384824050708903116633268349390653467877117124303942328121391637570162896356896490574150256094390644600263424679612577301147489864070919167430357014291271947572318113863184155003358270674693826999864298578424125799034762591782103085187833837031475794608125246442278057662020678668848583407927831361383457440954597635373243242678686666737758074407150736910483262926845356908523472748958235643528582428582058181990655146902925289026989058153569825777585333719659144998387647520189130535245510882275662406205356422722524939312799490988926929589816748753460826654758571349621782699435556544884239623579458268867964139331444871850773206670710150020001015208794628827456773577055308573760247792123321839142806424446701778712161573336394486797247573377651962919110298333118413202449097233721331352570881935945885374213994011969402099974211584617613561933750260908460714728534380845835230605850826497151906015998659970241433266110725131252011886882406451187534186499839529240725408031729219976092654816899419822812140216043309579904514395553012200474361578561200225740572465483013147274008001334462816848985846137872644174769986626679907160425609380350257653530759525230052334234466280939164278761622175316968107718150909671335502181355017782859480576843627435567200168624760413740061405899404841443534822480831507380920498030381394644226417185712604219355839233436873314812412337307483326541278873695674281956303024337767721767153636109912618854805050317103442723904475049344263142888126202057577826039695243884901319854923425071179804293936204792988204367542930214058531431282197019703664770395506211173002244175650305361536774167143543935360317628331789064704528179739753879774588726335102717801186376785822302753209802838129768930329563671059125987530808446405976282353940872306516137409065919593271743559114583187187683981269208721629970734614650692364965104553474582102305283294298264845564478243829193259693828631413833401527140411035510992227428579525284120350171635267781986397131108525551626013790132289863488761618787147395840772795277268951504706916488622605148711011008633648582447248093937665696280491258877161640642888346495668193062356180270346890969712757590803629920337584883341148852961367521332541530329306194736932946295873896145215395708539773657012198884510251173800481824439716347184587590282438169877109974612397207948407516805864632331225580647626581397698102655177150266483924053502880842654399147076724963737727687656808063876080023611741219954100975706690456949744628468811071211555008691178390504183828712565621748041494323559119477889397665576451381664808815579232323545838557844250607628002243358379429956795984894471977505830346566732878542499270090845215289006325259355566051532137873038414748935889051431541552531617353030951487294620143009541334498838822214290621158636570192016544796049259575010935439962103959010459145449745693389200238045589846552161478125768330186546045796470355358156051005644917437442803136328693401263459403547896272567889983793132445212185554422343362281648032010268443501291829796912726569770778248684327561059329069415384174633283020228019190110684798979691735789585232797250369801835958899702759111597684055821896490785153543389111787417839322745779002611608410845088409489342774847463746517817851525983430288247264355600846610679765686403336657768854370803495977367881430017241487988891595664946680240057857581027549078631704425307955211161166266766563351454638159601753875962804159030254983802825011275962573072070931658690589289503828439549099648836373345311484085643445904541042248727490334102643428113611748631289198688877152454344963518129193567902765455880628955059522811135080836696188294653084124651860680815278640045167998612450425489088824316517449579957721422987510991621668504206422739868633759163932603762504619188408178419620923768265864471918165751350261754004048989288391524686866258429771516031984163429726484733914203972920312329626152355554003188686662435266227826036781194128812478316943430442493953155007609674423094868621061343134834301936567475409694536913952698498729955221570071708914156551747874466665833350842215843399658549607338194981452932620079495243683791997511647425855537980051226699179413090155109335274752990506974156417643743684844308905862050063817974973123413101683869499314729619992192394498067946421119134222104637324157391029253415265916617769029993783477165451380507138900686768142322529189529354565138758166467101115076685470822237701630766305290256419153373912382333028006805723098394119986910167017073544808180929650677839074848306549941665827851678224888802383926469309797314058412795921928232274639664049469243549397559469160384294519907928647664424414498838841534446879766114200749711521467952877917649094223096297202694975438866993508731080363360412760514623617740217748854635324678349346746787563353239770566624396216381273729434980098529843388608624430400321545014519837966133031843787974425582698648521588505783579813405891693750692201606984868288458592379612885857115053447203961095415700018752900307489310221288363959565613309522017073307542977294306768098255956900320566091279578060420087572956595094426400674832147504238272159396603726152205943718265533120580475355010571787562202448082962399121089873078479590158614698964981393316100845731319668557163747966655354317253205279002495016787833034105539770229018833988254143124948445196669660703828014106206419748065580944475379561971968789543660873848570383077116987400558485288662372918730556767158848525601138807013957998529847673392989513385149993393400140387973798926696347363373091279132024125155666960836151417331856252468368572462284314206517506256630966119737537281690561004595707768506950394429811932357344785911422435670610372895620865180023289688199118874812790066457325199131130085594477106267686951919009577169104043342217256613751791668568689807533498621677933998843321455853622359600353978520336226357868205646182705031070263395259666527588464922100614111764857221194237757238318361442325082072074506707117367628944913279978795599345724116405137918768669935822148036101027014682516021652390310304613420925742597451267943074633768837397579720024037104351915759455970749924413569494304471804843867909159652985886160155307077786117563949680941424875313763240773824778577034506301500415102504086736500001465586144595178928179382086974290956711532370093753154153025047766005371171151525011161002028694834353864199834527610973626373456237001268294824897646916965941960972316982242711846589945861613864595853018997954723648081450835649278180631972893653543717572215985146981851556511506927281690799653318598227497476047951597146167927075065642600274217580785608876666457758878025277629399755756210069255781686357485226684221769824869708465317097551986899048027664700627857844421110802876650084872762453317380687613598647175142240756374779389499681121076065837483141515733693221561607961547416689005739039624220040480728191089443339282115268705554020467547639995888468423894708446214322286449284462272316613301398650994691699180267860469800498186373040896503322389121117501477244186312599574206621239985776614829001734675212900078124314472169801493155705006886208657659801660029209695524766318679280560403727971807806415775554226335550765097684467861625411870598202954324931205714160345448610067880393098548216956931731719116718602605590833440100814971760582981908257513878722691148900198304630294309097275700565012581639353176351635239934865746186030015698453487793594123488463261706344320310259682929404808358583011306695057562374210543120332885620065284857632643937273708663316717373102264755840836331013645266926648841235341728615666919129033703196003840914198018103894218172044923768775539355614821192300734795044995132429577923882786619798784023484188861127835620369032291898577177478933517154828534534449062929114728424678635213760315800710611696635123469519440942031743698156595677930456456920686394009238708309435500758249953560145930971718870448938766780816669751756798668660180763609736051767312252122612676778069822911988437867568937881780373470329142191574263773159779836432189516473636492333975546537610325765743402473436944932192957974930767417071687041539413591302848604475937130022729773272497243200118053047730527327105451939884947410292913438561501664114350459640049936702624152400272885844936576135224117901199655392318810727191773187689316178799314712814710367934405139637056303558885454058235674637417481750417718063211525035228911613120952579250721782948656035838907711065869668867886073322027391284831045378926803171694848162419460795380767984164963910357692004890839605216156400483859391928192875092925805549825875786625679406903944938979096591045009721306885071008022075735193054197227034636087950973333520000976727468204762046296239370430990550562829347062974055317000674859713521029049517801316475934574681804468640507951342279682321488550190370567505826202541204772641716760907905995695127021520791790708934098046151230301677334920019873996158112017930835564557213840042589959197672773398095386590977992096315829883184760170422425077411331474063693860260690714204764450192331777365641613127710549180370867849188521372458694481923885511762029827315971157958778485411511460867618694358638074264148598238224525060676464570796467325942624073907667819681820707533451226960735722353598307327390653150650666496260485881047001467416572728980815199612479441544435742276409106475815845362689572460262604822918006133845358013852582019979586405510818309131927575835873510829510611995990989737522899030002909744668303905167084685156375614130073337136612586924905463430109919471018231733437438060530946767137227872507993533328156156836866768986051723515396004384591914589496592217848423614473740705377168404488342390042170160559717517473301194159718228720416412992440511148170996913334360948587436235128123292839754232973352008229576238042711535081966357941174834084464907858608172837915766491652982995272370998538649519446958623025966434189474342854076695673910497616569656126275555354602120995255739190714666425944004180728961111039152533738183794703962857218211084825522919614111972597139679040913359665560960890052840599641717795706617202618666953117692810095813070381050125000901544524279045722330051338836386416199128658447314452479987021555682106881101367077767407909385384438848467527202753644406313293127999010877570903736822260581179933888054004748496988076528833395580939092819765974351822030921286165605423874482569003203452592097489385739994548102410745567070001165959682064285456428881728818404482402837711820825724038462414463823084618335409235996780800768947158325756872867774997736591678083750894579983349276050355483174334419949797226058721380272889304566061347994981183506444208714423555467080374275040363228769280562743505507417102702831753896757158040357571090646001763885180639153375272944732112051728461945326186286215683706485613486107188267273987084518367443672233689860573210254269917619594006614825074543237959509910637600147129939974230344140317571112259432836843756138921169485520781159142745872131106782692749682551186118480985396951249248158591919258351642112151682703740430237704158277539229520546726502639983624755023774294683207641974673574057035342376540860392640465983421510428249115120750226145365484277807763035104907147171285944943702364318634992866675195928200631149500605357148396830997290229969040907667407029594477669516344291064913075414417731003503892674153893000301854320717445296760116570423893889808330011896557626283015382258118597561702433523054660472089288846760266559262384216205295318315381144450938981165369279789248612780065397073749022101338190246041289418835120203854012978555987118811155622248609152405500576909514150207906665757449238378472161770957438820289271850100999523249413543137596567290074289197375336961342725189694348778068276052917300589857933943700723996053096141308809037370279837396124992396894578956042489929271093305140124903243669338670964939268073246053864952422224655067333404343010143814264281207468776978520967918509669812188265460513192437682097930619794305612978021906917570180256724455669227495124907321983500425215393863281052609367733724409523162789724863551890583784134018692419850797332234003693272574390108239817573742110029474596413851046751225076366930755145131666404302413441058122288563011211315218638435048899956736796805608161400785554717423950153981510131179673531670702408778147675325326205506159994893794368729570775250445479486054838862520045645528502734944874693768091373806313190148590189881507215035152773775839396039920174736301868813920251249046397102726640586152920977539298800670951416921420520295039473550122884781042092804157421408826884381085544566939688393544446957286642377319359060237593621008316273896058119490373305026753932065739915278590917805874764517662801393313859608709256369459743630718723851494332317113969296937954240810809078471283220364369935799899346692786408592387604829979752641150714857502752245604511205105868475304677123384154438987954527839380793241398241347499812863322034599203303954210055607419051182788462937679988794987287601737553572578443839054445811740371870228992186810714103999850175344054797789497959944874425050188821322880174729300409430486524537121819062551762430808815638949666439783417818310531423230864971067190932879068430182176454654999159036649880070482455783620222357277474415518956192721762159595094182710685597830639953171285294820443428836185197317050278527148430854320771113619415569236984672313965200173684331629284504506518728371369581317802464763448300142861462166415387895124628466406373209268407453179187650199608063272770927281614279301415147467431448038685622349842910065632706734479474611503840666525621159208105529710914012556376830113501277121340242339707553291238618681112304336532189347818901697321285533725530992114035988696271968397505683696940420910334036516464462431275333108800578635988501083019935346571690796313622112723641010851849040417931919212294982470119017048313892145309740484992126474793186104546411656550693488079813832325449815385519765373646091025112161562122483390119367674479927930134621935563186361870993380566985562321928914749204905007665409470634127126832874330168482948921786272110380006155826849012225444970014463611037927537419821550884216704004212345620722997534278149566758340624019729573253824684649431277422430839277018393078415484267158784637059935370711743140791244584763879288855003446709675389391616135925728770218715440668430565774649194349963209103920356334324115324360144463478511281528964868314269265514229497309128711963809266578409622009358573965825439466196242300951729489952931565590061474825911772725777352965888053162333420047835213415809836602007520230099579710742889020948266076380215121001998617388394458120851103941047608274394385352475359075410538179836070671471402337307449884860641783160017098577885933908325346884011836726315502593500054203109856478814491959523525889620812810455317649247399459763618913492920035038945960216353447263164272940595920866948564299062043714132283385680710957164025592026582752661022630599567881421499789040807155529334175618128508604520479092185936226271762292908038251175279278593544626920078959487989907641171835584958397680624755538118482236156482222213615248286987044476167391327125320971195581916555148208275612930165671659497185206816497994376578248275603204830147370957687898605134628819300392482923614970556484131605341220276357304448317364177829274985111356781766080726434433738198914983957707488056211649997128237216371555944850091113128428120165968504777834624435372274787747636701206078890545175606266460021187460224934825738068952285585578363205042591149667713861299510357102440613851101342993895095310732949055740177955998099439337872633627740586244733970885603776051455704627101186556530785901187244073328171935498976004053241518213901942298033899774988611055796406004288718627149016350942532204103585130853136543095774238697460715845225505171879126347896822667093064766617744917988642246646869972250743342243527108964030221459359327842467517438886197750340224508442968856065575950954329429272971365781088036096438210154475731646317027562819344904553919001921495094928851337542767836871416711360712034107911964994143561379048736317905380265673367528880316089620810980508803165384005234860846580571303767097612498664416392484328879119062585249149819613868692870294472657004421909007920034801388265451377509277787960171394371405309721930135273633245765947744419547969029990737172722825050939971317434720922231727658870936577900091289599216658053749385368855036624600384996911678044708338772057042484424115896548993252603371877303334504952098968741581797305706347427923132580901608739650794491585903319746661009094941458746929448105909845328707086786301800132890051710312891591391131984218803013262555012111043356862832479165641107036304592372380583028760227094279377243021054321056493700610706048592786084676721621535892514098215143921026401756163367170853866149314370139729730396955626312332957891565260564994846527714590338484498032628916553833917314549456185989686401067998199485179397397561881454444662029846081207074710216144857269638539416380725276826421190663540597294728593373093680951968127473330981211176798860485393632720475142786833908326850551090766651673102338812801751515760160036045657647269235335317511103455953878885742942199446932965776042913328103826072003648218297930832544824104297519759657374515025089447800938597424095366672666160577878955228372730573072932221496600489611227380575025613568848894329881554843883556945772514853424034079625310672902076811901382909263938186391234533331176498694298769759876498137453249243110766492450656044520854876743909500492879439180588185706609489404159392206931317066320895589905153133320144964415534782765130486929582856627790577053379225289287655951064863987447981604266268069331609369181584973373025637374910231731246405483804898389479267176734382869002799025264971089539190595503463894446013265825474800105911924422575595659294202887119643769275311553994449952582210272653618219601211440328363301332333330073750028564296593433460806974080558699469229587125100563686406787229698304913330743478697243042019393983713620101597855694090507523620908156950126204371048294908665588151684220010435216086421984953779907927137814384364632905961807717206698744897330416063462270513936546074429496716118727038881173944732197262921952038867651826400594126086260326146834272656392645928021659054609037001316355524294471630139376573846730221776609643191058534749313473692249460544944726533573296086470790659010859254423099867817193190605181286788718416636602860141521164804323708837552592335182701274827443483739679647550450811596933584628229277653126132995867268208211227756246142325506919430395206645345287534820450640185384252309559663486057079504184542000454438217985309630863394464146106667343800480752544602769318749927978685517957489879017709304761434962973584932623187655227288388599811331449425310317166913839060878109361039127657125167662236349736869413315537267279242317349067480460911390530914030149186451364187199678897759676964614243430456895676659088512434701672518438180391430267481356225686078097011467650232354059314588424117372506205383136723455964398116946532289801996429193745480133802521308805366678239474363991725053857019398831944590994357114732121301919418129651255952708594711981316932982709760459190737593321802887970154846263538079685081479700109408520456493443506511152514091027012094333775551546721536678641628703309586100053237182231075460591059527034361821367535980540772187930774492252162555445278320754210756807745461914889942138398964413883103446599502806454234390076063708134283055093302583089758385929243717858023002572515192974515066863247061855388545439256681517421421417723149553236271202117931523002165399559385410773541352410286150253265358519211815841091388206085887667357419368361760066167392718473331488604717645152359070580894488666687748732989164348670805452349418782005470250478423953282216953151662152611163917554626571612490058177177657978734239626462410301793709617384287526295545127931471841481919142287551578412633026136608199798673818639834138102452185280745344853917534892461000167046634613218408165718560920114106946047190482716547429555989793896976016043830430700890568448301055376079127217362641267249989657462436040817043119129698250616486923697739068313176394818136002878970749181673694726402105346371400540669379581062047278338732646506531704283051478658293701238062179394338466057412852593762205125892917540104088139761208139611199366188773298957892970093747183957811931712866863611359491414913382934767782928042034420630752910901258543674141664062965751854688165800527399258791764242918656368922452830817039733949134468935802670689806924380444282765602121160015741277907902349803010495567829090970654058117969931742115286766377712956019106894297011054311691160770875383004506595034304402065562620749516560885116172938173351882235013490776337508149403407924816269280927128692354128587821338909991237650601762675637782813085611880568809102750660326342856994491223260700826886118771516330190650830379120441813545401762283754419704630246054702005685303390513979712288385646970972968597664896393257291654281469133980041075760881102334264220314068018935765051714179725710349524933309933335018375126073511860527767287995470633358668141693994275583159088753783966628873847815680510699077770757297916051728613536539497421582312412185845666159975902799925793557202505635562267735228470815802151992912414923140658443848652418853642324182480384812935179282325189535262560821284782195218237714085482409520154094070658927756248098848472217189750934322033235292942574096883814801106414020255645039336576161422408778024430253351423334316317146769740726327219881870972126245763130409214511581289295959028795614327147685821033472133124265972052050992778927833896395613825208560859129258783159818829618318249071005509018658871641962592257830688409045033269531492843910744415236476765423431928613823260365367203827251296210696944306136004051448263782755594406334916661408297112266647400367821532680430555124772880687057348247490814485546435939112624093494849892220779508137903370033168642988027571865459738645646842799882649580363226991423875283752745826061977784958912475078657963070373763746711763001147167456936263607252429246869134032074172474873829374326141831333200927875468937742019305609528851413019303446311704976550015587819891838086086867279384056074369201222752137369829934948175347511057488767868370595817615683928182693769127401839185236542891401032871319223646340825638312396625702943063028352260490600857009929462774735302560830644334582994993951842878374265967419256354095877814784949611812177364187713907670556312696851925826057375901676877993314137404983325557335196527795719306417387679843139241322733303516506548740716129396464600964531150646163296281940424462786645905827287912140131042921097112426041658964258157300087926381675103903338286682339366056034308782377245355303483708796749474175431763417741730063005046198761658016522235193206149331556796924920171043702271419969343114095740074482727134138065337152371494126855702733886349947834042339162455050929771370771869032830536254594867569969389998925027540193309805140841317567103193986022408911083396958342069163897520813471127067095140247118042161117154470793208008263552515685827673031520092907780165340250929036778234776977902668218567994240346718217413727787423775855467252989984198584067461533125779212863088921126791247100821397708126357157581348303767925184834452098616759800826272268999368963286751772050022258464701631002050575392131285854369129200963245548038395103075030746990006396782246930092227578542967477091910481324272664230900601221355966151451036847298187884382003789818259299754042927064499767949604421807678990322455849019056176333959353506774467734722370949845418406816060212008402336350146121644543306183264298446475120102540816108379105013366775967877283808027866136810650077464812816008767555881056999626820793075551699635955318160592078269627357996475977571717701949047843477921916526470984876799391192108743010463057605736523535475009567375120998110302457366759998248510110799840179032002823631858522079175018437466236817501718272432165878497215012229674564137858396123477333377793223935452598444330953087067304721085073736021174923055947446887810360725066845403945722200063342861553890029720072842055243510166320499967312599829826333052053348197741358630474990707084789924547051525267277169965302210779803292791512064684070214814383496009990184828670957633048528223183152074906571955105208533148031943338622387167501439616609804393434147486546463016691677940861136443953024241650284473092842591569117319335639528764848256529911304528154052334659933729741440745202280546125778458731031791041332694964852273170809844064259169240308182240645594794483801354825616379322468387315171822609661272939163833340253514878407876921700312804488528676898616164986758641484269277705831859234412040299507641262752985695536798872712792018241747245799341432721642233983845353139747382388116646514100455235835354815048539402239505775401013601112007706110345881358594945388388010796039375928888974603200419788643359313999943393818187935645882532812221201133234037170855521586633384872292538279805238299781391916230091295861569146566930484810616343438795401982091351220167153986337573179108876385606529562966546635528858489224269736357822707317062116564116090586277362364246101698458899600198411117370566883064223018627480660657081048963390384482130731263886531282288140524429219196650492957625255998127214143173308749323779233812315159823173277546059877609850342374023993368150621586447584691959810296486635239680824321087841695986234110704956992508340004950186523101997076094643326294915222444575859325547577787456342424425741622729195251255803246028988952507394942449129516067077311058561128281226464435829695497390348881835960922906204479815133019227023662156383276545443953801944111012832437712239830868077419007015346336724167919005911411587045796732360529091530025346564954844955205569257065890525035513350318592659552070317061532692530726690791897748645969756683651318019016496436844400212647242330259070908357705990973004313826255056515251879923208441291479756357613292101372617496401830679862642283863486775984255299068307029333248786875149758248739096718925140463229244934558104844454985476255080388227246841779479868855974545613826042876428387267172547579077599165893469766282755848065562849828870285771091348348882391106977850031675622276897307295472086872449341027166654250043831325795918275856536896369343751992080499531269733658111638754834148420733610077775556528570573899769532620033325648530503365801530239077133124595424404309005901368273433328112827841662904076196807779697751644389302383835165358793048476237426454958203777834624277654540510156428178000802469336465562481599202244054017381856189906871101224938552068913111011823482431431099598860943730817499198368691766520833982086055169988149836607213889360660640959748935067019948012593899576221290795721814482333397994828752473776128741265683688526003876234316070572820103385806176746873233144875701417928340227083562641452521579344790253651786695847800794406826309762259346353120077627436884213087469381713775988202560874074664961107147254489102107849913634453737184381643974351692224020225599480136382569009215395000494445866419898756478192278083661564982624033036886445512587560369230561994758825749587063207242532347587253948347420666512750107943606655168591101157823809539285498424773484866850609692387425879567216282146477181874609393779208392341409577928518198877969444281774797369253447133587036827190225986598253540791834232231286238374371425016547722536665535427968211679472916958749017121325846251947746948431886290573458665763313150233290977816153489532401154209244715383614145953692668513537861779882009305285038015907504633975067598860204872871061573024638116307465440753692923452242285932085990621454095502303745405722282533958027767792242265326157524046204062651663136302422841990122957466675019773559969532794400451614812857330753664922316341315986849456177840591151278433659353929247012710892730474956849928380064729887949398752622692902836526658206167833194374756381388020927958231578448027454799094866197085069704437805872813941150584489922574874380838753286897131579711668884650994072379247274738982455834657763810971999127399916598648548860400035760828032206069375717270661277540619124902501076354269183363772161709457121336475329399147831405582771107980250014223067611331560915448845087854619294406358796137345315921455772524845153748899453863429722553652354389064907700930232215289014508698609285683817286846083424611018446280976493065408180838280454764591287997632930544096490129620717805655667025757761986430923835938742137796477241126709820125681280229066385204791683026877171299131402492428147412670364956572690932739022885926448125081357688792485174210304040117926113373461682508042447828045809111792364096417840174236746739258260739593089153412046002736450398712226578917421634572735024586795967285763694896458820370198287859608480610692689028978789550095802516136285518172405821874764424940167395824662365367897502977175429376681757400283263322671596988769112376937687418569501567319721411428046684755037696936483820258042468563344780397400439522398163215937629047359931992777280506293275467293528084421880025360024780527366716751152750873841564402640022388988897507152907678497691334229698693096469469843223612244225237881082605583119157959308253881345498208110795334317259610822772710099065477723029383149337282346233886684669893106105301243807708646184347861402026759119965015144569840573384383377700471436369208921029793573872374032671414429307746711444123783097002515625873705056198795498478394316894026973471328828658956388839829310795007185001007055866736366594920767080729969525791372064510988377383673585366519567784817715180362467255962114055728963655186395682876290349491539516248600467822474777315783680420010374453186603490459110501414823222201572814637053362328722198000752407728640257987690892315463425333975495723930638415828221863320041963410232507927221885604706590924594131660754376702422289841155991791906990589492903664335538476928468705649323443837710766338662542850467163783730885238800688993012340246677970323158093954899861758848204588405934289795093337388937111563403316564109670145446695159500022519794202912995974901885294183333947139452663789409148958472704450717408465740395478213477312066512426904486613022932783492308994440220709879584539105262114458725726439519821479965737773835729524149364759987127134750785136603637772420488816493117146310515972905916759451444597372718280043856568746679392840556069716826446459864336654318753083592853906384566662590493749122130370624288413450143997433123397033400498879824079401409537005994840526830639907503458163325014378381077011217029555185080207536231906959848020556579020408352413107088373091313622071497917189142304493074608099415995153625136995343511052493210812118238658992240300941916606779533112444674221633331342150803960336023181664679769125314167195269438427603140902385713659473950589535547033134337619568120288816300279590363507150947593957032292825601348121782041953837808868796028485817782238949894045161299071037058092124398224952759115163173946975754609911574319301580383330487874756598095291648207995382806719646664400880173587297065601191917994618424034186668102500383979325879687339807466957354530606853871030765089116946896631873409832672168939728860727298339763265182602502905858510210395840267245554805786591216670025045243192050737026002321981722342807483659393289198681712861989631620696543132887544822030259051498631377755263684999010092138053774199684617097019431864901299453155885581457664754738061868507016264346898330778660065289264045678137081587283296896650176336495451447593073627882711827025329603056888773927193616286049804924026048266372228631338131247383240776589064820588915636367307113016162053025228573430640368822965645457457784760338573956665969382408394378672533309335249834241320802126786406242457573310078714099705286331206695742644214176865967408678243685531589278458049117365410944345788670273281238817124024429559629695795125997421932110521197793490832114855794360486258246886116974837761550827698025931264678572320076430495293650005268169424990789180962335197134674046454615234032983800001828765959911928763341494649411780571077407049613755481109431666577910465159802051615983928453508332469077289016724099108295242846433072420320684246984778020097073104378834180005389514006757936104487995079673165894544909843141577138285327287283757066172456402019628185908221569833481249457745138555409225815500272522439395509475139204117287423072371313935261607223073503704179042767415944481466391306292981529441256010354718297850598726500831597587099044295811310584578723563308348862835640809219604384055535354998781925167138685548392369536242437400012739141250502128174520314769671811914247291643686205318111952012902286748175602576671698151409094180487867632224231094569126263001475786920745461971101994120950796658236473186394146131621246677749631445758116136788347343377724766899997809017876927153092590166370364866842340644067564729996615940221504783706363808483984326519421965600013778718550078419560419608238861812114673822434317493053209355026219584010769065606287336502077612437272910345129802916333772903729116863455023815547034291644148419564852862680538315194716437002042704915228171072417232978720098002138431603445114696827086098730396776542110738549697829513334541902709110335202661920076871421468789507317859591802176684338160716283146010226093614848919334418777126586305805306585776278763641354957508459524779605279265003694783097634987155783643485401919574519449478633761934312085790322689984421538164672993211908766506493847982551586936760704818209746228544325490461320806275086296319487779585643151974098170420449417629737725335891024511579914921352231431234586046198000986971486862211517204880090737074592447296907051769765775260343494321157758610894200849029488629406835217061318060308480510411499332561259937906082335398986650621192790878405063737247490397216520060113482466515079733383130489725914840103980828144556159353488729105796467682628826905159995576594132655906754277869612464913717737482569715515960658772167529632001202917228407223461598811643182420429568437476903905468138023403186951462712427253114188690065069603916601963942920167841951724094425957975716283640363454304782372543616747788747183449444055487046685587118197855100500373423067121225998126086682403644317860270535733842986398116354505091551674592747303008241937540679890128499364627814025130386414677823824259186163177292359626983428489071733085629942810684101807404029142407717749171601670214445678953731083613279105677698368798896126591262758167951394954767290817137763014512886314344512676622561394123380405451491950847677564504700856125337058005536918115348302476543220901297764139674333141827277104727080925548967725879912315106217453967438229085856854800091437374121804981662344951548637938702930965393242899179452659025035165377764273374122855613816289204311461485812097249452615811856575268548777396496253003679957084342886446711296682377488400138380468983173866908424168804869156558064111338276673919983885481586237940976569865596943162072984086133885083025118595617356234540709258726219797120655806402951400766965490221739265406337319772993916664133956128853302904893881829358327150666555372508005364822223981343475840291316603718092115255613399291014829875062661631231012212507908255308923837010182590314768260274263961567598363216764476204872868738907530151988708098856609772032015546127075792115968924188408194157187527063256334865200909501308784071490622653790665056817752215685086056822439866009074840900710922463585200036431677849424162108208347757966956428629098993239405707098302842928541336667334663678882160287842005643035894227391848401794485662497422944751486595488871760483356812497220621941134252138961438237497363557116566096689999629887907085986694189857964922077216878583867495288071593793636981000678039270663812566501956749905067896772433325805082602072007664340346652389163155130092348805272413689000516359337007215984032807798414462180197156014551017438466735268323810802393793126088380405216231105907828670153239014099671398316387025305098902739075644010917177134021502219421701042169419458591935150447894750254850673951665036902910608190118407906721300912414616167607618538294128062333282589932978043678229264756569560690657771360950052963479079241973522283328254205850869286908070438038481115852382547157773827483487308096164007918139233194293034172510776429033585513204485848727840806130441998457903915952009117702929012671203607248205954097127894759982808278548923060462472072566760057229289825583778104692947016563803179782147280831376229672727813729809597091019889076761980786354515930606217873913071011350181590241746191555556347457481665833359648668525625853073220549036623812425700643707398841761047563123458767769530031522277732923202114753344983273815539091562144765945118677886825216450560242465499459286249957539043461759333202431279659841213500640269072676942523409205571478004632228708311811436003541767656864297361154030596649121982461387179517368463991930576111334650635357415315428566485850638739720665561748100480615727856801921388020749099326078280741334037454766928543171815924511940900191152056186389591076540941414354782089816573139397601901392138107372184762722889011013645377377928149288897363738144462825209262723609022269093224752748559746174281869149619293201792619694739862557623230273837086628575509725386815543891359140662239544348802902409429378533123586626168200973340070456476699729193016107067221024217550342492029638089517976969629050056089607265137794916916585036183222877237943756122210529757287515386640165258642210627319824015392321080363638343652944067937268472814094651120320949354975740454833187146922848126676778390711681834158450636588148325334200921582447662263964770479686366386649953515548179427306851596162330967774637154962679980710287005476692177073042789579677172052837613282150298354187939782410228421010741269859022311680744712683903277590740638308313092021230928506652178375829463034132714060014307129939433624161202534460486376248605477494145075665922389905911933663219265117982087443393716354281098565204047012046274919900843791754172354828325614517758831651818130721527336858994375159687900963614772011756985150571199557989075608473630243508792918021072765237918247766731085701030414202461131415619155751910527854499959702967478008887115069942478231949720932603387814615217512262253546657943802778290942964502881969961421374009640191748854984262619724984937238820867041406207752583156111981375565953054371797115457814978257530989966624162244391998328631352829184805613523234039191856061402121915068705199410444829968678018222084089236459642371358711837637126335915554396012867190098318368735813375693196835837813693463457381903667007293775810932144733074017115600952714591524300254116000527609532354762791233148197089129639341989355109393371947763886885329697489702311262439914230597488743201269648661906584542050460599472340065734191666750413850787496838024516228411937713373548540670657509482592798003325716906787865433175598218147703261899433475261916872792365210325084799535343257365306220401328514667133375995802566848631764910937919174459211793750782419885658377122170170555670894409488613274825414198793129996862017218144455273921488313949200748808513290050249859231861220659250142334932802853998832971435845986853512537670364333496481969819483891882860374636471155325462444221249065976502272068927907077101649064837876387463146732485849386670585183281065513451811702729858365521754887415203801591557396419372373737864564311077189966088965711039675683171251468012001833126192764816351189885003642958798422609841376358795312632515364347306742054343290959418977694616255106632650024665896288342610373709145861765404428174219023372103457609739778214894279899885929901029784811801397083148048287569536446024985346775566329871849497459128748785579174323851181387775919538803038213905619032494202502245528275259956624525543742120865182274070900796791937306779054358332362584695914893722740482414212937427968385365788013549895720443375604512288310626039914063050723355642998016738640650014186098310052332059708844857399912004334639043651842060277256511422106436696649888432195344450076290554243185806514860468259501134002750611438419792535737891054545652015467864843141129092699624962788805151648728975184391990703116841204859058749249639033098254476735974076104805612723010350178795029122634761196225714219231222003984893518629394693578585156123350590036982707764125078227193715167785956643198999884159588078385171390944933827993666994265199851070545098546888392816366058354297181806689577039494090444480030170411872348864853980773713008151990578930452867022971439036030891192532775906801291563998461797353190054681860106196667837960185640934156934340569667941030085331019246824999776565504484356490911687626759994322799083303388337532268791136805271058227189405321115431762231393417544845666694096865643118060584457141504905627768860881049884470563409125221039286067032226404784442714287843637818053442465665872710631441465776833805410717895687640574593780545210113793714682835751645588836048446486791070823926649767907954159037494889241019256195954334240883891257578991179109118084134193295267432436073513940988578296900919852246038276243219436813419386589276902765544530164146718420680547525863778841526093079133365517323021995066280384249567417425200453164697203399742219135316236096116260229137166086160394450819588782415036798623510862459670337132917473510896653855364536198774697309640031116702066084285190257669708158090446637173489288786421099961234084116914319859552521770939648367479462015634538501206195623832940369627180179043388187831110186411966618748129375421343268447224937995412030320011917063982326420247753343667874311564816872911542186890100758741676625947706362257948289474425819814798137047565183280557358219583075322919582761670574608091371113048327240547067271631049288248379514951521386704668245082579309171104179994417328990243571136075080251142126082074429787103878619328471999705166405989751455257460100525755303068790069534676403609815877817209985558435756157433181520343705114852225122105450226388281903970945165642047318904971187204581242866081398445042857840772653892285115077605569826991221510739529249109532268716935424486350552919574585730600391152330348854562378994584804152011988690655427315987964194868487246071368414619354531422577748079467431414652917029204265487449792270459221282949627527263970701695724287260319756155908894788478233579785617188682906933589145304117287552631360316449649573895429808790415848966827873154301918091352391608379504487823613868373424245694627730406559405091363507689249616440793170028481260746503344940343553139184012686234330714093677367263053841007688996580952706493061622361067123260728124128913017012277256273099643243901068189312339424922416922770500966604416803476676051994183080144214318920295831803694827481084770284159856830309055548587143592239713917627912963730629692019297317310597919847865015978659927917886126399360596149516877027508960815538073983612210519169393995804463497668157123450811811461264692819089621302134246117965220576303834090956544927229208779874847466173455010282503659138550273310378557596762864874501101454597407606485710024934749106770581392173221523480348338160141825736676909730289133687683896492451271726628464573721311800625181692063320129381412229539954507528616926916867106870394894125693893500390045851946455189718452804729180068831651648651090646763083174424118429887248025450811194656074765495232395571188457124055778220944556058072971567340699830345798892430142855898174533068622819370204639142086041980981671927393372468703210395190620552315918611160497007110448255097791695166628504550895416179090678002311743776857908077684081738075339293860014169207362614502209485708371122518792221704593859729170948877956590015584242458632371250958534340675557095968880427350092109727988875250175630373793981645792938778812472897742550147905458911600740224572202143961677164684549285859312495788705284058684780270708944999768643759831409058665371993286363629918332786850851676639171592115368586382591284882853959012464672473026835219908733807625530390352150290899911860565206190956284756402657074319142371067666215990247678813345974592654872644017859495683312817098499991111701053616181241857832864108749294157694004081533530981048567716294564982249811728717123340870397720451156845993233365382117717887419527606613296702122891161912016043932569459702147835361700901601820559684812227863490194545501067190687287740200719386643329149790699206250351540588287172094739450815598768010907928098619728065357353304509140043137503568180984166067216975669179582082011994373218559995951288208153839043320186954140198500886072851228958325340853245964230642708733685635843301621662257731422038753740233274279630376342495649767276094638221391652157682279036571551523507178147883318582435684836768354519628568793326557710353737447159886910429272753805140555524894506080625580378946320689338606356907507187550846965866768326800685739689377856834973999933350136366372413947488880951106408523377477481572197764502535790772865299839907349475417691477572656416211623773616137509629376004232185114448819477753292059193500639171683309047543224989957982683658514321419046610651180734641379627292319308492985021161849603528481619002081145771322864385064527824340879330038749983913635390883950938274844010367137195180822309094685424331316759347619858183404097927240634612409799965539186270276318600594241575554370577134080859876549145546132303355377525193816757791487842525149341132615424159415443231888189592340457252128518748066115574073919639103424028522004109687415071436999924673174204705776348365522452626552553067083023239758812868278883405650683126183225087869426115321345757847788157658437402187941836738430109849560472992894426668044844555128811659267004587891041324011498393422969401143752297969231281097094851042854370199344002101086989279159289627042528801838040032190260581319519929233803560556750023367500008672382241269589360767909709032184763442603321531638933137792571348072721655954602681486316036484408951960488112639346669285234954847985300541485539625440900476630260043332200049022511918078803015033991495190851396734789042877811995478584006838473397106942669739800565630733783192589133358504799837440833706877259109001086053666088465402309545842179098277827121576637401389177321087535581285413661252478992220314534012543365684094203723591831325301888785638783029457905078526609446391115740413493067737191157987878457152951056587008257975869800734685263924071133317782969250015281880795345076972027800037641453238503914007359738033503713184116573068595869645931504591028433687892190951416552554998452576845470010866754207635540615976715714629820978857076927224523153210993931432193214854027936182003039066862059694714787414407219604947796527570788861409908383273548050753688995191090253587158379249897741137347450436889478236045489945085794179017356246625236373470903229059581845312949946035243402333219700292483474181941570968042672564613543074003836229466038627449257392560400918395456361422313382450581474846110530314302810625894601964314666818700338031889477049148456096443861141134459171945009818692932075459951688077589501422677698424245982914556150601220177646827002759432592482706129235489326231802252724088757252052841256330447437854545787062204064751978801183630405180162482050579226432505644081893413659945810601594391261974963138405942328654181437393134816301941058397638144140518560804561603318877965671308605335758109469435672865067286436624736115834352074217240453254645119983911010458647139470044919607603654298998630282118331206636785728715898719674980888607485477228257711087614668597300337499311340546999978443518460741006060345428811469656074866170887348916087937747492187410726835922893730358756736346922379806477779572649352310441562257071493135075145315727343835915593934175322377437080320650662364161329249968774706068078158022512325519320745455426532733388016826159519440257530061853446059780276477063332735231210640538855675179588632962633051331660810777701550226624445814568253172837737568391040968435750327884529913722122231638540138644517668862387125191219978242433526301490118504523976191408154940640665073706898330328781282732406116368118324751580388128335613958426711895455893747212334734712415991457491611672393847258785992806032583247026857679467961008528834175026426263716615642746756824015948553856877243040926005868683667557502280184016961995890103956113704025834459919913410856591455385573991071744540642091590057011900070231520909101727480152699559641195295298540903221126680245813928244544626999505549939614009424832086251710584714871399825605551156408812558261756065214946907170898314100882480074252606273738360640631230828322729819282684445937515649879973674603344450728033728907795062336013983161770398837020024115580080165813642588071650088098710778116299457901956881250425212405823370697115416885610743895948389147491971170776795392134074865347081253362673412389332010391237236459272856876359070276348804607165201143920186348484935377696754451422279430611253936473783865816109733070737642329172413339654708582147019732337570931093759359032150161661519910434235667438802278644364678476649032039081052299410419779301917696498235538645614602652344152101087171492211114018945763900074600683873738006251801603726312945717882176975331102007172179572117136304529886945093329806421066393628682659998544584140902234449922339658870704019735084656165041220712966410744976178195036610507354223302706256733389413015860175348557693654258122393502768800322880564971571931461206988241634364564750866597334670658569424615489226711154461462687634734320701125086342773520488409461630725007503451701775537438334824765519234458857892344258006029563567719620567417796993918314526032891841972442850000753063440743085894740893439423780762953319816480416180081231621214892727478562228943410369353208087653060035795473091190047869487497272434397124482266372410142517777509596616839993695002309362064950795703090876672984394759541163275377240371086129505591598711081821754090411046572193669032522943531837941646930645605601574751585043055059828167586680520181633574423484342895696940650782141964572576511761228318149030751748242261713187030857410311032123855566103266006494418198026408693410818933962818724762492158705312254867485430085827595635856531584294930025729480901588559616713840371772886701795475875859240641115039655611055289154529667416066831019726623507611680238105310215272942647492964805484994881746170741737978796297011529018131968737354239732399810641355724193579501275714112158127922930818934685239359226193389897009481399037167296046212655840971219684085459784242440556360897333222099204345479976234845411119609992427935772763978990111560554952718637194200689670173762151309723594434828694089829410765162091625006710856040931678445717328272398888851943563916444326432273572843135910752155748701263717886288475454235148483492512703424628464698488708516822954044634216770624067601235818100896232217042507815472402151065466919763690752144551080558649622971587691143007789207175087866115376191862517043115471304155185400289503634956387620980684183671831951305998338825672525269009883028908924908034879308459981400024789626966603594035976910823462606853211167121782187609865340420984188164361984351328641367524075076117848249708282257189825857812520834671056641808646412890514017413369717031292580057672753715373376803893807264959981981289231454110987371702073545901984998520274535203790515075917432414969121889056341068064473168127545100083558045807301353891086283926184080258461167210485999038479924959550912595451377679888730002223079408466211068822245105443195471434665381886005555461617404109169970384912532515009699418596728285254683846131379237855857209523681767865492273620084737183225789647081074911618692606810627916142512133733535423152250615197815231524455833297276293600403524846386817813622285862486825790760542517482460710352923695525929137577498371383775319351886422378239913267937090689128055782904436719067648279476965315271824435575227561505167251805486254176468966059756034094623848777358060284294056086940368354113140384442466164473261949604844048145638956401987988242668618139114610850173151335898381283667687523114986310533390229992206669545723371778211332893720358142272336377238223068603312747325998900894168592236100295608504202909703410101467738703645877776997357150913420635811728881487919756217243197952213628880068487042518234029494318336017281684765543620614250046432975265870668421556570371142728438512247065139949602513044832011128793463720378880286097642204200839398939945875684717598371386071425138710139156089859653146313179659572747431027758086577920341293352786858643524859121246820753204241473646447272142637427971520659522860708087615907143860225723454817911096424778647742368816172596347948573121911032730750029021682464502568791116315991526838953250847558972158664417778315068812124430120352203105719207180404348971156606525031460979831685695124504463287988593303907084303744018577799403984682403529790994349989585504101984557139007968864224428015059208442701432106132342929211321381556420635712958083938680594156535904214181424783408130394177123738636488017142846375274379373851758691157601262217923051731678218814996361881906844344344384487628700086376841904966863689619744812693574001885970795714682122617972264176343042385785005866917526147890233526863949698309421788995811521462752934128126464230821106590188211402752731459024851306213024534763922046838823991810247674360880408973561321447223915566019180141075241997710233154913690344143141692475491124801939639016648523794103475150832519998039355355694345902194460516879563123309623619329241208166944111284060126184015800260935275632173858433145245546901047885382714470246191697005725495906509551336677629544661035295207398718831314106462002376374680419090805289701886684079092357389789710675400447645817104021615191602909973411499335189053398395143577244166869358815300057209470955677520367856295244363660115893963524286933648649418207171575097258246293851835009259491812018024111537860661500556093528552963959369714263978768014378251538462160755681165715795576481287952587535705319070588715886065026502254362071454400947493278097774251117225446495478604290526667961252362543530510286598805221751002554028729732010458599360272828409971488784541537953416331228058400845482860289953279997390402126743703823812537459224652486205902867518657030345857530364444826238217691383794323139823555396575663681267836266785021373459597870229521773826561593956189704927914983023775257422867618215898626891305481213251048849062414421622549198236259411211042026062600925641224362266265246029895560460223535227258855529399670504609001406652307811367514284371326353242980805100316195788307689751388730138537734777123961229679068057547049169558331742753344842092748108647298468510459348719381156166109417284460066123159691396302733582085679337244015740783954898042035938723593343486343970218611739512593513408349470625356979503284185172549745804895078369889030158143412437896161614519975485816249173535913137403099714076817280436166582191642289651022896337939060990280721137754967618722208690870395787234589926865561328571230285987540324746440881267893046379500095628131777006794203542665199651278628444389183504520429029972347742121101108394159301547577432973804457749838990287571774005979294085771400186753166920819245790355274819973256281684302639442500447264905653344900476353354544402091024045508524996068000858851617114304044696632132595992734449143175639061914560208392867387260824280096662718046021753266582852914755903084982459739405606015178666394803333701058185838315189667524533446743089748076802710405136173930740838042878283054502382443133562648209003187466179175559025130031758345850647249614736800205440603332507068610801404773714450794435269986702038715291382546659820199561331672345038213886045296182104977574561483346759894952654889570864051002075276930480247353267186387190111160166979631841754283744965182681871650660676886946362092911246223891236035078838406256058650351769013773010143919129532054210327569640672766083325735726380721348561461364487020196696587484690345060797537476450734863128515920413650117096795890808978987605729062492895381016832114877338724188035051060722087953875914076105952395809466197276311061632901853905302362855245648506663737801688087626117756890330330606448224224836466376023554743329350739357893570789753385963547033342877556662487735014546149509855493536518609026882015394505882555973867791872516508364375790596534892841834482908308211368361173749816924220433567896721615407841356706322631510976535677462823591134324986424674281069420248125259835399005150718068899495685890182388160485058177147926477312468672210720525958353727242292248251330583307099739762662006938677695883314045520211231582056272907501220812632107803592376007523815063032141867386125176583896762956616098872635710838010587016538824059285077784503139882036356551195781004803588173852115682382275946019981804557078235955861244493581236955252343299711548008094405539106596293364670088432644847227570112003407500507656944952827071852347623122981711100774341031608932531262970616357804188815587386447196744595737683877643589801886266106404022783292182899800851847525393541902127821907960439239152705006544238651053590072769968093859432066184982258831566530239379874965695538159065055982183446013921743450036260159957044952170629481838201617597696996396863157518846571256763934544659884392546985376651011224233661128069756369185088989400874927474168707807103625120645141499823176476655084401870544978782642245820115928305175003567730514881041384888459809570622283976575592814192105821807496575320407885861405206000130276491087059141437024342413950768292848631742983362981580750908434934645026400598723767178307614647896937651002759601169229611362808937800996551545519935762596899397500122704456469847740691255887540912116672202011617008783838962100687191088481234472424195511026619466867847364322984390937751293969816774406071435609960664437827434192394230531707910975274859535045214125757621828761549318748845806143441600331525986291259394883806276380211439622423356011177928030356891445097239949615058115339192827523014860725156296026538547533566130497060239614819691346353180273172804850124846073648856746818797303254353040311105728989795163722332731624583462663582910898565026147892915325011671130701256405575880216580081508331197473105664082590218298331992622137950237970145527867964116798808971545207374938874664884277476555488930297613577507208416704357060516998965494945697679515111947996447456015506915415192844201881752619362060032799252242897138628300379069218976992689686081240981000574833944140232395877969872464101298049936944257973608588389352193525054623445714151799362932373789870453766835100563167534745645935872925586813421711049032318445721478937702481380798996810567703708936959143199760615615819203430696828407173207557255005241993066403295186729214108578731804464867364574479288442062297941423056785108807751857666269794769422394729187563585331478016278928475414673306969423129862269378754910208378260774527384577172612803497963069864061959133788969547923847595671229345750460564717496306995428268925714446213141201824405955929406233907073125106764194544868760185106242569606023473878838328343103762787984581096052080978547878726389734902571173424742232257255867713157786425913621604238662424138367219978000260710819985345082072126674810431862472933848967376178784983757105481042367951483979154915532969214231998635527237463200209831239353391853751283103206505082570565202928572252489568589103631282038206646993860363674615158702919979126329503938559480545244783641719292225697380999614037231440820383505257862332790578172861066856103084293473479159965567859048604255823356417457225285192078628544330567216233434449171500781979896516559464233435590006393641695250964348663733655933657995232980105248034695993994478148678048596140313480770301284884475868812679094691398107875752482194353937093163350084039559845579043608128636573081219482784937251419025094711483104522342551880722524363829972459088055980913925077963394850099008895731404618785726108336929816062259377304898444087559562838130453559578263754269322892977448267644494348021176790277507737960408236393512363637879205307405817725047458511526989475923380791231565789401219115313829903885610147204949503998622127667472061320535418174782135550549689342900316565530002323532349986211206005866777580842170685131161722860978730270966558099616064650729678353591839705957652904806363446254521922990028405793510792279900834007715925191774709040149062076244026230940292881343783549318860886520046255167174792038009124828375631604033770695475307727356360383035882409851306881315609809409814015122096614362968402392304769587293177660920706481769657093312064139729454680012401417787858701135465447809519395515383611051224830318453748880393827889371724816796431637911000143842963674438970652740194934279643408413586756794187571312867930708730973254356346002411448339209296919159174327442369661989432074434214231719952521725879726215628385037038582233935369498871606902751282710038658557351611651711291987714314589503884792079027392032540375616274843641734226541343192004836603677629225581941452337199636588443736704588551090259954592042858768130438279354851375027980381066332781967373280592518842757476393625946650666216301261583179237356323265684589934257699900271250560333938696821737772628969225660188578310876464625859182747764841647508054507049841913959754455420384480566904913586970838915473187707975533787932167866966211765254558451728756512108718530656538659676111270673974576535113941620182039230421716377378993307651659275133237220068185591612609282930240456677108081785550475044652716948134533354996711191212917035380821093958335008500728322118262578993613296540276476688729968705051028614018664533808090441437109482238681612096286713579074105855756930444257903261420007704360592714630932978406911545369457384052808049692334749362643489816601805941856292952964864054507019424835814651778621029906154480507534378692990946118314295134717820375011998827594136523089328924707887212663745384706346092019130480631537551669670179738508265920580191186531430621126864824060933905788163716591371527638069810794927883784945405256975487336022828458621603436689355265205840112661216076089133281160588397049010922836550699579212273315489834979623205333414724883545609701725637746637115082516058761887654838839170362593154718292323030217514349296040489146996620988274385942280932900694881444683057673243025923696962643549608230484984085466313993021107330072718948763475836924313643264769025545638410834434487234135001238980706499596516912874294255360250697721223933090439354386172656160343623073682575879971593408173209687472571051842142807058111536431643285821155397581661014606051090627975766412391575793149258929363350902301373159953699251600373783228885209218373883443450229501188119072609676872978603316259413187076520350171373142783626833609764601461748933354073813369862704170246422845879530526062203767036905416347746260223665450963128767140657267586533881460913494007519050126291556370294849982575097960292179328659600085137669573620771910193590342234257223065050411291347378368930327077300327936906520985693350086475741659995539803273925684126485352860364871684902741462552649986226303274187838370233093561088067145829344512041777305768054667819442865193512916026067183706340910677411456623454826223898045307470294401381323488458754472231172526813436271471899474126481334954036018207736502152417973924522705006144702094600105127796334841518141534486512019891345696673193056471641861749479075322292712625680342949740691480460777287889277013883401183230961455087018599255704450056468482599531379067326847410362571514790458036839115401158548000718481557721187685307996336457994382057808518391862512437245162008554192464637233585675431516487606643970051467045711871414383356064400953747575565455829375329810176575355000643063619859119114069178255099591127353825104324076498507164428179701949764276619822907419661353573337353022677512600344008396483743933992315446313217383328635331702980590658410579098166565584852598805181908396451788143800819136728922257172965596850146881737948872787090081889849356338925694423436462112595017835168749046813843787481902479617822588756355256758718509043709990357429775218453306931759683952277942838245250079794498864116807229696212008142222489552038346831650736314693344434037912374293015444814080563317540971504853551602894377134916807295153965676782016961540270899986151677838675819377028935046138081070745869160180865470398340705945791259406789261552506121017632135196017908414398176307851401170651924396939067102583589660674186200628001451093421591634589872733658756121394690896343521917285557225736834806295191678837592119317341236677318853055205198115825475435439624101747542429634822611102748242034213946299352452149588728808040501223516713163669455366739170294854697489974254746158274789740896074216767206733280982333872887046346673322644846433826305010781209369913727586377950508713074044416675238480381332305691024829781994381260637146288219972720855046042750562301482839058948737679290446433135793570078224959211879983275916043080701630717740604139604784032382427706664308814175343284347971443606018591195090976271651263406075863763394192686427650400892580613438208337267344806699681094445428606481140828291794638031701607424627120107681798297438685116811318164393954429213882978502682784390756822371614590959985768974118066429470737616470457980162008633909336962979278866570726270533665837069509049555303556114741287115205770867882727689743554944234801413848762231808613989764914312501708945308167798072353715384837640771336384909733599591536653399183324168091558228210647100615118942280882552226394802018741177319410730664072389152113649787740411911096983557302850480344792085788572554588869536978129768227214036281625892866580323542327311144493951840807418213885357611769350013127558363752875778509438476137574396108869937627950650867840062283141886198697526555229830522843576445665261487553737673307451543744099060651553879361023870015783989923615932990206274519944642492921102138156229184336293245536022789659480294319809087300192143408193193070938292850481254568636497435033976698438255928685437437899328047655934079595141755459967437709992754194456199869679681760566670378747768217073488593221319946472906846680733259260728479465413293879270881581742773755383475974942084386455662109841467640665041441850237399539645494082209346867829421589022453985453890534468024166641440465682048072884912224739456459880691838857563690357872186387211745286816219096332550021903475380049959700020566408619491579987990668693198370348059627595891867289462539967888556922814546205984931427644237517108423953071791280967327840469452851487011643813439162597231631890121202721228960131451332011842040187812153017694474371060554976467327730221909030204005773435461661402417771027149524940077011670398276147409752407951334220975685740938700761680774967021303780341549577584840466445671166423869675787534153249123448846061216991985039720206936617475008505924688456283402692424269040007278681756110212298146426201979834374033423187416907568132626843066654733302014625988125683204167635211627435520569796016342379235420356206862731906505359281757493107319962207069810963764994896280812385070733663927988602620169336124607552051242987864476341437922184686595619700269331411760743716055520597590744661180322295240226208141067575205594036174146234935993330640787087090391176206713383840890157288529950793657115572443784714542125936814425077745831863537408544487356852006523134477944218783954201352372796057221607095902953389431359124261798252718581870405178465873662228904358821546946348138569475863659442480800505720380211919697563395996012717746548295535806657984001369722575989399533986170785270104650167613640292489195103131401040588176518582784599842857823588892975445467470957289889174698791950836420354161249810211698599846762226384377648698576688890623271448367689953253350054370291259610429160154536382147661888627835709773476891876193744019582079453164718938884642831361739435562742524789546286688781090657042641133063505194760800867464279264637470048194211758706645209539899663274449756968100174190958909261686748521328618600073243974635846534645477566454149528392475199635684535872816682447179213445587632047341485277821977335989052033563589722199398043589222241121876593824035504108289321527386483327877978158475180847891103750391406353157288818161519085505375194510509905627990854641518508424903193146142957293025494565404955917406747793451029972559884155285118498850502138725896914730299823103201590477924125551072616258368392559583332030038012676807222179229089943601827363651143293591133610059560120544965151371060603664323396323736036588991550391872145535451822469015508194341179162001682629199079037716954536966696278320033519368050957034998355139192773562192673988731101033453835044530042533071863924586573818749587531483520116490604756454357256926492820655090657408529593096226910548476898255433606765705561598759586005015204732136369150948848949379921184298009212703840440536591876404034457970388966112046256843772559320273763978430445231967539190778128358249032319241260506563800149941029922169271235854382808435037626545078320014286612187587358540589262947653914438254175668337150246644485354002091765025386893830489940022719227594052415077643692905605403589982146690323435207809089959351475597206935608377962572354314766346786616123472615177857131569609049530606228209339241691282713018675896534330421954770932127453690758346305723173429299376425263312926182566862639029402461812415789122044202296391537632017735620718271320128689194462288803283214706527654015856344978489369459852628139674283548346705798972686245198400209292358331940370372839214306972564880054633603003210040529847237652336380365352152761740504205999857519839811002220887046603699474523130357217504402502931650960730992924541019459661243128239025197630142718254798565526235359580405778997649352388108061830748379269207232807471816023748486926794084533438091950641554587811692702948532764319238181830394636854922151379062896230741731227766017303353927609292974711192179500312220503439872592934714427719463670679099443039104840623483421403097789557056542261778170802192034469897348793772792941608701119272961219291123931636333200925417530356693760154625097768878210895451891441695791362511730749424210623368441494503378990863687892019785421190711507937257989040323458822600225428602290924488272489690884349634325120856481494218644021681628424036009670051095147683391333197493900542190975430921243616633778505935275729872099338702498234156844528739809071972350528428358885945882400746060442026110408136369688282645725958499918875551108286931922076009245059340708386513489020593835221762436982035798397194264193161797797239717639689482247174458736432587891410845197975943271365807118088654357237501225474817420335225177033019409987637500461839134096527185368948944023403002842750588898763535941847573601280349249712741362112536680484392528094874288491270277412179293996134892102239623529608916677518659613878544382903238895529629818230850242947591600290706891539392698871723157564323681286268222981947436814095751164949065554084676499981474348143180673614433682401495908796027760951903645531532646275066086969336171141178226619667205313925422950926396502701808873284763299140492064984420518299948958830984684043138578515868457384529721178193909124746607906144541664836744951032596262747437564707898208513418626494836959053508232906333123361626435282322865899489981476592846876106181906003166831976621676781463858786718158498754209782102301087620098913999561395450894805657816908257348720014326600022207986592501062462246914291245633788728453660504519547626972905849770068994282261045742335200534024558637642911776794049490392421709286362704498115889224013451119092259702381249555007240476045050987609814068378530627073326590004046018120253512414430822629766326019584745873612795830936880194415135708424372122873674407744707446959783765028344205406335290489864246951872879051977639805592336964601493695303038178368444778463209169430651927455835864527624102345745332959694141927522947159426932439104983893113705883987902656724720677510659374630803510600912669503472318690433026243886464254189328324654485843256993217173603750821782322171076555955863913150528822578484780673087305126732143431631378068360662668178860137191862652812851317672701500638139412324803457796902244874983281191361044003078704479014364827117046645094622514387690738936729937093707720962642716451879863798399564457732847135172454355635659422722845585815078085231678608774296647570965937582451803358021649134508981780029691338465085184876477880402120678004113982336738777845230665832846763549813800980411140338297662947795213826513296212871900022003642727560348061603134606479576557864528346092077430328134843004758458934846560826973135789880284214503550394468396582877240083956274421336745933140018167113772958254857574123000501067613055048151185012329840090549834099006043800597124370433290813062482720172862209606810654476766808342686126043974860453727575694111246293174671420335080304230536977163621890225881694605655203938290805835625390164791317424453895973896373432087070893679401067921423298762151442579906533559437105046435116653941011491664545995891423730652120739996134490479725956069276471105594100608546044461803010625331701208038163140303473400598494000235689044735214754914100499239533599898509797674996547702345783079174926631840270969447976183691428306555365328621806626761595936919407000467271323953161148318403155225265695453067767010615607279104364611720031599093449111237806025202042108260055595486391625565215886549153049509575865390377247638243875387696627255560097662056504188177591130814257497275681738391090740160761371712406655477751389513531132858325557556890038768220141617296458975976046581304741337046981638265064572480603630175139897299777031296720425978015316339312647176343294268117741132751617205041907547312928557049729029552964090803644357263091464090141934476338193650262846891087928773925873266739481779923782261990692258696518727744490755842990726421679398185672791232889983759924619127650578113658357951626621066381895903010291020592625518335975390823693156375335936931612080859060423677531371139151889760403556004506537434811677923323350217103256155761045132392319095589170207583579800240327896670459478526175059216618164621570238632220106501204569248266425433755358585431426721821417887448531612805562419344591448478595044731482666918364333498406757840989148466352684073120334199117070828477711921337563013033445425288349705555640094690101193815019756943818452553382163096475523879607795521066801728237944815958541146456851016284283818550661586405905723676377365256504791555234214232290663570047011155004109894917019591937981857458105123263844228413859398967227063561746624370101015665388623587688990831610487490039246771989681381452273400782449676259067836798599172721073615257203023589542013109315097288918146709354257597106304356438823674636630179930076845529290810883173424726886437032021203226840445156557094428941210527377763808546410870885495244703453730598805780509322267239477170426228781529403791767179393748668616646376956772751336134210787233649656687525011637422547464339917167173234963934247276562952472682642056535145534881711969371108257588441337895866662101016379588407426724669978929300760406526872760531391086859194837569723590796634046849445399285882193121297246203826837071843179538662473806568778512606852879378649753511087480227587518416067446424556994631938754521916264139243195652287405012167815278500774432656225014551382784781854721059422191706031563529854353178309675971453068097975415989353175896638863321538683933612412671257858111234027050664754429958942850658838548160872179764647082790518913845325661878169686177789765013611753159256530206723047870858403930259984291431083721883207491689403429104291252097495719654828106048153111515544780631011320953978500521929282820077754030197477632668295326487102896477559145128115952322558657992593093644478740946131604838317671282276663414255228860074523829577838464479566772899285613942541341757280122804456103786424769687230914053631696489336121321507951875748543690747378105042411996129097503096074230386508730492983166351747986803838247372830368597070674833761032654643109869955868499319688694729013003740733794532206183019053932434980235497134715444174037945054308311178827638425666289785131553926125496584950168936779765635612753151348862634874544087131533531345077566283718858230602021520268857318472448300752644443623659101416787961172256614748476766199274275043325759539534974493843008217375435260949601910209972677738921109154798080029952929019528952073525495245310700507839361377727396890611549434642060334207877910742998578259513795322333776167208913496303523588547888951090910844028332134956578584169723681068886593960553400849355568185205345630955933702266668124342267008325503451241754970514061627464741830321231793885423760650775522316213688197188513518530307973409370267519944599029477482255301322179952326129967020100229339035775567489200132533698865746087892915597011296345464188662450924053347908170820989020409624629701417172195375593753113488629518894820747136638634061708172633909441834249202213916916212645346388349021928500312996573364095201871795790708233474334505402483069052301401734204286645400066620681933744116073670500887190256709427276166878530830633488156027249361352392472318144107207750590209245694458188411864635580977229142100706743314638526509846887227163483179788673534638448957382438402708215104653915464444605537791495381639438096155663377115448000233877015184620603691759263010327855082812958146013243937849004945448474060916558115783413225211446156965522180923993888894408000376369129486828582057692075183638863675001078930357884539187205492500245544756255697212700768905788881719928428845073341012081535109018467144805726756119180131150469536216132151263518828505627420075603843641782424680163403935937631254497413494899017987390976298248704185902200434221744077777697126837120230120551379443199675343109209547031282134896687344616601805629232254872001171367808483256421610517953871853923181430414333412656341690547397559007912780260559310455737059867863365802437393601400181436956475570716434566240216031914344546081492097886726166356628209982967846241639423644663242419007510478486838460630802055396386086931389808375166157491500725861634103915852647866984010597816744443854680746169098199601892086252062458029973001143984628744721645731947160951992607673989000676511649683380566724705625940545014709868154940950937137018659834661255784986031884015149368074582822155919642573738291473276900179742325309059797315360531512896803195196470886141598440862548600658162983721147811558076438780597362282791376583860240878890887574518741477131318284656462286251579838586615715801487132330569594396684910220460655306157308601227250668784426552383266533325755832603660762018753779138901824959940258857279620662748041456446482578415672742233455590198653129583501431389753586394565598461229260650989811344888255262862224353934556467698678044397294237428143726887748743973316146585858588248163329207951958291623892767372245260954250121417095032468812797215339097110692843948618599170835076189816864509887001737241754699606608226649340127888010304565347298430008010819238134619541459892717165738379055450926949039632368440405421775338751118721501331680862004986633664564187510858146511851076550440638565655882242338226067857635847441658027627736307656421482061104898073294012062745192008121539327528888694509503047087018847844369019161701761569713375986880132592039539788119996312614116661409317117745819542082861557520660547840263875416368169804226661095632430882491920180889527323541479848299261110811274778418503695951490922717755555198680752610033298681276818493179796333961401893322131007935121612019683109282166301591066984623503163679127473369027760988332503164242615835839911501001806036675109964721108724306622016059641333514558931056525555732550287431271937671370575070225652315139627731415330810337545327621533341514457717479679192348716171907963445416711661657639663116211196104070411714322889357378845304297276583815314230292085150912249264098122118771726959176912119342782489735095311246573785078731639800731356347971111252340865106652028666125970666655596831430196143274537729189499596385710513306617570957385682533788110117582010155525702561923206312488049320168464463651964758274727047817897097330530738744701505490087986286447658166655110477051643466747698702527535662416071901765813846170194295720373665399725625240882135024971441508973975371804732482760731577660359150986724706363525210832896138744841251798917791577861088673559260547766493574915710394789785679119508808663697243695761303712821382790035721222961337729271200201599582214990882915976406028954169458720402998186635362628426530990974422303062088742676270317964801834491466199418538799167421453682168138936573090141855701620617699813253231903982529907806809343281002490936048683230026250678240232118464000481755659621985997100150748584772188053253269637706433409671518451152355114262254573958426746129139899382168550738988356490077294887219488352642148199618596250624152217297612125897236082771052747260376451577437892445695995673593933971009544682103003877627768495837773617877113322369783546382138885844557900402357637760237137579895246250576257440071583346873480245966510496448495744588580048277330839751157885739934968006926318984476063305851190771680336430927680301683400752535779685696856578077642735466145602362475057882269626781989722910445484020417303262072529086490732769967409461521151115154236935581484008280703856936055721175020298144043537912826751094490490111391568491868657143251367142526759372792263353733144364606611510813944136948193985322990893458527044231528823377983091879764690114930123100467188048525741464147974777541426685772095033692415216011971962281128677427063636992393408128343893292253172300468792764599450550678620715108048638440683839635156491050411661652243224587652937621338015200111238460484614042795862889739889124280661700611836108027466355439738136371097837032412055860432646327393646409074098581353172741339747034386458272325529101023913865241679481580312258315199309330472805082181521645484984742362609626438968263745307693492054719108239203075650844230672523089372585927234202111715475353694010868426103265541884228927340315294227252537892153194117387116338218463055977748438515469943636918646417657504246691344086272538338937557734407173576517990733365738824781521819782100161259966044904774957153718906418656498331223274095042602100721801043483547895621270865258214490304099483738316287156040175460486969713186904406630008864468489900471605698201386840136812393345027520727160582438817901553228416623378918479337616115283847908053683273144868875194244253214926476337954433890864505294643697936562766256084670299068122391074848910128815074747448810872145033715988888301458853338458499079400618354013915407261413477931912814427203875782377131125380735284228190813897334925980791802993374976031716741341935473285065882863576515551109663036551718540137555953593848456965876003803645365966481979732510353743484318577326869780428310210462943470336637449538766854587056983227361857079199126544554492844439164381028783507340727729884747583317882611027768254173176713685928865773969889275605999092948886502185018402638772696457168365645092706560563890971005929124924426078115365393761631115309940266847488150918830153362595150641769555854074192423107428632291994112233838060649285605754767330176306948173339048091629317475376485529977710099687948813096085995487512912385298001692685459633506392207036875525517408530183835824620382170206737584922127110312578390474169746881385926888329134235212606486670492610912513059138297925152324090068757122328889401957386092238114202686656454772405862876098473232654740706250795784595541180368282677823123815498749311543742807303352763570718662910566731784479076581038592888331802285302360919906710645366062380008388007530149849892621717387279144405976138058030737811164187590824179211018473658168683078116712802500677165478637454067386413006155458939017707905591606409274145516142588881756028053421402533588007686412789209303825740340212791697592562720209811076564810831403394496113303241585061061349469024690270060613546594752451369556569238248408238316486194424754855875962165810000975820975008466487841915907328771676816910467205144280087437407207082367504922646828323267504865946643119212790151831792412823017126111336072051302966305775250023936837240728920821898714565075342862782301043523676617227661518714892372416573404505648398750399034584668464231758796058842845354177291656543371564207395551469191728145228171167848181897742845599111720462970646022992563230832211657133114270319094497378568985670391293522288472516815145581438524458496107876720229308690573905869874493409422270741611074389342967225341303559765614916670532058297726259958559572387280198687155065544601045654530491586678550835251436498865492019582485701875342000231301322205703764256624249852310084796344983282747445380831800107303265695741780556589737436261441521430106684540688488239905604836391614092850522307090461998124333968141709006485928053865300302290287649956542522081740694938452304129456151325625625199406288583430232238431825829126502148906025706029163687337248192745441555024173672165678205020187768654861131777844652648366276436664901180304419919136073214996730111738623021297989803271159232639828461191265440616166390924355154011835842671998514338544736740512730200403563824449528099887931335312876909938685122065849333301483112073518511559135750448395236511082474878203180616088774983406674020337559487866223551587107824710390632625961713554699827077014531692819794226702422726872651747117106840982930754199747668906170615703397903617038322335611606166352086126583977711743338701642961697426176931414239826813699062975564179661503263197234059356484971362795943705603018501224556317600214400518512914298566223479099009286989374562034205322962741685680033523199878685882473965550769529001733945210450059511597885591827910869002649222122240901328334090383298582881070130101798621165418276779266475362844599612347853686801880810653868317053437754130348026764116082064717177684840953153577737975435021177028329971854233779408569256267381929848558742146162143961327942583583937971426499058546010485769873106439025302132242924462454146682758778081634101275261353778063668068152917214030331303099919318625337854706988187309426656168985636745509950132256982538954813296640901594105096437016664921105250287798814389821966003615563895247623183337028986989675789575112932039361876917182960104408218976815882887538688415341998920766166689152062122943897519503700073961519112733109439069124727612452335785710817893647534831992432827485929246440635392079863401950166943265212545337019250989212801059457289311899944838333619105484222508252748642128343220610403166953404550060431876600970637146998980418119442788789017158738908895959186448299438446173067971883253901218683977842314853138734042918972406702701128209210022970519143982556339860995688363854594712649437076465948753190831924559315485254390782248958593375441192719801783028575226293366996723078853216746327453582796287481158938587019145990441615304537101775739236237116060370128294932697282599421632100645423892789014307785039131499338678930590195866950287871887366666763067771189396823360966890426868208944253123285606159880159056551030443376576917995445624049737107196655140172925314357923345398867154040406512977293895468466610824084253017693170504756546314082790588182806106214119250729273026768666270102530997266781185234513032560908167766013686931555560561458615411667935479468948699106296340382458979770311369494173878357841925432559575438117894714937760157426108878519535994515237943554432802644913776495313833705327111199577502664848589852398593844512389282076856437319892334272890406349776980052465393113082266803733868503071175333527077472090264119764253318473026878303286688170804399745391934711434103274356127100022424227231862793638667830581466577788493484088494028323158742434371812346332287153614515801789933958681520470623107016671026948015626271016937789889466739896046884370197676301034571683379570206850576625068813393628664540760263601168123893482908641174884894092607471266779623819398250310537328740807943976107508793332035482682552461267443416503828254308250026555567083786197326605970058529221836590345481019546970355756857753525717889502950787457637958328781778708727813609856159082998378627885582721393451100765914152496459338272633930786078405729874441030352677828688224486448423952325569800094293259104390505970043158116379393553315036606001554411613125735147988955762415967520493123741287196899261961640292277410124302287920682117493261297482275073631329724793678798241495898637461270891063939368819216261186307643608974867237774549294896380286881430436650020171690369499463177796939576870650577233622395542579818560945520547493725025852175017373034852361097362168470090922149875073458564435013062817775731430687560249891174948267659933386558107817049181857564676421029514901548981281890676504537155936425424067922505881050639145169988061684617457305643584048826357542970879553008480198397768664463512981947193432122214642763942255795328854977981066039290172386537355508524405345437676680179031536733619672496780636150030157702505151385847961669541500719515148730533361962657019630497355053241913220344662182115729581088115608045619029315073734899251882431111628617888898162698813957751807554568512685021040186542465371258342504188455646897337669616649440692037696149300462069919022511047078887632193558862414513937957716159674048033439042155817868324044660622447040549823833398121010905501850005251853316751750589115168352599296050585093459432100578372444680825026059740396752053914449717240229752358962169640924823553878067681426888461626024630313987041607949285839493112622969580132690554285585907888276578594541674656632212825406766056132082698207077949002442832052087063148902111121908164294296463793656322655224080613540849885391532554570224889557833071073222604699410286241879235461064971620448805834628198869374468780407349881113951197361084723125322309527463495121987693833009496170102346072412827880825423138149773181703655540060347766752825881537533091097254829034631940157054749257456686285393950337099235286209074329806890958300630420853131573268277310858292631326781230342773407511849476418428187881180036872314714707897942506147956778926806160932954332188368443072320663616953049872758054005751744004561697753108153788582364286596228120322606102483558740931517622033842714282351968959423106915132509281842599063415974907472874467607513071992071246057665088490752037809032427073383596331099553497414927741710975175519716638438312864016323611116764903536032434266773163910915276766385554658721787194066691332167413309193084822962262322227985152214811618075988806707143364907496439509772194992780168281801817629950708079066498312169445457992098326102859144142221555950708894298133351927465303473357667105270732056514311210814891976820325699549780161101870789223851970786910268879632903387944659941337326399221458345427359191061063925406925676014816492865722313466061152967562926806383727182247238036766158323119343431815441142822303548047219981374505555730221360066475959242038188971077811752486944999392249567315771460304247348441634043948465676960788011645425372203565303376649380216362250550240905140633617869858850178863869354628306500908899567294890598772275076428759567326480290665270245247188675519840221663666813306346467538913475528406078595354357580340401044102543388202969343347300787627936710213282895669146594851993214378291698302241306914812539953406802400639682045138095524881176486506967844990795608299397257754873492335425222996096068568243159499894503287355434393856374676813459428057477561566486700508349040557112767478703618452016162539090469346278068950536034938592306303967339409042649739107169798161357180694769468160399873448585153044679926221698023971206657040885061380305707672663043384769899199661489909571963375147081072558254512269430344631917667443870824360838825018066227009272468086056239922187448135994522384959121275650124732325590178752332181512749893346491330529085611842705262550498710282172653205797760601610529943534420569206132539578970066996533763993522371137202207085440655868194014847655699979545598848390944567431978518161434491601806836566818931553813989300530946912295355565046527195742601023241178527754933549131862161595198910523120286458035722364383855786683141245227475062645974879031685689513573571695664694288837037331004641527958986673231594325725071879498934547246850516651881665901469445398871073872957059989927410174153918382643005863634712702754587895358588143171921221263179662363511832159829359551447781655013860271421181278224869433581458413266789094226977407706998776734910486836077976057131407345615617474594580783161414212726092760358357849008309813025440904839210367135908320322175766563015216810856432335845252873757301566613057789562913776651786824576902496554963787153864995162401579507392600256476949942544542685651867858704024438733896616140298877995125619268275446252194802384038623945449246386150368734130649671830752462639023923065193097642302643408755264560922829475148415288981213362173098897965878325724189514806158106510526372603137861809961014577570169499184483391289105526861449413732263943312970333573882708143468271714262398550362536307875751882634666569285977663046522363438802945806375609469661320909716113520611250626694792004018124986589370861054336963273036186417582702129666046360632561482838741998825213444799452987511706914362025035280959424401859053291652441612162326972505494753944415494419879506602210133555555556169489127455386902055765847685515137171267310640430384434861611261813432826585460206637956725652830199860592612434227714674551367401827352456966175150363640932914512773236124221062228839674041300618821087198996828849565727748347460466782618146508053863889596473787991195526590761175989580308952317185402209200390290676383562208440274573630008827917804038195132405186046316873828654002769586682095339392808547616946030553071433987292895338757638951346888518391931128570587108923691111552084160208339218157090780170394574900663495108609328997434006937703924906582974795927423482572958852522586601360803880442100448973767537886566322160120586923791562762093141869081263181641011482181030323141024971593332038589461292662060193899061311980961629483200795064957823705842731521701726881291369164750907653168463124934961485707499011815284901237745600484782633346353466630490817512347751568481779601124471689091063864927778449712004431706804758956404371150976192981157408201814792824260182933532216403481625871461755911280007360507007928869001104554676654611878239158316342131708005583856098307615104965325741618268543836463096707251466251661431405921726864191491779315306615418466301200006216638399199451603144274958024441289771392492075732206024610960134438812885041977095890628315644752005092124380674890194476641350241787791531312686076796024110434944008704587608451536261305414548334986511866695199862610455827595377538922408614878360108371646537375739305490841581310372504208605423853302490850423090410641596390785730648230480521090545372131390623629119949738095248149145613326246249134562095539081792376571422426909750084870336288633767061772615251613664551658821862309786417753824146134759710968680887043357039467955910371217971639221429951439762497745849285274976928768635117165550234583171137554068283767240734987494135612534529053145433733728357316624310373822059269707800216870837859062593747379183106360264514052096044537153730423764743251421204233464420236256425507074317497056535995815968328306397698731299954991553346354046164096543100467056755813425336051320331675093592109572929104989744258583027670008712785065807960883486817061743518512203098162934257234504165341339189281179213658067399220144259720898202349014153145565799963578845358151992577111020812944337322647824165673186365628146914309983155895757516450854844508911879738066794013958254516566845508109448540574372742801794858731383756842975297974554118276614917828399231239972136403935507508439016360253467278332610316707224011354639702185005751549161236329990118337612531482768696250498286289990337811685559472814796276720009895470741568233660161731246782621325155611963914179258468345951549976808666738534667215359524692051405856597976018072803211005018360805146825935230087206005271838682803602962941387841052314661355253593948635768691203365402645201408649383261124131920207914991896089726182341966024009973549999083325700135714900229780972514530150462103627766642919415983745954785545998701028329384908150241041677070474074455757126090614477028208800304868026717976671454779044240666196138062453342308842392318621962040019297498701174110136043830749561106807864552182696627987643908198521038582813578994716325355434555460445621626500383562720168581047821641597541925060943097796798299355231351709482221556707431921246106149963518857820505661709043738817421080873074824940056324797149976895682582510385728609079537624614865750315872079240214335365026981031942997409942155116543085036481482891823608010937866760859954933283454046170475107605787743842516949133298190285657386046841438640841574403309917450232649099203545557416133002214867437736125208985466929466835795633204192632170415428248978718972360443113402483132529929958717187512257173339946154835160401639326718218744350205959119074638237625807099864317918396256852240381026459427993996600186969289651801372952305587512908368968576327967031514285990037990805351764420896082258857781116734006621109772127027367306023171763406124484556642344022350533704418968008592973452932431071767408399688517857127186552639224331047785704527358769961974323273781124522975045139261313149474088504684974122212484276594637663841642965883937753888498980594533853203230013191324355748224919303333901051704222146731459130100451996253453623412979020873180304771187570189385678433366084967690276014630594510381309629517328858995936353296479508941290054670815557761772461295160093790012555677904036314249361096354899457310104315099104970956654760410253926049892496334831010997090072862231659676542725857663749886396911970158357184536734382035411387512885033712490562109908379319142531989097698264690701998569086701648334878411332926113329423524656966742453634218597855284304683837250061005566241266482742198720390991462519922474372260450374345048890141462802847797289670577090053264279316557802535669867271164234936818602510205537443146781815646850340379911127987179029484908802620355869937404664178041882039966918941105601614511241919661419860808789402365514055354493917955880657052662587852473052142708238034294059130673533858200714520019925131840616592147263999767962157923590339286309606769616482115939574671546517676813525082025928057291888890820593686150698318121674926205504343156087202544630837326700899560988441438390466545586611951457533643545340660680252169523992338617566564640327467908407143458545060515653560087680653973420071181703146459806229587020245992064935746097459087292487095679125843944062814736315464278693037249169970259279178787898960056486697768138027658201258688254984348238271221474014838967688882682800338986469971750622438882765823238640283616129188985605780299842830340848130188522116794027105866435459404167046867884099902059658756024528610607133183890416408220740051410404102280735046308197096647010029229032512222269825661983227584523612144107564134245274375070768749833650169858531527953476081012768805893480396114145920110331125903527372160573935342015179601776664264683574934461737952116052066330963970974754794440346423747164947967268798387777583449573448821546916650086359691272068276852042705246174779651103359817126637952464704513969243641894658845559188102664242277523838738535685261705254707153959374542614254991417082435384476946203092493741468335214263476563302579734568742314824084321778552634640652712855374958256815630051122913985433927242871553187302239323346384852924836772774842839303085767602177416300076949457594607711470539161023389226449067601177997361108407868191070448658761397619832878647068157337190443943404872002285793892414951560938101346640281840822552368686103802923122283535848372601265302677175307987017784639793993838716195438765535235634736031471418266610791961803710567164388219097621862324063103460695419034765296160872169891988084143298734364470648326298455456554259813211089138070376718091816208572667192997927635491546427433032778485850547350831563086841510037604022256451076834381770440289650774561419048453208289825952669878632939250786661060007365205319563476588455543867701851399151283189305752085493034224954805369493856823296959418128338089285075172417724952693242379354396904576730740991354616372691609061804723587970386246803950198429812408039993137089782547419757776340769681332959935524303177620559203954950674485790536285435877832444517603194590589583319280487229262098452658014285306725970070369103572180743874278618751495284465843099293739898674304675035006027776311038590788102226971758468750034360685918058325935953246425114765867596858969752595157562940628016919948443352240542969617457954963245476012536126731428615619787313615497218760918971394947038223407279486739100469615857693162355750853743272295593633091527764078861146582088479436160689618752749452973497667104209137032031378202355878303198097480864822973765870405825230049841178743226627127340966130481671501589030147459879817366260554325707858749072744019579206192142067073932612853012160185070074653404255586738393188544549166305380063837662129945973544333405289681217567651574792154145016431072996329063475709840948931571953865232245449646560982593254455813292346622795480829428841571535866508782961838286974825317279196634865691798139699969801857730397896166924850982029392652300423855989745492820202540766776763913963519837066613864779088889723275752264949896274961108442744699514882975202741267042231681722878368528153769113498829361805149787759331151259016369977360826174176472379529778203678928556020961036446240255042340177187808575056968657642752769679308553706360814238179662213080994011687483010864630007906112018416097950093669299914766173721866009197435150790369047092416662520782037426929763201682766911078658287203144695823277477086290362805998411113859444428082177720309900192571118635632275738910132388408445439664877347529298338280929987466039947586831057774342953748278918603053856920897469815849562651128893939544796899720689109148676703265715033610790712685450492267782338774592417439436311084520207252710414392855821954502157636499940339596348308900462644417441783255052200474362884180089752766131144194478430383143167784241021278517917132045714417818195370013907857567200331648897384961854499425047946355787538809950826703087215129251335829924300231161783991429341229883154761385254850297204840788178655075742348953935072884296509678680980313347911453314545222618341862813233918264983012117658639835693615214325604787699074415279264168935265762851751234392168823764612349199084375870845672407295123267543330792250994931657756685376802770895514229505751241558341120268676283082544337871664090579653968492933161495252012448232272260427801052125377049034360428807870768295055092915564477749899346817286451188669133381607340106087118784230406791783811740105002575230070824674366821282271472047519498379975613124790497463829160979715258884341433461049392669798811842089760205511040772040404155405591043596608984822540292727548672125350638211988827359376220463526859582266247135701555126335680824143123291536788656630684568200765027505267164340597622192926713941915699069238111703326757086780214361369219326674555003870253541213830526102351671687206742596522885903775808821810374956760299433193603780000055528097971114579900092261357310354674294128755527895142069999629979805454371431337450720758446243624309698489175347968492790006102511212562515890432779519567215912733031608973666021456292267988406995707453550798298960274579503311578843963335455518651978888681736897398214015841675194970072287767990794509158000330330546284842838569808705603187125596832095721279294336182356018752694038601572514432399570150889524875083602013316028828096358430794312050772872985619993082509713153642410229460041692612315425379104523201089430161984307931457456508840078785533755360320931165716210185410748526718565598570850337559788602862390880583912328188707926149395446091888700359500852938793494693401777285146292112265221581061981718901511357542954134526410399267533975739437459784084164622647654237332521940711019778565681340702794043752577354539319562371915579084970721006728184870465554988434975342994818026479530378158593380695457215198868638078641369069978390935379811015432188271796312559794037584059421654579845485264886965527962904149033444290137966790925640938356426472924297524943480613435229214248064994845965785045984023744063617332425051894464210258446501030304786585550344966394491151876452817972117031668700516020626985568727061137356009806491202364259502132270385197491813076887798173501062891018718926061039108748338777271111149508201592596898101664388319936171156520989647604772622232991478550678092796862949224360052934069786221313499373516269262484584075231842111956434310718632114974377753177727880143645803206117033100172720767330912235546619314704433916733393533588968451501374656666422981616968683848174579374710444693185804254755981458670969996841509812358684770399321902630057452024735209372326414205744518559182564411598894767555815502040463774451539026466339584499912899040892318439917931789694345042648238376489269766232035078501345063244079190347941593201676580569291510073638338629105314205254496496056993093588826390969200675963275925635106635229217171740051706413135571076458276447737730020670527607655951074464982128601882758287358685630668894440541847221901721350757626410593056911558757118060915177049586156859455402547060719156431647909408908566830064170438124904448927570169245228669591042158019124980135656502469231223127096464845813528376656589162831539528088602485597509901546330570583569042454183126951150612572557746089660796960303310410277478317070039458386899439315888992332415313242797733819239002985911838943552825475583949715131476768189780426065202801261058563954415550726951004087369526923945338094434014543103174739160505249344195341224959556749712335709697785134120935413012736103587030324611910938750775424863355685653556027288296620983735326815969233732880535405574799614145169897764953367594713951360989692978271893337285133065956253261476632199041669885872164969665243240145144373160550825634412193107716832645517166944502711563154949360735957336741257120132125908257197793105037091439308901686730152415006219748521578549173744668334506466341931596211760816417177603665210436096228827778655501361140198707000239860636738635209419481029138440211752743716534181833799629441495469853493833661741062550454333840484670318166809562045188516659659644868704132699600544517599131128712531018554835532925474297837287830738734741085896920015374195303090385839334139319017206072803258176814963658006584006070067477452579708548772885883916807580731111021051747268419381456316338103194999226958297247692057974747246090637443280636840140935608541660815589518448127365951390202796746871047042949549670985628066845465606097475713157932400971557245889780889001192145459710320383961075578449732891372736060428698203251603022451426789875113236677652000919546302805430570645821493433830152950824153872698546415796782152165258561118781021986102675395864758954844021022076296001643433735570574966948166693273305781222966672125782069496006884295655571136253248685186478398653117515019124909932611012934626343970707145088576085925349281633079324496400078936739065488173446955787454681222962222376139770155042648473539343097149641279883870877224683670320656385639755494079689746223657410914369456709320578480039543146566674876543187142406677111282038146574945477639868228306798112069288819366867549433458731590532904487452406574187155175759169933787416506269178491039247718708120474843650958343238131158103903570102022132223006974004611884435509326736235169587809876843739960115834594709377534759324596368504909374197170134477636164821104820854357358423312234797166639309144481815052920885918578843560957024962696157886144025637111893496250830700760261076287956244352996596787984035241449258665057467086873345781952687822019469706739835671763465439502870960266316320490887404534275054959776107604120192791162838573435198424578211732177030252411326622415084516090960230744615317099361975424097684031682294234004386308975233263309519592624443952548637897350316619120308143129191732203222274914911558452123660880613841200450201119399520977142314323795692401615611736461582280028888662910157045405167356587872354845003643961763218675881271976833629233446880512772472358785313965184753278652732589817059784390222587825947543946708550643801567675821607441352728088700965818271710791009203513231121626730445909698247433893800233929261409058827987703896664515479696012531857232363023949941823508011305064052199369894362678172077642667452448998275313148984250270435533294491434415798848279294020225787808131536928408731728656235842829190714403270935600350576535303086866347416899467564429813966048314966293775717719828835930403732102140405911588429727792731284356535237906791765119704506771981320263736222010421767058542423909353692076945184281172478059530192586775313680756337908320145059095129819050393337627731820967544498223302238687604470273061914830189042108583499534823450184508062660842659081002468167121614554799291933743539333545105253586245191478485713096877744239222371504943509531769646616289981304902017008380904697580564543113057927789197495380079753188437292697943503692236738184980851428873318749492011742109463946243549156026856181628761868740406327896721532922535159021277566932840064150661940272889989914845940460633670431720361888579174551527729304988045021697729867657177571020699046094680018956052915079030225776097106085440573525546596121634892615681672174695968791757469227418226304641854415237665459554719812124497273968412876656862669424019432269129949818628647029240983419754577188395262620659616755086253891607976141363376682768288892327804770461795178991000538773810195176647308935685378896433720055968252167441241980355571466212209780083908684217976228566176223850852955235179475187132266919837368843982115637406351185697191359587099888930341790910459993845952196305336089501957872537218875379825207883599428093541451841481731203383458468735502218174988752535309755514408830352697550531436153344537131691144174713256992121705626828562093326593883682291166849755741769800118706487086383750773301754068468635198405705022744184315071410051006681290022951039856406407540931049955205568343546752492696820584984252815483319938570977746742937333524636312132105696526287875029428884267914229695019960871110240522819700075730571893406754557402187514086878835224739648556848267558268134966706213269762376864295655313428040193756583468917755987398685234391208807513934009218634338250325426866206016320894815833628834191243908085137146577373610496096547474029094790116271477935475082829972907477195078319844570979090435623286961653712441609030586571609612746965726817155791126211551316441239561834901834493421775011676444207061022833467322458289309994322440531348415352705705242824168066115951246984110825265533009209861536172374136946291334424492388805778999045340942687042614782759755275877611475516418863726053117649069390738178857184616260094321418197968176121309023560348516482186229887579553361660669613024489384841647145757082370258397120426313887447920369292891050290395661311837560988743008688673434822432966652781871670991424674193787215047528204547230079827569390765794463375958781218942034659490656097368440006504040509028491224602382680862486821891713788331678162789225193858368269882763608747902480081563213073432127327819296754537561202962558773303423546864069350134163427215712290671398362115790052649650671881931007013156424737529314971548168854318570649980180591614805414347952916095147167665170452365381780278475444422648339845094417770325297283154058674703267386536146885171556838794474826992381158594728593499655813755228596368975900057605343898327437157831174152520856211731536698782797941896023789375051860612475590471157171548659077492520968924895582854833606582006551428806951029035487942797307733248438125658691511102883628712048874339519015606280102923092613667070695456533112400068286686489002563097828058854456363833491438923553955337687067727152090768609949918537586273119945232046697727729225783930117576931219917886645433274741010649488103692582313332525585557212168238498989711742693295215878960779893954372114744151908644322241166130974011200154775200662220452111740523617876534843858650395267849600959828256150731843836632557886910016108773393617492021806105066973200437691191727887230698791261020721521071865436641712265372139715897163704380602647231128686711424029010279031680472957952325806902034456036713094275276820581549328781485944328369372523939366924456383845860440352437524657663234692774519302351379363563277831339554184438978868614605721555178097067746822355799659159621692867883393029742634653747507115440752973582111869633391881284677861879190758294748636125086655259338191535264053738978070765610399902442460823036236577641576529226491136552090803136769113889861145137532989748146966910617395862060932460636190976482363719568150690454188337034038083541732947867668771220438270624386348737161517524726010843816516182504242899981140085374168836561425410759286542778057615215659742182256250174155091530375172660033660665849759732718206151648572994929079742465498890396374842613995042603901934427825800044863348836717763956107094646864957173966937218398037385261499429164416917853231804626240910136044483686230683786488282710807361676880166771521304623521871970591182513523086066206294157504518604085913364306172773840890070559917880703541814419729263668681922222988381911039039252975263385156560039157397163656238336418543067874540424035397871095843408173818315287891160879015858253332329644243454271968591761769979566077570555003030080261375805947104545071955946440103089976611014436450376353106382555847857722410329835193894211997225164049941560186506800012984411258492772413219864332206711025830865421818938347715168325087499688528973888836647627970657572170955844359309089486497311029670031629726845019354063250412809087462869722846454153907234826359652587428345396309390827384864456316102552215689077525282983930442395984581241165888308642660138011980498504786190725344874720307756146046440518025382218572686196880303638879576837085806192961782567710824817411147613446182641203740682678069051741077570905255294773575089999478665627991129379944619818421371005730042148091838542431642164821662249895359188293074685867182471462178440757738793265415392426130444347923389081169648130035671902361802565703755163142663060067795615475710278318430335380563853379186439523127777369044883251142355477233808693465162898380359903833463586596519003888878371461531696810500843859258076267330109752044834721850762269201087429243892322361504900140194498595401480953571090241916401319844589971911402543263067345986383185022692864310467468986259137751569597805698565629545817535818841876150170267779032835422325308838382648772618175773253661646340566210357106505038557067943437907587743882548657879906558792549669510116910520267423233862142714537118046391930298555222056672758637988249439578443162826825736833044389427155890699011082351175970573793287989202653921150877182659395438250889652578823338169900491085547833434842072605247767301304777894528019369108834658761536279694333158215992004510167251781322944861244366318793297698495186858117587122538312650250630034175812480121587705647774230230204481437551461170558880345283289994281287569823755463703807686790965573662058360655752580740274954513274599915198568342959658046762102766095037610910842902181932702174642665314776818231745222104259558768107034735785836423857256121354114696569383727320041193808614589042541915969790338844003656749996223977990897838519901033513651636190525191652063107985527468463038717863118927371299666294518618564520756314907574282160570843801318156072715043327041485034463845577059661618514600669611722796013524215026509045883874380571045357309587555228465668185580863684019741538510753421197126850286500118075215840094669993428098464016952569477584588601963835116419209400603983140575943521879997552373154626540621777703601887783406880151445950917939678835151696689464411249257721928247825240459173232354734143811395929239997679067265302552641898819381323290706817278765384762136788685854542280493623713953521234435778393941071021868412247734252606433864848871246130342989832338769554517802439490762519267877744375461988956996821676420651162471004704250230918404075281264268920464111950667216326561279737524510716795345321540355479908926236795438598160413093038696320220904696821995288279219245977756396209726217416324507991150034016393784787936312832067429019106075120678691598580491882667555691250866643978207477005572056693539569539595044320064440421348858360631279734408987787502735561114065293856839311568597654668786054469720177421867711322988887594589859218905157059687854441600286716475662637763499816177656189016805209238625062524670569656725508512416566720445260129059307661549290478548831828451511619945415695691984851171124500131853785723728491864240183030253199619387232545276234736101263034329490901476300981365631551968641224470448761507002260273675740326906138513651668807153204853525868224625692991029912759544532926366988526171459668517535605588695184964723027915067337907752243521946808614597980184395909047821007859410507080943188418396332373053426693664599215696024298775678647473863369213569464258683577252765376359230044526752800103074134700582429536266159337149302691959054894559797040148710209256182245518658004491231661549640052911141785238188328451035492626484104020172718059558307243854689157951130319036016961576549256860931531645792797346705320635588988470252758655652522388071432602149618890801112940160560540528136056714239652595190627015730404656291785970072598325713646116535685968376001196629897567548902186617295955459095911234821213273530755546677754826708294149798286282817293778487446664344357169932533471965990582213838751904719846601071841373575796314731666753630163587961151133703946411235337282519645797147816204257270393115267218908019599311567014617240225595916933438096305832574630889597153563044059457916720109761284937298023861633268224026400957267843929913860632312209045037073567834132919835187996480391607601803895043196367717886829492512574221125993726768898940025185908814824158962360803596792017808393404991884773336047498795846740233039450631337612660084779950348778210525944477446381985504369507408380300026812369625156177300983657832708152492960848593456076502067011730224714567174638632314579250402563856041900286422996296388087629086931378396930098890831741299885284006018849730740489861962596777353856038915141240791843899577870570100316653855914807269154505506494790843966064408616089385203341661487831692319644774900147171110619216360340685913420950119625490832065831665512077770996976367560151055061568652811000620953763297659389874474264229417132252871348435512519506305426312295442538377449723589773908646547353290634237304268993971894169438116575196157792655764100567733224676814967181912055434263420758492880633464012347881946397004214056522431611157286090218227164569557794690544408799482381258173897627789474961963770526960026339059983888992309018280421112844952199289028123561674500412348487650144671025558622126136953199039030207121082950173474318323033433920779887671520201381720812834273718321157412746510849627611487384444866277720527044525697050504625424919140952932076519434954641987068014098163681939141915800684130737433086738135938914112642854664026490254744384595084260427499663316767240197950139599464360183117875696843354339599681433586709374112600982273439984194821496253515730775021916670093703742004359849020851145507168016606386025399086635790853763724771641002782413037914130063835782471461318433973639886437173180913418666946718163630654003907835963190605741191773551850558652697477062341932607190166376315402427666192534002881558397179843603865922818073949652441325805987807167824953337648609737922513616650224615074186571397065276052831064272045335381165158534818312066337845828419624001519233029810524641856655316546554865998339063078012004444872906247297936007176346116062666586703113237261765256181793706853766361126518584481522270482621125962196685561163904471850929286626305192411218174207321723919954638757833942531280462341694763384513018820536981457983489050480097616610594011725360772119012041462058639357508114566395033717860173678031601881907542825565294948563216949245494163279042711429281977787964828646838504071145938286731180689623316035089763821040266413418212076947826592157561260866137429037413069420353277034616327868607910480877110461707735166757995025040137715228267262607735676333964388715922519156675264172080145066081460736610027661104452968469606865298701847305883737806244671099530051602567357311435192412851308376574998056839587109278255764817053174684807562608196532918155525541681504077115816593747424287199752628633660681633907185238731069232614268281239274251582549353866165546438959335093503132946018517932415494290738880023540556192386424301501558865245109920876687437447441808267894995995914715593333752544313315848156266284068093392122336300350950934665825304770749794403043048203521936435633923555565830310898090290235485569895849647569378956433457856768827898121352810333197055906980941860871930810639155058895708134488584233735785006120311621679971794785025541848699265519895141240234944798514885574322582884983297363651601198901330199291815156029431277280636125222808786051245455337299503698405413804408091075960794785197138078631055067543521984783795811685404693858674381175215110647596560741695981422314632442137210906023714938244769612132745454605016824691637072979525041815236359232965594150344089670935192522440348171787891961172999211051269509239056700498175811595178985872374924708033578869794106870953583182770227149077569456029513978140635302252298456657502129574025623953607091946609005618592806093064678038076745190350076808728978558264435428965663403057376236308171262319967451537265086470313799161431881680494899966107977428928614917436825996401678122489901631136443996295461991555300167568976442283640264586160846398185945053333912693832817545454352370152858489154463333271077017808401391414868725826718554932952271039550454600655767546703863321887829242504190927065740291185528277885788549854959421991707918652783893848150030155342629873377187346800213377083821862479603763149539255525099676810471904013786388770979863626363014194169745550060648293745372214903358878417348639965473171292061096479346921416791752999771082595992196643082120745219677127172027820295818698513965335597291553133670478851787655860281458353256771399616197286808383321243460749645360898487852672440481770767359340006224751108236129076734160259989941332248536237573306670619643472105984517129674157576904672352246085586140436632119525941026324585208081167764967151488350447273679671646503935888322038260056649620098891618606838324737936635806952422907565996539666334988202188829305248049543835128833462320777924527838768662535405235953741872404629531344403467236989042989021943335638451124927834409718519173213338081742660651186082125216743006210977763412178666009486420014710015961327976412530958503775084007605737408608979231494238027168833639082265843193327394994322201582309203838645711054616094703743218964145719677365230708609306929101146083590586397224259449075355918321075288026304097870408066585903994286890674479672865005338001046609294021629215112946272047181280685391076382765557599654962810353029325270179126235290567022315175093513324707214806724343159775653232150309440756495288171804435707500631730719642191828642892388318269107875978046916153850187519554682118868028469852628745589142205131517421511526305631164814142972925013670815310587080992426168976640183463502457117983613379717752655864357252014230159722640049490379889038666811860395129287535837311344913698106172594224839351092020918813215963603058705138136402168739344128145137298351532067172103896021043852348299212445134887209437962344082522498240515307989911765366476795504334036690330747215433295305626478119538849690021460301584282607923130000458460060439484707741459255663352959499928515824807049867367371635261216716793690329637938795909895606317085069894887497562521901048305064022430279473398873005891468052212587885205072878895470675262052936420201259162104710517649564947375219130291494880913060822490138994905238530399102406860820736931416005794344037203422573150284642672728920658595800555268270727699210473711603200377030904441945655384523817741521213938729204376965654738022648353798741977506801547081427725023634073646883529794343383877065447823059140035350508314560665545179446117997105046603128413570192349666327416306851198498684338885909211996378042311796700729776891505469696308678789827214877898130263200922685635542187598970974858883247063494404788168428430316421686550126696496117127234730107262184693247831360653602547468862777882966668005865823919739214619868053463136714477748484097303912126743454067112408736464998780666563025860985543534145871139712343412945172021377251418601584972001246796059062290339729821385729593620253303639264140475567328313069849855420722395910654615397040973711126384929092202674113111424811891549488917925196272630997372866702367716192666029936082253534188306894724141411106722838688579562228308213887236058562615955003450233320180489053862523140919275104125166114403418152809561863340113782536842941299255614516142366915805149318427922499916086779520846404827544542591865854795603838447804210395738135040965211599823127794795271817689249442867312376610271644669888882399455872904733332384835724072075631818399041330368388549401191726587057839545497542571335183307538445927925626087170031863630794049117024819211391213695738365541724597334378253391296940975214852273400497704447895623654598258941602708381845445717122052932352189456787840143628361793162124525317281450805109053116343511068444991779792254142362874992336600864536849776100811099725654089802175072844914505319813432711737323566816089825814128343521559828830506967824178871436498951963176154381003393720754787154310425208673848744074918166108274623300496281671966830338274630576091483209470832461893909801720635921799959537901723568979206763863843678114245482899268212796151582479328814250808194068698246252363873868503866812098472099872781997187920879587284088930485887725266183816207920489104436744762582534053518312832676840062021012125077296714239729802596040253784765101517493208706477541886386293891714193367779167416704082171562630750208374561427888716796866228386508973559741178858286897205814192382776742738593306571636316151932941540567708533151981443941344479311014186696701361459589214314719042977030403474777951821787797804964968199143181427352862968051419428436797109458862835221035778989155426911441345341155714575609909766515270239251658104685973271159785602751949564496233662979182605656206310335027904371466497655164943274606868379767016929320210031255688235338981327188459444588646098203019871388137017120597701749489903892375756932678169459468081304014303363873274613237808518635501346037417425067074293678100860964251964191247447079659691272673518196045816150747210527669340114361932437664418106780973567567197920117640159391971231379033291143409055833805440250171199383273645872763066874898325991668699496024887075142426251531233267115706669850781320503421500565902435550170167029110557391799448994212763171233250540171078001252038309050750301157360840332318476935858782338401974483654646104004189819776218636206178952910612202493069262124774200972871906580921539086235081122961360177398655801089665947150924645392659831627088540831662843667178707803817858925659659964033991424741564982488946531834555082823565745734447358135470706482021122603075792730286222242534672942742373636975404299733814936631718025795631333253503744509958241246887313768956899851126083341065340759303882463533377177533826183191096144969652010081752572083046883751853101132107739821896185991804920754935613370969369850030164856812238237606753924176840511237852191681259151842499951761506014768565547518264923197331239789324657099150876089928472224370634771418506555383013700829668216322617386559034155121940915712739133140828092152295197110026815258999702560497939799659691678078357922757459166247212637267499494394204441555052210640756761224445433331605295944601030028951303900409192089053578298810117965148815771613745219886833158789311307460339316571912324233335058431386371573651643464517259174660444618797705679591875350997572981778012972563235930705578972861119325514061640486356978985821237055326200405240282747993305474169426055667599515392920018084032257099222152767553160829022357303453818253622552076328682962177969915860672554068801824988554984876808793285237711919805258608610450275064805188791103556637454579089405880881107193654278973597228138652068308684707954822462097577425565396209434754801940077320980660295976126395731722203713433056932933959743277701809496597453589149683093977730386339931379878113528735864458523473640272394822655947949545126380853694413886143462127949522823620798957394151412891068878504338936227204448883209364108496732217395144554364438443587373369686340152993676143909392807381862204977994491526997419787768185597038506063206321057457291029673011661208347782092715554352197361410394451804409189516910521765483749079647447093457121073573984237471984697132481061151178927923952742205183791818189443693740747835087895472251425959659053164138732357301817741952738650245892070998961419927160253999730920719229930636895420853913871342653025796809241797983168523773439185212046124993178363161813556047354888242564427641900723881624603309129877337255909762708632012600041976909989840841624371898725564022909336635683145226514367830217280096035453176659604436523180060369474273417681802259014121289382790379798762616650860516023154072283235668652659263324824079621028845185931701322404632348894422721464742324674752060191814606985642268748949297586256670012904267598944572930767009637622085704431889802508237839025852911687463229654526282718216333566670359032575487980525754734962513783642293547604909252625959579088422090510057177077489219026309866601958283546483374115151273071823913345116145805347435782202073009160696834505614684586296776553950438602569876657714485991880565605917961705238833006500972828138107396874327022777891241139136288082232428330798174926325393000385297528183047117012428599753590417445451591182916123610338595593650691501070955067603869951669643851317975159640554205574164815732677599603681764815805123281184930372711102738936234455342991328139358079386766709727137256686011935356094250548578353660743482306701658741421099542099051806711793857590252123978498529272167103916890404556365668369439072034104344761708441249227473108592020643886591076470628476915101892090534485933145220009189797826043963244356109896024457847753805874571371503163684341811725478270160916399691596303956210614055351092329702674350610855601419829913324505126799279398861755944088177773712362494815287258903775989035062778453135338383688913415693013892320969466564853449573506538872983182932492387047408030551778718063570781726836418587791436642434993850178660839014130763017083176069826892868801070759073190823647214116195605622475608641489581357172619576132346387876769181351119359413244548450349548049323995978738055436897313534785876497734748831953261668875805450641338332795697539889352901395098339547090259233880425424989966387413877722157374132354085842197956247296168485683102844129279854571307664108793953710456785817246424770895396534093344646046841660204218023452077138255316401526657287584862439280614124533312908532302846563201898919450752247818130981785326823253499133007267492260023299385190831172791943779516572616659018958611205864292695088675659524679535777746097754209956091930599102035578190063748316653483179329731821181282233282094923440186191129631041796710791528840277827393921712461249588319443940386548407444374973292746919857146094784598614559630843159658426316894089476433142729712958522228468925472758571633010786671292283982268518286027051211530591068466730151131018035741766016375781169517831777819297614354278350943666219643371331276739596455695548173480609826175886440974126758033067759527729136857019908819751985084975956653196389857763415091109271458823801834921867795533374697467192347712562917147610064601905654394146268099077479026839664877456404551390725486759691505471380267131844938539714752605932181732264837998105230252780547727903793975537912485756338507453124181212151420678658699202357374984582370180486620434912931493738680228281079892282222502857626501892288336853863853261140335931955288990825767522110057736663515068925162972047839393774425995734430937112155409024214899357159724350371416741015008795784970478231660754682613767667144972844950909753353615034403238196468819148658028639887381646345889855371086783511393932958793926088502517581027210121131993621637855090703905293233358937067043995218195534199204695853122672033795449761601999537380316132668586611425048404421639801589057666792528571000909502898645281870285250681736679318218781097633111829033215924075233366417857501953102379098711204493733783070876617939342952078933011506370540095438950450649637895164437602169842209754517021355682012730431777176037839389331813234585472079263531927825349637909630821008870538216055753492785619061889166302064576229887761221979113746878053286895548902035582144979158890134399429627411132788361887416917775875583811157750177784796491372317318493237688821015083908304090456551420632756692465030118055920156315357678102137264639434841315749798569857094764542359623879098794717757323356624645213523687808804770419132110285784497431894653836885294517566369292820069979231568106575629293250876215664888956195174140097729815048455381293145092345195186096051654334889260353935082555745025183727714592983018640367090151078036069542520733100718941138505301957391203975801786596200850538677302934659493059020469017392572434525849368135786936177863632939274708961556049920013876583673328830353609089761385776891773868851233331424052500472677204338750322954577484444260331765810825807765072659497649349048011227213035344818862496712913672495883844766380743385292788418811481835561324586220519882199201320210890903880359176461122851179231130020924556145964657751230371692146917487332571029108129175635420678788165793899263080072739886954352447390795476141162196992985304754417919664079908552773294494145077856721651178759319891800269299950824136332254408701148709926321221186922895170013796520251309987621315232330596251909839468349702558312287024094782379027844814942640082161880987621627916451835048870701812403396377837632030361603602247586017840784949719250536918038966075537527589037012266840426270902300200671044987297342322860844892056021654683863534782672931357822876758816881124875430169746672413249516025380854457227446985231771810301267167186692764464948303677619330093884810427738494840013957397428688920534098728331436088156129898710477599691324107043495814737784740910705354071609333927797912175349794684642086969608200397232298034524411284601425120607370390836855528653944150078926302685659243899506498978182497493841487321419079894337533006447387866119926057588808342112409339760872703282700259193321856625455196147174840783780112893480352912987965782673398564364729495390905163045078687664200016583167662721773025884174927991453038095966197255280270767385403966850491204191152926108053765027177516263882958733824884437234910819255153292202898134698186279035838023582068193216955136988488864983727486588122856962527704986702935167990512410177181384113713624303522443806786130325822074267740104854339396153744770162095797685548972143472901473530776243317934750350220175235574969030062570346459298270355537974235636236735605150622710566318962943185704009211773569059859540195855985707923407080814969068813212113238176482836110976146066373826404140725679798246953775308661774604381330318819692282308469719294937008833877199670229667369960252294974253664990745713228217725840125675459041770459078827439339717684947683882627360262901444446395235113006653142470195636630705018484785971285842043533029308660518802318360394030610227032942126718828755455847490966164857859399502868024683266796950838438978088852428899678828102501212322500657443136779323487123556401247449573068164062979989825231255668002270073460685982768191651762451897293156396723677511760965015972616269567508977892628314729137421397593824836287958008935326585241567412493366638372747616765553764458095559082788846879971647118574423045205743652607000975222316981549631711574274142019349597702643962457238727190931866969796987265580923349031186743636784507209388018868362594545763995075752212977511113392646269806491107487158129602960311429060324053878774743601130835889928455111699076519832584233956473949396195700315491368538725149637668547069238569162521573708510201930640817835368333146203893901272381070869449156032781455448160481364124692763316854785898619329774867250129320359170588306409311487686264569010745542443366373058387327720271441531736506230630515221414255966143718582497428648705612235929862166591589955381662575696171487639944749546469461825465537416189881144336507784807684570189478114994158812015683712062428965639762812891185575928354848019939810898893681070292520910063095082826430314796736554487749559954082079904380146900020329725931701680206904216046315026691560983452325193962797121199638108069863315548155087549316317205470919289473634856808614547144253714102974618368902046813969660490615913685870386729845437286710917016365089357821291682088492533979373760737885603414052716772964538488817103717394140797055836163677232014678843877235638637204666093023065322821589337810798554516626857511942477608537637841375117171025069136653794406456799197158516886181774003981555875372896862461825260395067734703338100406184582373121067698135973041146391838577067679491215581621628527049476081385619905388919165761661670869345743214377362781690268855873797026791097779381872833950383436647461256406800860596825436141023098058314704744734390524990586352196133313876764885236681450823822983001862709826894697243642332704291833332240518264859860199204803280641617822863609034750070989924555340395451324015517931171354825747547762389329650524980090075565221921916506796929156758625049981700301833757576003384212142798693193202547221579142275887991073064767672809672966470654788094836759630496929367812296989179312209614191271484821993490488723029938575450140294328476628092866137323895555581830928941213157952362994336993380674210291079628792197123381964214505207223025299707680556179676958638932669835842942979157393473244668723044728296976289534473249883564733515273675730110858066649850320360654774126999262235113455857479354765713800772561756984911537200015746793630035608580190953530663986990719450169660851355823724633734006706811314648576499689092957363834254299292164448220721966445538700957508187858250777308310364687415738549914745826266252356215407554063459038083201932684152658689506258145682458176449102922096024482034073397155516021032507810937925266134840330610732461558428946901907509715275246144701375661418294002102244982809540364534343197432997552225298384395888542876499330279270110504214242772297749710221768732835427482364660946334287786692973648170177044589325020926476168713423427148362097468577450351363450601545292815458733704398214222909679602660422642245891208044538687091595572685406389407866940096075891277831236844475420827748592067687413163543183585754948700567665338049312679952758017580177545823696925395454511368180945729720308072116685954238565888288514995905847130593999012524983115545951768025395619065234653790985849936644795423757592732306535878169674368170852904763875228179797148131060187454298625029791775678772165201413189511755161290335055335849345423254225437000353842203787873080936301319948806696249809985234341251822293099352043437792425162109479431384988070161095148156304346534955405035503443750409521517625987937635152615710887966188736989381380545155443621961723054113742318160585632945434343461269334446884607386001321991618206416921386596809826305138088454770683038304927987276339230654695588414173225056219031713733691457453420181803102827555012122067542009031339831909079871435409618711833720252276420170050282738393808359929948168848840150947150930853026901663064100954515179979407773896932053885578499063615742085490946296894498606851546478624155272830845039015607855867963867703574954199117161886150215361521096410273593605427077891954252245305443533929159214326267100733534627146026844705102718556002013755173329216708578023884860536861249669692259520325973293347173592919614002768121794996565648707942044430193973790442666687725720628987348439223514228462335133644243729487053463204334311111635351843221840468043574604922098405900823165712908833570116959954453204708135500416205364233067151412015639269306414528251429056546231207673359578215937872882325786869474354969201036346227191060675685792785269913730744783455114189978633069944307728105110759422364178139906093813135614553047040456982130832341673029982808576583931216679322173718021943842051770106345029711844866324171369921661683836773997031146467837576594437586750696824522180375594052765164622972159019204382218762977652576026095451112866931667696301014822197332929404588055577307046849991524503520096240541526573708449089064561750477897835094669199584707947697465783612507178424710047938988118814623191702697337101472503481041748937293753269636085225129946112938449953134888160025804338329840695165106428216690494271872611529809812556840392238061031162157295775439929983267596629198671796234280303840565429320692043331095774279199986623943251783486141284566361717270263805222461107078410666817214169028849927453019477931601609006172705152209441068037829185740448363196064124939412852642541037069457399230041701576014159744364949541229286546293800983864048612706511402035607877422465872887254028969549446254150635672001167197939566090684003538171948120713208098798753337113953291247052726803287472055395122467121272693709606598713529936244122256474620028067183702552334414385260700068259492418986650407543697340173306896580326366923867964612231305204332695141751843936119368490428388859047431691663283785788612049711161672741378422226592403611251040290504895343705586068765051875081458421443811778437225527178123470258231451586034970483300170741671022797380073304703251085543726010450637845763307827008961196522430832785470759310617560126202515471731277697091166195757005724340199247002470984247726366498079296139337282025180321545874487589963334024903068016034798955296453693275352986568616838978819036868049942555083430796896401659256198257480310231669200361736899467251274020430136384451087433381818421923510916904109663958940746940810040381496765602965795063803863083853717572111510166880374013634578186117135120318857281582849665881205570455383940186089251024394524527036623274221364311612604369267233980697747161575851324742902582133829049205714369506143902722641729245734508780453490289246342864147882947715920041524212362761528354994100245797052583650460209882663215872843404377103702089997976522266880380147027416547714351859613861036538760656850572168641525629983010451930070294389558066610229719140179887468167675763975889355019168036473193453932171402163478102664859073717095259370824087992581506459665398270020599279343254739274449998219372096314399362525384299808217986435215380430759161104950086114282559625969803772262681710673724778544850541823008371237472158257909524759337035897733172172072943212688558702788079636025729395614459638980740395785955939150574263459576947332339072084257616824090449278323791276979132205893441472205138944736195293566707658955066617273796055707773734758140669195050467962014529606966641287465675691371909555632016402767395546749000753697666084166021897991660165683650545971475963250954612921278833278246612935942360379829414084393877149155732157789100286717586132004758358199081591292979349898931031343000968909728293794835094697778970664777179729763449131089571767196666421989175641147758231616167287847581053593063591870784222773304225596266417111899973019077750528385103755883154138299667712773337528683217864458086900993409332946012438499328875823407184785492130568886656950007449980729603965032319871125279159633092644440473852271173979258460357009925802800578602022234463903013449471655602565152778950139032197442067156935301725437799493271560801954635723970780483664912232681864052297040224979692492970416078631720001684495508983772304987794695567779829787531981044805389919680434532799929632630186595907043959173845254163483257559966319417190586423579973631514136832959350682658429054410546515014121839877617136393988132495939007721497128792855504441282218325559217141128388102064063291885580588667961647488920379130702706045745829393516860382493391800959803587544030626121375035186492372929996729239345635949391116002313488106265538182191623086298292404152685340007902859709059360039962057637732233939066034068681022194500913995551567294659074672508860800091468429761909667781087552475943653627936682780924763953516895739202182156521138092356918712132671889602641118439893145578329489669612001695988554322508089252473551017298952100394696099375601800637830771075759139980489979563345290370767001974263314180296013154930958461328805427597714633837169625109417442432660718067252010088396951653691737156070302184143487654379530565430328616701857057259320761758633215085876593978993562521293549867732791992871187123996273068657304867460912917390300545370453211739391536166101732953968294178977527888871732629867451958162699562201251578806435024719287796526591035047973740823449284924214986948152501776792082405444864479000298629222261906645450243597359077515140545718605002237532810907837695912756641587314965557136273145275144924599431825987629547635013445251999145524369495958808703267076703183777501745432640081716490067916496744799209703212829720250225919357719423358308873763591635012346819657500933103115973245409688582061390487326287109598590660957176022591493314073207734531948738004868222275975766524728554365042680599226749258980429608441976209685541172993880934759281809846431168852360851348716565784526945057616195577739977467776064632512653429521085139165834080075447733778148112411640010925737706383454924497296167058514185559190366948328757693281106477185906362619718014133011979321833168255468277362756634091021096842625728991584384555467049894236772992249294925611245076370010667193544294924512938698174267331666219372985086079556793639150573104378252243140655613909825343907556181841893345501582598355348578013975911871340881178374829857717068107169311521511183437750582120074184717832331649449704527608992214344684403330292090777617525070827631143407703363862833496276151903928487551354372101195350881287383271399462486935307621167410512167548856588548691412428429998771493669394071796158271581371343865134611755771553926270260929866732304442708662755068755298854510600003812765039107645504028321233543657057510062544135007167257494935603349468968524673140460842679671402910809582184686962114290648918936142988029801229760968053186968259056264423135038308387920435957979337935804407991702062843185754805746412084922115222082069679074212363654660681754711380915541406645653558205816482758941571698257539932946539973497177903380385767142049515960773986365348446143659477915901122341540385546262831849786095273154742222793011114061921528375075040289729695755481059296063135808322421151305802899408957838405832323473896525112499111236968692474610692361216376368600707471627709150474579183173023547581431852372857679091927663104216789859636067635388306170863805693586459411409517612232191921796361404802253685043038225380708609183117973048402300143803110399966925350295463576074410068163790882376466149835155673877405062750414029655288089144989177597327368475837092610393905415792412383640643783351844896071770347630923420044835609004210751797535201873844370066743159338949242587372495958977406438075950370581887869938064767615047116717853703672367347162278575187941566243076565443833257325464779768198306552749327802301906078335934711267336394624941444824005830537471498769247805857648229306306097727729065399919991665703581943614555706141504509652280561446518496184635625484492738504336120301737362717093412399822752352087489885491751129294250138461961161528030739543939136945874969632232004343241201437945618715500000530104942179709590623914581328837854552312902858317902040128110971325095032552623851540221028753584071943674343667950427036391622034861782534791305780978780906371384235036472950585072633610679814875200573856645101003527263663296787685364552038645854079865435443244307067209693122310670579119885902925374601183272719143465782526296757928015539353219148016829475435038160677754095330019017832345144202808255557749742851243208992379414623872973876620861806161311331026939450962931669285523587825263275829041288978994847652723079459539335366617397168319362995100036429631999326756688477328193465736296335564340796344638223552209212485060922128280084018289047405709428743302478284327131650717601803360613007407887098093322356414214043118244999831774562980256363658645712643302417759734746884705116741707769989235803946478571573380197920264363338477252982227495164382865357292722789522606179615321180935727023258479450135490598675161368928464518797553023655235939426877846203064492785155660314317379807918859377160885506351471690314633147883476730687460678777585469544503802828348386197348003355487848343025370880742433664974565191679440503426475515464276230318493115584495388869042819671296019018116208282656599528305696211238965725813449666229902469693487162790150708947023037437481191826366562946334959996379754963257518889754764722396672320088268129450166397686293841412479203755448011703296622823229798503095002312242571594197767643072781174529013690129100361874905995879543772713023804779804060045796560479394083379444549086114345327081175772422008420043988173141262118121593787206808610152839934460054093731743157545062599884352520181557375405491538256523507528136953404239360477801232434450907104597475592851087827520433685121764925019848445327043817225286322073929853890148318420412247832232175679395103863578162249857518261478368143107846627379231940968053988447277330181951481125691402247649370911194795885604572109585988014925707309963141451652127253886116335778352867958987333217725562528618279222401221668657706316301667122485630556162126825457527637264255458657373637429933580119552418073325477512399579004391985641999308187918781589147256323647757876338172253212034185638503346190780855111930885642787188011751331854471511108557555247534675293145378515077661895025101720260894384524687427657234677329499335331641406402979404351279497141367963452079875844488651039900320938268230117767801536101329459906387155276874182074535127295761368671953615260586221845459137961067159487304073981847056276103446125541071895501586171097921454482528267169224410537814528766760591086957748126229115446593676739018562166153815343481649459893501581238969700616699809846312097476129267523255948006388412999198873985113443357851314263145098945898918697924997724121755723628884514019007715485601764205759517108662121383109633224007133508353446441412560277133780051430722901929100502598050982331566702301310204670659516900508384912480377402550165786822366275572220178175180132163120398716160217321140284080377131985465532198705295826554360535887019552932109781680498252302896331295775558469124249138232423822041856056636003823850931027676339369707354893642904975243834359601287691211930544644810923693041847168996436512938765247814447784678630729155807549925986085997845590146068589102877748431314669753656269015928542380732796582246923410266550738559295128961373911477383960267933781505704607764523685565731656341681930007840685535282157304514868097421528513863366781087184573134757478177553469658927460887399787728426345346095013949260270452487537415664043359209247204327013923841159893056371969408475134796474061873514284926567371329859289955125488769881226352173729557431079864982271438204838709603209824768183672181993687351994046118507985639615051674387173872862340691957596950876352570469443118234749199126285125056159020339146782443735000645563441774792003679890089493939370401823574309814506588671689683258761833763946686570370845751648785673880899279798189544678254524487781871548219943143366762668767010734591954955254891183681526912125523875474029305444361489865807037862168531236217410725635373023844144651441956769490092278526038046965609302926345541876972910447295288437085896769381582093405737791316306526234073949670215609240273996999826745681323960481645966126723644877119013350033553147840677918655396406992566277074125749142842751927185033051585875150247580886290181593420417596199059608583212152275291920208680094081122984027278362388701286656650812724668140382911499311530709175753445813800734000971351390783855167172695183374801332218187166856271869423091190495324087499098024315937603126333540417525797089571607875093279351374007685275993219484215604271794764449525417613764651706103493760883752844626532470274484352983669163860396722924724764055423537898845118697215921515163215569798216993049555688888216059753763337073672542528709535458189943577293180104025643887512823793270036223707668446608328646577588502390858470821341421009126404767159844815178186480865775109838688079467765822808807472761631307439214159115597747877332873638484040868836126852213004186079565384738525230580628795091061099189474688950249876095932979818800539488993046115009999332707320724994485811430578483434143703011837191478483394906798097832873461158248363216583277274238720288304323245458308714786070438219002498503038597842841576885677099305513322410020418160877224996662208155367236507511961046698439919940494160157844408719187738369540233403594353422787259851053564813347431230386146332464380952670852246926904581676917569544465556349956495727990685513842983094288867916626948547785241697748321556363731204212353034849989426547964123287019133834987512494270012737277165620565622259618976841019389372302959960480652868341990747727801503810504118719946558960046784184938442422733147496427887902305288680749912659256539288271743989589833230732687537491360701723792749103630057449102262290261233926321770449326815086772404990965840970083959484702936872512382202375890400973156255594428042047295794263022828141074084425781049607326207367838727131057923627301771107645041014562873088682447432522714619257531932204010724533096449786437887145147749124305690651858173152059297271515348508450963227943027160757373705784781580620085325940386777242697186810017284477432214146404397076442374337050555116108085111375456643811253536067698087415674782906777540770797924316977610438883053702396818891839321075229033135699234879950042959677479504661428674625110418354454862462891442418527744296327397799047559722394556227548985955526559010986212406947942970382396465229545775449827288528499518209329285484834101373646979172601657104022467343344373955110831863035143923688054742410564797078711108623496084207364199467791225086346467193781273493789580261904491856587418091648044859456627094309579746514115385945625554649316894725031842220922379874552941311377780032195879320131117717340431308673369612812401111761484029648907737885650449737645123141406233835697750670541855243129595322900650589243320999941608463891932178285149279949228034728477097181138910739495272558859100565031060239351926784361995814288236506464952100384995215870907568119919673048927479653380902935499305394105362331844156789458302787931096056052894270704552553884328711676842701940629027734419938285126285722332435508396280120434352525512217717987663616989996605740746715713360901568052884598430991105435359014940847807439144327466926415903327985523602099748837774449993495040835238839340673558133696082550433772636766404571300777900939191885196782240217204526215299814329389503657773174745548583275952922896816918396337697135428686855889703612339904533109770564153172264855914779256057109896125806045910012646210073121951018273842722225217251299560032023096158166509897869076659208718149159573239924318354874707896333222559259987268079534362708982979602665094820405083479159021484911712799952516425268628443940585940981242255698114871335322102871958054015993944257492533858334093069722188175690338758533276188561315437679127193027866813069060846534661308311887681917241224517623230076264285222976948854748528881172510894992260075461082499544342503043421456836828217757662725031532096022374130929485941781629394456942993128197610612312865668923531942114462637758522923066065818020252168552746270811088583691227457269630230521865183797416140196627406421648318162182573524430790333220758139392298099450955514933336905981792803196486420761383355465484081984546720707085443430887448847969769501323699285964541180916707384820314345869246899524637159708075314413841577165128829411948914582270228355914838410791558293433731519619271835431344751660506355541815579758508230489508654812077682774945916313443379802699132884707460321584267741936208452783660581242862439641781583669977309571787594680293501171215650972204655124546096664048381733811611910269681836087645774441806664262238749429349909994152551946183725437343559719928722933332847723218763342366484386719769719822882450838827930487619457642986162194399409115253167553392596112332663127209941993523381077811692576145157600161816870606573863450709421778243874752080686982502966709197530428882919925147516866278288000066285801985204861141845800039916722601887340733604162399946776560186948052785101551302395961464212425219153201022206825323141998986797773249227112319798147478854953092531527098237876805517434952945410818872926558927810116469343729417980247693327209712954011911332561977719664515312449271943561753209984126803717115244318512461024001284569368001849721863345876162519913990324446686955797773085299049605324508904398211176677806967942555543092724687049403786769833843370061761173146786816444674308992454812314870616453645843463978460037899047616974608414601693129611720407851616467208472932337266163975555742885667082297846056355998407695705554133325106198472951999396103152984589592720822189648615362077712952065512532659068312801481562100768569782905681235479413826850992716360181465748556533261666592267816181641601632852091358305782297312377742979613977423059393430061612545514402710414486042171410601599805980515741237998651123867762319499828590633258054348200116265457375114014296818860222679056837790854627657748887295329404782288552487966552500060981176913233154687863478370483002285699642970915876917601312656082875390966807993104759578416403235494550936128742919682696040235605012440520156820587389342009973664794113356809792378070756766614660376000297117351648045717346929413930374524860752585864151379432816436809079323066569259090643051062919908806281841907841725357972368005149798856386561234796773289513784345420169660880892543896935805795544120819758386926968602908657022319803530644489301211966484390425660215503944898571293442443829076838372485225772683071711635915600300514452082285717853522597826174666354692880227758460514259261849292196205146232803069435272585198933325408662886510503959453547647426757192990291582139289875946166751357037010164788035943791352329466352026003155136266182295282332840408690355531653751279375526767645946802476128529973435671689069044349349839770476412409790537622502219527502249767254258191111588460441543684469089985142561779959134172492380705753384958733064172770663823061594411510454913366688441721945013661063301142423850579031950612564776787413087726611983464813183317634603801303746931511926289226524382480523016147879752566029411434553507767837692976240942132025554235922635562542269104570986614972159303628559826081424766765451385431220185347832318575215188119343947188329274830196558655691349222376986063969087976510645451823239710110079408931058438807867873909662116074877763200031745894392437978636367225084647995246040120564604749289610367960706208239577585612530230699827644782018370421275030106786888201666581215985419162265329367012227457727373465091447853715773776996387759729069355325942065451644329741551523305259134474381900293741870275930795728233978510580154724284568164548056709594829746924802878229693532895553148901178665234296127726808805638605389148938176820660968583950083980694840017494909661272783888735080126710950942553418021896437401779377320446430500793376010911869650935414205477903673954975923023955733371165995406716999767016101968867637620081671524678958944359678250368263637910621027485766110615660566644615205501025259686769688345941658328300433405169705235006049739909516066369416286149112274936646178494896667602504974661867081274754171064056169223521409556524651958856761957923857785863843533316709747704574895085309674756386400218882228435267507267034757681106500411727647647657492094607756893850964026819522779838960524693682693448044260359649094927810482168185819607487508693877744064154336061302404763860883752631806330315019769290741112692758932001116702212288886931281610426076309092431055782304029270494921868198073073054708097550283119471228388017143264203739021995091333167664287751422178141103212733160407405947191328534523751364617432734995195698567590632477260039967277243596446184029605090294373169654658817635135190265574559903052983696135186050416475397801414946416007794914564109424595722259572376920154460300045507131436472229864523578996118161124407396870971399332015107214358036603499775446891955666514671978596875279562296988156789897226699525106416720435796766251805594374087777359313862115631224471755675447990315241563115986946455091225218325335276841309075672388935858881368525638822229829612985194440846030009933603906512369960831482335420169931752672092760619002599631298866832375304297842092336887300062282338293742021788456262628026469443269357360563797846650108379273020011055259220149275465035330319942624944127821203144943058491892444592401663004413928088480297511161962708055697396522777690859782094928663131314603033000829148514868443054131995075896062162738423483866919692821270682850133467036844246872199123851842657524944002569508068708858077164912285272574511039940171622891346465541783884952306471343325910169988730398476004188212367138255967026409632667734681410838171447360751080652830883859318968116639683310191001096188016662839058543372900656519027437003940045695297333767021993148072703515283871190354629165996578384741187684995330929637882679201271402532591790980230316051237100234506669836607442887283733552737334079213165461010422178309155904773907303531129652125952460100487744825708035758762522277718932415778012019178540628323048424195036568828147162520153671292282776930158056557500626777692340816868625715894824701443665512203211486072234539810026244479320665325241484706737206687758200836204516279435033146355456663475241017869140723124008501888287451568009713759973099038100705915391369839578817981830575194144889949450808858079815747095522580512558548608586616630654345844460615392385386280737326364082664362599537140480740212104279166538986275530136398388717029391463031845754454819746128147143756476792173718084040100180031856224319168394522593113005654613496830788255753658988120292195750907486919785766559941924953726819325423438767080937636458598515568320035839513245178026281904269106823497932263932401361854669786886159856814618557478186235517301249038458300773307856270265580136351407140196097026037436005947862374299406745056668033227326789949303427869282283005441570732180743947779988872734325995649637367290176735525014111186330641294930461058069977542246219158770348373578298539798905060342599322390597412528044499653059941073122097271278336370816026724162932092382427620822935016901994978829599248856991649658570058746045502443830141735577782019246163958450382142199583611627671987846013104897601746837441617357647771670767690153252297282324414467024161864809325992185064672656970778342808318736424952903869740785554444130264358492053698257882424978576284317260673417811399269226325098538272822792433307633229746513443225553689782856185366058349083009857550950634382070354579383401087797035023241875284599423715936413519337012742311766066722179878830650921524458964092079197111230538854478959223140918115736978569614916740145359128872708202129473724604332207423577163276717189658990816364224413066028930622217726548722999828353320386250605464694281959960398975295241327079821253933268122307268889578655538312939412342743895618505718708487656439848279682339211303454352482879983306893698221420649140519418380509996471273859990188919828739723467242072857570441978579904582134295503428558930343610080228231873787229829061140238314096188140043116977970577086834532057910848704537470314099581021454634211160723504332539247149178419201824750072993529632287337482565918234386063997588423939161892388666999407298382822169532436527680692629405362349120839491440522611220482461943005635317389768491202940257773885947736618591328383759960206709619623061851968697688549823435077730593446570914414806503865456544935199033071007223977337599052687333907157817529100310862531325272945837091044613544000864055520429295734285176090776821072757635105247248711802004115132299984815995376355339068813199159980954782588938426709673299367816264970469713304014363881071156045783864277509974378747527325103390939674139647765574726015765307003269760740229270776121985813537972254765607185255219181406522392522912231430827158117952113773615382204099229035401981194660137688356434110998253911843459647659448177626060599990476263573370699741134513627468457147767858291573632794088703166569003631817224151040401380232986238280359464509082531498963280717424656861691726152635726853533118348370100825509784530846715808366370312755775864425254211462668297867701578384866623497228033792139034851327843046987754305833223353504794748386731874793212409950913087464042150535893130233031362665913811488728488402269677369280789717223888182003073470613113242943364095148079321215294707423391735514647177570237460232417004888329163061664253975847559766756451301723643956153976528722499125713286987659870308037472819705697733157888517228710465671126169579763779939862479154663342499653085866418015326484229306093617541204387156518609883250967831029786195627079546531809669019736352468367073024311205192652968830863188143920150397097539867131992130406272721264822807358098147494609968757732333748525391499219282231993150228707317330159697874647876071891899454959180916220232704946197708768010026738435850664210782265810180636638485599773156749281295635610001938704171734835887006160293286298337362385848484288070580036130165255581664870293206628290406780559816952577034628917762573037657881102221335420798348045326775100383793170916369097569414172953957585934971007534992837415669085981714485067518156479706572277889258367952743580923973262781220709866064131627781055688331746093032784678214780355493601061274726562507782296884768643061719734804301556978101296551434042942267805843867546296744054451970606363116548002625036544004622110823111635423865096393890955802007827182029882231006928695884370986354424012216444629229483253620290960183574993676592670321768152839319540669799255640701642720308685575890339833679371871348893994876687251617296041219878932420393040144506276303418460269759757440684055400865652616951869773438976983909378680274791910299952943225163691059402823400690263847510560530125207136307784883391892776053072454634881453779296038988642943609123636883886959371288512163032771528446761564788352967901950547327267814397302396077940760085178009590223080475855066738189934818359930822409832104053767785840596157967670027904704991751026830307981815774471874509231152212677407452106760806830469217173200936564073919464541861988690393612613538547349057685872208937996267907739349295859486548453539360352637147506999984069064875169977191802983090876706820845192871694006266305047491440936124986076795333330846573037825597250209407962779618376534772706429265314628415638594239018384496670311784764271460065098424052681967020468296163262692159136095689435673879993603525255536574680724767919935891834149223397645255853455334135920001743817802213658790505873053528267544448323363820682331416958320978145282303986677191851923294000009764253620336138615422515435873421223277976776638094302789950786854082328734842504288938827927093006737227654028309971680185812726550092024544486847374760429945692103723231649242193943830542511580485826880528770196074409596832557000352125908295024910044188413959430892381089790634503992652429188654372485317516970069266841318798098593721671657841327173339640838118823536978167644255486956437518597739171579297014048677449662312857925479433691836941447812733119264817172981745708690355107909591892213107929664963047155060469552885338671096271053954453443808509555850597057004432112292125475725802922868166072951175038472934705940736760452155897855381073298235767801551748556753444333180601490902259982978892260358921147679724820962939826479285255410247055117000445957552108206373594739335100281387657831618103916088839808987868822406478321331095677376027375011110173949843051921037270399048810686755056601953168889596820268430759322565698502480405095697790051306121477403961796273873152001697008407340612642537766110661742597590911740719338104075587748622829867410612558682385225271369848462131459996275521279231403101995318992591344284193975474426269913545538633891327320056968061443868547215822673861753898758612183915814516324351566762658212121758616572678685220371354234767096521612918126222063530617561173215400526612474442987379850107093646231760565266256837198903986892296061255656169865292273407780272087205713293344415004164260173371341774016048328077637859137361345645861658765314960359571269050814800706488936853523578892734554194436765768663237066840593155093172327388912646231291148131952459705362845063123068374142545817381801158758659538730674795445156670863850172793674639247815573585878165257673851821687785872111181525358125561508647942557927064703016003598915635899937810567426359117074742475873457743256065408764754176927276449350892700579666974244700215407056136684696505463755858519970780956986608319716927018349041390169867463900110298412736654463065923157197932402941039284871683861317200108617318675687026198847236777310626487973286384027349726835608865803628557543130136379224490785650043467941760913061089804172022570260512810458870370242154180838875230006676657599239135946702009018727691066178690906508945108696112398363583829473327121942187704860854918392860101369741366661594200775915606585928599803398514020703264386227940573650121606785375452336640031745853652747162723135235901717122093689452408269286983679403098393491543299978706842046938807454274630236317391838548862777998996885296724834512405392892928520819436846750614878387432447092714746513877956089999747398047284429755469800006213199731394688467695212530974584773456431220767108574989330812442323743360498025541926392816621585528483428547070773570702724993003585051188165212790470850198889836967617168112419516999920751852605985330294195190203090674585588934585851883296089435348957464106322160811279579114133108002317684237435144497195704443304129990510152810788504892599360704332169855079271508786341426574561933024303135483630606045372589645752340474309146204166220284656760437457754344272186686231673195100308207647632399478031927794759593823624498447494272441135041699445531763399907506860052470445734952259066805007702178213767941221960090431001076074983712106664872216531805163940596099813971186528842073062221844663147632301296355026641359361696839247407752825211960083954391805024066142130845384070047021139376815348612620948161934789733385129883408407542413235264037953970582706336781484554829419426363114791291434603933206763854406892683165881815342787130674861753812933824294129394580252862477143911117453178301114341851823088382280247698614679188835084930443864471282147185235136603200944649037513322713378567651900448478122665291079034218890838845463256550712697427418913656558750570456593602489579351944127445109002924194263549583440334348278651219596300836483938161543453507849483773670142045839087680648772148123005748208434218782368743623073394824034734442915837450384131638145729792398650505493302113817323132732625797671981076738880273892192048302037048695772570245727097793526156329704787427618675756926270675651034552424720095831544743995213516134484243761318186139268375754029632824924853083678377832370955053299716890937721071538249423332723573595888369859847589438784064927549464114011582839894926585036584499526175132990566050609878090047407825289975495633111391651875035991682416338750511793355024074890877619191398469306090433215913887327052790246140911814810013226144998384345389622223224342887125057482822237085970443836607120723930991116790658351000853456132812984110823724909848767756155616632408987501462263555516135633615127786892997121453580295452358146547384465096439855905746401518678189428494989158992468008673478368086627662645812961373842899850525107412345936299985909148176625651808874333136699404572266379195868162395823651704991554164476585856543405327191524466853943744723653686201142075387765655835951098630215041070185081887407186083322224237999499719763399272894699745139673271568940981444795685135904551841881723331690977034836836428038032618977264818808834933899074852215730212557411140726668451007343869429667898501241225241936831943994245286953086336658549604026723779563973269767121658673887825693771762341195380179325492031970436309500810216131589596797288369934088735315349721826101822485614601864441577940888252794169472147136990905731334201270912168774859085458788869898170595696311219417150635479187835823657599352307425307211623162725776048726083723404421033825185198789882772786564737328705358647849161362534747688995135132478379104542196353396362546581307285027209341785914534445696077519610464469036567694781304248472058030723238774159087225368122571116392271628757283925267051869852244241768108132486661614437142465329519872775898058980159549447629542301135689683626007155028376795113033891647376484755635906136989462009476528944523083374377207519849002847977671872319975661279657869837193758508114373487038211102309005857607221736965441165567593151709009757570027589180536381857192240114053730096067684364108531708768963701875211659426332875255345729988809086773915267829744570457222445942923821722526312880735177822054786100422449893822861345980397072585639906338617106297310242150511767230393372716331517716742658924537630278634120555271974649586258602444093730402931965843639781933650514007932376666160927364860496050416965801701807574088433375525928603523606883777521232625362051976008440880332350621642236555087146701563801221478316546962075491647589345649280949544094144518948826618297579308544492104482823175504582211275773148459767818379409819580701964317366753121015286380424270361648144691077155823635068011487175433928258610591482550948179383547729348517829260612877110533848765382339067571855272945126477008740141132315515381800106211404283026031667441244424326966363946204638728595575792246575910214972876482541569540660119264162855321333926831587867976389305016562865310618759132692976587209467501673030476581440454217645008074982974858914899009103605941908996301361167261697696738994105524164824595206900061898242995417104515925736531566609677598890635471111233937075492592087639532304003149126073866919451569312931625746808596596346846702626391165950345315589662618903239921416812845237364520809890563200394483398966737087119561556909155673295580176652654798734971829312974727448696889838203447989104903003657722801909067765488815851998667785909009919758814014243892683494555305185096591493354081386527565223984376225060778651026460019915328511462910222890133717441161028511160046869824033145163684833762065588166326417665333128929089230353779191213315187711939310384309351306949069268122397665261609465175435790873898321835802359081301947909775967037470557945707665597163096109136322232550017046581434841659599497587291583532006893255225784923124041982249556650595024546113760026411883157694885371166073752152183029440046357858500602123917888418839260875140988860062348163382264648840123200565839187107355520139340823673562078480668198014137873623266261557883274747794126347507667688369446167977277639982136565283464912824856790579252503564291002029373601901090776919797594089452738196433453628410510407068006889004233439972374190005880146943607291198797628292024183434276550525063459197855567931993272980205512571517703392103546496391592992383701158185273667650364602257210211425297062391669555192478481672031591262734153698860793073573435568068498970211926635784879796248830650120967059833685295838749396268675154522537576006294040785235324405975177754849303744308200346829375309348218472573958859289351136951756604839168412249566502093941465055391969987119129781343176222486889389416646062311171533151010167525953959976126157971978679258176766578583584937191693237609961379156556650233210841819948471574194253502998495868137726609067492269388728738254596171011104450325582808059613998135529092158146140468942770860382538214935870163032343294966055641811183168253009135402571997710021978425179780938426198565395978364615612659254113810108413317915403279000637090314277575433359582182233580102576695014965555634723270009920303283621395688927936521401705155140295388918418648596618076393897961511356385783828912118534040228316182978062624248756837510113716603946165604959549904267994556384823307700770350824084848417709141603826642254530535500112248551589837021606887263501299845520817247801388854021490556603776152324223758385630212225336717319878965303638375107691079143712536380450392482280564091724499881645747281193940582013745102402112163699466412847384812289365171269185700365703674972569483571174399032393858982694520333074306764036790348877392873609063241744474898322805465814885747823431371330818303457057537890406473736677362683167924724763199741035703059241539392770092427319672660642778801121870649536652759161624572238454517198331886994768456504476562337069942614501154655634286921518082678039135964557167661547813198369908561243906214835709897641585364770212278774128619110198883980379387325373938655180461220316060451306912989032224380882637240028939863495634040278165669448376482424417465382738980601289809667817344508466822992806198990922271177226300385259035276313077573247216402945070563627158703418982916853532358713829378400054704614830213339884474195409596761417866284403102568623738744476848364174505033628608757079199179365423104657833573495140862514843876942112568973747283322078599366466367704549388658969601598386694731085687096868746108218003198656459983048622456108166006475616097125033751926833362248065205822010125847102720338303886417694582969753522178357973917431321427178374786915128518012528982603608751652709176945168377347813231487515292895306465873101070377981371586742629611298225699546566424183187396526629194661012659283587428052160175905258067155710202539464250583660462307606785430647644303450145119238254701359918243951420121549511337526110194522151039215237097478291224566048299693161912347496242138711837988021612596002005578142840531953668764365996796569382569634171082244853345733001794924719964490734168971626579702551013516098507055673208645262166103018011335918246008796337721927799688927135726698894516409375863467694347446834807574864615425987369986238230010810761442149430078172811279794448145268147526522047845068961686579466395595923676295520159445746368739281532726463071084354997907137966660961510899907617523779121194887587706068619141432335111752950990605843376614634230970414052147820602473634962549653445081130352877689392949434432588445363343796297170780112406410471266467164624278239641045510174328869658910010434870901917640455565023327199769605366732424895356938409909692394586767157960144806100130675800657777205792350231594423011445896811133467195807331580865155582543758068776246085072264970894547194827561320229911888980871772249473076359606757369635066104479080338888496559828011314194644026120689494325959237662903736868597110595816433328667714901565520499342750263254274495490783992589886453705120426887941410902240360503582346479198267050277608706772734032247411019855398067413384115411917796390458593316982607342705777341149760374588246529726282970139159811126748952144473812714866772685119980314249537111464040886307312274042460844453873825236393909778385270973309575012100507760427743042441394901284695742675350389395854111889188085290160333528677031319205867904655960835255120767829020972225907675628375322120588558508175601740898455605589611743907388131680229231828480919811008054019471219220926305993134956649455314868407858321162866405154983949242658341463014747628834860013501172690216316081645552647492079152952436292005805138266384825732425812252447306508240155045429785643712212662191431752257643239639215783602819513358817147521734964795607344245418946255978035922624867345866517560502849278345122705247058760665290422054643805757885451203731583467374995459018905880351962679018467074516933044877059585714425644464414926122184213878834603296548305293793221736477104316133713863181978122336173485117688969382256374103632756468139457812136005247927566076630611118714571792375049392610742706067638237312935999421589069291368052841739815133394260928929308285714585935581054460999526629530100668628563889155469723272693151122932913227709355066893428186922067967835574485369427116481414000444942274699690624300709695061666273727247686395771856094283661688082870156800468056866246979783124219297800588646701020155201595485377192797884606424560812488750846760966271678862546517632016876113450114172757500836279680203492385149488146682769770100759029940195709328210847396603450174083807316684283636290815083670990292626672416623566813731592072664283588507329504416211933645912918213586847001025743531218381963175369861989688336781020319056157452726609789357467672520240103915798248742440043122379334617116125030402354341397805253121025655356478324993506189964987287603598418830094108903207494621167346575079857620492782089146759779963199837281257397253181671860750109891000688801128405562623051946165521116207803550781056097271371863824633779869546392999009700681715029689026293752284289365520119882424549763514499743765785956078728729450813595153524234613554400455174736994519642906952742201370943842941146475068234987211199558633245054337704261234819975199515669124299068603687528727486300421516092249890620504286870268350068970990584462909493102769184007756494013580237768570682855915623225544187204704314179427241310505636392250267192870215290212795740144304891413291303763692349573475526846458330796120836859168483603795239356457464917665498725649593702897574108869205318312041745783483581532715236279435811553997689411316277793635010491173855564224333535796468924411113054543412992512486665597273911920418711060831424217441055785874854770593820760896163351754181294861431121306602282516254734356385328253251239953118674601680285056495130380398222601311871597475231952626272808004074470438195059496011028466417532960299881032498950164634404593272144672324362403678850189179737654744334811999723707860324751083684641872959435770352636380596881755701931679910781826700601100821576955966526809751785564231710724896549757545618129818713307306217305573985587151292179419320217152725695504619201840837205729129496595328337668816658135534620738411687853040959733687665804935116655206098540307056559384389296803973883897226208800127579762203576725748573887384834100210780695468962506862766969867504873859049516429502698456896051581670051424734930489839522164395119965519071327575898481241717955931638958709052426070086240727558333830734954567088782649636798039591343486107142635162909996659801268206886460049553647369619642147410554704210199622314064077367908512384964253663483404361969447359937134335839998933897059600533150645225035015426014862794810139912865873980026070218991235789234937526508573020095306001696655520557044946875407187206936484593584435075801153135798392961815337910044077420775971911880060595573081558613438230552053570374960338365575040012199812292289335968080983139826480476894631323128376975496407953681371254459070379383223236552587314842693260757479846427602655750312097049366831026423979962134800111763741712584431720005598968914815698447514325259905923768211389586287601820929981826024083050360432642554944535466131698286765404127222151723420553272965675769058632586200129774678867277859006670807450779546670047071777132439980407340777306810507556370186968679572231064411458738823687182774230221705990975354268866787044636656141745367677783526657361824954613565698145263741552069429708395105661335846951104266195754384426087204924823550712775238659096549443955701412729674002883199580562769972410303244752670533468801201756631940764417412259511889539041860287844278433249714231722354164806941323764534349573800408424959835022875377652107919508812463111049148290821155895189702519660275778395861608947268508386149685841674864309804861513790306584380189766939544131433306328260753913163163349101589529215128802429352747048953373149085756716980179933935572048056626394681640691911392879283995014406258653972986603204629334320836739366405959953873356015836996005173215006884543341868099797971822307212990596740016219812589307076613705531192030362696138925176767687394304927775082138047959195871051770897290482621275080908842417987689846851623080199285246442051444660532875137259745781677855232827804148027890278062852482813590958629232334439254982577669520644446085885958401798985736954646255796431703653047559565077935024872612802288228831836211154791275019466726156999678412268504959676500047022931960620667664082445575503043488553202019541589945008498911954719577717202764810363474877387866950299024145826643144402149559028367254040949871759016091696984429646842977108299994388469211825555880212899051390855070735031109882269313034245150391999670029729247737990313732145302999533926762752087143761257119141226595345543122166057191473025436473340909729186675154673049771340458084744068252637024423162129308990649217582562503473968135446314162826608853004219487621091454076161575654332220073232088698277246247463347538483674102227427838988625055585517349267196831520243427115962704168845001565745642134941275508962931953400214473670219859938335503609719439372846443756015016135103347467162822855514105983683554114643296253135041820301395033768026922879393347903175391890825633225617188558133527923608181957185816824997689365809291125762039033032050316566554004024954148880896958703770993746686442705414027542883252365192318459053532791683815600279948906721320107114528983802965239799672740072024745194245634741184047903340819110095500794197418145668789372731494148660125177717396564142069316482207161285084140288640150780764259988554843159993400679420882484389755251358643752323829593526828785991405558436529811244010192663502249751638550714045392061425063871724513557051453680306586820433741195537782289231688840349601182367722814748870488471095566017536478171169586758479918970858227977020825446033093094018188679338199799761257292917564963447609795455262903192919101551598194445250619479618299876481405315471343461290522565695862422266469577500239889004428925327759970392271298785755348722803899960274563251265745727832319337470601904788606335420955515730406325360491239179998381979785583002937140130159181318610152786218636140430826752398696825470469285146607371381549560928375102572832860810783055861991810530852042690043886511448521394319738349169920523841693443926752560116226505021075602555777200689697074060004882640512786767942947203046101444729495123561219237503719242506891977606850831295013887394649740350398572011490690859181888670853011072152737639671948201784199776050072977723112372027600798247307016872932940767515072377974822474250572564898224282002257066869255904522751606751876938044477601491794500787580568833084600918913722927129142681866672106839243671578614423706905770145414568855404483868279773044079992764779287767968124079913668382635984267022466369573812031879300984611215740447450188548366696156301898243127116272572137917051494656813557206886050497154310440400297558201142920743547149941798955422570682113377297475729809146014718485325265623831657149033925374953055193033262532728085241288586121312387683646735115907523666973527541607843764141338911485364038329247280807775022780517723708500658227720015799714214068711564886849334415638084342677968864623985371204793928998696978207061001705551005311443715930365090043442077174823262066912632536522847310564881308791727809439292645461326909396891107223998531148416744372942716036503294825659422850546035737101818966622072740175497551851049899921563248693335125702141478526705452726314184308185292827144506816309308976807316231721536666676974183012864260333649775708950860317072874675616815069702564869747709308258683471779362820100707694885219794068626650533771886472715247412082109576131733823843970096826367370532190512597687136460339874593411847623617821857650927121693888000675485803436250400690518833731973243586461504123579215210152603833047746000616155935383650878090204348480648677053833477423660526471087518239205206617305145634414348485966362054274911735468478628773150288604125868072888802390675641963178420586452058320113024324982504533790828535606650268489602540445747605158788720601836572556614519766791248762881136995439981368367066819073165507236166048597794960110369456261412984839739043299751830467863712172289545927044907962810032437194594209848139676664459516696807821204052810187140439375448452913976051234472328884879982292183121678204400697409795763249928125961004631988258053821997787777895333368421559917904612161766249649255397736104597996508488377648402204163942726731940612487249700421866191069193815670885008736170017634520583205522134752264401744478563495252973580067660686854782354264966403601300478284879035594346663138061998851232847201561974610766560463734349853505958939467063575886980066062400089765115362730030035750329077986449851696523903677236070497328627107482222630068652254374002513897128481129752691340019862676848759476826498323127059122963339767046533936897310245505561824407755430101641428075302120856385183622171036383341635916251690219173606796470759185735143890911401361515665773378074107356748728552199265382234511568294239790410832490500236980959417121344327362141413284385851622346412394264539251072369115363575117875392923401206112435443251493544887434307062771567283735175649235252209566372273360719097807369964405054084731122571648585350318607111792380286549340045504025971471049383128495478910340052818214378689215602813383722799810781338870479285079886770097457105188365594607617508423722066499662811431491841615202261243661398247034502853459425369166666999446953202497032339292657085944412795983242615062653427890925429293620534341540144103469693760606402073810663586469434573188295864227090609017991724618532626822550288619650159585780851425760736311985710715772262836793588797176949485298647065437267772681364151679599911073975020116210622388446178260099962341628155194732208970570459154709038842355709453907319811288374349432025513979198801006690116978605681347367203076233868414660576427899258530295008393177823066374355738849963837877220655771143254266370431413840458982833762414056083150812907233906612662931922718594184662277169107424515499110791815758342224960134718366247843486838332601235924052511105081155905199506528891921272589717255272489653909613234701350172721231138517754567937391189291084786874196526971126090334544303729917579574110961961850001876308477214195679840766297238731558038463687438176393058130266946422271973305717388769295833080989735003749072171417454517961907775899652249404339876472589248197723834882413463667090413196046951440930629970036443617254539785787518809689816619983200078636954746711012146097362183142623061131041478543786000289991033277941973774712490677252370247236644439398064620945179618564591468707902578021123543161740958232964528397725976793289891259959665666239519584419580955793210233513621669511460603961581861690071697366831128126007557889001386805047135535685167608206543487315273238917441767589626360158904685241920931045101763999351832787742484312070891995767350624338857211715472927123546327120232706133577911804831147948920497765917265724296604882990827828196984952845413731929743734403394028597536590817817656318620551241999825379217774250883750445986863145747180827449685531240017655465986101059892604449126142424781529079781701779219175669231028833010681066035063275563420932639481408397024374300465252742068438157852619290049250822383610022910783210528570166230419168040878049369962354834608138979777843360468296162990137603665020459329680146444495871636126299700242067374092393473196888763819756394544124275457309188398486721135116407311535484123022053099128063942643816468831000545027514494325507774612979069566010260454447725868785839959576871257980877275635284020037706144806173906082785838870094083465403338476931755989681900245858172635698823759716001300702266984899393297733497045791333826382324030332752920122524938265388871928137050598764047655591792822556269301438460898609254845385254930719152846613638793034773418963650722619262429508172513497376461506705507405087471222630199463445209205659613253127354469925732413729343698663229644333514205446231531997292847788983988035440153564606627625041712061679875571079094909966796660789158880344593647617491620358555022515760284173203550301463875822494667532612407366494913291232272442833022926712957996464511395419595220526624574416883370361384357005071546821978355752814312971728461039039733121355060734643662120128658427966978630215897416462925239722836450671351306531697092420388196225371584434504119365036981230464990448473774200698157242756202635207022058862243499009027550351431832756873055324868270036425325346434982322744050920124684795335473423606179721685776727846332268120876660003767581960607263907978043178185834059472888584329947216898006405233767446548500831160612765931016701170398435353524701505269880599037445578164381635768047484536367243260664176645552616379677508075195043500386406622574521905678789978488829190161420758998746388283299664189868499795648855079173411629321329164134990571829211946286852809794291350406211934226341160536859242063290529201686166382873927865031975043884954974020089404151883686552758076790268754385606259040127709232174185672493980408693642570315247943260774311764851439334847786226880093496240050779681887978033125730058587498476169254441720243420761434353910892301710157736667163711435711505782281125436848895832053669108268917333288342783543639832106910168221075105750663736855760436578710028668688682714702602186404873984151087165176676498304989167803225842801938465723837176367482351061415562892283524711907687630293574603675542819996048002361618452257428659980622173429178314715434983735163820554084193009282181378633455986924240582870313571014457867283108092308793157035888933213969863095172389806962286311136972858097423648347110928917330923624634614153341537517477784450983150406707236901004283194104977311560116801732237900909622408678992723056733314494521369950735625230664440696512431416370394701981669319928426098417686524796558407342725334288434158576440563174081751232857875930666050641459992668981478538805173507180294480295850782039245079550060401538303762993076192977591845286071209380743584559893391568358730934082745255992261629748158955018058129857816130482523972187396779548907151812319805765026872559749967421616300044470064401431255120829815885836960653641498921788466995226775186605341566128991517959247261953961978759929618487609968160570824229606111521889526401537045986239212091122993730743778073460336252461124350196676530349967961826364425556223544696261994289243298719563166695918179870269786392911492727347259326133144071710061497107809256958080520743043362622540221064754033400021382623730871625815318341121955386273223555200272114522569807389187412864041749876093648634113419458695491813519930728157509146958533901284852229626141389382614536853266340800226759168465730297829931329694022687189237809115959235284329958985986451413798117623199181397370576956052810486634060993336450700432122325691641846507351740926344604389549228627729398338442584932876622193282907665708148027157194618220529638736961933198230008183634151316821536892565009146526241465296614208354259670592371245377480361349796046306421464728581715034508755440634386649669950222405185157969072595469166824219277035345034155962454517004740784268958866767111847819809332125358834787775719480416709848480342160298457289387559896188193643990520685804703426925293569329571291443351347594936604035717946332361358689286589674928963185761809535531202211932429306072732585007332317362346959472066877704317397788019423314368141945986974774009031822880723787067637077557162398977379811500471457492678703705697166311501753184169730069039684656059456802478347262667780063431430536473813877050937070460247184398706910012650138007503562634131017025351765396952991813158862752286836487161074418807312097810579043125064165076881773528666418445893439090445968384810653345398831681756461954736633546041469086558522019440075293762885680528190395764471213220977963916918644484655588501487630917988591209980948293639031209892988018370094592776096269542657438269973685841230975309893331518433945699475074018488167019853543865210971357205021122265697113436432966646782193315745417721719392850166083786110852496557731093457406902562678096118351568574249818174412025325078874828146732382982444840745254904216565628658295256535033016189067478523482944375110426841396242420697359092077539155477289794635403779628851165948582420075029973682002518273247957521314875680490609506164487894325785558481702869044368440425206183621606935010122739068805704651615705175004901069631343431933240520336054304984445996545851269598898048002589221979725192011572038834029811444655426154545709653468997637352350499076715647834737215691413352101157047809370138092999797388007964863121627553148661272839855566040333495983550167253032904841411354240224262437936738480177684304698025102422645570035328728361975470497118231627689478479753206995399650468698960496657772203654015866885225935016050658912560373455888825551995489117705694734901824758868001176348875052856568877449930233952884802922321207247645913094972012962753217114098117518793755383603911229294461847025634136862518476592212474800537209029775174475974438263963771356174956274165575631672218447011759432595116497347261136938189061683539180876910003658853142334662798792669945612675061171898201194056896675942517780950650495179617019409680747468149443510427247429414371434637744588235493530587498247059631948431837283061824071401133862619172249443297613276951802787452609737464037785709272698273043224818148098735089550843954018139701346411537969366624761967191140096298895176416432632725572632200990436538132159557330965428210496070956133015141397123776177823347108142518524240798873251128142806102403301235842613144182608351246444772845766889702139520111104108850181373338894604188127661834642780748857207226390373447807885023936519936652883055467861585963019164913807635995614975547550662879423491853250645998587422757508413991880779824585250783433416045530761073958049250414831950779231143612943666063585492475397921966219915270715463625941128531550769184371696654373356592547391453206395875519914548926970585539627461321429921994499361729532163436920859985438243502372013947430395819577668749554034135284788015947819829311565637201097625258129819294469779464757501718544912186483356266431247738500047707787414538903896978742669495160766781984816852155708803426088822604468931675132505737232852168459450192896409878108939084602836250369933318240194470206657586313906882700845742195061158229543579248728334213911164472184437159973259802017653124056231477078021525041341372328420542707884738872803162193513654365326011081870986595546722518083035261272399908026332911071716758145130756150293278044354649631541039559139652119594106941418387834237263664717682039180302464638114299256683432441065291741899902542698768629141811400664455029235530526087314147395907935581289575828935390834998926598521825156264513756907966885907012160434887748339638805200630126446284092086770559831712890600798873026468144659470181057587282981478648694073320508305505439631540448530868054226264455119275939405589836340062078003148306715973944032827878551392975579474324265390712688599212211608947611767819263713492037352176474790500309976281508385843984991096814300364955718910864509688901938763309909556207335515741301691317503082189096053661815473900345925064489704668389749658167528165402847735406528479217545217901208233119660277219737389886121312397367060983459982813570320971907665288168807688154586700301283857160509226334492713223322305811598998315887176266827920757855456570139276395363007642750151687860692116523988962437433624193255754494494239478945972207564460686931123576704520428584584091007775957727956783727759165656166797509155657337390006700740104072296682686031538383248870899051154708275958790818063711276282571228603430899227940251581993577089578553065290642025603294158710521660189378317296684675610417226480541267564888527453439973850615274465538660214301273546414375808299220657852459208367367496211334650778070993693355921304458864331893320673592702406638906509686699352699425312141165523595867063650489267839870516063195789141725087979401063833548546521968766240665841513515899670456014257487646098078721915589151196749113202962002517802683469840838444829023208270203914160384773234071700134908401763880055147871734947429225480028152662687864050163100612574010591088807536454483451830133220317483409700089780065157339309841670047637486348797821657453753630862366453680295168492009744175541751644372812362388620672532359359897065457773892001539890473901212121530470722395941081225186648163169801358898400745471733550662275018185476504285744706058240488306478540801360388149094719585551342129861090173928434983894783361292297863507110328040355214418619808091973839987709420436912563115980963014262951014207159949800064105824362335438649808048739030929549871000713126068771015971071277111370711878385210718078129647554849436114334633908271414210480116640385641162587324292104685211830009469229665976312195420363971240862816364629115520669401285252560865162429266298342162657819235742186430083944255741624969703440460518128238508536773840581273385544171594558692473346583997370800769917407689199773044566518787260557024269010406035316307047488146157086658422242121177451765617283561658267506212948175449476884352520919166697863231992413047804484130486247328236296785287551852849719535734939296397780329279291411883656425475018700044400431847937386321341510750499516428959584251385204889808992073030686217186225595716013979197614626156857429651434474290456716181345214034464948863127736171013674411432815434551677155891994423520032310818180258064233937594321580297399190838184444470530328088549272265099365813506651640267668215603324569670697752562962839374899502911263739989667247196198459079327101574249885067678629683541418192583914055468314791967363160953818735869811045038687545597210072971725767020261468536694913952665888635445092041657890319658013930045446141090396335055969674740828319609109939001861443255854257214852092230048032389989481928607647527455319437491460726229923782937223547651630115699118926381817357032288555931744778580354493880295597198751441342353320401413881512748553759234370240646868702706484219005778979782874708701829463287666104070298891122462668011573403868065330364854910805958671658299841671088916025658949183204582500326755578558610632280275483322680318731500175085394627419907409775966893827424802408880561394174645106666603072728725311340143917155183455125147789087601525411573112444178192894019893449318150798855185159810542894695838477919041478983630941241916079772989892310266962387184864282000975705835935666574422767919928471429106242113789905251100314019044728536013627417699322893711248207024462756982648327173601117605865565513388107413712744517026637186030524052176810639699132437518637126887724707243897084365237692821658828699351085787110250765448556240368417170195835172413512903854554597231346141108524184764775926771312385402882916063363842527034366517189228006764404129807125136957422418863753215230031465358347592426721288068636535074603130070465969514139860925591422012977717274265364965653019419111511679398522840647913792309253537739553406616433269664100251478595828234139412722754766485868280482557887620182506652139387681269119466961248104175491715317554844894762468294408126653760809120761358719151332522163646335916407462474894699718472200010231345432063174127193906060934130563754879762902243193816820362863580565798055371017419188197509726890010634766653820273097333687931134559063913669954703478647357110157834241363070269318498270218909882494882170450483904175394880988395467943252402571046829270578555453310314061916123272767755859969313860611531521314586138139455185377792074932396050128665096634549057326635648053599327850526588423773141343006415707928509760842884054040100834304938324374635317508464579602809564903914560015238770022671132683085931943727133739203079313186673310796806451350825642357929048774856376631467598609986547291056866433811491602730613621119535714354471094237958275387376000611993268947059739275505213633992506405474422768221961067489539188176920227011645437561906745308162250913784640753816257181954552270623060718540833832826804380813545749449194367986651062976885231613508045727127124441371982357876664803606957818754855899545428550044954518987038768826513505049633026495175505918792672807179412069784332499444499202133238076566395596026771277170692118913267532174374287676613110470470055967545624963993918755413482357949240062668072041290961264768294022198766372033955996116812424237292579869974376232767450739819977117786041037729838323784319164737362051349735674445677303814395534700382424765802937840170170988244511948115644632328223736375584764607761086883824644764896163319209305317796617199142356533786489292017108306547954798242564514064478746045732817861119377704941258836978399778974101394825206765886635997500239709059668883913552763546124123481136216793654546205712869695820364097835268371797055260912916786782090489139291319600504584635849198479158775661464524796889246908286831702357973595629482084253562046192656456047405988473789628789353355104293552219759053626168390224673806894441238166951664992746678833596936068593246846131287304205569899153729689395650275778945736913694079426713881540041950403941349841340756299930560156331197234453630263147582243052966704850742931632561699472208782085462220511982699793733056214656869459583959284590686664640905649681383564043463251155866080786566554284931176358258363952493282466076406827608837952462410554593218736573189969762823172145475041822919543371038961577690738176343238979298459728275487403482075710430330916684294462634477529204324656425029801457883551160599376267730902002247230958848423905833373337905688692037853581986940199236495870802978204050289011381374643044760037652228428288469631929485527517948965843817328543399275357383218523037755569134787313819398157028913941065114930711202423100691924081381441360365182306191363592825689099468072076473812031867032249404557782128918770413305229067125565574183207061571430408973033770979035937857577000045280885981565950150275294103729371362447027116432484626659417655399305409771728159751166113360866629774214655772784327287136865420851045630974054468991926085042705456729343110515255054798894276197095897847880949806074923017025522220803100185314090764677111284958291108550184995257701030725090839608499288976744698663588561541900479903290296477909439613537237366957929747427155270037072737215954103242634330982140976313116939000958955751383665015640827742451157709016102438924010465242131021862462164548936812173057707794750338516078698956003337735827986961436321585298110925602826697133025419681955608932331435441697339930738755994052825955968969992746598277806383496068448607996602398368260151871087878096393101576066656388768588295159514185056172027845752256381556979802597511235701814616098508819607996248263430112451106508143742214215629212644924481826622422565474125552762181880047479013119238820471864625716626859853380209607956031293933926680770074265990374605981203735016487335943155596885387328410520130417940322817066896801445321477471351083532658144049528368937386387654369801931575930191039681749612376880032395196765211889649073628269334203665212525923009502850843569445132379359107170442377018121588322889484627099264989752866208644210786950742639947307551287774054683203067440971744593656719121070110474749960131274633516097430182735220623161658122721669888814694262559523920760602842082838707550671643628767199897492621090132112764761163477504759634663774343522628818766269061940713970761993850312142465180453017983880639924331440263492505504467808699209201774934697624927051159354657362317576949283579287229489497286147185603497474759976797504839544561068518016826897704303152670726019902003148427896040080583028509253258610784262788490537948657864224519442903349952059047741499492872946759876950650796325440015908353203726073910651826011103806126716293692581668184568009271562479646693281102749384694448753023524807667481207416483454595171075548496513224520506543803610860017510306137305201626137732176273822601958062318194759557773030947714690151848827640157744736653059129947955992151513319704828854626376390158094116732149809542028580757946855702018995050924792747673154692228342261833880452211569203488957044289448976731748119297216968834421935794183887270375291929852225218262582091705617169826993258722119247928798560656809140804036533616344559357261312891009655419025776274412193117773218145873091815265496906389514265209813709148467689710826822062216512985572970766708759799168634272066505040838095443136721166138751715017833668301406505757554902560281260864719239792841933891530887019074731975346002928842364326489595583822852567868097711492371968200334201892787903009899440707129220726622174637790267729889317886945967704216608912610191093538625844645540486598119928529071294301079509133231977004725128939516364443527297540844681988528363861715760798789662704536692142779645890787206339614058422324357466238521759473571255410782249112061800051115103706921268699506360575976016304441786261100330973601227979270201610063559916811546630261060509391340602151414912426846175368001542670187815957734871256968095999032917676102274512740039939734263971307355677153619052059545485910013467740982416587411417366085713507614086205682720455378468848108803335966541713991546534353280831898076572926451533825190815227498162623174769805584723820035255654108822154970740719341094234242911489955817828197711764669265671750206336102829195922482933799658166496162244715656551669879103287826707734458065332077758258433645539021157050815062497510529159110416867757861353436354635808334264089098264744492731518426730384160943801361499533954767858059709517006723050275756858546757248558899077899582009188339747275168032325598593215216894409235778844581549754701236734569490327892063783665611067007987466363252198079548927939803647560167064431863760886449882738150216316057700736125360315943947175534852691505784729918004436872370715256527971945261493586529290688634159243547488243514963826678506425193811603602919643920015266349155806991075862237142517579232744026243024329064309459803160875887302336283996245884591434438648948653790439387346708154886992173445056071260360058280209511727450715004745734638558906280587306845054377296724316154951020872935394625153307765014306235045096899831398121099774877203839466635476441760810076869794055798301959092290874384639460869811844263858642328889748864379548003559990013979996883098666485213733958045584876589798316451130565471718413885036629769733998367301157860343690865444366185918224972001949296485880353141718377694733419760378776905144425968789469565896639804542194515801877107027040383733090082876270270758749985951784040201950927201643219016743876587676391856022002915537096115589670496612466767979984791075453463309793936257277220073702883684652124299248544018366315750184936418640733781570164998511813204544677273336866707181331292726884136630512561329511425182998697775751411227456775728291019133749377433562252655003049997537725966443355701077554807598027240027038098333139810789318580636238205524735316029700495354609526157268926419730316230149420993432342649958603969561654087080070006881563905822183672698043149602759915746680476500370533872281618444285598734199557913944448101836437611403772762537994965894704494673925353759358038799286454108611629167451595344002890277579184238709465610114043507229690405261835495507278751394096559646661912322678222834540901950852997708820119805826085168078449981759493513301178994835157928822314360751016197848245667775015440841606825897621459076518917851485931434960804267011374205228310248441259227150351309682406071921043546144133520656850396536060642623743959332556450923753937341455480391303223657645064142830815399392403098583067415924495063721529510967882053008180113755421186659641596774546325322367123938070424745217881952532085336255992882046156630036171529008016331059650258511667705342287242056908822835326522919481595027566029294022598653443785617970441026548865041732952919225224169616801897275049020220002529363074197584414784598014702941954136678773412533223098120858875734369057620108186929329598814929329020010502750007027645963377245449580832167414278911023429927407278103803849180383982261675400704818744925851701564571766593131651526204091425980577834484189436816473362066603433848730186966691256611675979434965279603875448373968250201197837438365451303669299663497355323667459507858844745680259822162762523989897995150979371350469930660382780437908430227716845832340391516918064377674033570687078305902348093044056778044303990339633718043945450159427626687301582335020982841805941574122643297441300595658838786223618379225472987648785349262877393694426588637953208841606250809829954962355325234292952672532527246642919894059156970220264232959945340744580657480356849011829680883957836980962910404815219027117568805513143596142566039961263012231744147844052435999511587848625682216493278568428819771385764668283061682132768424850304947315259614009816262685534569471441948903826452882115233713659365961327523341074730276718715690340802249760256342335978202235220842968484448570505008945358407799855907361090139894113278070875008514330227410863316796737816294995392942826833282169540631626852042596520168633758995122517926005954376003402590929470273890372044335598265393227933253215190375193119250883885954018701958509292326293270116196972379004041082862328803146609921537526646129844605898448560517363443187014999902408487457739025742901474062684745637735016232721731704918835450688486769439142175182543516574772818851613951298966276677108734756956794689647998671889339139220935473961638355500297117673173839050948853596516915304709704452481428847073156365742533065455900457585078968639149782284685052416342028296298523192996963518787836835136512772588924260029499522739732789670465238293125125206239339372440052322827104352762759246561915640341646021870036843071787571042603502156673768611195561997124689713187136330526237955872840137029879778427781505098235941550588192963748214811812659458504308649509932433456527931983102485094343967789147283220884977233080856213955279229179656060795606784157877873973670045841241117525224155067405847116071044391579085315071284255956540442494904061481360875090934699174583445404840905285117579300823181546692660832182123417689286328082084827184755144945402121216427496671728070190060040402245739902733785374123305365634069569930335002763690160893033307797976926098381384907990897296322563079347754191997827840237316101291395849800943024131263472126680070291090429170140489363329494709536783824103692596734960390210659120274257808572083110423503069827769161274505727614466294244636618516597401750463367458240459480191833461739836856557149807865517025070551843032474744667480549445440910994746192126850367743014645509943381811206241764745575158399550983649254049437838840049342652317247263380924122322383956483137722503449839993126617891944575818320594951421564820864759674669506555748698216044691427571545530331409738214655282807109559317480871560843391968516218771839660787548727898740638928042565913513714417383664228472262716156754524754889839226560581498678892515211565071593364688837383717520059381428446883042163772711649592065142550796101465148655976919379623026395132598357695401808216313343465715123525763200919638537750710965990960562787821833316627715177830903550347546553447797467149180990123218096390508474165594242028421467702849586208718618040950794318295796700996003963164771505511900287876831135081236454803933763757721687727728978774286558013361240889473312409636833905473478835244912656045381485789059674293409019275094983455779907846295680791611008160382892997961629738990229100031390006047082917332273474307754987843773098381688075223381487220404192357727840889366081473656451725664509378944563030725862688218922102677195183210572389997160886961157185761966136867266594617608794445784602439445975196712079115557380852547450207235055574206756311926551101849642427776654849045592323460354835555723406452100741925967109877226236635728979469604452919444050731495258803156365075570204259220616469675629041144776697991962003001287175196549618254891477518923839520411800763417669333510147660401670240832227051949647722563545152907210234432699449779043586693330367554691787594179470806205249142622888241273862687272140609175218102969456685986831217493303750737031421859822104297872619993038959503936737866026421615412142777009436053426173357502586571222914197544252876920874080679490108749976258537300602059956369386637375746942234846142774088427497998541502038660682609522384995542312067684610075183954929470326544660148324664515889019877249469430328528105161788312860950083434354391943993071655005098810439735240880842724690067789110639525813064032743731542785424131267031441068024604455439518539711443099547612676682438236236776306388127381851860108884527984188871511948066730050468843974622726571362254601577824398305682610575744744915315143889129607773686301840032439476303066549095546215606666160639871971720249552874349341302827247153114263021847878782565329205602100659182245386562435352984567768400454200292838410179148984053274757772558629114005182716526965671619571953240117483655767954704056170296648777151125283590326594888595262415580552289772983675603180456176259908678067043578472342327108234451014611482611057877326358357579615300922840798715926608016311733082025563575636364758856589437657874733872527715864302584656032299758299831340502577500734606549774764508671377685393066210157840701947514812697181733124006849675034529835186770712846331062495628081312017080051982109755511512244682620001599308138404577692848819526333938084409548091305934935054262780526398815521130784734569327596836187901813037449252089321393528423775959333385716482785109903346495802170457455444203367843749594087317593710354383563620145367643336961626506571723202777830422431466556093159636570144864858492647116005905060750791440902728537670246837667071469938743053451051048513753513173023057900337110164097780666302657731567357432117018705885410597915689194900620338809675062184010955468176925769408016717577022188640749583843733180654982258944694307451078360765483023535846300530418516978962047027910844177098807192754280902180700911985147016096806404830903341920308889243245904561470369876980129418029623919543120879861343844669145009428401075902768586022517524671290827477357214831440875426794901452320228784515399336890333334982770780311724177716413498910031580832278585911775086858102140549397460732504013174356270737927444526284055755473947649728614385326789038682657829193181576540292374451723273702812756339677224762684678306455517139124729755229696010009585900082210416662555114994279061624096413937643755200801618753930489468934578638804578743382220068162121926396458987917530001240613483471800383996741915781118878618310207825989303293783960640154797398868956830121274140335193928403743854857243986072645180425684357352792338845939829717801323053224183507362419160538422203225706719292040322589164147197653183681553818982958911440367722146250486198859310697194006956391737792861942762008931671243809694750166693206250983634965043997415596260860843745607256611524965034971613268521382513972522561865905200943296995015940114840296829587468389856131552285862279774872293070777631992543551716078268384911095452414784726547685583542113365493785064154766958172619199175308418037111581733478084915419350550200157237980290623306936566179812840328261566735583092378723565299091190054786385243306291953596939811677140557387769342434570220080932646510964191352438831374965002610795288242266152157849777610168667429563640209276878073410074915452654693304920971579230833026846916082269913823088047459890731068979281790257629191932072173708820697401737563861825546903287879545968807731976438433730979616693584382237942289237839805282152512495494760716268603915514074118215576405660047563488935101001906995069526373711517324417086777760087465895715218477128601000615407517033798515786898650574493827791091033202649970443692113343760492435163238450575904836861160820523855794283596529836847814293639956626441621289492237346995175746043488328287303695126649311286351302852746256077264112427290428671146251768679009076279407883664102336388268147838377123289631091302570090154268799726331681935387809455734194919725371932949318349792520971237713467467580813301945103661433654432355249659220852556052879490967394690315930049672098151686094157892411263139451648563350477242264868529134406294935452539294969602173154966259586281165026104702673301783245341690729806201607392677386006400147958256528441800859365424900102377759998748285655883341932377370108830001442121294741143593287477861226236727226733245718122658738052249567503692521595273732495296374900216221947922640236649508554797297125200883414229119976970240529179648657133278918674964310615724041847868337646687014995510010826279177994852196791914524496037057965549418801881345533206934329522548779530210153617714984889103585734984670350845087579980326265156327713974294581110118953864439691652954546122644903118922115995673523358769886568448737449464681245255850111826021714182890256002562782639767183360181715878269788021088751488823517339592370874365073694246666875561130972834582014268176054964097695348733440919576754232010032151399129323269724358595340966105968672409906470306064364591835487711957573997294707865031584737277306089185066123712036346188009078166254529958511273617786646683388818936135789130887843989164996839472797467191374376894031131610281317790583233387874887378013793427044282102180064808389828691928431715644115474957735857312972904046905632368802059156286668350013606381774607645373908621503149034984841674250512317499567739788317059432637994675427189679965934917123099236041255946134754678335369160691407506643025863824326555257246983232309944183063817075331260494631170800963794567491482144923144075335567802307376629289978499935182058351379244225608392072049845756775803583026950270267656722125654032285354411848959090636627808969121494057002238657225188102881654110228237930224647678866137287076789316916768442336639868372452164054551553627041608549926423264934393447035199728470354591049623894830677152043171099124490867036572386286424410601492220892959638290586384737604109782146207682998036227545598166728372543180166971648235477283790469018194927671392596366500147011550982608137688703830852673041355948707767087793913110907003624376575346378386027521243878939919681365310840017222852454680600155457300442358142274354619546258260536032752041955185015040713894847231366138289638014281874771624611730052887024455219980962786185776984740857896298924557679328078954044789056540314602223593836105499834547918361204922431665868766405249060671565513679924121726383850895053864626371570796937919817275716781245214817534511473221454107958671732680664704424003758941317974136617894197592417721993322823919168681349769336710699768921322421329350334698954339246813171709448701304872179444643804009634924293864760621953531576481254698534527439383985559952083817885837498380149492517614748656010207735283549171709874978776645961915940999502563489219785180142574600082954966127326189143375503419147736328312640500800353805915291337344539725551733215144914016086614493064061668297650345300728028893169371385096051331380628064013948971248277136927624257450924802487249437053573813420589076698236285254732460053667569925276023755582977200195178416733109855388458513601114075761771678531754396975074966445485214842362388252582805631387955682277313134042666072818297543791648292928105158658738018883680980414512286643717480774045999454495186022497591309507360202740978248898581557922164799532607982653632441025403265425050982138555352605639699053912752189241335092455173289019670116580881723089826464061523449589383831788730854893944369784908692476058005045067049984098977285677959459100337900270086902738517965567553418051474010420363974869412762420939310214356584910529830752262044658239939380651463920215410569191190965553869796602376256743122939811731238864399192123567039104184156799900123172559962182811851000011310460895349991145427984275607738402689596081320652509415948614574091440467596925748683792479363223986078087434207194638490247580606733392913589765152580220008399155251262893014624885975749387958225090994372682050419936755612314798206008630733564766606658069586165131674342951061965119743480534882925623103346784245626073438494873852936532976931777883511453855302992863132776270844790174693416931097684106957516378982913042329726910873656012893086244895748785069196969147365368146594675013845750735706220121654459753974610248947259163317464920163783947807188693967328668672145191422987443187255825991729808152982346215924119517420508125263918439404650057336293304975110103062969395083181159038844648837666529037475767030242118881268391526019371828471828346560685930842211068231678041325985580825283319377635873047198875455181547119489216639946278671620373780632967266982983797058096536489524759910314428988208717619743313222252636086270210891697861995835607679669574241686928331138889115079581833518181406408399051476664048530029961278325767005882245436782872078888853530832811262629508232815315784107964107170417602189058801473773110222566473503628606745559033775542510331827687080069408729281297854254687147755218170506616339244556010584336085456005336941330091890632472419401262568231751029343201015630202639058012825944018814305241508747958906053278157495518796593604544800565232911269938408810452411438570239365829181205475776363263293073661715765641913472974651110277437629339606191418106521545294789768276722935776087383411724210625136819434626205838964728224631324052541117078863826349307914590028299831688190853173033268795756087282784436178448418187069015935988731821299387620321571269079567396004449567249888038318982312799401591228075064912692134482372373461117068051372214878988925218554747686818632220078774606337995499624149859270761009300625581719865147974974962256908081229698490802923488312059866622387777778222937718838874018117311711922479084702255588877880193880776358417907950330824323595188771876496114122378622767566073574738541445045178669493294379825437407569301774982524990497451279639340453641853328937444481528841310659978061962574452899235163113666387081271728737363576561231350016064625551647355423087745947202847553735643821106943124391770627635690425367063428227625270832328053035461300620963406040880812051364150462243180515639788450481414843840849599751650136311881210176393868050584652787139109473458219335835327683202791197690049459323858478971305792626421863418856784715077403076099095575575490520827704521241661487845111516860706472149868544656385402103990987952564434205778359330580933818550570776822549335777715192169098151536278074363471930807098349752736379372738319829755912295662308024873460547876721515982242943507035720112240293084882580997125595352816527150808645509564736466334733629554039788359251537513046892265274412957815386630352147764172674771542952230136797039368185283856632541479337938794261753891304322745627528940477912748639974345000232240691620948711102701440293527898950501327630258888543225461441819562990650622219864478385487482569642727195075637847708389363507141029701095562436323745043223142119354337663582299408875028148708689509792833069824295182914027407015039362826368852403803908288557037348674055078271900105868750499660925708417262301287896944034824698238639738389240732748427559775227869205661642406272538159467104275069313829405818095334017904340289762502412742824663985965381168477022013073839066261210267426402782610419907687038308311036320154387401993839486932882781540147747911783282964546489993901822050574095901793540872865341911682067607590381875356268430584214888723591283795046143065313023630617725750673590625644653957788580949201183721433669810599351807789712747729744288710568909842610917734870173126156489165547934918027338788428335859013317348465513369518031535870098868242990593026046943552930243051736528806335681911907862200822983376658777450493467845257023323652038105307817181836131121567873012051970027509732517564771180046190572407336563081139878604999956927572712523439596976334500479620259299799351980480806506043072842812437701926874911934859327457175142627849705495615915601476648143702015564105579097997794970607371426297187260719560459666964822222353115700724003447893613073166282537498175813675918357179815295105920835434703113421878958824126910720358058606200273818549797913089755248060658996818490228478492722876812425288483086070762958815003343068653630759376350368549324076809978653388977446872218575993486289728007865108098064179548150642293452831847760867070570435933134832609261895305330826755800885325496402320197826182215490957560833965927894955085563699640870337233887259837904195633783520863446875855920359202571954544537686548725991827628196931892539781318409242316399032151504656563113940306630851875458106259919619991876420609083913265133211608392954395903905736629323823988547304088652659815477342178190393834928097822085833473849901338333890929698213659055623819410507445323833076931184149541403313125666536909685654485809521385156600153500083589606426293282932407028799880827359609377237891794830050855130902495393549646113835515419227281318698557840135267225464555398816776581014408026028325768483223662853976623388306256745652903947172369731082776630976765128600304077084739638251021344235157050913676420809369116856515388130109022022131404517378349042990289593282823311747442938683671438938039114331770611140644075045029868442571919823152510669013290596009189916159793516576240750966372225681243156609545477679191155444715669102374436918087774010359005434927430857649658548055251849776108385052366824576439628658530538409673390373059993511916827142171624375916820922811439788606702058028259824308347335114721672139360525403940476093280443634454664906725484619901678990498139881930052109376790018679484120755498450668390678917896804470286683859044610906063708111026157818324889067541795321448528452572543781567785647245040492973228486576882359839645805018887883528321801905131333549820071903275115152972337964178695426590083423353194336448781420387444611667219043910265146564820626009051384665863513294974256087934460910085954220913041915053162429620829900682981551135017811502286735845210849843766092834491010312094666316357884238620094629601743030167679027302478560143552718814066444474702818039503918152108235338699886703913847536591299915502921659586855196359614538394379892233282832302121387580057158312274586905197673532837553860502121484773256472750579270858989253350913498286270423720314467079082114496246416058965745378047991149954410312075157350253319496534511309786681674292521734038155785188433922581827994843405293194948326760437591050461357664292638771017883244809324000074111162722618732355073715265612563886018003007158817451946811388701786423019012927835834533974287599074152648464613806718421302584501844110218458909741919856077740842862264507760154929093240266630932997731821365706455235045535363105730168925365810579631839708227008773536961955937901928031331751430361230446233903249027277128013070053355880097447973396739208166289497036707198889406030259388785440002486980062495191174408691510873420781607571037814261928161622883353512309684769220071048232464421456014820335060029037106157024595760201781787663650369945696421770810543033919996213852390391189659248278492414359726350690511424164385815125891192790575143754691642674631731564820242477950168862361681033890625314945748704103838185171993457755583645255128032867130172713569682666214263741492585350052125727918268462343546585624194574843112165754403817729715833169375517821403201501218720804653825358997703274206576581889353552708771562951120251200467899493071543916037985918867555398617962698370589277047372855888855054269031855940855424840893738976386851501636220586268769716563272958614590953380007541841984510304165994037828929108134749080840702690124380680502720886421089123577004363349457921404311256657624030773253697354787732368155959840349556508771987211810214565363342642339458792321114463033704739867816253860177832694075747321225374403092532778815576684055573103657705176710222660570599893697087896596119851482264614529373778239127583685341713141265349091703338112976078489248844924002835299017005935190342736471406191320246663255299794903554651437863963600013778176643046179587949962765213671855107180818544229738247893847833807660179757973044008624211415166829941120388342564278618641282738113221173161186167058685449871888985335597564214341699510624874940415977748762772939030971288705009433271979513548485032402258255284558895983992652371364092582212934348219849034772616063814675086155142979913973715533413814914134643404825984708291905439659491976415818882986263415785209190094704423773187623804953574574051890950573165589931076969863248398759704789718261882826744422324580514588499894290341430905713513643743508148668242601939574301633779321173627580276938645156518314693128235729188880800190410957017534360448821783748414633006374384227298322874571954898668115392407358278007231733997890179670108977051527826174393654782584786084566671801943124180432096259245004834331655741675673851549263201704680745069737103316168355181338455866009027971855642957149883152310734159884885998591367376487851783872890069470012684459999085681192276133423690761308972950993149327543131499986374144682992240265541372963585807654081899990011387931050391338997234485208552491464087230843900426378149569056075904217957163746131136115565555506813960110459111123701058893126166451350403646587412015439967050358647959586047317214632354183713481830872448341731517527703217308292908562287745198697958486182446919213406724256919920558943572584171923290007084036500839494358576024183944170619126644086315324262509416716214777873911137496505132657766565237403066912181795418881279853037249633460613473808758258625863611192697387079183867264574973848615915477014180757122170088116549619981921333691450141031299724447441032715643109725391993840350925020765336139130900104024231691550263516007297450297460130250012005243311214505597416319514468072481126524128071120549072281087732244092370443125357226761511098472394842548891425084871596040602061821598244809723925225670795207680123444710954313458356558322623110917389000631670546851301920324960670038642407696781612318204832710919055484092755292927298530426182540936328670582298825322259657533529384118109062067919281013318121282231107272155931906418948725941020070112635174382079892344640265298479824943850061516154538988793473008370969042578934202124599240145560289794543752480867455497041589494954059806836403654773069651157296889768970397575180882122102702276908911919171178331049055164655072643137942793416413578903130782662482369600271764656110253579600671713526703562623129928583293699011905085901213289593667420311731290447337268833148862052358705949447494305820645145496941904688703696435993886930347082817029744864366107249915456360642383105187618772985559418217985994986385158761272272016340227972104026826931645900791686172284458507072768130915035496741704087112365023247483482530506389406568368434256469663515588325323537196403294248882774768123622820770271373514580235462937679645424183776106198613749850479499445737139751909777221097080880152156708094160387497537728368836227256302261406097382706000305489650006383402446935951491045692919002320792106353278412735343397354208872396057710091064677326629247523540346747766269534897209484984124461739480854164982463669306967552436190186155096587643908252710799464245197277854469925941369587477241001786192628228916630067131673697833644931307947550415160428196223119960139813970681076568635767343245234418107029481516640354379717086322840283356714615922670017771222466205740012306084602061320085575547326605848355698550948442962868547885954290820520947900741171817201002714379052138158059633252254145123180703299432209285473121809639106154417501840392593310650342555865471875240478683580045930566354224723141596474278341967868008442919084241367708056991976568671099965355770023805073468511583094282785444506339672440959251061434929206289400603168428888417240496560566098819358378852982909580318339009906907536076052167309197636379715372928413432023056064172409741941943325917473076456999241699337183596856407052529888883296749225352063408587639320252533861168941890225546078154410480839935403522427102084382849364722164304405038446376010052572427566086464948745106166245830207021612880508857053199618871235956951822417448715126231886337116875059127086135542436985291141696734809150780684901395117933671474792284976309052799912714153721567334296483202181642787118733409766010544060403049237969619703117432015788428228545126186326683051078316623536371633958799748557316923509256620867494219573432857575963399148164111674437746426393766410566702739449108005192643044647022342242086522784429587290498878934304042607311858833546035020971210089056062632951070858494920935835859561799650459626835325073219483522805331604802208721944471519010208850693207745879063488638752519727318482858045305390993893973089303358678074496528586415311056195136958252102705104860374564732123492870635950770983005376666821831594478722701602555566884010463430270150641529434383082526426061747176412241675128726901556084011190753864039053608887162668209223113539747289068537513771256997107417225586691171637097599629625161477062539665156048459692999182936344916450351413230043376997326127343628999095749003160838934281360467012749091675329953431218705207729974200710797444703152470857398305845079122605181415690357180866702009118530684028172079909739216100869322914850211083108677651484059868486530613278560060234195314843755615317888582500749893364369189813791164949048860827077933110434091222041281896998727364960208572522855254841306507356018361819122270375638534691193070392015183643453478233427477569297564999047774737714818499953694242341423795123546555189090888648041104232268858839486535353903073958229545325677836758621131130543822865395257440886482034103288458758708340961237017301315609936711937801791541631216300536063662392947641414752743083079771368991008346650116542377230525454013672832189112618507128051466029517379901281818399441885668452939109033248849046645869393554779084514121085484260036701706087666505466192429144674291682241592382745270620864408633785732727678522275977164766057111370362215598048540247833920615662563707716603154726505914324230828372979888587413508696614869643371525367413046269999160059267432504195114813639349448925826753033258539084797764005649502605542510549874701689116619352363505119473492380036367993501675282904043321557810749225235646338421949633267439717148877881459721510962444504385509995527328152715423584485761063627540744255749889213927425568550351700445515929793568279836185289888231304637525833162647559349314856382336989296002127682996468852550267488762800159942616564229924602625126020133612316233511454697602894035768697360933721331330004908444144962344417554594088596578485158274332655906534200890892953245405024256402360018464940195794269910637971722906838635691950660637247096759888018753158975201746996149862388705996711404013344286619224980777019207777067998461921727962828144168903652748061900938754650622917316997771138295743098933063971328507595807884103855200745100871159186282139758522645744190514913113722488081911874677513972645646813854122616292904089427325779284260423082456683578408081805504219884460937808389198763592370634287868027528238824309761234630311196783240895658352914979710088607112050507408879221679998136874848256107394341693702117915263313887829264438021747928286624000405628229595692347582557458065186666094287491563325481291460500999956439083946833572585598017536104171842623659977769239479057896609820753970251185966067771138707504644290406022558076756282707670867733302550722489956248386158668269283405458407062114650792461727617673886555169166973829222075920878166670089657415688812073975444448627434517611136397553449033400649548193300227802728434599728694497754721420347394523518786838043987667263416452663702886981785502359511831401601773159958192160019631472416406032624521438971358980982021803134031617276349960300432608379604866695884837057941139247358538334663150484978671303968715677617072311807047705440494230671437827379288751267181240105240948116647448740100300262534230586532722796260562793482107121897379419895859850654658797965163993018427884934798544900987114886964011203698582788007480134861035661922442452221881817566121725245127091733710731945662379383397667150296028277135441242984585827985354709489090061560533678620200032538532611452754889403517752648547089432779958870919735689670431048557891563095666892571610762436864898183948076741017650162623122000016437701089880662620823613091214651920390732169359528225179716800923597960990428451615878806810905954815286235704369341447662422027803424272250257887082676237532641285401001400173464442788313958195214240333213616448120960234399529385463920213287538680753897995135979601895849006489341485313071047637402360790721183156310308083115661044623737871745156464620849834591975497347977321446002330706132972642012191313320549135857868842349243582604063319331114309954927243414406279576173558766673929382290116046232375446383917855842227733507668737558995707676001419080345128697318669890308919435448296880955059930931491427833203296094930691757917996988672413393053652139468312753563018790188957708056299432584124073586310675878392079182577767407328008010377660254432877874084564037915024613259034105387328439555471647616026918669856568021788674133816709746041361579772793648592623819244798124123337644898306746552315634630675859830965105571967927764973410920896797500301199515574598462980996615535088889835294012722286464736163383402208598863513424073832863221677744538270851397533630829371656135307521592041489745098142999048666005805090880018934143882660180398909883017128747916676777214627038945096828314958403286608134164665177113202169048463072965377006157520802267297538789426028065768276302951421022970071510491977239881695027047776334415423431831380182032152276313126237877450190193928598102386960593239828024407000642274945812791263428274842164231857430082142143314736145052846940092610061634806632386725030217521597383432449481704753927731543786725050726526977261700204899678532838395144312660754584239478152664132772939976539339708774651364644883391438437702841391932923621316172359167985979016500177473711348572148757863531416543302917449222929137144300382010561805188189423555216676991074719492985009533314989272195039769401692719466372384917735274984134478595811736379331947733652877150885011837039083030263631063191463740839548595417515410105548855286633286230174320051326680912544073065612586082181328300157048859653032393504445262004474590680697863684818523989604292695966910312581366005235598053769500935570604342350616462772842719618786963269822096987043081778970943469865506157171218999166613058883169342454043630298665583607447611132973827376841293047412100976185475634107294440401072866180792820224252105280940793293763210873991500233792530274516297145066953301387681311553275453138736798356547573699051319924210893826538931852565671749531382950950219072897733341375535683769790997816313327753568788560460607118339442635507576703506842658004925766820768727756920167177715082094796295990615972544369325773121307969092110178977474312517565634155780473537736558110065169092518489244799641373121499847330011647674191536312826044433184650731784939154041794671267451988838301154104636135947383745052809954790854998043782369995325104581777105127943205873119958223116324402478179310262063733050315962338687636369779762168223015931626754669165923778308021838396883491267012882535257157547632102990833404806032921998667150375315304981025581825262581061792216036319675788441520837691646611745226432922514304686986346673082222804568102999252448981396827254313719343287760086838148330802600895441999470125869573263390815351736697950437238550459224499215372941353398727100832749368854827667429525010068248174498078420661125937651013800361775641164377446730490644542890601182826584985401019932373227175278623786056932935292863328361766397335848530086089580916179845951041773910302552983863590259776839780639180384915163325123397915103587425014125742147801200759232987927609341854478643172063830472441485827213080463637524364253327664232635638463367090088272806545495679777167947558874773464426404618418964255026174500218617656470271255630139505445387210250745295340547457184547998314746602914392126667865903457610333569480052157331084011233236563885603403810603880254347129945225516924990004723057629674491783080185533747229467908782613261780908201781798657855175302216069377091300429800469176733943564639755465612491589541050596234124632073538883744137999336381062505359442752378289683159288442172232352038737845407385725885881372957805320415699229217030959755669944841195318960470185403211285847003854298003158444015035463923686787592895492443571599488747236430275694012359697332603167003191772984953038182314628514165425917864725793343305880940505587656410743025618335439381128465839438082680953963660408190540015402338538334383163445262575818767770136026671416047359207623990628634703630930223527088006997872652622886278478263196297882016982348628153165022256946722612480717090864703768308497793368563668349370729764135003617382176942082412477471322509548819427537634814635979186916043191267482794442218633605930166580797774947887626308921644486271062724998653852486028105773368187174872383786547074522071645218503523410988343117976289947424491323256734313804125507670865133059777358079604106224148957541393005290053087432050541229980681178936868658527053506594237221848808509710624580141765974154262009558112951104148996503137316959663515216118059263728939097659463292220194511287108280512947987910881909354615973439188406604151095901333357213622695436918667476015558612205181217691571512794334403693989885084203673905877698655800506802751200971005583503384336593785462528510417281742509681912865681689273809123636975445069795869805579113792805710345065191564047736871535561277288806602620630971923150965192742970317305197604900625660917104359651476411638081891870238329115232145028534230182515367603709493841587572916541030841283230474713439870646636910732250303832103711404712422490740621767289095296679266969220828061437326893536504720383516735160444759903574878933374309762790425516411193397835119296174505497596449864878270599832521717355802678210973694833632721298546955868046425740425941264595135285029391425077104999610850332122339132507732441812063378409722397133053825114835123998745007011311302738638239653553449748807812445912628319467398139422606686565640482441636162216397992045112514618017209636109548659569488001946416134441593073514402230290754677018487954687364764430420518702116313103588112689004780633094835141069912491767866731748632384296575543355532778669783134669451263204892306199498716895803820220903193136330161018626874958984735105641051004995666036619540277026206163079018114267043089109011726479954129269855312585211188262299450263769543595561085145399134086181082562271240946948831486856068607468614040405417642621497729591010007696356961500943554405906474530690664355181371374363898347732823125488404554759449881269975189915150525154235567296965148276131815188283434526233331316540993780966513979803208199436688962753281304656866099428535763443359175369186298652303007767380158982332899833880646563001738016241407821462273938424205771943036394077376281343545132556583913055143137780525386797698654789633260583098620494342071797262060905324259964221595094246911786106980797533110859263026710511738606260205636802107047775201192237353683817580728089229587132251637979395119485934872738333529691282053627707852826787990299314443375524046838787328339401491525717376308175160135897863253457252949219740489490305697369956231320121446434026620439251938153809889751432165781936620224870228125914716291856034597516769892927038220107529047215181163379436057332020442310300967656126667752358676335281428105698727975773786321740727589472208823399147398215553706172650539542005420654661808475161820245100329358488634401451466778788021558565260620906229887328228230548229989040622055046866580282682436076788060499794471140845736420284152650901568214856964233529266286316371201040906122219776653133811340822092939245118035395950224555034610347949694317345840668709778998578149240430290216997238867187709682374198125151178304004477769229779080827074219031932946070403671752234315435566360846772061796972269303415821088115208319284943409192914448718784721272708936493049706277204118055994391971777329392575339914078737715435353093281915633709207163708234713778239182457289085105534456449920483044909221650175824087746871595997396134201293465262309318042263193374398154116684715398693022155807335470635750134051817882408279314177539614154879155005334147092646685164087828609390197824676028185076469178993965287930653313969967565943128050768450777390836269014447904728294897343945586739800258011887813628913709956725443986377428866865501100174846940553026398996143589919276405089037883123908644869492396268388988059672285782412335171422376799928797358184705676305515692742153726264261550832781670340602531553920460302652363415490119043285913647249313366567701014734883879605581956462566703159949417251816270733885847765022609572875044713616241973796029801976328306866641763711794744271916382332772246173835172731598316508358650051048538854322544580712141276906824024849860901798519206894352872392049176682225868870749074652627953909988430314545670919912040010000157484892852059908184227785864966854148283576782710526264357971000693888951998283348614358757344555975092077004194588395236164492792760275608826277291797138385646123629662312332020954879791286167944111168051918235750802410703105103861169651829089286737394670243385482445936192985011293918342216439173939388401047569233793821379499443940566404362997693368585850352394067280720181240277634287676654359127677376898420177689491535658878220170739061464143178727840997793404340937743590306760011146641286080711349013082614861803827201717358485077365662663126135033783198289125250503066400313891256176006429486102139748303765710216405499339697487178882421683137015610432631787838432424935171889575318590851280753014014123088269996872575731752745893198510222658500826360901824320173023374846502035258326791301001539949395625871679388680325495647322222204289524705256592251775312207023352969200578994350479320275064063029660504616345356269357307517003351845375045177794181821109743734724568274012990184974904838595655864657511895686550104639649366322111676571737140050299559809426764516484195988298221607001581682511307025482475790186669911022111853890748777473590073872752124697159721805983513846841760521761152223861429793462222892384724764732657652333541650468223725351050668019751564072458581035865781514201858920186204749115920355338672364897998555014971358529914976623504774448196206996348605501388520592153783813536268235405459326462468435434924157144325119920412744988836497524895143256271248330164098570981524160350552336898661692859800116678835883736666656873434835076819764872946939194989130979061058158465705346508406673822571174863253731717477973563486295114382498172635109156113692136511872975594425404776576567693319153751758903192969294841893100991043780293490154262738474643361228866245605126334317950402414044659689987608231498378302618674429717708075430339490403233043819500023894040337149945651333154453490524255058990740491910110725196131110564277300483333644298428159284618475400445977211606089112833300049302293534563065694255883931286288774752794531760123247205006121753260549917845416233772771657163289575648447673898286888732265760702260933350845806661015417207804776990609562767418899784554339171448517253260460182454664734704195381450076810366510544075206451790073309407888692095189372697844429315973192943188555660552225306127748670417170970635353104162428443954163709883937011528372632445393023658829245217771170148066746341945193918843846124615954422416184187152880723780069262130784278430007040118682343393056773478502228505759391513321616514453080696013887945608174306781355145517942152602848743122296348183725709747396369046379720081067059495259906141733513089779344831067233622039518817476120398202103370997817538433528967685377558576994559612455347330884403984263073906067000772054615124100063694040699076076237618563267636866554747124487222317718142971599651751808945642160822283119199747727658661854488252197628353221003513938587032768843021535085301358011289073258950473421144996220232958472498141066740097309116628430128314273326288371840780743049445771442223350350822755474731081415180686764124167168475627924321174836262156499269053529986796826960430340815553773920843036822854315268645431371723051088500307304257494023584636292542388064168052103467712924569814516098114648060667540099682484047433372275411223680431704485323263400004948655459183666823410043104299067806574667287893282084713423562405005449416177156413198508381409094644777943652472084419267245738326167776281972741565305055313673197249839166861071991262852565502846810580632070512544089045973201903451900556085078503726640729516379392990459117997541548462999303263710159108767499077685657500748831466215094291068873523408203188480192836292707391739935419763316063199465570731422425808382596972572722893613630426903155724789835574247377964070281824666663804874157984673793246472591029674369192040444670814443236416321693478861548508670688732885335099315753933227253286691825563621300042621277091351857833187162764738951351318562690131005258761384706421179212799449633578914206398630006846465615403873782257055070388571670516119602412366712427861971470582465497971212678146850430065361594945497836091858949290222064695661031400786324252150646174293836844330283572029068642267949530269282224363963999539397387333272534503444122995322683720059904019014206540125181503848945577943456377685126727349821188325913089685844899938038913461059483487372508850398316700936958804937958368518429701692316136140875780724438038828577980357709622741714724036982579267682436217876473782854981111790657312446259438304508965598339893833370811928572469643085059308877967738927714341679805131152494294156126624115009638869183058060628879014764295613012468171019004152535255866963263866584875579654697027497856830261104074930854795699763099281681899156377167848271016824856467622309464674259190172143985442815935261447216460333495963185354800961435187291599768370849995722859918111267654917860725043291437638297670130220748031746720195568168856096455868250423712793145705774010235748560628470946920656313169008061985798673973671085444487908240201219575864962452943819733421436552734346459557872948357003533430338153550115230455048104805336177945442759202167734650100598471312244354618115717315868394485613522706786431164056206696345866474321003814862553311081437470138951889112711525380836172016079201836368818103566726046043804350012316547606706625970190433527723522386244896792870446166626895757481463759791358425848504898096854350862297277331936744268086005258930917491727923993751896922904025242057970676278762022225506523750387685991954691875933828526842537441960620301436690306153448205301579549805328282934886091129949801215365708045089232162283813918235446816823695210055727213904823190273834564385197661331442368886720351731736441097262448073159741880797230539742949886859292999029766136380013597062204126671169722837014579461043385617782350748841455260061354833163536010894944258104160653810960647762140123424555166529284206972563045901377908784583742456088472439266195135380347058471771646697567949719112614308890244331425181224155285371971566229852298073024604358867182975624180289991308384083185918914418368701230950986358853658720256683079157317601892476096356425679292897754205330313578013096416438875434440248400126611006446357421601909884746106226148540598162884306405600672006694883671056014016475914284780736017888923451034718308808335674959730049819942322217766304509376325150266756154152860117767701338099476160648538811129458967498778624295835441405840561285312311486937699987143070462484090762360395462879314554202976155359741526381880828027257923882447652163059143880585073794716208934167287916694681700345339625820380447025806483215146914849451906396722753367459927976213558004833708605422410820674296357070135614626351697991815800342909847130412882496807830010441858041562452150557846053485227881371462686222673363286587326991171491969685807481994729185613077713835649902525832930274864840862227168353599475510211186029904879606997898996151565160328642116589437956255440920822648394082074789190886961991115393821530073363393888285031916496768087784149703760302091821429006398861063931038507457126560128151209537631823894214331415662553792125254721761544273821711174961203440477615637488004820361408624392498158589018781814442768457144988552310662420090615892480915425943420695670492603858775569338284621948587182576978088264316812702536423125260825343579007631031977059343416522871630970457818229200144652229369159384433910619219085953720300791496010553108005494033490360567179577824074593515231704287231171422425155804749167613711657825832333866128928116233998744496832490172058968862307966456051841171989709277645528510259498208627852668713394256164818710912800546291063613666267958768942502535832899293265918826916011721168752302378886649779557678433549655131356231963637673900042852982529568679465039166139111167195558878354248293537549741337230524881127136145899935964294263564776641858976408948959076198554776441445600162248443368472275700425451040606590068246194867289083710383727326248256820332810738905178175009671523371106367925519039327075201197609683622638754300475565255643552672060501904628066592386920145402790805873011256709040344570968709332014653233434966506328310760588657975876100706688484187159322570086124100532606468441089169485205462147677640217961043034281797217593592037357877984899644116909149922774100431029619431047572888925030040530801477854564410203445584911023660748091210630358192771438196545784565395014133142806968764953812245391897640588341451467671020739964507556713947006472462783995784009621060084103661879911182097779663315610682731796203803251363513508044853659807003103981081734763450507217015614600093343557498213339973016245863976468761072940172268731076117726422471082472650907516087696222853437073283169553317775565452507192051212177974177464917439662387354814717285290241707449757783034929713437331275399308455085102696786078518485688433297881472325840898909117843720895209228255003936547647815347083464126779899634012485220610869557528053436816073398463380584473030670191269579188146923492757771908000577298449620516967321020089500316277751412259984748625520557913001335373057941943077512931845750627933390744514754489449544169898436243896419038515325368826818579927176553388516605400618483409142822556920992851825621102038716642611902351121489332038609121689267074808501273422487871300277947603019427563085919535533823436634719407626809028287903284022478452846915752734600517744171502227712177773971955609579043817244141278196222451176620969395344379862490094108602499276172777081526724237214775415013539560031964368982088028441467669986620822109043143282059632755791282069020419148247032962590092217411869911864807220322924621860463391488027212447549291771457322489027558153915451283537881176521431344428620780561266083788989424568317776134566578748246670491931688386652854696270768467285886462845693837541577078314640215383607072938379678856792016905621609720233214788274004769169498367976001360068466391628424266025075309192473812402344291076800952012660188812499854969900772685665207879737262685285883130119342002907805081122033720672083979780912690366497396946281763217027887484510753012567180482279784521803572116549614449421240547260174274150943935566339666009964385359808718808775299803044690011623674170004597002456448715676235383676566605627079111914152108715383201692029938187965582337334797647218537168036848176954585423942603619178592188377169196219168346032301570660015534277751015561843522658232194880354608527824193305269699301942067454975679449006026652372307524998097239629671473333748325493174466167402655840962875348282758685053006269662099149659938277021139630889398627173165491846467857301752223736686670596693179434676391304241612838524763801836966741295989572713931940956585280870482981523888129874824345903516990043906977775648472752805221215182412100625601724755150927295966595447303980963613053012717231636738387497804351214835029107620624029257257004528794221571721912030600234792382153765856767964357340356813024740203507299724388702134956207868928028748495475065601761915855500093285033352124833520339162648236759696951809662352437062349368671094876467169829731452746647633398383056474022334173616958716313414628496067396343565831642195897002136927813157345137026505648087741371082154785612418621671953833890299864513130018328856366309460861212279526486550451124817437033415281256141772355899840399033328777887189359144530118991789154991903062521131687237272803015625356852086805780920829923348210162597344521437155886417716857147814016038000944958825655306291011791582562683232645255815935342513375383523300470123815462690622391838014258071528597786997228519353947118714027050252694580334892137480677099629761611753001490516686795320711228691410498901248944833198771803251666415956645496809357878499056336197211492934955501736392807924273236057006131986536682001442695469129216626768438527640885817586480181109989207365351133238844283707511773722668182643955521977560202911627922065821463601007348790843245956888933479400165268290971508266027362244128741129724086482475755940257233914801985494508140330787949134425098503874797466655508329754356472180357540792285827830811880260051408276724625829702100906293495776263441112642704542118145049251845261253368481475945834056587056614563968590844301713128830887129921955700980018764925384247274967050723533308763920672718275888914541350484298760581673965485042058063045462721938453024339701985812235988925621374488093471693798187369474512143999828579682133352309827100976744205814988550094520286599968573741593581787014261292273277868544813456750818233494267091401827999918809284607014597801090497599065808146593886664272245722021435546438357097979644744395990073407123218472055867722759254909910858022066609545986031343691928613499151616432823145842848186819774396293456181364722023001283573496518113974302158949178164196717023217646561010810299479600920240524492301238488221594571285396509164245623413929621472044473144218971207886315514199475491442264830508443158230550055439533840801487528611683493615095592879881945983524203563304840508130265260769592402445030311922652348519521030578602324714688473016095241281896183355347120228139185194701678932134325501552701891384182099969431418341559621953487335092388493986120356744536718926807234591063177568477276841713283868900953878739239463467720670255449994978897280681108526058538594106226177274734850647213133650820621677984424733758270077655567478343718615349433787631934349350912791906451764742866361636819578515377038239036874468035864491323728338395984671443297105968393005565079659339236419562531987555163573035447195776989095662806209536405917020081454423914166329981373913847439473170811131333114097856893965229568585608404628542812872928835184105867806346149263657878757587741501573409749273291448705846813178335450490703948395369489124543310946681437838589328397014536559593343649520183935772679791499586624573474516623773780694305114545127359321993088043965894010347895535543464082280314570807608932222816158105928855300753798918967234825240050431603467377981543466753602750266147061569303112042698091273449117022210055113791848705714480806064421035218517161459499025901868598888576463658677357500217156325443961811401291535554429425649302930985146158345377542815677644544604661553616242671041620666959308116963166728735312597124453523303189667493223893325074560597189451015859670447214739843415512455193822146788967475098790509507784704550621685733806479968481401568895261291497221911551998946385431283763762318997859226554846896137070933945799351892197986978354617206659191714126650212986891399126833652982139779391277383659319019633460541803691524998934263008710475485448975317605605676141858293917546535086842540738552992060513301578537907388573997122604831001641329596774118441029762155872082288781499221202895317210516959179154656832156779343439722748824213844955425782548953191251655134127763624443854366171272146738132921901733502134861757915997971677476660926768028765961518508417911917773346648495694693017655971111173754200024482431218734924651167483044767176635643602319199976964156316848944284539814436998241149068810374600329212718961257109703867617372325006630868211659530245122562669072562877214649881203350349808193770148152335277300796248933316842498874802197719951105531031266790148374919194258362209235967330895291053012179432410114256670964594638850981262303678837113326658825282584546508225521140341764286071412278320448811096527302934587791958551756849886213806552241221340454839073619006245997676694733040595659357379221820557549031942448922724323603817216847196681161389059775696648812075373116604211873975453581178926818727365357958215207217191179613998725423500133211699096905496176218552120094204438386789706917271552800075331613496317613279073591222166538024778875667987148492645154216268404673983333759212288739422807893614753546300969631053640114068975097141206155394168233841258373503493509254249087607292830776201616116756928408290008561266354393019045212654054378873775451538333537990642331121509242054628470366207670821697989368560065802810330015190023570485752479550707672012979994822945966431619290076204550809038455203262787475766968676594877831656487155312863159127899042121812467717394835708498313890111542000789037840054722570857177667502729958870521652773912790945818862680520930321704027543154876434046741059735112581811975974021887312019537389800257170978318336513065066118881989745075693185554315955783338720774114939810553472690940895153898358688016683806375109705821988848601893435692539841060864247486931253822583032557219160639873732984542914389028667326075046017048130123798614769120338909918724081923078990511463697220054686830915575803714996405069640464732854196882440672507885013472788657110111056438589051464277606909699753210925546098450573716384446748428919207559289647065778058559455399753046964136223750141117198141334542909859160493130757607100907013787155625682147635716351394285202763784446971676690596590606282517474797023029588685267665689397530027398255795363519930269788178753215104221437538886539354424886159274693583659527408806979642472712598913141659562824228177254622589183580604980736046807923070584097799579894478004609973172288588406601624317383335185755851709092601265461891432750349450174534729804815092383202680841506681332578929930297812205050658241790577414176593900631764904202564263429228426766261735137126318209100101910720315855181911661303478688625924634208069076604222146543767155339423775873592362336130163827138416263924014297662746294776625029818009662918860235361915139700321227264529036593010274555551146154136342894887826290958003639609832130486608014555490626130810772352656755279020142927213242983421819376769154473990608442931209032649312478127481676034521644486827143166514290061008186111516397309552393216897428002860845219892580850569441019942660626094113577195511479377431666096337406145932650431415124841867709154955816796493939929816141896880915712505662726894930961164211407125631192543995700367774308884014713843829387302281642917373063903339548136457480174408804253785391062839363325189151584238436550823928827731067760219077463207723466289036935151046048823937740982343413087219972882837526040908481551054876867185628584055642032133374305394651516003388418408571081141713568733935903711257083218221589102743816930741978711945808952448821106092311060544480792150906336102841260873015400855809495591493960212525929916832316324190244537383729196641403034598328864920393108978896664272030265013544544631756938998259345247178573943160461982050093176090987377418406049414152286184650662531628699492140827174059421827389275307768187988813120964078984588516437110516924276674399753467815368825080033251198378489493509950514725268406538019548290907165644822481752441890655374237357966286006855527521663278984309428268043596072491464428098069416029384753184445093862207925007039780456562979787023328035096901317163165807720908129730306810894583772934016281636244253866842663455376539678676370570153962476796732406414110426575820599308268920108116185236425416115786782095783278393646801853960306301355927443059298403644928050015901869028076761645654909062564159112898271082715590250342887434958156996696703387513000529269888270129517305011026524640799266925665520011954621918561399949200064323819025982920200438592106339300369360419226319077989641261387695035383519628706662732824729252699839418092570591123493415643940442303081607091232513019546361090399147558615865758419175284861661507570046035841089981330973311630378249367167016779252861046283762699225093848537252651623383721668152179747664818941028473918405731177908745390237802032401369231219312021363505894109605102684886768544885626419036098442453377152759942396115962081189588636597232113855990948170463515021677251571316349284449815086958061022868456961348783829793334490555163853482448032425701343781490415197728982296905161024690010236402444513843477383943896402845009265714143534740476898360988990226196465597288763182885383386000903807863973702317015378963953835204483997043138405544901914506125341059149211941008967113795774809078521001047477434272746368273409003032349199885618798236111478435156242760118082423625053116502041404127020880655028899081014940197296868358140092029843976481711038366950343730500427374905371367881204361975073777778389997185174944064098787700483681695695240007830951684051352561440896371958890732528303730757208695936009447654338899631401950274033739449683416464970494195040673198336714100696064362912413624672147104870616238816591948476294175461531928034377659464529369201610932206076945313064120330878232448033258990066106026427883133219597094297202495228720789851708280073624301080067260245147878930133881960974118391335930234149680590383290705347931202915654512780916524014140371542185033113763361785453044964549018914356050107974576034556001956575461233855922742481383333609001034386434700303450877444684802630834205517985384637358347880813016521634360161849567617564059470163515795424653215024881687645240512714248650227087573410670488493006895522642230403602332413300893622641877748764499717622968387713874688128792735964805800609282933262093820677760965982928870950132635088371269456348759092494644291155128395128190023493617867551463323299256291582200101305248125514147498319441909817296585123000679634239873302222092992045638195071764677944056013221182648611366137809654764420606579881335420260823720448888290722959418651544441874285888668343417842365845114051793594753679691473943569994740538698917018258534979190459187906194656551872373482568218781469873734610806853524589854954354931972590788677315325003929700144090479692274267428126664425223597096186457643945811931334055812017036392208478372721814072669769092659312159089189602593035591333847741564123974469192240103830104390697454051758477756694980135883576432503582758428703597957422607831084620348921446224614852444557714201004117851695190381466140673467214099432350877046835827670344971145524617685322533799651198947714704748181731328224255176313165507489001997695863660086086028755022658244047741684852975145228467764064113939166064038113351777948156387017063996453047541882210106630581207522145494974999979995722109112677963987740260936113704106472789618273013419062393310870252905169302569536725834203224562947990325758314427052840933685664848579466291660858852719618449759387730098628953216837176143698365099634886457326262001609960759674029838890960611531533649054980786778608782082045639522379358587531396555009971818711712138749072701612070180406350492761496929673013358404775628844934004638763544658508217701414948002146752000844904440878834234224579531212892890751137953405418782534158960454095643960501405879619910447200676763543930219844545860833941903918798899340795041378376542214773007941399482251562249377953221508065695041816533354274616672276585231963914795897387517447000640381808134866112195801554691335948988668797277510371280368090006204334125513984159589221866216246231409758506939945117171904808891730002627024828190140260553575351671026111944578091868674473580930888202847578931370252943353797218104493113426307413250021189257549397593243477331743045225000402995542811423359164586682442630956007531812332386691644664233110312977570445624261168864245238633922214039150798572017248177161337613696060908452918998200107916662697112214130455231487651553478072606990858773483533002186942529009938918220488835820162936657966888986935877901065346297673231670701747058643984713531225694724558683590500150942156758054007893940136876977882232725791441074937163786616016057848810725510712481605313606762492251413507771616790359044014191429634308312922154849451709142006565450767750285695463760303547939689337073461576890040949716306490328335695089922512913852854793893164943919894076811589188855163174643171938027251793647457655676737447586230274856460463854155493163652441200363968223435016583170673114767724145569362468621045849237595226578972698526742025555951098143897963466589010802894303892683822462555426606779823238249059175808174754101397944989963262023167594541056676921873793235463097061243809143619602069503438267532565129723671838485186897951058355782954117852496740354827345073791625471533230125041242635119297859851518407880482755503604256255150880753381921633083872141284712749507419216030296668825743809684047257642412084397744083532496271090610756002946241649298409584654421203211856296767282044960447200720614051176198038045206131591323629917994708878091553142228257550047786755768987125340838088885853972758938175950020813258496963097545510656007035611185884298168522743995497656469689879436110799517314984396855229812048096638557479513371164377562339820627371758875434427529311296544019812567688328061064069855251947346599638202129347907432976692727305429439177918136406438275251366911005005541194456216794205375761912046741295496110240437984105557966290797235083945861349750197214908686805885687168408894584121758282066461780952138587286687477668957921796258416063915295233985487043694829549092524433218021277611487574289307730473992058573023297847684783255759143629568768663242210464928749600364546411245549059853183030294024235630370965077469562078920813742335782288583344838606006926540124912715376786220980485993743296445877690036042533116648356648417996930434931631186477893640392602829929534659327166028651963920952402495402676857129468835572844734329614428407214352994446635768425264958174268725639383651647479951179558871842074272533270308761091727075273572145634694789980690106529203174703398298487220287012553013849870222503451984076024350388876126563679570704573728198044012567886861909275502729794976959384133485618187705466030814045894713903815097945433678909557903632341416255036635414637054418657263087129474240077976370392277822228221676861960038284833412606790571991147981748543159260597689183952759779695147443918017354208204603111186234930924575427545959185985793375539584042053295675029306458571980746203393931556694467545547470628979112015893402758023457744425814167217534240817850195772890067756811926006600086466897475497821376607197971028929973573657415929826681055517889065996932914974510700916748032899471029373379262223753067087257861444217255100212858381694991947515846626272494978291800586842861778831253151815108894495659965764122880444183277793298248699659974428999324972412141390232436086388684637414487822728864605443463452507949571822479838455467753997317764026431831814507073158579779866018478802693235420915926215954575376574804783212784997481215646065646918570225485214442910748593559311444437497942292722629700475344272377490473498332232228879714169777490490080232624805087159819764626501253480653068573724537013905523928967385342835827988592907692141200921129016003264084002332194278813595565324446710175357360283964704629988719617326273882499130671484451435298373865196626774068004355974959319808761329888011095459400172794898099898144661487483057752365117137460908936698570473701569324522741142154037764893678949308931853953143475361191549081808067085793419410388559535316189265516838859674535327261087461990619810661481574358949065128983656446978432078590960516691247940759390471044124530625203684750137538988813346441802404485566700967793910001638258759374372157363252830286385948838029830386211270085710997450845853876218213242574884626772104996428964952467926328218890506645686627898276456373391570146817371861089691817215031711903801452535072688968073515632074337196960640707231394857061609407811194822594643920442902282940818688475235872084135049637213437188633391144050612759666644306365271311190656386761148421860214185324406782998287744184800125419402872834111094339810185290080737541684252329977533236840066046728937578792649136183881142396159094079271826538732038166355646449425284645788244052103892770825283631302585757422367855152616876450348974950503889626611145287964840539901345054206542689882427418219863028658656333566495587329539614147493650543701145491626490512826001362719267468766408414250066363961658480911676753059584014824189690007056595272061922119703024323032890898494868289624695162992787569536875594839919820359833674634466302782912660715201049948923468306680513831701651655427354163914933642357983925119925047169682355142222023140169644475915494281543118558398401853031733050749633260442260312475698228602328728768063448067216014315780132190674585860523408861094839348183510176413881537789435913137487764101743746940306416003564236935211970710452491387471568767881875374157439316254990511768557515698734704368197841339416350611079843068558430448450732600439956686932908183864362801746684682720806443204552267518084136897238075093247688282290530655292840027127166891317921220742683098411628059041758593886671144298679931687774713873367170813038151450485810064906035236934387634216917656428917360337027409509275137330950833277257763744413214655457246879796448846616173628323910126772085542351849253426182453990671568936754533947281917672929350655144106059567321483941608142751431912392047105525954649525796246307241913356271433466487881305585243132079624401876706647255489452330935814065493761805742097436510473768039579867647388139554507643270498853322685723489231358523631886308432153935111476291535998599915655446177751824124281491785188967237350894673228034330739669348628931144114679800556599011347548996788830428320999135609979486855452569852635363327855204241485895848808137022342922314827560205511871282295606360274374169717251103000880911385662947176203629913502613642116771710384307139343327709111545056071423744070791961811166816156211938546017757768811314658497860458484211965150053284480844367689136084739813807710073693803855756109620865921847559520341640562819839004702670170486483049047685669505570102719778163703672940929729437231755404216892672359344403540775027677599425459463847897040510336063643116569036330492177167396847771225795978890977579662946108099051258408049995840059733596679312992239556965382945715405409911137013974718796259436243668176417705630234906321258386591777745770029454020916475258156862618046002312475169848791544553295752984900312907938437745718860541055808680118528462675186565669307506838713481282017659262445080497652961113952899467575243613768605314508220326684343388009691558756723917712520051110211137570325587427656449433583474539646185628440335878930734939922055798142007094138115664574921306799329932262573394423453863510209579251486302028560636485931945029176331633250615951407271039482325722938806296110858506105539625878039113249737832456340994363108696585077726561762534461522962681509921719275588673822705817963597450157691001427288673219060244383600654766328225202899749013358563561297260486951151747660173570445570713254757823234051064108334803098703673931500870175734791528426442449185448047974754737856982763479419529410389894979250635043796584365218456340573531611230489169879586987284336786008168834568992691970749638793928875598694406686960794738464328873425495589815646101318842154466666982466944639279487471836510163722676396912939331196648796992216329724044933526356283137826104012678188556717434787305720489553905008986719912524037934167182435423536300316409324633235294734455059528257455464750241518586665875482734226959843781194373099332195964259920663461129413933543297106442676214723093495139122819846928657156259422132698663968688595445472486408233849577869664302297782645218247168423094447458600824286049269141588841581090761540775590819677212356934490871257773711530915280514606058684142748072390464992562317896869885932261319989310218897635085885142261151496971762292060099434577810191764782623752389432923410941110190002764482687768891738344207422554627995432787589209001460345128817835097306495267927664239447613705601175019182405787986474004263154319732137874057858593242227721261250730720519287405632597593847695923512104900488778130025876104737306156824898246030636446176535635196603587245601135537667763363343950252247775025152073664093544967137541341406121158260927029183798770626329572054943126125117774651377982658012290954127466087779902626323763968406323495045219761483121369891511012669017616767113439506057318176037020988279478834887466691629022233186527274503757785196046372353946843820836430620581225101610603431934015010513412108366127442615926360896175435720968405122074683854616963696023842721830291512862957645931112191054822060859564641021628734616311691734986283203948429808756488455551617637004629528740211728462795200226444506404148375668701124253933286899862963760426011670873176118740761324433070432785732160068357104870771190729485120781150171947911252722691292196914511074194721044818657448740991285938887896164610883365939559196958468532051307457810669025491203084279749477058520257554492101537772593348766531541558468863143722428175947684126495867538242977493102534908209652010172163999754875442999588994401219802801869450899147188479074934755608319558027345453135588004410719787456069495929902527912806802596062469077219353179866074737483661425923540450734385802925039271428954978902670172090219056534677053604132893174547176416400770414247733068761369240405908710416786495990520695437435587812717719118292723646003673657620478284586160317221124914181489671580172227553173928260556332194682199282410438794584313842448591119461281717442667605600651745260690143386014797776008762708884091604403722728185612229509647767403112726286866011036822449885053483394322720344656544441580763145094748612690798289188008041043451205748490436712617627401834156682932728605308216577519199303005126233592803509859478779270922295744731648338880057815836198273667726178651696454414332086858341278307636298000042618772578624853670222032301384614248832054097823733293897003161321443435004406311711236435849159695397909343179701807842074605910061389656620554713085187191193443272783584013139118531946296641464057298066479179060550226024442156624632521035079339107268923508862877245312882748850802650794903885321794664003386929202807235715293616614115663277178714707389068709692879293645853060986072256028904013891601651033024527959897769077659535467252070487804490978885276294756367295999485691882849928417227715696167160723681407588991807589155396208312095424599739507485944575770622258838482820636729932157999128242122471678184254921678359415766404210860993597278703786449994433496538848338937091227379052754642585681906191697126022880618280531525487858883857899462864088975204924666850858597987085861442196981695370097801117736582140004377795050553940315140282850075243159322042580734052144460596935739992065848980286098412678971689337657158725306660291711655357106417799405306222662000710109035871937115860396662350765265344266060828296861117786332338752313094778449693289898655399398994925967732357353384716395881303074616497064688356738884320983283176413450474042815430283470776124768332983017184001216961168073800664685377882707197350730472993278919018334649746611531547567626786498773871753829938655991794280519307348408687135139523416669927557302755058043963116066043430647351695706811418884730013652168818050762779376612839091791698773863841655989046938791202086974819553255075054216629951990571015752105331589924894574553368198967788935462964385822338424691211539371944809848746531090611519692821785782990247985487216834066446596199449411951267579445548775448020563820459246564542972726813689172994414111012372599132543044773360237761986217514621167133992083510682887977048578105393036379369034942058935569797712209240801809046873549701940737492628170468921817760963200477977480933130156365953849083668147613179629534661723357703631735296867374853067233820588372284460406414040587820408503304379124819932817172542774090172259445841553192250042255754477511586148953808891857126059021712632900121320126471475911238864479895822093629542472430818932590247022979488807506695333743370275585397282029925362025122150870474105017583258605723966279313467004402412538700678187146701869203112017608498028588696582992498747861350892014870772781233030933080779258052033351874335070381104218404294461759105179417724273618407057078141595435704572482599473244367149410691586094566859246405272053091965858032674567007104006241498535517785228560699371809108653536658685260325918726234342522653499493278699143484973209158433498898368306425854789697524402875577470151438449041411901761589526508184364708781242379479766980410036726763090384562216805136776329458179505247861653343209711228638345041389230426258946368268632046923608223201333231816103668639650540308794959065886424021502683455218393736850467337175384691549941226195236621851836838012912335121868330343312397606757609802122250796210425795668958344091610481492854306298372346540936153733027001674416495772775492839834812043729526164478392167400425231938973570639682742502698769533912386701508639750320213082386495768418598697202723598938604341762104765444990841110837469434636844654998420009049977662154211701704436080868578417437868567518306705910024457724000821507517905041542557773108005548731233847436260992206997465416580346561425534042844661354694065750548400249454799352819576550494750160081106587871495840747667947981330996157875158753077245415385422718497333585573329269910609921768973400783549304141124266671966784546468738749913124314911664133225712562585076893199760754470283813871957678872046643067828695785765977608506412754991771668192670772512266568683822119479758004826922186658209827715535702804039293847637800071738881891227726965498581117882086605754179331288909373799685027450708743764304394307282590937659636680940545578842256354174302669321012950660378427217960305577297233615601398852802457872133760503470008157840388611764207552417044022537566406668984460477709003424574758429237726176571367047172985788920377573622017767566792934625466800468737837422186064401283303242103862484531730200180777732911565130956154465174805886254655916694023578777889681684931359696333089859147201362661891130344574262344009019936899223491190316432383100431545150008864871956460541953089928187637416227951488199420989269893977423463355343815986508478390794946325020766178556978132937666307410264891984686946092216292465107276050965749778136256095030115079724019054089118072129419310059656250878068739975179287010090836613588335405431036673407298610429531051756300433949432249958127415437041835103389002683043345293146672628153294517307777873297612089182515119271677305649703464646353172322050473783528172345632461338149851200831551092725406987056624018215048093170378931518024951212763059591092018231831347906748660527908159621880689401854426729539062040834727245435489994160088833789179671512680626699622911624949524032836026632727698381378850157800937803256885536915432177344779426186755930973812162913338355158004332967736775602309084370838989793438920268920049351706383779891167619908931865880501286471508329588618443473643381873885637970656738809006380672176534034638839543623689273194429745047737911584139219536580134636572717759011497560904435032463569831972511959779685746170908855375762921965296429040365504056973827428987642898819906276405024942465927386195664598686198270828781535404845297520067290436396146790437245102272536636261761159405035603026781207996570828801508855756291545498857179012338618971252003143152823447662467109527089813524027577755338923945157571532877636619087154475489558037624447316755324493096987054034514339640938228344775383027369912311400122207748512344661619869936300007698254466889178289757507753153794431820499607045299256439573187365333712789295497613340669049488296714615961524590306217408818701265229254253503124420932762022193191629455806341404888132054714374642795034473052090014031105037377070171195657565167435498469335806069424215083739117027112957615878118898340534097691968294009870185720045819352114443050965128984016119252884170411870177437264986121155696638054470409039807220461369567503737912465848280855343340038763957990713427306182090050496566920827300697401243652157360782055091029210500575016440189562713039839551495077108587105700729699738673652579157091039062227502579138473039875298950620327364915118122236766262986516800236299320740909257872658777271224509684247950549594407708680965995942427544654146231771642191773005867385190023235180658944913486693129752398741786772429637300599592472291240257416028111992894799187557740752106582942456479097480707589723359132821685386533844565954017851166886848741821564263937848106963168004045067459125677186794843490508224769239380744032571725015176453500376984404332883292552067734271624477673151710796425558872109687570631584845993734684813440003396085581867728470950312272404886949128942668232628944415425800963103957134652212802723786787994002937354967545237132071223735601883826913431641209790874736236240246363529199377503500582695498567171245865392392365152803502462264960391315175050241001733993090369797830826974639677978786933858304661350650447338360425783589062681721313708683541237154861775056436419406449127617656227608178739949114936416238612383408980257446685148496948108869043291344458972869188501598940491838755290033321918412211788989264297785332085542038526888390395572596614665082910643170646415891004835907379083838619509104811739467648067038862378347845771336231692483760696984624534293571096282956850108809514235274700248077537919492543114025089011780028751781062162937286127387565824062193036425849257478376990557870231422707411579268928518311213575289354756876655325990545208882923314961644544668281009441090939623062083171710369126420791292006103613438177805526485467825570192420890830713339395579721947539632657251819703613411029331574977626461525155081695895891931334669861495679546158619939170752208708241618282055165362499838291143788554220893335731426343194257731163093482363199997512614495795829612834033410972565688610518263686672435237639455460503305001630948639325457205615524892359022022182932859056776368035588291802237714051698508909240565668139476214243011915263858227213661437832355045044543348744688985493069695334587854946087207992397413121767583634517622899263312725373856028559904400161138510369532385617554605169076614321549946773157599688167118893088259660990302373010428307122084269094096321984805387664487681255283006963996301492715493270618509732944568801639820808085110929215633474455237841310249388292686928228658719215350837639635424714899713192735781185251149241106673444042732706839977858784116557930099411379522726103579241905559713890665583607135525363702097884950715923155666818361371160744872736039244030937593930541232583835415065941326357207065475702115227266587222898877910645435121839342588918849571398951254918145347223196066168819732744341258978840439691745775409344354863306956202331584873851767735131815519711499491088721076481376190373263072350292339992877959679439403717183399919236312912629596369678939689324533874121716758198974739980925188632490680108183622156087381560843952191968333983927009258916229173069701560020088160662648175969073263554211295255420279874550137485755527815881240793781151278663736966049623767779815002216545416697411520185093696675371375568522479698975433960163897911788307323718921792133473811114331654961670271010191799230592350677630543200459554601329193872014917782898968978822198792655105867882247390537412000600972290927454211580684660094913297901479549405134089934213046104268052439377218013465632344269512285020770849477299445570457528681045404157367515313403042118797134900705743125877467656074115469697355897046327089178846594652293491808062906266672383914808264670219682431128435335547587481594074629324631824937200744896485821122319322210366217922828330300962971883125671888524006223164390865291799270556967080805160485050962394960359636439408950969234097717441008725380815530534485799662209581128456013184061293496804396584091973965426262710879639521705623062460265781251568084406117850719368978978896677325621912897659382680339561354322579171088276318274956104736471680805322843574053305812380393252134772857624505584038063387446120511021020362165383645428754211028027486339833835816074978569188980111336771985061663441350642089347602258050437153156031213128465777451181831268103083326741326655209016330356155459795943177352361715768158750696961393523706618430872413304831611984610232055504941271104465990938551185707421274702200774240448168886831055581156154816958503849626154422933151221709774805367546042004081618802049507632094156656908259909272671935471712360402740364997861954596521893297252745838758721691299235147820463153719749284967331224464756568705560559302228897790867602262862982591878823553125901514267645770123842825592182406788039981653987308713348358732565838504955471433509997031664969367262701874239607704113220123448177125490562993561527922444950223311471673566605929859017980072027458150753379986458577268345714023319828652564241681721326596859744585916777362095777706347730141321861779334326801613752055123287182936969800271545092252713374359298144928882452698344120862548539861810496231885558147519307823200017574985925092560276329785366134129994330485235556532654716226100690350303110382615683501475775655479731907767902215344111972174499104679527131697916368448690680194333642077481702332663770932485700055444399695337281744102506563505213478096007996710358437696051537745043182992159167017452354662462284060826071108599077177204062072872780134177516557598814615718422373246588634093248865979223168373212899494698919707420188757446239916948834954589981205644448120754463931206384677978651930383926708833963183353306007945608680203687822649638833981757573635918265407804412617682365875831358250981019698334183910259740918102723067259280042147577250551377233662139573931066322524731350822627916983576764464302208245298027899385356692434259140899413136184867067677963256342617202780595289630016852383169952527938849602401607362556056618418677305129664879611123916877322639491412815116512114470556774716794379807948459869413137072601377091455210123871371194283018289808856206318737596377097247685236140619972426141647223961409956242326883496391354519669254166702941154474902863608087062744950139214620679985040604351509121455023080594997606038253558380214555283627755238271833965540064274247568896232367467761271245034403019301740184212399669020975754337845247027330824502369394499392919537740958009453583127286253127256366656963828962465799604662383881155980707966840960084333819909645954213722986521556659617355528579544403768152558447089390695011384511251199145617927288879308463925760626635773943745649069588492963579011871777272554772016270298986871471180636636405615606672528102381767305244837021295871526637743098837506175312959799244173691325923006883161302571795890473502148138774287363515232923824953001867734144452418114469412813223206106230599102138210015033131235098253572754115753456807678675081674975195751060563108038604438405346277681621280289071058546345157494210687641953945779483225525223153136583445361151508028789571520222704528072162856424310498715150558672112486089113880729319887997786287745029159124591336948026344079331086954405468603333930326160016765891254345779252215378702201673917839051883596929158978327084338621703349124373439074978243514132546460166298506238862732634517213363028783254587700401016518227850545956034040026755637465439086862199023066363109367828786742807158316878965914720008882487202884281490796835874889966427791218050946435288937045679891930552622910449714971187078311401477602860946745089609880868574096443397472836481689304447164047988532660964119298914699618104199198836224986514010232915031094843291059888243174691956706402559515237827224221425946150774193045308903062834725292557613389559857958586840543172676211555280397007737085886308645305676488737872097015395190461480241119621912680336384438592595805456235091629000880377800789102580886282209305195986109306826385523039306596080097493152498316436009446240612682768679896131403196202748617682007950352140264488443298840255701412461497093941074582561703235414853166629939221151494967608178474019748513402491121530439750623225819492435905720946722716457247482705015013899470771716408071011202225989209310900133488627076350697238228554064068763324376396310230098145868856462460016291724898349622050733188020609560398270587589795979222242386588242822434700612352574802496067956370597767339493872005693231757480293531131086504212840889356496233587472987642859650910064497701175383952693064960280941468278950843053499522646192946539600100709710623363533843226333300339332831796607324305038142024549049626790148047514493920106723058734156006304210376133743152446371502442442969201025613449214557077628083867277954088965111630091879099335723262749193880338568054927079072674494882976092732348626016651621452177892461760335557879099556908261879971443594108708597989896194481675549926458997818393393680820494418896292224283969984686891700098839893272915481510929079883859325464026411361101433560696794179598556118026870108947983934607514406983489564012641775221700865039849064427903683156402522092835736123447624346783825057869981644207601499879281605348219837185798010206152251714819464629603202649561667105055520890743594839686089373918481226669701262094374777172916075075634569214090031422737691977527139495477068154520514300534089089548995805537032724733818166745526293303308866401300499726957328428838166910647452860769297103150213731594104814174555875024776681701491667654324797825032286777005727967900102247610359543841184818194231707160230083981358422426553836615364558566580582177005903668749615609297628822976110846194055265270659569475809879124212703315257452964733353823932294353933561305671702597573220484342348985139660937252240852075251838460098701723590872596879779935206736565052693257012428812249324240617940365052207755548779721645212619905447428772017786600261085530603547983583346929452380972281536898562356148754096228140897605110053471008922547532148891520847400650558387010803504951095519071893895330820463986322444762516263817530744598650117311704576772911788673952110578401780837672960377917151437195811586219603327479640357509945667075169915272022784823210259820026323658069684511208524156949862545935709564723323684929974298881054562106998697876291926698254367301047230717001405438169124554369766523903974753012907473893956783915918753370162231492762978780498051040118313548665179027085334941901042700956859663726723061063938927304076917132005964275355568254707364686606400717938734733380703763297166116115069014160578768284919642869906291959067074548454890684549917335355249665200892522256117134192637516661504973800011530784832688116796810466770332452628021813344947340102465273670333376400712653045301308193715835268627400388834389867889214200377458721992813009046155337155126067788723001430918443440746811111434626197164345216471105670903909258962559342027899993750962231108626561123679808457805476732329807137676327914040503057941564703259871683192011165699252208346809430028244314366580215944940028283128403866149042135355982700799375163195453058747816970259195470044811179273289442927073438779302777569082395266465123817741627380495674148349505619170202984887737034725114149734522411746169271919639596597062171332448058622617229514582614874341259702217595249972446851665740723611014329564376450647063173234815318294080121924824035212423104482853569234890478610332977235453546024860914476744879843765472859670700298856525748251249193085091683345127020498656538460059617918821439173585674188779032665661469111553262184862591246534371975061791795596203539794596585464845417215093090431611175073681185751605997473582840307606033523138770741617650635063501797653843939351713057392625064472708251913796747534819492363607156549237008181815960061151150744703534664922843537296451730429398456473286714010835659224552025689102347766050729913773633333469918527367510357350816485949682889527992772290864813784900695631327587963246048465825821781471772928273120139685124380525681013648846003908146205225458227979688681249709747812151545886251521136709427091380337379648255067551057058385032442359095338055415253190326856928261028507632633858723189653890973482041769708860889146861815555671662886738307351530394487165114589935372243557702096547159991385335971825330998167358453126681516204608804885101813342171680276879114901736040985067554076256147817825287240165541260334516732581690136257962083988483513562145178590012163379525263958347531887234865863016297723955668335400384793713459283062645209400644465195566616144462229448313741384741670573634419910763904373744864040219261847729608417918565825326986124130628018542651918309491534865254710063651560278660676275763391414409882697637554348303896884804286809606715887486700513041473476968944827681357645500971508974188480730067766040093511845266455616994757852757769821828078758006112626443022022116893495205015597377635660793457068477780214457773057303031328126369643783349583647705515321392040152990041207737822558967916600422198618120163478691007740050058491203185994415662687486174423321355657782128490879983797596034409074764045935574494340481035738616051752391433801434519214674957700705167791068556128482701374477824849546389756312858192853417997786519954494147633314482497815868491874098500010233047527856229599264949260971634855743264106673648275053212671524226129256105053266750522894570674578615202571661435407800176961701779584061418462925362652044402151465325384266314163520958038413256374003725676103589845797688530396076125293029480923914193653405833017122027658215330395838644409811209279456619505378015418927561135649199011770906678816745768282945178733047550907692808201696758873007447532563821436198777299404191037731868842509932921231846221875344057315637014194187311952546445124542693044929003395465611819210247757614924332258279994866538698053545325918394202569782427627906368524686783957577887158518205804233335942695639508514962208005559883728873967809190414911058027527683709256404860407612896659157765129585947314352997872587315374684908243592770032326978858759023085776753317274258727799830361327093543061847021320463294235148283218829522001053822237508317627317465522759248491651367059286503525015754239919296474727061150505966587794420092553530818119277196060875519622013043999756779065726661886737994414586491898874893204325432624826060300900197661883244478999725956444652505804081285021503256515982390763972641078804227937882180902917067835431264078628091659302873855135709066420899135781154248089694749730269045895281461140238228283290689618476375721950279214250525543343283979421127426191920582702188154814876687225383569311017646731237838253343423196585169815679561384390396457872520581920777858519256057230717000844094553019617807989755889616335006878520007958500593019328411146926708290602613970095548182389829445297616609161261334671632016513958096706604801659995879032580239056266563000384331284865483578786513089529678504211670709677650050931319943369682619353238683180688675223406180306715733527251073341968483720939369529167842592814284531760951594318163616085967104305272429844313886526289297160128684092003031633537883373358632950082853292116187367031433149809392416999504386872711210460561772916981125682053871630307313750675418921239007349350865458439416393410056976381332852633508091345053508399472691388016827338427610986370773744023549566701093106612806782279688622099516173538480757425520728099081415862770490679738345669879225438441621548323338083830729449932893099486903527010883869974839023149546410416095418630086269743689101248127945623476547943876937800461734315340731242573944858411111624536914595813993833557227564888195105025818740495808826022148841345659465689249254025003359629110307293872260176164621152587254447753242756961245109120205238882614300947783538666601134659169736898919615853309601012131189236494554461920407969501575713149117607894512155194124754472299638370932648060616492531095881798047780689341219627429683140668783915360926169817297172969587073627324393102739467739180425614264130636254474333799551042002896166507306072460700238586105356110984584328116814024763918352424629172074186659173665569440618008645506518112225428270229823705572208883162489224455594210611675342118182464832825974757040500940119966967115539890919923753890380384979599900709717464273338786136743120982427163533440958706261099978434168085917024101240392211676052984538480061422479896030492766803512945639242831208291009181378626538611926276237803126080294347558673644192392924946698640438245636860676233175672154243338320104476301893281965512707693939137171499602876413035401263342364460085114114788087341764227680473400222988349782207326594182941928689477670607703695556722235658636700176361756636320480532496940971780059910622878455285722557822404706559023830271417282909396445657916193096427198662438647187527014929439062343234781106281848330324848867556020754347266203199878972540017068635059155105710359566011620994860327244045696308105732907423419811426917373308110055310699250564726005109193432617667327446290279490350553889205596965519470541013212545726837966250960308570551813127055338304273449275005768942575648625082232554867935363671614671513430693792223486715730291533434164781955650642169254737281566803632215243763705378246556564464705179443110525235541515484322368640359834848304407436965151510372377700644630286886449519531615771579376362423226150632199390674163507990324426544767825334634214810060751859632689012586510603831014829265936259588440798891838851847886515143888054142813384307417584047324577975530775896098149993123019065215847117958754853066179241032116167057184727258120777629476285327901191257706415004161586453174103066131369775516454046462752124625675895231410867662605058526965838349345658888938045980110249015860929521728654313465237899672517015513094037543192334798539897525342157824846344908219074260284832038185646912538585837508338092223462765613488888856536128147391172015313966325833978193044432222497061442206978228603435692464845258170058033610814315058611676086195639611239185842805457219103110817070444008287457024568401763025550297761059529604521595876990905576649679248582970845638670701107162302330630024703431461792737272781370811146336477290640098809687809580637595441646379064631267707374725730977617361686512707600441166298914823399071039864193716901586105888319308141902022425752649464306690900245072044279608545662982158455776004563076105190326738474090006944182170250511784227517136098002838961138703845037562138761594741157502530902842196568949892824174479627496367285018849647631202878407877946620948714028244551147308931456369423503169039316916125010614183746811426313373477534448131933135707990510079543270393478366729431643963326464652614239509402545276826286630078926029181808934253379426075809485030073657972738716790506590173195204049589582664642895610373878608799808412591769944686381857907853052832966273686714019646385588941623288549476677595967657866977223924850550386431774319579300241001004137211470537779146730558191321614003053990959344456914669865348070373621119045922763980985792103964774805263557602258812648590625119773132347915702557847536282317013793908381937694673665728397831198638302833072939139129047495069479765310651260107145059510561229838030264642504007922000347404700350463439691579596265621173304892104113639756734557210068908453228188636083417652039735704282586814990033854203435141625475008776337226274464623046804112275607414852835397351581083813496406707601937479927692221071195316886695634274841994905357126796084093645650438548448811851546357207554339569746153531869890204913831399175902982750007653738905269785121773299570918759584539121370603476727606277389408640352402088155506461625909887676520999441044993000060637966831435126451007524818873836736555876701472860943971107996620049449777853884958762947858607561688887894378515556959505610986500532448172862230969250786113719764927936757578923306393038449305048474952843333077404587688929345018224878170041998549509465285167395213365483299419186665552092799615294319369868887080924812761841258928450712626859060086335180311005162901963873134634140545867588867637986117797556929980388854083460696448366166798356474995878868210828331630810188132290048599798369450365651201201849245130187500732821467975643613346323761595130898189596880886644857257836409264865259396312816094949803646940026030669108983604864442442522669966983703915412092842102796229689341809811197719067323820345079461297359590699509256115484123990535098249143915528756654802635775359496550610958030475408271521477908563557600965974262483108740986623474752634957405713109869267000550581361242168464057700411769744672542772195530777243360036043281031662513681003479489127531343117569443653725441172350564858176367803648656674165067199375408198495621786747498138176638945638640093498243994203399915239901989560664272555665934391301168271345744534902264247590239135810549414113582138607860589854262411073722324902839853675035163092233376746198895098867512373224716304726190659447367658185840617313272975834761812930026341694760891076991032803663245867440167411636055816787983692454954775819327927002479439621078389009557008586023683651137649402600580418861493811783637546424305108221679284441131179464850691320907351755885538445150753334137247126669718544994618331495029868814509861041427073980290832469318360821065924340493154949338638616402275610331301521595288686879701871250532368050266854474932510466293003344990261674178305398882547231114412273239199641843549735327812417950879017067395749280468634034495338865843690617581700600952939423906993625362640905033864681119235312124879739746949435868891014585016979784848532193478405762255261662308339503282959318924445612055861033023323193351161367171684408895922870007852900149455067321567036581879505913223561203269764974408684128940694683587620975120365645150901658606385216573406763101088480035583248785567973511281466906500546068935739319052059758961373310424627948834739313007981784253054341605631654801330836607215988134397727760392298102007539293699830874769429003157016138490859455030969098841052926333048072480091469796238178392602274898284285682327995379328323294091897151512281950408059394810611153367739774718812568374813322572697679104453360386993902093168361241376341711043417794834071942315530077308396333974099365597021801378068973448929247603963831467889326862564225480116615052445250198849936300237955223640263230644575599107027361439668976676180018953227191774803076344718280182874588493256916498500280818115370181170247183937445444077560329007097186210555204805457465663099013769195112868599947544675713653497284039420121457614618468119576934507562232751055596690005050352017979455906416113474796514983489205123286188091112204679063611595200135332134584656850090029067581227738529209527088839097522693713986974248760221409798070832085179959407484097935932552565498787886650475414026770889226239755256065275078255136805988136340163690765058674376415679769728168391516277670267087591510154936676747970332041276449839946888618488512911138727525238280792787115892118574808744134649204565658064939128492348390262570481171328796283410028803335840081956298460381153234606689062493253826504182401452125769637196606241903041865613893903866935622254106348946014115302539769221639086816579812522551149585886216834862914950659295454852823251216692684056417485504890786214036210645396948852027860576018518035899661021690032855982478370279684087990106691414536681332739568335751200631325009283397667021227249929515499430058327772485834251884581747504074891565962545756668821455069988327422555138598567871952199872418907292219467759793082182816082800925277153135781443576986366011919679648980671865507126529353736736643337477501019716797270460921596570504146564627148301446825728848548948079860310665252899010457723544407554637822088524625710314054628559461393075129701866020699947749463438394486857767195371859022717837986799081778434860686774161778752182695815982590097665021005663125672380826566720034547578325112656481731003444536841164287426015845111453887117966424573440165603046752021841053943340846779588226255262006260094420559663707713730379422272331983327204629973327353170833423046651562883631307748640851796741566946743712277469887905678464491309917138159512617566118284417082357023411002064967066038679489095703964055998580956200870865308688273287197440027012841124008678858848875807845929435861462007936836860552280962819821108586723188107173529732495471561190892961742959327247566168719353330755695275084047084009877705401890290241144813259063141393460091485617760441871030617167909551697817884980009559191526542672640928403594493483468803130617289920546372213608547920189616694839827918147793516979008402974446428816031195750730609562782789392171478747948133869452370441180250535023278875891056056053336706206117174627612758225738217328078937566261679372904189863403957939843460351992990946210536734739067556842093435178641110108386764049687825633554448261244008814407461787548959317297118189527956281729676769145819871155650438642562748927699937118916234788741478752513830013445322970300447432923303179845175462875912161060302281769468412520810452095600845525425890946419754403760269957772407809256746188806125058453808277670439535157539719052201181466819592619483398477977747443431240566172542278523602273963845123621293733624632332151254336857202916832808902645420161972547445066955339291907848526351475592763029486378750292583273563494071947728261673661054832164236828060686111658229375892575151383286059644574710625664928760310196574451684101348090019453431836711296399995248220321462695835044230243473288010519247815879179407911602350873935377990316684494921233692449627593112706772327074790387465344338349455529749608316021644119244997776155255572171452249052844405213848818454872009381350125614167990633680836308557675813701337355911922090118526487708090671755561373581538565786532491246846535084113099579474767348691626685304134270614880603581863207085321457642576594300264461347299891557158250884782662158668433453975179824799956667086725759556125811493057656871301996388280080502508214613112160409589711245645243847666794812736512023093424633906711356515380707380083334621556993615904426801071194730587884470416583323808450448305599147604372215129819016278216311233697109887537652347077704160340809080799828579531967518904130199591840575332250342721984489661715972354148140016314540138837276841340361877976878056974054182708924009715018360762263184139015838875751432724491210110587237939531673944554314462342750236378492288969330590215811593540474827578552548443958281168073442662258732768254641835612452930797146812211762679289236243073171474300327299051199310552834601452617121834636795744855022548601460548900440289971663028113357831170619900230364141991588939345454033750594100498763683221881078616231182038506817973858399421108174328034772567845724371620727456744263777071046312485297090887028491752872353211843874366516139395748298139831848104110802940532950808767614504795227790686015071036529110164622110184261074085893371365024183460058649986625148603673282203683652713060759821519590283463851317216639192140760503589853075842667763748965239918204316026813882909163329738535211710371403751939653240474143728605053038613633264696060261245523874857279952180560287960773281764102949153787566379543484677504289605900383028636193697298961277981629673680544039170268196170248382369260006427622524938409152648115563647648677597019456551924062815881451637488774368453612680541779876675195936496118712902272255964898628619601301519637105885715547985676671056951385940623359199661637519813488651915999400713642220929101226971741276069534490275868156108539069637734365811468062528467281387606620083763726662842350388131581920179508307660286019938445495830462830853164784587413142662415558133074580837591320890572664939151979123637869207009578496255212644937883467935610655805522693384544098339540754709264819538196561835268676934247720506661354093410260675926374510537187332596275698686337234215714119174831784464683153103465577302721188928178338584762223739793823875952128313796656340088354210960483823577857622505183022328444004152185724529284200037790898722353366488861679616919617711374714497684930251083542068210101596198263838582005458538463132121240820681399139401386765158519962189950246769376215037845119077997541851316224294053539710172876199830143594128707752103497857214926702122353221604832735862381627014911109566907615952249194293958165948646359074614266725296088856687915801129779452814646841313424982569381036114366418216966069476230969104354244131748329386198481220426691946559682334738377774194403002151250562161003203835778943800671958523952603683576043330011159942233045930992651548388858011904515176212603776804430674653864756892619369097121255922371606934623325600680100524088922198235997134242904504662201296490116016516574241505150929654088567131197072544855352526903445328937508064419290851072524384250108423710101238558778805069028692497210578932068240814676420481315627592571431923440030866423831475839201590761904255321947343464445291185059989084768984623464434503756891371374661465819444640857213541188042121743105056155971107987443933824602797325796474194352831252959765073717601282105436966512454883164931409169454789489481231290365476835295060884606612309784422951879967294061891170652664896723551011916177829948257278080653798847163908322460341887000568427287857412034584482987764799933819395840272039305376930919808888773193784648158138347786697630940911671560156194619235132461948151475692637825649139100893448826972962629365521618051763502153817461271541269356000944676976293121184670827659827675156055778761699284177451051205498805479514967289154302996769121988102263194659806380466107909313528579576748623715641912894020926250639202845487656316702223544676210816690341167473368965489169804099708822575684642280648545708318154817250273792269673672784912715565863640224840546063168807939806419100112929897786426347229334797515009919519917566727023998023779501187453142141411214923569779306284560314111657305305759327642940870964792714973972713169819730050190640877760201932333501404222064855249240369635020910998952587748932892628931360690716416723634536593009404115272727958044168305858943388283563761751016623783424810291350160688497828073566475942021829737743512519707760133872287874153226344