501
251
126
188
219
235
420849899988778863721513991458573212338073521870950947551379127291587902386258928558374813819205189906181163638867713526559617186528867394169022130238492378784738966536134698661857269573083213431685852754167321538443037606626825089879153793564052415669988945927310226563766734684286911547558422308758833199098836468774222127587773695795915756385851893261359424759792837864832870777204776581317237489965183185113007644567352492681122303045138591841017184915367585138757262886452381415888238566069054336243987723101617699114133904336781370836212258432490184583393680656038478178551059424986159754737751189804658762267407387487580113606467915374202582287240687637214379857226297814870257402688585057971116373632768975214221436220279915224628841374213182322533106043748693382992354628817724484580774877904162193935366164255811701467461772489657817569985884541337682641141477232284690772123636044917910983971999811965235174195363413121749331816371691512174221266421072350018441294964561787796771259795261635433984329765880667495548368347779417118268984510525049841752218712466795940368511377265855805303395742207424320267647455587545924272789980267407123803986380161878654237202684297834199653219750086283881656682330218408104557686586842471252252978069495803885396766221608862556085029507375947962031905281488233612051436732264385230152837658339519813921159579107515738750897107298768917912460128183661347435719939880804837768833574538659055118227150751581235521281394860129103831409151685215182101695155901518373694406565175195008419036091786547143304774804356261145151542564647635939488716766197595919665935808396955487815950860597184223929268376379818343714562393172062242310812224272553628213431346962595878987154213248457529726289423279942114611794146333871719784148073131519677191155046417205236064789597654444493460817633134611324222644657994270648361921694614929877543913160166782375596256964927565777941792927434230619112473877338186243131048636778362359942673527688558085356195399427115035334809323077694495295533796393410819149265671515965110999238510320416716126726116955820914735812659452673432462229949844535878816260225728955343379886797344935696154939990216019395153532126642290613585838384332362804284720207809364056598634056959620030919386224361167796140929767913020785014930398222449878561183537013585670366565606381922655763011073327515641074753021421379106599502333441132982345846829284513634731142361298011293980465224791713359952893308475545316798147992445128827538799283587583947747176425215580869962730186160547175992988377950531499293977889641112580450178280456496359821190871731496465311555050411276981789414698703847169968916105556087352328714543516778176729348724614783620357610838214516469647751977228397959951250739989402279599572905143999564655864391695799875847121898778799776237472463691542312326010187641816711364962503779186321855983538906631744976838253519579443880961617175982459324557011413729924257344995162945118741846037171632946324673872731611265746886984845577560427260254431389542178923315937916035986156472484329899422801414943479168717982086209143485611371313169531316866780654327149420927280809199710152015108880694470345867819578838764599222947637675408937245084942007456069008047797304952428816824436746856853244744617644298781772488933122747870103132945228851988738727798498581818755177479391124148743264110789125918499891751806599045052518577537426818904657055749313359487704957942252689118223363052845148819897334951971714810669569672144001437219577433083936718321062004738402175449791094627365501184727058408879434502134187879741301786555691912692151127298651923172877994963609187135427708108517123315524049068984698324393531924809469254475116531329577884481486944765479196464081888255667822797873244771348125454119741241294592557059734942746296731087359252908211042104322337274097311974983513343373949636055481594776433879081575451213025023426616166211078536928653365939450638871873554992527882227587427047397515166117319766754350963782473282468040672832494601677534184443503621544264492194559323997413417851356244926260513389574034026618795330552743116266221346950654150335284184099426182235721199133169944194635981516027492383434197450888285269689637595739250128667253125793726937592985941572465246134260192587471212171232939967621941196732986215628643773467964123628610351424255042876759821089665644386110269628760495757476737945974646779320491954550312107682724208791769722577984268248047142247612074053093084595718795245828959560070168844505321898997891713179575797132192157513364614017544752285066243272356448482314371967730656767489944284450188136499183310088157846387664110862867412974673872397918562705259794326514761560819367202357286271588380576788889734139530590350516412020215816975344719288220197288571779023463933020812863855424177030778491244276908182367306808296486155541714897208674036637438922113081525084961269927202882115532688593324629464123130165682410839798006369131797369768525025423894471641137002768036949674661356413918972354849434942249746561967942461124783573432783222310002833158506313015341274015256189379930944830825474510607692896319997516094555548412384932404449891994805635842981748383198597925787384733822706359331027214142851063087899027626060676367519763835903221051189455046365445546963832219993210096385160084689866596161487703502780568806028784253721384752035376653082974698439153796684657456268018079768919775885042523426813725886277687139375552891617021028826745028553230036356540878433393685126552317397687337677974895913180740589654264193466973439675995029811643389601479746907769396952476167298507698550631298419668594214929691397287356343732331925961687082938054905988184985962672019134201492657787582956513410540582571685525491315358932896761331933734495023939882361968914182696323639471428580380268184605916719558815238355667374896381741852848639351851154764270682144613034880182089779950982348267313314355041666587564798076892294082185693716646611584236235679768225417212726218079038828654666159310865113980907648059101678283992431271231599167916363867963855494154552396384849548776262068986524214432059763751591353718631732158579294676236947847072040565788233834654331581746085090373590862318419557843353346924208956979870954819253880469309767231561637684806072426693821809544456428672805164809665144827791269586488983256748831788428818469233452103595104745776158883494321317553407903959376305824923502192291883619587061786778127891512613911758898840523379599835485435040918091534466965538969264784486047235192087938437816206323287727100720477830611540516506340552022259627417678224980383232648746031856670752117496662427383403145428932469969255793038722932182439361371007561656193772056766265419859571444818416113158614763687912757743180382032356388946785986896081965611033973814451241396035707919148851562906625948235178921136332188556551642134238872295349772216258339774791736978045442826437506695784505552511510212734691474545275459152798878785713225797378585951881649512525984062965714145981443420871624398326680876029938298331537438988499744242751114402436366038787251826691841820051725368629477942612629876315096188687511372866881489317826331758616647826259977467286701444151250593532872989275299296459259444113736154415788918352047906447545028658533307326638378352183173202701456063058793011021649767603947376189307906117365958823699268196958364214559928197440345860471923829619525308167195588229459616513369694172457653021270353785362457153482492157811239488359569907832016756383238403685689241747961812284184156911837718518028028698258334690999178927439278080680353914861439289369086173851417750269365370222663423667890368312695423013380270644534418028480317663817810377430142779210287203725378730100076166534716796264353863811726295681627887615779130186954127969342320742656719692884675942231371252869220106232642416493174487873486793565665915359955759713780461596075474234991973149469857397256102128613419213299563637226421444739281770352322421312438428674175634818036318988539527774521026121212742756998759867692625656777130914615158785248139671866519359931515799187283756667569219496180260959967799775785393728249086479170845860574414781785827220258174169449951662266808918813405846909174348628163541713915605798296548634364931852748066068813168436775632596743984941858927386695328354816711069623087810002504288831175876705429354661520645755753377786644029399329546414747464747821546455633602166045696822433475531108239796001425441042027447881944115796152974876815274448598802288464679908503944532225441931459850100903536904424652791349176276176315230586223882649949596631915637381508381292901473649795487103041499141878556033761008616548433337757904729827110675998277167998191692218351965985858081631876891985638294427838782256158733573165949115652228557295376807422619638867062179322304765008551928154130860561734928558846272432059415833819636928398385493374559330130687937772127761117977989834770035556456233590982673322468572122778794462868360336543754719875823353794744448168355986620733073893687430880115068286572093790028455877197792410816599437616328307297568678823224159838189889243906262052082931745158863367897681056287437034272198082344697371767976445558742822749322191505485252516679464674428799042004994946411253843333342693943787618539896679506926115829535514808562793706716457588372911507065689064254283193513679655048215093556716811395164125396609811871839595626842682884621389850980268199755366355584583374376779572712723363646184521545778168039666814389796526261219689488702171925321344649499632547416397059994369304939159116286517648417128765193367711758775772837910879198736388728611186629678224815230929378662975985161898799811179185639195761811044432550861316612741794794375773200971713473821486433588356829708618826992577307996491245031956212422647025956555180365771473085114067896756783288927767455296134299573690482923781267512686472539872698386024234209827629353895745494486295461853375867582333501964329923986189578446282003897927106872687898921890518088738562495679125677659353663392507272331364564493139444440436607644643165844644683954455997631303268576801737215752916112382523533843451580564717887455891457844640257674361015540099234143884650532660272840101569121550544885690989359948642949483062862608453323684966605499151869161164879926762572187513723538811542016022020627656325511175234192394384130561300727828556142855384622740930283232258366534151986167343984439614694440419621323101858557746257535820437448047699773223868479212487323338127322636779165816147109059785521774120979194835249534499786672832469352913098670013541455150625142549228363663959444074577912185038817249316962512176343428342319272239038156883646154281234026251934427364013917629937887723884515306407207348945189656742679162754452957596823629512295631957439855454032191572793799016023751329175188725682483370857970339848870965687537454101012747622181691232838074192026884354095685719589485151482724235417779253690415356982240425434137424883825307195752826984312787873755788254452216128959058166931755053654747916942715382853041410003019303063229306477386367084606264451906446762079607493448473293571737873454754166518705913555289242984065065819694293441441734335973977681390615896458445298727643466172011945495682313991425284363808661409313758660668515646562122769747190936946446388387088596725552884828541824111619938511897393745088832729953971486738868858918775289001789763707011749605459475214972586545300440333835692616262611541778052499073669315344152558521948707272158532246895562197390112175645223775956687397633618902119477988542383823495733159467804514037864934899401895385238468795642239893862579747082051520210933444638881050024628117786616157013910646270288594951697488633052521739471212540582171940790344856660129142795469833981141897672445664538550885680863373632186689946719236826118808620323246846911329691398833331911782622546128464823209119164336981982349227559883635089440294947476808622707350445167639826655423164924207267436670421578626971546483799183650637517981638155657893572896215918766309648242062659122921256397981026713764579629902654758753917331985370254583687662728921357480154808059834441679255371882993941861115324857197016842747098594541034534762101212143590998611513172952106498273254226371139635418788506615751318047888267584673153258108717769422215123966609979083709383391583311575999603054427689147112297826247978556338629483222282635718678713234114665489834345516677748181135853720331179895781884078932720858760997333770643890211265763457943568628645219933296645936019491155869614017127597193970398231879809149936902157075932118993951996948946562816719385390752177946232780427993162993770923104730502302796774893241227688482761751650570974171340792970911244016445308829007519499937806178342057764431832834873349190917991924992367567187379445256419766480414891830990798544066611753750127917275950666477542392876151730286685107483327229116951638572939499495327121443789926410613295670831819201489217379808226983537315402533322929713947372788188501643424985396485582126487434880310968210271617663825363273535782188109982743342937169656482910152283940341010857642629011999759881980670769713961611914049459641444833349548833454975791541436880347734365878309426100012649158970928248124868266423775284957352951254890381844412205794746671075707598522947515710492380819624470757091643873577631561499888224535970124731483213638534735744599693018474948912699364281200939995423218186139789752082137096503507096125422455814914461291213661638823314388596179462917594707616174176127033608101353627491319542877096599820084327219583172057380200547702548396697231764695838287572633201651144908789592591045733761948054694491688964519342568811328313446443098891892127138194114372752602356275947221634463867358707402702607541769972379840119139916569138462730992965593245614643370673197103982693461785488832115175352348543524742715108146234688452423322471335710226073011986141359312967356818200563150949379656653340822898302453378246370475518968678848281935898757758051306281837516659914644152924937542718520374617449846369470535487256966831789575912632712568612414745686922274838873380784171354556852800901432767652469737255863764581316360539170706175033837955405401377796299618834542474276340631725689057887229843874834231964013884046634517329572316208928321628997274968753554589125151625653412453103517865712092067972772643773001724639757763510467725157863318809873222163981566371518971345407320699245893692188593659759816922781536560935518109138151677625681783499723514625496894843981088579798487289165130085531250328935565061559164126931289497850741491184880320662707498768797713773322499225218277553742502931147563461431860289156650949938341339117226965267434789931651679458773664242889968997671445569212748829714429706313182117374413550027218491382709732718160222785645427961101167838827573798644904290384526942770384562206333221404253485244555207002883111594626484632655512946635829796748792463395966394695217993652549998026441358942611534289355723693848909773588509458406607811664342434071004215616604069992634352867131362358448385541278442487785984831998476233943964925471178643722157524891631977586221298594735669080810334814698253758225390115098910842515453076183443459813519342525340371967724678249898592766804883045496237841486337935502237355872136661568146293159036699868656652923367891429839476272933212450335554584338129128936421601563652512927371529764527158011015386829485137315376313667269721111440140149186790502828181114441593816718353368367466451176374951941724755496592022206902975832179697879411935739924635482101421408329334317563302580477543725463097878578978824556623596663645860933581892296444720973699409459312907100067330850985417153298846878950779219532872515875073250581647389657738298969122888443358914365932511474866525969835502589871366636404083195479128484431101345683239683735040371269788722843187149422308536529539232377673639962627836558872568652843372584555731866880234093754243253065335793315188346393637772733436908915159336395818288263109475132102272935288916240190549168455655854409071192154981737686588487194189299758953372218572217696346066895914787822477957463590975263797756666753611734041552411435763007125724157681735706129639607417279921662918075185911882329418129644292343962815547024191969771524870736962559494897635064417181198691202084750261693038079033031377118025797739369573487824863149563776721674883957557428112396482016636807528174158369326878845484951858121115491186861467984251775495722410764160168691271259188859482878515801658528441101164391872509478567726707984921147922668117508703513695755247620787417684223152855248508196772837696707885522972448509676506899536938730363315464416994190131713265241427518479396343304993463053003124846526001604846953050850074055358526169520210007681928875075203654313145995877638291922565912686028715270934683297339734719704695355641123418957634355287204818843511604215759167887090847182881430018112156701315139663456599599924850587731253930133778511747124878537535685796598149742930642559138607238617246611579767206444413514499223211117872856211910157482123309364977590143254219640046062190880886822662366150174892641769927248117442539836574192421746531952229055695296943950336069731893515102554081653194186981698977239492876859381073629845740663465774814385162779648953969532602612925074059062659033013711574161455117286588754856150738375838635465726760668272223596555643037655457572181475067121586782221287399755373496218784662390523449531638601863484683411976237924052071051978367174464809122021536591267063420566518136337291359497420913499544990915227106581317628235560456598407902812435695262840932348797363654028096409896344809709554525533046314473771317269939736343517493876645508174226517323955558150726657558823828379568146342197768512952911602251228304753855868032247411310580664736663181782065582614727309970448783769639737126114125882973214476405188950257753364476686094487021614002637529004804135999924452604112988309596603395314126884082495312743633536045421956269527715369493669049052715975225235194985690380989259773398542444444258671409588187396965548563785223112630431920043787149957920927993829093140778431967818223580216798652352076267859905858845479617609280432554594857493228327220574871356214012848587138657493727171090629534395276084764969775742443314287541085339699611360610117153537492405452298649525655669109906175717629208675719977056563820598752135962056185312917457229770360380819574976718514887340988168574655875860324936753422924931821823817631846369033821268134715218308117728687798510657786829920580988566311818171504889442543444386502014808806498154014233020355704719172488413277977603262115512592334527229105864327452325014725761251424327408267919594346327181357536083978034614417887964118325105355480676966343773503763855322683832325556864844793556166741653159901689993883207370284176987658045520567714455743944553986511425483234859643696392194306252306598121994342865098853445037904091673698945265167246948111878450576398988126055448855106275504611202461234622282861347344671579405678526088346182450278426660583232355187867960592474223244112974442378213144833231171555718681621124421372581124145126217511243895789488029862418666579923096122241123473414249677883833828067322648153865472459665060640381582790567115551260555113647527716401873847986605310728620534897370841764297353346051747702129833192245113744201325165122610487711140367860824701532746955282975741796173294412131151049135910439846478051385210275498567750319176978386658125949316832307729586222971088341762383889774272106964244313497149937417211719959705523032671042679946699891924963934905886181287961906316358314322295667409507717538575235114147876179291056281893254796325177256965354233232575750625544094930229740183781794699249357388669139089467301509071391758151731951171909225171521851178569776614899202152481664182547224665825174341066878016642934790640658945714519699756944597814071924643025827725782573782650268234235410365663572581536607407675919857883265573369642163685310100385769500555849112031727787876138159081132362038554742173578869601259207557365373650843442784054861921740995235468053077769126717327273215248881385629474806308606810624752619711334804357561440554149272081402306728804925437832972888215888182361917233140011144651092808293050913554584852206196730806899608129234549312719281542681044298430081238769947212902964354285723470976596917984443791083014937351996574728092988101092983617645441984158117014471656617971698023322291772167776904248747428541983328557197472586172575193635798061666242619974299796984198712261412652745680590354612566247361432322649060274934341283785026770263281986976849770342782798063904220689613163589065058025871553398290137823719421198577762936681634531641437296326477449954240384885711841734989218615923986240929156352058679954287559168967156786384371700894813544904875756733550673188363592553874225872442597754599039065641873106088699617187573996985348430884355179255294810764959505047122773747354023382484339999312458947597496911925310286073682117131897680317826597939320788150786721996944123799615189301819167059914149538224840171362977184386978278959462716269730207166488790699941712678118674880912323856504589883950756553112418955436462316854819718211728253913638460515338651847653234276847098989277571466662963762003245042518067958081577423261736294165761283508145527539392913724289720105322656244539844911883356511411643723656819094744127443874977689372299804919906236857322849027997376524353661475026644244932959434991177886563480370430207410659322788362126598092818829637577866889548429426617411560047763891353260091927291307885709573860663192273189911543784788991974291106154612222717482853396361645164432292734305666938184612265274275374951967309247930144494577673367435468810974302756210156595924491748486489540664803571610351703516145310425344042027183153478772574510818987756643947427795519162259853144993499480668756127107987833178293182630776202586789302836178534677566679310637588135594194776822446516134472921611951262412662081961556983259112559261181892681645474814401497193885349097702854129347343159307663995928151027464368834166196664362743548812967919543644483926364348926904569515894897077255104785451793728289941150931411193708957748438446980825542498998998888470891122926121946272178263371439306301829171889434498083536936378329247768966739278628460749766281492716773836597914668211636945368923623795799765931649473792213281566471513226719392808776526517386998776571814968758836263547134877236238570234999824964635548295261236895519914636093323379595414958548139653525315909113048553015615043938981969503673949881674123743884979447956933375640791259831996838313093360164579882095759546478426435273516048610240776369807383415712903833239753268358096437529595195320926563994574699571774783573754963673639668169962409571851807572352087329214580942820346668877721645430385465525769807339015589854606402158363672327632047647115759019751856427662574130722688914987469740252141893796310373872123786184433484622745524958074395890899989472333952877836986829723866195366343612105547686999540493451500169980723726289239898262811569740417286920658361551913024832092694961428924895976282872245586825797489283936361291930710410676193127715725272458935057231164317637123618403179196766432340254320971810840337865522668955841325823325199585398825339175805599641303311078242693597289109051705509841599227957764680326535645061838156369383938183044438991389825175388782793293141713483868471751907561141475224266589428885626058514908958366088732613618147155614212937491096559877518282457396831867145649260270942499160332338786670581592802824482707837863595266579541962884772956998213922849791473740516695766051163188566868923578221077156726759098491089646656232468252576860351331846236897585673243274628573968468556393778685261008534869171457444665442346129247542411325751894433541241826801178178539012527651985641072336353760323694323176759404335733919083786194147692718456471934648398899621190055867687822252456911198379634301779124638469990530293189456952598309236517408754419809256892638391054517877295385408103959732135136787216911656247886315513690637436700187528640349303826133921506618831443823195811677499535128226769727954943666533197129849441743325441503671782382130625681999751071892749280934373648134588652371215301320532676199914228461527987576667344413883782189235607767184367928657588132996325056179060933813997592423781789861693574450478787863841476957532440562853241127657586994790654914974138164382651195623564675863611206727348824886984455714119828801427074923368465107109648220793199606886437906377081356442141352648783376973732183850726283261606582966304595528074782125181055086469333763724399157907804301634896788837548037337923276818432399334527374194764395276053806422757493219182318424956455154114999364499360543746490231193451650483289366513633749595647345852975089238052868083314021899322701462707774611791524870543684328652689191814975439934069537522106143503466337521856323919941974437302166164699403588640958295443692164671731835841140645539458103462475884917133495881531586443893618136925298575101784633898401830767744475171293657691804601687882650526421589137118811081133247840382423383963202430897765483193931444543173998444837862197636781874694098994548475627702865572966313940746847281680146889033739063471851331998638642967376796110871516661927904751367749183322157164593754876725758684779865505978497594245934561543755242758289832742647585611496199158372404777883902167913299976246954682312235956968955974166268956714157544289172266876995017452418521439987636953868217574428234541286732424599470472252072871737238760968494269087303051677017504676676243023208228960170483459315186474279297197779366998164587839257473077260326842153936189420827559373531749680654968961090061912173176969972142214149942526213135865463616866896764026676791292588467094561575040151765333478258682679830927137922293921240585910522543459144247848841448731437228958942243754215788689768473670903455753468937883144137732251703446336552258454041932581518496483747588763362217679012288030490432156764035784242240168345591469354143166221237210724452794745873333669759820297800695462643226787429822101067952319182617914661856791483515279449648935163949527579463740754656255977879202819938522514842116621295839807267592822358911364855561927731455702279106793852733814141211827113120553500776236446565146587246571129198992252711310146512225824277327766748556055245656623428843369114520044410813754858034688206286539604236367591925075702648915063864555348264608708854617843337316394192939389284201759215842342437331376281773373756333570971764952998223043371172873265638632569769858255897447958191904759017919086708055707873375617824581937994748044124058211697890421898440599490746759152964341295356312586388771147205645561982109127716435658676182583312185522647419177646836081286657671566448977337320616574957450134245793152345639934270931818280766953285434401370591365308348230103768635014011893441351475814072732224685915232849146367488433646578217903161179663574615364485004607581961395896634024624679551614033180338069314392380768042570194461324918430938433616216293607108229092003477971611484239889429028126495181173425864887428510630253919763039615962910972012483059230403869564119504545323127851094137123120718529571469629927471432499645259331722727512284141835121692440180892774557452645977738951485131723314239680255706336493917788120665483737895813490994291282769654384128171063646267589934692908826944004337461877311808382039464691224105156565692095990316316238885611582388191275851495015398598926880111657717530455812281047562638177955306110296956023130339757694960806762807577924538244026235484079331313369682052267027548327383315057066678759074379871659515054611501249181502026163271607896914333976549203416854227968239414921025919511897780135819960761651913648846997771918120658290666229298254857203774605336956835689891342486285238039091189822164202476577241215058142896713711052018131373939039192855598531581410365025352951410860679438125580870423882405976847361507869756309188732413729087052061653881687483086938137669182456947734765753966302983617718363757308627445683729811808227261646599885609915951012163172861056298438194340696720630987979205257723401359369499691065613713078996251563665577086484139564686756015955601835038452656398694632971863570059641471414769863365767351874880635446969196250384511252743618021871958095246656359974110749079490428886711348295243127823056225719973349168431776296355480666882212887967886059337210918957896333229150641213111639391850968108762492676231830658219171366877600157302671770427994478597299438925745674607605539460262582444126655132979132362649831072315381568777256339233790780382475464749724392645107357466846911405335108013846895131772009544256254179140210518737217445275673251205522938731671741824872427453565275495537041626107262347787466971353345864021611918736614386730916241245795527755570998336771840100099048977958765919499373500215455924461567349712769484287296866495947402392142327764543245881110571273144546734975638935819629310577565458527434364778436842333300333501710653838741343990468547887915014695655052531170935013897574346935579595883167400551845450418344146962963308709863480298781866651977981538777267257158249118636702652301165260256648436895356122964532114991738658565931716829571899111779316901039985813688563254340540181491790765759175498544967878198405076268354726226141553319447800587940799554201232578516907466659166576933659889649418024585087288899438451813671236171891867804514766843566791661649687824289414786624878456775032396883441105295615676271992362415429722596319720522280415879065858342432198495989871616443029328686325944174113355479441989128146816721549796884641783276788030919933794743317928330727889366029480276129580743933115450974625426723291297826589501577689654736908657235041713721075221547524815755644502397244357513148197263581153950737404774977242753729483860243874717724110956772305811572687435065667350642941947265291962786601479225156693813926274710137360133084978085868258054397155032630266377987341415611165655524063986282026192344992340889093196527687587594618425131858981619846633175137754349266615927705637741412782247705277418139345325757319807455972296123545880907265883982517182891192323529564135485390898890697667525478457364610427971685478098749934003734981315825904728726512691284090102379162156709177894860516841782853657025315533282192793254393238061833088417885015228754113254211937121791287894283446228753902430895617853665761728783149218231057251152066195282161941516219501076751234155696743792845432615295965753827543983595065892434457255329964437957288412808033861391034358272168588048134211174381282585417411081066737291890595133908943263911988142975525421129975805650304843973182940441564820561220643211187960879653161661100081775411343976492747714440224872406972238957822619138032372818518795541652686101816473957781507633598205913944495790691327683524127208943295120929669853331867076943893322890776679094598476217624182611207454249840207382146714154492515602661724906443417438166356181572058433263421232310960650790449680546938812655622285791202129312784572822469632269823695278627279278575924932867638441392410010245626698123036185351689839481838353969427693872013611231691892569393163614160139321234865775159377761920748756658799733819474889704823831563787841171210772967884715654296776499233296811948379727420320229959497485812817147419533859410925578496171084221873322767751280548894621610888445039214649294994387561181523534835086542701291807894144857082361302168544592979881815271811051167273254373112911147049067529996994795364889625927974303714734646835648783124547636475529011061731380849546557350982471405974119732377481754117172975866808760130625938683517902776367117672171947654491123074374234267515056016257725582417044879763876079164591209583214201744593771863683854364273652793767901372966235642536479872884655224245599160621705536059104935077441589167483986290412073625054120038096942706199638607151278305293115816425802137663285875037263054826277344123399842721119949510230782497560993137120047976821634920501820121251549012248763867498859431128582685660335679387641202489195276308082151119188366601158446403311849153342814394236020726321671487048887673310561847797312065255284436456969175745899557865979341677665225228072348752169348463018421194552478557495487283368504634743298841482227455633994991294986191717317258406664875035012559694698445867243654461564639638426698234172793487165851792307031891808985363771982983425134581793624902923240770542695542198377197330225532725627769098667462388134397639862837325939055847419479598593331979286447561743685423067622498559688314606026898266388187235592028213309398655213784557264570276039016722651727450560733880188247927853651215742813956101256181221293693456111548111410898318571234656250488587198639182730316288890488197956703339542905626385918476906297359256940101196564505456887547210060109539748303456419842564314741342637915411265775377281448895424783967470160964181844111309925446715433623718828301712938229474599802229287694830874268222296690188790408766719989521530525662347760595334074395743137959291207162844577203245261986160554717067334332349278766383873362284685716154581438597213452272350876668988181310177949435632767679646543901540836652868561191947115464566617596981143139638542105022291978921506149080836813183398613311194122294381562479082044333115157012624594157019793512581761293317392436259209071296888759263155294482936279213099665614437333727292291817798398641965600844543307922459666210780321994112662646988412890355817536254595360042968016387229411477791728112029425357541166063569116664819523259769538587266917071837761340850531836768456642585417285121413401961623589377425965753575804664533744227481867876744534929142224891388666462993645985953154166703209299614088179224841487915075787662867218132081659628139435345179014084676776310674026172916277696986770514902243520215809331377283813452450333755331587359519797511948955493422270790953258418471355941169262661265195261481108288139069192146671584778271698055648994451412768324944039205422016638814887362641455593399707944886982105929071688018593005740734458815226253598533406410209725978074068099519426439259395554670891297125636796848953113173704834634946007864617852099405049417188520544853783767318665619115461846506289637441640538131455770468237655303277767948846691903188168757665147864992821415163403459451257621779686907475413959831209316338275626259417989445864440644608174419227188257457473849588534199702067133248896927404275297761107301515678541735556522166884123367899169548116248505435382046759657958957798579900757231276733246716517678869409235997329233180656119696126613338380113962455592480190787595084596004891688521312981936093189434476246889608413656742586521334714316036824409192568842635850951432784924787518653917517117360127557711788011253666157755972709786662974597545875938629306758357324683114962688917866763958144664110638277266496341047474959039655344684888593957676549146954744163679812078468654312530980976434574257540750691553496432747250985310773633619953446263908284403901376776371187217131664436488831531374748720296312321191681564447603563778290857456484273166290905893234458163356147184943046166267473926299888151338475688633720762245521435291657936742290061921147265061967681120762223122663736837939454649527222772937686076149847849804345959386461907043882306801948226108356422975123327327129630417888370748151968027948579945579172034350932348327093452153661557272543153188936703075337297744779998831576243496161676750466051816594259328020585715333286297554763623097328296116099733340310526835309983830549499844972362788983754518251614305493922014439468929197280296740182340772421964454738364249367152581124503624416594261603465175700898951602158354047181136085381426076082113123139197239685209378123231024601504152498225286653349224119229449114992489156605479780199579103153385994683561155659024571921734074068779533099419825343441950628330683126648422624765252846606879757426744251456029321748648397414443423737920923622566821804474565844560913381179629532942643864904448409206988739911942569619872856048273855685060680786234098430531310763226507831519154159971228877116822119071737566517264473636410565431005766554318269604939658481247660432387286719164261954397214912434322441436175567184849063879813672912663821071832342488644243683475915159755189332510005207755821837138735422984999595411029642422110366363752285478210385582654205620224585087644672689552853331913785666695043248008324639901378322529421055294102588617439917746539803014336535277345392877998621237494912695835958453241636724468471609885887957677161963125479591747688974343680559218542364701928799177707936204866383854475042542841124625468293015584479664470283112583012025511920953332622578970647660894677137287624478578098467025453014077767314165572600367712846495531954346092623214324643578992369053134149499925145562180567340986773892276064051489761156588617202383196842873223047516867133968004228911397192118655162428547738955658282536477577043453766333276259306173871835366182414182087622512019823662670324450596563540255947655919821417832572504882837843833182510845151544282445742226946534012954462416226274678761877819934653213424795765261680497441221322906841315766831814958419582543953471768038116283391840269081957212051548755567639689614952253265897680829182567725812465220680870781595940554136652628720237555565295778917939603662628323678446288062264903813358691886431478399543778620658418745579888764512116624434867473711276163989911746447165256447772947612786150515962262669711493466851722379488776642189031788083116069292110744962906384296106270140196638625664940801513555324793550837869854820796897442509236262936659448537653037713578230508870221614602706599776574654877840123306733892992356986086885691519925229968543928177390358021471939748651271585826681506971135998678966591776445793166560663746671707489738138820457453547586158346432315166999800973839681330431275761734807187694831226696467992845503433333132177974041187446845719076637135643356732461287281170738191831932213361529691665284999916331614652624778845861787206275485363250961855042521755848151094928356223140723815242948576737766541198247674827784893687967951900878917756371223589180222813100515929158120630114823225475288367565428952346962607113769793884449098149330865438931342163782747587927649317237524576038918908883903255197093368845762508725725283009506178052005149644950696469390620775589224888789324298586662315733826895884041210655285078736681155517034092971811168723325468468374197578322862926327649578738549174247700642463706809271183307738651645965769341136426876576767663909492295438826417625373370957971290828217250439968497348483516161142256335757110473657064624865109272489476076261803086033997814909935931843803269764303469088184165506505855205191114408002699813698619693943476523091101035256945453167451617078181527145843599682977650834560441421683634688806357999453673386856652132523646795717959805383957632295592823430717073836757218439666627648915893469133775248514478607699893715719930389278609320133754481576593921214328898617768381892281666778126155753984893722743929806439055370955182172117532102081320399285951037373493922156119298711238265101727349124743152471675947077295465779527662140118915429103916282720302223773839446733771516632641649785244809547137185448653777783421693755823682492301545483844374789116803224625637466494973299434946488381718995370348762596200884481778205564772378964667232788764869482494174232129184234577058719759639986707012524843574185257068179964105133433392330464726442338644220461889210582645403857599865624879629715395684454328777289892641291083647468642972309529886571447420882531618142277771857487945364871133265681726265919767748746068394953515027128171074023328497313348958815512669056210432568081064214630857573991914797328932828496080415980613667486138490568920112498856570234267294734102564405927912029075152097835421813653659759165817829849313547931881787303247524083885247304568296296817353774628852395774819268483958259823075495723072155408502571299691578927976491496069861382359606179273421565182202552414313045963347935242909711582472415217886517196418081462334282246561672863246875854563639575838864192617279659490608528068157781338680945223611761060217115816613026087586925522451804033280142378777178749826203543546039446108797432633659297793896839923451839846081043978208466242186031078114402944216855473759757242972172372343100835447597939692951939815241911908386024201383817377746172579589623253684317763352159114177984368938143501255204517645928320220472224401274341461724644105130991931081653559029636741049876411564435698937075211194955495674782475620616034599130834482695855724972561119191540677827879465380587419818119775199269623750479902750608255753204957884299863557653995560542887837557339173134096583829870091030513590619892693405862570828295435396732850523992769411916109520860531236954448243541578608334617824857719852477296764265194672471047372115144958051259818961665914457956037056098566711631690983899671823402412174963225468025986657599945494292128770053371043239911972527384784524541198515416999785344626486616207811330292562701848692951456329247811554734408936858062081347463619603600340159516938368768671659951383792624302463778885441898795557786494022494011556999657288923850162889258429732438597946981554660542868493631814397800480141897558410471699613951305826144825787349550324843260429943127963318486817991657475196191017335724819544329927555158992519599784889301451849431726784470154827102699866912854293262409821719542083020358943218077810427283794893894470927072158999861943795074616993452790685318829330968751927834074497950698217153778900318505705751974934433190554941775238746600851441541318252670652405237136758781211367806353836765867304741048403141395841791634683569008926299193089558267586092995620675934979965636112961463362247399657374120582635037536529100098766416594015836799624347127629174587486356496863242667066481727852364294970915183430856639613067884134772787506715262539024448317616041917072476298178613911091718273818324967876717884579731610427674875064978073756513445913354334635814991752460226010860718660576852880878277802075397342689033456215327618419594542402334644499627673853922254203497926673378993437446427728001423363804677685304192646247069466687944187619459325326394768296251658126934687827737853285297341935229149757959552568488508496352929566988962403648832826558175539908693536166476293818475548198896081289434847180646329482698993557292966470620756125750571869618655796357309100076030896969808886668900791912296894609971786543705649937920777318852865052002499257518692810818946940018434593301862116395009438988063033182193815580722123177779938559242158638726094464672525586163846290627622421353420533449276976905474431168211168546610558565470449994028645265268036290632319172958297756882922163404589879186968638989435595618828117418564172473369625811635920037575245754744774899812860861460393329588028167418476019838855760340273917383212614856796136439668952497798583751388699474847975723842986380542438958266255969065098177094237132521768063014677811524138364486861301842793176939230455694663930519344654143863963798686800806270975972680956721791320817322369749791740130967341462389168741468102134298942326383885982125524334383932824018281897663573672297783102764584125341341164955173237509926739415287224547516978970861837221437035113713697653542255332211607786661455433788551292212370567938859293348260822514610855227381638171776244905534599246570732187842511887168567142677399323402821213544514077661481000451215296896708637009919067979492781570521815756247867395189620422118338280967966167483126884654916610664598923044853377411067858928859654028843493894160687397561227789497099767997158390650563175778471090671682364898982882096411849594134631990120634642968360875388398618402599817972576187327116568635373445016482337647124187864606877986442424779949134166778786006069219243295924196599889427077914185507157484969212733417971625711388681539244418899922580919929741765971754914351588018110315636117126757885611784990755519724645737159607659266249361176712918915956677113404258327114423739993827313013098663983683217229593776104253738633958793980717429330777573688318435413814629694802384684366646423731813534174574778025009072629097274776574129489787321195454714244661362680502816836113994800213620645212290850486541556225194202915819442652835797449643244281493924121643380127636913535160736994716461336217068174915347623608958751723778211569059195478467155723237634503389794903606165456357398925174932641451994420072835360256090414422037966314573226160474642106009509398745624633322792339379684701089192387337179126412607245777149384621582727402537312939345285422672455859554780516719614116482685603153326798729751861382716229089443881432935336455392362171341544936934844905785153423350832017533248853596537261956817589928006715637169858628713156678332255210450537507449076747863048393854598032262913816372204361411417237879064237316873722589315312319313218095386603085139788747191311865189333536977411762195223067603178365117914335575567101645850468865019519634923555360380234393827148518130924578339177113531640280841736403284205751214904190615378161559114907626723689992678961982320275508152599718083554882892397059372061861778346352382733125511378694239149782499580428462225732377990399079553467758147678388891487574717962791094652353548221514185068767551384681258825396893645129941940657361653192437313861504341986340155371685866878965423086841957369489291346117841493607115779672772864273479118265827714049728656182726595315656391510131630546371709623596510667480634117803807295455760882810292207798153482844303512847363226816678421164498619694115627832793239221122779163171664102932220815498126337363164268968459836904540953404431867106150403238405410864416622190225762217881340246491757688584406830692682100807985193694955986804333555183506616442913643482045111873268671775235767549948297876224723879313943826582060051874256229589583902263434420739389354246897590416943068153214645998139907926321214654506605731941228567380528521219542075086178622327559397506575125763598155992676879908585512803353954536348609947024316168899580141684429292347951432562674443740199156339019718808558194137750022144218088017966494543594093936818743130917386199572918331765271928625949590441735245845375829529205361899721869298123418226734646146777350113604824654299356561263612263449987858317345551053498363699699482617479581589099264298684249018854266682975081361331959453874279994737628148981868859186375104831766151159678602945851165127436553687191110110468061942427428687904944559163874396551817973844389322539841922593206164833057613278682346723495347873282924815024313133614381042958677319652077563084486919549665944024001267692755635216618991123422814151281311262649197377348557378429880025183581516351675823935582391882610260579992930132663847443773497791983366093022222607813054232892403493117736698831130451971513972977928103395961675827275328998502759634447570896742878111583279298251767633915531035664587265389571729567446834083693386777958821431453814534832613195584794289566699019115929345595237622819275924099661648441623848163894035073368458198104836163728863100016120465026276036725411995715062326487134484868796927298493527546426351309313946417535917729994715799615179866684983058593583159998118644419237851242468731004522376711752035887414983293624029491739028928227724995644313722651338887896620452623458085647623476296689190299160936518227899741849112598186065365067709345752523498811248153417334334818069444481597071697934939988295552284237308597631928477857481965988870712398793323748467253344658625256934787218249831924432262422644422169910263436144033390897995821784478453488191066872723788369125275757817776214915427571133073115013210939062546762847800148475345495473353645152278026044089641438522876730199231120812111377942171104792488221366763483283004811536257965054583659448219617344483477104497455734819035339363023967068373448878558699283789395924791801659673076981529869562029996181367121229795972616558843318958262141879631205768348705340729666337232307265787582645785618261736926321930242591328768888077422570937027760098294364895968488026458255244139517282738491395516353386448141995920792923734700664430624717799524441435527208985072937999835130692959952021641988288184970193459226857168827137394407662011893326586988371592661261213258863587656345540651359407908117925623226479246310863123986790248378383225978512788996787119048026532899312609478888927303575130894478388083496476871226217752473416584612221753725467555302245888855673772377937201772817519719458039057685432351949806786866434683213599503477841127161244574435278437504921629359102522187226383662270753655477755110831291665808259242430365234990965364596999906870161118513362722706534933009916732193445343832830857761177947253085691134543516329824465355384851588387480520199677367384734532958675952355597519930468527403073455695275878387814205042715371278614496572757002273818208006084183473297593912966255834464155417745228745019491397542693718965393752082722655340760641852951242245036364158159878175657620855493070249667485197252387352757869777580173583368240436663607606711309202385982148116164474558146852803534090068530592164952863764196699443930856746332916032382952149387601008482951892051356788848789869274310440227481445153954313577905351215596551389514326589695251858268356104251952434974557132755834026126815789296421477329573733956554153472845442392736983236932355417566456673739352730741639037389671268254288336458059759926942679059568443075131900352798321875334108943691332467272957503867391381982197984373104389645724986461814205089763695959315351177624653445237283108867207771394091746491966398094405103321317872656404889128337515261703612968946006304719988143543434538703156429983499003588721401917264622084179692977923832896536728477553217827666157586431671692382314239848846898016182322364186666735185129404652877768921801841766324748712592285169971459832657834665432820951546647952929078865512924778171768801750474457411211599432443174375677264488113387489529305154865701953274825256376733281861105940180104947166588151535084232458778212109998715615966287220814833604383084637496098469611270167360806934460537549267695734345155043104798853194299300689918166421733637894676246853725436818544676243824295647257251850554158630742402817431548126013071196868495822978124292183642422936490731913141766810008396014619796610247519978627997490140738742197442725292983418503320608332172971185770795671334218209850654770855392214032568573672497271768338282534936678411454939556155271920579766941196903479622931412986916888403313138698524305891404803052219122247099248673913883761222514914996128649130946974556800507189773379518142949536884953455878082661792502192915905196017554280017029143289729640973638887734729709780650399695865650762514474973973886095868552127246144803896213249597842192439842055673744925922360210549930231497874841736198830703911270126548717953599553397744317866059580177759114862059280058483866991457320418035367579834647994946155095927180483549232336949122898012316633699200401142748567347473999202610270189317174111975229636277232353485693503545441979299108819667031688830154641590324889765481614450120361294280521589616437319640582648553005587627928479529953418898047149472645682693713922630620954043652027133215332347780583615113272250113237419224554861664602235766862185505342349129587178779053109073031479902163894369375901635470480201329507107756893796445491555274708163749843217415654954785420625703577980735483917223511465715739061217138959577549343084129113944477953744387862505085885871305332399008179958118184541271965528397874841798672473143481058494388622827952221763745449311013888227637685792770184167560288553132613752962141050367742244227521340383663154546545624889598914887574594892291527394484998649991090427880371696089520932159245428947312989860682681637144584367329152247754897807278728665652871713683431541196487173457650176919586255811866321285813219422255632491364331535619691925182963243867074778758658090356678550710426774087622142302888138990781114142402878627192608008358999043813742021395437666632457721376066241215395885515578002472973767753775858368480053971455434319018528650251355488148419946335810495579475164155123225444266658286048611573399130769815640811978818813668053371741361979485205811654426184249141531642647048588901713194682263226744188271365707171467679683343707706257991358622701718096176556115067149006635503929688263096619468825982414457392482212893599688033495296469752317847249706648391193536192455711994548675903846971585106772386461027754575731791664277824271831674321627138424913234965622073234397618944968132133149523571633780232968174546682610586559141836172700526543792732693703882329024683837829830837108128967310862084172103367135067972371864083519177559532447313485547533924377975028356697484371084795332786764672716986939291873289045747136031575389085244886505358298948055475699232779456141148197282187759070598565881530059964040155726774135972814526890141016931391241519800892347659733983963642486265696388692702454692068195619490513936733098709899879663899995783615281911644847011784858193410009205967163342815760230212217965434746582544021967023754891462422547839915260137335340165318235244713932515915079828484359580707419919833248743866260342468535576494697566933074641412553662367185121055441040580680022385424017477509659234406756591943454830990114970781677813264362136315740425922142284352243036148105626061927135880824624506757784106272177079558776335622424639221113833878534087752328065546672681631225087340035783779590157314414705666711803257150105962446430475282133764875647644994320142100036093618979729282732319254190949321684873731811940730337745975250140880459171485812640108383131413387717341196664474624970379078929011337379520574410492473798143149763571077991584406621288575043855859596844012018576922919147128567233173037237551497294285515746046870146736276417365395626276770208584821584549258711992387043825321631000617759202880244212962534282722462666431668952447505869907395172360194299410824837768198548479688747775677466575201430566708507574161720860868206665402596159434460629516608869905477434230625956842337294586398627624563065628225755985991969899851346268247473639358781441066151241959755718680831262438668411462288816181668266382185597571236225882766597585987268793929048764242390756342719462717265728737225230626348051189787111367128584867259226518516416583358463558388313497705086788861482815910781637786249362709244183329534838866791596370516970894720537222752012154633824394632481429975152823096028128018172872529093032231560365874134158578469734548041926028413376516259421716577163179256614459789510587587849146815611321797322777507851324426055299163386449856611699781838718804556418842852845132844506199432148197534601868681557990606869325378137160471778633118456119626886778535415558069287499136174839224444405392451840192430512322832679572989220226598906763612352713946961669611332966275417942428478732548612077616184678869545471521992546456984932425499131469214489297937306711233986017487106734060155827888835891085416558677762351976776299620702662115104812788679728373981475321785995558849281764203190625843247064526491208213098795016212472526883365813608238397315677326846891469918538836216604516672433855633094390752560428677087053262066375736074934344763838931683284981000790896612186524935418139610621464270535168989745581957947899624345864962913636947472151721004806140453812693421184294136957445086176423463302076378142152811771043943157281000406748805069375451386806164238964382864320990688745451489601152325526185394968895427874112223518719394992162382475615915241807185171745496024203615212363543868044878577208992317067667678426928351124528415466494598236317493592176894295367847267593863022790786354124216246690637707805427216669842164114040905963170550456635156226598756533526417970255492769742137282682252401426734662351411261021530261730916782228956379887564807831208401172877347999563597037639625206832567821489362944036283022926989032647378479919076235477735687445909839547602764778570293754998327483336626224479560377851955748456196227476169916222555476438866936685764310657380453123059156357586569274925769557925448118428861805862462064876988834325614837996892192327158353382570335796415880882283522226955888498968248284838576228322706004961012623727751143277689875118342459293859272187557684128673986764963449325574726664323002693307424561238228426579874682553204738663585868327157877361858456943279536218421067549163249942065217819989177296147020418021072533991828151810439576442347117013378372109424195712552493218784193352331029961454993524706666412795191186179116101124235939539394641671351777834446813037625365883783762381613611274482671149869223597832215562137546667863874599443669393647551585551243643770611240734666539789658214736457741087953421031532685883586453198318782231512786086883074073312787270062439561642096712230492171723756979565589699463815758497828173687427612347806449164289721441911925883293085274936367744809458671439328267872459582275047377176937457476635233377767178888247869572255795512660761711158194242126565266469589370958901984196365063808421297876733149455593736827132717741825713426876871724922355152766379470049212466090842274297115430289288349524603241068664339732944528666159819193349974524086170323155630919810660764189872161694324801714959529484088427966293888759634764815832296734144404145284952987152492639592645235794065577714243947114372296549985586393149992958257551616930529172847376908784068414612919473979588279367415505729466759781245325346039077981461189674541359141609261918753476051368979667359377091006815651816035466517934341665199451369729370673786695975731040053494177653191044841016662022277523693492504324837523936506855085194981123046598589723989328154622287581153469920855435658374291928621953698429183835561819866046386252576382690114401928644132643597631926909766856472536110632437591368981941924733273655320795151096541303375601007645927633355697532473404531190265763254393320204603860624446948565389524471678588783908379184719502718274496174348267368955312997192853466129147480636255157815667439629197589783821291327897178271366321693692039873690194679785836724910260639444954179383246469135892537649551668592784753690869168142815366128356591293527595983206802371255326726364320103259591231349401841493953392232819995366475949655131750639813989428698793680317395246756508214387972271971387747555262748262294936808033698118829965448787491833982286684042803841096528174557725194052196138585533144198768399958326307371644933119225613595366264801701957534208397377983212656985723546389755344768324423432612631652167295541195132291623849195878414077218778763512560157054795669945013523169132285652175569463489277587664726801544843862229637783812485541482363284553357950270763167570530154839425532282522834582051623283969905296152826823744508238029841430666504343990421963511805836227329952781876349166918865515787411522305062179476825423056349344526426224937942983195535570243684657685261314149252842731945559765787161993231043425235108646380663401132794657627627943226891397086526867563514757105365394478323919282935456429069856597586742537950176167122668226710240728346764161276141863194883675649974828304753195138328331746279534192741878444083448246944927638398158893039511917542903069877107340859981360574895594917809599605062435835308263598792865533613889652253162193015626565410295730499575174513579159734751191191775753877272815696455037120599036992650605677785317771521534456318802144088903415418574261997729111414663997795185146635658726920739328511253266329038189839826054273953585187472368179935313936167675816656147765685228111914938418275985657284090750540231486262139749922812191671737653206622205909198405815559475911648304213617183227314786151280695049135425782348608500895847786845708703711019377124134019929382508353697539548113336727363834489347985436184991284396094592149534637637027622609909632031585318916369751662657356982031319738081189596926906246183307104741861931889641797473319352017751087670384338587721561429272574226999228227612889782458735926751471306653307749478491842725228140886258376718073167577718152275162323744260074210005463363273916256968237064067960118419168894513509117770733892506428297269668479801771889221813160917936922130232558111739405592801177989898381742636788460291371166240161333823210849180558124163993756039013973016669782681852061857579869559899720865882545656015789552397527799464190170337837088090838214556473376766122224122852079854428290753721449531548269084532045481970677898519003616547507089479102123217857024091164762123542673675679770406487597343970732713953553301188361845098720672967620012030486164931326233376850432649427949820587371646939387363448192454544075382741885864488988378378166986833936346883307867295974098257099997533404301222681171957710838193316275709609627551234816206294426437197648375474563729497408475858779883772069811589472072051528789849235496797842364034429158235847345404772806306756117433367778578622589625506949950818787953311764380181482211577438965422132472419642175488725976869453902626398880633243442914632529630413612102813626325196914542443344262531363757572816196930673898616684023364177963754791497283631151148980626165690219195644331529353351081277190253782447280416133782087826154628149362455088908721378271971754745454377574035741397717537082421592330201107485377154638162531354207659222217528223762168245306359889671305280785699609185138192415182434501251121487601338034714634238721136793889727856100038364940871821297110917837990464271462647281640312951107203603936373024337729241270239590636972535966277297909697311671219807347290768478700687559252119664429429251342810250942995168772620575419792511976613325431526244488231776680836224574343311591279631182135436416842631278264878818921109280202971925767799930175406491662822563636249991159297430561129867658850328802792229436818289657508851407519801319397043769635063068682694029898651458591001238536593166049372508195782306458501821816047626642341059685733167153458058236676056275812849470010626553462232617685314766498245448925238744787966129821249728419412587133419378229417385801887117245842688732252561995017457682634541565655836265941485283152715062368561237829814082047793909781663609028853241948815370695802153957574626584489695020342658605974413571459177500251594166016591858604788172491757028421994332524448155581882032757416266741790120105180296385425364221223798576516708686725549048783373320199349492593470921418218759515691615726985351737610744933185964641196596630672524785496423402532787946279805252124296810621816980492778467211222874549463159427349451213353948905157906793955625131238789765324459223382261591372954842338986943939714968442137165192437250645918110005638388396439139637621130168326352423685463856830505649338596965604615032990620383947935520941360035834975787794585920566157185104663195689952454624542454802405163113395274732313872171184420467320677164726622261196799891545497408407544501756614090697981912496368693070977918661135251989936795681461756453552576920477225568141026016155031710428614326542782861323859988468493216453581110101448392268278391597417804422334453363683145766493510936970230945021961371259427805814474675033633698954942115389977954287225239056672141541869520758640515179756184042189319491736076397964147591129133267332297635365111459014568738489692805851419636796647116675264319111113708879672640328108981283934188377129564122687635296269551044968907983508175001972957179268832531286385159428867160916985324327394142305733792149265772689182472469729197713308674619842405179312188218191731574683670215171027175234426546298975260666358785897883881029390206767484652954996503951293984523682347256386722306214349740231687599867217431396767332703783297236645884336996613212868367536610145472333658734609264462694393896219856091535822621118838563734267664598745315214065441543851274361714687701295399548536664262335549926908232947119152137102509876837664344569437508833148133994613239450235842698365577302903005271302043419684479640118545049632759886897231850282791772526519752450770739122186829692988613386086067671877214370421667536810087277268075787220162429297873909270347774542976593712235654708055086641749731885718695354162192736234316815851006122603226591021867610640525635933724688614296531946805568039958078266148072401805477633401467333473476396831428378828445024024411796548553113899187344322462627318987605552179896903279901346317326253262514312660848535179694102110421411751791168478056707514214832955359221000542264525772819836494423092071306644547451964179516112175323172755872911654079279339834870117851317312624882117278201787864339599896262092215654555533132010280139733216509679029106548820874324540169152349553797081443389811286455127864047794952266578486753877756452018958494692527185743707397607596301163367548215716495286390799661918988976264916910144691435463527684964690756075483257781399252593549575566486745653094264374928145736638118225515318838928836132484837335491340361110897414458375292384299271238911464037768763627127001059753141162943968873702491124419164616765310972076370239681289350912909836991322280989866196832881454246661392519304676349838544992679350847489640455288052814236088665920565388528973984495417135474926594074447896235765090048041276397318999793527588881298921415130847447470139596612473277025679473725836661471555239634771942495154223785788884181425662230492017642832658622928967885976090051839050054835815641795548512653064698145956325974310007782593947128369621671738958363759236377457524085169339470229272328722661413899640090021527851630017376634643520995396674620577696380971572977559961035553852623250940452919153442489520292862188818119184144331260913110067198967098422477005203594909412815927621084862049128174734102818793885117344593397658675397738466258699197400425245275535929142055624433545721354670610599851134659405147126529484368956751362199832873969996829547931046508245065651969128893164988091340244863527289140284144787448806636195619115791232473353789646396237735170742225526063306523320520690351971920893910834417441132885945590324159255188658939355818245504129261444973462325221231514376294131928762909543928695769154914799636221971728143820344748455356421992493294464451468347095319896036272289863887661047085922879496741161000737837229287581152421167470376751143761437188271728868610453393649523537824875824944751494366656622314004338537518368879284078450160245925581172713219560607661926454846621173579477511977122269057726952382283356635107032872387948513853897692815734188799344254734745508638602714027276557574349721466459910159470988297952459086563149288840514849122345592649981461788804491399099253654465442588645912191744614077405929369664705272248664363791194458502828763094912297914674781000225276941275583238721216807838746758409667457392387686686012360846263617255963168240451468585626463088274130429875050111583397543294784236340927554370716896481261147627819321089624364212764279269260176708241177041634627054624255112579713668387960573349614730610625549242542483888187961734216946072262018537361834368411915742470636598543345176516385813839257142382554198743493435318239691622252459294061352124110267741103785656221868142277637516932186918705229683641757574528258831746929648781511470836286442739966972069082415389012654226483626532255929085416842790299837664728781652239577112345088415534028223846067199752983762873832070249143897810873514260971132746929590502538794743413984169834171452337449221526254245026513402875222006181192501827142823277241749383748383387923594159524796549747237599270195781172474350456381517543136472850373122978454426695351673930947715276547103600963361150122397617450274649420380883934986718131847945545936673354928561758895371626443948951976588323145203695317267433148951485962846214285560218912715051712350977777552094165945462396862230075228788642365940798451147376881370721254859117521425337550896444169027973219234827855328978448534178572888608062419106944575283324646631143635860497060139292938726454886425936609808495226483108685866917863569424645421966477389082847941806779698997662721499249462839163651708186315476383342611636940550869745026355264629672832672272554647062483395959887258311699508137687962510704764786396298832642476415999479292053057520477793747993905542329476989507596196667998218623042632658634961088851776458348515382290868978373348182634754519034092793290015363890187623211170951439517175693961423319555232234259322876618550379515346784526615120241672388793510503929434771576805586304553921228314443329896407347033245227133859395666572770689691236950191422444189238893192306455774088711868048382492828395344033714321022551345243586195945936023543341686343622828083223018698074018596895387271072764228037686511054350452253452500671781861618299100076782867196528115058558284889129367603979260769345796521303591580206137120201344231658449584715097270682742694590451842793241993146845824386177655124993958136736396183422941617891985426905821036824511714074820741168473455813823965167477746787844754041655261963088696662863501068199913603302776932889623814448390937712270778660387645471492380866251133058372552971297262674738184192695391852974813501162474843735805459700827136841592936120132830143402821545705899624450678378515411785812862778687646104836702286842877787941752600163475219282637292476576905997855475546566523066538671678887701735737288461606723913032207991177511554511722108785479515923617087933285177783510214672160476976297922849116237816788443922343878119285659205602455942693827038631314620460399950574243792759890822520876339798931712015955275247696822479206908299343518152523481654632791846180716592986788174880727766778488632251526588648168692769259530355994122355396963596457101608477895765751072102542389299465085329899901114888518642005464775336707078576464928675426151469125963199961054293350738835438650636719587375792471356509486861938262477247367103669406697896426483461536149349024794979926713426515352898149253215941064737706186965915127734492863242868769254584844653300625440633617648683839311412275126155687107187940270963783878952245279623617934654114288345992059015434114474085925035736668295668942665030344631949494647249100047269418612819408578632356155251682559386822675936543732732309640911818287002504877966733742954789154469389154231011594572621077618613188616718512854765603060143231317543287385649694436199710802247655564558363920806515896300861708057553708446382144062947284340230467512977210734708162107256153327632365559278935846805234477802604345920644392184259164884593542262942543836036656359552591455293118641857988564387612333517936464649832798548179172152717666203349225027406252035446466458345418883814796056741421334675838351246594791300372401444752963652516171496463474402895167416846735643207566309365187878842415965132770043992847573834694645340122367227332657910685696708449503146649185500723210316047891353691449297288144233465398353779812067341767586975126920735545750480724755551281258549077016700511398849616751348714841667282681528226299907219396764314763413488794805042259708668474521756584886312378274863520982881597746696719619443577361991765692722762018556025836289428162959554318518239620537808953390333258840954651922873704735115295242104737333385147744238730812222246321990939542440235148559957899291592469517703657545617862644836769093113895802324644179051563887495681276347113348128122375356091000551139581718197977200686954307823921575292463859089318974311822558798839815744784880824535163966997945894967619163062371657899201953588894445959850176355273612871908473411920904411327583292287483676158224342453958597935433951544833274116699585269983955722008435583676991010192293397012024762281596390031640914981558545990718578986477853498507621192345602757928756702372484617069174808786401232718735941296015088106348313497959309589125257718967966453464296457134939429719676018570763369630641854421878236750794635006898667117936966266581410252727716177957424268522629564049231294575763122883214566959500858384658397657874602974894079988383631147779339805023578653378848616864216611637442077689833288962586683862879782255875240194413522839049039009741336444934862265583792399227317494759631118751959584317770637607619267648081345575645335993382298666736184126720097834521768151011004642319065152971131767320314283789236044517838339104029436548409195739610005867954438483604205386607576435834503116614905762708253486690737976186914087529921289461368956916654905318208678926522428152747120814270291433546502130353951233783878330866439675541779421905915355738352398573454419764014094921741292924495854199108101779494329551484496605604983812453358078383194259900104589486022926291243469091121278689296736428254227023956561223085739142284478354996609117059092412507796377082117517682903965952148315678951567067894862634550191126242155576796636255781136458144185751496977354640196510144341360466737687551867471656898544309112425014931784110995397187132738399138686520599745411378715561558146222561414162909329522498618944073053463646855785969876560193177602148885722478247007876816992663123617467222913604358399516243369830724520113720672842891328988937396358722594120860320986547872444862457018969725701643383944714397198332430510439574754710770755324954433903747735825814173388228205162962307539223810297638045021018033124539251934983186536464215566754586878826451341187254321756623322909629829596089129115963249371774353238294235665554037524442998629907495320688139885507309207302515637690140464238380233100098737657057771122758873416566465787420637450918117449410594932524972581427640688021420881885839665546527270639874779656629461147263635401635955068608936801123827742685914434751079559762854215418636340688521283389162315540485095667498286247560237423841894561738669754214744816143718979972981890689722732182252329422664142782864953143645088851691914863657931997634202504425842258721349102903383601742734889722174489142337920437332359264923838955461477727612107689857013399953857974653010914171221529131258659021274770211171595173049885769661687692615264150242222082470078155221848367364698423510189112778642799852127715014838659263651741567539352687474219468556399085186071009124794073572635672218128520416616674034643092104173165573193450144766014716055716936638273477144881032395928991555621954589116557178522187202241914535810444166479120538454979800265961649717508209946318686536658477984712335545173449285069417374928438398072958031407433604731163708301034509003485763473620224201103639301802566101281374691098946667451669366006575293874178285775131146915417204656822635904679453863632315402106263189467129457679990316847304818779746815736549701940875753495786851995622747948153245794467767756300308957927207823716002421914612782912696967363678073149573696626560463435092241444441791339811034259846567721247612404708954676864353725326598272479206211654906845683252426817605779481597993888361396053491966544975288901371652214804546581861628953925312839408603957079769176947243047915657126302110015165891160224740601456829925968442184185182888607389113291053244727735765148241549323953474921646256145520846276105722597012111316683408742866793325761574715574017094046567098742682567220677591704226517267652838124415834241603676601966852431829426193992803985123136338917019336137179512630798788528673693634524872916354724372953968275305379773720480646249691845998930022387987895141776516734945261687159629519296705285638567777592047521019441211745960780922956905503565971825516378342099957089591578648391327326244487091464553838155807441505526798714329081953275159786221860068836670716232368550146936570850581724665111338627901418033957153442700522511440853289482867702367658817877249867359841278819977378341035374588925148593598496731769919664780821166282113231513371294728850516217741552406908945422686477201825469535727986513037497911478249848044145409285572567126585645747614050861129692758054324959436892123010267630844520621122335185515247685484186793382519863824572879176999603669239795358589377208852353887403544373795058989447063578428186624845144232813442815545841634131104401681990718518347257202632771773901696789399081264382833934584084759476648276577132516074713276243491631166549611252327116401658393443365252105454286699327578332856639818641565113258691881685732075455971689242699253369333654291752479745694653182712732340470073882373340921828194527552745639531541556853449785074575597763454897025850917136573675777313418335002616257343221711223043078526506524544676246319436079392877131125421976414353199198362646733774892652341228645838635160334093860939119029857186651825658255746531498209979478421896368409575724700875909485585796940940385186611484416341305870467439868554064223834927059231164998398345779719824583779721125109094171256714789225193853447685419926380012865239640354859828281486407283172228827799940708909319105151731997772971811352686723376607167769031858068711057735782321480631371866185940168621734941517970455560469183759206641496317644633208219718155273944638266534350216354248226383646690634987666988522142589438655734337185838463923524863299484160306480594168783331661599831416682303773687685803828931817609064618219133819195794578276315176504239113382636535864501346286484116825761436651815889192027755584545424952256270739381819267320524445852797778326992664494199867797393681173391086183545048334056754656590333391864845618484982385928321104726746670183542536941556855655946617532151557929137247783502737170263183112086290321811166169754972718158690815282411881646733319537977862937783194126149617647623123668994135977911812335373983287012846997798377177733874419650171330185117402884866081304365223144913035352749395685296654436421079756249078202677239543308849202237536947276273253232394638603011092819405197548248283889983583227326888700211318344704375954790347118745868667724122663972279772048968042326297489418965351192275191522793534378325568654332399625276552245376017338440428614078940651473125465056131046665876588027240982975780763341685039261328066820909493590436737508881972179114210320626603378223875578285408754462289345363145618647976406829079096315100098013960560852312794147763274033048112714915972168496319257907035937253398221167226319149264180710008958367207156955599501594775249116741038640247989586537709798633652233466976695213655806487867101446948554751809144521660854574894634551280416433709754204991681339388456408272633508200720852363237856417836129558707460115926637842461498423987538474906302725562633407444249009846255938825588313487928507952473251326779988179811985186835303727844215441948530619511760818522781426777159390756183939962473181248743377846195656428335215623713347361849559477568641940381533691438176688348278677488155471685395079582211445958177917617522113237901130557786816950156221767340699143485333985335828315597317774332336164881421378845938192155337475626196433899515129997697078991680699487818626751334525541992347591882997844023076245129592318087366426275079317294244092330778513655046350925231180920036278890965498491087083213669878303667503366712799044058071768265102196445733387945391648956669942255368547115226267985753466882528952122279731429360915294483304332526326183567492447262779334333980581215659864178749787139671454648608436225166946480373230020717180499341451887119488731621596614025986767571983397833777055529213329884836815363694168647476674789124940377883864312236145782681588052913045323870784252720228778831426932642475280943145598506719181668535812548749949644599185519618887116198964755863277442009689239694823326746690395761083366351425888427221161913975088877854618305630880259967310988976817861467350147258379477246575252298654240035971116701480773113153367865200812402387320629637190810256782287772913656593645588209743277352742561635484927804623534207713987985191572886856264414347726862279917145465913416022562133896472261977234249715648741758468438972997207475208129788194839617324269301726318465994996198769356478817797636174367858270563958706646416953832900936487108804647437008577344525170256031978456313027031538981040822853050340993622527822819366965268437606393670164897023395820538670632414176598684918747452531453517046563539622423937286595547783625856342725277818279055571937721844435281631413816227499467783562316978451151929965424030037934318375862695473282567211122838549716215862022069222755612917758293955694230263332616527279734769111280819866416223313431529548185479120191549083666013233411619139769701451694430513114860580798804909152754745549111321838892045143206581816593228989959912964963872618088571427907961336687942243297537577256294534826543222486666523737024980826193481930561116650059262939781163378913976692485311888644120194171287952746685233423638160495586017871743482951197447086619811696382834073344025195187098164582284849466982705110873194800998547335796737687281643655900186267855256702744459915699993412055514848991345075995131792715153593392825225871685858135219278299193767444756777692624139037747916544020354730690014627873362387408875377748514175756951425738626937676853875052721688502869337687183042896872842918994561287511328148684746595564096049988456246394968168728894482494432850964123293495687486188653740978738642164625939987590229901297326601451455856757679213189165351329991202590837055766901248985104923306503164776211382398680908156074274001698995028474075089850866296864677109916167522841794441981435277965819703726635379417238619114388418974687726447638450727408480484719123230704483225512323218965684254554448462370476901353236839372815664919377541349747358877264529819060454447492844658269885568349880371236719670431955443555142472736252768744940750254308763363483159855638044718619977624885618388827469757054271879160495136958565776378384223945300803371176677242704428477167316454540733135257874083486981726186684753562436244653558341949521437681254175339891864189655511928844643393317102531678875521479979041724363416407629749133714297457435411404437724371251103396367322933236602254996409267831263052676289296610420234786802499317788038494013634572436017403147054831396896792567832598187818505647193372605577668404168206752553541178474708223967276365626092776996432335556973334329221330185282839694756529138148064438450462975565716681292635760489193972607257133453449961479281658614203855622680542863768923950229634367263706259474015036295779072685941048697043837193662871858750509239055823005927221086621649064364904043108105115818112524459791265416956803939463930727990338386137750696346415474167117446085473100068633544160109523003338828935045028337183938188065734296720829273530832343154028754695493398752547351035692793846881097839849314428305587594579295693785116161638655686955877432054864056284943884894245310285483265787310279219714439393728912887037478210455881916419652477693751097573659458141132967965783692536939177454282290340924735452637544184892231435534985128744561686223866882165230112136565235219959017684343092679152413873412028333005673683093728747476766017503681324951262904356646893717575640720115822564453406630229378793490688222289259173254879106398466408508052107909932523624114286615419865190744367486512372359247255816756703612638033031178428825692371003254575647453874126845179687729598291141633911928119361804655945146859463131355845290816315925934495306375379213353794278630279443770867767841967260190303662634354136618137483569209150492613697763871241576157366912559495391458158173193577393011683113412926988258627050024124188058155168343386024395630748244092167808465619810131979180344942913737900268998495750752102579398045146177024822293458643867706033234288216972186314408733395189815870155881392732717369556878300365794678369470535802833484914706186636202511255816141993498995295632621272335464722128417359180152515156293946955301458045185116492729764879487736197174485787097125195555293802917520993215207326160402268253192632599622437793921778456589094658311476027768030453484957544921851235217184750413221351897844598172983100098179542859552422426023137145147573523395812426223089347584243445220764350342923031962846240867389918301491169838599617407935348312691973323469371078051281549766796165066448650085634332423507377435153444887774658965103706548535549107912625094542021229476855796452197730333896366567321601651764200492615626888214834427730495266920244494555390297580275255524553704672467652460569249345281837328935350358717389330891657482706716423561565313135611308326235018404622104281219322046498596432674478827419197059336103443404872185482657843479734502372239614459734463029373055314329659572371976763026031621849108256372187821523117917653659324541000909802117962829614942678548285418592817536971371466940777050340181244461674630