694575946981855697791859765546575626599573977738199798389598693873772597976896977879983995555752977677696688656447687879986866436668379468369199646839468798963764347389843783868986871147638988692793796836769676845877643754689796972735997234933177684639947478973799285996999626664377189658694969187598984888688875887991799971799677688878666277984766878968763973535631396554891962477878987348589579956939246986979851888538875897569658271488877789866438598467768843577859944898849979847882753952287498395898992239958594532367797769149559959299697635876935947437997683387487432889398676481997987631367677769586365859495396338873995548939328674459937998958886898338573699679589668493442694888466589618976447496694959851785231659789786566779758793755547699698844474961869496845898988379687289483764978589977234696869941596996489859458544373985764768693724978685874898394297669797475643874598169553527964736888358969737564789879729866844599766887788637988999729799485553591255398789939589679565788985645478789698974899797899197759935517477594856759359859199442999948676389748457489759947993573395696847676988579814987529994994758275468812863587994593985566699345245828744968699957384934826566847946927867529579578765597974683693877997448535857878673593716853986917688526377599977468723688486796928799853617725361224649789986978933949859997495792929589977987867733677568785394852758975185792969386963667367867937967969898877796813294667879965198616689278835479778868675267877696985733598662788888782699899468998595847793399178746994918468547476942578861579862668989695788567968681449769997198839663598737864532977538168749564669684563491297419834977767479152994678995986884828847799988899487824687668883985779788667655196839884888732727793997256864689985948399448789596947295859257978574395293597585375958835185689916971634779896786866938739999895597474894866589957557994467686124959949983268998647844633688773968978482688585775145397869885945487566438983878663457988779799344696755667999349979976768689576784837983786123985398838799876555598887736669887886848646927666768754589955888265847973995598868859856666799477683877931266998868881899835487894345975692543499779946559483936969489849494847648844677793598958999988876966759598716277939795462774987527592297896712965684964598752877898163689868896548671872992554496989945869759979697685662636737565889771844867984598844884882587915874749377688967953662878691738698818489286975886879659888776998483689959836975796566354979979999725567939686994679677875969754655849836798486888954886361274848969426476783586745773969777957579436898453558577977978987699265897976858897767985674755888794958492836539787939683477662848347499474936288864559695996638868939648563927788295858923897688895574567683782978859473385899875259735453923797829294959697195974285676685875565239847597769571867785758999477188457575876179297899879849115947699898759928886758789788479697674795694996868559439868188998777965587854382887876299289687897892878476914888778688457849496565396946777287125498412942677939958885594997395698993564877894925988593366548676196768686582879789697498448988857983587577939893688977566586686799724879779929996885847565896949483674933986846695978793557762865979378679489568847383933977922785898478879932884473899479558763877463157856673627577929762742981874968767686715967355767864966868799858485766755474759465964987669449829878228796858544786988694379946869983673884897587589587548437648925891632836688548587799829387877667596489789397869364189579379859959795439867669579283386789475787544986879745778478679541373794337195888934183789335648353969281755584778829484818889897393868579764763424679599972967678898957949656259157516346564994442584394679698858779667578989779389827559666646276347868878959438898865488928377259565693699398668933559454758733389318685939598991488162998657358385778516893979788988887556739748878523487964866996535727533713768299867247671489827498958589494696599713849497928998669772495813279589264198988846766894576538658856747457785476848875766999998875686795378629699185865755769768579734684772569684973743887984978986979239695889886597879557658588876669856555466986986894929373379775588449586636182836747788827879549473969655893959696572699747792453866397875556762997682886859955959379945486186938926886493892946656668259867775928678674871487829858399746378433997674984877969366448957489664679479974439868977997675966798966264846984759936563441639239849757834737956426792698493556892483784757967523396346639649237736489826659793779594663678587178846997163886888847736998788684988471739768887449597486646698489999743369595697991674575387854613788815757978877658964288554572639686488738566564898999849599895744646563899657197783169896538346697915789474995358897849994385448479959686966653894499837658972838949752666972777745729948469986595399533167434875564995574989378798793937948839846946862798778898999479277855414819875399986669898385457763584833495335888168376859345779465983497623579767776983997538269576567695855553647556678889889253894356567996478736988657179298877342825852359949873974493771994888525886498894667883735734967777844869898648897274666549558982329857758989674696868394499986969896558845528867995759988558599935179897786759596566578955498988346798585926598397756757937588898778587776499983778599785689468446479367698794876559475578777243667983887459369767769425667888686969898999656766796784778577954186927278359686979933419492959799789747862995673374687459985454986998577794987594795485717946939976759596745784697847827999876928879679885473688872585666975279883433799696995469476478889597548955526887988786697675585897985459555989875999847758436593366647396698698896792698565778617995969614689699968773879459979973456914775778899452862898679984428999898844328868649764675762599995537594586852685971664599785496584399786482996887883989446968679997698966486579999282676689288797396888796767994689374798828586788897887771759765975399856789647988948989898986628986959266939459895868649845847784359826662698654698917967595469779456584739781877363932785897556399897538893674942782427864784878775693866477679564848693585839997442624375477579884465677696696857476554685888454588958792778789398788869972749276756385899753286599199593484692633696944859991999976769989989639987696361284377986655415258897578595359239576669694195578959594897764697898568782788986545869996619969195987879879365488957457377955896534684879478343845882397986787448862684585758776984239939573316374293729497897235475978577862385646984984584464578786554368747985823998787693765667494796867636575683854764984892766562685759787889227843492816956986298785589886683389889764765966996588349838797536679967265655999381489586895799799639474878568568613456686279594978899389697793417298924788289497637567983769777796359574898297591866959598651546835619878614637479886797987495696587639774588768594877958526996873489974898884391496894864972993764796688894948738757766998673826885848298925698288298477849797584222889549874296689995999594368896988323886387748953679568787995777537789569879898795585562856959966799472267976939836599759978571795988621562361879895735879916847767246947697978995969586963979769818947984756117687878458294677649867855238878964686399498649949883557886665127389743835886643978762599288946494959499697363979574798584587495749862658748877679768756489781359976348885836479787765468592567298735734499756576988479682986565477874387684218529598821748857856434673987649298716573968876386789793479391688662699637967582739595841766695529936979495977564576464578569859996778266747959868762447864782225875182283998663847745635617549459369979296829438857958961759617785838586967548867149963745295873577967655892874678686975667899975673946672489679686693448437245787179466556415578968575686837975679986959748969215697492858379679391139872978557178559288789939394697987598337926689456688873952728592137952744749585787937686964884575817738865895938588516798787967156353797782866968436588568655972617752388736957566359946569899965878372987695479593547646822979427439774575837587947984957467669919699668589936877665566274579216984895672534678566893397889734269346168675883744686987787885754746699299578264268796787636767674857677895237257349866986585975597796971763756889789897753876899796899577984696977875495898889858655788988897189577894888819597965959766938653995971693899487497546925954687946635783279868938588759794483694676995858866587956937658737989373969769559229527897238569989277799794849689856877499955688699297684896889728988548473626858978978574777457787779946483638989987597387955488538589498668896889898689887986487785759857499975342546993477999349273335997599829886299999719876688667348989977598934475649756917578769698898468487386979976282799985392885487829586995686679888584989876797958497548568568876699929976669893859958897669865939743999739349449958639951597954136798749443987998993937848877897543958999859869998759677389885275879588995598564967979966572589448794944541845996754846568247496718992399677794798456635597725679585741697641498695828568573973699982755664968373845548798775284834864763734996944825848562398719944968436957837586878874649436899943975585461347839698784865989569779864884952797693788692962727548866679897556156376789436957899965448379889878573653799487955964673613739529884874427379484296149575794879829273815429866663777784697996469886737397776366979799457698786849917867558466797494478395359922441767793799765477756986236965769765867597757192886749637797736973567887819986829983389796988872584625677866867964476585936874995763688483455675874849383719647449698834799986976749474329599954937788387676788678987858749679585698777498554978585398866878358671846927598685828674247938976786741891892795768624989366945998889492733569429473944998929563767847699968739944694759833266378966892569858694768891515646487837867345647618978988933745845758899596534699275473847769969814993852998868879953878697798983296469668577895957638883788882597895594899976383557639987367879457885455296697719469328698575957457978978493958889978248385845778755627688356948792689766686663577998782795627944865528888969514539375899469818774586976899439973992374249669849648249749677967753967854694885991999623454472557845885685839775799885694859998774872976374944589747847689485887491693739688839673765688479886927768783267143984755938698489479534543759186739264937868939875898776668894929726588859865689517484977638986569559988963778467555678675445764679799439638984595758792967974588793657498868396389843726635479738677866935749336586337888497579697359595619896685598398576839861579696996888819899778638986499786788757755564947948179226867237498766769858789952297756377768836279276899216198794129766898867258946837437859866944835759676193982929337699183178969387598548785528788397788299556497567435639989555244378946249392875545996293546969684995428886365873434497984778945566745453626666871429848539888659549878619885765789984943759954946749461161793889984769434869876284738764767954858685625629764979996854279596287168854847577975156892289969478568657298656417737989985972869879497989998779458855669769826499965645578875855848983975925496668479938889288984493868849978967749883355677798848766627983799749788838346825577957538868349897873938677874819296949386798656857859967196694974899969869729583767398763488983886994459965139442496687869449568589799476695658799981897999794188433995878566589672646388819852852178343846858239151799865657469892489179138335854937989699923763989663911928944855989874372896733435947997565669954895898637597774883959629895785678753876886879622398447869445998978186567977948697859765569699976696968737754964988993186166368667213997898789378242649769897546737665776789944866729797797867899987959896999469599849928577687899856585139978656634268996383627767392799669492795815856657789963691794882678987679668955964769229766685975475958866463446764916749392593984722186896718579726965634886365674955758768796793162575772733998654987695787749929365678539998388896958375346999528797787444499966595297945956745988677975858889816681868997958568463975798656985272888965958472798668896457998936756597989743843557794267677758576984697772894743478357968767649985974956666455297759697673885645735767467787968828993595574914799747938671545869999923959972976396782786871636358347976739759479362362374367888562388336783655698495678947799988885897947926986969379998759355886349987767347678948549698864592749678784828694819889957672988696884198927265697635764794897877775953953787585813511199675353834287986483899965362174398788978939954889696372449659356246976678458185166698135998787745455687884865587837858694788694588967989847495969194666985818865429739345566629467417784399762889466971852693226174979662887989767356795573894294245578758674942644665889582688584857696948985886914839777636361899773487876888959797873936616888979796486668429678867399445755847823478268638927358699769982815796952333954358644245869169677876868369869369983672697467863357689775796956979958387737153436896647948646668956975984535656987589568379548493886993595489775654632554694967269924994475659674748787798755969677738574661864416927873698673928798574762286798426347544885557594639288159263442999845446548868989345799649587499987696473855697539554583359359647744657648738577185985875545769736423785541298499846486988957384897658677352349395829293578789787469438895727764886956965646977568384972589757877484996697662698347639849386458578776965696719367298776863765423867818946899987496968978579985694368669547932787848859799895353976883442938676853386985479487764779826492895854257476679366579943548578355774862337965969944689527796962789795159995566896438375682973677875769873949878325848878438396856955635734897394197973652859989276976838959479955865638848273697724898899743464758769689837525529687375496649852977553964969499747954988498785889856577848757544798578698998876596946997845858779959298972554857383894789958469975485684898594682677582833897658597659567973858633979387867269742774318639898698487778627897997478656876587424485986988693927396894673998892558756723788959966859242624562837184699893785667569315873887468777667216838922886349544868988889948988759383359779673983993548987289998417337739685976779226892986929768496988864278589785648156777698954577528294388967337989899548749798678297448268572864893955988925795555577782899875878463998848676268889294834792751724989597445999826651625786749999939976474936958697844969796365984689128758981546568519888926779178897688696485198988777387499479457375885835976448461887777966989499427459275397557784264567998858885883363476338866658441686843587866367939995238387685497969774869456847966769154568668169756688867589658378998674941731933789898984756335648787894189995987686833894378699678774295778789339536843886995559883678866492269379948698557457889778798857965466999582594794936854842935795767959849629544735396859776981858169427729956386758195658766689637591684977476789477627568291877849279946867969668285597395498759974985839985393956865997625329869719898649776536769798789377829683689327855942699728489546358879898475785965177686437664889835989746888447881678537746438639589674719879956843853998694799824899953876667997424997848485486499938292955635966889843956518766386659899377687755527143889849896868879548992965698931325997655949558665979855837887768656587554567547279697682282599984896938679899267872937898779863751386878687856487759779799289821388398699479587828997649785946949686884699918926731684798989599767646765996577876554966487643353286748587688638869685843757967548788383487175857598593344877438646573762566848818594678948353885168787987959188554735887653767384848794566979698995878896889648583785426993583626627495457464596393789565899969879727997479284723998788365957879679999829346999358481847985996874657986566386676777689669438539288397375655773567867296494774864858425747769449698445944164188397888982985481894723487875717685393928688735629278665338478892791953576998665926694275566458889577458387953984499931963229786956298989597678977886749368839941738679958828396866765982464659787558345999828343568448159868776796697259968942884999673856488646288888899993397396588996535477927726899693286756558267238843568433456876499655589947748898536866564788477795935998479925976866987884695459162854997887989432989777497977462754788529916784976983833799395969786558286961577897937968659549799297846655565285999657363965349572999939974248543797869276368324899695287578528924929975484897953864869878966755748737896684489786891866225253689868473797274978487999556886297694775167487861989959832694979375393798996793929862595929477789568696536939248843571996747886164818386857597852877326739277939568253985866474569993599495956736549984581698495848797891728998996765738689799887995772759857285739898475268679924779967357897891865377678885434724595579957598799895897439964196973179258836837899694437457174995393649598789783338878867688938956968743595618659136786794792982774394767677674335698771989955315557685299699612697558289299679546494468875762668455494959886747961892778866978777876284795277977596883586973474684989577127675579585695764952976879739553677878187975869686699758379731818527425989699487858764986829989884989666678849898586695796688976589589966583487996763385786829897986958359949239972474567629884678172949377483627788948769685479882469796898217673577885686177729435426296785658573118448986983757689726381869898658952685582289477621986748648699794786272776897997889724571793785359695276463828999583989244598528675767775792758296769499792938885498478647779975696855848889782899799164279885787877876775783479573624548895558289247598646774399995763949796489828856686876994765494496649974699999464287899899789717967523999859439695774999375538495759889765879979633456899354845587964889679355328728386655727993174971924777688897777655598959687915949959878866328479992872988775999977969527397599256898476787556979752574657538797984739789895587941678259445487346984981898689676496972828935558887663365497998564968479767698864763857895898954786867581687285994676759364987488399355218997476586897689898265863333764268631995759747925669748871977996966579161798756486937957398986847344766739879736868789967877557776584585574486784829275899797685619558984937379925465838266657985688734647896379891789878895974875391999494687836554769358778775628693789887845729959674722683534897952439728891385955994779888777899498538989763962628999784855572899973649665575985667578798571686246993371583696375437836889185547855568476576826345897862994475482395389639675728955948962536799845836766852687467587688964181973658285668668777799797459752939937885487884884849885981478777567865664849613574998688589785695258459627645926978779598829566955759259699767764779841498867837746824488995682797398719896873779758729782596533496998592948749688688756978948542497398826873857559327688597464456993875984884951995649855998998975844256936633186728753188956896795426965984997869785959787974434838726553758493779694969477666677987914434535866121889843556789866889484753298585642944894648974715772998422698956679484257587776266875924864974995898743784356996698935595848546399899296886994799787886479638589554766669841333454967377779881756896847474966519277785698699895962787964965866797394899698668927969888867885783654845499872692749573847699487889958773387928644667877166674998894675685687445398378233446779978863988827959787877144638886254543896974537887989649658576558954653278356981887869822588772387966879578665599867348253942657816498792759656993264684998656977653414466525786688743565964889792937647689324879679772747586988797752378477553689453243843596775739665845589458698986955892999775469986996932848799584998664738678769594627378497669859154559555337853971897739493698696379688486651279668837878974964552632819848388889979461173779688499695899639827746669725729565929874557685126586475189997839687798665878734987994394788966975763891689853328399897626347433716961878783184868769899749945675956667929923959567749889285893825248957678486869826847783182782955684689637917787938485898839478731745793944699978659898956759322959527397697389998223374993866258987875321889763539595658857419669598756598933255381842479867546879856169966391655799386898889399372769979549293832765842488794777877928794285765993838453918554819745987778978953794525569674838785955455553974689685577859688857883829669439889831689856926882997378343996297759999496599737993897856669882799394883897996658987848489295743889767686639855715695885589897534475569794518975487818984367983439936648333853773449566897796998562464776662636647785667987275979473289988889794679528869454779949759669379986477779495534278583367575389579777957678686839782745568372478788978876579369559545379997678338947597778553844599527667848761899967935622698898738935823744967899573365475562358887699684893457694959847988567476756434954796662364796496888188752289266689726453394878677566929477567495147781759877957776465879599728973459887836898972486797789993962754748535727685859844986737968976792986745774587679684879741771565885698759966467167845883571876678888189145668882635857883798785989874966897876948686989998352877495959547587695433958589674867859396939583814534743954863889991783335775722737477986999379926499949754577785749465784144699968674279772886511738773246664776991746389979978598297572554757957184481255626946297683849556669968729997984876868669477576328493539865272986567395574743768879431646186356445468873775569198437589885532673358756598888688523956895984878467673855486346536698489474982558656666995794195486354747937855234196832786988859882897685965795662688695448685458588968847964668883648995418767888671368948478898884676594697883348886454875948689977855798649955665943847746459649379788387736885917558485958944858678693569594698727122983986479814416696737717346376546494569756596999964786757849793376463997548756656689912954966999368922969959775698946379689963431467488938956629679884981998935666997999795895698645945935959892989822588669264732732764588935356668899614873588457799483895257374969838667186867571798788348465998879567369894957733793374453667479423399689677196364698683229796879979879737499966684996897667279967557764895885687378868976424785867928775691998173346999773685463994798779969748174594754678779953849458589775441794846956487973677529999289996973897288386892337588875679816988771967648637836535958978386888846897918579997536655594734895575976326779689974338939948969444986896456684499699876299767948698888524469682399871835678853787755696799462324778466666946356749248875942679783854796976954277986342799788578763898539299864334867985489368878795288897579798617475987929538639788567833674789495269883999565785981276838887794394675797776588345515797696596879428889483479578449584975997447738197869867746479783488699996764697773327887453489754984996876799797969996993697944883936349922794798497855757978573692754772748584995477948789997886792696985989891895738588765843377974775558972727978286894763688635583696789724836894955759551969685975499231535697998455972674815599556598176448456299589518868483989568989795628968994396784644494645487265897915746894958682998983398523999918993799584899595859763487828163995154277888592968386787394967786796488385494855212339927849721899949887698469552593479769769553959299587898588358557569435739372888664946746698711866558863959673575437497889587428881968439874657499482729269632257851557467653885579976846985786775698881958842916935753876663966177799986229964559748977799487672797263317647588777375753937791678975394569783975685896538957589995739136954469499883557495672465838988357859475699788946766588577528959378688957767874887563857799689599654757382777958864468274649855898875899247866892699372897917892998692455749779349573988589849995761728757455998895379366943464575675868875938987696677958489326689634897965556518977534567275844545986866549278889586897588639747339887973443958869768983885959747396598879178846988998577585634762888687727769784956795586569686773389677297627589654977998968995773777856776483473465589785999919569712476697637594298965989928649769991497978894664763993658378799997699767478939989674823979587839977684158586339299335467365439538775588955991495399654687779751849347313825998885264645277983935978785459575627498576714827655968939389959297986798964746796689779868346558956982851785985858966854865377329439956996978986667667676697978399839856363673978612767787767749598446539986548667745896783799926366784459495985684398546459984942687966678817899968836483789747899838698558997588287553579398448655789878998867996658443682259589483767738475794375966778678586567635674588998499573375484564896899772664938395794676859933549387978775849684757996596788748869895846987976789178899486886897637788756875679895886949895876988995876768596842687983345931677386396365444998549675572867858597788949897825756878958887678725977977678786394978991496754767756458186968279758999391598857837879279461769569777955845768778852694847858555769985286847846159972685575644268779549988696693959936797339677932849787746999987684757816588793798736463484382978836696883946755466699884599943729683759877999965364836746919744789939673899556589265496756439888763529587496847869461796994658456497953858498376787785848943355828539886998548999948459363778889864987588797867564549478559657928343756839879319834673591678983668877882776469997692686974877999995576726845887654654438877698454995899687863167236685864386689375794957879599865677779458989685362899959624989598859766379635925173893569263495491647825867689575799999868818578878557479949663897776487747645976587576762928448896989894724843756765748994844768687827592698282686534156935343981694985573645478443488838927784592464315931597685669838295369319789759953589747934673759369797575769388485188676878476468368764535976919958878879899489984882992946759979777746966986564969687997154686746875996399667439877188381797779265999167888922458867937367875154899965475567789799383476979747759745587693965867459518754655624986798296698662875188631988568996889985669455991685176645477368716293899849869237772745997864778589599829282719279989784984894794278858964856925734549955789987796999699895794545982866989278665734956898489596584747978999888664858556777974589888746588778659965993997239589965997976878766925873746564487172675997349997668743749796867858828199928398245877686859626765799989897978587659839925559775658963893467738696299587259348916978798543777239929617968662175768979962799388978979954999892565994886477537989879777889598796361997691986454986795779968866698989389965474918685573675988646686988899947788298695199987778982948685738875927769881878996485698378998852378421747869681851179968785668983878996477485467777848987623799989378924998978573688397877427959336976676943898589896838325459398888998377985966287864748993474369959788899577948371288353876469645394898994884859679896998564963597672428444644957898988247273379754886548359938696988872695488366587976696494983765256918577499469854559846487466689299983485589897777589859978786924596885996797488697577994796589886753836373979625875467979396888272772847496795259596687962162496529654779196663935966697348886423944854857566599945839949689979684992468274979899899939698989767747377898368888445699798482899784695866548978827962497957981995593496759255549778788379266556854848588466616245964881754997766598996957736989592498539655376935955985383939487488987679891984275758891848939298482654968466458999683864286556396149989546947936485657497937895453786999949683338996949586889577768774214983468548181728938966742799916445926737876926394798868769295679979986469676357537999577597889297898946749898199988879638738396969689158883967845219677384776966397253967279896896668775998996598747886867894691665938587628756659695777855838887858595889314878298595686297766449883589648537999875579366875987568998327599478157466863726817345798579479772819479397984843495949789984766925988527488696587778892965846773995893965817937952858816797987396499588461868778875667824686786789995794739994787727964674998589289829566676798888764569893695846988949787757999394758669867799577997988987898879784596339533884738834457688865284847968265438698962997865879489486538996587885692599534788777577988685438767388155583476615976285546659794885736522267779484479999899772446784485143949486437656716849765858944343883563968369654932986978382989757996237398959979384799969894866654978984699839776789759382599994989789968628698896745764153699838314243898599887756992363599472979765794498598389984389677378619778782985689794948445677556884497939997698388899726945555994789688376669434798987667963764887398696948449841962855857697863978773893597967895989549994669657867268938554662968245385635696269699877999346666949829789586348853655673698645685397856997185847548732659889572437993554639378899658887928956659437359433333829789897886396816466186764148762865934688776858799597759864267989993865375674485667557997693437596869689949886295866868799752697295671739668696897795798919497678778957224575973734655976947686877442679865768843859979954682397597659778456237586464699958384886392989778794597876965632791858635883575877529859885677788763993338799788959839866365788493386797984899878828666483796696816495899737827848939863698698783994649357449978499896169879279956867766244663475784559994885579576878767128586847497989817299457645888863754544457576679988775947886558448969973928257969667429989827559365436781678524199976996747769791434683886648956677939326638618884857853449691897854937889866965899977892877895747787898798198887971273376476699947687999959749377849366846887999463676587875648538589767779987599644674789398967548798597477675178453697833454899596657789266447668954196795977869578781389837952835978659237948989649888329749258615689578697764837998599839889958996799951745859788891568996988885874486846894589872941988767889848873597877357656937447268455886679516216887632949788818759868997579993886746298285876598887888558586583642467778789849878468168589994989977867799297691897886617968573883448968264688978466883867897398497679647968998998418855571274739495523176694183998765926837959869548698857826691395936539756893999665867699985999997766999574566598989288855879888697443933596684362835965977455198898792582962799756627478359465499943729894977948196797398879799755762636897643468793556985959677754584274873928968875994767765878385486297763466878978793477624845898765598999778488464349889998791644318914557965146577488796475898989737389992385665418893875779778766692879975859355238699697277559649384389557873741892279956669684678975868449869124789798957986981578384988598592689866586938962578993558533879519899362783279997864169899689946359636955835597912854678476876684985473959843939347926985627897449876777644799239545867946753359986887588936469987548765997865497988672739976445267789975765999727599679927782643672454484477877994359987712697895187578498876489898552699878879656639989393492468456668652585768665831855765648998465876266886564985799784793768669694761389699758398455978429997515343939696688861975999646579399956888584996658879798764859595564586989839886778764747776579646745888974589683938634946898969475161969883298748327198737148954665785974267559948798832696979485376557866847399977976571485873675769521661959177858832989668572828869445959939944865698986989665975863645348774789556588539478986795995952437565464582477659599759973445444424945388956679488749999894389633773877956338692939988989793693485628739789837575397948627236387987485894746189995869789396567894956686979868368466778772755748869397677577778849984622422387958299882379873657768995498763628849759653563339957927258564996456457872397524878277461989589669784599544876866457797875482489623699791383769659719596335944443143357674798782757758365879474188996791495694669884696397899847854379862975369996872995287836195858233879538698965679789675498965677558656934778823657494875395967491768997618669988769768755576898735675927265899558734889882979988657479728969836666995568226886894749879457374488486767999584896998992467567843967985983669976347665996798768551256768699977419289776247996764417585838599458783688764867567887799795679959827987628985597843797532878259894683579358349998979857346946737875758584983486749269649866937337751867836626896888574649895678997584796996939289888964764997263268699986688765888834736755783945276142753783959396988675629874724967745953474279685426966241569641745684888299679978747798497582748677648956587785589697597549497237844247939575875786667998939454698637616647734494685723697688764948663843599196478869891948894197335845437775716699999752485547953879856775789996898439477619676326978867339178897378386495259873766581586848798733963688836778869395483775388983886955765254388616879693891978854592497589734797513427566266772779666858266337894679199793467976889577726498597221776996955367668768499679777799658579546891853937879687489785928958993998938366689134422968874697858986788984856739844369248799364586999348962876968783425856666668834448895199994948499668397878956986566616898568488982492966487824556453338816969858939485469777768878725372529247952599569888847699139754786687866659969475992958956338864476782992859996732989587899686886729964197869365798777699755827641697828998563836842948558774468782757895757648435638735859797676748849375444485345688799559795789847866568839978994447827649697777983266685988797958675413663992827788896673977373834264882778989167668485998588878954884984173749345989989959449384988688768786894282965434958585884968769514563894455686979882636688488968598494639998859639696966459647379793284382718917948685685449543978366139174479626884987556458569265984555675444953669495981798788865787935844562579894256879452784969765596896498899789999884886837343482274591757869867676763482399556838789728953926849597879979585984678865793978832579436763538876357384429251778797658957857398738682489888677217488978545673889688573881678372958694758549668796874995158789993868699772362996567967987289593359861788866645956592394992838994454849467949996573448363766981899869789964916686446667765267967595798929387677723987985993478297978985769639489589972797874297487559657298859333875999299585993665967435376899759188999897486888875497879966965679866897899859699258634314969897799698189432943348767386274756877524667856737636596388835789233698988559249873868775527944332668985885986179877759923867882674972189487686672517971865979813773528644985867879358696267573983577772759849979946783685969798799276886727652793558857988879492528463669867726888788816755888966698748779683584375565755984767977783959899826588889765877845657616549774939775476567496743697687921835889489388964775563889754788666659687749774663428296598689674974881973473786777819498878755419824679852585659779365953294769662943132747898655777872853387299841979797894295496898885714967944883377467737966784826454716457799688728467888491889398378869269484499586899124998572196887355655863787298946979597845896599576592898978894984964589987767789629266599667995795399898432637188586425544752539996946888947836898997698797876877995264969369996417438858936558185496952377739957972873368858577484659976978971579584549486797883935797968531449966699442634968967886773365767652694968388762856857389984547196957958984566978894895875583578384359896923995837755876987996589613966454782576588931747963888265573835599749938358897992759726669978968989954614167831879637849466495664688779919457659923295664468864987477989998568749687995739887944245412578398967724564487636986583676395884696876958985974989762688489586386442555277441788296796889712349945535729586639354456895873788645655576345685585854575874376576674865967372398535555993958565826696477918696848498794984458564647647397749315566692958756464868884697968759725935869666967925884764578977856689629661774583896674679589868899578795887677998646657894587962747848985822657793569758699583997686477743347777987979258848954386739377938752799917595488879876924632676877897789895754299539843345896747984874866483358885698695669979581788582556994677962466779979497825849368665995987752957377988997895824383859854989989497998456669188997879198917893648371778818479199664662797698637779887586428486777479955558716748368776763924679277589673359748697129691958472885836877649739949988977395856887745639464719983996782982985585588674989295488448399986399198698563887536846278383998834678394626557987855978996384392492845884898897356727956985894954864972981671758849389576786678967259476949777457954489526459475789566778898426758718859662748795369977396679658982899667998468753168875468938259993439193848868475668876538267668827545136457977794594965689188768895498575995697696868793839258443177899396775348258166575794789397918684359598997799758975747567985693834984566358939983488887875667979878676766789971747273786887459763779999443875633756696656599851529349987847996736867578788987755664997978776313917998665876388487659934965837989771678497837566992655588749944996883977979789679475878897876449541862698645998378466376789978888655296871354238877649863575697593978769793676675858896753953583168899822217766997974619899989748999988384176394928657946849779844935989599647995958639745989958689963684979645595985749236989496899389699376665986666384495458567949797997897988836635946886747898947946954975376688926573759589986568787378393779698357769866924697528735523741773499596374638586483699659899398832669496765576889634585774961659578599496689834646796966876887758989839174728589889228834984693297977873299555755756545984699495693699453899927796779181865798456677429886725491939896644437931778747636576555949885978668585858844879453298748365673784399876298181228499466268959729865758672495599878587694762449857789968988563679373898958787887994578668629952979388956465868333558949967996955988769692677645883873488779778729123472979689568757388378454928736648445465494595719892697557654856752697565554769813569994672957555488993754436399194979591786558774984584349488777876698998255854785948796536499485768688857372563667956664987287668874698983988993498877436894789959577987945888293897656644955685189597774779446857459556485732463869375896989676898849567377683659758769868585598898616746355997697965975978985589896144495963684678327595249984439975679975995587589988778897561898976489626528513482694799759295943938549583494987884289846936769958479875737497987658948596929878478967785949875988745689357668297924479746599686139879556938839635842699958948789584868647869258469844789586749572829577797487849914886777961224585388988899997697936895694753658819697978145967813744655673578785884294896568577999769884748293897958155794899661935995978669535889989392997969469683959456665858827735677569544859745775585897897769365989479776976987998859549986388743872838649599875718645538384329599487568699628967843899586676567665926847556799894286797578399997598647589998838744979887189849787999597837996499759739946527946778899683975753958999984977449777788555586777988887497838873456599598499758647426986857694649877659827949559889575758865994419834266745295323563399873658988972895798978964859619913474888744789456293786687979695715277658685478478273796999827697696295934799895626958698556636296793431274849394479699469947548998796896766275666989854753459598518677661995895278685559796953538544734448589978893668886693496554894239438838548695889369385752748729993775998957979274455867796682392367475832852694658964979485693685682365986677697693537977938394946254839572479929823949757438738658973898568439659877674969271436554885162977884439652992991495978867839245876646979743368898697579639158974329868789774957987965345828765587682998843591835465275799555465298653758987656522498465299458424557976766989376289689995157374982597766957689466768828828568965587417869537777698127967857768329858835763836626773956789667448794674686955898877849695966688794597695933998637989788887966358844829789657238888687968795683951896713627854969796987459682348647686789676359899756535788716976822672896868488744597965659882789656994337386967623785779639589988433593598136956689538674989964899863831899685869638968678771486586895778595918832555899975889896864779778578398959757827828769972689837988724779869673545578587634797548497789797555768889795693644887525382396392792732938853399681889787759868739979737527879959946899995468678542833959387799957676873295867427646954668495789848587695813992747988199579998969887947948668887488755477727179948478976978787489678647197628165984468761784948796837499876552929736246668489996875743279851752348798591353381572878718629743959562218989843996938998294895974793639888959959623689755676668372556379765781867554228945886893438388798789758458619475653989958678846789667877587968976952588595777387756286889994758776852887788646982788298989165959476797756229689565986538241917945235984685965798958957597986785755975373874466438596588684176814482997664794688574167533969647786699123787938682995428886899994397677849946787985854724748788997888736475454389998689885394625648417977593191457889566431859727669883874774576365647946829964982779757656798744817486999879667367759748687586968781986672579597746399979378779535777949488948597366288453648863919985959976352379891486569389682997768928889857948886792799765339499975793677344977376786298597772389675988889487979796375289593735472897697529258786783872959959959355599483474278557762627668675499389584564684346188917558576655973795675488458547899949852892956769463667729738837938759795882773872859758524895295987289259796874996374489879257998895698446939617566988988697747895388898716859975998469576989626562857589885992898687565677398136998589966897649584496769585888479629893996246789997799967871868883454628968997874888876879569487817485697584755519444995767796749965358769788196579647674485966839485667275798665948739968855569331758785777578767784997899993946944525969769896154557749959589498357973399895757686389946666685278228967777574767856681747454538956169875796797868879847487457698951546988654829948768687979986587998569249377998569974769737595349988736978789882458295956749533483555279854778394115995851938594347986949584765397865294596619574276496977896654787489583157778599294798764775942431692377795881249466969787999779997653797895465888775596627578974385979395575863979892719696577597675566765338681999557985488879969865498696849959727864989696867989153873185889794969165678854886975844596867838569687666887995459953788387691998883428843999994759459958997269478854897849928698669895597945788454649997766987991186886934849776479866379942737963596447842964875474798665586927557616565791583898799542769958258589738889416385999787275933984995798475778773898769754877799194288959973868774792274879887989387699554857343699854789873957976799993987764498269969379783588799556877669768484538838938743585887914395396367884584974845879849738583997697567498537848978689399634982584782744777688978299919694349759983485866894759617389866879568695445756994489493767998789395229587847776955488799726943796988658899438576992595943899985564942278581789589784176637768279426678996738766429444398999969439747835696967334534775766296633588453871359968497632799727759974698856787979836657788787296771875398299857566888984627589925978796599799759357567748938745869746251968686774946545756245488196245986998576399764688478794755827836946314594679699697369478788674846832189289884875968949978384943192447575787878778596823548468984726848688557967699966435595679955919245677679777745967748874967477386789676567687944538566589999669949397999788886899539997899297457672868624876387595375799979299434314467958834583975548957489984577945599762668557934695999864887989654659978568694875678843255959963722996979866929498965833932841945757999886272688571698987977418589888864687884678965657649786774983839998559847696657674899984895873472784988288973699936897479563627968285495765838957887163699889837949885939448285995596792697785864659969817329997733373678725774591794487596856666577871747875797946952874337777277648392697787955641939896786573448989679579779648698477864598983433628576977993897742662565999249789756568866895669855644539864546548858778947538587895274989474775577779747667972997483987495559379797736518816335899798989849457469457849899489576589774861789875967975896887881666927984652346758727647739669576771676888668375977556756534826674372878497799597634449578467278387968986688988827654684996699897377879355966856498678659738755738687826746418468683697621369657776359984579558559745789767576666479895487968398277485927947594918575762679698533786998669979481998954756674997796782559889758357298891674554987567746649899635989894797987757285313566765788789685562868953747676457923947469753947176177966856396988985994879587982659532898767387247187249837579896447943983965767957538587969696737788953898956977596989457747247862997476699783264776456867758328339574394655395387738458259392947984773439746495447748975593758945866579988476996898738447274198174995856424992467957473259556965791127668867799994749653856519889787649479975737782456727599649787568796789464364565826776879686984999788896665827665852696986979959889957818667462559773736673879446795599552956879395588697324698959685683277516744958968798682277461999793678583596879427567486989939677485584853488667765677295596759568847648583688342879874698889827566599575689944657965598516853925997533667864679877185922829996964416683897645871888895285793378698785217879976748986863876978879571669686499494589879917689846375386569965998725644855962713988822989338892215955398547993968977624838838977914599887698544846599148746918592865896497845538199688965499771938698731386986699348677977965977894987879395596992677399849886377733566295593787595699413693576742965645889585695746697287578569629391965356649629179837332966242885873848881846379995656266367866578629997968989685575695655978659273256399787686866865736766988586936262659887798648577789784458788958866478564944968925965686967536879668895696879437878329964889676882488578396296597194756873995979288874754674917788496887963169499689869993914837586976577874359627359478671997885618577348596842748649731388387677497879757627462395795739958984947796983697958684785692796789726829769993799566825429689679648628595997786177837576774543115944756496589944459363679149977658695949636949589769549985972959827797766599538678763936277459767766495999796565799177947586654799675929949132469899788856499686966226846291798487958428779958657989863462798827789856584599257479879487874885399899388675999568999798968466296854779968686496885688668762579767286588698458699895687974888973477778659758664844944383589988989857469819936473659897959588385953656387575842685419888898579166479747986197686988724673767897657923586849985866695568979857799626968585979636799426873933914378678857646446559185368447444835546575579859786756487397692776239992364893654657527694379366971368815569799247686889879656578896564596478586875346544632967559646396298789727678987671733699365968766789748679979797787695986584894974266826675895698864242966985379989862999868877865797795998399469799489456396443584947597584823957866968387495955938651896469759953576825957879878783756594748947889579653464569979956744894898776899678197695598359861834757959895766568715947668778944795633691178769669399689973793299694959875596173883759849899789261554999999929858768582874697957966555918949987977792365895998588996989277786554995897824983965964914625438817574497378569999744446649885825795657869978236777847666887368789478946549699484988987659753688899158786789566437738599665895845676966897868859718968727389349656757836892958998498599365939278897755596632996988698975855746577756665469898966498442685958964788887118489133969691784849883778879488882757459766977658236263299643315998426348837553899438778978928749677876143886997485777257669743759956796517878739788724339794993989986966487965858769468468979998138588921346958968795553955648643645668938798667996888668855642668456849665249438875689839789696378487493966796588834946789739691354986979797679475789656835869294474584759947299577998891464979496975687997667782696877673455357672619369986918954134595862896568734359679584795927958669837659994528296669959995576868997798878644886688136555744564977697977668693995499595999989979968549497357495695598768679989985867749839477968998561812988987938799595783389991699899959768839488996648977348169998659866577696847996368179934899977818675883937278279697777645358698284968882953399434588977793686613799654637575978896876976869998658892929264294879864888625973267438985446963468836999575646965855765717865647971729771569988879685969653693836876996988669599876986986741694978767889668736869597239894886486876895899589867868428959746678786697961666697246958557289969889763487217296378896637999495193294279977677999766889857396986997837993798816444687767938476578735999579392378856978929867497839978885681269855486869889846764986994968758996975498438694959887484384866669849942957956358526346998997686998627589266482628896447545867499795795165874686789234893727759288925367684847345547449476154755963987784766479925887958165598863975759994987755915518889888969815519439559496799962397358984767784397898869988596879963977835587557827698835748594687868776958939855469593565985828566564778188498738312598416988294555582569546488799589672619947845848865475483653842965874758565369882685982485785984459996897225349792896745878478762835776988496977783727878645979858989769598599795594376794564964349625383588689789687228975988976755953699298478462973476283567679457479759247958698468966964866879838959923956664865865949842783518696847753195978349956489735469175788483679889979791746999433997748868897569967949959546883984667956965681647979789578776589479597267355731967694847823493676896898163664767589876576586498852455356997452441979476689486546796799958425354389958866479316794292979989428774816396874979762846989937543664818999891695669565947919476687977628684777796965868673968598498584493448718349589787965728327863972783974655887228682695749486687999997977493544523893227127388792853697977567755576629895888798995845557688786889265999465926965469612527537867759769856996855763835896242973764496496286497689778858566369575666859629615796944999636827796597895689498597347197889586898229479796582578694693879991735768775697594875777769744432446395899767697126998979747779667785638863894599898375984698868568667776359597746528588887786638149645566849328723484781386565736947867989593336468687968535774598757496989468984489873888728487939948329798778785282757999979768488797763555629389588698699983798594983576557897952966616599587498968859928799498437338747878979949858699999849975686655459472856867978657862978787369386357772863343299659736696434942429994999799868928968873499395898798987436338759233948423464988894129392479657399788731589449998768838998248684577232998654743368787997986996857918974599985413893358589897688959947464564856474974849458697985917448857656675877347566476257793689581946985489746648397583679863957859693569585469475949787476682583869872489968972955652934381798179674449819889698863583894566194995698959678487985641185863685284297849594897464197976586967599391948573666889889187754846589984429974996299966763299888775489886587848868577758899587946297795374758977856798379931824693596563559926895764969869794997858877858435863567895395752799896716587758456277878629899678489447968689545757678395977699878599478575845798983637699686885686955869439989248676821968765838974368895338798699747279869498777739528986973661913274179898689879565868765267751424474535988943857875376849589669469688578889858586989944759766896896987665846869667789697195717977955357257966715975346585767895529885465897877257398776853599733869558797156815879467982799959889889763976687798196956767684273184537788677588959596479388878597519536892998244645369485928886999889136983747469249959332965687679398842797576989796536639687898896978789372495852377585727677378449697254763639889774679252897866746587479589492418491634734639968757482947438888693667371996388548488829616869762849596364345363233477662448958689887387547548992319958874987886879988956539865985837875487897697975288998194478879695886247367589696895917842524749215978969858835695586482769686939348374967388695355658388599495955987368979841697799276899525567869967997765559797397897288456496279848548478845494785673882775775684798579497596997967299568983436999787819935896548746779757558566586879999978899797786826578944697996458935948238958658776874596682288688259499969757986997799258669997798628419186894965187965986358289417798635994718796927691787779986614579639818898818816985925689959468578899739762858755747379459598978789517737638682758599299982878575497778999179588287868653287477836574658948887125998999867749658798929669962557756658325542755869597973476567239876888798689978765263775829766398497999359451599798879948593388676298794924779559276377587574967479749417399988566259339754585798446166446532457944487685466666668666969895969887798875756777989885899758967999846763838983429865835787677626496973918937765218869688474766126959887763692596885879599292773684968687727665958798618387678859914563759888589361527878759969731935687766634996657343238696994566495322523678569842899459699956117826958464969598817198459739446774765592988398689294828639568326995549395327894559648559688947667297867475783654899789968797762424499178718896742572668687995679896998887258578973285954876885856676779765569129686597899799898183697498689699779538966379789674778794634983868998585192899952373779651575469728559675889585356369698572669388898836248765393479968886496758861689633843593296345879569991726797725552695285968488488998686768646168928596966558898714664179597396799965876484687872876466714989967391577947885889784282748698957453863436843472684879825277278364989173879648724857498979984768288598747699772699897817844568886123777896523936542942781789957698753169576587765787859687279566799645466838187986576999187866973893655967654985887877438786449965777548285679797256267787777528987866493784449839698256897893979585373125654658993447337995837417889382938943974519984755534694952756969588998396975992787398792293982946944294689474366676389655857796579527937666699385239918748346768679593916735869188394387583276795456977944847765587899487683837594857288999386999755971934689988526839599997756487986997794698649682767595884885395796955785857998269584675875921839974817339958969749748844999664586789484289457765584885869459682735953965939663384726266588583951793829993629859392757677358978738837989838768869974844884859994546288688342394787557853754689734239355871597757689969669696967589877489666575446994447619646789629457698977588878749739899779858982733958878675584264977598689899689526575292779899985645497868589782811892891568597265665696965974967992486946559286889178877357975894986988385964981699893486773886276972274474986961899845871826982742384854929522536997799886645449979836756655685679477556989796894736777688796764985984292883869799787479872793189947689773979998884668943352565963727885785463356722555752854298858559965728465781439947887996934196955397794566355471649766589537889924365923998547999496515943873435678676769388977686777826389955641779276284966695568786744777399546659866769399359557588267995579732214455993387883968954592879984875337899666977187699956671687569692199599999595851537787793437456946572529859926484394487397475475663956748765498947777392834799484979647786867994976896589956338498991879496848891747652627345997713888783697697867876999532698947343898969495587295688882588989748795966365369255859795479895934388229789665459498155977867899885774489872896894989997289456669657837939794563284797857465549999887686899878993949889796879989449467568689687457769817584947887957977986379652781858399626756629367574784847635646668458798722662983868791982376857687586656895264487795846428888898875658772718374888865177122779794167869392897873538556348919473169457599496963677828236862986779984956593749578477825888589959985668397616746474789679983768777992663964475696574839573716574975895576658595836884287967568986939888267955984659873999293767977181646455955399685447716856657993955469963784695566895976493845258779667945595437841888477735829897696754933478949869379958466599473997791782776898477866899589798434968369496947776514473927486846495882689376925646637883596259445855438829889966448379888751753277686837549776397988885479945596796891657862698719996679188864448986835597367686455887799459738638777861924449976956799858387785757399377356842853538898997966378366863779664798698878763872378787686885495663486667596855958594878751953729296668854446961187489854569665658485531888835877835949997184463997999894527955759958885889957243989379297597885479969997998439874895999655953786666387359557343991268529754866774687694879288898228569463957286548558776688698484875358784877888979779377893655645395988788328959853987986345897676277659277879389629776723772488749438443154856761896288987987945418899866565696682479387368774198966955958992797986859986843582997267759373775684725517455589764778645446594579989888829167639994484697982678792589795987675854692786878836439856896158656677398876134593228882749879995799373972797995897768795857779999737838457598516689549753585858928425738394357576973588662996613467779238949167486376918686831465556853562965976769548437332469496169696374167695568466858676478846328468779649889749595586772696884868837737884678676546798139329893969766989956484697594899392555177776374756979789738388651899768877293376776478599773671627598868929659797431284767919978786494967977898568934879888879889938487533583987988769967388499885289269587389467477577579958384988792749973793498695749866853862982989729953279598465297678775362642869986976986876768869756769925879947514865674755995864698899953778647869176384192798853845969483582556969879928682598199335169818889989966199514691766879988564575986586675655468654579999296587985972588698792376989368899979787489548848849648818383961698696743996743456597346753764583965993886985484696638395686586855586993895847868921557193933686938596958677868878458499963888965935764518624759953684945574781396389763766987188869999272828598649871778759726618987458849699733694876893899263819885597598972762896989699299487467177167618831699825687293978564677871297856669678879956386613996688976185949477397468348682898865969544776399989692967766768797789572884918965997973999278157383985659247793994793988965664989546468564899796839187725879438726265745266996299667471532892665929539864498674776558832568996575848299656239865376674575957483348888739983936969535619978998798262947789986263882839984999438514945243385898694989914498797875698778989414729942689928899989868743718828275775716983775334559288785379364886739885587966898893661764574878886548357584286829984872775378328958796458746849943477779828449884289959995964578398648959779957914815897578898563777868299497399769677959998948889397917876591953899826986397598494959974989276989695282311988387391988595985699993636229691869787967261698397697768624936396538948899567278958385266863836787597476658556687951969539596755847353483677794674246395786893955734977839973612392997587719949793583568585857836716872698989996599585743489495544827672235979593387998773968967686866559685595959989442987595963398898727748895999856897458817677952756474956691392877278589899528947799462738997888859853668986373278648697592965589789996668955739766659593195773883876783862379839789473427986766659498196217419687889597696384639118365596765333497649791949519956767786795889944979999872879495568976897794548729995965287866755983986774998856687558797926465866676964383639426388895835591718687896875956266967985539575488977759977675859978826454257959946959453684864897596489391492956498256788696583848781264589917797998961668498697879768357471884477865888627697763928468395686796597654131768556788999977976234481326989642691697854755784537893787745994699536898518195734982989293916583537956889384345448998943694996948757989347662277885745888177646698389499659997774869996556757966859761968643396977866658776966777539671395599985766877354596877774317744884769489665967974886972965879672376547767468885995875745986735869998999896999787277697117795758587388875999899664787886996996769767569595949567485885659979739742479463977595897555786369695267699876729549576493894617863844989798969148865698488862598919787958499737659999558998953376573544993489289554889644394843959388797964587517767734735981888977959957769978535956696388991839233779873568194632355926329781967127112696494438898436972578736768879828499746977796783777334468424785555877989588778866677995929886794867767897947459439968653899888566795738496959347779872557636566498869789294957569198574976659893587845865685289766296988886878884865869758994947383978674538696986598878889798989877213439989539349478866569857437757676659485389797876985687949884952973889472667967668653897982384186867855289779965889687879698516876766696198298993599398957676798494998877952839683546686252585798795796767986632577896679788453998876546598986456681698992479597796669851799458798793486289799968687762789499414999978989246736986839693289977728568799955864892275493793356567766795946754845299899854157386456875686769753398286299543669953568938894969634758681914697388878238898967368899674959898798885175978597278495479847587256585396963595637697989788277355219795789848579785784879859856975978528842948968986469778699984457949973997697999637997845879419578798984795996998789288949632899868746377545465985855858577579573978676887252697445585888377697998772666995856678888557975556762888876875553899257645757369744299687497589885849775587998587879943375988873583678219684926869495679575997985795465778889828998638773687434364876775668898695579767897748923854989489899769477385498657898495587958492922975996478968794899879989498769934455959566688994699889687796876782266673546989965694573194718675545376789497342288783336585799438648947886577879862564647854996245673358678583682184878946596777728889169978513995267764686236586973996193678428787779978786585649834826878543169459982955599854993599798796898999966728937963666859887643855849658926899575794287499968592595935646939913873532893948698695274687467567883499457597631869878962866829913855767988787797769612649947981588898423628576464689856673943864467887546681654898676897298668687497794853782357177637848876946738378956397498191597388693899998785896919276668158484758387294295689197564987818559779598594493437836753668786867724578888792896346988597895879749328764875677583687773225859937647864664935766757829875497899657989862835778247999398959637988239887759435779398772419636958567782943877876278879858756896597595567855847655779778888679677956795126477863699861897565486824677736697692899242887746952817289398699855763594295317855168943544595498672998586544889956656627784859846376668667786388686161664188879689875194668593429494496553273466675769865294659939669699966949365942989488841399596867776163838889888238982813578977589475964863577577998389868948428393784399768725828323998544458995357473474989848973795346898649488453988865568916815978794775994635962777799457985679988697496686778764792739214689895841988694195482886574639694436497953977675997584679651637797955298444698776845894794956753334779851488867477788284848874887993989898984467796471857876987887932798869979454557941475628689532838638899899378738199456871957456599959255729999548688987874634898485978748576753579339598599942437888263478835676376277972999883359436951974555358384886878466676429289875569998986981153799696949636565474794623699388285849574745527276466825815961948976298578768692979878848887641888786684898976639689866866966168269354728789973872574657879377819655941293625878697832288583679742886359899368994477453182999885769269951249737699887995226878679741272964255867385974159991999777697378819677399999977743568496528946547574698829894779927688772216857266876877893587255639755948759957879639627445778849836938459845774562678758289499497323389885749829889953399689599366425948448755176448996792576432381994596727488898871267398549492436897868918954679991859899469469277343887873924437689974499668821398359678746958814864198355957166958598831536467976885368999874827982697785558758739493537436548867935647699376757378595577377357659697689633668237988389465896975766356285858534769889994499877589293751888888281773565368642238689579184949677986996669993788982948698989674789873993628876993469798698975984374534337858688583449269683694338779568839996388187763352696767189817773868479724394571476567859629637559395776487924365747626844588768679333798899988444598668655839953757354678879323753399853383838757945879489572995489584676959359976494417986239789859795495587663976693125638597757644879672469639983498429286892394869657867596156488583577576929759959279717896265735835765488958778885666599789792585871989954179974416449389845899859862957789778576969674869359998758634987997734696785897193729696547697849941439793888699691437499396565879865971976569672977753771897788613996374292856599755459577966994984957665557978564698885978745786518597875855888958858976799326669553663899873169789776979569543739284884691743835474295578697569979464895678941799888986835695647628655699849894999998813248898267788769884995967948892793875596953692687794957778886457686263948755748849552693944985946815494849485791886655746389689693369999697987736779993986368798945496858679995969599677771584899947366686729885946528335962798596772556357364648875478789786885989395654999867783889826286852918535847599728849778933869938579879897584995479646817688848869668848545731779588547249984985577994948599196155748877378797866569444793879789865377959657659685744473987664885353587487586668974882455495898879773889657676597672681842558664759966833396489524453584866996974846795883656879225634446492592283896997158967742992399486648844749588964887758938645723317263334589848693575849798492795787688573386643893597699797488773877659923876157385765136797745943747956685838769989692449564495858498448765338424898668716989948698657688976326894395859372856937798588524772486888986313964757849729265878836477881758699987853758847175786729698831469293484765275688844253864595695488355867597396869539993982199579769865954488895828823375575759676495837996553525828546758658966286253778976989876887395255569684559547587968477891556542536594161534429758689985977577854568198344642877536868953567874867597332865595277929759568586659859388256566799965856788499978936966795559179368577548754428865869644342687776889927697576627895585897295688357433639195762369646584454565888478779499667892678863949937475589678751933529846627753342658788676548486989936357976868218746783494538739729888998883899478159859682355568589647893944766363859269926772186997646992698542585996999494634447884879958957464946759886897586589713388487641689269889867837997556748899647155167895969664845948589998848696687685579735859339984777946669564959895697378975337847886877796771589877194955774651496686872894938757838459748756397427476697833369929726946995977979864789449891997391737645878766847984624992861753995266896398648784887888594473968396885977694968716983575299769789269296749982959598666459545673585669894675678168286679622994985544953924674448745287278816637943985399657589999943876668237698255887999852973886566268679543793546962668396836899334852357377234747641983968785451677365889362545758989598775289529669368368488379395263176855668898645994679552551796832412545932686522648756677639967313552787497977836999563689845659884987995818536519376695578899368573459944178118899588853869984229687352876479698979895788556634983784987568934796199919899868852555794241726679999998989763867446781954756298385566895582899287795866398317795784783677888976978458832795978446845155745897584294786767868999887629598434473882888999187789482492429887781783998884699985559394757229669877694782755387184383945768949378966866394667896746684698759756896974934881699396979689552483296926858678991795566959555586699497598646579538949857458989886466469738886755946885879785688278747479297654764879577885674789695754426657788979428838599982157564497856876239979897879278327386387667976859458984794677936776567647797994873647596938558657874437569894473496978278947385699998977893559484421697395974499179985985776249937652786686437687433972688288769686574948497895476845783886448848634453979767885748443959892655317499667986926338977779384663777683944768767249458949968869989778798778988955689184296996456669584277777438985998887673684574564988881969527256756756559577949589454846673677575938769736776652367345655589985736985793846898758997983677238389589981675989969839186492984693337518187851888973464596777828857558688982866794975489339283746189287698985929747469235979335186726853799678647978398999526744175858677568388745769869985847874394756582452995644962354694276796758747358637299764784642354356837777789159187557545194796398467353767974495583656897188539657576329999589669477889959667794942626168234598799982838272657698578829399667865579152638667585957658394899568668896799685763858785988699488678477585862789947995783646675499999492898389847789462883919669834928677457648459859782564687639289946444698595587684956188679346429393997843868986858679385889536399638549878466989246795791999789989295887699368276768765477779868786387487786696898181989938758586628837897548589551758455389633686784667994786594939575888347676475915595494588798465555983948345359794799265658984796595292466897284798884937959771888979758978799476947469779498537269399767976586848955689363792647891963449377597347838795486567448638839578888949335586699566783556972676698865998428496778649754987799994793543879368977598797998567677836925974438926378955666929778996596286878749529699798746957788737874988888362967998967849696899688878697879187879585629964369896657599597677994879768584568255847776576971961765976675587829999779689894264877695754898781313956653894986959296119977628447669736767376199659695597392988448889571368899847649688739869572396899698944876796428967489574976695913657579584455686877722837447977599568454836834886789693494787782535955532465897866899499848869298793289965689786987991834887154758968988734955698326878916636569477944595876877859996527284241528889885947696446876896413294762995996338916848965997688467394258979429967389555647969658778859584985341676998498735168477666859869748985446498799697756796619528979889696297294845999414668894758886453585874879379296256879183965587538895898971689957667825586459398868893668797892998885975868658465374354957998927894748799426898847559577978865776357974976869793358159436542568285898162879865755983875826857952729778977598865567657747893778975478795935738588665539187598874696978998587257753995967469897576947698673929999968388464754448999944982789879659937852856869789799564757999878568956596849699665487962647467995232859776729595689888729989494582839696894969485965899795684997777842389693789695655484849988273771498946655673486488968658981966659998789388469874489686375679897989967999485486489975897284386565565645851638253658682794127489747955845253965729594899848797695371798886351468629919629393455765479293748259768493447946797799434598899899379779657415789978737353957949946195759929998957563768977625746722926744349969576475492785375566978477327787137923376386989389296498832992824979757183878634932889776497698596473954572759784746646953887947453938267934929227654656358398568685238435962788889894984475686585663827669863599442997877888785954943789669643682598897888854955466777829857964476568945579899693789696998792966699985396218964485497993978149888955777733659855884699567999276882884246539696418869457869485959659265994895585727959759866894599486552957735379869673948997668592897645973853579684638946877779686373599871877984678257897637337683489569779979959497379787858444294232749576578918698249853987634555655678551755568896887559774478626898867979157286674339877699758858927984973565458694877549388979739966932624394139968757745941864998786648297689958859665964648837767889565733583959896997677384943936999978665753464268369864925988729988581462926767836298799697895759627391456137915436449747417288747862776598699599659677942841866888688929786458497837289669596769759879368569788684887564663799658665985782478179828963395279897746891634938895899329178875257378218698677178659575937458969687898789558998479998977432916166874399769281898893798967898764688697267586576798198795667437419827288963782836665878983779469997622957849679636987697788195776874896884834668997388613856718856679686647479799518398897599679749799966688887887445838878859238827838848846557453449638981588898256795998974597247524479399899989566667896789976864769975758937868849878176743945499638333598888696863547364396599664958482728857977286945368898976965878258687756593398185632799767395898655646995829946559579579833595836947829979487899878787978466736278883737855886888214841385449556497529846597378698153439264877883988976599669659878676988974381788997242739763937989935677734865762774692588796854857674756462665465376559658676757659357887457799224772747459744838995499526883828777938951628938998442669947797284927996492542967465479859368469578887743198678867496466432677497396984883898358778975595639778893859786397774486878326547584583543959546948444759679828566736646776576864282966789998842968789599594498967984496567876729756278868348633678564458959798835899624339998938986967862985559279988836488449758299749887799299897799692693648318944894965546973473247796957346277899774586578994824555758468327946528796469945587337596232948256756798539439896369993694966198586857689656867997762577599196829857879962576899853733958479883277634666398995949728747679582365346886493549978454928736448889597755479899999961897876799834793648885587588739961656588881782679685876886387752865599957322935695431887835387267688787256398987496559457867648756897485965768578688889875763838976685197948723638936388969797842999877335895986747689187798845499844957966566757879466387797639547646687875658698844719946498777369864749898385599445288327795699589784878565457385287774277673998713449996776998578197846699935897924978677948479989765469785562741998787788928699839866759989789967977969585769586937565763885676468545639559338997849199754884236852376558833288648268946976698788849279695759753599342486979499789646676848878778768948738799599883699938693477176864788277772485487782757919789667175771378289837986369749872914973347674397796637735893695996694947454863884176435279879245676469898687929298974972679896288773956588147679485718967337648957798581494782785437468699992471145378548346749864979526775946888431349983844616159469444244999896886788538875796417559583965879758441597586578978758256543746799497977378968961769763158783598537988549655166768646556998455896543159579574898869491958956866684776737867773554778688889799697777854884754959791829697832879878988768799949794767686583499932893769673954786749977697958789897868224478698943889896987559598939359796457597488499967996349356236778888485362296675749795789879867551879969959547828976199469779868685884953875692979356157686628852692556649579886289354869889998939895297688839985777538996798673779795588799957525779494929787749137973865793879698798789979558489477768775799967987499555767798993522245959939499564469853976477759268319658825999775469916873249794488468558643783749618676979939945994662854894936398998985968784973657616967875988797786376399645564498699646986695775959993798477352885654789858974999673764559867552445929825742688926884773877552856958774488667583777489449237819348972658664824482877899537913889985935815965693517165436859635688679877184838734493356859676167849695971746277288699769344785145879569556845998844887895877849996899717386558824498684984523974918975795435968679632786788797584898698774878989663969868837889683579488367768665979849178832969844229697867558798947688979896649878569799694536669695895576773851675866886662956556887279967998776786736927837827856828988468782925967497659548975875885142549497976947447879644454989414865537519498788796463533612574836699969589615683879499989459886798868942375188377973569954777894389547529892959874245999819899829627474287387971757899298319326647859128359553257487829689749759393798893685948456696584474339977937877734253653618268981385834828376759888877999666799799497278881657385639769636479934564888575767469598778956858946576599549988447785638268184533875858847467644799934978649858563133971685876859465769593978876546979675856255788678769316378264716646853542589469797387797957966418988437966729357595667185687756749743725888566638628569954889761933858476866369377874798995865396755887426886966342983688512297442393965864988723869897534798774694456976386553766977895498764558849665799926784987858689389673869985999292989713867969686438569484796577369427897777569895988655348488281755689524495576468858964973328389377887457967458486895948765447936526488667295356966468951493925944498969885646977961789854959556939685377538667278656889869357989196339889693467856675782555745817478967246639999994797842558749789865395996689784779944558875365838537996873334297964457134447786988472695377754514279212643398599997289993897859347748689617636246949559529487762685829599869747853839462985295456747769773898578647784665427819551366684998184487595372649665555733781986997994862498598497925797765889859742755687868887683848883994739768466998168548879299659974589989665426466658879266628893515964874471376969685598877885998888788795847847647596774998744548899998186588577964746596963885869947866796927649488227955577946586625889655839959899984996996984355159739758885899798547982746771628865694768456456999698964777464975697979982968838585948548386398988696844719469499579889724687596458819735966388698769639568367897773989859558859836689773966667348659651769959948598864887698739745658785498885792989848279978486564994485734886894779994593553277965371253829483587668479467775749526784877778138996959937565599587695158888765788898964942988967436878896284876687898598676966942691465996788836646866745983498997836925264555834498939775798463541996693888394889455788647443498675698377898488358665286756984466898844269869672786995599558816239999496579883889727437954967654789796753239977591268992873776669253289839485749494543833735673976228686575359678578993389386562558666965278946287899778988558878738914968128948864253568988886356555876363789486943226231333877847747876986676598479935678447298668979842739478797791646766654628847999238748887855935829669364867696847469854934687964344846746892594958986295679696359863679748856764999858789678986319617879857493898865969571959918783477465946486283728569678843984439776181697947992858987178776953278886988199355488389779822699799835358483788939659376967753997384493498947587887787794577398581799379498967724438737896787387663568663396674648766582829737324397786899898685888875556898649937746855559999889116886858576524676677879867668536999898657779993654779758994629738897869896881844914895832597782996993319993753347976894564894698757257962857998658728646456799886998888799967577678564299847459894894939759887844199144329659528489967585695787275892598669899847915552996665497833423641498776278778742739532898899829875859957697588786647279557776913623499988799292699437385576299355786535825959948537668292799634975842685398892597898756287798775183794589477485938583896472328698899855163355247729364255993877688897989647448644666473278635859178748849863796945926383466619965998898747976987463589288993576656994875766528793876832685958689679688449617248977672974328383549558288886886957877455747699694756699457966988981574842428997468965654697999678898595851876684379839669194562791967685873957957879876458648687959865448894697387993726881931873667664175774793957862755944772392372799476651766898983695953379976357656896859587844399854577297897698865476639954993999885734599993937979797867848587488687998852697456786768696587698389516563796582869936424986892395987768649455845772842766888749855335687559667742625998579387987995741664859865716293975732977876986867635886668883796376487787568759953878757987853667966127355597658997887849888649798899759768579576799658258555959884829648366665849661987737765943596876292549762926983798388896849957975432887885277866725598799585844148667696992579478586697854834588664797644874976753976529865926688999972785685849696749685967377538974738374845269878676577396897667658264175975996769988998164445838459982619661682779778575369848953888893873768988466884879554878778988455938975769676399867575997478997973128466967638799975257196659953774797868785987766548195382856546189499493263489597693848898599267598995797688798684869945898498446945968996898999487695468765869689946483888956956858955748473777779963538488948686498478755189442983557777784758396789485949784286188972668422654378466795759784989669637863997689249595763574989998942588428995989968455677926988537168938175989877849498593168459177687488383497867997498886977586257959936698494385596792794849336298956978976789989676578698544899462647584855596397674743689656885657857999747389656677275988386689758797889789585696848987968844937678698844669472556492256585933372682469784191587993991478639499585499527459654192282548575727577689987748293796528998868869655996986664543539975953897477976498577879887243136569457498996684814497927382959589876544668979774797887364796373956748988734867768688937523598256675967969696524159568744567871764474566992864578779787358948874197878985599929898854578458574473884688596885993776288589982768866766663956879979994896874949773683949972733689889685628752565668765527778966787569268777898734995494947287478956768859747548478358839795348866949998897763895279663887194247999935668947935971571999879879342679788989598754481875634964559639992668659658549254395792859167486798943786236826598679965488897899377899935676879229885862366994772937968894418861983795866955983649789979897196997836619768199984498198887943634958987998978759786768736688347359985957979593688949968585557232945946973358568735788749548948822398576653978979776797963864558976858987756688858988878875648669867988499678896664379644787675787523936993786978985679954588775655364795949969457158184296658868779779845969789773959799974979237644696746999716786926948884949159842647577582671599959794989974554785678869863895777399955969179688766896999976383497536859786987444599246142895387488899867876948675887843496788599888797892429987787934339749716755562546834678868676269587864938878999394797577746761342896769486767657656599627379955854787548569349652996695698946357894359756756949859827857256356598689889668968529955247976896689829835174968778897379942847855347849667645877965559849698895176294826698997183994887394248687785849994938766737495989669874955358423578995366789224734884195139477697567899685597898698971796865889484689884919476878847897752957893346528692957618797887599719234497976679958389934261739796698466777799357556587478698497556576795877989588795689978449296499639989998759928759654897897984499782576929354656835697788238389654885238776956918895983295875648579499934653983829973269698919998895987493599768599967968799765269968758953369659468767679636783564877444377953735989964656648985473795958868855345944399946636899435999753895798649429719856997687625554878669898316579457762978594847671565384495424587194983667289967996586668456788448668979885498886956614919396587375499629694519398576944647959884559782879793569276946194623494592779679378856999788549465694769298858648662956486741499346535755562485689448655588286656974288973237645883863686458698999166579589564668678797796428438855895886775148837715369699258885677585564789739449198867893998879864482548896144399369778739723876568523666382748819998376697876349637892653967427499499586725495889769587496427957954695346488798687789738763875697684388788849839968999598843878447897563654988667986476964596398797799467757653675774969698598789935699557728595799668679676969759679179679741886496388897673759577483893589789498649994385657675937555549653785886546789959399846879488974752969598867757559367534989546357958589552599556289659167789896486567497575931678568827994849998899737974656478445986795278698797947497963454368998659898754669374757867771793989859865575746929456798792994759851684969695794459169779768659658177893299695466788887879859897379958791423878999456987792449977887483368993356773741933449976944183468855597689355855668296784216987566865197198678769358899683796255353645379861777262959547479988874954695658941967259629661846439636123947957757518989762669425985923515836633324958589468838854945899891798887968965691788862961867977495298886898689576974278668568361385455558765539445935252658584871868987288773439896728926948444977868289286885788599953888229552295492999657378975475987299999966858689887887775589956777779426999296679989855967247851675789297997699558666755942829789447666959982678764797898365869937955981253494989884638489996949729646578999977894694476978869986779584986876558952994791678979437658239432339339947239936947767859597999659975678983782626397799856983774797368968958542896597698625674695297667889679548534783868796682977299779547738273956575958658286786593667485768747697588744966666686786879976494617367757933299678759589487797649687879579862967987468645686895879596437527649964693996769499788993798298847798925963255528297569554589649449667399756786379387474727897788568875678556994899287738469659733976699938758745762389898766947698679897889797973569227692878489628592555776966739899951953948657265283898777798471577742967667587248948748139599858339747967887935547766363817897947997964953869452975677484737586939675293955999169239981354595988659979879686542826889994927977795987756936793559959644977884679569588997696267526994733686998587599627671751782848525838859731928755737187346984669838986367988479586878993847948735679887868589895529876449924259883583848886998836791547488159685358487877693882963748958289753987159976694876494299577789219294817569762678854689616426476739876926976696658935828793954983858429748228425467257568798233934622966874784644866296734875985978565789637649483375928578555857974917665495367686838956832822577698668489616739951977985648658876584926557458579646683255866957589424323694847569529463549785892758979586797557975268327689859529875688584769669989766166878774999697759646997888991955954576629679495264566599626687996852959225857879949879865867288882738988678259787718981656175866325277769766968488784996792291977589778676878328686589287877874727965437976539377885928978547987944741949969896625841687884673396954777999397348858665584594599669689637568426586983387444774917939686779771975498922898794627846993699689485489946399455643675589485998335956498994783453633897647866686668878442979999946765457295998684294395778389889778699399254869556476688665868389133594354652566359287396992929467929771469814952896597948389877645444245898858885861878989788587995436997479275699878834979674446483687583758877649818641998439694661464768677773628329683678998689999398777624626767787674784598689422684839477526376799677597979445989896569479638587679598868267537977347847829689459868868576939958573727793994996668869447877745792898888383746779884423657926879947962988945527449729978893659772973886998839986857375795845645445585396595328345868685749599698684699367684758855719678387969996849645853899438766589762885865597688874675999899394986678356698857879189693787633892894988764996281587958889885578879973759474945689851323494699983358571563848697683345843919745288837869686295697894344668597858519989837765888872769979467964867698978839859675475847678828649959748177767794965984537699937926519753998438264755894878344479735587777644859967777266499437995625744959865789768497599573934993747658252998987556769568695395447896868587567647884897298689868683579669279789268947957982887759579982687856726372857851646767782979467859757675779896466627599748854288159868665485988766838357878928294654866626679955577624577953986989699983476497229863947978155899789384785988975977548844763957893897638989897876619238389956839697944688666985933418598799768299769628589877778998878756778967718952866176958777961945581987685997449417655797846885744747589737879448692337398893643985854597338595829795688557687869566797494948196369888651448886956195378686682248596754796932769474855599899929788534969986483847873969637348988369668289869224665825817774964583747751557538487933744827777943848867367499493789879435799489784968597858685426456753968177973969338738696997947676919687319875882797884975663769763343542899896751573657889767557885988347579458593882789199965867589528967289174996969876699875968575783969869749867825875197277398879965885999477374789767388875889474968743887853498597399299913585956667892891665898897798396988879398684733959296643286469795878573832456955488398685852898493878725398788567897268596768988347347895599954543764875685375573695745965759688785296693858618715646696859269556597353743371755764699989437758862585897597683888689867518947429743576994699828698378937136964364935899566856385365597996885443594879896876159477688164987589699969636675745869759959777781696875992987968768758562732998919888645497787878498863497688796899898398817897484989429399495599936887282828856999638895387995798779667856889348837798676997666681289173818796593577766595788749859585573768999756366949967973776937498375968845938877522379499285558919499155729989796487189334589965998882983238869759798378471187987785957826758974689696376629689185375676955589819996597295833398388645528567638784556849896897731989288862899899285934859729957965885664248278445897799769369695874795694243775588669794797875966345484799668859599798629544878739572992495754969989698799888557496538988819786678997997666852599859939199957477586454987273945457867995379698174437894973799656663673978367556779374774575598957271552252766838729378579461599617256691631789474866478687474453755887986854294859865285567868889591265633988765996659935731974454469584986668885745287978555163579978969888996843685469968942992377363976419848976874996766885888547845683724879487985253688768481885366778494356754225489568355515722665298792777554892982663975834485989975947825999589436195972785928587594687796857573873948795488499377896945785876557766326937347339783969993874683485286968568666755883979795459997948746846529487758626593556549989416896985992955269297993492869746469985968577718478999957859438429785499629468966658778583769375373846336417867989688448586689834895525959368664777688874858439665457689694349779697769847216699794877477376998855485825958976948648784986572699193974698986514788675699883365978998894547768435638797559965667398197976668489883993877499736596894869784978469429814376756884588194348485885926878749955987366879198994985252486847775989399186856659397363899598853296729486889267735749447398476998687783958697647673695324953288448396438967589895828696987796297783968569754789965895828588773978497847982867697767827489278885797575546767738956867697693991958984417977886555776338685976863646395946396776959636915528498249984637368877979756847992714986578383338787762897396987769869739379856684753977889795949887723858259368889917689976456727786689939733792894684359828478978677562732796675148666585557345473868865645478479856699695846997886198653253889639988983286634897783495536826896786438445657276528476779737977779595396898984883829986783648667784481978869998462622658444763536952796974963568687629997639518899964268983687468946917799657995464963749887795988996829645556836382973567875449789889558998624895656998987524879652889478194998562976357695277462956986926387879895777379742898793376263398749864828975894586687996585936445988587563956657588675969725126896558861968779188795586284877953457856889481789555579733574379644728794798934557697999577858464788365766859784922289499858519677967599859869832451968346985597368937698656894957838998468983597354965696984977449954688895879487337949727885337636865885426967366865392777977564498499335899869854878588979695562649789798878379689899887658753569798899896873758789666337971747146597768593795959973473991981368279219653925658999882778855685847359436795886997379729665689654563789664881542848842697832488677967798759564944468999766935672862197886869762978969187684847995476988471635965738898936893377647479797763879895373625562889799992886966997657939663788349987956762879296656481847598924695899378927989393841678766467897983798565328779565537746836968762838574383697874699488895295799768977489949592995636973966993949856635844593888678758981478728777572796765989984998795897797597578787279155647472879578327488796992689387153567886871327469999791389958937679866645487366433442895439988998785687912789897678894888932459598974669694936999998767799774941868997336686778562857986695898844396985128846395866788969948589976355779268639797768674532799156356984999977629696878884992985793787469885884669596629586789937791382835999466349896394398841865698594969647767882194788989896886458579578937798795784993692782284675973889848986789679138577376387999728986897772977778669969932989638866497997678927997876676582999243484844998739578567897176953675568978856619598733856554379959749897798836852289257785292795677887745699869899899638678777364854665732768682368888673316617736185447783726995948584879323986383837848968388979758739948787931295668966935556236399899558898669767677775585748665324948678421796777388738957989577674985528869792669886885969889238975394897799863759263589896653389894946847369666689919599483978717986957465956242976376892358986467988896875545857377894759667488398375623874993854267683954794288996667169956679342986977937779779556744364976223169857939267579585694988962864577554814877675578699398569877388398539894987549599958665386477986587567635748895783486559677949593593687638579889378987775258768387244496466969297956865745577743743892795899984782433829852464589755395935695556748772377528488446978786987256297367885579989283344124457572317877697566256699177249897765863773793985776795357492179858587678591995327555758868856496953567961686985497988389688884993569589755378939857868457878556355941894989893577958644759895555863779852548965799616776963778925597773793749928787398845797595949988935735787993785616557893469278646543588895277562184799389564989643738276397394981744169954661886929795978582999876868968895959257985974775826786558877686496477968659457936799835383828968296279699787996552876892886669259963737842776663887696641386989971897548864629892471787555598957955988979597968848987574757683669886553757955599629534379986499788559328644661976864337594375987897796696995978897451957796468989989197695469831676537867949861622287987586769896537177773879988584266671584789971969692887456888299987877358335426557682539742596497888675464498664327758769197652889774676744987489496776995964587966894226875785349756839969979985749488836969844968863969391753684869964877884969849738879398596597438737443687765572595989761345529286861598586897795459667863797693559894688894595698977372366554694452259589746974516383898663499565923685549897435599748952895465962599898747466564699347792666594879688659384599776928872687544747787659678739688755589989438793979569986948588587878577698427779261767659891739976669668575876689539857757258995179887786593987859586578629891871387575627983998859783699454626865265633988877513753687469847269839784163486963849876298889777951897637989275877899682789667485554989589955879594679977952859299699458698745594743455969493774649542877886586626956785364676319795854743671647469873958962988898889356499371789173888593688296959687956367866159888889345552495949679446368986664999595887385794915657847977266448776967486765856172685848958799926687442777883449925984565238785397387594365256937489757758374377999375789877794399988345796633923339756989674497284568338688519868818798726819672375864888549745879989299882397626787916899693689756596788878849853367697666785796494323938594795198386979767359286876898665649958896745969862464437864385965899758861445267979946995889989966697825777987895938823398869256556748599818857978677998988499597869938597289838953957887987853897637794567984948599677787696645898859868776566977965339927657738594559547769566797958896367816379488798926687469448596537473686353588647877229762954577922147867596576586889958293129547273867679677278583577849724377615896369783837339569633766197948789323899687854677799537273797923933788976855892992638916385996956589896736687732686952956899489386994589785979647688485549734946953799167748274588682747798497668845859865818279248442939859698986673289752888777942863483267947264969969998553996874437552323457977481577463659179962694159176379799578963525877333748656732957586169749646778766679828457585585689497645793587874774258954549289699955649564994894787979574997791646689885495897855625553555897836835636987299667696984745699787579987434568641966877799771859677298864275989349477694438676796348898668979549889864388325797929965959796689357685587836666893769749295957719545965877897928858597687179797842575998449676865244976885484989669979851594697999374949867648693288749855767822787557367914268857974867772649954983779764577359678467739793954795887835749949883849554686584576798695893257677899666935785998939457484992969955385795453477872448659873276992752998994985999977885499758936274436977767499873625868425846749975379487912897895854532778834376626983625789368886746578118462999968788328784884686939586158875599579664678876898857865899996586682899879971836977865147648876217819759979999966699523171988868975815497562899782744696797793867198649689984657664929998997817752667358865789988599789778938477757739157764479459854827687857819717247677758549527897938593613277582878483792876988876183676344869498635495887969934889895799389591586279744573921761918831767875696769258629484688894951948781889794854865553593663869987887887899699777229288757788555244667379959291888886383362615469644557871986762764968769796878473484817195728976898283478886843968979524486416626944763759779967978984639896653958672518787787799675955861358596874228864763787828654663894737473899386947759699536848951557453767956857753865397859339899968985949799986487898274849595585898435878392869965549948492674383796769399744956756478289887537813659957724379449765679776964969559894938426887997359629965836385959561277597182988282788889834697739281858983782924767657247599369984568486457586965549575565632992768799885348485524663786976888935987696687593699985963491531688696257526688884589439746789498888685533986759679679848329499497988959877696345948643679798659997889433779519386463988714678286797556968937377856967155588474869979946859961998538646445626785818132485849649975749973669899448241337975998789477967265967396874355682956648275856728592992779977858832574888929737989224348247528573497734539667998944588567885968978488577449588577966259975978792869679258363289784479661997996689957916859672568987467683864218985653626488855496986755387792655676936998994887643267367399257799493828767217655999468364796978876874997587897828699993489887452899653964993687686189982875129438797487276989899695673597978855799733856834949667776659833998697584299597458787486769374858739898772396749766696677964776889974297868976688935735947747359982375992761942997799486693697572953957666798698796519999792775565254997889961778836697357676868665936287363999672999949795484982392667466999852892556757659556474368658988384956743919398684393279994779773848758589368889873797698699486669869758742973959973594886685479984842675555956482542732887897779967366245899734899885939789186855632829549368868876656377978893827637768949956978968825584624577995955526939894647992758389627857468568698557354489396968945675693897888756493794497841519497959749683628274859881874789729889225882978862356839959798978844656747299769982237555955987878788786548765563248455775444967461935776599389969994472889858986978543257168939599883647938345899381919857515786599986896766482969698429371973689979476696737389596595195297478386878999768977957779688488337888139477854787547938473547995522977997299999664491983768588665482223232988996688893668783974488584765964275594897437972584149875693946985989656668795864898955845592696389287796656718596719987575993928975987485774574737797848775248877678778648545888978896881963288657773486336558999799789856448425885571899534699659891386576825679287998478489845682297647378448964989878279664888788964454535989698886785769477544777338871949776699734839597966979657975934599877438475675993869959767576889419737587779367765168967789549897644876979445988845818698414267673738879987685665459656863854884483977699788555995959799798452764566278267888679386856974852969613588184644783685774427794837759569636968965677494636893934369875969796936572186648167586557895464872366442487638867545569848746698797857684865398229935439657976869769979637979726584894557586599686887888653999859675798949894499453435271399376648989496463588682478847572848946594365678569769742728929694787963199834969877596663934799633665797979856754925975644184558667594289537894556685686935665867988877895399788347583287879718295437695982648799558995425952893647634887486589848897224945998597724439896699856687686772999657641459578672988879999216297846516878869266896476725897777997222856858932856979558696847828478264156669999494878759775939975864795264361569978989875339759594269474784548832698254627856356477584847987689919789823648788595996684676979888799684633753736961889894272466588848677725884994791297499989875481295777568277967689719999596866486992658855787188998368948529678927943586695558798566497969978578589679957278798479869365273289752544986537293459274748964869461796649928847694891327645646383876376777582899696979558778969579329382864469497277867349275733993574491749785669388848429881796877999778777599339689878769589254176875539686743359277489883645327274536381793858977842758796458866768768789879987867669344769775878958877336497694495989776997666299763784578689758356357918828668749544626576896735866399524897569926729769889487856934688256433769928589885599922489886779899776422587248762587746592785665687389978997996848965993297843543597953592676569845549725646597596652826986973976585434329696821768676696765264925152695693698643864573864999689334591788997595976359799886982979949927989999827532899698578238579733755443584592284864559695667785348885475597789441956477734746738856788863629863947527356847567826894599991228753268678473598377892675773968127697666848418732679388985746796772289785975388598256753897488247289836627682427956665966894546738688892758936879888457399743981976956492886693659499954866527848999839185738817359755797667746516758687756856882179826369598689896785998987463397477645879389988957777549797777699894234785376482939686568786788866667969899824759976489474768763773868863577242819986692677494352535587896587839388349696689998697858943697467969445836973789399729895869579679659486823394636413857959996787355768266545988682588899968946959587584798877953369964957116937792854667969674457857745829927965773953698466898547736878938577366697985985759657419975466738747986875364576766273878437785895767287287469957778686587238597982956689945641937399737849858363557669719943828284647971373498679923979383776599277858963787628813885444698948639998676762989435982668956896628449979487997377686928795881159274873894858967997997985186944998489426289689663475839896565819974996997879844956537193487953839496856978628152899739418714978686254764686986778877891999985798888586784958378968385778435371659953792958457447986956989887796899959818917272954857936878859869979769885999529717668495928767978858887858568743595627919296546685984718877134629746376697317286986458827799157778537949728831425347847768689959492397836673595596795898158928789345225568658978984573884157698534596939346892977865384888548812653393996695988666747465979556998754296465542948437498854999299264973551877579995727929397756762668679418387589589327967668454938684249929889519869572917776357864696989577889867298958697355449736582196597984588765582778953866914889746999649685734728659836327644772765798814478898723585344658989225555965988648697237698798676598194974375816697364735762877668636439683885223599996965936752499249469867797495733665368669866778178947429875859479648876666868999681846382886475678945866796758166856463919954776858978979839175559668699666795849588298965599898635961957977737977864544899392739478495687876287999579469982686645988673764287357998964798987536887613984968655954288775886469537946997969489898645219598964691966969587554596796827558416452635748988788884796448858496956763799578276998956586362286858886957637479995896286487926854798778889496552863772364795694798445534697894989679677179789773935795288626627984998995996944847657875594798778877641875385938959973776999445967868565898789896568318943896848638659668852456469352879773662965698224887792478549753798525399889339917677754588726358393386468519547798444777547789625737857958479868724692282889899489767476959386889966959458658466383667874978888893852926996984589799549889967438969792968348645597688655896697227398576878747759849572988384892796768557798988777996685884581683726367697693872877749587177594955897598877529388559689358797658395859968869799478484869565882758479689987378967894287686979278654787975999676982595888936662898446366856436979858357878685959589793364698674366687796898268998478158887497499786989986933668584636689994976978864774369988339966536857886972798396653378626256865541527483996599688758897496563367874765968758872269876688467278531845958529589795797195495685299175935953792687488784751995893935716496919286273687963188837383786293966599965456567684879973795957839689887878176471498799529543323267889883589999535854478794929836369896547818698469367568959839876563993743869879293563789978594949546577872957849576489356976988355927427988255963498584597992847895537398896987679455769843142985877821757177698887685762399398881454253719632599754986668583993793646653833382939899297999777879836383586838797769486668876867496553845968685844364954167984645855964638276685945359366996376467347118597789285488891997689249969649983864438536717677659884496966497891966799584968595972698978362457272594798639638968639789723782577463694886436994844883554832855649977886778955883837649767879957478586384836396559985869659876856939864829868358273518281348769118659399756852577661559859884482589999748592433526952915955893467673767434899879287285967779726867527969277487888767275546679968569339979616768918597492197455645669397388874976798759979861997988378668294677369846946975499889695534422428568983823749498694999855937745276778692683937549938958789197772969583685898795727549928699686446869974663883992597977589564889198848268977494847475789758293678967539879774238667887886975457971573213687849496961558834779878549627923783439769636992548999278978827999583785567995879886984585776276953287926928495786338375647818246987898932686877653859489557985979239969134996379551994767736729797977598628589386979874996559545999617796693477471983587886238927982745879369694695494579246568587948656479694566889695376887797667969375979553779262864455788169156529769776799912766552794939368792648985376986719667989961885755646348998657189887849859564364887853386777845838889769682499175663936237557845359926798739973798784919545999966645898286939579858753674789399959725634884554766892346336286215974695688327698799496667736669844985415995979488955549698966648999733737958689896288939836899336998749154759388799589683539488796869593275885626766947635844948596856776986639879688868998477929879656786655349336673557649459646753838288333846463469949985868787885347958387778984835967975897532654898999959555787867947963849759667693655977968974998926279888768897856942798379275935989999785627868889595999798972979847887937665952738788885465483926778568676956494256478856435487756924576982758999736762325299979578976658546599817934476958456348496883887337956928799267788878597698696998835888867599839429564796274846286658687948967962994479869288977833688656776755697679779692697218558499585559499779697848596583345394537958989578887873658397578679797756967755485849818953885649999996676688895688783777927677647792897529613926864695776883768982649878999762897198243959574647587788665179555914837757715499596699739156849899886798976996387671955984951896432778598838897387579895688855799797871858725349348869558734775984841486289628837998165589438769688978894783893248389898538914665987988487719663658545995476998795258696877959976855757366189486675899885979425598986584956467987479877647188964763876657858967549688695878867848588598945182718899459587354389499995633354699684963599935778784259365847787988966796579729357864973965466879844853898664669359685749686555967769838394897487648739199921685676417579975899679483796986982425794685895745444263748278755687936877478177444978874583587785197744835819947684976381686584393749989875259297686679735838781798668456968284487258287858895392789839932388153878884871877989844998678983138789926497675569925897787699889437599959717787939967787351788661978785998817967594952578999777827544378842988899744379467999755448484974439819255888386496854748239596556497979786892859385978389999696979199498485161688966486757535514872659894379479334892868823965619486748389226467288895628547767857882989832996938652786166659622266293158778884837977848899276993798884589989659579644876388287387366558868959334527395496932554737599598758867658392439843752398765987692896587485875994696952979686954979456348466759868778673867885957659777495487454879989995843693569889993597337844686567769192574889895521776793986659457447688529439794685846339553965998988194988496286647779887386599769989499697988437578467975895864216797474284276585995871886585944886898646275856849856145685725334678899299778766999922491787587964886644171887888923986997425289999679738489689978678358938637137464479282496488579779348871817642848317995684796965656684778862982799987577177566979989679669856998439884794984747978196774689447698969623779954687645833963383978859469786979799198985984897623966848994987286997453628957847656397158284649949299391827796173826938962783781767977945869657834594878856968393768468953949847456496686858353784357879816868558799262894387688546886379931199289854985829658873857773846599898699957956797458935558642954796461993776878486728984855613583719796976899824896743686389786875399877596599454757599985589662989539964834837829976849858898783546575756588678373756566376899779977869895666228937937447249629885783995266543563479956974675557795945798685594876972488696965286438434669276879589849995349882566499983997197447249537989855694782658569875978679766957919547973995999888385998867334886539479972251889796946851288894985582848493469252679257928685767577545998797878849799965289669988779388788356852255598444871859964675498495938493589685972679999587234467977787377743662599977774874979778474738162848567797847567787995989769347798799998887688893694866958577597592285969426768197845589896697549276699846967394648596867897999586716743693764589989865931571278586596245138678666549882985686153842796169429599897999979466885985953237947569977699657775599152839689587619555896679376867624885975968815487922778824249748469567599885834986963577484744688788982299378579865781976985874757652874598758939449887839954749967748774766827739728877444993893255474797596174998869588387433858932669495976684498928794695489489897893379557875693696293683974489275717988893616876648287394384776682389657786699558693433346449418745866957876439595877595556784899375188862958715855958697595987928669894879398785565977757848935891867576359227896859779666679951823882493869677935772946776655696685712688756557137778184998771239574977497676698796773369688347279899868595839992558375676695956846683672766556749887579494465767379438969775999866565694595837936847838553879893987966998431784797787689979844364474696126949768769777499688682998775643299716728469459964899187859647297379679994677254978938899956598696298782969795347938778597394854847859988698974594699595828348494741899159375977393295668646554768779948745987584247526996467849899849588593277765269297778978799797957848477593439638162994298736283358686126653988925873735877665668858474949779888548888681898969217985759988437875996297996867265878957385426888983297237973552695768685486387555888528774799987985387796649795795828668693547429994688867358768589628987447989882999978789888586994397777458436283755969664416594876868999799979782579363694655977317276887966973876992534879577568989865363697588425492669742968579753772699945586327258437517887987899966779538987952997834525758438595687579958987849179686334423699595547977977598864566785979798489849339836294666458583678858824835566868448958596795448899962896843878563899732843797164663738888844616475879843857985839767368925586458978982342749899879683771789848639484847648674637769296899897889987775887559956695198729974977682329578985975943965389641687963799594798429785997794477599958525792999427684518462351979889755968559659992568777888884868788194937854467856857687797388647677757975767557289779596975685264861739945892797986869896884655574599992975864498986991921978762948377694147955826755979563328797567557869799176157749977776667516687648599276896884998864759755794778894978559578992374639198592996963368759589589878796599688655479797995827899976389976549475326977975485366584379772995657869788368584986887598955776898696195988591286288696769559848616693948788784699959983297899763855764795768853993476689655857897435788976983946797968336668436698898463348368938584563338564399494659727999568868297692349448427699155947992433591798797889489127627336867621389458889824264656779979735849537589846356569986998647768746986923657837879393946983477782986841968648993599727744882865274887868896793295873689599857986285737958668696647935875577828795568936779788369586299392847766958981765779567579886937487695978267683797699884839588845963792486749856698759928689254586427369737249946568477798898325768298792647743475678315768957427492897941679996882859395876249598645587979589564498719674693775855498882448392679379897386688956997855579779629565696533979629479788678789548269866694499296771587517513996637758498959889948438988779896587311978777889975889757459399798549396564496885894875578234775778689749849996698885393835977669595983962368657993928597949497517967334979499298866645855898339535976993385285815886668798766987454896891468799855767799375487368367693399777563689843818879995937928386999737859259698917889583359595626868997741991365795992587655557996753854786255579657639965763994667336638696775399977589785849469365995799798762589378956897627999786279973761898248342596787799771862654959595611789688948999337715785649799189838628386978756956744866357897968988645398868459269867636795853646237833746487899534196267696749946472983538875768639188797743777582835564758858494384887979959737166938899484699526933442748799988548684415256988528989857489776286757893991846879769479975623942776934678956498956785894963926697842747552996967758854989583687543773686491988464437799583986354897795879535874599839984762897948939889559588895662366649693755776572629798379967895778345798278649556286473684669948584488658981959878482924917969999688885676698882959849782684658478788447666979799326715677787979846678564898579736972749837779967774267792739969857614872424768398354947897736587988676776357588894788868556939737879396374799989688549678757697646429378699848856845499479994898989735854895899979382448447788679887894569936792547518268677355856886779989694867776988815887737567483639596897676392517928269987789556757869911492596947783858876859999648744488866463739174919997858885988999526897759519672876692773396949958675558669178866388277393974475348777777934778532749655996699758789959676359441733998568845829826796996699286358998675876955856659759833979669779998276766566398989837856767292997468785785895486897637564955688746963688969637789936349566989859948895788599986673788127835343584959298334888978899585424457184468656798546589377787853895786994983867888942498676959498579468416997896998484569349376599552138488842899549699279897324862216245577683585895847369938475967872535897498797966393777168436473968958398998139799389886729958567726856997569976567978985865359789687987789229522799391569765698374858822867493392948796474755919668831782688649696857266779427764482758795288586549549979599975978237893579548667561718674978878764425466886798993866879867672757136854935818874881979337666875873969746937679799576898772651467475859898859674729557829948755796468479985678933816484978568699597348479284738878994787135339749969845687497997958548455898982437593856996496558569934379698298967654789754785469567855776568978759193873587765477783546263777218887622185929966788782789936689876199778779492839346946983739646648777348463885317954629979777987898888876669395314565814656926896574389668436959939594954291953596877636894469997483599977759278395843273728675733584759416984399297349777913988675789857188334616985995279816951352895786978961599728938522587652948774648388959645595197898889666987195989765878899782544819737944961197194898669627477792845888899654655497998471453991753667547557597868798688659599864991984797998648678488264799678525998975779855463996549513419845949496299767439846397149886779679868939659554949386868769899327559775852579129773594734647949939289577975759795733969858736865949888649688669566392687756959371234493674567675268997888648674967869998965937568774895438895837596644349631669864956337577969538476197886599229514657777876436778396665668359843978258957563769599585458964994377712494241778892879745673485386955749177468784177159455985578639442588991756958866248982968969989479568985566976465558366934398499965398959636529845993924687788455866699842798885498686878346887883768897578686986577996965759877853886892321939693769986377246884565657834755649994839916276826685227449744474987757874629834855886987966198558564465979699627837996797675596667575178996455537886624882416878739949984922458687547838468569887838788675847969789669397285148485899898559585798793336676943366738296979789535778853336484972975857849384869258327948241999779546897689787939577355799998499688347677785696977437897692949545526965983896976986465882958959395269855766225568869797974534379768986964798796949754436487977989988894894677592683687268423687798689961876579963885665769795756359826595996189892333777388675953753646188989993457698479328376278879968684726884452879584782878787688788382859769488288959869858982916276477495183955855865938859954484168849991987565828785852688898798878669355546888685759687898999794758489597974683575989735898972277744587856395673985438656312989795598887979956585373889846976784282686554667973698568966788273918379895652196179566295989937592769574357675926889396977435959683898777794773345999686838575857587472668976179986482563596712933767966788995768757998156388585599597876959882385843959967776986977839669788693798857671283243958895679866947648939648685796768953354173772971548874666559239675889875246767935566599644183665995515854566677349886985977479518669586269935469989514887891796895691865564367979794649858299982848985662498835597493965758889488962365912289499669532893595589388559699934557879569329587849479996785558826676895477699982989987877787699468286992786562486897796878938836887883635825258867435898557495329597937467833368668697983877874699649289697897868769578727898726975658793773377897578593695789826899898895984839585669384986355896853889239876667392249656799568757877989998987964586776879965798315577955845297828999819285984497958958699988779881746356699356692392674645689996788656988939594385665617967894553964663587821938564598889656685579858879795885696298889956989656768934845634478899436477794287998574628189821959699589687975774197389997775879875899369863496678996586632359596998842752865758925498797526969684815699395798453387794269677678583986238339798878727829835366871999386484567637986376675788877849154647579876745375768149351934935694795614887489977695967468347948368846981559599399495847579964973237688855739659396568733998975894773952876432935646986784755985899586556355996583889965989196499192679845654996438875466499985787449456693775873276849667967227575267175969658678789665677364362976485959963579886556878958677985945655579949796997695997338875895989966585279316398875766564897765536999735467369751648985776298377957537869169651493747788754819598976959551787458498867115286597988876787649787728287988961659649375347985417889784797759575488689668682788998547697559549768968768278656783779869838749851467426397654666863749588997797987999276593778634934893692145284738667693925496984788457697547878876848746862779879497989784188464966369677777874656857954829984484956774487666697593897999199555668968688984358565577974848969528525195981886429877499985879487564778849648412788499456686753569977742858599515356593859578996312977469867762972784994886735889697884763987838628937786585933287398859925878879662689749686998947945599572818662778721569954696457312873769978998836384968465558697588998977337766889882486758976489325668791676444769877865991847277579587969771798989963664987958437865376836593576479297695239678387578997797558786346367172777945755898964869898492549779672487786786389765834898294975879943988778691977969568799895947577558696958778637935956953477577853176698798876469846266829267246758289633947836267595881874797776484535999859917795666484779948779697187489987294875989852649268887987887936769862837674886899436768978788196497298994999674628775437637767877685145993987288848284989789135528273799484935958973643646789139484978987391888882889999845857791876945653858625767556996957467986868166669878988793878934773995797248864457545899449489956387777429474757959888961798818746878962788644799721576877478648759665245855549738353887279657886738899638748384918194515999625865979784288945578553577579938697757565778688793776777668968895879954992777466896619949987996995869999356487427929859679798637684799558965764589996839577628755445479675837699887638965999788986918484847946992556996874469238867863877574671387887575869649494658376698923649938546551685659786587674838956548882998764559485444985895297489978288695753986499227548779599589945765665788385869837969936979937464688872944342844888849523658859441685684996958759836774899466996262585296798756949995878795288768367619778472644438863785779969666999668696339188749476696677855968847562874796765775956497178678476376687296289875182958878884755988976884957688486899369799755997637972959898786999684437389993184975359878954742885883859429767478865389558916924477586637987488149693648928988846859764983199499753726968987484297942453825992564969615979474873685796996847727489714386899936778687788767985539699697888989877339363599385953669788671885956887994893436774898779625717694966923583978785774986528948738588649677583997748753839596973669468798536923847892553494889487867389894554993216654767466486854862598574348458297959994756684855584997569944587799594976879735987799775969849687776837996985864597974785947384797952985456878977559796673687763648636476698786886649816318886419918727894664855536946249227483343878826898287879729266885867756646766895668379666682753328427887799927659566689586953692473997435385474784788664745936498597629598986398276848525959588938789522945992886649788693841992389876959639958666667286915395968689689798779695569425389966828856978731998277585984375939479759648978975989487833274479875997574449565296855591837819477644965817998999993288578627435737487195376459233587544736799966938498943995699777836367694859975678968487498417979476317743455698994991299899869378959457522887695489824886896967797945238798498649769796787548372175896747272161366429873968383978888866815775822579176983634799974175696842599795585349778616518584977483168977439377226797348527448979897426696758765236277544964959677699866992956163799658757288978986877988798678478656546658462945873928957848955484997737549968697968775735468859364199955377883732964887995998786856299473976795299888557271674876788789248589949787486366789899673995959659656676738879689637648547979694843793479938943739977384376419286693997477369998348369467875988587265678598489687738597837768594694776721899839776968572774766968878575163794949854294562599893363868392797456458668874767393797637399766685832845569863586851879921485787748873959999178896498848768637372583965773955985683971598582697869945389962549449675865866479978526695423677761475898776949668857495829442747986457768897955936779835258349279475845968956695569888556848516894952596989698758548847467787998869867744389949576815698377567459239286866629889678394928686576465439856979833667984573725588979829555897349589667397957997858852879744985958792585737992673585893666546229898899473276652798992551959793919177827898744966286488963316247995468897253891173787428978519983781991746386987842395952647775579478955994444595633577895997868972564589851452795478343717659767799655328969776547287785643867692564166966687174399898476769997959684488721816595895859996531869763686484888646849257797748636996773394948767893289687482386746876656756876768458735997976888954695995479698779262638335963853599288357798584565766989588876674737974575478866473856967558129643931256379648828867654296389894859729974946989556493868295379987846967637584573758573785597986999699989664778965746316567984768953332568665478993374854957557922836999936847889987628888697989426877863754149279688863349592664884946815783979977587798924959491836896293848983442198769749978778668785664657849876955476888989248978279277536722695898999463548486788987446793889987961825552955788717757697784548693792859346866778947876677987926858161473652658397889586837679846661164527747685588959796374639365886895999679294689676624486598988389992274999453992299528957835746957785787479587665586983445598898888899765984769977892887779199449696368598657636797496496494515991183585977939933997668476888887168168989487499144899948693175748753554558945329756653775635697985795682989666486975488683499658572929857739589896546266885835582959588966384939397463891883414854568687778846282839786968815845757873859278549757295571595756918686598294672896999394889988692448729595249778485484947727796657988722572768776789323699973644719995376947647915989643899799588989348856996783998559744257997978991271794359122667586378649646247488587764796148391894927967788947477989579889888899548148787376953725598899887932959634787983497443928283688697155933835589658988746574928737859465879486666878859697968516548989283589887339572498384332979767654964859569857745468979772386677263397455189417845927594988663698767567756976477331626547766489967668827979833885637595295826562644485742991965688573778857679369589899996574989684981588994475287659927969899796995957884949567169642987658589924969765889861838537384589982631816279462883288435885929966423887895358243648987876744939981993829248819589586985182394897188982755653979368585446778498938997372562628671339497995542266791574357829389889762299952938846196599596896798768289878498685748948755467955979483999739589477997657899976849457337496955789283718838976694387599939988699897447289947246765442854997969268898768849665482585486877867668854869779988985759469688787949939647697589684497678925879185377998157694634973495878286558476895448229891798385842186674975968567972787877319679898198864679845789379594935699496445679779789588765537674883895988975582365867379739596967879979781867982585478994993892876864699959394549537756965828558889767527535789725677719428867568261733999929568896499789997679989778636485673254238925878594896825724835645464672333586864953238789779485999936476848587761795978631268862973912958896598971958933878744387836977737849553998389795788875247599299969672797957747635966879779831654959995617384368957863967567737797554598158158899482487758719137568599688589761984863523776827938976758888893798995883478932743644899859189944798765559567988847768986981765137832587199937969295957754138536386696899749878886687639894997918749739756869456878374943858947699665676567786863879988385866156847497785765975862544223895295771645926775854794968785859865584837978698358759969865789796522769625889653948839964496547363945685296843858965885943582855938328878978363686389979592479383669749885688698579679689586794645867524288596675736868688237497668766855795496788697799588554557878284232999938833398892882884972714988488623588766556786657596181453658387788681695684618885479776967574683458569498869469558795998795259663638946659687958993863834959527797789759433949975867397496979698919893989895936859985952637578476479681279267757979686584277868798995931598571887329845629893626869978953757287997779685899983955897867746998975945977974789986573757879788944865998966566579779886954796653289695634849267623919752961363389892657737668549837755897826866574353656679948724673876977768675344792297289867775558658998558872997678597767968778999197988489337899599617945448698949887767886994574296566677893491466658566834899396385597289689896691557899457989649968476789837444989189978744935675822574549598567558895647589888276661168361587587736648675643696494923989729995547776929585875585275799882749889668239598379645954664967835397697659876964998678949929972894956827573735767666456939488296558586566799698966986578876289286585898388824996527968996989776769785665679747679859957484975779888671686572856673379999955675645425575335498592967861958217752867479568965578646969887538726987196964699885628991388878976639957599874389398982528556549635779467959514695534944486578796933683958759799785485286798767574483873826698558987561486615682495723669536945987759849999768789889669787887969399795889899987545614938896629889716939666885967378843458593848999198468744775828936377358971387397525773859949945995998652825956998587587784568381785762995287739789679959293958999228699899885888284351479878866972559192988668596866866494987986796685644985785621944769798946778938824643799494792642567789821933428885858383795547533599854789762878689479589889549381737775766469386536697857742798896345594957694998678478484787495887778693499428794437397697985376833597685454398899867544969799286643887773597725474776699247995483887567939339567828634763776999635794849457394938675686488994734884568758779979997588655967869986985849567883922297439929287685856774599265977971367975785882678389845824986888866288993754885785926599486998947799864528552935999591249997994333698859559692996946566951465745168797455678684585298972878779787237297459389488549797978978758926998899729444789153717969989549899819638816797794579997759799689768857697777995858367898698383475276372659988954857774657774997468698559657875794775975944996872461594448437788638596636573449785675552967369282636888997576772966868997984435955888663688869834651968655658938353673561889839873936977591968579638434959933287624994876597455945877494997945693675759634637734866967697885666428853891523987797369578989626894969837888738896989875364995497368935988399969953457532596117998283943766969289367814762572442672865133895434949749535999859596979469586965583659626564787246925785452794337776942784988962586628626396279477188328272777556984664743448837665729847985968495858898388878789997796479785959467899989358643799655384687676595564996963885877584878878316896988586662497785592295697759687884997448857974994387897858659924669488768853594889998792568289879689576988771988826997499181935587976633994946359269443496975849385867877452778997673746768799884989899458992975955868369359598499889646278955985997698529347283395666497468528294894564848998879957168497739554386764146927166692788895548848879957975997889487358999438497257982887868699897998777957796866687878359596976463836798959749625696789569999674877752665765986769788598876958687465756892196295932879851766739399475688899996795586869787494288468467945689824139867372767888188535879887696687587299636823871887352996958619876376477667796898928588459966888429398983265896596248848993578977673887669646867876996877358867749829896975563888766988396933968979696985986524977185889258297786997499994769825734788588691723973789969739496412929249663579553896868494575247987898285982274656457975854984448832881966849528588729739946796547556878976972689191956134695644871567897986595872886489896667788462456859814795844565951895767638479997669989188457974948588776689276747999588176833649569467738658399956773769493665884698465579984937468168822797534578888867972818919898374789979399489289284828758485457947787878969943495845957566276279896393247555677769194749694664976996976589763523545957449787923656919715299788548896945384832997797867466275218897455768477746954684848663665544983984997891452535457416933878593793595799737332587889359767997939895697973568978638769373579966989948994873678796669797876757972597769596688738895893997738828487992367767636886628759453957287873949359488328763328478467886499326646479857435974695893857531879939793957787625795779886986968969647759559989259328184732599749692587995972377889486889856767999687899773681876827879675884349986999596924637649654386889857789565724555842634785257639198864389898397486625992774352153359557384539452757427322892988789378355694959696659656988648496857974978965866889755399974876798588775987156828426446764458984579555245957978687784978986296916686794697966266979965672894999569447534899975979958646577489857974595749577498564387567969397874987734837989265886999437829999799779752658345374799495367469189742558459876815786497955167996577984998586896893979263948876782528786978973694619742575687998596929658832855937798699776856561329678569279695896839556978582989876999369879558289699695433892586723253789457698666659485257968866659785498866896988835319369822875482771376745946856758376897626899983496757897635583639349667843943825789295869955797537999867367237869939685468239671588563355665997589749985275958689896598497656755481972591266778783555939733785193478656986296538874999953693957267799599612697954473385967578874347849859855889686184977588979368695849879929773368798896749556789425775314899676565957496578549789778389989386547798676947576993459982779644389598989389874558824925698598366869976695369979727983298894996975667149659735496966689669795358652199894643386962826477996959772886186325868629326931648774479898892775994693669647658928646659727587886877799664998476574675661695598788659845846786647578578738839978798977897299293867994957868582586877793999794646762744999398696897291898187983894897895979866647818999929822784928717985799819666873296776434389983984583974757987897368448259686844854967778672966544889445768893566948896849839858975894986956998876956999759921646978877939784368289696487598443519496997598669956637974975474799253663276789826699436657864576689989759578695883469695478479878346777276949573719864575545287697396459968645666439734727657848779463796599868566363693683882366491879165975777425597968977722845949796995871787587495986459698988959649996817585795639698779998184485674976697628484599562577529198969885896879588459946575789784298439995587566463793966537497941559447339626699889948277395933698382388966992874876234476885566687789787956357717565668576296383378669896355179554879922668799889995246972197899733898785693856986994575864259595984878287398866977133394891489555984449996959989269991987462994974683279599973884975978285731759795766578966277447987564579469565534281748891999587378688377493469275498998478936148892833628986847943675374849854268296863678289472794588974378565659382989345919649899872639466677875646787698698677966266586699752777924639677577779879771269738796793726797494456649587728849839665266365337769796999361826689469791939933528499739695754892869952814859668698851648914589795675598956385858553587926935968899688179425457399186189419496276487978858577558689565553417386578449558548996975865713425866764983176876399935453575769699895343667527895589465887959793381867888539447167688467933927997144645759474938687669776747758577989877686828949893149879586844866478936769559928671869737667894898777137895849459684996996875998496989639139857796778375859292356389584558789468799388996848896977773941868758778989488778579965757858462616729943359895496977468758857247437967997824866634684725843473796835599846872457964894798548568598397379683479738975785989688981799441939828989895583467986779486733598874394884465932184216786795682163949637478866487899972176727599585496985985354273235484877558379782989898976937782882795487989665748339395185582946652974978769475898899579584739846679898598937395528837756752855724475322959189784185679778926486888494976578567647859978795697789179337165947696575764897596985954656388857559493778976873489555649751798859578627396659853981432745554495684456868919898863558769574559476515899597386638873739962889569875178869968359887835989898289693569549679643519786589259877568269299998989699349165548742498234454697669189698385148897698375188567969728657779456277967593576867869799844948682845686479996879875999915439977776689868988599586896475897452559984677631725498967978659589612884848999636994638818388697989845994548389438759455597462988889987379581487489865377554899954994638723766842174927857123897296886593989974989517699936666653588654966767677279467288726957392486747894969472661996264957827984978939853938897667373723733469939898955689579747896958163928598698878463876778585569653878357986959666737352997693476969837699598567796239997694353583997879457549779979397874388375695777365868894743778555783989392497948885524946895669889934866489785787278574898968964253969694369986888249989885476558445999353886725457997468764726245674746894845526398696656695883637258585982868379777753938295448794899798438995888448996934785999756579744516598477475179997918586733816276399264899689579585347975198897884751525796559383886947354993949878668352984589877989647819827842774574997562988969367543398833447467786625895665688326891198949989748825877282974544767396397182879998927274469174663822874299678873883829967867974994957885989598969866987699185298957572697963789835282588597686452484479886662727339775569529557955933866778679877958279847268978386779767888768798728539977855697966795397693278464276318987979697879849937879366944778735746495687988965777999796932961474997989896485687748897199788556695299759469897277675467454674578742828396979387533879939769776217657753278983899739728999579949987897857979398137948194962855932314553879646794912977755667643859857693787395795982489455767836845839636784557649797879347848571638997888751798959776839695684998679971872735754251789876959729586959269587238826297265451217687798477283867987767469835798699425879487652435187769776787597326789476745958274966998959786679972689965637584767687816835813696896768567999156869437656989876689996656782769585946388887989471668398792444799599498465994656996931938574383768893278983797453878871469977496662298359753687996858848368968876673887978992963994959765849949997926836276599948658397696476947656588657677446886963575835494498476562779999767589837983937298766943613347959887785945466494992735287954448879885979299847295697773252887937732227761258358798976788982419799877668683912332597865997557757186998839989975598998539748665458999637679998689288838964249935796859489898859667874998847396358459497985988437666467762958668289519789277688325875985698376396958279678979367716522857857288847658578995794677854959597774574688684947974925826964618899398959893274867532763598875867277174643878895488358539697497788999428989655788694896145979898998662837257773336397864492497327598596528968888396959678579857869452679969686772536428419778964759878836556887866668873693978544869786399872367976889497176286668946766834687726677686888747774299976779266859566958673839583666615719986499669978287586899729397497242944439836546665672486718583971977978965439765695799483665862797987996459493388857688555698229978877629955486678483677778368866479997778776741889946887519854997688967988877739483579894764974739968973876644375839627944786698667484658768679826897852977156488779645639958999793679567854997835937998755789633592559953298998549497979348688524218794568784879999669598598679999349997869399956977924959279672387966691786786578887547738859886893966962867452589399877986777855899579159749647968999598662878695384995468335976935689387426882769993298967349774486645853779489643992866647786796763946994883283648856943347518389957899711378859592877685654524379577799645896685597594948284994577396884997626594747979795593583349677669915933479782764287891544521294985298748463497979468996963884641744939993713784243785427268977794938796176725577953892839878982739445623857687749888838798979695877888762942977799547751453966876435877294562368936758598689559923888279278177347748898385999466546939968738947697277958574361486989496377548743835845979363742398132689838557944534852897873946638286888794388789998973865885989297237768574837979533189475878387594632656979769867689188873675314239797494539582766996889691398978574953976976849995875728496876798814167969678777973978489979769839998999649478799956996946996854497238979246876986592668123869328698993327264369596255877877795146967997919695656736793974989659696646964896368777357656546788569912555757994916979567652789773994879424762189864222967936783277548988778277171697687928927496948867259578742872279683766981957869668476794856495387999584698786764474787346697487877676479693645835664786634886257976957238599759864974149776796695842639368584977789735178986664974675977958763663157664157968576633943749674654281733595499759766943922664976824396978762979796979847757267966687992759985379786838893832399428777855563979866737555986873848566775897329598439736887997858173276994367885895748937855679427367688898779995549558287774938138383457717377972231987796966674693684798767969773385678727985792542682198254882968578463873189377994779557656933716867949783489967635782846487288589878265956857556324189279947559496253888799978747996836888379297987526358597388987848998948789493495628989624599986572452493638843599214556926735828758985649975858456689884938788297676675994886377454626998579589919969178138429869574289365568658866577499886599879323593589893895879597658549669489975692677988498658959187984485596887759847689673897864769287524793733869959453537467577266595457989787477936755777489988945745179821889888465969923859798676763993949679899145969889876519935576796598794767778492698876988847755596428499388984789667466693667895393786999289935692959325773887783573886788695596976999576543824657918986952986458993784679396747787597693599277364988789835553479268988874976865665656695169496774447983439288445789689968587896343667359847576985958794729542954964299799594886973885445596579874476989188798886838676859991565939766619966782378899278696985588478867519697669957389875951557668479589417478657998657287651865971779848577486874534499557668596285888376264839876699895878659978946679344898182963722139534399567993887589236546389977775439668685864853598983278914597154367783585948883688217897579469874497763929794576949949778738546977494889999587578989696787778665832559596993638788862988597347976476647952484677674956286778794986193495357674499874695779935871997763241467824715745997459277354739584769744678843658558798833786673536458645778896567298756356892991876639919987784267377577689298345879798446699925861278789575664365923264816295977839881978496679677735589874588963975788388987979276378887669829977626245369751715587349688499894559655889536894754877798638979839876995486696799578746179723938798678963555993227725248429872679579387979686788796496589773451869897624648985512252188423396789568978375224886627773477949682888558829688685983977675669824695725386489865956822651748998547483866328517296488338758376497721989756684998975989869859799847952869598564796835867792297978492581183699839767458989891889347769958835887716884797668984359858778297896978487999758146998386358872559327679397495349822998696469893967955775363489465698879918988355975987915449931278654986477949978186692486695898556947571879597787889818385138439978776938454694252348948995878964896849859468897846945957855689786889991975977468665596948599844967872969285957837547994636997869787587798768588187696552486845873488628455486989979756699575697368897397937576586888695837535774636795479339869978789767758269989446777895589797564898352576672686769598494639983493878119679795449833998981679299157789487861884949697692875783973948756652892389876868669289547885994629854478595968387796351469696659958377649799474776185376496695978966877289729932669945749276986416677494692698284667488338567775348999979668354459556689268794597148599657847369954988646653977989596777398593888943997895678886424324478698293233985136945977299422369967878378976749888898529379794276387358864566499858187979694598558669991478787955499959463699547838947288859979988588778788838992389978584558755869276946716676577848898613889899749776977569916889697169434167157988246872866878679865798475986798577599587967353949717787579387884396998573686877987458761979796767443968887755297665884656963898884854843577157733669238766985381999836539677894867583649464987791996739473859947689935699699668934567759597866468588999996778986954957497592859579994975416978868646487758696332897715877999786736857975597692447848756858526628454556877349464979598388289642477946417234514697189664445588246932897489286869656187919868836826943879179899879869579897836997794566699869599888896843554393548976842919963294379783233538884776855737387384452976868597379563596896892755783651564846735486889382723275477986879574588369985976975579854598964987395339659542866956947273799969384522938845788387996995759672952636729255945832587895758676546389717757858539376459789799594926996668668578619983873597286335763854997893478862473387769999924997977281955875977396478934878861949684344275658318677778869728685993834868558964468883968497786691698959899888694621446656619784849847453377494589718363573967479499977978779879559629189557466585798789486956579769389779865917777488488796354777989938668485344879595947895585667393699774274999899633994546977466778763684566974527497468678579664983716775598553539578465969557949323367958788938699964519776537627699675717858943574349635999667799179896598936459889446889799816888929942844688252776339819773499574846567679878785883976573779586995879778493757963999789617386976599784964829928443277734798269735249454885747779454266278977769868688699989893286286725695757467995487977927415566775467688795486873949369874869497447777787374367828985245976998956977259262699879699388649788662858246637999478898567634779659254559455699938697487537492618683498978962849837389751194478988774788724994488796886588267954438637547559987469693619675998265458537983994889899797585183673994689547397776645934882979878958176564658447368853643386437896518686286859795786238794899549943849876959677931774455252239699799799898598589996965946885495584816693437925786246682756457749999869645347233183588275727158675777349884371997957519577699447299754678688684886656359783689665648979799968886946986689825777586897535268786397676938847215695796485786985724184188878674289388635758896996669499678692989868879374879118839695476965859665494984746954997549479587887784759949626477943359877554489989887646623597696666999289999872858598878583984558549529389488487797696853637868764475983553989792985748799399946423796979643588863297427868579649894476959687784999588468268836999759519353568928978949668696757677485793928879983683798941954386797385869584898499786679669578531757479799993798579375796698627859869826794867979771655885758633699749637278538695827964215774576433659479287997895779569779639667249621739489288595758567285943589853788653883899893997653867351996977857884674787777626795955856879969549673559873678865375779396688898473689979999768574296736562692935929876189888599985939665999867475498299911956292469653589899485986978729394884746825887994988684121687692768684999947879129599787886875298858739532929729598194988328956696158397754272179797789646788986878295686991348945186889877737678973897129489628796965247888567999866457776796978761689997958974896646978357634958576996994347796678898965581584238695389799888668468699899938899283689733789456838549699663752182955316987593878693876777976539293875692596665935728874398678427139593831899229657636968577353586997328659873978937885548367458586829848897978667643998769596444538593726334398897989589683597545782959757884282994485665939768853637463576968381965939463775837398964772797972997387798776789823788999626287789692536457596979136947964989676786745489166939287694996597569979687579629748785239985365266865887564468966996365297227948169339572958766968345777689982524696652957918355979571879959678583695739971599282758979847575488894631697565869694779268973662888366586687754837499463345969877499595659779874268555978667388338153237376481768854873768961659846935764643638887553749837595483721988257688498699479639597871999963252697954578221646186828518994485957878536686647587968292873425574698438995877437531569865568959883678647957769278992655641936466976839779532878579997658449852399869877188997797869776577687687763594999768296759489996864663768399654629823853882966546686566957995781868495978798577697668853796624284997969957898989688887958341179765976567949958456394689985789996674889758848979825928897555383999845568788574592548454669769667898456768945446652738797697562748925795977725857988969338364998388699695793667898879988958529894747756849939992879897729398425972968337696829736677767894653288857699758994329464487997698779499666693319849855678135365962536453785869989857786678883316678769498899742879326869897496866768873527627968639296629996639899893543443498969477756786897359933887463547795866266726562858558944885889557843684748797257987468988779958664969975587589797697838859945739779937957262493368868167982555651789244887927158379962959962959784699694949595771667485587449326575997526378877388959864999759966689967988863437769792678953978896857455169173937765894897798998285692987899894848989929675899397474996865978935986748695854678644529666863793993864765785567777386919329659979899877692859695996337985459595383775665989298649888772944947876968729876179569391566296883897697755286578858897699927835856697978725877169367664784178846679148679896439788784554482629734859685997865998699746849529916992999689363899835859546797578881833689675618199489884179529779999892877894889793866876959674448866649484272726746359954646768987572937976245495389877344948635668855968937849754736366458657664899695259425687796898518951743988966539538536968728646129577211657881114868737839663463589578939649488171398996799858776988697863356889977491635659753896667695977659619487996869598568157449767982125738276766968275385239425839579528777319698359384252167792385654465984969799926463796678569885876636589656797577526977299539685799489348921873339839879998779989687427261877797248756756887688899867877634992688463657698692766696883699697616768696985773978496494758798589987978365662767972978868962996889685687739449795942427885557656894738247471399969586887464692677992789783942895494749888328597386964465629487984768665686533416877693857897687999363738797957564814239645985575626485294388484659589941735785725953369474863989223867399966626688896987997887447279938889397958496581596376345979999573525888948878779816789889767158478827672399855888878496785971776939972829547395938999927894868179657716984839579479383744998399548644994898879859783996772887781639588978978787924771924569989249449896754323352984674358748856988794652748495569593868787937427974899363397998669665849934638727675465885795466315964529826659488689465762898939799872496964476877697678479864679885848986397762388598877598573987698889849948325577981476369877668385962847896775255799964674356868889946488484794984789984786193538686988518998968697471388875764648736189566997777954796844219682558445697686928789935687989985679986374488886893143693874887837856657279766669565323757469527835877796969789668868569748489617629888826978237869693521484598284347495652875759986355569896718919996878638657898587183797781149558898798635592896722796879789786799788898975947678369468559336528687897389894936754519363629967897697486334418799688543827547977889939847596989889868397387398227469759847869795599838956688369796829556495379671589498236857958556953899673587669689349545749996387899937945648857856747793499696697869876947598659978785887867869547768387589965678587944728788336998918859977492954166798972839976899782976913938395878665982975678897981879947573429854532789985579659788464999933871987885695968898766982419364989974845937659998339863358649713986868869998936393889358814384432794539893776488848977747998945486918958359966869371249958947428499986987584157865594898933949583956648963599948765853987366757269627458938787632775235689249945683389538769584598417437981489743879761858379536389497219499712967778893955851821588279777656377881988496773788995438789288595778654424778799599898997635356386988961595899394683863577497977667798973938998923694696967958866757988799499588457659898974634698517997669685797395669892849691999919975763986197449687345788857979966878973787969469944576547987968998996668438578848878898478352698579988841585653586688478962672979579759628786789765958299629986878583679749697668969368627946786498972274486891623982776957575566698897695987976966456679981927798889894895724888989675777686756749894569817556744899559989789878869397879768881126692889193959668594865948435357566849864682467669667898775388966996956697964674948875574977963298295686939957588859339788356258579777968764263947489774599646999748567796989599987657895786869286726275929749795567236984854869835488989297586189578453538645395698869824863659488989747698462454942859178765952958798873748665898356974946534599663595354998266185522777597798973837481369367125217587565856397864749682759889886374669719648767992682739787328568847899698466816872879846234989546977858786811383787556957777369686968676675683589547887888975862969825395893998893579965665877348449993568698977976877494559738968393573996999394658138388734566997658772757598965788597174798693992987938582796686966966779887595764227482949897296377285865679999295297645946577358233491989768699468948893615484894696374997866682397479248669919385668733638987599587159677849577465755998987997548966796669867462379995989874549899489999897455587696898819379863858837673795977284925597879636699838994443957239944955717995639438798487979578997885959437875458598757868969985695753833899782565857987955478869676599734998889659778779594999929597893383296666799699672388525475328959944739679516736897923986779899987835853967897277968978961962629968978636798564729496389683948659886938389273679146788499769938662888797787467384763935938857822368163347844875784476972579649729926854937779799696478368268995648969496998842527984368977377885876881999766837684949973577398699979968368392994876878758729317983897898592999943634395789887345537484357989236837999974494755799683486628679483985197939767834196794641329596883789776848886848749278943397167769469418458887737332969269648947876148892979953356456867789873643887928868145366898696257579839989196453578848864995397484886433757987189776696729876883864664655988639891679575983249875696857748886438795849854378982797979744758563998594848525658892873577594353768976776888787239988389752674868787899989957292799876968968887946281769789755248861377743568799467599444466825273769998966992893849959879698933885599668438754869997797539379976339443655787797577822887498648787696866884729657599758348338654979427597728999677869738843298513379938547644659859948979754951964984343938858977538296357665596487688868598388945467286286785698926987377647887369657395796588486876726296726969649957787976874896285878758877926549779887276587495949266265749676675877769558592575598926539988582897725896971989683875954444965852783396949386823975998425799855668994876176398986624794836741368695938897959342397487376493738543875889879923936749693726538866785877684537793998999965788365769667581391752579596783688895978478998536334876747957573994745767676933769366587578756896867655749938996963586975579589879545676297896987749179547597743979698554578899869499469979877878498786898775455458767966656979815497465597395958512666934654658943647465566499868768744851986829744569855987944867887957988984784897934995799983841755665966537778899386894866688957346755968955862659935788996867938899598787673437369259789967746395685371987876988893649684795552386586293979545244986437583731724997689385995635957548984788542559676198697938892986159595598554764879747999865747478679485989199837897688617996654935979394774163766616437289487869657799489966963768445388859994764959876956998779838474969557776889676499786365697897595977553986945752579589859786474419497988266534897963889177399987479758584971458743494729759826632337434858659766376971373977668764168789895556486747787586555923897838918477799789498822985971574667498762464742879267578818536785385874599858159557966899398996898638867466736247521888498975848995966765746548888767387583879997648189855984658289768269686597863245897396927246532849878268378697888668176823886888417584979467796998787497497326881178828973867756966357947643898897368459983892859475146879988146989949576686776589438628792384781558493488791894457689656777974725878847958186779365782978598857555826689942574692899637549774382685243286787747674943797749217244529795898266174872139994524964895574986253678375984927756469797955475799387837868686453348954871495559845485537885737697897687889366768928959368233154219656897989978959946726636759884584648857582785992829849988989744772987596563926948969658663955855543786475876627959898968629992752897477875568756823566199448278999389495969198791593899468783951798275799999469577182692912968388533489365764879998138789976747977785896695628893897266381947768869958679589393569778238399268794343657295659659866944697996499784646587966639697997669898658476577497478587998287155997758464757958757985784682512756577778995879892887754953999789999568958317798857449885956688566749895989327736777899377536747579493396649953799981499777569967878966888972995886217855693879546298653542846895435392969699377793618584479997882829857956579667763578381847958594898675872379796869878858559586695786954647386997657563778877694679759552738864846855288888553589743889356939764686569432422685776868569475963782598865563889585695989876294348857979699371451488447658959295233349689399819558349448744595787958396876547389653748778518685499947864355366965859567874855899426888669259188673838636969554346359999984498988891984858859566377999953997271877816694599969676338946656563567935398579667279589476556537368775614775889663247979996956899576586879876897892399869994636887965475523688155459746818775995758636879497759475659767868677789796673222789747896591796534677937949983579997977799474695746787866279896416899576366384687459599435874926895654958649316957596836769462679289799968564776878579959957447488964579537459759899893644338859864595774668835786936718675986976799798995979984474877962988273769688455679393996396797857588797549989786466897754968685899898664895965548165439998489998739456683979597496997638822663981566795589678959956884546577466495786763678776238546387738787663578741394586267667759159885668997865657688889788834865589565796794863862999669886727926919633658968937369879567567459298443767882868543886795984598985876532483996295725892791528498678757389598887879785789585565657822855667986985499488895759867942897859955784695848459996539139993588669364462969993692476195578828898398956998988748699739897943997865792975938542849571767787969767689483367527528542537635896984226479533937199955978864865777877997675738467978945658729757878745984759838976985536959685687589649399788696364984888747742753557348959593358946657379278946698695344272376846637888938639984687158692978533458995554849996544995694717277653318738697839678785956764759981823759698697584889963756686675129496763883856153466828597295727964957844748418666693692899784826987586959946859858456482975669879586824759373587632325376217779769334774797952446697476739835578288584898927389647978789888769893624799834574952918877788994716944993988699787897332948777457849699969797598464899588698266584489843827589938597664866664522984866916854764889634689886866855569677858785268953879887998693958756866898246895327549193769598829525995823968985359655959979471732774999951567865956838478882949575767948496498663239788929598958639594598545875546734998662878929958675898589455756399839777699786876476976914667655967875982533468932498746653988999797366689972689193998863975466991823934437655482564579463885696445377839967687881494845842898929572629194894465949578993583992633957184657965297893678386797754967997346784256779998793567255443393948799488482968763999688363558368894566636686956357898689547985468769272185712556569667399838537399285759983899848276579275895738874756747897897768566995667829553968788425175859289888999444657589178855766948288899578399639582869589675897986949592998646742958964486451758779978948874989649397864579959848664459958883769999775875488969557586787981788325778436815837785758682699852998494638646784485994646687859799982678949782748868553425999383259547982918753836597691477879588943747996697565857849748869928968967962959994969563686924636857498795499948795966784986769584983415878599855865396752369457642995355865895997656284831225847452659494996267984773797726898983358773999865928529879232946969578875639468478479512449687749874798872687798975692366799831792169497779894286937568499486857628268641199879179774828599794899858919889588925617482796892757598575376849573777189696633188687739498679856884887868899486499988836484794487848567697985784589488289936427849291749658856375577794578587843563787384614633928958992478694757375777994885532832885775474479657474977125746437178886888991959865598828292797868946626598467919393217596657448659699847956549989549669932599987735774583969599979565678755999718589528698857472898997669896587497786271788489534982784639833776745864665674629858497559966584916987797383786918857462578888597265679925852276996838438895694897428799898763796933996668966653887898786858596745277295497396599221438995888898588635365398595689642374579696687268881997549825957769897652797784486999531946759485372297654827787164778663868358788467772875948388882147687487374787976558944595975953837678575996899485583996975685496551939398429982753969947938798437724546629964972987697476598765698241477469953648749399786894545417189668999567876698777643795392687877716788598794283939182431549657566155548648779989994699316499374286491847289753846793992458824959977465189652778888989799787828397677588772297989588874878366835935844667688575686928376564878988797764469977889998848576847639992216676993484787229679778976795785969573688958858594448742885887735316572966359898555489964446988985298174661458918757768827753386848677768389719997598884591956358692826674552725152777239861779276798878863985369223886588391776976786689379198823692348476914968925489756249637977442613616488695315977789945478773875986571587593449851866528988674799899864864864878999384588765588923576385369756898846455641777282623929287875889597849674775886468376346877876988364867779632467946794778676289385689568975887697579688889657269678476785931699782947766387559778547989965698382998699984574898875379985899794679749984818778683699586565748879968938846396396399758547285545757772724556476868475929986339373386949795967898467789572995738926339979688912848659484368998989699882696583878698955752559993689785768764558258622973774837379994599237333888578799328989577767249588593286355998554676796927979976859878679592346357575787435788852878588585266471993833651392859999249898663288689983868495757999558989699945296825977967697979867695619629688883677678788579498988753287889764987799537779265599555317449955859176967736897699568628556875889957778965328957878998546686598678627377866398598912545818727492829994995498489498337879427983336274986867576749729815497868727728767679968456673657289896992288879891995777999165575859796778359378985471497455737752345576996885867863994834758887964459795966677638898999795447315696867458797379858367688948976877697976752743765569774895269788777949785784968545558487589885738345726957397125647968885997523894641855781656786547468899383765897979174877989491788319251599929995989989999882729695818545892849553885417484877695731674639596757965478894449849889749657894969496977755676488946758539499745973369999799965243386985567956546893699656586984879962395799989597489976969643588878863886865846897292825869858976268476568643797957898753476798428643967194686776937829214898998798535934939978693894791797393847857862494745967566996592899958645356969978459466599848999988883969395391583773298695596434398886663416477978891896577854879984468756387938262488688459586987898945848558754399976826897659879239689784869884878835998989833497398598895983889964393667374696887539796599979676644954876765729647933887664889797745773423814945878973788895399996867848896588875937679867983874488888898648459898989588675947995899976658962996853652594465885953799586996892968877749689688268691879645367749397887578265654684538638368489249798675966384586969891599779699888739699377853569376495643476979976349883987686829678573378688389974739659956586966282968739546976857389633827763779854394667699584899699929998398978587468877724948773927879889895999797998727179464996698999554769994695469976489894927543485886597687586523444789666889499993877369646598858653897969834698152995346757347893945251855532567574898886789524676995468598897999784865665977978872598157873735996978936929739954688678666949875357567739387468949572429878969487396367816688477899899723798195544999168977844799737477248569967777797869677398893857275671798754657799965755557495187953918884578922666548984917498537454535544698885854792993855649759685741924825779888755567598855684274666289599585632937673896795488796898546959547685444968698999889467897968682869175759743956173478937239972888395635287818865828457977582768835895125778564349757669447968666745999474998794972677174458965838744859797148968954961524987465729763778399377459598984954486849764739654669984794999259692597993969885797683279769885777498867728689358727478995458654876876854596697595877923588569214997985647598737677879797879566952868696757784686348952595388686462748975989939986783348268945779768894755879667987663854579659643668577768778894735236653574888456343876754456937791649987368737663787346634749978963896678758548994795685536778795454318883545548779653777353296689688637781554819559799586479478978872766649825917897637389399765855872775973794443639115999496875966798984948617758668766862849886866967898717586765598342669855945524825687838785898987896195352884767892443949383629689656884968731834824977868768775952545877978779985286825975944193947532958334993527697358248879296982689776297992697557488617787794782369989676657967366343339719918787818874694591983586858588829737986576938947629779983698554976764782878583921654674889797629597936569942898379895497838559549275688979778898998387766365626888997575379589996894852796774839889449861749375878216965947939576535578365392473646358894458577482949798783197674792259778526799384737776498957983265519759767477627699962477386579688349498875735774679977995894969569832493788593858979552166669655697848798827964595927956436878892896449734788437794692749186578872769127689689744813776745948797896888978767773489888917484345373724941951735897889386594456245362954997963868888879668799721987763488892797285995784952597383435879593954288879996657798456575396564782574248549763384275477495889447878798635862167783949738357667665538784243499494987838459444385793539297642779375818894699398674959887989599978384368788663269675488663863878595729265976429396162785819533383585349575689636649494763586566796786474781688199598979779828996797732338993596594689865795847989469997986772889987452454788964174979737166778969889985468158941191529775599397655646799889952964978613895397482193828579879965855871788785956778657759995748566995567698938556977972559836679555769478683977787879933878936766477697489782768998368948447686697383859384894941679638189672557789974579594693189897978899876998938599525577996522159955725476567999536392782938997698982764879648656336327984977924999534456988998999967265585636793357396579893696753965623972965415665999993599344735857958666833658739757745763858588684895935899582558373854935943978867279939696942984857485283352577388959958896874946338999575681869956656837791834896939636267665494843257966698489669756984674949999999943888257666868879586748937867859468499885553976674568493764788527978978484659798497498465449925696695689659743592461964785845697539424767565894896649987855654994999959749469939669959938759877749738253966547544489886646859985928758831961835887295783627637769784454668465473989597847566978968853557258598979879777898345727878793534898435483846749796795863482457436958895671887546771818893227458727672879768786548478815879983754845999879828918399519695385868756817375239785875536857745952572621768747735585553657976245564926789544866955782456969749856428385627735556849993986895894872649884477885999967578928296794965187967379796766897748661293568583581228725774865946563972259422678565974497656571892778898498858589998997987449989892685727586836579297697697898754386978878888755757763655587747989169846976493779849874596739885589567395197594846998778759868421698792583335749458837968799296983867473869957492699479749562847818867457664985733798585616576485938398379365888638737972898795554776476457658476965385699348599877973799899589949488766284866998478898628696949994996588969796942718254872486549354674867279695794879653679799898321775758678748856485868678889452588647459787466754555659528868685579649969735664738968767387335983667588884456794758475777457895795887427965895692967618868698782986949939349899819269797668426734896869695636868399789568669772937947484491248889693837269873776468621877789687287527369959428479998945999853959436697822455458889974226629694962933769566943576486397997666288668847447584372717395563963798785978626992759787765688696437686588576971461185781686398892979969325898399775972699762964991783862482894397381494488936687499687975897455558776674931963739649973493689886974497836929563754997881347669889716589596877885767522853939358968995939747794677999697398968799984695359999787598488398777548979368664749699992988977993662552259986879963976922335579886448964883265874423874458566949798685597757569262566487879689723987856695536637965536788554777979997392547438673379259259538487846968656896566944642788547928593467847686445888991548576898667665888771883799569968443173685756458964546739836698679968786487994687866889829969279796527828773394942717676295857323998667533746394947359585695347596968493543539684935664854273996643968787638474127985739954996895478814878769868981595974959749866657959843899358864935485868598629885989446495963628234538288546794987979983457574868495667953747388576586987685498777499947898786969798844575686439789639659554786996867739685687195486669979687939887768379159597944754876426585587596163489968688265899437436669973899278978975578979988379299849658654399875899976987846869677489948295338425658968794768779677768587358854797595858799166685879566969768944732458394864259336539595861757536962936989899298937549994598596597488798644334389983798666699478266878585986937898683948278842536868859999938179958473488999915669498997564288436469394876897548988743539929588749279884953968738278786785568271885284789596194986675697999598838878569584899799867537663524856694488899965467537486598535528394596999448774544798773392811587584878485878983995995287168256799686838845764798968564666929864478458837683476368616886798278795886567769869863893886589377296422599998888518968543888766538346976795788369999473693496815962988896774482858258522487798377278828693767318349868985899996836928948335788143869199889694978598587986937996985688562362955786487686855665547194955364957968488959964266852886944876459759555969695876477789935497155267577967368549848588829567956799396979579533374238259367689567886996767959785939358551674539596643674629685698459877846798645447698579293975553729869488994978895647476643338924776695679882758969957928956896699899417477596584598398463775787487474989698679148977857199792969647649645766736385547597967477686359498279967956746593381779589518677551825539577987949858898979575683846578868899189527995743353496898869887149959552767777397452298954564995776444573574899948294798788856994887776694694797598687373883835876733568964865819878521588987794879796796347976898987483869472288795916447422799376781291797597575127879988778488399793595798888795885543964478495558989468597399439584683538969888957787355738963677353841478245988668679286425967349689595466673868687888838887439788274193826895999985984269415738957797589851842759598354847884865357684514883938865747986754935767877753949835449874496534928686844691275966786968584955974795575597997998771876928752295685784499846639746645723766881765876968484779887569854784986299997899698859669995866669294979499741469359783634488979695387399654777549276798625839496398795583785527887987863714997184569568733526955861479789336258339969873828985565895145785998226996754998589974534666964198876364584747619888392596383964822516589499745783988798574794979886922678489796876579996682389732366976638176878963987798787729775676849498656876678957336787718975645615498998466854897657221985385988383348536889358688479887797976972966897581789889749885959577983477816848488197476368569657669694873897455149774666479986999489674499978887493328589979496999989625697659799798864694797589899676483544398799544349798278547738694719657985545286957764683328949699677396798997495275596525963794556787925993778869985545836987885885289557685878569467587886797899397878465796493776539996975727996938866998546596238694236836994582272348757369748996472978886968899526964887878315679469877467835795987669985955897751667378737589855556836884856373979796739759335925899587979992637877637687556683455486776799458959449657475735686928862496596998697975698455853699783693954998936599694787678386965824789359184865597992434649147884797832977896859368228576898964999492775798495887884869864591173296999431733765449739494947475789869772888599994938443964378799498938879886789488958244591997976745152994545624847757967596999965884985587985627298468265598666998987277867269985757729587286778363432784774938786674668778126797647987875598173385949755982988885858898984711296875497677999356977859785243877957758597988924878577485791965989688498794959795765466736844468889775847898892856739674999945499789584977732257745797627884699746548952848425698297699763378482889573842672659879989889868697679853976469476975754578557716664988593764674734677468776484697975662787638768386628997669883885869887763269489594574618942568579637166987757267533381547995964679672647858579487918714778281737557999497977845277787886939522775835965875957677545998581873499592291595755999688934967949884289966863867979928898779974957939539955557779494986671569498898989278971632984487977738985356974993997989465587428979889977649857868986879957176379388579459672995388486664887588974194759163577783979777885863788246788976492968866969877488553864896867866868793934847786779875663978458885688967959899472879967329877475895369985786776795569881999888998659443969674796489817846659589888845658778889887569986579562697569645828961786984454657974975989888955875969999497465897978914468696869764364884959776895744845889598744837826839698766995686888987957879938879893546478789883193495874894777669376516285865763599873289888816597992868245755973429845951685998766685984446995893589617596736749763535547265568256799354911672991758765868965617889795748453741665233249596444866739588997677458523858658749573576597556685954752979893728479946787397983733995829556599246999471947991968199799644953447865299957439898768299475488949998955985459982878745984152999646473789538352217599938728396986699663916739648699589399968467797788654976176686249576479889946989838269444887344833866876969289998888578949699448746686864185963875899917592768483663979699399388691959826878489845798656778978695678758597654693997917676758747694847785382546855314579471925639432388289739579884368953972388959698695477897566528958766679789966554977456929175879837766954694935569884553997968869437967869668626788878571998379896958968976985878699779994832951799559573788673979683659592664795984596986925528759545479159897439989519797982896896668897746199754469886946652738883757798478787887798887486675858879799587693698996466983823677696557844286697725925735832276994885445887454877796785875598876994443949898769448999827689678973953867767848479164563877966988985684977668949979863674949499697972449577798649279799163525483776999369282698586855885657399548727673666433998575744684774799992991986157997781856766868862589768654894989483377857148475575338744625674996547397886284982785437888966219969589864494984549487962247839555959878468962871579778465817594796469743667553955948976486866787868677966174773778967978565278399256478879477818577298799956149197492785975416645634859388535929599523789677584318674788896592945639889778288548886866978456488795956668639896894889989837688886937892987866788989977558747567874679747997522999656689748239385646448818595355399979679595949496853799197689957888899961788989887748268329259598838927398989666935783699989788773366477488944776636217787695547888368623544485489997979989899664875689578647693417999958636789796153326149398637657778258935862679932579877864837518956667845485958425996768461798457584819763938486798788898527345378893986878887985187168717198787979887797189465588259673897778736774275985626679999769876878759455958978749327896949793947698487798699697666686649496768836889759936989895769893675599978869364756478847794515789388779966389537868598164479596897568876588139789955532869945297892855966674849967849951786877984985873341579169868696475853961782798688557693477799882987498649395998336958497565778797886883388769886888763866894785128584979588482866559846385752775389967653672469959796283588848879837519296978789389574393896469792968886465897969826569886847697673912747836755883976529698995896679938833882574597773169595375628889996759972668934589363559367794545884879675634928396963857996986953859479999588698894954778266786632875837396889766297589168797589161874796678355744696736968729562761998768768486876443794548379673589979863989995914834196783995588415689988144798977585449437771836937644675688888689765833784778857477775958989879599939746987729797959579869699519798889476799968896878589893698575388977767177164835964567697967896979776854586999659965382564854233347757879615477766845939477949877984639795956579789899542699666967673241675896874937788535864496296989865449912299586752574393388583936725978888183465697578689727886493948791794987662987991958649846698852547987987975395597928785969895975669715987469689595972749895939445817985887978887568294388932497848977174929336769739999543561348946867468638855497682999588695938675977468796969337358889786892695565279958999548985635548597733286777836898265885968985741594698297597466896469678887862584343899873563663788995953395849298975246799767693199799465367898417649536447583877596676896476484697584884746477946848865874427665988298919898981372668798669724986569786968972898955777883585969996388865476986745798569947691679628957739728986759495576858599568499994976489588868484477612589854987995589597566724674449225433524894959199488845998869995829778836323957537389596443861964786486949355786879598298254664879558595985875928952939966793494795248698989988389689969496799984278546457544997952285575492885569687979449986888874957836299784877939356699796857945664786886534538667968875636695948668824369168547387694961827976378688869557839596584728977977974926949795849382776799465957783664852774759497165998986789996438695597825468898619524895983499312475659875959769898855657997379758876879956838956685555948386863847671749758835589169793953721988378716659788489644477817446528876675752249289987894668535957785814665536895567981163867629996579869791655889987578449389658694623748889679777967488545916533279937576898484988488557655696789838296887955769346425955682489675268998878856555238568489767974657636637995687799748598962879497774833684493879853725778597999777399624838499594485997785949759999928254839365627685841668284657682449599594739879689989954199798435786734769451599799668896989246746348775563695993696878897979889997678319368852663966558695659855267695567466599728357733979496687938878477733984376371278859668565588649863943426561463675977587869364538393837985737971486829598139589771784572448798875479772576747427195983894798689955675187733968455498945497453997614543956246848888878826478659898659545959489678979688566992978919657596684876996953937553869526474968874939175988884427987688544568681828352779996476795656819592648699466778793436988832889917585477859579894462958567591995574768571567954948524652552494947556545739698358795798149289895991736999515545687889958799797999989379563997869754768757674679776967395927673769282785728867386994469839554719847378579788367186697348768934595447969673548953887999867399987473777786885848948759947669579246246869667367666956548699275468852639537789257589536475277456955994859698785565562896897968477476372392848799668288388882794664889555776933572429695268385898867938488598842656937589966857996784469846539689889646947474851664854495253764735874842991764285695997899889827487762578652657888877483785926517459869457598877868777794578796859825986597899714626989978856356878596155377952589686482279499774468629876389665788896997576667197769898615888849955228598839562462427596358864297481799988667859496879499529899893966399765549988877848575998917974987763886987964798768275618249854668186737989769696569344459293487317396584547869998986581648399796389688663759471696749685565975897958579978827779535993858763183861957445876466689845968577764989757927698949797555446878697662357327796164988985428735979679965994496448467725755869354464936678423896899779744953669964749348438583951797559744774449989282847675886336958956759578837777574987569764268972989768478146692599985586479736444979871775394673649777936945855664998993352186854869997669969365747628994658699935788693889695137576895468858399432991499449987688693937891625866385798889258342488599883729798877716985948344785993583989728765679855959999693989968379826788477399489569789998888753636829213653784736682888177656554744958845889873885997875844789348576888553687754738979935859714598887788986865935869584637949542885976645759373697889552977558837559865586566766448848975974697998962767635669256724695912736848435949893388938677666736594829958897299628784876666984998889259889578478559977789587833166688586884794848585683976882675696767662639848989813839599943888923779943491983875969399898895989749477597972965542877869876711563971958869939979355538858558965369673668497575974967468858899967993875226659724879797988741667149969246538996142669569285819859879818799926497576675964578867978669494959879485467865427286842653534879839953395828429472494418995469638757698863892986859997881369698887595746318995779438834229999898165648689786571989686976286559681399938689942979727859288577578875584278579697377386686599997329988752838598992913978571499689666767863397799463793993528878479734677885789489638973899796899784768849796987727687487395546568975175376949825488585592843693786976498982448934638478788275929347588679495785278998679868875827469822982628294359866947177589658956894787784867696328688954826765945687777769457756489876725837949548884746829939836988876931968229783515479987869779945785763745758866238699239353368975358999294164458757357948267753959559298838848346667979795994288987756538699347673795699794828787932423985957286489635993567649573389829955998568867683854449259884378589749937575478996367581765748886868778855638186858742632286949798475898187595989927857429785538388959855797872786495316878996213978192678495228194173565665478558993246185826469898592279787667888951768739975859789947331588399743592967688952368773672319996769739983689586783558447828661958558554636859587348595473776888652898995878192873857859789338984867896988791697757996759869663968879538958797655895939891345646999948535894555249997158699999789894989488676683581668747145547769844658895487745484693579899319578946897395789953849624776798959849957769636787989548866277993659392839595324294778929447719868796828948979599875718877678747889986989338997695389939888879898699798698222466868696898894776264689955786843699474687838363956929645974863777598859678653658979666678569777569987956686989679875889327946961999357284994896998486965475993952998999695375626784789779564447749435634646693874554538985992786935728595498556998588594477975729483629975941899597176699379649996997865986618859899918275399515269299886774977775489356738984295833563485939278492577579851798978366399579955589164686658684521759859932571973782876648929998398999879523578876993838978856535776978687967959669997438983468968668587177976685833681476978546964977314854473989946491967296597899241678775857798968984766557984338898979671785799475849498388297366565758975887456466599689866675899869966978968637757697897498628965995915818946685169686728836479628684989697474265859568599879983276998187377728936999386879138484794964892184685748586795978696786678857516976345988888968858957896887867853989394679279695359496668594979578777598648778742952999989578763874739627841968716874799737966546797896564655775683699941688998759867789459999783999928767969773739585438853683887868879289794476779857776696559776385974958945874444758399897965676765697887858577769696797533989197575381598349565868977298179877369162767667859578917697637869614999534879857779897336559988878679592766999957998993875889847435476898399986594559816835788837599555999546954494388679844947459398424946673298781989639873894565638167786666436656897977695678798858355515987596947766948972969372899687928495339729484679784497972971599949985839379999445998938696632869586836773487377629787564662996969283965677493984993467745778777298779875846366565998326666728759398339726469668792469356775995797715839788249435153369885836979676519187255937868915688855984979559833643481783279368989946496999656844958822668897578976878714659543876998799929494968747788836678949979836988544986278857454678861631676862168883787928856673955839455714578848694389797379976839889285858846316887921826738386875939758955799982783668856662549516989348359699897689989984976858797799527591976967855896783678978514876678767786263847918969969952176578533639984899664748696858928762768499498378754596786845767919297887145289984398686858668883867847238866657999964956538869755949178657669915496998899986988776559776919558863683745979795356827999938138826856698692817924738739693687548996483947554884598947466554949985449921849866735869789662761958871655278992965727885265571994487478459798367938986792836552978129998853549938849456469888997966965996184771697616676393295714779357379895475868696497714699999618678658688556896934759646953445295662875826873599233819858378694773425959887718898959947783478728729597979978271926992388788676465675759893492998798686798969296587279552898247965965485659926847548976679592899594827962637472974979626467266943799786875599482742987446697877461744977999363959649858373866479298763968897889978479675598184368796681998745248665494799915542884338967989827183355919917848976874998998737934789456293798869958975273279997559863678384897767866496986959745686867487597999557988628839567989683558569697984467873595356617587855394883169994787953766999894558599746995684787493882975715497588478628948946996699686385968794378885849144932665349468399882893958774779655696589948648667596977995485625734562893158885284983837728386887949938977929797585194588949972884676998853354769886972559819676658883877968174986649593496878958898978898449974569544989994997965927799868627795934265794975461368496866895987946329599624785983368668968998578987469473745692723894669995776579886659797847669775685772489591866923963558671979897737816962683939473989977585549859877947897788573885599876496537346987278796899959567698788888539647355948578988782366789891789879586339659398399663529989358578867885932955667683258789975358939635425671467949368775356695847345987331768848573876985863888767879957838849675879969194986595835778687788333759799899699956749742389598169994875888793595684593616255778388853952495892298852637623857892879498876779698486272877987885459264935772689877468677529765697586368788387258536266496899857176956153498875779725879758671858949697176789277876579958547195722887837845853849689896589752999979239859669996556488999678987666598396724398671289759696477579669789888976677786386679749588879227865659338297886552566486497714785956897886659689557986433729358135679781958897875898827879998792896964662847889897998859763679635846589328427579794973652886568989622968658945183786555763978816692384881789919965983359797849328858944726988878989573897435892198846688996885922979287986594915689839474534874977535817889977665958998896484495159498758857965636369468738554755887668545498995897775479857787677376886468937594942285925785796555469746793779827795887627995549469856899473789796776368863172838756165674488793953889991797897462479996947994599794997598789952855979777884236797766775664639658839242348152942289447667899767383178778425487957968649897739888895693693367329692792853848686752997938889625336838895653839375458559687973588996988467865363765927993693822993868739937896986996863838856758855579661595987699877646985644528487314749896916789789844582925788845658929887464769337647738655567574183757788979978842864646796875973785987449578858453675959697698269454284784268869746947699886895398839847974888896589564979645953784596777779689675868639894925978294788874999558636858461644956927186469955976934999868568278938237565935858869564979726459894661992914492694835645776548936184692639954663576696869897856698455893269163653769321973869998784693343989888981397979637549692737588795979683288258794346886847478681659816444359373988279761969718759429299964939996693759976595671974963631786925932989977597268727787998798572796659761973996862729583799886824258957686845982919147557775985998142446793898628695558478674943885832987525448567955896893689772379866784495451584654273698886883576569527689587552988423474996999367438173636984429858376878997647365877988986378465699198296528639388598946795679937735566672439767756481988857359888892694678841427994995988468498571787986499675599385788598854657783314998942876515698849746983713619687446598847775869567231998598797999676875534488544875498875497569489756288998697943796792779574557749965976849527987469949858689898959538823668684827775356937898984933896158178818567554793379762288422878692599967768867443989998597168395626623379477783994868699998167999767563688977889977976859283987722744389327163989896296787857498787969472758746975669898959138757579643648477626566957996799697759848863564568746793699274979542785455767855635959399847896837694776691764968997758547667766396988379618564848438876382897458969988623588819875764865769685992866579578944695245697658928889899666735675962972759448774899637975698586999726774778657937468666952987238958723516825576899357938728892535251587699667724986917559458567266475579878657857774983845676628467998899888878471915686732656996656722767987969783975533747798469568875366265972934468537849738274567575725973697684585737776973967999965899883789296777347466694858647375664878863994944541169866753855275368485388394972968997358955949695777884566729536239574895487863674698927997797269919866929627918993982698688846895857746788487647927775399396416968679679969938737397679497647983699676699989654777679559137954995953999989957777788953979823486348865784698558744426399789275299768239284648821778589264927321684699185679857355975957838839997978747472958969992966989376853855285797446982992873878858674968548686589779876578766696698774376598778694952696568759689895379199423899399794659932885687566144979898961866427497987966459978999457493678622748687956993888867692286769813496956958745725843969779689696836372895575893984923786933976879796584989633969999995858749586559979884988799979159485188649835558759555976938684994125797992778534497876645699925487468796893996866717958418384452748294916889979834449499664997833952255275589343628835569957713916889916845897996946288968959978834655798967798946379785914587627826475679975496739244288777668583882642752337653898981164375957794875588359649987154936813384914297796867644839788192588796998967976588323788635699596659164966882578977682458929799687885879977299974562643935189742878899636886557351839992679899629479985792878885684459795556487996497649778957277889995575868297872559898999678789686463886893879934387893728884799992867257757695986845799887461889769466956577945669975745986649946877852899588819718833994839899968849599257587961597585885973689849526655368178892579699869686845969653912664348534279998686196548398598954778678544445978389628965686547689998494799763857379995965758535963693886837957255654874966972398795558179851848767899838999837589549873178998469686848577895979954488657579469496526389883463679888499473989598569995526645769743973635867754963964768784946586686338874856833785852634395946462389924965783848793859558996886948652756597853619876879759285377659888688724867275755965697953599854951779957947533738985977565562679778965573877697799969878597325328878132598499998996599979577688675278949347429677959883495687658664585687549862678689689283758899967759297679673869946467675989476848894786576988394857884417889979369889575886927786465886556996556874572684674959247695358474423976977669864877667458765328769799678547584734954869477672882849497574347577796683395647898994659739474955767787598646996797697948949996989888789848886858929578585671292895619678777953398993527597956528537896965958557625584223666768959289868785735985799965798956897877919889879486746589998258899729797847734777585686973888542972865955787868458568985547921768958949686889897675584975277596728772897496988659778929597974436632529841994592629666785888937182668746245959283797899737598888799387777974332736778727518968979999598954959397819194833698567873172766777998976584785289894485568983376834963592916486648839865659625878935298399847669485599589981177454849985114893997284655878891968758958628784388663137884478486869695869883884489799346768573931565657619487378669785468775198986494948745673347984997564779993894268476459478696865698698598875869969965586836438873764985729559538589887538942897452989784877776968548652675897962984345749167255459896979979589838638177857696999695838669768349663491779625786687338677985213976398892664779989954568726487886287775585725871639598474724478436995218857327849678537448757873857457687328778488969889568945577626684672967968579386879829867358616974187966899778368243796645875969482688975594828659485982588974857389843688758986999858772578258895776294599887486578867996617774437875774978878988959693885651589759417967796291779732847564696375658664475986188398358333398797858524837247619791387648986467858889677581387427829859779985265779857952956678916579275789773938983799757687675888563895182883877538995658545881876893968699535838869825288876779954583458937977289754264792746578295224364959947477895659993499732753662926895874572489485999685998859579813899867534538958769825276787668874292585989583498758986889666465739587346667979594778955893598773944518686987588475673535974787946796697994894427719621979886696988388942797984363715585486596558757965395147188898474431939225849583898887374978195485539869886945799169964777677696889538671899497767884694968879438559989382999918999624389396945412583583747458647949888668959727965477399667827986796968738777767745896766844753897949917739474589799966968876993549797464778859431665317967797445275897996238594958638956757787878538374788895555729839169989955699459976477886787878865939794496689995655188358951989769988976136776846792789494889592978648384552899887427995983786763968779479687497797559998781168871796648936369839335578695398585497736859553679778838659769793459777577979979762725687869863279383995986872495826487683698888696454896882699965789766898499816698999757288857737898794899329995925973486776491567798665468996768914335593539955798394568259978799549768759768932474681577228881864835679993958646239546819254692864339888778719567883526886873619538969317688395398968989896688574788976766777677596177973268178699839647564792168249516849698868548944566685652531733299768881649979976999878957895858675779828269386998394866288889269689769659568568427774777947768978557636784554486669774379956799459888977443597562956766983827998459983447565959959868927673745552529776577956899488956757655996526671792395674994169479549699435743935485888899736899459772885739394746828678847763788737983394776521275998789496728185558979852387138896458693197556755839874566798929562669466788399948586895852587577894397626986388598985989769268599888675589769399562665398646885868345579599468798996148182497699598367868842779823456549966773296467695996748658199948679887749922977452879379788679996869879449774884857997488926168137284797855867329884855388749882958359758955193759794997953963877888677441894679676487255878935977898594895588889664978787768441699595547258468974576547974878665697867778489996774625489977437559719995999477649948689778879499988579715167837876976848653286256567819686735447768785897595767284749394657973687487295392916139976395788838888942797549678869839845987888798695477799848761878552969834875935757848976647199879984466571389598728299899994883946448693595879659958869283833568784766786796967625459951773967645894665569638989449964669887973916689579386948787569568969745395396679983885229873647476979476976915866496629544774847878558335946995425267794699687481396897884738938777492888547755868977165987728677599984759557775859496746574735556198666855799526876263798634953959688866588378888725753894844968268996695578877637859623894586973346769877888993565692883676888459997468277258397698962998695873287935958698769999537886794886479557844863559926657578385976949385979797668794997997639995487947277887795893828775779538966993779988495796698918755866946384893974759645987588858592395778973789346474596857787198598857955989767749966768199455887438968572298679469685627872578647797585875897983855779499879396979688467438959518895838466818598888884857689848781344774857799928899967784373184898365895779836947529658786978867887454439588698999578878326858767997557591699856499965286794387765815859939388886983846995339655577568545747858985628989419876729497798789179687679387953929697686754348779873793574795634898983788252735537784556937598863388756477789448477998799847875996966578429869965148987854959719736996712983886987537968998588987957798989467688847435689986539999936762678888549647979874456628987538974186548337894264767318489293199498394768327849675449825653896884737326435481799597473875875999293659993862838974776539357586235958969584487988576552615194673969489353884475593543945754889767487941585416898995675538769168293798968881589465499957969156876757698532883897377646695876655889286337456858889593628937777582389996738989597428643796865888984873599863885999358787858778788418992647299769955958954986443889977739772662225954648689779616748758748744987975794269175589659838786578557875662997744969994952817895294996533854964979868826673956946729945721893873463365757345799518568583889877535777695567839566459889929887769569868997177861839287696869388585889996856468874173445668999683669699556736617594972696972948787389937989271239199849597822982559779899673797726993658899839761478799959898453969319776887749433437739849336469275749279457796479348539591827368235699854695779698865466957721478987399147993155577155499959997569937597889591674679297537677765171465697864969789778963699163986296798758277598688777834868647798498685266995589346683478287627889499996786569957979575542354447665799679959528784597
679878475729898727839667748569578495858777763787972676965684579649959763739664647266667936566688876477649986655964627386166454688472736786998992695576765642657896864834387859397564449994687838948598935877693546869335898959868545789498269986999968966775379877447534968255789885579849995859548551949978628866866898939199938469578454786566656966736468446167367287789689949897849969834958366795986971794871975424458979485986755254843988989995265783296792785696573267786594587322872943766389579969886752769625438897279517978749716357994581484889824698336975879993265797993753788773872637879223185489969939645866786755695867974688187895371887869795886869565924314989849945935597544717999778598659732798957773898538894869358989978597898994781359989657894626517876839299255895385663227951496835787977479792447988648742879779245836359985879767435558899797996755835266948736958769837645498297638991899885876476662875555578549843985683659587748576649829686242664594366847598769888865562899944873568362845467779997513547793443536978454976599995918954883973389949999687188884859969888841573697358777816675383476969865798347585988566575938762599759976677847298557894978899593678546522163799896298545888478484298584754748776944559897947839923983976884987668779794877944496825784789662587654788486976948386522499494685899999797643795284789386299148727349988646286478898789699557849979269975369939428949729357549965446675745392415794539999948494241649976599655844999933476765566886566418148578745658886935749616225786965839378869752997874587299697668985879692669698999573824997422966452999698589584934575798773776768879137573986871647656477878699825999489279686944958127566246166398294784613449877725589825943567459683783895985975892897674589496868743864568871528795827773926657476837552983792557945877923528945886679925923294839977496475494288898884434577789648447367893384898318947457998783686237954342766698679755697959965938556867935975829566769166853697889838362468874179946833989925476584861862562584388795884328476149625997765765599876678657835999986794933695582966389877643689999559785865666648917844368269674896325738648337279846742967879512776863889768945769678885531996953868175685651879767398679766953937693896477167459778467585598996376549699546888886629936395798895868189685668235542977875694546573459689538579936184578896387788559736768676683997642539979996159864679748929663895257863959939256759989274699888914895677824488824462693384697839998642252699347315889967588152862789764979654867774999956989567778767798888927326397847779849762645695977659654765798545596187579897373799658799184533425695895824239352996484796448599774459193848885875627289599653988286977979967387874278778846889692594471765568398844836464299228564637849598557749892564799836676646887796778488778595917473688955549948554925958559982295777541939397948576426638932884667479981866798246384996674776639996585965578469839674518758559819169797773893484964354463478736458958368539887886956348769659944596235362928657575747998924699667994999676998968637594576225578678878947719877849537199838857858598656948793668539533986756758665354597249765878985229656957656774756574899768532596936878998949454596699936989594787897787458793459697465949779621645898867587587689937239994898979576889622669784859497687953659489795594782749579759476792646476395754887547487855882723483729669895798551799896788756991297258999936697867786964987794269396158747389466844994969766693564497589799777927887938552891774654849637878979783274786992948986764977646793457746552988969833879473568539945768844788448869839536878978439686929447797798758252859458956875398839695532636788652794557668896699919349875955287167569458886953999864586948999948959531545454997987655639794769294757877494959785275448495978994665988895937897785998585754482978751688876597976798556681539339893969565799887987898797439158559727797898883863295699875299347547895787888697599884798876899682399864472522967587586899572969583467587959678297883778996943126895998289967698665864894793679976888486959913524939497898953986976997775476766756865776549969961787797389565188974727946975618952566896353589988977557763255555665564467998783947741349853681878788948876866352483775994739673987988279429878984497848698395895478997859366998549853368368764177655934272988686958529799554998872593875587746886949973394963877595793679354658157768651948893574742776856947676996276459948939648848247866984168393499949689773872373563988976354696499645659695728999747894993587985776573987879379986984467647984556669496734988699775988854989594698523572478389959771577244889916628676753736933977854597478999776939745566798657599567848736467147962666838774827645475679997556367981954488466989868615673938339996525894987885996893786835872444778599729874658463848684568487864387572369977782578776678476579986483749154585817677953976399687157548191947593998196584876264477488356439775727987968795796896789932529761324739676947736988756796879953958568988591646467834689863457949449415686851997998859799668476699746239842957267965674958853599236684981925998868587878998367897688849469758463687927613987784987695578773598267382894994395837964681777178782787492343539559463739936257251284789277989548225884798559713379971283596886736879896197712425769357799598677985379498677898518983974347723497336565859798948789955999855998876867939843959879647278296781975749786986859493675991388962967666726556737879878999486979956957574678695948171448699568858159848949449869525689359289893977566519495886395377991255756715998398744993584281358286793735365677773759557466536945439877979467948641634633495767799965587955336766994498937947338651787631676532583563684958775666837843814428328963675398894199175497842423464559684959877548687297569459382978579944873736887474754576996567575578579468712436775587874479735249676817795859586896554668646223867247679755534827954358628991171999665782957914819493718995257437837533286794695296273969596947247887975852878788696581647938593597367857183795415782593386484748759495559755859995597795715849344775856694559368888489998468779737773682688897668329783296937782678878945848489877493778576973899768696938797679267977648545645355637789666266766837466518664458936438885588564985596899383388855785953668946659487926869394459867287587129794788279498969937949945966999852725855955775877644945719988898483837585888838427944949355734699776267492496915627543379855975659965993195487879799738789799375999827958469774669479868592449487895978738897868917785764515878969693656868999464786559767846998884756946588967689262757777858464956334468477635957578468338359897669876481327848889778878895896924969466965569928827435469856277544569772898317774551977867687551929771945739816655972748645645595698755866942559383387848944688895839196444829825686984469984735357985947556813679499896527859877477993849796694735838646394698719593882897633544787594769696695268938959253938729945777276768679666488568878587499477759972838996769279955796412882886667366635857898778972279989872885982796883525539987476739588157888698793278648787899879244437625779788276861448718868878976897994694457899639526544589669959935376499372199777854999879874139276484788647481875592696528564998777354684836776786594257898469988458889759496766738964826979997732987676548499797579537949867879677621974767643768388626826947693588873672598838683989672499968885869376994993924485744928943966899686645474999754879628984559993976885669899999587589479388966697679758588977596789188695767494378638889888888563989497578588537299586418694679983746788699597777865979662654385946578292683899979388378899956938838788767669887598996798867985853817286674268556479983795848992945175698885996847677995397788394459679957596455256687233978978589748891541965547762684878647967775564998758194679646593779439397464882279897857848484778544999991359945595969694862321984818413174777798996668775655939999998868996299699365956977495478168777835493389776426698548697444786985986857584648754473879725963765149996758972388993998854795888336587438779853767899868689876789986696694486788699526796879686645981393816654755778347656766898767996286965668979852584379958474497948784979597539478966975335259976666752977666968943666896587553658595738469894877787646585748298823754389649579564787918988667612389924643688749274558636586232889977828987695984667888422397813465471459598959768379978289927825684187697754587695878852788375846886966668818465925788447864655673696397455987795786981984696648986873487936993349887792264357724896852878864467226529395824968957485757436862759354784423853196827879396494828766465779588826819462896668328692487987873649566268675299889864719634118994879786175779481778911133493635896663875577566576296898483484799996745412437689966855257265828962355748765788899934158558463739968869467964659657769677557785727681354645897499376747653988497779256673861782966775899735356989524865768153692877174278659775579189792994468536674484789266887273732337794778449682567548888884427689699297619466685589863979399529738574869485685688823985764577769595689836556884785757558453289579858377987765792586697847599767379776475867587395658744791378883697564974686965977788994364568337639899783989599578659743564551659577778318689832589869383863699952285564995887878689296231146684892527673539869734939977598759898971987898466796848926839982537646259496898697883669958787358934597694329694875635744973587994674888289498647768666454868736827794798889945859732875899766344894555674998495963486979279679796676789547783653699469998597843448332648576888986276667998767649597568895967948668965435656377829998486797448796673727368765999885878276194338869437887956868295895987796736346642588276796763898394978779489787653777388538874578169638699919439838452986271764395563668649889847999739496685588658996274875287877578888764898986892869729886993936659239899999969586583978786896469844987966779377271684596989998768393391784897399958434893233787588496384777974667578944739199687367529459749536528923444889966578684743974957886676868849997647798639867959985775384918292656644965767469536775999958864168578528875985589957458398465598478767893966848597674878537956595697794658333788957569987877689992766986873969286989673796798429849417597898639966289756739397389981557586467668337768485856367896368373943955229949887379735686788665444774894785475938846978537687597845763955696797874975799878777296987685813739457539798599969982778864596979279593987696687143877384747986982999998749985776682598188648973839643648949929989612366885769268787588739477533749279376876597794928774675694865995791845497537775585875599939789354978594985546672557637334859394986978195977998995965897683774656752322969875754895883696866856899895936986988687638963893469974889778685769285595696978628699977738998973272889737672858797658917387892955779848788873293798876794477979799948569399817788294728657885358988368687975978976495559686998686945689888576587677984684495495455499668839497381298479365659969889993936544779565246928975356669168468487487596346694696759872524974974756775594448964289824699835985558892865899889549935679388591997151962472759885662487585625786589678548666483997195197979993892288887822427918885776856145378798866557813769999789169868669773893798787995678875948974535939979746697592986498824699487693255747946949246693166688783839643994598629468657946965899998799666478485697968833653679848962357869923323486959998248456848521878577845998658888998979696254886959579485764748688667951977989369685386529197547578859199697797765622997968958488887779558857999296636594476879357579252995378587476558339676272698842977693795886792998558999673916991688891438245467269377879357559579988956847953998489359791887869576768394685588679539338397464998475493274435795967616632964838576187536853458766727992464766789984177937698465959631946769876896674667366978869799848657278681566579846899988584975199769566965988996488398777888998656789928815799552787995896949869958175952972467389969949489879863876725918567961788769695882132942329168797975853584845428797688774677863689786998425585638383236897449857439157542798167492495768978753456357668792667598663152997788957355378599766516964498669757838735988329897678854555763581867996557695876954573837998769685887375894374193883198778657897985376186849676863433597364868537854749776539584985868349682875668989758979966799558834896727485698648857275861167446469484284188149873629589767624974257597776634363671828566629862989859589829298996377649477888629979784946448485696626799638459688189727677598799999579778796837338849929665848989714953669799659886479978893595894877976783682935948548985219559588955943278658963284482869636859976246899373726283986949536592975884386787655797896998629948448653846569269748998938136848998424799869866749629996975746694999698886695856969422556298534287789885699291699678959378549777968982671728598478696754949928886659783946968849879459394788684847475583954957743189797987459948358783769875243958774544392946471947859968565753777758831398527998592655923487978797515464376778459399289129785476127621558772788718684959598728559686889957657459888397136877568698498676952458176438876856559849696299858748848684448657858944534694975689299689926593957994847898912785866669547632796646681694619896984959486764695969899867762999597696684379689968845746565562979689787889845652566725732986738814788696959882898795967978496486768673987794357264869288699335689987348677867687738529989549793969786295736673758597197938396867844755349648989753293998869337775258678982189566748974599999574875476749436878849269788193686988978577673779569646798948325477879845951775839568682733796768979993995473186639889656849653525994488657375682965559257497279398798196632799487876877836457356788698475839925359759599762856468293458874695875676488898736887963431578769456766655776698892926737769682378968677986543658488486226737837325789946873655967728799968613988857888133697354985354855978898676967429536164958267778986754818689483538988974969637963694338292787254766855866569389992784338942998366993856449684996345923788625228547648783788838689722438686656699648459599979998697678283959866769959547762896937593779943559896987188266892669653482884378292977937988571587478188767785824129697999589989766685994748338583844659578448896788678493957445943597968982818953186999337634885479458856849692949839277389659523398977555985379475937265978988488976946641937776799899897575848975352996579897455671974577489958985452668669676855759499931999953229787586599938888732973846975457885989557768829711648887766246998577977869495646594333924983689997897668957889543954478586868979784794376667799657397649264799683687983744738796964887693998895545956967943895981695426597753665744444487979999797527915496785889992636227967536649684399319979547956687935576725777794798594476552428542275969889944365438664678863576794398376755636789996557696986389278768677883978996678585746371569679292961893797356767455956677878727674929737139669523993987686999579284988395545585979856935945687755687776784249789176256864597891248799266491998978962428788849786858926999487569821693647765768369899776699288996425874799871286391379428687739767795789888478946548991973177487898579529582696813577378698239796776863739899993872859368576659344469285694389787695251754443678696987979862836794291992568657584799998465588893556786263679485376594969755857885694852697959969583556664474939265986588777867772348499879665979778856475661467942889935878941735744795664877348484564958258973992899499627373523794965585449564584234868667975569879848988745922884467437798864256692536727725956658652797896969673777639988875595797629854665899255983553853999987578589825858843797265648546879578655833274961877729646889777848587584979789666528819966957369472845394147798838887734347787458498566115487898993983959796858884487857864855965495396866694877585837793797595899759379916656857499792796869454877767768466967927868948268179929997998967936497777738285678877896877549977876358699959597985678499736995886662738633666963457669781379559994649165833725769634279754666855795699794685395988895257697178978856644797887829294989569664957994777897729872746798477928599485688698847839837457997779784439897689597897935838984675763975975368567678764977979898988377382734599998576749774765485464859685959979958249758967969796368224152679491758985287989479676999798829759359787531767852977759847459688917587556461664686986996695689959548478967549769799238999166894789878844875798999828425833693686788683698856689567567757979184768577995999559781626449698896857921379799728989199788895856378857989795958929989138952889426974975788785215597382348795493769434747827686985869478649856366657996592974774519258379796877986573564878336775696781698943978455789899337829664875293863669785953926377786672527499855559672863928985485839963932899463753769496399985998436437897798815581299949826585848771868937537976878389498865568799678957429757884923934668898453655956184168959477536598455987876658799739987727549986646898524469579175798588576838474598743874934868751578778657456679883777827373935798849838486676498489876928647844555664497868638938577433543988679896926996599358279256976957494646929276589899616666883789597597897968838865857968267984963558696978492384819724675496945854729746895578738127357986936697626754882888698883239938663493466473999887796777787325466758938858769777354935998757853425694986393886686934427489768998997238748878699497799997988755898897858992977689778767674753649337888459986573457986999659625851687885998985741777694976948884977757685739555825979636538177836743838866468176666279289343369596556987933426665683377347937966958599676539595844864952969447839725968475464671484459567346679759939859775847794673847877885215643496689888647982883639549752739993879493972875794893599779955776968955266822775966788498864978997889936489888757999224874585567855643599162188942688786648749839468986986343292984894923968417755763588344558956969894445859893584867846889756961876946789686869782466496637799584686987477569947616533747664998598523359479465479234669736558579564975776568697949385975921868992876877775633763967987447879859877799277474967689898592749934959748865949369359755973465833475964888877796348877365657586987763837929757888865629688848598757966493659956279781585677492997784199822487599445881329837362975299396869564737857695688351873843368892588984335288783996966689589786873399987592839895656657686632744326958678463849889596234398778658922577484957576847994785575579878985849869887418959789274742949575577993997948496885736469279949959968799993677382178395449579626469776396798433877833656298959668966848885655349953597997399779876325929827526285535939792859949567758292498649332778722485539854877488996694293837576494987486485989838493857996269656558687999999852469749378958798758448682683883858546877889282948782574726434956175177889716894685938874989793723577989755799978437597199358878977713697339467875898697969596669953396526466897975566384544328452963146678686798688787819669798672695575433353696987897368989699277994538345568728557827958488986746967586598638913788624986549627964734877859956689489997666323779367959239912276965974676713411868258427986768668866687789856449944489997797248945543579986845465996557993968847564984415568836777848688919819591556744489448536353855887888987632499419468669783916689626159967875798696894666956877247967549927647977732846987768346154469735494952436843977883686877668444469879997742763563957889567657965955739787462289658468879545677659655676476775978188777799713578876479848898788664469173677898789898824759569956856272768994466486986534536578698538327478468957897759595998869469938345495985375562952422685856469326358698168278979485558638476846972747362716585742776647998976584887998567499754579887464634938774796579865486588244136689979579695584999592436849939576439828867735677493574846385596657885549874778995936799972199578595572598335776647386938352895439978749697959994741767685966789599749697689948496871595787586496577554484588353677679851868257688978395638678499595986867988679669536926585298737396938722978776879399959379885477677633287393888584594994997721734888899819875977264987989284598597568774599791587772868564477858729978774489794989595973455949685795824472242749758892796864878299948869689669888685493637988379948992679294656893569883883244687386596691458988479565759889137827879779867586766727881786686846779938655584339473739897427923355152914979387147976367857429458949459427359577567564972926488728954747493496699587455798888598786548358792739849598339958657672286669988368768774565899639995588966396459797866338893567938798659937486238629674982568977696993352799846339744995836777864657865846752535665173964425588549577545759982635588656962769886779778754896886685869876969997963693995395549597946788788528246799387597997288481997767847798759455499477689969446564389535944939354899567934968786325666567935869958887441694967859484894598498983965879974799478235766964698283843399358662644688526998829523744718269777678778583928398886886399243979738496486556588558649348899359948989638979696899948998738579488544568921975448769698973669579789196279144278358195725946586798466925563864545836889372779776649257854581997598577369967269482519349986377599983697526894785887774483358759547677985579988549992556948869486699873667866876545719898866497145785964958599465267939729959884199896939583869993194493437838897875961939695883789991248859888893856549697448238779586997858679952578966558945888733948589578962758956632872989597769668362655889457988998974772634857249878886599777497916847757879198989986959589829486362428657485786739599953519768685986888348685996565428564746798775954459897166899353357969977585649793935887389176774793357748996369496389364784765571733332758496936796857957699579499483467567847879594998788837946897898626389895778797564738961457587744888386374497369964677653789899986631298879884831782388262879889794494752531469689967762789486898889828459347975865163339637765793678886975289618828599667645888989679549977999874477825998259646789599939695969797467875449927645649643848762697143237886856667577378378858678643987897841478947978788718738897759588656665387751386599217747569885247983978637977723889745635688466547695479739674949988238479649678686318964848662968617856638981577463992982678669798388588898567449884124972988769466947898348984857437634294288349698997583686696967556896924886729796971274778469737397567976535785478554966999772398454979885526899989878633246898459877745524886686789979989785754977659986627613789896574886655875968775885699368537927287746135789865798879362975997959756695838666896996739844884562626829476782667695978775191578987663965977587475687889758197589855629884686577638987669538866873986598429574888393783578769774872691538866575875983917342866664983428973856485689553858993994777981477778134774722849395364138559199369799761889726747863965969577558769977969877768367869867941833339788474929158789219583924847888858199649875888899283828867488558896999665498497676648198756759896696546842899979674518895838469697741575882995994689886968895597637531583536858887694529874828576757875638968427596787629765748465789929599324998968629746974825782387877484979149956997328649756999425788998659867679885769886899785598386689415774646574658968748862663858577566863829883944768856745876477788898797999767877899687992769492938745873744421876994669969787848596719679381879689887669554899668428587736296748849998724889579388998288378637577649944732988998586651494749962733898626947794467582376885369583339862277776857737469946414982776521569389977488948991877588619588778284687886572837575845889474592655698183795866379886399785779289482982641677559978448294966667969964977287785987979675448795939694599518147999758482667874948262851993125659387466698679685784898197797546936452447595977488667785688988466787418675554699187697943838287895326478863867422789316546582794881994698899677877486869645388398718812257987275267314745577499968597659785586766366948569574577897867565915687832469188944775227677977287989767988885685497927392557398768529775766863285397193995747479643674718488898517892856433255451998735178866948599779528375754738957997882935999784785699974679869879999889789686563832459387766898387147995976596837328397948579892989484752789796797878352797867756824674639399778614945876483868597195878569548486589554468757767798677886889449528698774485725764938392366967769489999946968896697738776981179968567968257797959786754926751779879676854768962196788836774846696761382397867445894779972882557497798836677777917888465451676653686125764789849886748959398973975577935485999737639677996586746496843688985867989337872349889675846849786578299761979656745462836798364799468985745477287268576862932646726355458988492388475844595927576537995564397898577784569593677866379859978895867997365562957839844377645845373264989664649978828533987257347737456767468119788867786654975939683838386197859754473275652935989587797733855578573663859786884353758652295928886879986639887769476899881971373656649671495487786933878887583576617836958386496823397899389867799959564797817459886496646689848634699982767557878266695898599684197589889777639629686552887758985875649999595825964395879949985666455997856697379872875587699568687897493686357627988686766952949872894477185684486473559666786971798599999995684384797877977519965229772767248978943469518978639993362199779799797438496479783274619659977416755349989988838789875898877959389276692859699682754186898769273982688566815262699848998999937888781847776759873489563471537519782377898792399879984363598716636628376986868597838689895962567479466897689387498789938768669529598818664869527778958386987769957648769775689667749789884969689746995179543847761384926856895563471887824496199459481751596859742775837989835832944687854449599566892958844551452746479979649487378557654878264264677167965436969797897395438884978674257945959453582858569986479698863765188894869999524979879898589731737697169363583888699669395548893796568898688535749835715848636986479266597699547138943895479825937796854978598819782577774979398887137696894881787589868891994732858867667459884793798264197899889169355995668927821597648989659997935869765987258447938889967977698895447946262566877368953947799938549679795497246891538978754289735974699947776888799949636327997674774898468614296752283925192744867689596368485466825459717548728685272997767958485889599859673635884835883998298883587599546882296593559959946886588888745758446291456736488749856948695785991432394785569357949885659436858529745994959647933178763376759396687757448568675984275641863445997598947597377688668598499848296694949252439876447758699358992789586361439279931662595857428279586734888865385887548897458434998996172446658973933688689855996444875889937854928584989775966859832757235985823848975879966865164899985653786959897978586799978797659498488662536625943979249715449695869669997944868883838837956658895752298834722868778722775995946416838859465957499693884974258676775698757843867189655976689644544681543866798638289316438635969877886529759495997577959387896285769169955656888848767955955893764874488948819694976498934749576649644762337987568589694864656565285384854738457368777898175445987775815531844877899244889856686446459628988478439648698454488188874698239545867695988896792647634888948577266492682985497978758699767678846735756155594669718816776559758189789965737474757944324749529177955778969998194974659778483755694496428387888857926961562594275289656673877599595688778944299978894465778726744897356548899288648895989794997864779455199678895478688898857415984552858966243695999487994673985784823963938356295783793911679393872776847964728963847957289996489938637554793957969853327428597565993487883565884447378979477786947892486487447893359672643674939475897556882637427828788875228934587894783365831954289255687383984922686993687559385696787684637733959897655873237499668872358697958785659597833615825379899677864479868299187496889368286597856338844931878769899599598565589635398665667886871567597386848847253799927782864657669873377745947617498682668337687511957874777377818775947362137763543527775981798656475599875796385966466759897685754369283246431839756977959985569439714578675337548585768686857934967929777797897896975898777585774889959999996888373318748667448876977378675989685897579996264486767538678299789767678489497988642795169887934758863746522283516975697936798997487474461475858961416498367882995863447685747978888883997979468791898866968979883699876886846765723976158858967888692885558248995616994696537567849847677825566862895889977868777944564987491776693538857347596529825874174981979599396783464387763967917743246459282768657582497749868172769859648865969688428842692234111969464181387745958878767688488412696867946978759987799677898571797648693578758876893229989379795888987787953797798489353877878898898778975579989948497777928535779589924968556859388559466977768669753883314958889917485848966976955877282554768986955959689983995949346375792959489454793986995437979887347883974875988482776477377269343277488736798581735984995845667792989787575969729685428595264478688589267699579846946589253659774847478887776696794695376365867345969826583888571745293797737727439597776927977986292473797626584949169979755672474859529962786941597757545869779835967953289795672847769794989954793827268894921763695266368789968657944646564389967867853998185438688869994456786324595755886994969843799985476337888495469896888929498577675693798779899389753868976819269356188594465568219667819248535375366473596994876849898857767428667837835484974967495969366598382997936633845485599654569475379632987597832746165893815519935795932959829287888793934587364995689598388939756437397733579837689198878686971874278164576526989462898795724873665548875977955781724998814946859576673685989763248757437547954678568941548189697945893378538888375868485899898848957426772799997763779482458697964973376846479966489976845389693238427854836598879955497895379698853988623548482155894744848529965246896386659879863488887453763697729845914779643735796297647464699579689958972788589949526989217698698598978968963886584482729828489692869667722647343979529878668559641936997863584988767472278965987497595536889496396599957912352548759178354596987887763796642968983927593476995613788443569986678687875799652957584575852696766659836577186449645186669945796885967977697867437997737678489578367865724434483669989783638762989469793896987847979577679954995585273586996179896546899238698894683349418646166472759988555675844562669796892598797489338943578799596497645547666978987561346496145279848937547767729742749758975548558527786798752898973948958884677487974973674687956898388996643699588862749735866877737972478173883395786684729667778639688759873767358195558871384375566577969934569569359548775947799395399997967697595399954696513441684928589959899636889976768866164898567986956553899277731353868871982867857594239997778982965875859567498489489578467588856889734957845757525864488317874553738659853713997899786688694448598799789516992989845193774951728967396976228689478522349752718766868575598675333946863575731775679937399758439588599169494561865959148877858476998929588967366947375768998951469944398535783896945989994273948788585839697799735668789589667989489888632988998796847989393885398755549785945565547459676772786589754956979947346367728789875759786648666671513688359678999899177893488847892871769789864699587446984794638478249442347847999983892779993877724186788975775247758468965967165893365787897347776748168889793969458598467788383826637678663992749498899947377813479948687898569197686659796984876867549981575286892747765697769358817599968937849439585674759983688866476954583969948995998762919778951555895687996968879988899579979499656897987843946995429799917889673997449719387599667772298678765634439249978774969496899457697675466867938539683875794663655298567788977929465749779959984776894656678672767498856445576876588997971869479854399192346596795599278978678516947998866686791563983978823724688825877418334879749847967273138177845896863788459669483959895663886649894827794894837756898659995818966967825366764885695523958649394583294887427568887636778258894867637652767883267154377895395684799989968459874473948761476586779899498787699929264696674489667996828897524674847794368678364867949413574449589875296998369998975866988799328175926864687688759396265796857886982679796876999641689697979673957553789567674858529674977892686696837996567529885694897788968275797466324498226993699876585896979488666865497954966999564579388671925985764829567457989995676695695996527561898768864779252295558825346562998655493945784387676793933896844944775987339864579534282418798368955799557772977879398896998974266968996945799748989989232656588845777687695698897758956598799455358887893488991965348675897993863385719665989788618478744883754974747639334555878698649688498933733763658782269317872686866459988898597879817262137483496689582579854977375747896971887889359353329988477646844288686286992296577878483894287158286586897273554739348718896865498998789892495972796471965893344555583987798899993989584956343764986976658676589847887859666728283854775697884939439491699478158624518776754999178949597965588343948367399499714389475868395269273997748877949974787997872877974679864524974365796739686925899988595558968633874348987488155766894783663983749359985656138785853697998958768287386517647649779589968479377429975972766645836897989627646999367978145388358877769147894467435477879999976462647557675492999568956658877134549974582885664565717891978977598577778872688878499977758998597396846445784598333894979976796595477887897756678949359667686669797957917479859639757999475799589965228879847778978893555598596646697428534948654399767788846769957644867677349799747584987469388968695393885299258967657988295878978488573995677577948767839799979543834778299759769676748975776589898638789786478241643667629445938374997387962555645568679982687757799691649799899948967533867718883359648484496187849818169496257788793777485985537973869556779552498821546795864889874466898775758613287986544597983745847833883176326751499965526699995856929877972995816464777768916869988858695979977889662774978359764997642477835486745776894864779965484796972886996867514372565941679268894557747878964737986785799477678829728775728978549654791961869345497895389889662538765399985444778987993338559459973887877489997899676971498738583676199646587893569964588999856749865261595974378637489668888886895894679317692253692633798893668995973984966874395387844668514375694999778888956378249475657427598327295558834989295388889694672947894946948588659367848648299885534847759747988878921676792595762866485368887694998818496596749499348889786649598633696977997898596458526863666869389928865898767979365615989397569697835942589686479878885618382578499766496528774659883149456496777799887486432483969564899767858979344893747997844886986864959995924957655867826988379871794879729661785628643733548586446983693987949487898897996139697767957789997985896985979889784968599289964687544934556373585389457976649785645794892863896977996785688977379383469367967569656698762397334599857847891766485697776817179779896249934899897192958326767977573788867942995798559498923598594994494172449676869599798756898992877972824399625983856235166574861499298856729737969979977148736857869785825597988877585348886589687663387896858697966679675974277998885977799962299769953197916787963966375875786998953477769268594287398997999577973257688869899595386548496749499665538793269539941699937765545956769996848969444914844739498896285896587588694886657798888984976568557895548689987667678854855688649684899854997887587469769885594945597628283777589396776869874468764684798865418362776957797799977588367986895841764879695536379866196954448891879899827937987671631858951938865333943127468475839877788799864135389695467878968547529914834983669896793169681885495659985992799875578982294618678972465697888536294675455725957963797399998257785759756465679873995933415855492759395999875839987358959747767829986795944547549723969995983974547638599969364589868929973454657545965364735998697697867779368497678966557968875549486892298938696869933753579778498998892788977999667955846797857475978987919177638527795743569478487363133929576746469672767898468255359349857688823856762917625882995136986927999898959586999898989798896782736898978597669896429838969968399597536665888488969528876869446288539649768565945597884569168989976893848957676764594685855438767752583888476796891598796366966394725768995428611885453646999973957777674863138688949487569888948795883887544787887979875676319639785731923358536689778366926654688558497987899945636819857776876959989589364998595428785653815959772276675567747938286357778996676289626584979445351932655685549159663897889433779859544252689957699386858684848599691899294566594479855795623458499568918668745797494323756558953925463789296695491779462858988664118957822379866238628386245961765966358655867886979669797869379886699956321265799655996939968975544979389987864569779873989546767393985997568797999626399997894996998591283594583473725837996798783674376972893276988993937799256457593888832487521667947965997526985565879582614779829618847889564789957959759676471494875534294596776268626568386678895279749937864488749675594227646669889818679962753373449698866898585798999359617658877583957628951984823979789574675486998773589887379289451784766688566697568496748557685697339876996688545963897696769947967746688946569459495595158819937868783989771499768864989349764776567696524788689499524997794899743978675989889967459173599765658398597868833482796488346839577857959993792788894576788555757699877841348574479648895376325767989669775737567797927387378784486681378372942955857578988859863645264956898992618963777898739874758547381997869865945846489842876899593397968965796886638491659735786976478358757795868879898899266759497759644889359878899928583729584596546239659761958845736657612895768455672427886832795942687584949589654285699949876768386922969895178665753776898692799889453169275887429459989689749936915396461984473973698946479767784877437568977266379965773789884886576369967516312595865776413656498978648329895275997999179529538983868993239872576586797565873673267372935659465239959585986999979919487987889887794765859788599566991367776745265749239799967757655887875999289888243576275258126368535859462914488951494876847989856899475394489578694693587396799249473754955979578993746885569593896976926365396546955949986946739642966865976889875597788479399654472977595298997999888532635548869866969596443581959569829624574995499939469196577988974886424628848284567877637594756685257987488579759666959967667997236919849766682799844396226712499874969976897369498492839247894878674746795764637545749789566398645627677986498495399865721228974829746959627954499632132699666799786925462849113946295774718555599387695397948668429737669357873748598876976533669596449155344826994348855627572657969575986545668658892233664384174653939575856577499895999995699988897777735338889568748915862462568695898597658353496587869949556628174446899977785935764987959737585588463486968699414757884984972864579917578899867879896851862794769674222626374888888795225376998987963896876579185698968955563814798696968587786828994979574226699969967348892872397863978925845796489489889199455413773987859879498699759748788767599999937474346944667558459469858624489489459998288195998488857372969757384697773463884573483839594587994856643437257959778598796998585867891759989149818463277387875837497748987997769944859688958587787352487499168777975797797745537659885979559489658975541779687829558393176777889646847835978989955589568564795935762589964987378614479254942887794387596698188628697983576753733997867394476993895587747684686587977786773894536978536776243965474948175484317986518587517597441642923269792988289679879877674567554469727689584398687799386969895955499893983924477994892267684686956797489788988664696896579998798495889697866626877869898499896439681958779897558736974597671777738173289597288379797535442996475576599689757986462698494379588676287567249288594695638779569659286592564498721693867886443556847576664829689875996998441438967465851648697496939585949786778479458889377742849426953687346371752897595672474389845495658885979788689953491698787698965353887669176583958425295878948699179683456993973316561333384493659476923497754889999883883744268865934757597928893956686668449768266984979829286759695889889886723846885899861859578867927649857789738763694483797661848896125998829972829917557199997893387863994499882565944647868695987699769264889993567899429987866676391675679891645659266794993675429468568857974494589855787887798896846885239677555398839862868939396852754957992797316954895655999135983989194297898459535468844872587648556478359166758279956685637777628966398869255466848936978989589943798995972997883275888337997638918319977964269696646369577687879997628962478655697965694762965869698585894958947989879675884699667983776889488847787878578277897149578393899477979998297995713271499858381394439865584729438978853568689793675845785997356786922486857994877968683559794135496834988845589676891963748294889395581555685924598525567883762738668574769737955999996758439722566672223927335564938968998879668538665696858838927369451375386785727827887998766889588792577991897869757747968972999573878566679458659678677993976269758648295454887566699377476382588766928847249956395886535898636855855974477477849952939869164969579875483799895883563485763257929753597998235499783655491787569253962965369862756545884955976719543744228592879829889926438738892659366895477938918877869869288786795795365497646568372684856393648759589575596688355395344572957777888898915961995439669198983877948976983976977679448457676799854866756539795827354223238699377785182381397988653975853994766989348747669353794929689667478932995255674737443274879874958999674985836859565597477385754875472179666288486493863559547673477976754795876973832892136998995546874899779682928689654895889863697989695872568477958999748769688868797758993746946866366846996496766936736575316599673923538985846761919514776648879799559987895659874869879535821547769999956785666366765756685658169978396877769588793948498759684645476676879894429271596329695693597897832936661555998248159755394825988838975324956591949878966296659469926495279952776699857338651569959869989238979793369926817493962568599876745597579591295745742877677975775986673973547333689966284399564894752989939369585398716683268958695868592457728795853897656519598638462979794263877671473682897986864898899277228795455669973399276541756363396917872698977367386389949865453368733831886883767785656989659593158442619449446637886157868627692513694377855855897995682977897769648498977955973448798878666465966877737116717755686576586437865798489539588639979934665582858593678898876788878467218364897773259381654495695855977993987888963448896894599597938796874489698497596225955378676654549678798771747996688946559933858728956585376985999937147485956995968967774195792977375854357879586669497876887724869969899677647979391486961647788757379863798584875575869959738983912364898456476599921789199769616838774975774473888567453776879274747436984996857899852985965335577897988698485789389575495285179899528796722875881949985887979488934997537849368695867968779988696667595468574688589863894436797299792795694789297687826992287495869887554956865676476839674639738936464743977496776775844989869284784233579529459589618232869958639367996578933915958979285914999798788196579787297975555825557898867746779554554589797749356734147889799153996657759647879896159589488354583896497825697489878679589398383494989695559736658193792825237666759759856199979683767938898991156768763798993489693827315569949648745959298689279257751549997877925917975788797634959424924587865656582772948139699599946947279594283498899843979989747895588969376844989455646558979998436997778588988894954938478878769445887999674417926748795839664879892892789993358726657699995876655567536998569676272878553388796846587573355888787897864687557999594572855717976662776789954967865866579737889547946752777847974694997895958826632566784858674489337639634621766359681595566735429966489754689649789776783584663979863766879675294769885356664479699689668848838725761967877698838664974726275329839522286786997387671927885578998166578755836968598668772983384965797989988599489887565548791327634969987385728355689874882566759554823985745998666717494965659934926698726928741748739196979897958786455358889367862955973239879978165584796964835476155678528246873837999774495346737777959299799763735896189576748457279998967367477874932458547639878649791679336965798894964862489662944896297327378859787587796349838785983178785575635825471759397883869323885834868868434677854674994986846978868925829584654953998973576757682374928787895869859598885555697133845335776978864989982958397875786489769479947879795258589995844957819766668759685699928938974986479875939874389639666347659629554796877975297486637994599673848587747386699598814154496986978675598985759676358878788871764329718999894988999674568996674496827457985697787592784427778845849161619772737877297785765677353196987688739889995958599673838616792856283797548492899576747935427885589978978774799774266944597269688838699793269958365996689789269877998929453768759887758966738986884379898754959362278269446265767739797479751626751636597954298987849753367436585996455259598627798889872689898298978975539657138799698899765297621289746667977667963994793938769499919879895919742148783899792483789757765937877836568369988556449362958617688794786499587744479856948577779935425798538769369548767828668956674825937542855499779189876477588988574978446998497639784239376947419775886843377577891988572899999775698997969663947865845568648758867689567796969776959584575464668863945859859943575957775987476894487775899599877476644458664786679375792889721988988657845837859767946777557536479947397668598296396767226299996623543964859996985546996839947854894785658959225398898746769865279472494689858923699688449799893999747957896473166178475398979594889587978336437798397955258313874695886534464997688668197596976697598469699998186685799936979785899837994383858985879976163866665992739698155393783888874698989959399896656568854847254946976522964698896977443538584588999654245344586733566358888776919669857963999888954798846267868356399473474737985976765876795468586753314767935199959737576366647957288436882474767477955978678982379944587998788653286583798447968695332676674759997398958726655348893659291175749978298192928898268894748998268546694368586877958881368574995926597697688655896977289635385176979569645367785874789465689636584843995688997699857445686584788787977968879877575679775697896875968863718998554996128878487896585987656848779699886396992987968695229765854544897677718773595936797768598369865897757858545597686147599977484945247586351995665587937477797236827576847979587975928996258898188288846444589921655589579377398897728871941728878717889636788915786298189788366877757398188759274785657599774587366779633587859816672989957992987997892551667778436878958628638913545836952889599867158745487769999177443554888349487529982843977817642268747865698582859538987367652298671639879676782727493466894738539448198994788392189425248428976845348964738233957555666157945586567847349296996973596946979975883616988994789499385445676541358874848365749778878627954895697548728767137957757552733954478551948697772711748566286595896927258278695653783748768686488384869558377683933896975895586387968489574556545145775977675877887794264386689698879669966893799998632988195889569775469837394923498577673476769498896848817978898899688887976558839887749144292392748436967294426888976857767678678378986898478879954887896678319237279256923145389379693779971393995733299996958864399779685569797989693192799598196429989978479682798969969978792955956594424416896925728896897973788674344398599987347453779677996674978289594836799526676786949545252239799569667598666274595589444783868975796789997945455995796979519798855765497875872539835187496597598758967999979941655349875666459817939976257423998598796886487884758557788675717746918436242367976767966615535788453931627589385472275973355998979299634286885369559578963899527528756683782758654962467772981539857384589935567647787968186992886692496529689896873657576978876869839962788587838876756796887836899873958988897589675297459597928656589385947987452648674699869875884678764898679479752787999389695678899469685269886479985187867488497467459785259476278474795438776368469988975358443567386353695872338567827649469465749786846687165685745949529569886774865384699888752962489869993857979745999379978979978852256869643959733993949395596773758846295896498746479665763486936669868989599853482886786485643929759878399726272596285777254839364372657848667997457589844668997746776796789465898953986896744326985993587678967999784979689566355732467737956346445754987289898966835588955687565976697761979977779788247879496834398647779966893268977896179863359897693986575263699799986968985432458845895878788349719725293999955959947667499848875686444787568799797857537865189569775748559798897995958363954953599998622998153996696738585886636524737978695984386764886766987869898756486455957747858868658969539699673175693987963659865366837965649699387459844236339787347799269663221444839643986516867537897769991788978822894728763995468868177588867491919996958399747949599499769848493985773774743788559558966576254798688746366376766699768695434763457967269889195759899964958956769993826172849978464998524669787926592689292459885858349669984389989775232972745798632786874874797389458828575788629899216385957768359752647649938727369765775266859669472766934757694485796799897776955998254972995819858768765792358294954967444489386451988587856397918949787581765593494777943656585987954789476872878954826942647949992594788798849776396793449399778578666466988859415387689834316644565898797899637994984955648889575287945979587996718423355486866773728437987995262786688145758599889893556654672976717497799976486899897559996659945869495849777766978999675289791896396198347797789669575655699798683796953889756917896937714638566418717451369596898989579737549744398367978675986732466996986139682598568875786789268829727478949297979365589646678871739396796662384698886992898874362993688777979879867496283685232999875645725189677377798395829168952948676948276393756696395985938762366928793253969674637615687566492822726539969998747518759655579773399358598773555725975591597411928896893885348538565466848299599155839476892898797465968999778265656786878854748989979917696477464877978794987325485697592877357692976278994594779972385999173997758532959989828943688911324689742779686492396918894957897899939498669768359677446955866795937734946899758984861595986788265646766259848637466784523559896675285467957255769667834865347556649867669964766774864727681568466682648981987762868879999987868767656239843853598998978296789714998456763398227869669867599674948716786764754979385469935567897988818664728533746914959937679618769885599454686358973869987579588992566546842696857968944855637326943679494888778966954599978317758886935855454785289987868648947987788879758254979527919495993955978298776279797858374397594545756857844837687655669759873454487985588832987753826479855885959765345579884466549996668785795691225992947289669756395588742737796779742863932688967877698896744338679497879999684789486985397746994359796696575427678678297837971531769954462636796859976676186892545356248533768696571958888539959894754259979896295995837797569688389584926898983563984736665277537998578862755978395531667229585495526457457436477647935287595498859999593637878582871754891864839996699795989766998669767669989466592274985399973744895973788788826692826378393747362389579699748224698262485799859478793526895938745966496957587877895858963879578557398924933926799794779476899698346978679463976668458455869599985679987786794977488796645857787848988755588977256965537848973869148894256977778578669647397797875768598336776645574379883369918638586716644863878967894899898799687567898763642276877657824778884856999784968369843469955986774528755976674852193489656855956595695898672764947877863467848799952789855859367988883866659336999358876669456319651749948778753966758877977211466294977269678576367375973755849557668189823373724399873377686566853286185882182985639988756798945779865691585687596175985853572427359582797944438958975786676857831897659498989895525594429944846554898595475492844592695357887693699849639461772789598498566755655589647792898379979638989812821299594656755362398972956984966467897783598566779786758987217459985865983985884595488694497573796879459691673979967543893674257982931283976967739281656978773339862679739576383864658769757935517398791861834839796839159869771899763828854974889368946724677999797878997888689686886547486455188476297244319568988478128277227982678294379448693859981458287739843694626637593198387992296947676744994553736478659727288881853889359696154745393776663314595739858398197849675432976879795464773489679688929566598156593789874628658547867789987467796888738763774757994696589857981922499959996777675748677838735894454816697589793799499964966985396892986951964168489936286868787958887464656688479789687987892576388579969688158545486262749999578469867686979686764778383545682981977539977882549967466836475986654696397844753536395376587558778115928949399488898845479938777496583865767897766783887898441847564375988578758778778474845862299453798267799898996936984229496685496589965888585966849619938393884993493835598988992598896979637717451889776987644739334785497181244829573988575244547888882735573977669698298858858575886997869777298969842998687894924157627463945624893441638785388794699788259997398635599186998469589783863532589968595744355895664727894885893486986875923386657468944578579487476743667846624833987865987868547562959731357984975838764994954759728397662384673994838479859637758999796792148867779438375793971968983799868594599858896879368479594536929914456989325824569917549167776998653896975746935957389634885689678989684889989593777766548957758795787252955728986667846946657285467679878537739694857697877899957989838773965179889943668789772823957465795155893599592479449574576869799716818677559397465855687868688799878268495987253182765387498771877655889837864679545776628487863868899967659899999946894864865789659348589148886482889864968852445373979266886754245398496236296129675837629778919459785287397682486895859379884473844596875628984537294972566898988448663991879739599889755168789889792471698584967769598972893449647888264599746685438887656948731871259489615654826898499418269962595957557635346979947669846387982835552975686955357216779856786759899953539874798245849479947977744659328285789489289678726899988888875697782936787775545299367857785774937784561439557587343883539998188146979649248576725969639758983378622457948922976779498789748299489467397649794689865459467837389553395789996359996978324186989936987776437977885679883759826989499197976899977586946728799668479886595679595857987778435486878589689641858966667959573687369357885575962875989931982674639843788934779898797249874468899676938866427548977649647187975719384559423767498954967547638759797583899983678899878997272489646727959885735855557986594949889594898859688619736697498877657187158548672158786936279878866989729674559486985539698874428558889959336132999465285877956695927666969953628764696993357986989785887472466741336777976991355577663642969963779323326796758968665539729997895899866467888473736789996339976655885228586459272937927364877776795175886886755697745879567298927673825794759635936998869654871697687996793976549599888475666754846998489499554439828967568639875576828968824985575695695314645795459996996885299975989945787944354999527467682695885596738992666718828757689488886848144657389254899493534967285453879169127795915795575757645769927394667658998387795968598394598394868687526857889758974497997945797334188642978589659991938639938854569959796788155778599868995889567168268674859989738858388144897368993799597965848997289389946896489238765959389798373476872687888574797544719529664927685756352945867879678791974495797696868799958977828498951845589984993649856895895478773596685888977953339489698865688885775596829628735764296979317589897878782699185693999998899284588638978648865934529792576494385989996986156889479576969559467781854858879997877584646399782775868965667998655665988258999878848435885569797767944486155918254499558784996565887679879966698456973578767747879958576994398161299998697998323217583178451567398367278867771885957573776788444926138772646999483596169728776824897575998799972699776456677949546276844246896869949186938888955348723912887637955989983623654939886687779767855824967898877279869977885614776884485988473946588554499378734883686879986487759636995845549267995887475796797938848833752339952764566458739376687454638488639866886667759556699695696876527348958878977977883693222884997589436926444678836939926898469585556699996747697695364614958868677769457988837896989983996295647769978395835228365737587778694377996895662997742766589775874384685773979858559298754958119597764944886865976944957292427879689697787769957299856877689799785655941688868966957698856753838947979988868393596997966938574668927356942793497728958499995925997892288761974294784736463686874828966955496836395972751584799459665482553987786769836924539679699684566794867824889938585997558469856756895865766687255294786796792687977858397682698247987836548986967886957694996899952557846443339494778927773946993257467559869566795669971887768845886598969668684396898448447764954555771897458495599759879998346576589763858662484959984948979472789387444749888579588554595679776996798955595542264345965798559847399546767669479856655775888596979357998523478749872684348788153746514434753749795494982564896798359543489897135767785679966767548839766667545248789657686748656935386984667589779863399794927577465475515794546858956685864369464148289978795786396297989699678869918798767494567936675637949892588874779737587898894483864397833698629379659374857592569623638859489617822579956673673985963597479683895596957888649746869967977794743354466775798614544674945896864868899782448418297652977859829621779963788672713495859779693176765138116995978949289965893347217377146188557955766947848912918583999987597889985968676886155858499989978949755584794756817649394594588653514999975846856896575877887845876658765454692468198383695993998622337968365588867888878478998452997599567899797678888679398924885938816444435999684769987597619433793989898996975639896237747977782948358956756929983225733567954389569747896455397595785896966692388349435883992994768878688877179777973589982346838887936456788859964856739695799497475598463648958286949843884656474254842972567763396948569189813688969795526828883838698986724976988999857963959524598899767568598981889444453365859868996673853488678886595378765564838556869875467385585749935983854548869366899566667297989628453746856987766647987455586887498738498968288796699781617797977997256484795969813735646572956499695855978989668988147889778316368743169929876868786525675524988279816348814843883999878293877765696597698699695976186719998479894721548593196542789487469699452399795345769845572957798388798337997955867492988888727996659927386727569773475499797893844768776716946893791727626785464788593994876534698787784763539768997265766389437955376937944278588649949838837789763497587655828644659278935889895494873796685895899965865266877779798727335787779895545845987295857285536692778793193465298549458443287868994285898795688458687965995843969918294966997867824598698389856639495365145879482689674484576987889486898967548799687449792692986955789755767989754986849435696594876879788159799459617797389336685667949598917713597225899916897559121929396537689197255926789992146288897184497973722995489853988676957937874958735717874683557848786977883455564779686977995453846969485888383685859796576399647373989665265497993979986587662669944696225649457632538966568496888947955785387344785288987254485883897958499997825493867754638219934949789756537959589646768516574846888529651499376588864658839718786598964795748985764974496569766797538598768569376317681989945498899798572894674289797387459493853659767738688866279933979789941497867879286784989767638794848897496329593238166954853837598964436722799976998373658854937598878399791359695986999634718996727776299879885396679593831767537759568499987684699849969795179722778367995668289665966358397717288698794655879354784778969686887662879678949689989858987546989918754669966999676794489674896896958944458854248997569987677763674117377829289599592694336685996847427355299998676659995991675687741897978463459492727886749657986445291669758187344959885186687767766679769977565858926658487547435479618594298895794955977389886914997558915677196337298596499989947868677886635576557525979857424887873877428777869734379979879697869835653558867759875766384457745937955588836969956872699712564534994975385598849852737486653932376947558987959577854894389599984689465861972799997849687795888868477999998993979544198575474778678496867629998968879987873249265998949636153579553859937633914999828789264944858568988168549993488451556876968993786927776944858348354783775276658894399373889965952489586869765681579994789569985783299883795766354997838528874578895399898791689884756697775598555362733978557279857558968779979627228768586452479585126357897396659668979348236598539759795984667558994678863663655833276396666889436896587377747745968637796991647686348855546789925448886886649467595818487949977886848934537552547519777654925779388678353784929772785895682753859745699794949589387134796553897344834694974654288866684858549666846963546588998648897469785324345949938948496538999994437893989836739998559337886598677865994687598577684499264877747897858878748949946998877869989669945793597379948787834985738238888948834885443869863866575874797484453888974676658865531759829545525384824644158389197657558468339867995579972197675797747925856363928915595968179799938789479587738466989866863666347652885975889694642499688898797888896688859336468898968976629627479687992859996686989447897457845754975629899247498287848584634657936977728988963684862875678798888795917815959799899488485515979898393987997954757599874819896695947767629699963682992847747976786888567799997897992434999417884697565656782989994797845776698863669889878673599369767975567875495595788246694169479897352868877878759785964881653384687788965569796487188547428967866486947641596389568977729757769966987636636264653455377996995864368732799214786747289656977425518364899933694789297932725918966468888929999379995269789687784538765789897971468865997629777877946644557588825659949567925781563737949682798692848979898938967575557696998696174799694399272855178173929489931856446487949789621659997288698663338647678598587737774294735545673695778727743795385394799814776759895787787836933495737657977639775938669836487889595697456679735189996278458819894328479968845627597597498548885896941427279126638978828588839895727785677187598536985567881979796318586869687698765376857918485777887578859889665998834987372596747237188592986868529939773384165264888854744249879864969969694738679387888963852945977915956299684796624863869782822675832426367996365827532383767589945877526884168883365878893889868794977468235949893976659138975959777456789769939787983558597229684629969378738789886796877917789857785848264836696697978657586599479197979969866673739555749764329479928844958613556874584684659994986968898587337697939539665774974597989789827896453623379956797982998758875712946838795987958577459894899779986783626599398888743864899968446987868876787995379686448976962898535923697845888797837682578869567866781347357289478548894284874855778867655857496878672596673377879496795579497684888896998857658982566848777634787839599662781689599976631748799988786682999959783425998587889959147979997894242979888757981769798677858793966676999795662974745986868858957289978498547861952299975778952485397496279917757276974852885479674983566329872557839786679483576583368989787986886675895977464629746679782968999976787892623996687594975948861758294435594865925377796589743237817659532919689283232949789869865579989525648968893787298226572839876929966864191559332669948595567379699645826745199799987984874424667798892449419796841874297828988957387869436945955997448496687997786879637769486595495657789484977687966363694467923655853997683652175766758663898776967668899686389797959725699937578555976674985839627943727548894854886978896764886429799796635684479784577995494758959986245699869898659936988956558768754997355895984637689698869382699268969597377845796485497636979733875855831384469969299637356975377698885973899259254559498531953994698936273886173567686425855477554349223937394839968549996989796749245558989777729945769772599739334548559565459849667582797118738978798545595696549354828376969659694337598788496835597997999677999276556495596679923786589999649896878977388849378768587391969378559479499847848793433561679849916547789419683556676476673994676928695486929176699888858873827959847586185289228637537724857758795789473938697976487998289388582999988757896148176895688794838469789467498758647489989183564386388347929686868646266736452834949689578584699878933379745938688368269599997268617878959977798768778966854435749477478979989889957439994487878588995997864785587893549898854772549674693727428953775894738897357597667598789962864769895788545779138786615999959496333757677557972988899585424666949893887492835666648393759667777789736757799896768986658753672948549556476798799969688973668772189779796988597659979347845248265997699955342885876885948538958346327998949989889795934888787782868569767859299566599996877978528789837997368798849416478628687967677458838922353795549775798489937959977845987863495299669967755993475799868692699945757797987866976896464656896263569929866998444784817898397748595273424869898889939298135999886577889383857254476984949555439554568978285959969388482279868928797477996448699888668626618784875863827757759984559968962542874398267663495998889998939891558995993175957587298588476762699836859366975458635656876996786689566873998145874629968998774616969976786573838366248836698593969979869578595968487548669376966788578875897792881573839658284723958989922748367635985832488245517669987765848978877692399567597988447969849784565767693895839599967662868679477957398775877729796549567644341819689649733558698896657994945569488995964588579889585385499984747426574974437392898686967778897694792533837727512972991777838959878836469329766868777895969784949979365697919459769826538175619676877866493855475847764494385225729747999873963599978852681953783896588777698678966956555445997767794929465775497888658861985898978767388794493849255878568764547896475628367326359869866997178469559759798658828885673595774376779795698988579887753183385866486159371879462997989978859677796746388474379499578259998198999969895762366764669597687272825678275559347594647797839971797844876699459779938968969678668575445928678853983899451999148475777598787986683678856899895485168276832858989867567385872874483869523293498848358896872686697728668248554819785973986879897778989789469297967355889644878238789876578963822537973599786843945994783747859964579443413979757987759979576499799886989537689966857634778459797799928646997297286947926869857596559785893994794939567876996756878756197962997817524778567947894678988967949613797466499578786799479239975798859957294988679568877758989988447192954481659579764389876574813867957747539726943318746779995478778968958466479733853899948969984588987975787598876659997994914544986982789747728997891969676869719895825349989559979553586992876486994663787697458689826996767987553265899197296848885424378569766552387744478387329615934191468968688835798756776879516986753688579754817794996882689593997754568649685962983229777178826578779789932777858937457689778578246948965725756987676836388789573541738989856679275834885572444765958797928995548537793986886336546596575544587586798358763929783895759578699643428948677164964287946818156867287585976999589988556618955879659937972896589827736977946679858757838392538559669948526978599899445984382998878958466539676868888439868797723964468394994666851987887437758479546767875754183852373885465582446537569842999879767656658839879386783576564284738858679876898839942887896376956764574198592969487868647869792368696378489776779596721879878676987477758763436567838974794882159839554371591929769678988877699967969867237679717557689358859837948744718259948881927995974894583526191686781879336975978586378812546879285754474697667998358467975785987897948275965248849777848968369689558856446949769373684959696967487679598956859884955371974985576667996449927886979865747726637654816983988866997995988565848789644179747366979996997889717581728475879786657654782879848589531978597658987873978747381873883695368745568753738645896764576944858549685696368687687938788863799877748893742899349191998389794845658565871378438548995473976775976936817638876485927456878892859653267477694666679825341597921888961382697778869539589499442736976736564879894366465784661456625779737728414497929579376695787986374839594638799754967795679786998994969956658799845536895958778498936676582878688995527587997796638877986794187927678929975379828916827383868989464975355132816856194977577992584857751385845728583597842969418768419968691863839779292856946887899677785885368879875678775657578959668577853485982999775482872887475474479698779948852557799996782588484687496937799484784476979395336994639898773897794587875468789693486479873796798394815745562689555779879633291965949627481856874448596637717679887685596958574888387466776769679496144599977597855433898546988567957876926579798357698856974272869992389989993466879969954959993649794969488897773579844522869986883774558988896355598176589949895695688856496599698973944996799487499599495998477553847878487277999842829876363489988779799966227569636978274668925528953655773548665519879566967382783244996855556785446799687698897468917259537597875588956889592721557364738877767974997888768135295772994566275475456677977989639689458787685667945984592262537567969997288884777998965547488299887736884748469788455324799794665281827833978997579999877728769625957795889295774918875558939746935989498737569693198645599544989879648579988425999927975788889465685786876993229794889693435988567877581793156449849988136166597569953982797898748938622958945668676589847685559679395757647944255898879463777555785763816787384724997574954574758858196964834889987515453759365699264965958784325855989859489674747868559677786982399278358375478811898468964635553186578375597756993958886976955999371758499826857872997893986998575855859395769566336878799296737379772868972576767987982546957689875499957469649785169752929157968936678795841856931887869992645655265747769777846278857876757769965475399786998854849577987622878889879998348693666267699914438879672777769777891694981939995855776957893863373927969684845331989528442323878342689696944298497798583795989988471785992367587998748785467689199468861967937977659376968876858994786778989789747797332947937648579278399668864988933678389696978877814955869959598366647364969858446978778785847296887995476688899968766676878995299789528676757777597686798686594589622979183654793827758178656682488489932286244387958948688784955756878642286571516989735624422999886893128879999579785753999844975723199479397494279467928888773898788768967586655693741674679779952666979719499677685476778354499586636869674586855997889983975868829323586858298697457792674468381944858777789678486895857345977995837943554384567453768991436296978948899484595785199978993469823476887585982689999792747937563989943786238463852977946589897458947458674185159778977958526399999765157788187579789796972384799799489656193999888965474475562696178583575754938975999867363327846955949478384541855488689857855892898585263681133559999187679486995761836515395597829899988599675885567998827366578535892968669999637569269689549855392986657894385998764674574462476748775492638999788458442553856235728985937698548758972694888659487975817591791963895896746993456484997754947576797166989945428872682963878675878599964646984394889834689337453583677788837874946568949928816655979691584839468989585695755899757646384998187885642589996773934925648699486266588488575795897597992286574825679644976593746928539472565687294796777633797787874582875789282774566757888981776849967687999866563696893965597691873846648757846346436988459455249464697475965468975398889936877989674237495349584768718964586762638392884776824769775315348645859867939896537983996898531589729453767586877596578879993652898669389774399842739619567369983887489889227597398778582898799955965899874797669616889623968879989349727265268954697499953849389779769738893899893848589387597774587487748756859829894286773787865889776678874977565775479454757589669617898468396677596896725868994738784686478889586185818798948584518958686724798798745989757255899787562624787974753589649747789658827716766547575892775667929686437458289875973576938685898893969557589954587999676781696793596578765674988766969375382796968159885672626853285357794797295595457988665985978745979692988328698796588898496996936673968369953953987398865772872887591478434861327742829618485797877889769879999878894347357789893351848625599638686995953683893469684428892869983773515899674884388772689779775971237896297936636485551459366498568673813967594584284878536282489688263991768943498677945915967698783753978759978349697775364998988599886364957987796761728659813569317287447964745543654778299978698859749542758755644837398877525594998186848689963285746946788745956742153817969889554483956414787879546573783891637677487168895918477497593196762545756988652883875875295465954935968885752999274244644898749959946858889763699998568677938479399979765668949957474937947978977992985825871652567344556677777824876879538257498778699734879732994894814878543897733594794685571956885336678499392439778598911294285559589364758739995728694749378968878859784954996574955776386761958788948899799736685879843589962476267813573562966937756797865988744897687384576769486447635954777986471883939416175739987979976463996779748749488458598843569966569974925397666852481849697567895989996985973699359475447977398887768477995998987487978986977985877699959547559843886936969696584993756986698999884869253426889857868459976775649669899976987594879787777331989957999649779984928499594985663899899725525429675898268824799985648476943393689576527869394958956667468591628899794572359781369996938663986866986776954698584655479687284699955978779376693999388495896529577896273988689434859627328466674298686397673979397928779255733754596425673629579438838811779247477637978955968445434969722236573887937776269342944724981545698969944868983944744569455989954999889629845778989988365529983874253899897949252678997268914949362987967377299977769161756956534889869599875691972227964958986845148283487834858684876646997754944587847959728891363786655726281894788986837588447783868794689963988635796348997891445488823669449495959798865869772952589968959476849788942897868788782435847799249962616776867586697777586995946447286165478478699568294856575889674436498675497355756689628638965838796756634411585459619675265339797793988895659996672337362679887556886769967684596379867296869449577788384452336983959748873631986995998899648966698887698685524876899588947186499548617795965998358997792632495966582888829798372578995496458579569896859914598869696986364697985377629967843665979676297836998876569999653969659899898696987348998679768779487634997759992969388296562699444267489464599583948767654486568594995489967367992747984674962199769684515892273787852666589595837496778798969656594546868754766325994477629355324599484799388286595778868438785994679765699755579647989685893986964878666999957958696567788995983392465867698898678274657569826497958956863631785927677463788789962845259782599996669831867588579465768989539291436988597779949995669485728857791896885383998775859955855787998377777918513689627788778429857979879568486646878977487593864569877798785895458689739815546381938843967549956787586655495763799769629985665862755376295885368578653865676796468999982997588298668966989986346196882676679779997359699374683779353967445997989246589789955757497494998797966997599367769677876883756363576556695575975378596866539679946477384696999988478777897696873956444789689872844356887958736334529565959865497994378176778557556899963968869376449377889449864988545667779775955796587965546946732397893963775416797957827587482789687242999824989586399896198494887898638994635853898348839898936953787892863929399921596767975675495476899784928994675883144973938689495975978797885642876886997499993799637595366723879759567868289353667566585184836876574599845889473259895265978796421617948994839669886886894738743886489445166547879562982935358785814496868775168967935967888788996878988843856893979673335996668586853359598882999887995517569861199258894993689497799484866781568995775649465784976847696888275689167848668673655368939757973757487887496789989826873939769547749684468798979579139676287279878718827486868878357989478997937473993539582389496894794857418975993676946773136844667999986966768344968698818697788348699987865857865859759324987754719598593689766499157998885643969986554935567669674169366889993685596184792687894599554475786799873998698895927266318366526785975581567457491325678838774489797495679863754758827512147967789186644273748977877969694666746746268988678597852898692639698988998689592777875849937879576759888954747872983657553998597567648996773673799661853588756656399759685379578987914526869489399858467837568546729899565289636798938987898255779978887787746956745879389483897846974647975944456596965722527636958425355394819557878424678975743857859748436529623774168379929647924642588685877865169938527475296996789297967691839879749669817937247956557858924483899947696967768752837858766837867879958964668969882649877287517785794975831699941737556594877869785696584319587875544799967769747836499969925383677699629879689686647665994499778787543983217972929748693455899965669987979568437978355793796462982784889877842852887759686454999763635367988889899556876784985225649614898796667869972466741568577754577859898547976987476935989875643285987288564986459648695668389597975947789786798388799282277865564987983458874665264757647988786642357998695798754658627258291959983592558885745464999998585773996699499786986979639788149885937963488567873234135936987736958484488486343778995758983689759744574758257929858736163934824384866769993889558765668885799972997517666973758553768786468472755769882475999977635455548676323849564745581873997388684987689999446955638789598545699476579974489943658955269899337474229788789384292618949688197857878795848777538998797767768839558949238698363859969896195976695975659477499158224962445998666996865493654726557775791653667972986997874985681956658535776935299683864345694995888518978917977989479852385865759698386889392693897797567269679993654964872766849998788621767584999512674926695893787456878289971483577958938461478977489859896769893986359998963969949546767784638395848454898788665917466989975876686749888298378567765162579666477457689933687985952495968458334395884949774498187324544998858847888735949118944964776655559887779964979957669761675727788793982794639636994977882975979794664265584698397424987894945787789478559986489886367644558986414469499768699979399938946395774927859919399869777173258657999688982994865667879976798783969889329279448759969959748367989679555297739889969993994769945249849659298732366964689428868885368783276683939717592498657581869319957837496963147475531846676769563773877512788448855766979547834872953999857346948749474787178328957976485885699568689299486372562687985953853964399795526971983336387569897774998599929896899134666169997996355498948399976983587655894759966465547797563869999755668687299885563732491467686877978942895381686956598678466984696979889489799479374685477864546849961998195428735987229698258756978854839937757495953519699378974643765249738946839415867986522569733469299135989566886499496437739678756995583727366496189776593757783937768982489738677928369468869879956876759692946167996789889781299897599989755788676748373179224489959844264847249787997392882849655688345678898931247955577632836399996857885686367698966915591758346775742988875878968975949274874943755829958649665778575486671886589189625825932638669569453848675789969436824841996627772887859464787958853895994452487594988635599499986979263849996664478939779789664734799652958681867263676885966759653689996988674517397449523549798859767887972729699646866699498732985876865784698989198324773952785988127994576935889968797993649658928795687394713954453727877481377679976948669429519483979947954144896691989886687977676378999579759265835864656897796788658887565765374969965894885646776631494773325637647716367137966479574774996878979849559639875848688888679652657989969658899994973695749852888973758988969769888796767937599968958819683556548767495187284697777773579899556877495934854545635869976951674968318837399869898869969891739599762894486749946847729779399399535988268667992999898844855949175157796998965567587776739848759764759678848867587886884387974244495837993518699845965878947788669998786469495944841149757665376597158476736748336749563479477479858698762889758987959985543368789637478928663856735664597825778984885896484992359575889852759774476873988882442944389286988879234957963152476768887486459569196964274789784348431812396859466776556878677818596669779675997748759473998724557187476984299519545895638327534768369878534284998775779857627738578464228897859278615796285839975454984757919285574994949953696846996468368978583729745692961365867475792774968778764442959652391299769596899377169739779649397966994775572889893689957468332479723999898676896662744364965888787378796973767293955786592979578769488664766964788695658674946976877978845468879899699895551688996927826467682634869568592462447253893576964993966836586138896744997268226686998399887797698639962557749337138676826884997977859499736497674977835646226678988749974796368875875869528977969367924634396683449195989386279797825582724455878984198393987996787596369688779387766988854963896288993645614797336675965779889935598624848479554587495757695999956887549889988824858722389994567876858796977886983679986957639527888786758892758983465997799283778969178898785783378873599974475457766336787899486869819975926586558724989589436748963646456968827389698399849338889947285786798798926788754989778938978973673923978242929633678999469416377324858541338995776767796343469367959987593849979597334259835993899794838845283883999969672656549988475671987859796853639835697645329499534925975445734864816929696258837872988467676884624136748468538286958988479624634892921596338899439174799769867936237579893728496779467983478991994394883489526649768569942567466863578953562354269767476647864487796679766263688878768396628947968692629838867472868778777566996568794819986574567796926788688793594999444696578676672912898799978758277919676669989766986686765938567499837789284824562776822867963372779742457756796598929887858844988747597927588886786456326585739365348799868577966999736598872435853497857652972656657445942653986458166946669759895977575988957936666785553939596987866197876876859378875856759362987982741747867588464368895692355339799656973488695864844875696943938896673488887992497518232798746699963668967716995584895899645943897956878692496162974687436976696449489987799862637865985816759853676656998279689786869639939425644487499236479936882868773375747343983469987688549787589597497627737387514854566534983557879858659854919637657589812977587589996868465489544877567998877479386745727555537586737677778982695877462228846457957684559689568876836785342866751695569788447999677993945783693975799194567963892668858569774949594976735546855665879787479944993386979486732269998496989898986369515988788596289815158957765249494324599992866978273449958978355276788866584789942329318587689927798699438778994493477678677965669952467844728857547692255884777939699446181954348378771699363797758878859499669799695947397957983967943559885357464934429995564844379996936668374857758758547877867676878359797888992884763372396669416679599599866495579596781894997878473478794264868846895929797998788989898285653842899998478594779835825594196619397948649768777886995376435935748178884982657799929976668687877676277878876598269896959955758687544583296182789137969837924846988937967736981568989818589579935835656385868955757857884555599336669598434589685313978448397985765993489458748984377928957779869278797922679877472188673676768942849455789188629897758835869876663544562397679542922277997747799649889376362586865586975379797479494464983595897699783796563979486995843571948867671985573628828588736364785269558336958184693969675589822688866787939943377838686986629767767749344915748697972949468755255572847527837967935783589776833778465497945726988288676697955678589953459868583934739462973871992769484823865585799995876597695887695258699158893974559137368873898479686347967589845853668854863982787849388936944829988884877484742986485874429458894494687552378577573774777386348955986467368897491234258695769551899979646828988818799867955373946259687293986977967356748628959958988367664967878263897976627572884794655996195976495887897568896126567667652889949966667387675889598919986573942991249956616124986248556449889797663887497858388288584999989562189578637738682854558758759987697538497436495597747587659759768466897689567589186475888963887739762992765944588862868744537293172678479227755759745784586891788864699659792776498496519893726994949858789433779638469798276981478353992167876257649856977753998917495899769945877544599799974998294594766746577289686427398648762985879898796654876954696997987889176877476997386877689748635895579826493979687935682894866594239695479696993829274958999488563738686654595778389943349463482767758295785892749688437975994398556786888938963895589889772535718757593766469995766949988661859595287597646674772625349995952859735847979789244574879695469597883541858959568524499549445579462896256896679358585743993548779998539886697399139466988886988865854378595842389324838949973761832569759783439564935374898398568675667871766675792935788985477389583353456687989529327659784799585666934993499568759657646666967993973796688158869867979299671545964339357854689613377494686857446872949859288813659568976933876725889869963347327857689646666647499548835899142599466997657827253876957786477721473897464795998663689635586995692979998858788579967969973987839486764286769679799778744759778743364485779997426994878269666249846537258994515997979582762276961536969728958759363589592298589548974899959996879974877996789789452375894165822367698989653846447376566886789737898935886987715976887168868496528673772492678944712584865984897793799388437795874894556895462579899387859735479957773545485689448366859765796497789553685732373148143175986988485357947868578838786286876676468986479789479876826788725992886397457767674692756463945447656887696563945752898871897857714987588533668487999767638786869316682847965673756784358951931539928489898828936788458879678769483897657294997351699565932579999667925348866759779368415448886768797699949479672985918914878977647919952797773697348692538381297863777887553147698997445795564535385889866869979473876866557986536693189591558585996899897997745866835799944343799368788577864818676439585886163485893767956965737677549764864989425767997486887778776765936389643588566756889878653999438677895966623899276299898698477662679626497697788478879984377828356789476453597941369867989828886796974965298757928639979495783243185959867369985956779874798733579858249489778935657899957385943988933474886798832758637665867348669669424889181599848591896866177687673266963548859698799744834856893867689833898488379786388398778592158288936862679559485589678559788876998978983695589578963766599669997729984742729898168787594884556488817746673863591767428798896976983623659995929799997753936558876946997546789362867997945422694554576397224648963567398899784469792563863745996946495695578198547497469985774923198676299343498385578795755627949599789745766339245793667966694774798567959339147873993997127287775595975798789398519929257487554858779789857565999568888541345859649849878998696599549871916189645763984454959947147858478657887275868357452794376258387775948863874533978769119668767548867772945754658287887255779712978713877298766797677388749886363764675847538672947958799773818767924775346939898478655688657849549279796717469889935948768257974615665334785899675685558789747687855865547449479246972526336814557267996997985417772897584627768467739475778614954887893258637355638728697959848792384793899889636737284789759877987588999478253647676959876643545869777699788316649996984687977653572453755476565995691992657866899515237819823649986582788388893595968465999524286684599659952345428878788596955856132982758697798477723859887979254685547964959466432847377768793379634566844457999979979893399928636754929325671696845959947125858759188294348834396729756165978779345688932729889674591784967695274696863923779565245835348599895394398856792949998223866784696869586428939839996439979857648167545793138595996387762743797683558872889686279294323489332878448485747979877486898276677779669968937896749946468885438869836739997485547954717473537769978768985686763939765982879633889779589737888674344643495584584886774328398646982216489986589934282494958268689858676334879495974658728978762976994676338753884857648347858665871948557958855457839689958445689389832874679779697986559779742777277878877649858768229137886988753668965959845384769868777887786927887385699146798964867434596636487975466568959742134889639355988586649952588279739967764794577557488416379298467865578457486952966586997678349929867969549796796669889983548868998489657975568756596719429949849887776231379475786411846886936348735199968857655836396737339569919976634786596668827934755365897377799985387946757467469748846447975479768888683836782594182588688894824986898769778793155897446668888685896825998759971985992778857676596844242855396883691699628494982449678577769581776838267975894459239962862939899499896695559954976698865259688677456778872846988744657392473898824687349679748652756875787154544762463738558669867977789636528596394748821239965194597629989694676973375886399546973944548696992489417835693879954418465987732677792696748789968724926984865738587887372597368849378924519867888784388756593754925699655915977521752577996982896559879787482663943644754599477976433899769575998158922863735692366847755584994563836858497848882897791465788698572969969947465578766773463989642875867684998696956495799496858637339175487693267824775554785645837357988778664987665257676198586688977766693768245861598668618598376682748994698898627879534481348973758966799389255956668696838399954978779669697576837856683624573393688858336467952982798668845779679774455998786955999976759756769985643678479484578979363256995689979686489498937827979487958887877886424466695896776859585669369978535491566898359136667992427749694743787989343358376889499784778487898158569577279696967998779487794543746955358637754188798593668217899379566986549747797682966879478738278648979789677341952543786329485166888897854588686687956163868194879727837678658635888877734957568735679565988875857969774879395358999649794767936574697446559688294954842566768987988468879969582687928958537846438258798869896739327857993798587991788382967456979877819526845276957844947787263349188969877482592773373679353786798679697885488688782685572885336176779679864937963979959654336448898457589549677757877497598979775998388857796847774486818565196669827634988814673978367937472598959798635774349755493558657457577776392955695398864432686999149895966984945997519377987658119239878833992458295574161629942255729567887886979488715859787865437879778691568449568679289858899695594144996887568779747539669386799898958336892559585388925488898666788222749895676688664479367938997997565888358447799895588435749129977759273579589677465791865585569446999458899294853397836881934197958888369589499858869777979659896542888575378795292498272879969463657842664999915884579745893767628576595797144389374477995669618869565696729682782793998575949828199847926659825737769445841959596878285655789657624219442777999598367459983685538719853367784885458478998968779978395675188957476825798896628549856836489693698549488847786815939649759679489584628777425584588985536487977276776379992285726748969993893885244855893995882459944959698666955989588812979495537889988358749798535757335366499696984634691784569739699285768997945899736999989567736165588599238928825577946777868967797895899715696279698588968487778469875638828672995885936946692699846237469165456441868299994787276853363885588237268897678566969938369234792555645393975869496682836386795896497256968787772971839956486789985886898929418695594949879399982633672686357989876558488396879873277757996693478926988328895819289786492799438899394796353787878355997562778389917763646997858884971495687969885373699945659679786996696937899689639857874579946847887598594891949562495797155731897287776693947687556888528319558747778275565994775946592855638153699327954689396889569997649762444886845366477967293757289557657788988785989446449398877698759358889696799965567772989546879779871695958597778957897986689695988738775637798749678556679796786658934872983897855739928794759727774735382596824645824849946898578899857935689856896719638945979869931896126886972552856889715754943963398365899745997879689858391387379999887998998835699879975687685683649993896668869449477466978919877735698973859886998786869994655934778986689937874915657889959747256365576874719999888537966659366885786393768498925689559159788378816835794439826599961789968855483459278986594988989899337346829677969978977569699357336579888866432694548847379588674567627789193669665796893738689294889898599468968697998369887984664777523578974798998426726967575879999935719957499768941358849645186418882769646878662477739473899846549885798697682679826989796296463699576923779728885578836897679729587659685588489981864957384889469449543496679966548249447592447795849949835579796486167682853584849996636759999959643446668697767567585696937657738938994793978599838678993558888979365495599129863775899178467742439782959449787579675775556499449799866278694844474588944697831239726965459859323699675719653698862942848256983896796594738789378618767978679647969656783358699949869382337897989277863618774446786634764317987239445998394288577283478892766985992666378599656829388996893867675599484993884885882737747695979998849755639579652559898982967779599869715648882957968857517969457477618827648239959969758547689889629867889695887353478871785299629998237775853975859867949488997694889748676419977378984747651876555738618369989678763688875998798957896479355827265788428439998497582775877363654742983691999689778699398274649499957669523998879564894469969395557758746285938546596699349947767798947243985877782897585446845689433743997867769994776954996686957665688463834868491479669465595891885586511839937665825558235546665535977666663589665825885988468887768688756162939889595968233967688786268867759664997777679869679986697878254768753924496779716859775997946667642898586484795965476981786865976558678199897979898246647147815689936557396976575787989693779693879478769988965677962329294868969366377878699956595898466883736678998997878842368496996758967845776759887932654998495489489795577147849877856543776476693662495569795691458768358457965779635545859438928784526896358548437797594562543494889896498979779325626789178628995938768882676752985767424778585856335665847968896995366847755287699599686889668285656361129357955788947856627993899737762985888673682296997352964188156952845875388823942388997458434139587475778357857688382514849879855466397674895489947483479789893677779617663985485864488466485777998975647814294899758699688573699558969829677597891448889838789989255734895569624486959997696959253942457979839638684587796695477771568996889561898376993578681887774496797647429588979935888797863236388578449784499857329796842479985768498835258674811738968837571589367774789839988896368457411985582836686599975368845763999963287995931982769472357948555687852388495999369349897996193898593441954787358687783599797675976979665897969931169528956949993691836847695663889882688889757877994568979439865643495667987898499615596989588436487887687772946897566479879319318723787679157399477553885965493278486678577598876278896875916493954797479611996575223799988589384575956999894934938788898357869678789897638417998558669561698699487923796784899648159915435754969965585978229762885999468795799577374254983769567794989966398966693994659397866966245968479974997289787429247888563278686448858986557373398975577859499899274878679948468978698968478685878674766592878496945235389462793788685758927758878518925838957966933946576457842989683647178162775799856667989939764985647875639789523957866626643669677759274987878764349976678788987888476689756856695999457848869788747776746998667786336868475977762998758566585729987758856799972625996696734757887875585855373758356444974768548876589875937496965484764899797785796885298934688939233368369595613559294788386864747487965946868728649655897681156944294459775759975526169686753695587737886479997898735879997794825859695998997947985596895383185629699986979367988688554134637937557767793899788966296485777223425661972949629843487678599399193289375648688781899586947475287959366399397498677345858927747298158466758961461736992922893792696889464932764919847675738868599949486559289999599568958693479959779748796978693344234828967466788189835699845999798797767657598475569347781294887579498995437756984765758469878677756899766467575693869847878973888776865877774861686298889699878844684563658598755686891519543789997836184878396976562647988256995399719349197763783788997999349444945967677756799942685689798887659796995788766646547689444678276288799435918891499187877935462999863653938596949883822879855772929788177339297995885997788986988559627755525647799637889679868687496788768859797559486797665388369835987637538599278719889748817864596548569858988488764875595898878189956879843484892816747174465899445895298899981437999967538679537699848867982499449878649796563983879779483977859966943343867693299267693567798797565895989768273767275695847645528797879986386227435859396955975854566987859794765886998695838699997596776388957347786886997999773887696998897588996479588476948748999464573958879975877738396995668967399658874869868965398946679964467421883295888598889686648837278895845697496756786677684767974388967638375975527359588853755826894663957692346995797617896887854946555296539996794393874219891439659654977377778545756944688985999777714649878994534787487673633885518478467699186463985875677226825936831896857485865546789973473684958954492879476444847686875688875567155628678475568885979188766748549469855813695949897979468995965592623356896773978378969857485262349965879864989855399965579975869533498641886875678478969778774124968469755354864777979799893899879274688191849638867982286894797866562672872592437459642979854879864759799367157877836578459744659879935859599839978998374427898198986965728496875825292538968476989689697896589249966946357518383575448369897972978985726796655317496898185468966578464982686275747775738668859698819245697668797458499784729448649289898638957793678495947864539387883798294898659835849768987672753786888567366959866698996859986224574487365989648759882857855976545749179449898997952119959693956896264588886968974661249667988778515759897269598488689384936545968543852988749968731194895956584844878836937857798848858718764563964696536873775949973683697684878672679887875788997833917783677629627393632685999997988287164999359852829468663848749777896946356999869937991947598787425724864677915549836797676978779999883496794592937596463547699787769878978638889693416992779877377589783775597757594379849977829675578999986879114645638358989988298699277686672567869925889399834978438946682999758857574773769869726243936887682797549958697637727936847448835779975874569167335741989385957447933578398296928797792999939918647692355838824798583655374878569988874359797529996584138868999679792595698888669998794535938955867797257289766898636467345997379199334527859956985864964847743988876898869255699545996689799569367884387583566648485189459454727687529987893979863515498779946678958625689799798699759689838898846668698587687718583375559266959889175776664364789365682687954797996799786578978899935958968722481699465282719691759798839861888676326984687977848752984848894576969878556887867579485598477993997954789694446878678477562978445345773484996398295588989673589678929995527957777879986778666178356549999436884949956687596928696729138694749875196687288919463679547765526697956986367455518596797438456554485794799969876899661733789789944521896948768795667487895946689588229676454989264252179564453853655399286633978966843344987765398985391655867738979949774793356855973972896858897976989679613956888579797999959984899886199742889462797577255957585847824324687877897675159499578859758754685595887827148849967817459255679968849875958473643496493717598649558685265998937923978786682932684179869518852453565945948263637824442359848972683294785938847559787886784868853858464847299659527992292299728359993898896958858964733669713584597966679242546999828956683637884458999848977647986659493926459969867893989989287695398489798891599244643594866936375983739779865936726899489998976785729628959784298689346982386446556388756494486659988461448558658663986686927648198457825758964367386588977975989783992495667861777995576449396877821689678954696392678843876999297695965679787284776556723788927656845948489998826887789899975999695969687988577733717769667257989979797945268638866697897579895667515896859699745559948656997999469699788655438478879385989745439834497888857878459523988859792768555589895888985268972891685667867999999347769796875897998868799799948877567686656464578882437979828446989467887579787882856335297785377863885974986696684746876619989967888538959524744429469887995998497788672698878657779986688369649997579479839934988788938834886896798998589789787888264538678579858828592384458834889942379839788667818325428476687576388584588426381957593394978696633555897895486576789799829989297954747577595525272335978739897486648778866256344895538678563266876587868889197769898854338665953543786988578566853999755658999475277864988396145619857636898875977995755872728894458677768585874689916953149989875337897994694628898685787476664588957895998983793859865978567867686575838989311655999856533599729886698842346189997984759688475464936884267577393384689368978774748244767396552294775794418765938596789993479665372778978895787767547998567784955359577827944771465383876663993693499286482479479284766375466896777877944698298898988968349978823971489372897479653973389857899789997577787916574689956457849264989849783578648792872182666427756936186767689969976579276666765227888495944877824782887947843698987877419748298878217186994388987997938746157584844974966782999764597896599497554898748967138943369499216469745669927998197762693939557688849659358778164664984764354744225978686287692499999378798886347272256868554649433692998663916498499972887577596574599886596994996564899299395574978592486844667994994728983685423998976974377982679888866898549969155869956686958798657848793968599329765889896669854827858939993455579514877897799793646856965678899578768944518745749594946495667873789959746879665678778857611862957348959257668625693193835378589452897696959581525899685787776285576866181697791392749196335967449888978876733859975854869999998595838959555598725988728933569958597781594736994788878993774396986669968769395899655313898725879679727998555165529772915893538817847696948668955296969786579558793885879974747985987811586586686499798991898377629897778479887789395653955793686237391742777255587499854549689934739936895797274356456997589698398978994367879875895939971594598965346275922878467922984497759395958585445696976663789382636946794878927742744985548938768894469789998774646496833644875959799857396859578982588375743674179547951696297578891686447939986966564978788928799999695758785684533372956927667588819587467579797876369494769858939392569674884931837354835884685278969692242847759358938748777549469787599855259828637678971526747387758829795596586619856764779786757845988678588549779576987286857849897298666576474996426384218948893197695765985555856579665793789585349588157576997625969867774997334885733863991997643688779498853848765887598564437889649783993698977894683985974888569828334323838796947662749282585162957464894728743646582232527678794599379894546568285169988756428179997499638795798239586886713835359396777978639265748978339777695982863766658755628589599984745634547499676993929945536395724923447991889887542886619775798851897753651669998562989769698973468176739467858993756242853796837689989959448919968675558947969784297779697768884887796285875398757454988895598829484969318768993885733765325572384897697627597776736848942448558762379872278576685928539395955587834698855546569584647529893825474537795579749837656249668848972486922775874889266563987875948318958659666986985498259318534868877979889599996499918997889947764887996593957687967854669345856554887531568887756772784469289959879687996987587989868574939826312678556992319785889748438765697582943943999866397687858268789796983877597561556537878994575839673668937874856446646995299994698889887958859717319677528793874738988759875342978999436459589964978516389459348857839839997979695599649657944662569969467889578299999492268814675664697297898735499827961767957959595875699677864738286857269977998787275969894979745176963886235974793777995623633965698269193782883188896627667675987996653894557824247866889757517746379789658862599769896839567846589599964675473388868536659838859894237496438956988698479369599949576577688567643961169958534859274868689669869992688785282869983862774947596949785846998974926655488947749673557976849657299893719878887799898779278969868559878336865999945666598598399687765896729498563956995873969641983361499578896829918925778998767748958398557695991232689518656879759978474889585475998796582817588899785759629587367923479897788796978885784748689499794584289589967878564959488695575699796287712969778554858668887179569663946648636914488986275758977966731363927855553584689577982965668756155973699969899886566745689787487687876783594189458885971486618567525833766687796647937859227288688596966939958367893399397717945895957484695889564798478667639769571793864338343986789988258992669247769874694646569557888625778672736757853969211496965567956649577876884884998978777673869818827826975899664944583495753679665635945989483679953841959897977765889499878556964957893461759665698678799347972962459966147965989592844355249368957686987173677936438366471769848997988977538277485742981549722997867486998868278788895568679937967729691869731697595375957395653792997556579914182385588377788674729775976855896148915475987658395985753475444486556898478888666256765972359797111978589775459284998374295629798525688986788949851865558596727984647579868655595874569686466865529769457639499237474677489938588846668856979893784968684975787468668387938879767949871485459273984358966582777688788275596647264879578544926373575538448377267677397845818498775857768623788944859384894454989953754948899257561555886683345978777394698464988468985956558385495838647977988844563539697788966645466797954787686635989662921878989998857846696396968886821797578778384967997694948599985955285887974895335629877957632597366775931492782988798987366988874836567747168596636841954767799683897548677579769464838456893992772795759629581584386877967898717575274491986396687469713685643557475554677635594593557328792987298696436377858438543484456776948535794899788778547846548646599992974296459315922989584547494526888977998558897389956797678766937481977577646777585187968943499698479489648779443862393267999968298462996382657369285487881887483892878638679569756882988893413987775692843424936476958298868864835889797947944196694596668976998878958614916894575445567555277394886923645758798389664899728377667469897569879436598934969779974968764845788899748295744983933739895969496897863528996826666289597986535536698541477787758868796487554552944999662499858848597767899577769287758766881971445562448858168682686929718798863874949499498534993948168616982657985884569786446935999686667969399985988745597634968949876675268589975488988789899694889686768739897949777662669257997884794545497283339556657696498887668987856876896828495789999763979748856349544378578176547457972632795646658699888736898971284688652569393443583763667789985459886747852998669817689559423837283887879978763623868876863868799878658579779693857442934914557767873548997725874725679874958333869243844559918934977969839549978857778798479976557746682877768476299788795954564888984878945966783783865766989489398825895788354959475498997999953346726983284662616855757927276751491967637896266925838979794587373782998987876844688776486591714973763865779996398499933485984888797898649549146799298944429756643877886995374659549577965749356653867669863797431969675479879865761488754873598559673386969866331299589348618364671986697459987697478696774981967677269133986663756856777371333739511767168627794725684899859587629597899823997856974866196989766957186876899779949969286367975849987896644548895834388847598989539545466878779949493287998138337896891596745372679933944794996885996994957993979665896981567992589498888399799629727337897465567843648629935666969997949268174946646589636679486889996573565987437727963443758787748176528797398348878357983955878595879973499158497487979694477598968335679895777968557874995946963298863839299845938295377959337739989489388682483889838639375546958989756398981288785624728457897648968451499797797884869717926887769935867979998881789335898892838378978597937519418963954654793295763998196358799358388686776897638655899555398357597277788345488687977998346779546814538668754929185644589554593668286994595399498988438848684648969655656867389586748222336345555548695999688588779975885297388176889768768936576299856657635596698977686954238776417598938695799552986679535573518774969686969889145937775969893343978879939696946945272445787668996766667989556222859674746788768676669538869384626889569939448245698388618757898494877488669883634776396853465279992467931562973779943676784769968548787299867256578757837184758829476858967841539999686589945964589958699563347858331645787783988867665465498983789585681745873475926785798738458928799359649977679969744897467988496876956665572834765864298866575547875748912555595479479478934799458999939949987784995977864554589559497949979368515983883561257266153954357945959974878982867877768759895968287451764499577717441785274496699255988599997699992397962785695694967978597564889534989999579349979929876859468779337295598677799286744885593987745599877971153596479746295999688837798457347979746344618999238875748768788597289453855866678945488398726962624724889779564646639826959639559785836895293489796444662964948928395639925859548578655897887795767794987998659555876536355855986969839888984869782896969357673776979387468977936896636769589876592588919799775797898619285458569473159488329958893684786579974668669498566799764688774978475976973779974999958996736868665589963755794945828287946573849579969464997399698689479878784568386988966858975876788682345248475647688638394199783477897687447929159438889729325555549871867779746897984664547775369928636829473586867841697798676965967491954862787963865769318935959157576412189938618866699772816763972632923977756384291826997246858754816482989698479787962756188859917496768859464879769689245936997987556767487795887546918885659954927345397871348799787853587987796968788833496828778967996497668385988378743646887793997386369679693348739714746893235492885787995398994336253989388754845784964337855993899798435969865747798585933786987982223586923588887935389595852838575692517476347955596588999864969843989847265469974738478714997954795838377544579899559299544326415179689855777869488567893948663985547389979899333593797354845989996936795749948678699776567339692998994884998687698357244771365368597284288997699699482893919779984588853995979929889797464627783265597842797857577981877639792986976937994765539554254798299879479664397748667962927198638679285888349389687789946979694722966595638238788966776375366794589926687562359989589481297968539584887599729593984669987555965436318828448797533698386437977681879183468981793298445478855832669574797447978489694385196689939526383689518676788988892979899761967959898977562789767965289649488932916397768797695388736718732479667974735773655824939594589676988679378667449357329458979786696748639669158288928267159299462498884795568997769797765876777996617973889266743967968883174786567797994896719984298547966767992687586759298835587676919757786944948256467853476631781879518953452866749668398688355639766878893659798738749867755777865789798886369488768888559525594269634659715995442969857976547399952566499537477588666751377379849311479669549476962859429985547569593426775393688688787795444879668886948826797883854774677598976848847818459483152592569916949788667996743977765469687589759548351635995499789559489897987547789898499992568587881697658965796991956312994353897626197966286255739985658779538746999769772658865799399839258967488662777667838249849971356856958498184584417574785835534593947695275352488786774853999984647588749849575667554757897724647943965987336783939571948677197798885968696553591182989956796983764798987898962775565412885769966469585468649698795485765784979324669498867469869957865982668976676385962978767696577767879797613679882978661797634859679866253695787837988759414998171681749892842798976857298879742854479739998897688478988845593357796687146477365768899276393465687654987677733994686895959999287497778734996655564638597875724679738728487397886915828858756459289685763689727994544887833618934496498487663971876598958929968696785542973944277676775519952619299468885987687985893919715674567495679296265287695784995413386975883957693429649777595484386893499219997338238955568597474678269658978843577598148677589848879477634855975399765499568867889186554993588797832369979793632874941777599834964798874444976379658679399587599968868667485899899986989917969975898858332669169867444769267198164785867965887973386599997399574994777969854825586915874437892398898187977757785873949737897975648777867773756987859247159676397955274742746768685579698782651863797678899885245685577767677486929674988499487768392688988897669486299899459857978955816649486463389786699119945875497372649694768549839999433878798384998367979358438784789577764877457948833182395364685893885788787891758679455589491947865683447678996573994898569859957548945667929932677249273432698288893755295664926835919599998982459588472939425883479972911786895777497473396889598727769584898564699468266568968338696241464996698798574847988698463395576729735795956684827498762855694384554978786363267593893448455625868794776642366358898737898396217353398888728722398799898865974963559457887374588568894849743789574557745678727597349662495353377898688472856237755718896286865884743869794761299689544583547566439786447766566937798777889998299297756835177858589579378994548588798557769575858436993777945656978946828579737764588439497799799483896384822758639295679989789479283944287494294687649585879773954636586395285487459999475462658578985465698985429295475558898795668388645796776959486868999558999179944357596355299765586751597573625338812655688334999677769786592969879359495731947787959998949596416985876959768499465474686388557833888846996178818781859994327955113996767899899525679984756888962794849965985997949897986877979658428666874476675376679776938816659387997835975686647152973799627992682888985994377668385379348861284897238168377768392686355959882898685779982859846998363798384657869172726686765698686279689685699467878998396688866789975726924646981786239947568335874768774966483889894789379263867787649357668119376743249978865984799576296347779573995564767779863866788562513659267678679646755781939456696794597598264577988649779976837598995777168753974827788767949497255379378996985999579588785685748766968686624149685788559914816586885589832928914783776899776849999893957777774847893939698968897747538679977468894458699927298374633628434174746945995899385869877765985598871966985866872678688796886493784698754317735235489818998766596999484487747852662795782189669578959459788379788537849747899793785978952836597939993797877966872694926958859965939799765688635567965897897949159857296579798987945837969936586775989888689495657589997685667618965267667485849987234965679311988988692695886749949976738467696646978977835437669677825334649778749777897887897536783322478974813388179559923798576694985868964796598749659848769868486784999695987884928829989687775899972998537489354197587699899939345579383998583938289549993867528787868974877966683749688766799469679886579267842793482959696869887878588849996889487743749863784898478776198558435789679997578918985269594854767997499595749469776899197976646945435536991999786977684987645878468683895377942884593698757673649888167859948999776969377919452978798668775676982989658636948987899248537972968756819867957645867428599488877962667979765556885659777597983893556717277999599995789497469656788689861478616795836785733978633928874884696845294595516449481678379646599789271657988777988977237958469898655567167693495846289929887792376676925469399589697375587945866999679976648844625899488174425777538543759978499855583587989369996647585378226398799595775572675591798794669886294978938956813869986629797742765875682649798499969975999857491847696863267885888239259564479758888962897189969984436897657769685971695986491647957573764774346616689898895798266978994359857818666229855789689164717859697449885778968995558699974782858278869389197788996788149444549787327633718888935985699663345599269739743667445697744788854799295759358923388998678769785168358866929151759666429884789948932756869789987328878242957698555399763397948267357942842181993256279597996683928978376265346293389796929959472259578555583749978428247687278646896668949485595488954996697664644837959939999761479357469867868945569997679679796568999891479534236758759837748746968565686949824989586549578978475884839499786396969985958547856454974628671776898636389823927359777773448788444689569796882684584885778848758445497962444928677579998398477956588287564996378965738746947853897669529747267771854774199778678955927478712469769858869563776973787264477791782837635593299858987568569798266784582885598263375986379486999789667927489696897999747555965438249678672692451854953688752887699559429339745889278899756238616878382976359379655478644996667958179977382982399995598886838654898888875943936976761498766876687998835687936348567957797566955783824158155148335989531652994449534679699473437672687297946768787388964665688465596849783796678858798872969477138866659599878831595756645646798987273594298869968549949583874737527524598755893678537479967583757824878878397667895549695788896555818972997549289399424169844578387559977798649665485928789276893929346636756553934395552939965988629969668858668989422699463789525881927877879799168497557149888585299594657862993996428557579879778588424886661276876954887699867899664273877893657848679946593967289194612549598278367984874939595232876569751957954896445546788796976777898369546685696798384587453876395542888724779873426862956789837269889791624467399786295998489586925756888674185978565554375989958778544637776957457988799978389587335699578791247717296657969173746686869879763862957685755456657889592498385464915666689254998276638259976689577967334767898957958549685996218959284845486956928948889599866629674396895922248379875785547677967986496798475893985849968679687869387575996976878184827763869771456898455382976936989565796364975137718597977697375173378869955995876557545757588789786767797664768499492798697872938197977742971559818694667877697879355394679589757895278996828648196397447994598798987356649687599855775896897257427477388697888573867769735338863689887895543942985887576627977292378964359855998888758586978397673468385744312856658844979479937688979848999797679198777358668894596799657357268465279384354979988628928866265782483666237957997897498779969969559985785633919614521988665649646485858868549638187589341688596996599857799573679759697678669772862964698697621957868859884453379576572999786967765554828998269791778498859536328739779536847476649779479793685747665488947899754296738281749541982829715387286547949299658969899742276429757998778595383499298968947797974813928854933893594377389935363546684797659519577768555636595279677949953555383799519346648649989875789959845676987985856837869975435925636397979996626896783939794176568348597643822958795984939737338477936857688577816398432577122398489565189567629935783863575499993598879679454688743878379944857313474685789958394959968765943679784975964956879658575577868888516668493499498788433778849515955922448977849297669666967373894525284645489397787364525989577373449986693856447179497995847795799679277547988318455824468999833723978583957386858987863479469578796983666698283869324559621281685855429375399888392498894869428973668395565974573478972839455277368955674965877658966419685842254848759693969658994589669666496377788698332797496899798858796672699747976799862683758335943468754573686879777769898936898182599869588848992976939858534987598725375548785947367436963769644748831198639548675239799895437529859742579898853887587274547479886469813578686399739827696896999885898738438488496529995678389398376398748889474758788777486963974649678674556569786887649999484948485839778398665697685589545951839558957798157797288244856591978887259899986951965843558987386635887588994679726768577989993779977399185675157393649845679669888878877573987864876989527848185494663389879861785734959846949384454279969993498895868859595679689469787297387938261687917759718797923595797427784699967699899479818865556475966935495679894537885999867949485642799457363647266387983957656875464859468685968177572377155979693867328986766964979167578677468491781487948978957954998498834736685266842964569876982197874952449289913698579589383624677839279997696589668863695946849957935716544685995856399869386896332537982376958999746426457845559895898729938197798495549397988244836389698858376639796493649997488879652576498836796166597565767784739749662889789846787847863512889197494239887726654976346952827588267894458974997745698868966956979884995764176465727498697584894867683424898867847375497325665844579884949887716329398835936896778798364468975767384266596548739795478979678965823885266496797892377698797796958597295798586885988797887654897516897366992986558773867878967317956895699859797994985969643389461876934875888549749636996775846448822666899489783896584956158736894876698771965996837698775639829794767818989189844777956899165768557374998757798775983748981947891998856168692959992579484846777697939879636399486568548375895687999689496417956696749899578919886793667486865695529169968877836597875479725927987881979584798597813385796946377519852434275979438956966456947679895994795677798969675669476159941949947973882767889975878745788486879564768698894599854671345456959675859948895893848989878792749363787563829784296539289875944269778566886937839779552346975975347999693657455938988667993756887656889584866253259888428456867999997967668487465638489518476948955663799984965377373595516466933497588666648186968694553386366847376699691847976264448989999958799934989965987489168688517267988266857997589319866235895889658259484687995568393994898844744223597876771782565679897294699688568868373956498527876985177591237928784894827848965955873985996874878865499533859474582969954799997276643757876654889297898784746979998664346895736989967691677857958735828747558829885998957868796949848449678788857559889587991469925689966999625557885677858325943725973464885483869949669377288386948799825868733788987944149882984968457895741583885527898665579898745958793865969846381779789689774674893579675748988896766872638787172157545977432688566594347968589142994554576967786856939883284378952979556396964783559684871974548796567773888993769674656986857232299443528837988742376698787934891697485844363738585779997677439669619889683778459989589949675991243953738886599373658979371468398953889979488259964899388894894717693869969739977553895539793889999699568755388879745668969348755782188227776949478535977815269898869588489959358732779599689394589765998266547675848766787978658947948879944939797888976974499575859686989297917878669779579675997436826643884998884827893777997477958484879758864453939926778984658765856578692478566888293376675869898766661898678975558487558947855396929669475348797244786777889536775746857757198798998889879985889988583677658957893779963495449366688997689797999886976595456696769658677649996779488611651262697769486568799953267782588888984469652377767889266677589695146385463297643794455774572897368547779999996793869869538466879489995469845368546326289657739799757968798987668914751694377347884357678787975457276639686869866683862849875499416219156887866837627794984619436384669687579697876897476719488968568399983879686343565944697826698599959678479567994542876397535879749969793779539969279739976598945558629384962818677598896928554974963499977123759929843683199788898173738524753998768855279988632438284595765638367286748267544994896487879864974795989658826729999319958856779379489318976739743943959944549934937978219879737975797569987993896985858979465977619849436578289794679346642788962754689287968799836599675858655399758698624866876389946799759789698597844865695365998882954995299579457359495837767394857939576597296954584857869729392789874659748986391975897756997998489589489857273698759398895886887474488477791636946984798397261477379388657434879896686948842561797855719936829979756973988983537784494464977773655879524994999557795593853599934798756638932786582976644877758696865966397189897779393947928879794999993943978387488533859126386538585793497999737845665738777823675898866634967973288985769732928778257897468977895971458896899862538796573899795989927696789596859683867984995756758239964979688686645895564698398559499246898966925899958869648679629657733699738463854762535733719866323627859958536975929993199256274634719797337978977946499377454862896564789348249882593968836939599897838999588877878367293568999476955787877594476954899889539699384898697695867857948786968973389856778743884847967966719488884968978794839886837465569998749977994395931734759823979472769956535626526623942968256998448999474757669689795759884383561838358978238588665684876859187492897992694148948784526188887955864983952578897559778597626584898717746563779739545655889869546957495692898889999971966785289483797616645586887957698699947748695953926576337969756947953747567673881669377957399978939266595876158593589797652776993697855895964958946695471964768668771833793869789757759279239637588989883792895795375749453379979559585847279469339839656419194717877997764788883585467398694795645988598699684793759969788632696865796983598167631559438485946649968882586649856575399996787569896898778559348699885635952886195577845563664869599265999985379657799589319958899385979998468756787984379867558318862699997576888995826357439784958467997846248882579597688529499767965567648363865597498968624975969847779698494891976996855473888349656948888385486776677783758369787129438655389477867563764946867518378561968134474466539129496988389924974398399965196976972796767987784583778956796674329294395877684474946978643739778992866564485647566969967852138747984995779835498556298298587997637937489569397885368819962557966377658278859419986572746565682535988749498897479574673388694768989566898854299489957895997929386496798776562897965745638989955958675589869492777688747533848417698559996875915859999965945883789588594998339634358948395748878899973848889354878587973458959296869496444754789942946676585774556959697499797997579889936898358965454688778599883867665969765796818687967887888889789565466463647558587587896335638459779179589777855777448435599957577865578789659558579888758833629877986388994439698934644743126899887679376796597985257598261383699597833817483846555888866259369785918597286464978958575839697545794376556142185576962939799178384497953788596692865598394668869959995649498496857884985676318885884767997589842997798479798657679975998399896891955989854696456587268275448776695372639112998942759985767585993278975747779977584935996947935969493277839859986649899267794799919847821447989565236858795491877785925673868332995164668576756989998687589995578468883654566995889975859844697796967687997997899199593592566883498885868748765875534338889572464986785763567889747256286779919491598366198462795793258219589689879475583465887474828929782979964839819878985536946926859886572955389368997848785392645361787698678799755468463849136781723739448948867789936184797437788799595787893669955759276899678794989598167955568559877689497938979167514437999489749994245771557569657856947958999558875799948774856796666596278896668366277437785576777635785834975543768968447899544754674959686598589726399587698765167771974321652743962764487478261811585547781848675899198229694954895988848425785786788762819495976987755878347796874795966149937855786579967188175167952779297574712963664936983799756758327877699839783992879566355999732947229822878969757543586339776939125463524448778747679959958565989437485889476767979867984374496978677857889879765398289489693526862789349977997769699929449659734763695281981869984847685989827889984467579876678997786999869357934767689724915687994627853687996976797443798799797625478779822259543867647838848988835587783887668335626984136638726577772788985687988369879997695829579958958487937776987569899696673875832569678538477963677794569688753869898876889997983848859448646875278679875896428659859987677388746444877853928576257785484855967159295335996983688378518519994573678899554467979699129677786879875696945628768795548587882838767394466993827995882876869946874999775898315672999966842957694863555797529395598496357537987476557635452763975834456295797789453727927696966758752486598779586669657637769994888656879698635579278958348749816994789696598715674747998468557699877983998786794593898439269297414459787566758747497967489579247578699374988699769594593688696354989977864976786568978836987859374829789678393797299775458578666776686897754575978255498793979749789987634975686658985757957578472475746478885957588794952389326795475758869998967995988937677376777893988397989849979878595997935698277698589132596748188786896297759879997746524888197935899967984675598467152848665988888816838744994896938486778757548487763587696696374527676696357777729837825769347957459153653919367874499567666748494589876669394248327986997353645997377749566469756528548928577677535846224894876337237796849465755789454867942699677256716968968887948695559655479157588498737939296547799879989489962881997837969499868344243799753269949975848692386377468895878687897584743767655887236568952767739367723793767878955975936646896829479949762847772555982616373657886748985688984738828346563688438365637167769839875228773979887159878785784748323567898977584994437797898455758484862176679486534399952698769578788959886188357976912354894893987675869916956189645589776784992995982493619375944955689886958669967368854998973384798854766988875593693997476863849997697839983888717196893857837988695668489898762751199482681952748858968885987485618563643798888491469394868698355973997469585777236589256869389996777946571899827838799645957546893936465764917389792587976762872429899469549998789759999785994648972569239472629995973286695828558877964974236487289972289799758882988636397489676434593667853898578778969666987848886469743374935929838765685738684794888894751997617986685389818753573736854684257985883556362976464452969693389835965297771553956787498726274547981619697968418678993247399697982698593587892859246799898792698838492789851678848957595593638675596329552555678656389866647837858826957983696669599997777737567995959894762947997868564661548589499992898986534994829169959689115735453695966893533978543736598686899975659987676988876888259868577889996798265838669975937899799875876984584896688646547388846183889478858675764238975378668639397676743837588948935849796765676876627864588585794978753788786687997455868973939257463864729786968793653949498665795667836997786968586457653779441278397776597898759642765537459273575353752837889899936389673785558725628279738573668741489496513943388537439558795342995976963969937959399697589697999223384531878887588668988979968694953546949939744634698739347988977856956959588979457888899738393968763979626353418558794178772976368177763185788322596832478767374848369195978887995969899689646992556885975964593588569529919394539438899297899599297478279926867799678472636231482489987832799356755663848946668753779748846987669896497653988845682678787565678648978988998837381975894894966968863899387295365634595999548874777656764919278241958865248969699625775689886591989977875794547693988998255477576558395554559781975556868635619586699593548574945398797892956855545647688238586599868987659788657793688877169775983458745374479829785898949888665728449838386289394858754375688449177785988223896939686984763368298988794819561586334584135458955895851282669959977959956949967496265665393457885672567379956697657856749699959956369938586391799387997944688768915585247227257498699895875877798954277959936694936837786461487899345936949555854785773478962951685597853775868598565494795579997251935759783846867869999649751976727779454599886566549762288896888889844552789876756797189763735776974245486762658889639863569567966745996468387718445984948799884898958579799848399289775229494538688959896549587786779585458849683599539928939966769488582985992997699878235664656943875746447769976913886662479565436795934784399999548353479638931917968856753262939589244638321397887779487946987435359989517978389439845299753744476696875593388757597595386947392767539845347677983157357648248566455915769972983427299959947683748154997624769774738556573817864892255796917285794369534855857996589967957369991677867958845799589989899975323878851156686866337796326997559898543794586899598977945971347497845579839752456956896794779778976774758593577585685838556835993782998865985976488668566581979384891782848848877857289848649348945546488787539696579898769979545487269358747795849891595934959663567496949317974813842977939979936234735487988636588779784962365726766647895784887688481696935875178743798999437385779953199571898878587925533676993786687497748733378438878934888884596775533883468587769495787458984984889746973754795943578947299998675281237975788936554999552955917854297228689689856638996675943778495247977718939934578969868389972461863129834699788538478863699868587978145836789493856485663778899795485869879772757579849973959872927938876766959986867964774755689976999288992684683778578766874568882848959696976969489684687858679466938732885299966992469684959979878678696946897684556876894483788545789781537678958948699847488695897685564756895699564494464683949974785978745316685989684735648899278399795819787526496688649178298981698829489695398726518847689474979862778679295387553512453969895987876979962898818857895959353785583549776957995736969963857589624835599697789895656578977676874985887756752777587967578897347671956673592377849579483687667983539873479295137919675659889695553443774974679655364873464497562537972992889979477787996986562382779959895793376826466985736991965778175539558257678624782978996384763955451959768933578985991879666748498384998165767389765478772933829737876879865684749594995688753486717987746487458988778384233589966589796499368769985789568366648755267368612778584884863936437694797167377793848839735979482394893227889857428348627999923366938439765698977894444388729957671874665857683339539949683755528874249646898968878947956659885369547728866997868389748978266876466789918945739896668858735577896714521954589781999796639798979946899997958459799999668888659947836968594956197939983619544685978995284795566817441977784995688938565746655515479397784962889886738862967838729698588979955454847795945586778689798678756938426879567996745549999997658756944998376854766489888488968947985936993841475999323998571715873429566672434987692596978999284946956866499248651798989986998733898667788693931643949963459684865992795442396686394669867276989697399966425778779499879587949115352499667396884847638854388572966525894766976959697779689699998948686559892584998598962787794979879396865695661387789698851993382989575879345346458972869668876968986966468566336572588479279996196485988785929796599877756568698515996687477998497699649657895864859786576969698578399685859779178869986998997762182998186995475987599478761381697787491631788984275998187882577778948368437666991657232987339894895888999366629644592694984934644378993594649777979243471873582738548865277997759439976865289497788459996759133928884773827698687848657231288255845576548972956642178199858847556782179755898439579878899885445758838896669325949356797968496579468586998792944997479599985967888489399746487699784955862939679526977279344873638299788988467781666698716888896972214292736487894946743867353666774898983879934356929869787668967768969595967318394769652758266734475698664298486889987699497998685242779599984287995865696886995847773798769946763135469786643939747579996847716928693736883888959988758889868925489859389588869669139789387875273849488955835751986869554648626757835479948575565944889976967426859786981995789882886256779367989837899356993787953644859674959663745495588883737898644659756799578943658988993596232787596572276638859666788375487777474788849764164379188989979974445575667478873764988989656856927971755965869476687967547884478599974794884698481678572559893689568867868254899385568857482569817466149997996587979169875178996888689489616499549698854498781668839396818578169688757468389368279594999964991897437999367689798937569969766884389895469676665588489539889856859786558577797655284977739875585869968689897425434976869598174894759776515668899485833579976947671798933527888489834586562938176864495655763179791188988637687825899877999928527464876522969861698894221339453438687539478735385834454732659472943758896333918786947947556248389894636858778598872278855678986989891166759468887753957874166289975786393586699456295818359989995746693467379994877968645868489897877764684678939993794868799578869979947692746788489473647967789999294955656998997778263954475196849887568498876997686976646463887298959635469898277979398985579988868457798442948899612953475699898798996697729683884967523873376148969942598569869952613584483369859974482188981695348782753897774744647519893958995854883176687995667965559476546952593526857974799345275843985938798873889194749896799857698978787682648138977977958463823759989493768997176495794797499976997178218987873779358858768845947937888458316853872799579777768718883234879544667944966856373392588984969538998955246918784897914979595349262768693865586469853799544743524488689686797774847891359887788533744457497878783586385444715598774134657679948926644496954788688495877684426696498985288731854386645975948378549457898896199961445379848789349496766887999489875677686755559687499928939857982365985757549329729856299375195399782739897357726865778881198453881597789462949635959857478945273786797769773265853598367715943788147434782937768778688368398758969785878735392989799847838557788778774696897543459639958694445497782167539388736746358396377488517799366888968698899962696975829687875583589994959679827838661984789598486835992977375926195894889191859559955584649324336672629586692682538477254269379969777894668246367466638788965969898445333792879638625987288993988567878537867885628988669837795987459634675977399762697289576698927745948286999958897787897499869793926568262499876576748359668757996757557449498537698815578576898238678865327858886549573453816948859989678881498689888438866935779788989998568983885769997368744687697857979567777869599978977639893882678557985398968395578388988476744668491889599297824976575398982184968365297459979769948695769977254788877583999698984189398944884769898476841993974865875419776171894684177675693883984837185887899766688784763996389587676836979988777978565799957898987999835449877584839998958766738129548699326449968879874778784253679931895277855927678668941894998874995438888998982327629775959464367821619728654847588566387584946668798699737628997997561678866137758664274392899235652568843483666815568546497944889475888484939938675998597796697248899899859955996847589767997379226397929457895928479964985637778287617983583997694876393943399696877387294688589688433859599477989358952778988363578787983992894446936959939464183697797387469985783888389982537999759266556442745567366747837397628859589448956829774465878987978683977875389978394888456997835888888971381958179972468497936868582749957845352686994399567536767573482668547967558984179667989277877786599879597589965591854197189547799499829498398892878885493497973369464738867588998678797447699738693588759859355355985755589367264667349485998659695775263226556998875226955856727397993995568885786699439794729985672976679889988729983694868739889996457155849529959896959279837825753895456338678739964857549392979679468991869588596958487978896675386528799984588368764623838836873989695958698988936894864778644869883548568978557397623787883876694779878757929595613774584947616586328696577278758788728597269511897797885689383488689578179662695544478286983928856497289856755699988719651828696649932982799972698993985565887955936928258758478788968579479427283536553585959673235968587195885559874225679997539763577865573499878548566999997418999847952868894859958997919756896723694199779998932188798988931489569884656877198973749697679928177657444999772472249999485755529877568586548978962278633283485679885784837989941797846517894297939969626938975779873899937634479748498599567765737662549567388464492197969274675439838748876975493758588629887988973962986998862897882687547375757499719983634799669179688962669584527798973875899475884578964137594979691679558749972325556278148735867855674258775249988868496799867378459889195886897344778884955999827235949879973892654753566999575259567477697742897993893223554954899497989597765786787477979761589776699988959868856483644793396954591858798852766726938999388972989938653998899687975888756565648994985889287279896348857699817977779669939164329785896866873771976926898297487745288766342879598135696258499653864233839994344747798864618218586695568344765888494757666688686795479776829553698526958636866538766368836877195579955499889647698498986496867856898695627397677532467787563566387969938694764599477777647885689989668729475981895986578895863837946876977859447986976986379873732736758895189886594988667374769684718559695596866747873757988536949963287958756246967685636894897778759895885792833745338652585897797876979557869982546793397568875929752738975968888379737894678697799993599978981569664553887444729753634724643497869786348786787925999879936897747386765876855996227688789855574928426599694769986537533499469497655596895735277677888589387875789949259798897959868784399797798499189356989589469378554277898883859394797799397587356818996832858699979517689355894651349238866842563977699896586696543866758359966923658357783199868984683765758578579993467839919968799488426684218576976665767678657494377898875858358167298863699875698848778772267955579947656294589483549469563448371994935978988572678482799548988897476675784196967971589747857564569859585654429547419676796999588816983835878878648688937974574869828577493544994957492695576985984799738795437665895957685266261774955859985843696945797648975784995997887837794987941978781533534393668853724684599485968438959293868766738499588942997795757917976994447669896779433589635885968769969769938193423938277727968584675898298729385868461896696728279492788778878454988617899979519594373957972476769656968968734586674175388978682299892686373964965699894676748575888575849978665477964712139968878966575734953459717974785484866955569857777988357985915448767929296398357745787829896897656846978879346974386797891688794873947964998774359715894771878939857882948789727479997591866818776799949753523878844767698784597984987975653337577947764325294828926292979593586584949578699456577798924899986974772749543975798369749985687953998586969258377834855789395878827767787714578297997874699987984775369826668689434684673689879165438547788386576368956948439576497659768876669757987377846877377389759658674996946899675639766978323639318486659796396836788821441977997587763984688962839825356683525667953955518454992318336999957363665854484795978478495549242349589667648979688775989457878786494887898855784689135648853975978743488993988699426928659689557886478624752945561778963697663476895667243976245381667649786777367326776892258986797375967859918589984978999769939767789899675297667897578976826768555255735745688639879449797378559568989689698738838787868647387578858565865847968795833288543179297819974776669595764566869767872879988897797982777235565857859168677481967695999748469384936585771594767573574758869654716946788636856554699794927968778858779559288738437645958637747575969189527646869379995539765866277983559687428796947767892645977848788967629676678994259845247689769894469559977236782847999797595796857983373877838917986399987877743985895849555851998857894982669657828346871766259989489974886749895955968693869786888923983898945967383949375285589446947844539899314353999727578934645739979898946358583715795472695856698897549599568894896776384755186799944597983297482349697486989787584757794673479989968899853566744998416554599787543775241861694449392188478733888566781393758773576288564657675558389587889847764556798844977759857295662495829255559686387495887697869579592983996967876999697398776894952356744563753622452989954847996798373884686824246586797658747754428545644747293979967845838767393883736966285366995148199285254955878948252577894466779758379975497968832866649889742571878595976758894838767893748594548635878959578273993779956964736969463689868672869795643955667996495594873629641939798855148888772687189126272426475528937738889886673958374665187859835492793956967753865984278899946899327594487849689926429982568856672267364848976965979888996958977953973766523766964456558199759995798999559976595784869978887658386219582988789898968648846394957536498872977959464379594758875993892869489793769925984856749662976765789678485747989546434988455898928795893364914796185784895936956899559338996998985249559949959698597716219453626695438163472838757775992287919777577265457648337686866149799977677777768892175585786198795599768691473527468489899514948462947166589692837578797478982571892829989769925618378584392497657839997523898276872696751677797866452479634667863688765841473946776374999958544898662872774619789898798985595458678977945593568845857899849769998923389799884788798371899443658599866679887989559978914999712562875536852584584672999468648158869486835963777814482497962979837395168995636938777575965849129228749896636889757891699991627878827579686849597952957368689649655717486869886889624168593339839475697586438565764468784665777755998946777975559986622258668564738844892766978479898918288888259952766723639491558116957636937952699456998947687979998839445539781946899866398675887268486999795628754957516668284981561545667688847973486588999698945978564992187477953915667969965844779996597737256997968139898665967248484383736138726999721487688788897627679126858998869738985799647459877396715679468895786499587474547978478787496589679536978785988846293883787451756893383878753999839964789878734989758948186796265938695517587889478578838268868885955377688838932468687987829779477893863976674886887546136992696278579699737664857793585594592728395596877947366655867694629589787742957946724998599576728288598549868558835769593645679593698757667859947588768345875897366849398489813723615338745587855434795829851748677693639585988793179538764867898697998483994439557967549171959545492566566871648749896466696577958976584796875989378998795539795888348799534569128598567958667595979742769672871994898616486479596989683963668669627489799974696262447872855257948847896765938889387887978785764476646657484546487872586598956735886977887988879582777737988169554385985899879586886568687474688677399394993455794698685599775559921188869986758556989669926297992697929654243875685474683948989558687697416872775486995689688989592884667459974599598942998566979585958349875539689433758615598976278979573377963739813952689588466736547926932683989883777838298489648785969785597998239749967539598875126499395677894626659488573679874799889777264696624832863749883899989869855898494283664937956548463634769732799688834985486383855849298268846747877878977897452975597839964672677664458795429573578778188569869397779876787982887873829792779529494732886258482998787588456673487118291677582893887638684977457492589695693477588996693586475989784979763653969356828665848997387575844979768458589769727674987394486582369898438589747947699345984396585747846679738796797395779817594335781537518578989959989999857678733785798578777784528368876795688398667978395823855279997964845994496756185659462676572777987735468633399698967389364386774989687976554949148769559395966484688974791679169989285687979649382575559498685764889796555276994899397898366449636592359462193237348985469679488669377754787899994989178966937864359865846529999736768974394783669223975738697767492288578596699758685596793555968547678846865586863448857394986996859543486829988799897794545671817947939496739967691579468577167899765587575981976959798875747277555979848854658387539186385395796977895396999899856338947988875988461847974765656766898697887252966679246355418876686989196878636997989253477383689737633939688461989698956937348967982696199469789249265687577334684459763259667977978688495999476765687376868983584895796889557868573695872667368679464686974775686775976753987882795824559978995269687878995695778986896482484985935899783269996562786895657668827932988685757979744275585375434368938548876678585629776989578225847476885456799868446861916584995785653658985373884796557888788896686581692798789893732876799879946948856996896799978599195797948735971679447797674496835653698268825695647634739864799667785589473939576782759987959466926892676456674474634573369497999582698874864699778489577994877996367535666858464716879565974567926852999549597549938247178859824539966986675588478996568697685366398873639842951677496896718967419644657798627859592756989654764266888487825928383445694989999438789483667726975748585823699669399874969247569487778868789748879766399379796699387773649267779889495718695789657268729994527889984483776739956718579777935898268131878995593579978494498454297549988949396649872679262555938356469637194338599996846293358884949487935855496957874848658778678933912779989877852765659579297889236569977856248267696396339398548192865776676799889989256466864675656466819969663956746857563866699994349479948936259463755884896986695647987399829954797189694297951754793648659622787725478874888655484668745845687787387363494819458784946677818767425675562769185896736149989878864652999148477339888877981676777896868567668947626997197347737756968976528624993616596735849836258657695886979867454857457318676898568888978934637187992796963987846458856937829399528978899279994793296956963377679586899475895594499754719453523575665658764743599798854797237889594417989626785849868838978439569999886847777995299568855583877983543949869979993557453795486989764798888888953865397585726597479756955943568777796594797823459494567994779992688986996888988797796479678597769893989294976797587625698926764916888855677695382545582997157879988374387798649849499696769987389794867678583479727871471867875979758785288573466978997877684928999954818977986679888897286646776758583693377944868567979583899899862889169198968438649468954346469378355667428295799689989395778289649432228899883474657796957778638546552888328849254689749194678985475498845279892987861737795875859614887247896983997627256896785897737741996997727688927783918846662674245896123477829394974954774367979966686594894688896424878984468678777997567759294595849781993979988698954478847896673786866999568899592887678938791776488977928799883629989877492789484969894938639891897998664374869586659799622944537979799389392617987446718892831997538798699799763785794787117986869866689389669299849847498588826436479719467773734587979549396192666655562349791526667977579857898696799947453667389838479439884719528791299848248938695495796698988356896895598765466647686896684734448226578645799637379872795938858667774156369879979536464898469489188749689482587691858762997499764686868559764927583748878695767959916838946667869999989654793587755447729767167638986964882979599433525548439997249372579769729958687938696299855397693859391936843756896765883429996539855939453672636577462896977957994257458849443787482347743289529569458299869192536849336547937825844594495722289773486896987871549547496847195692699757567696397648799449797988588398897786946889848391475985669899959778576375657483869789995638878792989956973499289447989877355968995848776298858963847689574689689696947783874639286998783788795867523989979989389693696698573799763866998899976856989827558471449564259938799495999683977789788787747787674776412986876294848866376878582799844765876899728849695558375857839596874839469625694935343578799448389845349518329775266488674875897817779932468495543987664674565979938846757786658989893378549834566688785756575347919969462528948533876868987639694258595726686988984878195664837894929359551999999854466589835792898739251696899882376667998667999897847879588659917859893589897727896899873329548774989979892565966489938859538983974969592556968841166147386979896859917338856554829636291849649495374458876136946988758268687423274666878754891298889995176697677946843368982683639794983269679728498476572189498857777966649855873443966696696795596388516575951999535956988484744559737945766783479658738796736996253698971779594574567599525556651769578798679337964449757279368486786836879939688497896777497764489837984985877454975474839369479558645634643756958679375179888789978958864489387448954539875599794397856594556934928876773996296482581699165469587128777295887657968569167978979788871467543787579132445964918956284832559899797777396723798885177989717822535995776798768749897674226477969485978799724485675769476997783364796995339789982897477546934779766588579982977783986473872794699634487988841989572976899994258999298964697375638258968973493898975869868596968778781372986888639989597448973836394797559555931368426585458679289547477968986329651765977886968977574797376687996791478977159745632377876968648747792999592869939745536887999846888776454876245838369869599848916348284889678345859347978685989541355976965359763798749348956587996877396857882275396198778467265484983688938533899888667257764665776946944981869669633645764499789813673663835346636581858719385767998457374688726996753935662786587985597765883776487886975373975689459496158997372953549675914969586875699666575588744795776875829738659584274848895684957856875319655838997884996695467776759394394946788935399695659386783556733855783879994947985682789786595944573858679945989585674868664987699459636727848899976198678388934963894587955775896983555887159536946979186986336875589889657974634772898897779965888796779645329367388999796688999794455787954596873468453577295677859974567899939568733914849549378265649144577989385697653689369589977575477983957784589367516886765376383815559866749631764939975639957418895471932965865878285554658879471999872679138234232727739737877776755699395786935997978877769726677598755178797474778895877854834266592378779487286988986859167576898487384822438336346987277785899469497989648573644419987977974933867798798979768468751497365464654597423652525857797989959629555464986946839278674777249475546686998824926939195999898754775837389897966675899368978668788988629589989556935976298729955985567864579699895866686446883937938755353928499827855997638476995285936966989369696784969766888883328896764248394967864688989886154469468618787998776842988637361455633358977646669738434798787286369859652579998767896744897977876573848493949932768682562886969787779628393965284598973799798563887766599878265452468944447428876984978893869558399857796498736734553862289536679956655869748847698845896556998787778998477635752968669255766844458394784775754879967789492958156766928584595364573255499929538993763484949458638569984947969688968848866513767383978878965836975997954357794946487488237997998837983864774345644634784699953289678288888444876993787617653967993868838973985968757128998194791896676588894699795569757869956729836629986873779687683767785863363384968453756969238927988899585728898986799815493894787988696967925993599847287945776893876592865415877978848992249586759796589688997795999578984554849633995875359893698452949669782489239896597888935974238578745328773772766465387868783978979895687743178643795975788997555728638583399738925568394992574649387469959677779488164779774988367295877855776485685991947243985769968597875468698368699879943976939892887668269945769999352749888899593856373311748767928469199858828579875957498933239985931174476864558958685699628814898869484996275798682683957552655993946943777897893959458683484366649249878389978977156782688444459859577898579799999775895999987323356967765885896157547498799779663556336731789978478567872936548664882896827896897948659529545473797128985897349995866987786635917848499958758759731936685978538148746148295285997596947645569878859988484466789958684619986757998688973466469693384865956657348645939568177939834976998835526971496874692558567728967569969676973688368298889564586599573678594989989428958527369581955792959594969689899855847562789837548378554269699363526538751259888997674132558859799895869968681818988778721819597685879965566979734653768334696966479697536997456942568398859756965267779996286931888578545967938448795578993757869962413189652988329366774684567793781568815969544899737984247438989785775687983286869656886838877758899677788955599755356498964135218476885767646338246778438927673526976435277997999982996979385496777745953776365879754776559459394898322718658989329497569679557588597373761199542546473547659745388766994947648795529649869976563893965898859398437979192775796165755288893769861845967954766556296879984154794758857561683859675243438698792285669928858473488464786494745758464332713137542836867984499152847469866976837877916727639679636579866923475655259757857569998882749548749865975989399878583788657439651938725799478288558649897857626443198265667998593875678777478788766998598885492974469983769716529989843887983665972457459495486656889878669974877727947457398762965374897894199598499676388953698974644799825988878838396898457516737517259339679697884825888989499592985499665794577467966625349895875689599957547256449782963819978499299738688678896579768671136795988587573669987969949168939997965634385944954578415732776437782998879413279489838295768767679795853855865547928968695885578593699229158985666988496936367255996565348353265756382956442985972989354536966956859492335936788456569797781696996936848998596883978369988588773481978955985464961865696476589798899864999588947592586686669994539293777875616656862179787149936694844989993886773298769387887657998399799953414975896262468985597647996846359378396967945992659866986287695569676696797919558768427987129635568879789356986968478991335789799758737759889785886999499655876487334178965733777398389556993669576693922878332455869892238596351589937999794996782226394668789435677874714988869436678781738763878657696999593524856728846979883623394974898757497898168955194659549769697447565779485667799389425869887667865524838269979864635884558996983917482988887798159499874695958599254551949578966989989677456294978755989573736744263738778478872759289826488773537777979287978687423749768396364967532557768696757494386864744245846868699586886169638358897896678765467978948298843769496288996938814598277989349889276899598768689891887527866777955897443465989956575368818497578994997399869874962838727129697687967563955984358837927778967985865777836974556514477947989979718999541974628362449192994798776742987746885728288956862635888466854589839988999578673745981494696882858476948769798966881875395595886564796238428552779376998487579994852897949382965484222998499943966386777182946314968868679629388561989375367294938455868698656248889789796338369575367628784959798751996462499872368428999931968246753555658685423199553995356887396885948958468933788262699576569498875577479539751636549939789569665356697899953778969898258498967585667899847933575887596494675565954965796552688197277358396357698957835399586667653855953372465854547578983756547697959579675777824769774798899528957578625743785956389898976669488716159976548599798785882827977968421949598981376878989787894666799747779693699975848484669753938577636858498864584679728948934789868866196646748877364589853789984751976388684524469464754493497933886593689564228759764698754266849797953546589957578486775578765987734446378865682679674829669695676699657595436826833834787997481939769777787749864757845568289658696786896499296459938739697695775863559678678389945437989889457848863996978783986946898479379676874587819394794998586872786799989994538594969772662589185563461577971879838998896947567899914969585598359334398965599963253678499273641787868747694869597751678268439884789449877756485897583952948586977959695327984797625195486868835932769855894389489867399677778548659467694415942847798787144487357589847594535275749865894875864739838989782157752972526585977834688487988989661829783995669784998597793478816859735866946987789666359846749948886798678958393549962888369679458756787945969987597878846655789584687747946488589963985469631735969328866778716879196959894598598963974994429894488786883746139977938948749359829879933657487897381897839637566896938584643685657913635987487749768878495929822417989985989789568463895986783975682461398762899737979839699993935599686858678792698568133945933898665888694595888689984433857899964861932278558784577177589885726595496394966898238936348858755377965134584849465594218997774869638583886693492659785569288849543894486687666369247924577999549199874637878859876784198986894959899694497596377398857748488458446947696429572236969598854858999868788996968577971289852986342373759478946898865993889688935755657969976499699762954796769199866496988584444789798494953888798848984598655449238945789828939776279576697164748431517379586489778793766546378942497564927869856837389968899867998587983966249329617697886339764669749968286764327746668892578898377318334939891968591967999539923678572773674973582737355889493528664694753752873976495187978749385669426656839288744359938738497686428692598578686698946475564588288365996865862989789858677494889798856658282687486778872967844562356593946659937799115495195779489488599977551988862346229792588617947235568879379776479891535552757867992689567598878879556775996987378637988985141649686874936769966979762868695634884676234476836538558874787588396675453488994637836846999397997489969397493871253599879762838562927356194567751492588986485556755938681888685499687497738676797636737994174779969477787184686589662869694886899672985494975173676679652593582788649638797762746993763269788769945764866899954854943974899798793385948299447168878758728786395799828977859245569958779897397969243883395989459394966999755895289348952364979495543678985957577337642767968639679615958475698869855149699679968349979765273259882899164664889812325915683999439284777686843595848984762435777833235599467776576749778852825993771646888855789597628959938989886684483988986965593287963887386599879699579877769799465957948443657967645431699856995889784886778361623772728495956993666328976668296894848974818789599689789466588658387885297756577588336199756458895795635896879873939589638943613489285898766566663696764699638775775947359598865727425846935364761768854984557579995984679879299465674636859754686677777585962579834582794867854956964454878382897843589545787699187497767518889956829777755548679376578999547978369997468776951376953856686489153997688291847869778778966975944986899958879998647948739446548357395459944355948274979864989668997995844775598653776919647388473954756895863646897937734887759474798736863586487829254159998957956639547799797756375475598188668767389997978443668772978768699688598166938868587647719428995386594629667193636994497536758762832786897922894834788584539626169694299345577679679958535978877847157218789749682949886889969646485957475754224784995587928983987975995979349658478749794342239596496437634586464887887794869735997639344557798449325629892562577842826762137575474156726176899976396984757959896998296387691577979669598766465717595847875939727964883596564598489638335665222544147886949897488445762667771658579667597995537797969947445756955668688698622677334912277538878764549796759468196578737988528874568964297288999668688644659413436988987538218967956259229937696798387398389776955967897978272198195377486557958888565879977678484949872894639992798365754888867497769778831778489625919989466976396999438989964985896489554913744897964769274847949715579877673948696767887945777493747844598845565499497797587899886798924339476358978658897671986679196795469437886573745285996837765992758928589499739519385756818393667977768825768592523383222957979895738759938491667665937934378876478258945497898398446996664744659884595319998872546974889996768447598397775946152768668873956956346973867768447983543958789796649948385349485874865874712368796869267956975867692938786689966538834958245286458889996869289895687656592976864883895185677796637356399817789635748997824973896786326493596586798844366365694868444496477999535963488775782878889864239759188565739769997196872964648488577548535579276878689999485835782462348389879467699679856768369396769684669891678762973568544768786489299447424695559972849798775699393679876997459765769973777847877984997766788869568695759847939961834495338498774298499254998991957675675478585269999988783999589666399885855697469899892554988799883697995496557695765568567789992998489888699587486689724688577988859436555238689782739592563865497897989598397538686866778278578597297457349957985675587998265679294896177995438856865541999169547486877979956768866596927559758856281549487595754798997998496676598567758979257564774975486899139876176275485664887758598187868989758999899999938369814791674894766978848931269966686858778966837791668463135747659888784872697856886859739217679519336592237965759585767484897255393492978785979876789769485858746853578948192462398939939959957367689945999487337873763457868696466574987693992878896994893854875627379578698691866487736373661789877778849996391558966969558434468444884367796584167684742249528893577469899586499685958737338967994494974389798684767486938814827644357839885444298856985839697769869975956837744547879989799198963759398596233744518799943667953339685928419457798616758886375687578986493269668992885735864978739598973996367778945758855544764463477695648977848162398756543949677989899672946157886851978946629891999499763849794657895943989268898331651694747969762948993769635558447886688994996956698985959666898577938667964538785999986859687725799688854848839922919793938545392984377579972189537816775645627287531797357297789922598779668887246936274894959666844735979857995869929788935595949775478859381978497282498875913688987992882655997597939339469299847598577518486598315594934595798397339983499896789691752647685349887377687476379756993954349844536773585797829754769579799218679492592931459585968579573717629956783296776898648192669585955418688981789687936767595687899849185296449778878888664668875983398257989215588694148972273293986657574969897959655838867898198597388748795695824819737977389866286958689752397653865977474995656968695533559669769359878699693293863785569679678286697977858695956974463764736397996631875869385294494595539399616685474879595846597889347528822486485129567488771113597663877689885484737482779286895643969576867134656878917686477784247963687869566926878677661999486558556589768719769368636765588897786588967846948473873875686648767257484784894486652575866359785883967598878796974249584563677489669689789289586937528485898895588666675645687151587785846997788388773889998477871693337895984674828897662886768398372425845747889689879957269699748576349997488889753795589388385788987775295868479497376324599495494985696656999564465596955985525658895997588559798499572696695556897554284998848285866779798457638958647395759788776594679855781219894918897298471878867839547794897789835538157926345984845559453672759828547887949897697497388678947179862989935857947788774789249448826693575925337277785872165989926883994387655895577728234758777754674879786995697968659678979998994295929584863999994779497822955746989916389159666396482689878419858789393977286847431944388569837974458819675879865969666393868976698589678576697998897959695884774998686899399389463426899449747866658644389827641976989235739997298621284853665879566344666734795646676877245899245766399998867298886579877568278839977498796988592784326789958568646579476777262848553989647999984764698979778475582845499884573255777996997968755773777148946534567978677583988937786638579798698767977829399998559533689649664172792285692884399763998579869599937578275976742867896878589969748949986583877686889977696953999677423523935886875194985647895697642978459897484398768778735939989998759378699957964177795855944135698967777263684738839598775989698728969555899278993483649624456977847744898259979987679858877899763172998618899957869928849846549827268628966995729929837579846893539757756657583477879989269678792949787484529439929877797797659369269866749766397872547953825764989667789958969128894478757644474949767355898757446778315388593794895559863739898589464747859239169558869568856987773869579399788931839767949829896947688639752959286679946729657899889958929498841897195355448888679265696454876733591215978793698667854856889872836288259884954597668588749678883738786989878775339249574634816659676644769788434767642677989898655973578786482984925735662325626219474999466485759952917789287857756199996578816593799863449998897816697779655846883817899987988896456478486596877169898457675788678986767578158238259686499477374272329566557699377684687782468715998979687729586837991375771978626887584989993944667469444832938784968987896483257589952555545937725878646879663665749491872286745589698847798694878948459687981888458938944445441788187764657996961894476399275784835937638999882462479897574788874771158838943277939666132467761887483576677925875539538868976272885855394947984889854564759543883469593995768496934687887557966476468547745846399679772866796889779996768279687699978486889328985596674339959759738799564466899899878572968554935994467575827695356869668982398974775681119289943799669966721297584617163759898678663988849798889972979591689646378978559997882776989825576898979977999883834948198837734356644576678672656224576493985757599586876823762479844699639978676993827739597968549588854857979399665537493687342559828459998969858614946495789849883182986669495458659775978928978845994728329955817984785661574497647448523968967698886127667799783698728396978979374898536756478947568896699448464987576629966869588798819746834489858767796791448677543616297988488798436988569986348898383564535436189155687785559989776546769929785687775938387956399986757554399965858234777844851373779558898388879697886995975953577257766993279668597969367755734595696898998872878899839564685574549381647875793579546595714979447586877799775797776845899895975683947768969483786886596996886663738579899398399515776439578651155486884636643443799697654536514875698776479987868442478779998446868972419193866565766974786957768877145947946978732995367854786918759845946895676799396675758653594653696291737568378968743438989593578979799847559698929985568858787998877988942687996446635679567948311978849665689456389873588436817896588764779648675369588952387355399232689744688469959556578964539668993727666838962675697768999585734689959333756548984344592595648721878579356522638226767956643655899682754753832674567689965995594377633999398988663998979843985135674582826986464962692939887787844539928397296893769848958798335688927447998799983969643686679768471713969277727767994846999799498359963527788375387978798493385674388615878498735996769845967779779759458937868796676364168459464489378856866359677684781477669999959289976494578878984627662796446669989216881784496966169988683818937998899966955548988934173469848846478543971857483596972635835859929328595665586397496985936784746498785867479651887987959797454467688755698475998827852888967798924882478787499597986895976968494595325869777938688299794954672996789888618576997479358688558632789559637999739748878859799976958794879584564873593569584279725489266942875874776792278888698699768655667255973889838878567798998877956793768656987944587249394863569548235471289165768767785698978638938838843557958778589369223689983768785659644884636476712765859928999827267925423476587413672918726258857669746455554638678947978977876912852673977748791559878597998764789689886162567758737648938696969589686978437954826897159767295298999577358426426991866578238686656733655817548815859666625888797575148275786564775989325578795875689897694576798938897954742565498988556558266385985367398775897765757294768678818528774889976639769455969389755455765894299685988875599377456876985824699364348688654799884569487976877758766699896968796657797575398589666718639623658592957568537368449199254286732597583962867795697827789986746773589979693986778464579749216459759888768348398152919375892816795736783386979978874557799878679963796836574648673388389399674246298779577862632729879389254894747979997839419946698989398889696787399843939788189397198826639686824775868815954838938988664975935468886976974348969999638978172347849885966989366789164945844977987991365989392595272578486399819386918535948895644468966977497586395624334989955777868559555689953834749853337569686698587693378958966379659695576899747769872733776545699868798828898568755567685878388686597957617879992648832547669478682971785473779645967399845696786656956947973799679267817546958479965947764636886735768977887942756684154583227745462835699977844799567893499545666486987844995948889729863535196563438769784663895594599576829374777846733633899937475369191688435478187969593689765599529497823628989669458858553199367262398976287257648788294832987569953178895895567997627394999979932849142883449479789949797996428779976887376985848794789897641754881378693139537483975839763943688758517968734598758775488977972999964568332773657597967884425167659556468181798969859769438794397253659587963654759295749745797689645954966519788247353981733778765959378365575788781459735826373695678658749967977293697694624487267482898271824787675599979436999866797449929676997656678475639632459448451213795966496743296695694296846777986473545368779968258677787874498295918564327674983244785378282932437785845975968958865866256369657889594856958977698248856578598846628653885357758897978959846159748998129966529668566995978484687657576798965647975867979699578689893985467767897524938599968689757998881568798885483549638787667587699973563677634879777665176858997438885885474693987668478789883695589988146979293949399961917779767886586897378991887382866765754399683196539687579872578197969537966679947695958997748894598735395898549999682782798953755668697573999488677964646967768855948569729282978768876799998757347443834266667738483974995796565348978687968824693768559728747136633717727679254998989796388943877348973436475795584996917564698565398577748487375779785668899742889988773788724931595964778978298188864295728587788463875684583699494764876767369787289938734887496576437777787939977493768858787983868895795534864659932991859489249568657577414691217479769958963558654667595587895879779799927558526596697351688757964836986651694387928917559597578965917397641296874479687427386928667357649618593639456468595356528969528566779878388455977573979946887497288885388984936286886275878874575986948537936269687872328392992626494566838657279565657694991946889769367925658626876844169748278978973934738868891537358572941752959897699685675995898634574787979774955797688898887888324837367567567831459369999995219329599395757849575773757718861849944888997876595874677595558936893927947838359795796796548896487685767737339781989879968697657468855785588869863664856796519557781779949589589376758965894595572633169988768353145685557863939867799852649399849942631984992996848826285697987986356969588384785898686577998993458823565649377792977399865684299897662778666836265654575227976342527495883829383358934784332684364586395777456836673646788392895758386888745784876999975968987655698716487799599816977946168347475159923356983495954791985738872189856761557197638797652849857846799724699635486996338615684487787499897926895474799232966998945524543986829997655575776964595997998984843979958896857578449693798985394258478897965958879866252687445793979733769757599449396828827535985798989734238564394987276936966597926975346746886994966547969859654757685737967199785668622444585987365888992565873997894395559166495968618944517446825693816855287286967488321888451329499738846486796666782968689697959949767784893576558545976872649387596277547979521155779572188953829465746976469284998789495364869427547979793952287946799988489748366776779687847936849285794473877595977577986749877744945889835357587944359675498975989978696877739685957664847599499835955688868686583658989883775573684994857887664865966988987743878872684897947555898553759377573688299969578396327186893928448458899482887549838666668947769869988591447691468784786799947951944616686767439888578885835548264549258497782658149848647846857655994949879788878787251658959764952576673949839575859875469724596248685979689385462882939434787399663884548684388367745317899477959949386725897559399988822343829681778939874677787767963278656996999589948999738497885649696956872586737384857671599885771595682863664848354966795884458758869993197969948946375396694845276528893599689529811965769939986567978787659673595786849299775875776669336892976774768925933898957549393479869967235368298733676577746846743588764599969937459978928742828386597395758949846975575538487634938577759919436499626579987677474937678773335398199838857297486367335859571499174994856847148679268372787696375484277976868839767688754475976948783996497472757799889997668657763687478635578761726636389457246779654157874799755398619847548874375742593246498988559389975698884852886946383836979827947937529897735998667653379947789393339569488458147778885678837165874413989947962757765789262994969678786737245694759965635868838757848366854586382579787697778669862598593129899645658571498859981837795259865158934469976356794959375786884898839765276789581489657681982676866779575883861568673457137688994668736866799594579264668931526555589699983897899888287161967648675167544456993972595787688594985898978459649949935593899368254658975887456648888536578599287799881254649649466962647959765861865357866639579896767976669829798946948878946886887531761486646489585378867656497695889967375274197566537226899989664862956699449483663886763975576963697159295974862852392987675937958688659549288385484786677929556533997153638447759549385784958298285567946977468615689775957592687958589785899668898778868757899296873446838564579241689983568586668195869798289459699965987828995979199389958989795485475733677849799989997766497998996876529977895878596848897947975387875439958646486947767265949797835255737867735887549789898974561853458862976194699857188645632739923652687786448991696848727867975888988966898937495999575682285778984672736858446779788797655637445994942399692975756479756777645598685839965448546826888989687517677695439476799153382888892756586479399899979457758882822966492871464296156981894795737978388689972377778385154998979995366549749939747539727237361418988895889678569586893416977789899579953668922397964987442976839375247978577729754899976863689845963986689967894759658468755889875798699727989647675149928583785978727649536959694825399984949536498897966438699517526286465946477179967812485889758233896887888968898663989388644868964596887178939536199757665629745594684716736268957568599789988698987557646491956197386988553479576994669492869971574778968554694829462464655494567779644689489296797987878856467979387994669738739777989657559568796998679696874685789872916877489889985997687889375835598575469791988583567891281894878985941696582778976546674974847196438975989836896456864429779672779998398949584764773995999995895487535868764598697698859957388947125757367589258875765456477755854889888359649943685878799884889847469795596343984728579776847879557616272714665546658898563443735995739899568498973858735529386867669957744279638899797979875969947877667733599779475798149656114889671878786465558667685637379759257757867988988277488969597868699394763982299736349934899999229444928478588598667589764669495792385967699625565888267787321797685699477369884399545955986559563895969962896647799987488797499754564755884797945986256495876475459984857981979849895976763676897639762436597472924951911793821937479764898976144545395988492694637988569479554457499756969798863269484947783654971574692887977989983894985887595981614229999766926717929548657761739836581556647688599494738677584773598917392648999869258779966894699478264774587285476684795376777768998686978869988984436999192395787496983451357597899779884989497574776849597542699679966975579499678249683792796727869328694799998872587859495599529874855954693688379958549247989969886999257889637975868614185537837687978759479978976877964393398665675899717247968956686488793869291969389989957887759386773987994619988535858848955927678779648965447938718789639485988825586951958879763557878691778255397237599977648817989224584885679286587736967372463935287875877818792862942864994459574989898589379499588228965577756898764795831249786583869979338977555275879744667697373598357499739679894368788576753578977573998336576486782739465355598258698283966869776569576799872148198968112159759788764968498496799586594887573688977388794574595528495652613813884579884576969644967964238879853595253432679578986735826428769477838499266589489569969669982463636699571741298867797978978639898746567949476339675769639736359298879356788697899767439173588891492887573475953977843879683667847738973953972488986538968888599699272347755379674975967898883798979786994825892476687896746497698794588259797697994843699759666776784997985857988768997999978759955982794969818796187884688898627499269459651327769853948265995885994579662982786989738756945598536356939253846268985668939734277625869267898652998658598576559858668855797947825749884983447898683694738599647689832784676466857937766658729698893244766986535467496666887999212857661647554682364934396738844726874842447998785366496678885548678919858497813889963788493867628979398793884758766547983143436897249588983499468792898987657467968865965567978645447874827799932257684599587593488987659578928459689285295563379685787892274338244789356896759797773855373993265748959778576254893927992978763538973147886956866593987762959777366774979286585989576289328978979749886693412766588437488328899993378997765386835789475287579465868775597356877893593577568693991386794835694793597654218876769769467736882642897779947285998879837285882998443959797381697387682938875957195978774369626899794382246897762959762669982978959878875639562129967985985664659979851528945623569993796757989378574989526878879918148686579868448788998138678572288568788899558675889649252966576898482838897619667667235799957966435988888757552797779847748736246819683695846382257668983591896175693669256276929899986358372798567997883957962893268723917366967547729639492965975997991777686579788696896967896698993867169687965973988593487547439585269888867479679579987974866538678949591746787928979393699897363636294877679914798898995836874545825177892569737982971376784453545415712999859843916828517388856882886976589886977923488967999197886836949947888453796968792537869835775568749659799554529436869767885377259561758897316879725668355988518299376395916777585697771654778993397885599665859986798793927138378775692737636959533659889867788894849483749269818773977581996989538736268765697274474394837716598951962689546286867759978997237825587887976472882618668568289538569854791573677883968744552899699799787979599258838996772391555978613268598764385778397272999595577267898665782684177698579954647499943995189477498529958839897788857896386779278169849663889917843979499996376527859446367664446885722839499798725895483925737915879556679679488688946687487748936453479566979798679394774776649898887556198894769559988476696475867496927635673799859964678866942579835235966885983877547794938972759957489218957575363739518867644895465279698769975726547486496278285746947457694728866899597991984982946466866348846778984599798619366633569879888597479569897239698599774589733695586996456529643869888154555963899982427658368488565567767494889872269748596365761989796867946594488748576894977686653867659798472879856868847486625247689633353984839578285963768759563875986872478946959634774979588597393684596686493655797966597253694441666874784945682941618388841876933969486423297979799324833545987872597385559989845995939876898997949968669996966894886264939895839981784997769649673985594489675566797887849596559687789699999654873788683289456999215596295655882886938874669795839289994966985489973946967295576535978743859887768797838581377949768744153989976886698127889888468737763963365545596757677397999445893597798796797953784849942768857415727799775664893875958962977777131414996994989289468495848567188384877597969879329939952965297929223559687477998553527876286952496684889676983738998889466466538888798394596689494788125878475686489769979696979974948629486658698375997787399637986617746993956464485736926794284897635899888599827645794762165888668639948586958665897856987989845959537153787837457956341784949996746778579487964366697567862346599979479497849987599989884979581659243598578475787883679579855957998799646457386659798835537967985829886769398555968679683873759885327987958783777575977952959758896647795841824682779876389999667387748476564615775393577476973596366753548393986595596687648972864839879858827854999787659593745794589869454599666923699579756479498949188445697559866779899689832777753887788886719486698233994949279876385589788776897179175645946956659466897964857838697935954973485978692665836797535594694499456536856417188388674798875828559995499989789899595264754766649996179883496995561568449678896885867251943869384198144495758879775373578669237648629433267966577973699885866569276976877495597867999953778899767389159798648999243797987895689563757985816659889696864788684689867774685988594796288788299878834469587887339277988698622938895974799493767967859987516296568456893559993499978877295795867966568754614887799786684898869372274659968969893689969776858277374374917928467698945856853928641769779788897774134837882664427387675647966994696987966898969982367445858959855588655656778835666684889288676798756932848994363385855785467989758437764476896986978679798978962979838193777472685757743678578975638255297986796989758218983767879297895695959574567974538696374865958697761698396665318689957375265279559696539462639294267986289967597919557696869297528981176661967232257966775589326873789928679999486956989846637944986246266892985896837788952479176774833975886988399458998427987415776795574469993289766359426858676879848787679794639998563774694788649891889475395999772862667969363569977267647785728793969885854374228591849612974654985577866283796237789786773479654633869983884869858658792857867932298969289897797477887766747875991579688759869574885765767468664999179789883262578684445979275594757159673691588373986968554979979832425668977682847648721867869999765556955369957566659568548729594865384927379588967288967459576799985629346927547433569824959945536695752857898389831286683536993576797837748682999859699994739757293946487987638946334998478855889753685684948475968684557895766937489227997767859468469729948459853964895965582846956868917992835844898924999995969868494527686692974337423164737574827986692599768988496861788918934578648877779999689985455665762622584847699684795986467559367673255846499279785758867169559363972365932899588894776575523894988646659279999654746522499685957578979797678777166797548757439598791579898894583797988387887386238267769768487886589959664585878376598459953598919298543273639579397143985398384855857397393449836857962897966898248997871967382978777676877765586677278667833254578886777729857675939569997597795339757777887977755895629455689726688943666347749339886886986948999878789996668797437288295759557295959872777387588628616894865796768955242858678996584596347986588876885878784998169936764943725948999944372895996258782768384586657357677799883981798658498278946469877575627889889392575787285745994596924347797994645654287777786794627887389337945484499626556819347772996976878645669935666694834999639897982857997679897996974998687849287443377862792484657581979484795969658698968478544581198279348969434538448829485696568285798936675669985973868959979967695989497414377928793475399456642265773989959899499527768866832951495656995629895464948574237676756576699869697966484947997686947588799454657985574878748888453987999944998963539869118596989457597577687864698937999679299689866469795825795658789949852959558367889947455679547937969829237479747964589665899975582945873569954976367895787284866869552895799879779196998769793896752884988968593459539454635887769886777489969885878178143778982696833712797659318559449389299369884698859485796883794455366249294989664597336989989766828246889736564988688887296699159687997865397717987728659984379727896959928957949992259658549797586576648978148788839698477753977967797538991875945983353968799553594286744977614944848683892865558396648584777498546788972446357689322258896982488548636979784438686624956649649766275875566636987447858868794669896744188885998789478599628997893629898835399849348745879319654336338998388689924689688877468686655624699952347916468674978554638786865686888583583698895183768543956961978889688939598386987373698489977264978935399763977817845578969699567529639577344959997651668746994727799989734847937867972953356968899376778826237694958786852938755489497767997968996775939788984648755171769867377986947329278977978749678876937984778689325454584875888289869845786437894868932999868795856888776278856765648898758435679846643975694899648895929656869596596293974684738633767292733897833399577897997552677258468644556687995967616762783621322678595658868959477775657751898876843946926384739556859986994494799459873358989995298898645767872888678676899997972685486497298797757597986785835883667699767959986448497784723841589395989595566578599319755899787366743867287777884692755762255949898779289678597787696898963575885739798899695796384777147623188523669555847763875664759897567878987689548319877889957374957757896855637977786149383796988558372546697836857681595996999549947577679813383463349987693986995783194249729866828865215359364956873867388679998878794949591595184185974964932776589669698897946282679549776989998858737798885973193596964367867797794995868679856768976985822438847859655894976564899486744996888989797442937864766795136184397985817647667748276297539146346949857389947636984989618667433456438656868746664686349589594498549747846548873758788894782673862346765984889486963868899178637795969996873997579474697979224175661638928979938654699384995694328298498829867959398874955182466899679876374758865984959659986368436989565397497445868936652879582759378297877626668254629134566432965956954562499986589576944475798377985418639492779775965688864797787773636499565896996695993789879888867694856674596689972968217297789997869581969784786589776799396645899778957614675945564167633679869769348532589876346699754597385896471267999376877865453868799648968999887679412459984786856899275567953669194997385797978299815594284768287637978752875344145759732898835785988545977959968579795155979665289926747669579136831946869668988974568598333798649656859692769459339988741775338287687529891496857778644743677793273837873785749687964588877945625836629878797269257297596924328892976913489993996657725176389568984849371498975156847599985176565187578977646469713893693896578887586721287892595967864999553646288487897689995867847974938771564397477465875899299456875999986975488965868913878269765978677877676733788367869583922766796653798299982998286572585247949336777795897468647347848776469666967699663767527279932988874567268986922687824594699868798967985858954747864784838259868887522862898473714942568797978772878888787889398999879594739274945424877356786578359769699828995989764899865938699777395853174394783968786624977899938889566879943463732522396298836595878797978936786769592957494588695169743545889568354976669385858729881663785996787864988522847872898656735976648545833391868886876488879986735773557946758976859579729846949976592663593896656998466364778956142654776678429785643887889257699654273772843659477583976946265765817977849738977437372983999955676688366594892386279578765886889661336932664829399197787967578738786646688977989938879826566718297771596788697587974778485387593955699387598657264533585679662593548745439878549791858776778749149688964965682886984869368676997869998794864455888668785977165647566558569243955394948353989396773783868488996917563789767799475987448669478345687775647977867265865599669299594979342284666967198879686699988899726945865582783985477798678797269438719882669476965787938868398869577997548928577879664864863667349979874754386598858583689856688381948993929979449543358948857986152964536768842489627753677784778149998296899999374655554488269186995832864971947666797859965757484846996958647997669845659188788267892338924877997666954739449999272549568623463786662738689679597899829735875666798647943179657885495667768887126766598879928878868667683798599483899668385952441365597799992379498238796995978826438672468923788942889598655485769869486847248937869695993897663546145583951997894974765785116957474861858766459699971897555948789845195998594729348556798824857787395955457967835976498999972722936797644997918899658783988646994764768357995854465883398656747689585687785996596938743572877775766992879993797979935444789858944997364875336177878562787669889977656128733146256775288665875886163862748633982635747978912464995584385834693769973765998793662885476698959579651992895666966869592488363949946765872889855698932976787987866768877699285997897469868862774946553483844779879993598652986498995634996898499659198672958886689799827627693527767923578266999839977985487658868239757348849966976995386387979467972189668956586587962959997668885786865899887156479784377962487829599898868984366348889835768532845466957675998376594786994885584897855887588956938697468638793452865793548788587538989474374698683675788599758587596756163639856978679638975479628676448439985593999884567518487874988479988988497669767818656397779748977997582949779583987893749254479849546995779886383238395467956877689846494781879969346824963669799542464983756761738276798763987892837476798577888969699469667944579763695476673993957385496737395675968857795958575579389648761897982939529411498798674247561775648363293989558898497896675945888246982859559699574383597336872867339597789799481979936499856873467698795484377387894649855743238895992854669952652423987987589374529444767324979979564826969664527989588439364768597552938984884785686166529944749677589174848396888964699787899967595374957974376683669447618686553694581835688486447842487862887239799739916497986678617334849957257549964585763795983989398847936385986253985778958226985415896969754938659684596775743565462898977527893365347838885857593762961897983952678798659667895779388475852859196566872984997867798796776554976397798289684657797895687176795542739876796737319777636559655579756883557987678996949886674668947318963966995289712474976767874549488779488975966539788953187634563877936286446972693868937774847565844642859659658981977653883999393474494495899977887769648564978783879493983535185879827688697776847886922951147694959996774447295779367598581885958177872736978484588394995759528987786527975954672664978377795678985452975493754758297591976476285669387458945376378828934589965477385669882957952557579825973787798419989965675695338697342598749546645939924676954796569836959616954588424959522678661373964567676946983343896898679966665298367776978817995424226977988798689633899274489551398784777698679965885949288868595911195645267468799955789557859469752818992488863447789498939725794949994868528299883988858396724875328758993592487918357439663868758574895845889778939435946878838679638642957975998385889497888862769746785579863647896697893396399875624376876645178456586662453684993499146665847786865862366577957566931898993784656855895489859984557498667599777348737764965783857982859563557629789855839899977536966992698568388794868996369482396936824814827998699477649798799752587969785955369884773918769179957699877895886828971668739375694997799649982454899867777549838968324397683896976569998569586726598642577985981187755326858498824958778195877568667577589988959947359846997488693869576744565498859998898988896577883665998377959696859758548529669819973386376996543818344869557294588965364792545796697682657845478617876777578965937886457912695447977678886599462929545597737352597597239797658982656698734676576557888637969179798394567264238657688778739537773114697934862727865548632499989967787864527798474774474616438654684998657593298578667799975479828299538583357488267697435659478986553587927498558839672748938665296799688825295887745878787638248753469688845295889857488148995987947544685969912792878995359875782858989991859574773973999914945788859689798936576883837467623629755547642374765895559655785377794585888865694612479327488495465689999538254699784672656387747929326848735492896869682676899397588246759692685752334963873788766849486563529796755836569886739928877295784186846324837486398878599997749889688269969496929895267795865379963997677636895799591527894996879776367619966688796297348845998395694786965294915288986797645437765768215982886578946356573888351588966739358862598994136399158957953786794228946463755468964967686283976563336785555596389755753682988791689694494168884839998684983888847779792789957943967939784987288577994586768688626973784989999775884658679589314997568438768773768486676799949978664669758988554677779696918538461991997926689617897365899882387659999767897715326968594691965927369556469835757921569372957958665633999347537796664548999798575949976788488346559585376838888749178892438756792499849975847866779585299496366878356968463987893569684992745299665588598978768788975938958985579977662443798867679697577858256477961976881798698367948588966969725578179629688593739897289579686148262995397597494889695377689267437867785494768819596589837286958785598527596384778891548891456974745778373944699679823426869983858487847267997939987998555798598876442674577698989368537859872797891496941959883922479839299348671573952939488887337562236397999939484775773658397991396645691778873789774995953937395943883874682873882579697897998956268795336792657949766389676936717986149969933955874589595643574875493969639485844888788368979849936256892541894468782957735929599362984553645794297747795513648656975679575869698959874785738676189486862666383989799759696758492675874596857774
374454422711754425631527514116154122458351741526172475355283273523732361716561625146651932122441854155346675312412315266153321125141116255368192342416234441621661212224231643266551321142326827641392732714463223715213542714558342762234267221933146651415327356421334254252789512244227185518243521137577613755555774827191738441378132475445323244721235325136131261325321346452741932312837354144576551751811222411438831374525631152413647261484143573163231384164342111364454532221722923614272333922174251165524431137238112511117514127144141444189522334213911827431263481381241221663271314361221173121337617415453152615191264313562183444311216544255824868524811213328423645615187213211442473487126322417934221395233854721144221638387685561561118783413442326216721314261125392231562216331184125271742458382425223345612821376242326219444424141421323668491721734521141847131256439635121142172237161453413841213551234525316114633865413526432348343537618324231664324166333152361144264352839534553134151831113258787212522693241436176214912117473513811643333249149442687137561249718346331333645352351212372231153958445613335115983561334214231412623564672441284124594324145422423515222121184831125112736425412166114334327542542534581641717921432512742866342373511731931414514311167262565123512175463745315322353112411261224447433782263723336159146223142918236264466766523377126635374122734345125221919116321217333314613713362314672336813243162121615175216345123835413255634242154444115134312344321675824532316125255964435226663152176621582218166216462822271531278862242814693211534421681148359582133415462372514633412115112155621212326162442191123419324257454424111122245242153283123632413438777213414513612451445463572563641172732782563322224662741121433561514744227222716254424133412241771132341171521114321845515111613211811612276372281155837624434473387123342234483342456313415144123743636221223341414543313444471928944421245453711121227436655112341264328822241132332168726633334622232252861212542561157485461113314133412121751164438676555213434887723464821582431613317544412444589515674131514622913443237129531563125216332215211113741836761412612351784114921462222385311943513352112655141729262246328611631731292855477156336745227184315274316345162321876414222234292511861553154284421113441141565563443122131562531134433174524766147768257422431313421563532311824864144463524633812251811132613337628224713652153391627613714167111464711342353273474838482332212536323112456322568132862515332919341862454677832959322434617635687414215352734141124611615122454443241511572515374145159334272253217377162512413395161722216211894252782123355663254152341722415415229283131651135325479442324163143338542886331463411414132326633132323223126253533424166241532871424273222576522147532232412576425212433386151524234231611834125222143375311511265734335426116121342243356161164698126234112622476538756514852337259628154216433355514166666333333353153353241444324313341256416187176644246662538421511124141617115425244564321646445282125175411911315534535111173676274646713442727432125827451225147333145562355122413776454257114343455233353456925123345935223361443374624648312526933764846515351546183611923581634593766252351222563445328459111214746251521565612723138473778912461363522149343623375151111516163423172712512322741351761414163111722243315352822751523342215436651273311265861776426441127137228733556412573953682174216266142421274364432584557315131213423481432614616436526352721162532517234368769181144151182528366624937442233325416132272356623355261113526825514623267128411213331216174328621113237133447112222141214541654228324514422534182521374322432321379519322843634186125519115146111516211151943442533354211244313777655234629574159122317544141236133144327455417893531477824315157351692285153151912311143635331366117242621138331382132564457246373677314333138348716685455623612174223363264214544431515422411368184666124571172227363431112462284186613422467512466257732174111163368261142115742765184544237324721642251465453737362726913523815184694332616676183641232536525445511234742531472771133453173953714926215314842453494233147647566434433112111132551454893713321121125442131465425131713614141311655544213643643882239126451684245641152262293354554622364681436713324328144123142121211915573452422746211667132461651516425561821461224822277342172113352333142646621315342532232441536427651436145437946615615647214131831153153436513131413112223321823714311123292344153252621483532652961111382123213637117116476811127441764151333175322167546773152741878442435522361163378431511346132339514115323452226933721224193176991451515133421412446415325827614126112251221411414514134214246562455367831554384211636432515331136123166422433334583912683261831231342628594115323138423535651222382364225231342816732331443651254325716432219141181217211121411275252153123181326392792134533716111424351155218674727467246651211716665332516431223125134711321822252132768122335428334371112451332313443225726433413225121574566555655222124256425129732211162322242955332336225342161224876211413731358317771663343241753352213814112882452871431313741376112252793643293112631231336161112645251333214256332134436244221181348123518416221644787118313315151181383646333446475153211414116156385525276383136256615487417762562124223481115165645488417236435367554793753427415422737123315262184241345517556412527382362961287962624433523341516457833186414258316644554612115441131248489316721155522324137329511144346288471772554114291372113324931232516312744183442841412281235215673415251151462632143133512225323311779164944111111112385365348921114843325553692174523845324111343621552532431322121552142314234542513325121662241177512195145112532123433333564419857522144212345238282431442843553721316474653421325436225343255231312432313182461332421221341417581356171296341151643111751237126724214825653325115571171282342472246712216382515763252127212332115381484194161741356713223287832642526777645571546925222584327124123255311651243232332533119322222454514694515763311319124232441434341246252422784366336137671221582572611112211161722661454572812326169442342472162813897211321314275259152443326242342213114344352155221426425311443248335227755561314262353285283142142385153262431352121623814254451867264357119784428267195331222327932622415111623434551135117221615414184477443432483653536326513732144721245646264112466111615423259221464617423371151384414484618268143221882225945257223532164454351226472135918312214243211515262413114445672234731385111771544352311577671311315336953513261545471624132451131336114211641433233323252664232562241115738117622371712853911268252555456612217325234622244541158122737115311231945133343551311261532635616455612223524214164312212553222154362287238642482313138121233119323324552453754513154345522455111271366856126511424313613728411332215725444382194416181522672222313382472728223692142428934152823121442672141741673431285257773536238235526971512823655128254722111171185145216433442121668522154286562881982391252422528311363127337111568267581274426325689449124336421365351133821415518341146953837831294217878211322533211232321815272235252116625622246827572118272454375611461645411644513321116465233143131454436462113137348953145289258146716622522713645125122731512435143776342137238814374637121672131623343187211414443443451532421476518452746162281328862218262831473712251213521511265635421145231576743359311971125471851273354118529186411228246823132353746238276313363157572154284172118281577551263627465161328133141353114224616963242766264174242444549522651164213326252552662427253161125832121122787431517633234614348327355833114116113126515441743413634831532143247753146811423291271366362115572832275142232355133954652536421381221652241211122124435147242121414337163255333431755119384424631249113555341343158224391131232924153148254151111924213111162376136923358232344813952727461134252444115542765433165133662411311128642322637137214243574953143211382431621442316314532421122614511361125951565214742458236553317152841463379462237523612966124134261364537114744864644113651313516323345715225322333173347213271861341514531151273356364232218131148273423223653963123145731413452277245233212463684224321333453416365132135137513572334274421551361413336454577816742544512186824221673446252434132485122748633617976593174245783311217411431431226537613764351672189415323231113652442534331662132657314435646761152513142921647314452612611355135445361765556541214224546225443477214793144737482121235224852541578162152123419124813517431112616415841334132242211633143311518386482426154421268127416318131793558227382375974361435326126175275232411713112118344153122173379311665211133213512585331224567544175231374133241717575515111336158454242237242111762341141651276729521154245143628553859344762618155318246126662427611331315791359335645323854437523256413211232925415851333311126323615212141691871112127537673123148792854338535434162179152163153321333393343417662534121478333222634241143616221532158111476118522138252664284142324421711444163511293331335252713354331532153272335523346361611341385473132434632143511472812413244221143511323852134522812273844852438431264512313225361131829298363525733134331524462731116383621282832111412566632183121152264668126254131112133272417552113523534427933563433512711517783341224228411136132113441139326172513313536622565143632594164216432273412111953387452373675139416515327133252363215223154721331713653532641377523331131521444764363561244172166429434474526521351541519456828581233245321521161514664143535963244235534443891731637152421111531227213718134247147631473714345515474215478231132127257114676635856154645667382435124141143255382162765273337451336715252463217213122517146425441811332634221611261131341562558142623417429213441684518222764122575256617523583524732253271836622456852631428131415646457424451324434515448833921712625136171281131689274242241161754712393811433762113741467194183761271137247522635157326251318342347432123823421273524218672111854415772132165547717117127338443917443754363412251546623214153315315531627647221117371218642672253535457181261226423633422855818112214254437426414472381635233228931562362127359842415236623647254743641651493315841417221353112524135642425237165781443281327667112641462231312486116221633441117441581119424526462431133254781713244722114122522443536544253435231341634162539143715165927561712516126434728326558842644554114464257232974266247132841163215542661675444514665576122237173244732632611623538723647111235282159112514224219216211616215126213184132817272255392225591411742183136174162715461519486351867414885325311544137121648152742543143926178222833135182541426611112922173511273652533146133799112135781118454537831152416812327638552714121355373172611629315438182152242277336221644326447315176192512277416224513283354121173424229192824115396111335264413653314245354242122473963755441126432452313612561318425127566644234374115341265458824441141253426115121131683883921314214435123213714121437123327173113226111674693614152121262143611623172424121182114669314554216191522317627539921652258471495141961252218741332257412125752235257424522332981171123476662372227777111412412754626835113128682222235612618766417153668419562732145613573636414817324433813918424572412283448211498144551115715143644221593136558513423411393362118452544941425865138242163166355147537423453156544621157851821323281148432244335415111551224234818511741177323543113126111379351422218581157131116325224623376229121311568523111626742621612872341855222323727556423669251532493114477132463212625274373155312216563152321241425563241885771185126977622614851454461138222164238115634322548573175123216621212487258581266112226538292232326345316128342331728273291142335783927513632434438426116114541358623313132443423424253174321326233352431616262672712531325156942561594731336266361235535811669218351661175245525832452443253315527281592641512115712518132514961531836235633131711741264183132525262613862531713614355711718135374422131331226127173322853113643216242188741273161635743744414263614242126714131726437116111262143291152754251642422316141591336495121151934545555345122443324311232176428334823433761224641157212524531231853971514362332252333535672655331623143362162162712192374232812785124125521222733433521324841514251532563411221344216326422635148352121354334688121223233511141397144536223661156332367432211175119253628349123511324245365124313312221527431222612668644418524118886335322466585514178712212146121461421697516235642143515263412311199255132631125325333829631211164113742648739614776176351343255251124953462141121115247121218347334411631163524551122341564425554565214889221222253181616522411841314126133222427364416414348211543313541122442225113116511886414567226662323524291221325453674641531361746552111141156231236775772614131477315321278323265845871631526472415313643929725373328213625836249325215242612163116114511313657513172613784412382313142414121113128452421261316341317843641263221641116521174324955572614311225132234412112325425128356265114321133115211127152337212571953194218335341522512352427158322131353228373247464751214146116615431221714113227732447522613247232621231333121323234185247521233246154111341912631313218416622142446331282119884681433342462235524483227122647342354333118267154831622111332716113573431144152413212721944123712447374312232294625261557286274238112883522122151826254346313258372321267625565223526687212492317426145123132337374163635116235143532213414413621112945769325272227657562175261117644147932362724336549332232826153231132363842365563153267334426625441221332137322631142419512231312152543842331961443131329417453812443321154484224272121341242231175155168672146511125336755316233314312424433373234123333412459752133445132418354651741315337172434612862331322234215536345614224422614113266332231946231951513158236441215236623215646524722413512527378667612865454835131543213765314154951453534351324326123428243264671653413372161121822872628235623262312151421234154723136312164311424237641486145621754447163653222511213111215536342711185733363721331245413423437419566839241322241121144566663745215332212811481248721227113826111153242214522471774327281737321348351261462182316773114128115337329675743465221641325513613156567313175378464142114223642552546511113342154337327534434229257535147141218412142283615512324773111563162375813144442987337653215531232611592651622565446421352823231523242421974517466433922411366514646652125484621128712211334155119827815512152744664154371188546546217211128345142132834554426331383424561323424411149273295226742154111953337472752343261133243326241344241237131167623683222132424294934662563455743512726122512564151452115465343324123443162921731731317814481542225641424122157532637371233214358247635462231355515117331642481472112312221142462159324314137222136753355593256342222636372591352633841232214564445843828626223321143231346661151131321527313154214152336645417312521422117146313471615255291457134268342413555648142533341186515662762624235183133122862223221118519165141775515732227578227616542616327343512521422137312127249798252485254174112312464761122381126317135621446333536327118536223711853134331752578224382521713531255366237221774712225386493811152324212626234313242213156174355151132131434224131869712733663171541561623283731324463244843115452243535323264363626343412453242132395642252183541561413619165254461715766552212251266544667635344235441267232711324277641215332624662527134431514645143673911826231312172513394733232215561162111423634463213233135737333611523337123642622224241325111213132516251391241847112424213751442444616224533614253141152341841959176133325713512611182114443113859277651712171851526313432316771432214212475247131125213756523269442725122145278123611733136153416378246115317245993342441644844881362515851422352172174556364316125126191173251673327247213151632364651222617224327466214411132116266837251165411892722455812215463132214367613526156215316355251491913174984344426431271453121628211125351411654281311523224436122132715367313257641416224635641533365354817292124463161443516432356233829123333138113117863554694427132715741362928273342177345136728737451395176373436433167525624835532271432322243214212136112221854479554578325131633136865141538252561421463339611936846946134454427132651366112142112481536483265452234465529715614736343621331163822764318134421266815525525121214486284843351255245548136331515119372238939141143333676714152167324728121121272215713613674341587521432627858151524326733896244271413341565122111611248273526264178276895413265155684571126417851128912722121954351182584212391312211391423247224316524223925118322221853114544161411361632117111257123617264513133132322642171351692543474412526449322411363371142661561514952923143525362327387851332432721214725384315232612824243721127394291851376115323332523411161257548626481746211833134511156137226336765263237136132425151534522724452237332523645123125928221132217115124663453592722762122317664321234223241569131114146262138174211441433224168431125273126332442552233322333822546811731265543477267753213443122533261381455612413262423121116355476512692364311256136716511172525117252459586316425263521416125323958538353716733254814953443686645171234718311371293634831319336862162226124121372723527524741841248648123212413231123351152172837174261415114415528624338652247151834216431431311381164123322113231213148342117446225732636389224181867887414851583441282455311765516323453444124161236884571347711571453411211383162462814741361684221547413653525461532314122749136331116722242317514248152363135138233152496356152213312453561254123721446532224225435154134112551616222239721732425261161313316254223674525434356425822494673312165785115433214657412647842323335324752115532375253862641674873233236855131814543231712455322117227251634725883111461813535688122652241166815331515112148821555115128742712457762986321262512292523225316232551145324311531627433243844633374763434831435221322434136671851681156173134772413622546365233313114532312633478366222224243323375133624523426161252261771245457314373464321224211874354362531453866253311213624146431273234715615568341621912956715445111168116242911423232462812233644536228614234447554865321614514343463352414518124498555652113218941217161511143331264442185511222247342261221627241871274272261564232545532243121232622144521282774223134513956641412273321771352427321731281612652466521522226457217453613852225234183634231822551134623152833662364374151565232843241471115335227111632135123433562474525323231634332274425442364189633353111134344412116426315613163651121345421345263141642625134554324127753395457152719814211417712411135421921271637517433423142112224331467312271235113337116642621272617175324554442245249538261622776111155426525746824341465432176357518655322462442613641143411386281541731324415123713154126432214293512812732549121412175454212793854422482151354528833712696315312132835331156325423142353423262324941551382414114412751121113525525242546313449493642173242111341611422433235111589121551328212458213311126544131931641616561314411912211323943229112222322654126832614354972662222523152316236611212561823223113311165145422786556555346326379411216614331331252216323323461743742313471524513246633263684311531624742814555717214491255413417418425221741671543833132372112218243631616177516118741263727341562544123552246862225613335423131225221215126133333724322912224721122522573132212341444417885732413222534448522311244312721675332112247241267512557238321276344124232131435616212371636136842163473663126151331313256424611448313522821162561932114176311414216351446125316276221336375313285452113313535121235651221152411121672812362326134168155275912334358223475511711426132311213121274317858131144443336421471652319381163331318463283231145155426123111654532212515433388482416311113356128328563635317321321516111326223815424432464122523275162197418283371264214511635381333141862415742641387813323141665312314223316711576473133365641495537532172534222414512313245429741154151514227353317165369422834651171462625221616223216525335424621818255611145753324585456337532244153211544122392695111733112274813742236252863311174362137164433457211257371625163411114111821254357341869452143422341341595211371132149131662776414172132714712178464666563422432274145942831133213211713315871662223641181122261133827265521215443112517565357727275624611711456126736611628512511222471118241424221115152411579125141874224527312258344343325356236555413462222232618722434133352415283341388786133262118153311715337417324326641112223318322222542224132797436994151431173122434514124561555214778133227475128424354511438432476943112469226326222775332312143241233422142115443131643112428332323114132461424567533542139446325158752575225633467655523842563221663244311497914724411227145538323421742256381571133323361118343199162583427141524237524512416111334522731631151122163456124622248154131421421254363572165428461533375122581238113724741164163443128332122532525425971316321534712232532427314311614258731873137212956531483232331176238334228641131514875337739663367116844622151365223457111121117652334831553378575186154111176235144412936585151344421523412133532323331369451517117251521581413112113922133372511133322153322721175513894165814274433113337333427451364133249961231228642373211612441113541322711645256477124384262531154223225124211215511146194623433426663163223435823774744631417272212283531114132875461252124441217118211233184215125421452742128144326323834122252321515555521561513554665653241123563313475345511471124332232437543266773292112334112627136845221156422616475222311555171752535262642215217371445477317533961234312213742217543843131266115378252242646572283533142822342265125464771213547646325162333212531225221113121146233822714416443658524358162161137442578322121772824426712315323127613125174111233531214184744853173132347163341141651338656643321211834851831151311232839665493441132221433121435251728443528569713441346911532161339433661492324832911249511818422256315153722412314566935231146725613133235247399423591227172437714117114513221442637111163142117454226562535112172233132311467321241168625175153417422127556468636545125251353284214645237165215541743533863411268614612113252415624255431673123335238253335142681117744818411143212611317761531313451572454111593235545386541127414124262985743364236285241322446313314111277121666646221523232926535283813733627715551272315125332132463552512112258244941338712347424424872423356674378333123198227826444413411156472379861621433831447742324413252221353353322822325525134575311217711142543112744143785222162764576723655235138531231864725334253441422118374362466313454763121117627452533811262265183159642197155641611161525465433382345336643462332114227271485273212468253254451141123842573323722115212734411463212462556482454251632321882231471232763131651522647365361132257144253736111812521546361821727556132462732742626353363347816731831226581171915148681115322513613732236174425434861627262115762252247532583362288222513543154516311866382522342131515372517351811144513341132481172443146186558414466121521152526654516663524271613221252521126234325512534524724431464773328123324917962429331874421642151365313143145111275217242725386213183966446664168271264742112125526236411315724534273128521342342433628131526163417782533127414315312217161787462946514576611554551633452612321311242311464423551938227723254219162111149322145521112367322314167713143734636774423771538231915224132514241616122532975228551211243727762221571424211112115171154261123521131541253171427521445632311521734111565129114443418491761146115261244123676244432313275634836241181233227143174555337654274673343147282672241332317361226253831136244614833186661887227542341495312592517411146692214232447224522251441843121421116224154678581164265141262122612321323534965185345744178315156422316641111218165232511114132441313345413146312376214135222542221882672343636747255853531348146115411137166122256313323163134731486347513356551323744156144264671257243213315422124166943744223451755144766251462351275283927312127111245227413361162251387122645517471141653613153662511551235233253151766214118856623423759116215732423116584222235335252151139513455458835991385189341251612211237114212213146881241242115312333927365352565112251366511625534321737257716122661438364525411635656352215156152861421334472448521323623145128117843886428515366442162423743338232223331443468612714756664447337223521166517235714154581759713121711211275865361253315422181731524741525514661351234351235642679811581116495387124231357316337121241555652554122423233532146338443166712451372311452778416226245632261335495343262361352554234772122554614242644463438233311367635521312521556361396257734615373134256553652111546213242356626281145351524491814526433872553393775346381412281661212311537365292233442364112633412712236243634323162815421528937716212713235325416243162447111285622554411434126652118145197251353331113532215451357367511811424342442712481732212314422281215734726146612573345121168661521362353343631432285126611811737371323617824643144313412191698126331284342543634514343833252113389733234643712451317756266661263436431117334679717313529243142153255742315538763125413461243749411782661114454354651238371252375485417631253322226244626537686715412313651784342173273284341124216265531456528343752524264117712651111644213441645131755413467211665614871362195356526643326151134222152318114973316443213157225524654262588253754347156292725377462213176584132173942313556414122466228634925111782351111272251521315431161113319782246717371278437464313262614413116124632845185415452824411464469361622533144264538933613438217426411363152214313115322331751652634343421168111238628812754282211311111141533431223222226215353231841414244134133241121394435512164323178512711421156223214135543812917723431352236464862642434138537432625231251242137653434124484644271435284646114135134341251362124569154368621322633126262745154424945355466379531121174149111343634287363361416353315323554313522548132414511512175111255166696437124613351471511114442332347315113682427644217171633135561673471387419151611274722643852562254163652763121123634439125145983465927521493443535642864925148431722215346428486552725677895336611121123655343543836546527328339761491244131128944752266614741625821523453287122312325347672443642218411164611112125121143113567283228112232625449615527316345112923327734144853493327412332184423143347215862386143324122226211528622122655568851545147425271411736381315851835173323981312172675168154311883351423313516541774928514632168153342234315373331124557322671264541811234296294147585156671617284238724224464831131436362146137698211371211334231121131111631381526412158583212374333163736536521258424377921171425232662331566117815333421552833836444825423315235365748831135221952111713724873441235124688885231735331186332463269624192558493373522216522942544213313122124314314955843857131112217711545444112237531711741474211142583923113333843231214418271384444113236622186224533167173141566587422134541522653723235175313236124667455881326349382751414333367522161237149352545161621615452751153361562451111316224631278131413512616342111224411513444552431256511125334544718142361246173155345887715514521612625277143258745132146258111888263135515247433316151372656221541461192748152342426423268215134121341271452114224723581522676613334753113331659311315316215135125745951121414245433312429421162231537861847134273142433452222153496112252175414323111552141223226142331375537491142565944249662233462728313634475125323114272117444171523936831522255116124822216565825252214853322154646223682469164352211985362421853236255242533692111668273511515244934418122731925135216167323414521191211937133224325266341992484482313771315273671143725535521243147143671215511531533535365212435181233114126555325112524236432783241411321165243256382312522165151154423112514133483217213732717135271222343164822148682725711648125322312413158792643711253864193153314827321145414654326241431467231768378474233414322185455663681611562385114813522252389217612431334468762142315841313345671618125445511352633447245618353945351125662423312372321332541214434333485251251314728163124453332281112311329243516956573455132314113464115126574454125625323123513254413874182522558572471511412227779481368373218521114233362121328162427342614429762123431111422242268159422611476476371632553166125333718843131322253411842352915783697327251251235241561411488157851624562344431512132588722312223367391786623961343483172856652641264322366143248645267312664341234685411943142215124734345617823265251795616923424772734253364161211492526525311361417224571123431821562252641162251742741811341214355272318652252155617137111324522617111355324125112392112111316131131217535545227621344162111342553344835757173647226631231687221131572313516272129648267724845647225313231132319143775765295715245162344138711363712617312638389522728421127378553332353443155421441312652327514355538916863251744151354521684251631429652692847142174712457168233751211571411714543324831661753431162642246221129323232171134396241514441233432132492948172462362719464223193141444321381126335463422824119113545452636242881115496583655216232233134463213381873471624122464221524136414272827715814141413661325283733164629113122453359426132666221554625312114443311752513284681252424648562118541641325258712221221341155232544513115521326553165915754412447155412617127964124216314423315252431751522324185453334636265261331572816147534353633125418518274611722426511167211126484332534119645712126431123154372395193764821172234244128615525835444724345345336213486382461613221721134138244337255367232632272622145133442614117413471111413527121343693531245154262137267343136552415267312361227527151714665631112227154226415319212157411414452363313713976555621614957811746811322533474881332245746323422441525463531421131686713783227412486253226142837346117413313452316214651412432247516724842374426473853236275131266292126316413423182522423276685229577322157213543472133762544146221863133514355233763312457152142742164613713812178141415444266646463118435261233712284113126221173216464625436938838512585442319421224426232626561722313211679515878666326641511564462574277623352167663431431192221252332362577413111251341342141154353615366123262142912713822571425192411187323369742441324773443121751141561812374521244111451115418521181437711675271454275461334316976531156114424266631323434262158454133528761781114112811545813126155168751471484263324386172282212318132574674462116111526142332115227255373122122319181282156671231231223535469281176621416116848112351145454132261427322536366322432616345914511137521345332632418873311742164675352144873364634316535344832241612443541226612551863211932322113231322772312627117655417333559113313226142312231371263155514439922118335357414273936472135376443235487571165954424113121612711233632354121367854763226152611265882144132398154221252421571861747514234229391271451422544512153267155321434233237855355611224732322511664273111643223433421243413756298242667124446114143729213681851821193421531128924285561225348358321114612314331455565438562112711611352311422425826374348123527234116393531341121118761157225326128326116321613161743266511418743231232763382322547861121348766562411183673411438311251627167348721622657571625717435353825343621248772935231523323322121561379311545519426333163724742313325251231144331113448333124444324123282445527381621769684254333361324941133331418238432141541485612632569831453122135416212163235244363712157161763155184465242733435148758162436237371223537253224315256442842734121322335336113362328561556338193185423425834636521113321533214151312762154227231215124847215311429175344544583233743343412381845431485622462711162721215615284332913323132257254778282414656353723421184426591413584343882146117287447522152161654135631312245266611165355133337236374432547728215182841472222312233346612635424341145747451753774513326667442536254433344312552516263871428214744282172335254275328248815345512516225753581541443441353312211456825462315333872217415811241124161515873211454456468252511152432586627314117571142834521316245834418425751514131632453583323754329354411282516413166731434311137154762321232126233266134235242342422675748553443361223218411343524117651366624326826153271324385346994413694521614137683333443362131218113561138355764131735125782921143131553112135323853363318634121233542811361262365223843241211331443664562257233768315473356112423655541643284623586265127435192135633216215373342111166225933154575223513627223161551221652655764513243232271122464634721516352187331522133471713227561651254412733132152334615343461438133113622111366544133112794223331271247213631161121131217532332644636336642373363174285982861222734251334416628683881211511181343367422493212325325223371579122217154231383671165142143874883441112218263211565615434112552523474427417134214458245541542436813421253444711228311871625233149123321566754515121124272481546322424224226175112483971236852236322113414334313513123135182192291526378152292166115273153514172123228331211863353323555243231312942655411451363122324462713171429241942184526232612686116413463277714547829142721242811114562361722432351696211148212418463641729143147467331387121648123227141412218474432232112222556523346732732683755521313613415724322651114646115131411245677395118764423722215556328134761342611313681527343252342127583812373412622761115175414321627153424233362156419143641252644425776944512631173117324135378318327154136583236222372162965411421233442644262514132851114564114432611271374633164212531977837238274745332336258293262141717515345532131234142312261119151276222362875454215248215344223362114751627413461658428623787411644152545123136727231763863321195493145597218534833541237111271121361715514735354113282147141826259117922622243483179238553642667161672957321153432441116825125224229231322632437257617168415431465665267116127768332152131332241511124311333692146512224442443675141477751668391422162896516935521157312243221437351142144442213162335252243643245435982111422233323761452368611511712551336542232166743354412217374222321971731841312181155312521139455116672793731227365532653115324111644916169574852361947413266562534167359662484531353333366712742574731677865344496231521311837412172264131112212243325134153721615511453656215315426117611518212248643351211743214273423334222331524651386165322538911861221234432163375564162515871542951312512112321185514467252266232162983434522625111575921162323459467688163782622332111251111681513291422132665841711855663212143733635213124474683363264522134234243635211558227122147724755173234547311222722834722425156156111546336221721424337148712764442811431581262422554235143551123295417186271724381322363573427418132575733417723276311112523446235343223635561711112113514645175442551223242431666277773181115281464214734441412152127621116241323232516345286121212437453391657257358214163232497431786111863532192812313311731614287326851392725626261362221542712443571411573681755739117165497664135493167856222635174483411524642324965546178912524443932255171462267453241619155642212331722833536182282641355119341442241336428234183422374313571437432441253283581712615148311346216634342532161926213541343341441562911384561416356313583142191452131434243848494694632482571262332721323621821612112154571451113265311512314558911725112625123443621425347927236483341646316357642356886813312134511555612127465381642488742219227613121212452432831363353776997522227457264334175343243412156372225413434387232373132173145384362415752255514931462626255132343212552126411233211641629211246231432317175334241114694762773622224134241234275842243553231432363515652272253533443581428335712291423516325132276384381235434522116162434114432111321533422666684675557127712831711431847621421144445174811138521541674411834662351221727851517661221621126115133734465751547713121212353261448727247113912521461413244571157661144344614372732177814331782212214167852342622521213172573245621712263337243344154533744631332163232881632111525472341184582432834665321426527747327812645313213545711722953361963545534424353224444858919471453114215154362615197615591516151147316158166222631673248124672186525125356711233535337215747261565741924347233436471217224676117611136111413632621219218437352111325433634215312232618452252142332843274412531752213114331395123386126698462847123846177373797731461131525536585525875426223362461245482435563245216926514771824311261521321527415335174671248136249453843626415631254121145331228334531482315235515751261545162336372122448654411511553452115753142833246613123132128143336438364617672422155213615433116333654114234751421112127432188354362624351557352337246343123536216633125135126565384154396514113145252813759531252423135733632121342345355616273115472855113331811332452339131411171676321239623324252133833333143555341448451221249282414591216723374412446255233916647522111412322422435342413123724262533481551141356826231111613411129811235512364225751445442237553744336521532496515378265166333111244688311293811323214422629253563562163758643783223443252882751522381168526222215661994973211183584332473714222173193712332323822673121924983537447252416233634822446211631632945643122971315116572111679219318224555551456342455218244421292873432283433412215513316285626842234725314553415323435184214215457268212459661111143316623564427321322741133117255252222544112651644723378622244172252575663224473154251111363366185256532215293715434573456329716171417135853126531754641265724562246125215252141143519433562483443671427565644171215563233245126411514181439421642232831522726312566445917345152268351517243477322132231162162131239454156141222292255163536518421516372373441227162174411345234115736978233455111466756715275373363155311331352331912323447322418813613261912887762311641423782613363538326111121342845635415247231255354522134617411262381234211552433344631335111455361423649712469261432455315133883114315299123563321371155321224244111447623613356611151623241621224423332281711376442322153322242364937164437261621953884172164631213793482759467441115164181327116634645435126513171241431331433255432212231654253334558654165229533151473544645346238553115211212612132411354464954627315485172142495143214217311464243224312552266773561461263256151833221364216449212515513462614287747185831733315443283587451281214713515224229115537465745314836472929168367211362225134115114225217131212413431241476534129736456414234125421394652536186384118121624214449423783333635142423474774414215311433733911211532128631866863674826771292542138219352451123563112742655562111421433164763538174443351844318123522533151294839131132573967644422314618241282537347321554213351116815224257329211819713443583134817619132672279621373214711359424956365641242337142439123613524213131125364125114449418534242545214354554164422247422521123261627325359625553147222131538411779674115312637113544133771218315339334223344727568113713423316873733576326754322225183227144232324833222312227171157728223413532526353542111324212124213829151615443494315834262445284221341135212548557721811661441533555518511133242241377326243343316154142615255444621243466233534585416161183264634214653511943671421216214372331142729291331562264717223221423271655164462215231752447562415554241181594247641123611752235513322235418973873243113393466522243132311236412674815215182242238619193231412731967134335366496442141156243432852632133311924153252145152224611167187153536266134393435112212542237314521723221323312142813493156434516521112227231215153682161563752331412982141314442145227121714144728731366668642439328117562117221277274126765941143626511125342884823151325124251341335153128212152164434412145313135437414513566335554172225452585122362361212246212632354563216425267154216115853114531432125835252245323754423511521313361934576441343331653223732142843324644142173112584214521516235431431811236151833119469537116563255523265411641481112315654356766883415182242631611267671252167441222745514466611661561565385324596764155772487523621215256866123682219321548768331152335111554361316413163254497152211697221312635444255371176344882241294413212144576263457146153374474217178529417114421334471411531856611223426521122243417324673545496231236523234741444391141827111332183171272291828231142531316741447215111732635123552434336745491127564522622649341291656464572261221315316131252454215144466644513172431445193553315531221332442328364412253232617179832362721247653424436245126522122671137211553215781817329163312625626136555213843761643141711331216726241211171311642413113541621411115115842826911828212453174791533276823954123572321621316241252367465551132444222513786323426255475181434138511121313256753672522219136446445943471542444383665186653133775234436332251727651515922185151744123952274114711125345565122522231112243134444221434643831545246543264115142132154423124234366313143213352253131643625553157123913446782672121671214571333426525818314375642119643434355432412628786626851215131152355693452851264324234312936541181337565451131527711446773363622364244226224727114561173657134778743115482713151167226141143127452553511425651433166436193655224565533134736411435455361166422332423714121456811341225481163461353431292658324471413634811391325333223262714462252114715332786295356212112242661113415315361314258592615141436363226117625711242411335346141327311362277324652216461253491287454322432315161917132455222653254335167136541876219611541252224351234429116314321348562811621122816154411431194624145115771352474224442819127163865278322423417462872552183511153318652314858211498253232481414132111552851362761444111562354113718133711126242464326659512327218522553363142267936718845741738172241424764363372535445252254344211134457174331116133351163141322923136658687112541643114155165823363616252782642926419417313246131613652534118563612352123232646322311152151294143211725813584265347322147565111481319636334164211224223452312211131561622413538631155712656363466357233242333171131213277141323812328235653464564753365126351831462111768733142224888516661718572113191846613231473251152423256353115744621627463145745943331712264232141593116341213233553213254461413122143625361214313541424822231252365691541124336849323821327767653754681132255541353313237144364376273345452773841218456262243152243645233111271154315184573567763331633511515726113149452262815142712161214751561115557821183635314523363118522464366745334111523748257681237863222213926812253422527597146224452477441224444412773275921564441323971314321681153171334414671232856319312323362313131111923571343391123315723411514222311182537262522564222136261212572314372864686175211213791254145752173175311511241196112161658951236161182224745341358121531441741111485511779533551135242613437211136156127248411281313251255525624382534521916641355536413373352341333383853512345816616321114415323185114435416555198124522173422724712354561158513373248636772364334113124515163126261223191141612972483481656962238292124187445715752363289425441393214614278115231542274742671733561631225141723448513133223145265426616144224723425413366774165232725211551325214121445264173521313323841259646145612191214721622487614167843635242664363166731614382212222465345461227511715178566216638534333342222827313323523131243434211931542614145341182211322576474388463174268184331323122126214123476422573251428774562826321124287422725337645846353723181144243383347353285413412363421524148481353662489264123422672243415115565234734611644225714642117125726141311665441315342434989539234182233368416359129616132167416312236621455321511334779265214434113256155414371273524513315542476813346542223112524493749221622137544459132565352635326723152119553211351563763427324663323811521535156383381262384131435646171211415126531447644535165637333554713882831155328611495651164593812211443422433734248272389216155231113625846211413741627755522123124814425815542522221234135296392644733144254253316229841713363426621363561171332586312313136851746312795725541863232732216127271467233843641614314713322244829344459672541488471223325641133624453633561434741232242272128343145365713483243211533327762411236416778542111443613251652251565532747613534552735373535442312157645711213814231858625622416242328132339237129211211541221471471534711326854371421617634442123542312311719533343651352183438261334221236234516343221717223561565512148417132253114244316528511114441682384371825263458354133435254515628337424511671211712216458672297111257223325151312214528547131518123266541362462247523222263231926614312413541422614625232513927411728221195934654633784252141449257621313272131554533153152543614735112145573326234631123313341261135527463522168753511412354113524218211227175145334334271921444542519466632451212235733186142152112327242841344241311344627745126384319535523772132684532613422461217145131732321362534652133211134722433323326421373524321217323113213391921561531122121424235644845453357831422277122322332675717312264181133393732211482237437421139352224381123513825619761418413542219818726624466455613722331117239316135228426344261242541124263517681584673637484413214365451511141476946868633417653222236132615462751211125318552851868395263266321373456513141263214532551753226461123311161413451321474177213333164343136665174324743484626365351134213552425131446132181242456622634317713156578554464744432232543114123614836233461134638243182612619266842415613351414631776654252532365583165116634936111265133323244647311467166251121341516515644145363236323333435311641311222312616621879211582114254377523533626116424537738743212221177445212824267112741712531635396417725434119431114283671731182521144752637226514546335966451437242354214681472186349474122213423244171567531125212232346112514413718254652421523225121425129171155233127218168412311413241383513633121223327415432153211244156521986541889685351394653948323221122245356335625733426334785556713222244463263317441735644318732534824254552421863413741586567414356313354361666117254122854611665871146424234156365141534431532459236272423273214185264114263166123233834853911823133973417822214522145137631223284517324118462122221144421247311377186329557521462143753636432151126272382677553574373671133227525227725252113441521316224144646317264195383154535175244243114131442296526924245263517144361517681829613113456435542725671115221581655474237668723336174116336621343254743542322142646483632243214514538132124145133443233253325115623211468345922428668913456836131331155227263331322585234245756283343472153214156611199528737375335114254143216851161264363644647441562147231176697247353182271773336942173111336433424842343342316644338751129111112223638196152517284222551136574111232114257485457125361116561193613586422362423794635213222235162846265214347643674416434275616221643422562931614236124544231235347163337327322411226351277756662725351116691331236121243381551243515351228146671255212562787216382119645511123794242315252182812144313231337425544154157335325365135271711184311216353141744345567735265493223412471822246414651824695123141155274226434452921524467445175194896128341741218335114333221736513371122147655335265253354127411171255417553351413324659512371616411421937847572641462462531624523331777735528317111241435312751434625118641254338715125112333833145121221161613647217332242541165393542735135161251412148571429141231782727423325663321414146156961344311139413226221342741347553735223235342221153843411551813314211622412414521477354453616733441439385211241334411337111626213416666247417433842247248213756125617511241633113265341515135511311414462132272863825127138414622511138118343246221762517376182533262915174484143565122571545244121631724253634553264163353188141565628931682687117122122165581354625353616274412381335133243747157133112117622214898115236814112739326528123221142426313111181424374754115437422438335783416357619743612236373313227266223411111248149162248951392134322221343917833195333641218441635362131598266193318658834122351255819635228231831646434214113275413222863694562623621134138291342334433577357472464635125464131274111436734249123251131264549164574354272263372141661542431154462617315442914751114115661752334232235552124631115455267436418962528276611615345452535457616818621144112135154541451465582736226482671217342918426222336526265324111231387222611617575253222115451324997541112623274824169155362353891227428716452622247651611445121151538517251167632415644156148121892864511172413627175153355354624235568124931671541238311345774681523513673613626473568572174436467927315482315212282332513563325843143323664211862148316752363646355551444617335333241616251555176747174467121153622136473267144395315763355211683954126333236123223293112233454314526365365339654715116125432424736227531553472112343257178722852253357211154358642637379474173273132234547643726623851346382594611752645112341186514418142342222936249261368456832412754284325622815441148255213142486132542241834333131654824166436152549732153382613446646732423855312513243743324672992215268234482413876137112223232263533122221132544222183626726124514323372413322245211456132535752235664263314324535738132492132953656174851115813212876464233515319426528482232421243254863556134117624163988552839911645335436433514143623317394485726314824129425245342125784726562523142143452338311221415142291252321155433125324327651315932232613752242471523741722361214523117741554641455325684133172591213313452762112716444412535164448341214123515226445249522211214438243782111244332462734341414362411584518451224444857154344821191218475421373224233167179227328253233732473212755524425846415214722645411232242716542552214131611211163248239152249635434134745253673716152641725464432522418656824162657242419432742334337941355671423212762324575222266472142153121426523423612123576113284121433127342524226525226222221132264312111452243624244241282596758323131345957121452312614151748755221133111351842424252233441926131521216918841483251331541414254631634214672732586442741552923425441232443441313138388637742125121313372562553322354217542111137176522316642543392342423531222112344441743273265513735164626614312154482712331417224877261262252615111228212417431424414442833714353563812383142871324493156232367185628636333348575342149421512193143347434617466173551389297281144151779343816126417511221145113411331361332667765277332425522168112411122382632234694113138662346348543572428132724327377325282678234158314455231337143325251272485525142544441212322412262761266433233231553222593212114413158213152397153326158421933166822165122244636344315737541152211551253949443126413451122122212315238669982546113743232137671352325215373143224944451526211427334232633227518515325548299449131526132352371654333947657641244444156265212521853323217356214161312921224982325285566521846231192372177793582216311145233122421223521854119221423346311113421332229685261235917143642475132938153413137147675433952724714912334932313652343451493675748213111331116323612316243221545814124143124633133117234311123141246231814655454513423262311361432424542342551573232344829787464551351526112333822571954631231171513178131213218117568533451494241143712485724433467371111121431583273116514323431211112936524647218161834173121576248161624834169573422541543142663621268833631127213531528363466537866542546276113133645913712253165221812562245511547715775523224849322917354871814414162344175193611174294311133515314122716317555348249321423177531346511383731526358455364535611144563522166236882355741665131215241624111638522234563111633135578442611212558466655438425731312341411154179583479366551266512262111221171111416622536173214821121439424151215686718563666131652312253145521434543441626678237155612732215337154262711813144155456285114812364881441242135442131137732448421553135211411135212385455416347221413165446132244363183133184131426556171831351371253718594219332882765243315137155918353592164122383721214145933121754514372225221191324352186116339436123595241275172355331171112623616124416194212351517785633643132476424145512413516292213271111634338315736162411415557152123241596374228476616411847251646242222133212222233251426215655425236521418141214215852766465549636354337741754436212264543272355172368113117466412531111246557591795816642212317114742612135713353411261654543939133343337232165311645163128251932662221173331354655233495221466542732945643423265246697241246352139216537362712154122673241652445141118231247545776721266327861414211254114913166227323147133532322436437668168723171511226452322384563312222134121141644416863353481234468125191555445583173785112242425158211217131333924163752663216121315458134984614322522121732626541513175115311743411512343813383659318218361512552457254314135115188626582416117618321748412121282473232253141398152545272835121185261435141438735646113216459853615642784814265451252254232122422215561271953444111133551146781621262742231515111423377271339222131339375263813252158434234312323571421111217384414127349521317163817421234229123532523124166244411455833177372353214155122158372267132118444745256118163127741646294226212532843411324123527521321123611512136153211166636151511121513624242352324174761453182133381123433121442622113214127537258112413435321566241323343533459411624617333233153251133113325653114363112511146366731638223474714112523548322951521317158456517122523443431724293144111526229362126495514362313291452635511653116157234154344571613787254625486242214187166611473131152638376154225383261637258157443153641856572621455163311252111664137877682448151164335165686434235364224543211174171222542647114514142299441272625131514247225143541657483123153586471111236463212237344152258747361342621161143432111393195342816554221223483222142661174554455338618625162531162422432565547891313561159235114251855653472332612211252212171212221151936461134332171631434531431533135142331543455712275148142288143722647412752423137612232234223641141411485286612544357146121176532123123541412371573821231343138172332121683524415174452693132453714111373234468132445553381132711322832512711426652437834325111245411155241243626542523942626222182112224372251736373839223132125451451142315117434213211861351922743843114584614431574321236564125928311432982113223362211532114721293343371342423325613247431465217616656384275229512526113317637352712523122144123374251123742114263412527644125639182541535472757246989225773721151824633657316612423955222283142891394291129132342172754685112615633345255464125272544564721718243313327212152515136343771542242679322154137311361514357323551635921625839663331621131454373611142419142516342282622646211424112817256725523115373341121156124222126318121314247343141152372221135215251482231534566545325952127172462233474435443111611526529229347454146378768542211598364826752332931772125232153242198436585128414232241511771245135113523416681311311161531193223223332312954915662333334542122442154564313333111766845172724881653433361572132126452222452731621228131661316272421111754918411412695582823433225525136124513471454415341551236452324121572336763174131272533118376513449512552173326312231928921861448442142314263217353183113151412421212322136248113361518462141436926212183924133943174232544241151533526416527389122342823976134946225315612353322274356365246965465213313268545331421135251634655142474114135285122622742759331342232228111784514512113253243262352868631531746412424315549314165163419341231111337191154567547234611335371693421135846451527132416131122447283211331221943343715388542676252523419221677146664525182135445262115125435271758363838621422212114331537412763212256587827213132532164233221855665423254265642511353686742153953355155143332262221232712365221145243123141125941647223212571248841562434719995185356536125726413531353281137834121435228474146172816921314767573675165336354324387433337337116512621713752737622316651651513271324444626161551334447524122335213645721152483423231811344426327462233724233312781422124584213521454232715371774165153112725582112224392425341221252234516212162124318325721367317123711131437374211493243113445111342469129113464313412322232435449911163445651662352271665173234172111443663422434548354811382285913366321128531246545644651812639232622547141443244111178285316712746225162224144823774434425284121391214252579265911444435131278424632319136462714323277323346252646355174271542511312441826163623252535666314647161471443574211342727445824324381641222515631631533453155341334212426575855426333228241452143375723325373227617621244242576114481555741481419182373188863348271424236346335321822329252315133163851921436133846279435357345225181232215722851416483644366161142732745332797354544752131378666535321381233284435541342114513133251512514293234742126841154188311543244426233411847412872234111297183161996323112111134211526284257236111761265255171662268414924137212521895483252123515443212257133342791241229531323452637241156133145125439413144225437514125412611372513314774861512634719264581435413251813756227837133857964231512453162145266353336218331223151223633125323141344521533284833537213414787342362494621328221121114151731522417732174674314625332222864154427133332384421214332117113737524424572463683111714165229431411142661515732516694457261411392783626534135221511117525355168334123431125872733876291447143951193831126134533445558694115835353261514432316343361733313111512374216136272343621116211232724125815144431334211114711155254641332923276626426127132255152111385243134653267323612515426826317337173246887716534161441624241811631235613637176542724137222182731741284741221161281774221522133273211152952541323188111565251431281163546315524313351327283435724527622321223353917537256351724873764335622135183666686731175511442385671468215376336434276237474347162474477532516231432132244752721272642743124321422852556525623251486234143565374332311554383875435324533824312541823338443114625554754342441288663812441132829161333172271643233414233471136558434524362375196134125414432254312165313251614279535332245466443331431357251559357295111464722461383141165143115414414541239344343832213715182321242186641132511242277313521313423732661432234274354325144343522242571661485627732321352121511152414112753224727835144364333353114225743314411156251674645253651315188531261555125545637222721187524651516347625513471323247533432324256553274121412455221237832252514812279256161141163131216311383721284251867214424741265834464422234423162412611233651131846342266368131131317163622522636229611472931555441511285432664612142763112116274136333275625141141212171135154222945313416413812715423187713477328712234422153152158167461511842421514334621316324171153421222511575824146513136441254562421834142114343432452135353231613977621136231313378854152761318983452436114513143183577583669313423683814515223425414414712677526519423662733617825251415613221523312342237144336121816723111321534853283231512471334284144143481253522373222211262321953565337435727123255753418432231128847932421367258613816519653714313373177362212736155249341284426152214841921457161314825161143713515956193125323843813688263714672271311846351351513194885467562235211581314241333121567394371622113615283134327665132117515255142331222373347412642411236821336439163423145343112131541531234162434881411321865338712111361286384419731411381546583114321512842512725643172542243185351523817341224127483166315142712137616743428472121635514431267412312213742611748774293734663155415376652452451143411391357173311448122144342252226467588312253464332143124221655391354388127994624823232755548321192433811263511432153315289271321831535436215143111211415516383161173233113242131464121282413331718517222534176233845321917944151468145518815735584312227583621116511415262922664894351561355483822365832542231261419225116231623371614233742863252124253522232354282171225276225318422114323252245845755142143552863592333361411251465254656521182547171121229413163144841151188372364345345361371376833437427385213721161382642586353422121523543638435674571111361115149442151315652145121223561737344912413134124418112632542111223313121227154145311135441145232592181446731712343152131874422846115521657125217534681332718783534641422424541655621392431713628262855161225531192176385414251344262143272311724871357152335912671112622423512211343116264357833951661133331521158986254382883685236197115621252455143514219834614577643534956359414338112524414374415311479116331344122817314684154751165444253464851226119343291433216632414366116651138811197388661171814462248297125119493412658721115262411273423269344831142262723246173787732226312616632232311482216126912623816134921133111791816232153532423132231234326121141663114112331213435626213272458622165559422331514515556352277322153124635525673169311557234673664219552761226165615236158234624533254673345765425384622227458822247626425486416779213712239165574653454383262742762644234225151237884448872543633433112325213268274131391323284875737226345177212116649535341154554311755416221136152213276547534972133241554711161234432553154356421664662154164433714216438453437123359317111175662491154276383486313955235714172195215251436183536634121263685431373325512612435321567662331427654416333366436561396862315251355537611675225183251232227755557524732746372114712543524241712372438543142715215222732332812451263453371211462156395931444311161872654155236144671575638231398285293523214152144413673648131626311913666268866112148233367849311113478352745113612512278324269112532115154385132145631186441345154324213582717625524644133234643632252637423242322858952422268286854223631553992487569623781145763215345153982634525873368184349531691558631134243241584411221311558131258534446221477425213117146284451252252122214576285217644536111125475415313695242313316364423163351153423162246442477435484467321123734842221475211332613218351226365923434682352428357424817126723665321213811313221446215357422823528312533343274829542263281181411758241287753442512363131275522692244714684473424223322644425238661546853234385875431164143332314311644512143215214545371227391332125523335145137325247625752572567461142332354261123421256537462431134825945474647718559115772111375216552521222325212885142513314231649842653161524632311332432144136641821131614823145324181723644125118135621225328227511851429631124575373542213356332521511531615119713812322373536437162264554331234231152343573521564521462555728711744664677647134238511618924611216378111621436461376846121841322313642522311554146175185147253322155731831511346141322711752625537267752315314151397288182385514765795313264666113242358262114192385145332617518523462591442241414623642236586865622571323792314231686163552662739323562721454282551443115738611247234432911334633325471286146352159342733131116877277719423953121541144123568364342216124147115211911744363226521455146465575325325625814643416415153333133334792122342232432661112352234114334714123211264142821441742115222124618822232483225317235164213334283283211764376442861425522625414637724323313225375214346111232114661253613144351392122343476452212434251327562293356114469394366222221121163418331331453314264113628511548236271512242316237154563451315352293125414622124172512143564111223123813321218891145261311923344711453324538425427123825353458512513435474511184632241236619352314159957543124284376263341625111631323121115333174311475414535422222175141576212983152561631434116542168132397542222752713442531222358711378533476623272221471635231178491971336326411631261153152821653614229334422911445323428212226527863752324716115413171642253224823125512822224521414242631264313511132344343525217125484111321254142372725545171255441235833253413611113531318162343668236616217273434167228671611123178435739523362352712413557174134114411442225255124412415441146956268445442432535628613217121817631643512533514274551526961155238253316127671812114323654352417645731121522332321212245381662741645235612315833273441141577345664169731236521326487394115622544641241411243736262762155371686226674341718213323697823632366334211525417142565611242137217167321111142141732656761243113136634621356631257519124241358347521827356844632221661325138277132111229485412611579553376321348166414735131755136232422791164322341142576725383141851156156531262235575727712921356991655562444215264212746831214416188522361621121374138631232356311144116113234141811484311211451543215241557714614662181362142127729281524323224763913112329123437161564577354145552321686321263213937251224191411361222211236331359633232317537122213441172121231563435234222228215228153843465285223242833665912915563181234122543942224444373169444525721184174522322733113251248162133114135621443137825377145151222133713145815222365167722181451114337346225133217185261465612332111321312512424533331482552164211357332554616921426254365269121713125553321417313922554475412623433312225854214863473314751126219659592131272143761271121133356717631125372339538643435418243451163624655223492141126273276446312459228249315274111532321263125938512761522431174262555171627311155352115335363745159114422456321732571668611143246172326321413853212251135121131124536516247846931236543134258681215229342335652465711311118232543213621565371411115113271655145351156127321823361927325252316163487382814343784518275875132445454455656723113259553313796752147178626358338131131254263251223335322144372131131659314812226731219572543512172321623332628545381929175513137757141616729732582153238121431413321811451483584431717584434174262238144331849541451841134123711183644324261676123245148337183359183262374125127923673237445212233311514945659178262471463833327112625418254216128333231416475732534156133427842333225536363468375644889825223884314165441914533712385316743328832724711129554591312424433422712427746227266516144521742453317145773531357133735215196115245211136475424542433693465214532327853545152521411122381424553131377224344468871651442154652552722439214153396472651531532333532156613193478122113564214842223112793583612222111511332441131242243325157917732882195421537632532457534655618238212323314141313118638531573218597342212266317261354321352436622151284323653458413814117363611124661241243417924441832245789561142264441616296436632315321363325613253518628524687421111712294257121452211223458423662426187122313851335739113123133313462831314139542422737133135756118181111338222282243272137544142533222314273231731425154629524553951162122644264222152391827713374515651235491831172511113127135235421666123113145952448512544272252356374126421586114352521525541311211131511216332528352226414553162168324512456132837441116544244564121444471175722641142426318144112215556722714224424485811425212313229167134426527632121265437242331135746739712263344321791425497263351226113117153161145524314251115456123121319357542412422648834133584624321422525811216333232244174176533234416511332414261117433751273436434522422836611412451151637521315447426117223711635141755239711722166363344912158312412535175114311325751373814433312711254272123316337713262451241668122571821621894145526598326122124451415662613743519464624194576344441721758318752166741163414215774266143523234323515245123131459744192134244211256485531723824431434234125536193126465277721123113112813482137351744252447881976251415442625155322364124571121752194266866294411151652558192161241222564253254316311631373139741587114173449442739537635429224342161115823354532152186131622143461322552712661132424144178712123112262232516579867511262541112182125411293351822245463141366241522215211223216622873321732255156224537111281936141341322244128152422337953421313263129456212314483163143123141435112312625752667312531373332212432922224212615614312418427111352716144975134286511616715517481547781712531314316263455896125452216142141116717113632437932124366341844429312777362288135421783264227544733656157214888548421433553231715127192953471423447211171831331112253524643122626231114613178313274563752636355456712312732744948431434143721685183171446765863914432616581224221611886891157466352212325713131773558864253572552271244224333665392241445214181151933322215278164163243553321125254465312144641453322211315331171158521172132725615455871312553713244166454315393643462228543855213558536152432722116533125712458565478211525338235112454658156132623755421511414334625368218412141721147421177132711125552342645237125315383216514653445871131224533352112235384793232411526722454417453137213323422174143243235332518155845181145461421287384531118135865645714222834242614423415634113831446127162225134618446422455445683332433231633332938234425425312848332524115223632455321333644631372551215442424315535125213133821243875244381225526525532184176764113328424157164222562563172412543254441887721912415153133713324152148182424334542325445731138433155142144125252311865615662781324657522434551516213184472141515544341431116262663682215218155821756211144314335518216418526931611513235438221211742164182282512121434251115316311165313232612225527264153474224412174217145544174733667818261813123244534431421365334521211141226566132432318334267252464241311216722733161134173134213191246326354333633722222221311714172528524574325988155518267534139415161922623166124316381711314152444356233612279516455111131236326573831637142281442552592168431332612524634596253255422444412475644364471334614288863292776138741532362233111668224723523116214331238221113683113266722421635413226561442116136225322253651111346681525359211231134321527511261164768116335381499232726272624264248171135231262441325412167225515111396111569315454374615212737143228351513423185313473783662964743253739421425243635254414532171171677154551511536343156433677252453172724274222442277113715712321828761353955114111616333142447357491122127151153822315432553532333211416311932141241437127131652433455348316625464257829211265475224362516641254552351981428272261522642463274474492323828221535398794781156162524422912238411163432646325115991236185652647324287674215747482224354862685161362814713412386455468758331171153829213111821244345254237315357882565365543143144235243353741641262121275565427855213588441253445653631825361112314352751961232166112367618441136616737331159653345392362477346663151213422717636572514428561293255297121466746324663178431473295612631524581255174377322333446455153416333324112886632523371151272524735332432125436536478123538224322243621463335653511714454122141752233731811255112325716324268375413513136415457872116241131121611443312435324644871411183531131292111911415241473145145372248619119426177241315915643371122122553311674287383513167443214348169636722331247269486212121419323645171524131273843579414546623528512411381764175154215132438123712523528394636541383156313425131449278517473657223892926861764758124151161231951228722784442235415466725141371135315626346111143467363312142234441317224521121825534432573723512417632125536625543121466537211671334761242612723123313663114142173633555175963422147741511421229263276212664632714325824378324244123747813542467666642337131215245268611463226964514122143175225297422481921534444951232231535229422547761727883481581415552754365255532236674484294515222162562762272423472832535231461374446613143136274138411911124628935468184311731421574245672543645233747255264336254755161144335531121251425252513532372115112626845725252314423261167548712134251471664121246521614611333451621256251642123142421417631643131424127342223258122347112734277235152541745936184231715991325151767726411214412126213211937514453152162344443837472114566127713124184322337234147412271224648622172812313322586755375513552343914171126432111616812334926232724115231817223131345258367335362117431262578418571742253284272462514264453222422181532682613713122446352132172531184133242914415466614813721355211232151416683525321421792853593114276218544271251993823125612155257131154135352628456773175671653214126352112611132549265912326245714395263413436538221394186123422632322235867563932973537422221232832152277142431621346161631232377661556471574115243615333521433124164547413266371224155423243132234172364118677243323811111443241661241755361644825123764422413137331832135233264237336647217533113144752543417221277549154137528154512414191112353557545431521192786537263164434422362143232413522828541733451323224844633334422321541834154443322124262763511252411122141462114447323294561534411155225221356126515112335315416116114441312491668269659315512111556438544322773116392223288434271344222356117345281323887353122242212522221511464117527512154252592635551122914713491121142771154125212155162176414523514256136677844218431681443877653311516131521384164171733583136421482442477535142533145748127612323417111412128432772422361634883537116382621145735322226984471723121425574383151423157573184511454711143254512327124776112145826139152315487261485665521243626753442114617121623413315342431415831556586256662562671491213122171273746638324514243226965324225225223635344815347152142835436516323273126192213132133115564251721121121742754111715144214325611738126627653131382182531331357125352423233873426525439573232732265226722229822227519446157962354226168111335254665471113641341415456372327516214268322122319254227611254245554367159832526378754151527891142633612527377533452322353511531552418691141631462622352442144251537224452237114115477127417123241144137341735721368521622613464417841215124817241618532316243614721291341713455237115268257141512531173432457146214222336325113751431474251554643525326216352149662371351425564225441554141133914134948121541376622163315412451565631252342172795811128675272221352253342291365172325214267534334612424544151948127534696213238495935923641831355513233976235354222631187341366234161225542522312134116822784735426973352142144315136171251623212178633511551712152221416213225362815571111112132623141145571229219672341231591264135223343241116234496331251413164424442164841113182343422222471652221133344344911917427531433561125325236191325343453917336335254555743276661728621711446117122241613631131243518261635287741532222444632531225151743125552321122544121851121134214477533213141141314529347422132713312273845315152472781513441326145581116426221232133151515554831652761211771282213644123767731252844232211211656629426334656529311346686444336637324119926264446319822224836333578423281313621571242352223122135163112651157212256212228696511878311192741514814441822712272743165561722355122241241391227567527611134152319579154726717965314464336316534642745461423542214515115384611158543833136652113244713132238231423244512362412246633516551465331231877187174223446335326414723726725271483823116114433465156841252274552234237271216518633237142341353215235653222231722612541243664394782611435253171444672346342632362172434267367224663447884565629258522532523783225743653173141436472417967222518211225471352651245414244349662371122366143226537642311516733946538211334912344211145133344144725422316464437144621217545232442823152131174114448373717213211215391126877173541321551133155722262524855536432121467231212478143181243115558354275563491347452763214354634141762244213548517128164452153571152633771227626612135612743365225623424347125422311712141247311933742718423132928512134442112416475213232841712541144638329741326581433244537452339311236668518331141286664115325773754121451777919212226826245114419142856653262253853462141113114221518722292432341552114254313856735147223383132547524862424536751743261627755317691321312435221211682538124811454241663567593479943547125274117773691413476323225217294953321111829712452154438813453327548211217527614782211317716123212411265336145341561336614623427226111473141554463231255574875643221472333114323632678426425342238442321133111232446315451225333596271341781314786531312362353652116754322413614422122556223754223455341241411111472627332651121436233818248621625363712181563424414813478933122315514311313131435218633481312373151421623323155232255163346154551316174148614368214482132244267542223628812731561857526294736716263128824152654644423873615963144434648448412274423795344891668163175552363414136327354283163437135423152548444174322937212222445852233761147458664412542152357652361126265533392355572821332461433531711323213274445628132111336412637216143424767337221711962177425248731455533132235391963912326546644412948111433326515482181262331232511253111357539416113642836363621245814476332731165151223233352554774564221415118472425643235539111336818225254237383641243628156111223533243127135413213343617688127537312312583313737235126442454219546424524613231141212133551263633614272218578617815213181738341246431614173226425132243734334518561433332354155252744315155253415665244254638251182122174527814457631146131861326538343131331385251543245123561424874536226265646211546176264315176231714246221312267346681144161534523114564413345326224135347132165141446743714367344536325443911334551623731321223257336611133525431356621385421265143121541245412261411263342314366613319762523344442474232932183141732524842231162452813441216724742815446172179361112985824282576113764168181326468123791213223326246617468832942443241352211155611121263552144354441873113318372563341112432425585444741426734412131544182354466462751131521311222849645214846251143522526142124522254113267124546363129253255175136311311416851515452442632712217711133129445161345722121732725224181811186653555113526811333727326993752323141821351114121122985141282231114113162212531394117567151193156754341438187417121113731128525263412151614576717444742115152153144125421425142838336621542153315316341356511872124257143122334134354713361126674282142377317325412666644247849221753625342881223431273491634563324417144542556246433111434657665413433427224235327712213753223171364835543464737645323876543515446441337363274156743434543968173143513532416271133252759941552393112442176122555132422373425763654538855827251315363511141135321326343391124226821521261426361374632211215827211112745254162342253731946716555643215133145257685523317322398272529423676595148412513842238636649216328256852521862843216413835287341615664122333451431813537355521287458425125237773413412662479248138446324133541215634452184416793532541176221151232717271334625225347165233424631852426114941416534531322115332117314121183718522821413646412622754144625124428222451135322621113921431425332744611153437525312222261345132466631615678213211814631136351447314713131343446372666146651326217432124624864425863513239752322664283117344611215831196521621446322315824753351374116341115522391236762621613169223215223163449124423523422321642223186354147222562211362316311252122865244616275879347426537234532711431111733754131411841774116242331363553122311215121233434724532862212326213378732346317271135721411317233375651545314631616324935228624531141923118234351327345543138244532663912134633545281394241264161244684343322554414121522647847576321344318313678612152526124261531943511342363211411486282314343675543484226763161337736142744925142265521152121124136343225348264311186143614354242772629419121542512255314352235111522712172661347392471358145167853524411735414454361422122432183143121522352712213324375422355447362212725121644231811744244244987579116333814215314275223579344248511489842316735263554117233224418528282162515831533112753711393631774532318791521116816453514133397121117932754194635424622116277386157113762413576345561165341114621452715551541512172131327534514171924244231564211192282534245542911441515644415811413121351162144538441126422291593727673427227377582441612152324626912412121756384292212112312272193143243414115931432115627231261113953332545295662491885116286762745133341357262124334432351371117364817322153331124416114144292256256663152227115122124163212323845131244818322131341811333241118153323443746835835352325238112521621771531326416573841812643628451355416238411231772312611323361432534268681551223462154145124682651645245756467541561332315365113524641112469178667295831276623326235444122422711367555651131216537876147631682825533328871496171963616211211322427634135523161947542311242512282342793471421712148833355252112343322346325728473213183131261237615291364134221824313957723231563141413511644544618151262565511641146312553748244422571343516421143531619411212165221353964254535155414462142253261312543321641413632142421525551371324383311562634864316223872632112543156865632242167832196353471375224654713845223535651231836127111266346297773413621141266586637747522472181345215154638351814345346555339461467112451421461423142511761122412534376126548216732411742725215624221552319285223123311462242318425426113722821111234531114174112743543416365423126739651542681433424116182157154132732522312614252368415255325267136528144132852756462935166161235728241282517261672535567252118222133113383833613253314134667552271661838111627321448575331115531575111834373125324853325167674224112251712121573611774863645517171332131421133255323222139263472424385271154188185423514731323539515352347122735938433723841484323241653729154734442742852951311443343462413379463525468212536495143234129222773222512584411355471353213461172155732322112651367141313157234513219436723765577222325463221856698441321414872855753154667125313311121724164117872426434483137257171337147312293555392212841431314135441314378471334266222314333316246911123873481979563266676221278462227344121432262331641486445544545423765122359622572161635163321253571215427233413216125935324512453695723649322116132132434622261362122442181557652891473613195335352416433413181252318464524345627587717252616212555417637151184271362321313555853454355472433432425523113113521132467315522214367826252929481616144431874261547834212526153356148524723136436681937422443112625143127493523125136332344611613234331752543427647375245833262172123481437923417554424424453421673358595672463272233431132526532143261115356716743233624513253161429831432452779444616712551212134317416445716233125513563332821273932173375441761219323438331118614272222855832441842153182268543122152211152412437835422431141196844154132464137421411151341342411521438317811265329438225252144552333166211356131263221126118225861127225434146269814211164228661642224622511516433123316721262411663241823625244964655116283411614718153681345195356312613542717744671721152636212481122328764722422553341341268355154132323116713138218133755744324521712292266611447312256521963763235873521732121654747776257672622437161944286271876243149133452442752312632652461925962557933434244535264495845521146155112123126551414649414562252221213693551944231611533333138613531924217111636158242535375281311562517544327113231612563867841755277136453644157524413123678965133472333228662863314128224112263312123296551326144665274123294614182613253771414186181922336537313125251326222445857531233484153932524614192134253712541232832368111616137211187123137651854744436119239641821554421336352462236615553927746811537243314238217778455727422714231442894489113614144147677683163321721455322325125412214753459336568715152221413257722173584324143212334242818822328465137345328559822241145222377922155544214513823174113151621546142615231577698441213243214343231223915253646644241222325853334122542937216132147435713134292815525242273934231412453248455253471345416384332338333254222125377524514771135713314113429336248836632917227331782522121248251115216313645315322423131311251224138216131718665851232113228473228431433451813452261693314882385514143368338542535435663344223531113223137136116632167433463331141133256722132618912625341615312663431737634123511396515431719422574321692725438118513451997132322133555342811215379436521256514524341555151482111353133551167127757281411231233611316632352665241344713411518326475234344618442117326165831434416211145522245142369145524161623231191652115232354857441522122352215241512635121123433411259242513331551443626115441142226253962155171114522743242562315458362154562331312536267262165324131211235686432122326411234544134582621524461463228337191365412231678611182512565112116365363635623522512421623261441316161351385313326334342143955227362137452711312649623264153426237644482216128738113434226263112177621271657623215716343582313866136447351244586165614214352111253364334451315533534434824618236447525512535316185796537145166514637247178557221273242116453211346315161672572485376112223232115633622115239222662723332132826151542449277422752647592813541253343334184114321851258411169331239254144525443342233377363411623562214974336731169736471646377432356311267487394237313122412134248154223354662241736141221752968215142364613514246741122313347541612768395233238164273246338336143563252163311517745427552153264736731123325181411336171221677251281127872216273411733145924342141452823541249241213133231214212552411245194135347144216658442344133221322258221575151952432243361271624112338541567126125241443221531121826431236313254631516321915721514625623223244243311738853424494671634713563162311186811611636755382294263334625325153163651226161315432227453417122213131535183141765947244532127441312223131234115838127211732777537921625211121285311589237314811132373168955724716574443487112259555212369112313275128387841733241341134538282375628516446625221627712127544432171352441566841215325727144611151253825754515153541512127326121922255892442276628759363142171852463534332792271173444421254137132123136511219423943611431546867331961252612611215134164642253333134327153652512572187521314541483237611267518235521413636564432322215528245711223425331214231134314431635421552337474422523432164632513868265171315323436523253138628173422537112661751572632452811334231486891756194133415345223393155663474348131167172746278612311223118143423223444513432455249145723324217463612775273311862164431424358182233157212112554273713536132111345885234316596171132148493743121127672525318617411355644922113846211641242644243251255526427431536731335332555127212646116227431224542623884131524262251715466844124532621522342925644152125262829274213942573112231231311212113646228436136432624553882425836184276341936783122149223615623362424147756456255224533231123494185347215331511551315423528427321115231626151234724432831752312577342455623531141121414159115624349641314463341713124583243641663497333311441215154635217277311473521433547235271232341152144571134144156555543218212313469532624732234216226451738171521743443236225515221353632621415628127222122134523495231922512143752261642253174424624621874145616131629171311611473422452214613145192361516113915832311141437355144212518341921335112141644343222343351329335121231861356146211212633811465119353322321611516573353267553742218316351719125163286231444442615116162831634735545739436242463871651424174513221354224135124126237442432422122114776629238451611282431518987218146485118121123164753314143624145564331174321631241951351611246638112126154223252773126534113644411144561721914336973422131533323353313831217212333181754363666332342358234344252246336657631542223275142257312754217611232744111333353612512172122533851146562435349235213115212652523362724225826462342111311323544314514186217714342122599413763115123252561252182256111363676164195253533246112275661561369132453143232534329261384832416232216541149614731641357727133242131224243325853764131545239635125254431513477255282641111941211416212646343122467242117231547414594621461648652651625119473131374584165221145323616421634122161165576212422738413413364515654485148314486425243252131266624311453133522875141647218127255743763133835421153627181854732148827221423231482347255243512576382213211612612321111132121514438215336841528351812673285716663326362275635125322412185321321232266143517274391441163313132415743416242333722895721543711614426355123431373865365327661545316582242952352113483216831121233716123791723925553455161266728373783236174971111174511622431323162625332225331343217113132232612717445238317542672214612773322316517811317763535114581411151277331742755252126538857121271412214214539826618157241671832542524236631116111312584435164653892624211315535532121444228756355131318114435211631123351683536454565311612543512523242424755554256456474172213833258231156214641787177343868122257565246413168224257881586237242662314354424161336731631145611336257336211273721266334617428635651263125167423414628746334141122114254522236612636735452423311533845239189762412155129821333922144833264271584821734615214712112627563322528171497725211135256134527371211652215845632218343634625193637318423776267378665145177746311111155113821457521431171666245786326416634781542475323711356337549446422322141623542154642192223152318613435231551461334226293845173353512311444816756193132623241125543752343722132342853545322624343111367211132811441368537133458162232153615221612321513353163131245221543313411132421127121442234446163255121739479225545256124214391526652121231552536137313117212732694125235452515663118665281317814233151324622123332757462751142546431113417535838226578155193432661116155513353513422249122144828355357763244444141422664126126213651146141273413944655119146142338635161821644133256631143633211576113177212352754345281641552262662474244527552346643533733115411211245142818472311112644146248235132695211348615334737336155243212434323133247571285513333512563541241121145225212732215122111251126615713632114632167141225122211111231543314944325652121223253236412586649716311332223643466631437113488138815124553364414153214533345242241542755221294668213526156462376142641162153725113241741561752617644681212113812811618755341351121892515857111497312165183463157641142328777187414853341122412158193398414611142716836254324443352955265212515234658142217433243842124681269153712196522214521525114421556431533716125615126138262322611334228132134824718223211312229175233511284123425264493351113114155211834231583134264158655171421186211652742523628561118636216626129165233325123135613135193292221161132443212126511674243129191221221322167311385647265812346628234643665334217216342647746238255134744632434241261136624512271413736324253785355623539564612424512629352582233643644334342295473142383313317218433661214487653442534142434158226167445131322153441432526724358461151432571312553541521322326226222651323332534454415111242211212528119211454141379315243251411532252144357565124312524117124741283613534251527714274361134411876552924547321431121253434452421265522233263445124123322113859528352832272119921531272117331741214426534363413146184356413424141211832454572251367118411753336328291153424115473117224514212323274361534151612412613825722262221355423612411436323132321521128556452343633254311213518715465134164493614613811313132224315147325171916751342153234133416544146524772663632242592131335535424312745525363335343145314343654881641166123992252841732462764826254315323242813256322121485128124451416337356353351152212114312312327229651311526589334792221519323641476554134547117122236562541338524355162321115524482227157125651612361613113521711112523545242567171764335515111183424521123331173596524537463112612173446365214372142525365482373411713193616551313335772711147222511125546853313121333351624514766122553356216258123514853141271236532583154112556315313341421351431293712383449147523232111342121753287261935131547443271323112211312132131334437651413691551633156281817452652581431684527161743948445313561634471231817132154753482574243724234756364556331331134472111245711331331124331814221635174611384442217313114115187227751331137123841355516611313363261132333486661525276522251218713138823484143233846464646726123813238148559615266814313411411263333422651231152312811277647523342412571131147453541557322233625635631122158336184274826361143194343233576129487921114614385742383414713321253134342434136114146149716513271162295258121551822414533343411572471322228375352122443223251435111366552243265655628777127313443711224342325223135716393326213364343316874345736794512612436315121252216855239467231511542411225142165876422734241576166151162431171237423115141615622815265614853346115422464782252121368524744224334894236482764522511143435147252251612431242738713115365438831551467117754124131316212256726786221117413573532162371433111762255914435517526423135422633313554123134111259377341112451341279213656631131666232474286151623271542231134618678333921561334925351321426348412278445557245215447326865113635254743223815141352211343174234326134324714543833246526452294522448425573228135183458545116331346191855592272623222353337121643113582714591315337961132111221247113212112221233161511721111415415247323775375713239517531127534342481233331111528132556732184272112795647133724216539436322472761156223762322564358113173746662265211221531642427563416261316645477363652238343173521151325549122864726271237529341254141853542332326296115381142452322532781313125948282211268266326767761778225225322454113125632261261111454353161532542153895211684348723383717221572232771111383324334631514212758244455711161511571571372715818184846722557623335348233121115244351165234117146421212132165153166254331311155538511243326722565325124486335213421291115177956262513711686526228751725422153297524158542723815938417559454431453626114112363151843523183876121173365121132122615758963842475221211673264522257713634231466112346573812957125234768873351735592323227221251169293614221481722361122535285235347842294135841855266331135236367121123614567843664327547376833698511481273391371253163752359724625618352134463313334692428833135242143235111838232984426143351361564516235145574261566213423214233532134213291152823172251815243415495231113523167732721737755323642275144684222214373482785579269882533311365135354731224221165562242166431313311215112436112622815238371372123425283232645322176858114737511566321213432613933415121371395246868555141377721245428452321645616321486417246613537936425562584123761742232382683125621136263171591747551316152118216212137673222413364442636512455122132417314912155353132546374542121431354834263353513151135184317325277387161613321443253145382714153178693467135524452332533857717651475515342143934121156547635256318361332787712543134234611664334513572382467733128327334654715324335341262211123811437514534327795641422249534846313232633618449821275114662231321244134212221913261355231645323741623582654291372162433717851463425455275911383242432422371425157316428264454235217245621278963143231123244442312533632345243389115124813423753733541242142372232212179747125645251362213342152637355422643127121475364314824184128711593531379724234423317147444473545345841232336723255928623737465255221116432437832232311325811158514272341421539122457964642691334639283825634387462754314556263357263311321112474252361183226116532565523738212117352481513111313511532116214861352646755531446635433157832524661625484241557513486274265123157513723615112714547133177379517584212562481376651124921122732246113431193321353538221345141312425742421623135395444123671833182818845624334757643313333222455723167215231317644238727554122623261815543331153264967263292296125842673351136264211429772157145257411352313424449311422154266281614371126122471711228311232131444113671645412541155751242836134342232223152421329121215265867355112468321111117469147522272112574734265353115551442751222731212214115231348151128547263464642255822962511347463626221142681763832553484454843623765281334345134717442537521212175642321244512254641198456613444342625832655211529352166513423347217332336313242142149219614864212271252142371351223315548135211453724812763415451597593637215241119325171651342531565215123218146918551451233623786458636636168111417255227222419568484531364465242232441411471261457438591138251319168533546213538737322153465149283344352734145525125226591221335343426931242845661482352212312111323422621511621457464624224836471121152652313711167381257621363233881161464411522727333311113225136621415572346641542525125585447167633363432212132433664245511111854275413225653124341317573534613351634167752213731742823386136216231565171835261331195546172752333343141675755322111174149577426267233312147411577322352312634423765256142556661366244626161651526921129221556412144261328625941161137252281124273364254816332126255371136967221566637682332643344292123413135334137524375141112115165213531314368522511131144223346515525515535159321326411314813258242127554191351422344743264196646565122121113117223791137155862444112272644323444235815232411817831361433231233721187458461132157648232652251119324653614725844523932723136632242445422282115855331642187145452443745327421232227951416322127441373416152425673331114527667552112296534764266514461445129821335518212223533255431286425382145815355136613221587228148285111173245323418325475121211844416712137123331472156514445253127244233121622135258423216534312174311374141352834229131532143191527471211674184652325229126253733812731652213244471442423416243326753432376722456231522211631711228355832161375347422478325538631315411211153331111275282723167343432845823153814211231212412217647542361142141384777312213381264141163563411953341355562221152121133954461243361629111132223116126373491415811221541223631345622715464164318626218632323324125573484189113242783176311262146642322236597522129444314213511767254155191124243771461391134112232133496713114533863216161651782225311784155211234557231351453756771754612237653174347219156484336315214347457338541248589352312122582829614119712125112655553422645123532635295426515345543252152912628165482169764241542692444336263111943131453469644977141382127247263513146335142147736413141221763135227414168132853547721118933682748243263238353234332672451741123225212743672535313614343455317621732215644833613512243841929141132171132731185652121467812213645521152632542522952852626621555177518211262315742117476552414856314323439732236183912355744724321526611123625651412126237362724341117221566554518316543741486912212155572334337552554462754231624256441561451448756561712915362113133641117617545776885265634212111222237345411111122194571131561545281833145518418634313562611155942112212443118841316158286543474526215644219155663215339852622513717515716245625744146423281124223313264562246472481431123514121234112663398424462184455712113321461362541216123232252521161112121143524385551158216432164182911315181287293532211412521411168146354646861161514222211651581252134132312724211736562122231215419131117161986362333927463276838253233614174422321133112446353632158815224332416425742531417378443548332421191541538171514225544784441714331237274631128631231363522524511773711362676252825534561223147841257332612641421412464153546231419512775947636171366295251412243574155431278112219163313732281672383146214345712634513278232573227612547617521375238532326324654414238171227226323916251129153714321422561141251121585232672712714553512211647161122222763543245388356973128114213112613349213455312861456296674117345322223273774554324357532675231238585242211421437514122123237454448428235554374484584412176716559523333222316245163425777142241247543661236659965428113317219235331971214128165447353532921257636451133448441813323814553261266232214244424351714122254123417251445821315428246121324362226225337364221943251441343542751414162855424431692777574635221532236716624987224122135225572395323536147587421537316885433552447457425466316363255644946192528554128232255183426341962464111841212748271458674116521143114831351123245642174671523362181623315312974522247232121123226152463451521114213453617365252651925432171537584692222574213381327112554631342772233443134671861129216512137155984434483161271612741318212324534136131762535511225523521131494316273352316164832213583731351242646173122812463765663173436132317614211516633339171142741311412853613182643595552422953632391322153416773771154535112483152311744716562347532268631516263233533171641836671163461362446241124821362312112524334454168552888264231432111248323261262281674571715321262241482311257341679341549734518542341117851431465145224644722611415556322521731262325678166353211628231775711232328155332622519247265458126623324336412211213217319854951947811311421233313452425125363614571223372314133216344437226214188216214643344491356388541223243147131418136917543362124222724421262673528184124542814712125827632552765733224114259636681234415942212453276152538414323131313631421513211115226498387922114432583815883243132144137914261133315927124415141817127114275289371833312451513551418121942421174372653322234475432133145277235737718533541922476225362113838113161552472426611153435871311975831217783342121611162221351482221221276161688253521613443152433515742172541254437842522141823292734411714521346711414735753522571476389171293451311534316451123693716745866464413464431214841555126255268562424143646573276731941118333352486323438114445428215438414184271177221372227761312466225514266437425172845441155222152218834716122216552571586514413233627426823633218313324753213441117112441724225555414913236374231528675231475615912517652123415714218321243154246335157842149347427641461118314988525611294113156343737674523624621327454121144651382614167134553375159134326312721552143232736423375733873722225313134181334583255142312182421326218122158425132222324423922263855833312435352133327126212247695263572126132326537714214268436434417381233244132358119111216322341659135662325934524581694344165578586823847622722341375264232614191213234111261265325316481151566531231832421743523564244235457637322214528172781961154624664324475342412362612111143753341751324271233174232257273219533422514463566922444534167234445399225232533244567315224134425121343549434192113241813111314435252116546854211313454116321237335156411173481572969534541121312462778824521113246615312546357162843166314127454452212121111112421433412352247115112243123513344482644158761331631732534244311344772346731313732491128372761538512312211516436154477544832887576119532713111586173252642262827713124372511651412121389473132225343534273613712143641265317449131161264627444236441333216493314465136551344121786126922347735212611612123456214411252132443918242216414122317127771163164151212137312332873322162313133213812169121324642221147423251321544543342735341511252613281577525458212126329211821153135162326349124711641561151243712129358716323871786165695177267398231289123413184121113251523426523225214216783135326251322111422818762141448143441253215325178636482354329333231224437617541323184622144188234823425264131171167667734346141911324336611322622153346132744221214576524623122448733364856232384222113557213366442323711417543625848266421414136552487722592481635375378556731714618633251287823341543222231543267743129621314113493512526732533925242432329166521557332135244144311142441133533141753431743459213323451581766151566255688872251952841613657867827532247468375114477732624243384541162432246352132364231323455426236431424365314534621713124161415241811413331834264511641476611218721157217433123122322145661964126195455521117611337168972435166422287365455228533245542836323134186635626272217744554231433225318547721351321338723347342123821765624311212122136187531255112437426221143332212338452431223644412245264546656712169124324346267492311271323442137375132528168855214122445336456263161111373245372137456467641127532621513686813338543343474524422773344141442231216132312535131251411565892343712117244155367767283733633614421119435712311687394424524768265467136151412352532412841753856653334336134232564521578211624946816121184528764652212311147114922552543143434611342125323223312655142932473215143315133431233353161116751924356447413455132111526965771152344314272446222741255345115232241423162563251232291482243172425121222166113316755141435614418242727273616321352322651413352281256253251248821687418811463232615523329955134612254425832452535545421322162154425134623115563571129251453171525733225886481131822823272314237533362463717316314118853214184874233944535132234111424341831945411152664337315314476241153513654125722247391216455544558514783156141662325336124221319312571123122432751311734113775586247511417272333656823226132126848324535433222716332412427267951746465455143343482224914293111585284114452113222233221365312281715442513223156755512327711511314214746318659115362354523632394254644692127528119111115465328833812432824151154114111817244692771512241854227712232162941214734416342412475224872544256212422614116277712611162222322511135248621421123233135352121577115347171115227653456231224261116111587311262322114112325314585968454623727274813567355448332421156153583314754311712523825512671341736644474613722434233314314741535194714134212622311224338717224111131518421613131237616524295143643331113667151315321671554516414431871211411583552623252298241368245427393512145256459262432134741116113251222426132254368854231536326626412574743141153215164446162318933771226858855735115531263298632142125511177433522883133721353936323423561521563182122115442482755215742324455531625414883143554286132645461632632412847413842365515533271364262213212126545921186196224111285412631953936152533385725627558112211421433522161841724116447316544231379376153368451356221226251456632522411833251122372612133768471132344312222711113573244268233134553154818317356151316521323554118422224571618852761724634415721583477367427421452373225817823674298112544343562325174115517212141592614624215525432122263142465123251123275222513762346324751133411133753331915321443368225212242152356118112236334427331783324715752642465843613262111224223328564424622136172552122416123361112411521561121421531721596364484346118175137427726221148346145236484454136284114112412238144537828212254133871136546253781852544655441513171283711113332241372554743517123131351622522325521278447232245417434194711866623451148483432555652457453158164118435753281443222132451625665989636431515857612221846416151154216677627242766482245465192122153663262286626383238317247152773231265112562371831366212234466731825921313333132368212245113543815512194352241213325112412111112131526493514233435292143117712422218427721242363611243153421112522517465744116154155352286161434213111222357662731885493932216415917176221452851185431341474261821269311313122572411542683714612474357168136351186796517131313136464823416312214411471114715726118335313516281413311568826237564422262533666863171161351535132828541153712631518514364213423635351227422687145851457444315312525424331273635976439331112822142422337411722156215277145111257238721452233415232249412931331153963261536232133382432168112675442577134282322338625731254626836463372253523833424131222224145983433131934533256431122323253232351261125114221423251187161191472133158546611532114524714331554442321214364781724317331348385631561578132354112162645229238933315263112651114123533746331232341322511821554129347486728532461526217411841127437121244111265249655739652565642222734813731133221115231134616117634326412341525411233417861332247299642312312414752814735172437542327313236745287231634378325267215735174217387331232542553938211323341116347815427411123234644437146347273534494751212551516645258428273152259432422974296472513123322214328613411117422174897644734724162563441373437344523248379165651534543174594371427346216412656225424833332771172167641536213526113337255253253825442521122221534521124569352221633556643131431671543113574416242651346322467755333222113242325741123611116525112745515796231723427223168575581552716235321181326326213732234333132514136552697411354517423431283422324323226759123255372221242537611424444547156517215165652611754413515211114762261434121561464771123926961523553239513523321555146233532532152233374232525641366371477621811335877531545152364334345134114423231536465611445352142912331252615133342976312512345211254713333336172335126326216331334213885842364316123324632751232222173531423236426124148822367419911766514611415731664241274244335233651751231369314142111223262343441622122313142112123611164315357195482421212114331542314474868155212315671326446111712327734149181287314132529135524438141548338651455242136216781517173144541222641517322311814126626234626139117163546488416518726325643635243121642242625247115422226227213614413341435445142772244314541165467773111564623162412233443926333131326316325231527157513512154753826743622715224748153792311932752134224835247561341514552235574777193671444836356923622511124284724113461915623132216654283223124323233442544611212972421921615752324157826275373627433421615513255343424346191832487323912214687242684214227576654631433255643531332212553595262213275533524516715131591116711243745633372554325433277449244531154112551272381319129361282235474551244112113233481565284561128111264323355232522433121444412511214442987295373125273547222321412134424741433324513715643243623432415582642853296222213121233544122142114677643178114812227714513178363637221134427546664384164965331171654464441545212222461232165387548194151852182455241144213231236353451613414664411243172617731412153365131613113915371742192117254734428712613932185182316332635544874435613712153272323527532133152253113132434698275644325327364252426365557359314246123934543851626623813338588444174612832522338841152215797323116351216166285231341235221662141413566543128162335342541911796242229216713571733366457614141657431551331131312135414136452525324616286512614149421184211411528144516662141782871552212241621895432112233148264744433534512447127321654143173563274186534735514837371745121584534171412659133257182481225233122121355326153467172156246144735792221285629932152133627741221422368423175226441111422722144334269814634686671174126252529111231523731455141774121865533851816637412642138423615111432258821752523613256331868555327143554219513113331321411412516113145554223854512572734344312259243541539118433463131528516465615314313352636452126162212661345123754415441313278211346234862412331633624872479231822834441141126135121264293112125611821262511516132751726161341481627217541143314126367161146242742333515272341621331224191313732631524172436242252332251972581694486135425141496251924116711623334235462134528328251833635314313645165351252311959671323573435651482352211443246241156162441221195111125412351331444145148517137273382621321521643268122181652253143425151221126111537158127492714122478327563525462116621472141251452192861653543131763798426225826136224121535713231323448195613155847521481327133431765424121381176922125335322181596425111169623923473355824634132422473262162385561347341461316531248117625412134863122252622511612735654547175516248164626316446635119371684981321544184212417411142728411528131216443232312262336843425665575679172485143395111946543472586255333133524735816214272154231613248163231127642112122316922121521757467334552141724433518232515352758225352931136242121415316251433326331316666356684132612314576316822247911198171644321728551712236752444537418118921911452252231322641151155261352165565263626623511513148118154574177613242232374367785222179424411138123512529171234252544133633121832425376348847337632231224726244335241146153125122116323425444362228626526227225515183172172156312332416533274532215431542497663281831211265114564225134234222263559125423514124852253469873143135223219431333834574722355516821251125554626916314641985556111245673614123655216149511121274423836421228343231281237112227151174135417355651212322395651344129792433221232962559332465141622224147232171727221254256333123252419162831647841127234154567733342333621299541122733311424262522151716233263346551577581671515221274726784686427352623666318227575272255714324236186342466853363122111465711266261224144743646912142312223173243524789324931511228574381241116543221139442483636133211312153313161155266133421243931913212826552845577426535495121127141352119133614121162142121585231957415485622771222212534165262567864432551853112474744268138962229255439334561314281473435452161343644533437633439832721121345254513123739417715243451241235221142215174237745337156222456222123351843363444417193422452114622783159122522333523253323534275112613282383413321311252343313172322315517335278214591321142217213733865617432316132233451543754739264173732741612825316371372967316138872816295422335567634441524811667352157126516145238236153111312212452763362722352921445325195252512453445332116254161972551214574936494413567462363333444142225728156542413842138345141693356545373152645341318274568461324743256227652121248342213383234232136631316451567341917126437321514123343239851712144221594111614316545147428325512472362511141414527146425932391142722435261245449313613214136515312146537315165482742612111911411521372611232151815696221453454412311338193221687122132166253213165415414233659718435233521245514553235337695737135512163425224225124376671146757636331181427435131783132233112137654123151657311862114621312556652472336149568242237421613716111221252874225871395292333121255267712231211853321153231873351131738551234186141822315762782211572311385537731185424521532123122512165215314365178628852417833872847244259863325473112775413232122133514244316154176413326215159472435141564144545211225551952521266972434213171366344711353694525221242618421668356321112392944581212257125216245232671332148136272241995534225241332515467564547841845159616224221164223331243575441662424363961676129642326813232661224123233113623135446348113356345463411827161535523164452249122531587111643433611811212114118632824762215134163515513146541342332339381177652311374736239214441633344625325262336216718436573421258343133176411854161151311372284421422821222311262761247573288124171194484417126342215311676216673411442251741857715867537222782336743178534357721111335623265552246424516121127345732711541213114719191565362253541118613342155316328876671352323239662134153427254151221441261833173263145725624521856341325415541447136543144126633152563235314682545319261195432965632752443381538193814147255912132426143541253431222236221371758315553141522229466394516255616156855443135125716725353122362245562794544239277137473546413193225411558412191431561144265244169512415116231426377451451337363147211243525314272731713423462237225451324211182665672734593413216337323647725261232223713262162315413247313119211152161438214642138116424443133713462121181558346241125123127126427111287446437614163156772548323731235248812153561943311642122644613121624124135133932642257321733841738421652465527144722124242376531674461134123539571214843244236143253114222721711112422743264212132277156361153392832414547731615355235134644835212343922233671134483824411537523161591372718553252351111679211383411134536237845531253364311211538265262233212125377111254723212472222611178864352729353742232267622264365552543266416252461655653112562331371341177532246368823251551367617618325111532151311229681521588525127165574242151251327516411685116747344553247745126135257262356211255171355663544745137133793236292524496173392654313231431343328347725721378624122323375556511812821125117283614361639225512512222813118233363144343562311412575952315254512672211772711265131672411421419155236685363175354261613115452131185523115145283633713382413124835143656611319233137191111255891241211363134231543224155471432124445234423235238114441584516216116331631375377355285418337255182354792351387211326877421632661221751361733213141471232776151521334359183211758557616485237615772639717159814527245311426126612311127165167153431266834347243254236793253221232611716342725121112142134642345371171516633554513138535641753231613432532615482244135139636135122213642231468212513141531451852346363315142234214567625167263216432882491334648162168964521612263234578416356935741711613413161232534252116913634352362233382312323526491422343236184582354334256234664325452364717442711731131335254245482781451154541452435232162121746245651343457342372273548126146431233615616514421336231233311181213811725295353812512618482958832242273131418214331146952711113611455285453243568163626349321871314537248234343236131436211322611571223343246343646361132164718412572314273722287631412634122434375161163257282443127213323515224155342215215744237378391116343134743624622378182347313763643447352457311381116413118421145431444525668422465126651311241115466172112453135432111414215135872533426552631211182141531331425316646447415311426665241629173219295615721166858116477138514221465491331166525817112552447124523367224222554213113366217432578332233552381522517429255356349231213282513133324121484646285166132953312463351142147219833455132438577262232265384419133332326191793137174431692263857124433955247746143633327234145236115153741457522521127412642362123127513113371552268214248474631533212417183418253215532466337556353361261681372425722831345673138317361328411325852112481337249276125232123245731862344549245883322812114232455663244324514244415151344552312836315457354391613144123121121932198626132482278872724336236112236346431261465217154243128182374343749112421485171552625545373222621252151262121523161521618355111472374349164736265176116631272734522213233531336219547544314112662354515151451613464358142632213116244467113243623117651623121654512115222661553333231643653833613726242313236166451331114231641838316371524155428213333785118259962516532812262147322674425137247234236134374166132325749549434473183746725517142523132123382416911313145455524212627213751431689531635469461813554343826653133572556663225322226241246113346322113228341422411224111436822195678165362717112932582611613634644221142574114841123764476742216624112159214313332411656411384322242331232742129264533251413385257425432319745383393763738231232441213722473611551632111911358157315717713754364425425154232514935155137113531151883732816931536315714512476342444432238386645313214163166557152837183224731558211771533512433831711147171637137324124771823724337324333323333121232741531565435455134652121167634413253171544721797225373474133764475124748635628625332483334513115833834425129757127622297122885317169223137247254849326214349283326143714142129123641123522516924817256261725448562533439538623445217731443171629263262575635548221231383162311425132782787127451166428434755617566353814424165432451412347131265614426114477167515123143322136221514444755561424424275134352255221921143551262527273235347132854326712271211156812332724472154162632732167127421126147355234116612411345811624916512116411568458867442236965332533351218144532382393522116237636129841783422157445244556561321415681335472612325521812643782275532281173513415241556233533492111211351758764366224122524127733411217162533412123116615115242121151913227274219532231474933833198238541114824325527326171223453135211335157496311121474614252413526325328211321258283323411144161686633458562142948728626211155135115697641325461481443135176913342738154471637232642121222373212235422329143758221225138211984216444555459473911273342291646457262112452132313667336793491216524521325841715643216321672648124113129553216111347838793533234354551845243668186147543433276127434538682222311311572623254123351144289231616323631331363514584611159122355355113281332456158461122112513118141753124128364118325211636838474714213331122542481434187452186331127127431131141863115262514273161424162332121212232249751414128322251566121412535831117146486157316252215838171355176853996492423134435934623575751215256442145613533426393353665235225312881275133124738716423122636815542471232511544254523277547442673113418166292622182138114152444912221441351256312316713324337213733132687222484343142882371423461636436231114474142431411241176711332245923377283333754377122127332547451774629412133111731822551186756518625716172511327441142113522672653654212126731431523432362253213161341541347141451142125274153251233147422566389312111155692413854314233315325235656152211121441223624222877214447321136641581144464124218411528241276342228641141143832265452145736272471362361511176338324431782471533325536461433324756257328423537416345353516624243851261524141145136213777231121281442321242186371234551626134834652423214223533124364154345113394616326632241638175122744534299528121293654514416377715172321274528762323327481453331223314425655792574522319553253142811234775251557135426363181146212618541755427279398412134431355267525776114227621331226618276713215331134715512634384332821712345329326361251343635112696252446514821522263545417136392111114552173121533222461883653114137438759574474121185551233866611656634713534143173314371452136678521222157111154312139286254142182264937371112752469121821451575442133421156573776741122412444622297182114423561211242284523233261221132634468421256128131423346127616131365361586312241456312172355241343253839113426124514522333226138151913325282131314466281225413264126317122115533851439363262453533335421631127281354125124312235423253974171412212853122513614321552654943858136242352215543174811476153428141569445521626113272362422234167325242241453841263346466443121561117144649346548177241674341241161313723833351343455334341654922935221376314772135414595316573271163345455235312275433312322486555323767533132138251141784474171316155515612141211312442456632517478332354231377216394146112115246185274235644386527275345611347249231123882315147212275148273377263536452524337411387447445312911754166233411757162217714211323425286413253842147262466183732312133252623614414831381125133738465373124274343457352294347536234117212142164234477978413117331232152161444112614855852328764454926334473452331513512521188221318615174843227115216162438311217122192581744229451179745577166234551712613111486121414555613454431122435172515143561625133825311247261646261832321323626515426545361413767318422623534251422235298614222617161412231732516714335232147522118321748621312231126215311652365362498135353916263533511517853911231361267272422122523174123328311254213325514461271525227533143353571318336612314977834227825222513581562336135565215114313215395777555413243151112572122324247562513721451345764612225125264326623523476111374312521111177181543159136429831731441134196952377517615411642221456233121556112351155636225224227215524233313732812232552761533373354353424516528411295165273213727629213143412436272725287522316236261882413221415352235462251425426346352238183191155442179172624623233437447155233134312443113317284823513114112231186343923822453113225586123151677271261213442511281531713221252345542251124662426425931136382434141243357961633334212142951472214742116512319135332211236537123444416954478631465315124667661121442296621375736275321459413222655412422112223223126641312586518526154817131414182225735568633281922518412112567537423133114564636161213741438613644711153632326142136419845425526855612579255341315517134227278524154613137652164329824536474628641344218114326196417634644389187363317233737421751345774361433213517542552131241174775225869134443144216477322315636232141231611626146632637114346171243621151464332245795284441944132254741373135115137774279316714343655782165847237155612137331114534552614231723766423511523736431213533182453423226654761252731222432246183211229965872294184637227215458162114226161173718231354917428415137112345274124462555936547462354615631332432464114174156271225182289743132444521684213352624151345672444556245264615466323941137471164155664131257322171742324858122321563352351211255427844347513915423312323323254331114263525911186721812214273113198333316352612162137222451522582233833311926324831621513541533723346114256286833111225771144944539446124346835437235262329324151468284221283945132831283135633275419422211344964412463631362273823325115336154417462323747411643629443761517332311426121342132441221544464214342722143261111113742464232553731565531328343293724171222412354282582464812271224493844727111485125441814429572726725713315263433911682726183162421961224263244156345413483242628315442522672153146614211264118716524853262151335533135216281231533724415185246722253444641624525734213625275366542551323413857443317121443624462842242223634432161321233611331645426282494214555145135171725224731554935627221721632716444556512831182234654916539124435225561914153767465673547761643461424246135521816971311483124363682315819116159135547524365383521274169372415531146315196434511724613145131831513528169962166415225311217213123364341213172343334613352735445321515552212112347133816942135916167394412775154116713131368471151241849817352842225412863574235613373776532566644133398353321115253747224232124792641121151245222623332171542718651112315112455121253413366861113536622152142561325126616212242433422157645433134114454238112315233157315125215633236275512633447143338356511433112755322557273944364251584315145412154135325111132842623511235322332374437241816674233224725468818164134945343871222133576513266775123157471566115166124453161333136273477244158343782385211534123271872731442222356636174389326217416353651342321356924121331215313161314114542963433243984345244346741488121125153181459642538595114412352571431611197738561715552773431315774312153762641532152521335722111427222683455416537671717242247316188624245722433561333512541846921111345634551818325122622472313654121242533635151244372632771424451431658933334112432434644323762221562412223322343341374644735743534827342211222537676232443791535612528824155116152114633141114241547321245415111242921186132693313125815254644938753152123342929133212663161127144111261415426457452283922456251122426714212133111513411714331356528343832241287153242321736444632877422425628412475421771133575483616222221142853212163252172651531331262318131717878233226251388352211142713162767223631151341324518313873781691315142376722141621617124335261144222221545112113873813138871434178341412154211123317349162389421327236324223136552431846351512115846632114197787453744497535544175711114513774529776111545761123311532531848142625642414994251353433647652154141422313525861315522733347151214564865182331371865378465441161317311522341158236213195514235242338386121461515864112254613331614166357128533811242269637412545313254283674823225424313678554183666295266964442424334354232436223782377475611351252362548452315116521252551542221553135131371142744224235512532146322311187631423344472562324246411534149276482733219131131764436811253825346134125214617231636654262647971111113521444356126553143343445825334232116575859115662142127412222112118156351415324416782431413326372631513132653665615234417273517262192843226553122513821375814625458121152132226392432463235215726411134321527225558239536351238311445525384642113367275521415153963353492252123213922143212157624645131524312233586434442263434231337173495531623137264641155324194346184248463632432787155323224515311142442757319423316645216632831128113539422437123119828431151546323542552842315615633241613317835232261279461166322131472462413262217826539426496222125541235341658213833261329344263651673113452413553474212281722741964115425215233355116317152153511172354215641183152542626392184764648441435121571147535483483437317286515262421332167672676211174462122511632323932446313251121279188246424228753683732841121542113717915821251551333111651124163144111225262243644321143391452723561642547412788336528821686131125432254712422464866285122857414181931426323723283682641134321324123518115133113514531357465617332332617637521644415415624251563176325342231313111237665123942755541316642368842311183251163193445117114635524454672531683763324515216442311315234412385532367226539333132536562221726521514134422621623422273517321534132125633716441313312841547531451217653127226174431715755222928545116142365113452821534555238111721131353426922231714118462472166314253223535423364851146121243464831644829521693214147517285454843131181866162372612432723253433414745218427882341541423511226335461112265541552352225321624522123932411616153135223423422711258135497134748423513137645775243884123151316356636138565515142214356143282181711533125643172126128876655762431242526144325221452624554167616515413445222131142767737215812365472887875759441655573239423445314235271385636624579133126694111621211311465635234512224463122111561176343242165614242564444131381467117332675192562535741754338541631171461214348551623382635327432643175228613171355751172635392343629433161847542171326274463232716521119154112427535521754712144357166222331435714276419113661328231522632626434693483388165311549217122432323223121512528451472225721623215361571112146213653124425732372195514322412252631395244631254242631712548216557871344913877213144624962117717112317252495786452136595126327112582916215633813128662411252648525117152334525512331433335296523223134128747262186253611114565455162478111641812412162314715654542647263586125322134322221512463624136812317144121536123322235526111262126222512174336369261154731111333154684684333657843484314224292314627424231816435522114722851814264151324134756831732127133851152627333284322274161132221533233261215324661223614931343826243243116838118345332716431472332511519124787133523513353191316353512584151143348923781941512242435127655541261652135618582435342345339755181476268427223435212344427521164512535736834634121287257361854135131147646195337433457852133122354817421372351842181842211433243413531713233372432153141151158185786261585621517244445231656353283342437164839235355614686763147552528736225154422641422422547424133428219213129565645253274428134519851567761515649645511217467235313311157254146974126283212513542122831486251264126443615151225131362653355121815263532455872822157237532917573232442953748562413455425583321422141152143542719686133181151243484231542133222314421831323385542156234526434823432216712751342351246522946523153675635448651343192194181823765413355455146141273127374463341418112196931249323667185611224424446729865352822991522232536171171331326645216734167191185517137511344681123136316785141846262715511313322185143413512432812573237188563137364531244455272551144221432285533616363641694394123583322562431275815454624351151334221639462133226384143213844412224122177617151475331197141745723231114546517453211351132344414317226341566531639518845972115823216146472471344214365525817782382422131573364358547435328421334112561612411135521724463316184753113434225171123392262923621235117431662469167133534215529765228224926176132214323628481138873222411515169532246346941528115425435728242816311362131223383247163211121744336577421271121774311343452321726243313662521173214272222123257235711155531824321421533852434275366231211381437681836221514137126324844612928515311753165632221413344976186224623123625811173325121325253312353827138121163951432123531711551252721552181542521323165439629463952173525355228432847115711163321237422453312336132114132121315645242667946755251634423271511421537778814763313321622477352682522333188111423122412721173145525531369554719212538424243285171531251722623452459214426682325322675575343381957564356613246174512411575773321353116791414195141784176631223164234221159411412617638135632723361381613143112326232132122614145712128553516623133656997331624429416353426613463476564634581242634612549676127133931547781555538321753821174329927271534716223246141256651243872214542538377523213733333744142922331143571411455454158243135861512241314518111244571673233253327539392126624353831341442114426224474233173181811646174254231125455272365419744853978534825314572729411632111412833545347429215237313155332567474317435142532833532234291656157352426311172243131412475553637361327432635238693448314755493411555223955221211411443227485237312311321448254233252845353281423683591475212236166412444223522647411186837324231216234358313342373331484433562633332581946444615221528912124612854251427245624271292297721152254426411324632621543676141165222833641313975432345265648612652927416361214643468761322584292321325315195445712327531564113987221621143747183356212752422422551461131831133227448125132456345168256483263343539624311312135123721352762322452541252141811252617515213118222183225211264335742213231212425362426222513645192216676118716615767144437245113121819357233143367322133182266472234391212213864582232524314274738153132254314141224275437223731222343734312232184747324415714124356711553272146715761537177828385136644251146415496237121232135776513984436322151441334945349254212121252532267623722617492271367368354871663853453113127254387126215231723725365422323115162351642434115425124374514611846652513151114113212273513132616151431617242112537318323613165659327234228212477145142766654484646322345856774451682316157495432222321661136429112231189522698444456541625652175127765511231853581453432762113252122525441543524392471671393616171531825477381247138435314544823113252171622655177411473581694164451149634521711871241714155513734214466363465388827351211166371111351732124865482236334612142621472776161116262745695233332865219415674212153145636378393711915551596813825324623143436152234252762417384562413711551461121623443339968529256412715244312552123136341124571221274594114541152621432212342274421122681725732517225127229623231141224732875551468161623122544531341311272922525711652175635352583351351611812413831251341714521212216852354247173341531311565241142246441389424142131421123424526157126231321751113363853117144573232337166151521391122471748114772717712597213282769251168138242424352124133544117431525622152235824214114138723351231252347369192527432232972956871352711521414522111336513156912614286323543726115344522113533321162242112431434312214345641584824323653221972861886151321113347413732144432463571737637132463766344352894628542245362415162528248232255731228924373542318194346541714346921533619393454415772521862327414282971121556423574626215322931227131413224218115732122132417385165122314316855222943282351511311321218191734385524555422652524428243223113312827149228121122273535251313624252116463155631346264513631288311121435623222671861313956937556324335239352386113242321444612144511623765226334152411339838142121324732122341131216514344128432215316222631382758142335321313115218451167421473226152742151655212352232453644173437145183135716422416664148631572112131933943281373548516216311226233597264166579263151174926437247213372612211441136565322657331351413426445233141347718244862657631335643254732682116617565478428731647344212181471262364156711422359264111152132551167545452762655351816172221222814125752228412754663581211732553563793144623647831111415375258172411121111654126148331516426256572131564822398167772515145245343122131173323122777117487324453174135138642643244244241376818621218319711541211221215132236251617131273315349161282746121532523326334431212242814584115431542132122135326323133721222355428217631545513323162263255143443161631257276555195314612231672551223148722142331533173191423345755212124122227211192657163675477411652232433322662515712134311347755235623134533443765142174812831615371222574765348122284221355312151612325741343446419789428141966114327253276834143543222271676533279443542179751315622115462334143844222182132638617623162464564942413146128123215412674618595243551158474443235362116253226454311575146222418217113711234233329582492315923633636417147511632652725287765113464321942352321123431672512675322325412223443513363138839527152457536231211836851711131522176122432321192534542232946386132257281416166373334743195733611124515875523211542526313372747212434413142124112373141342232223324443813138421243114144814915462421121542514215543632123522714714732114772812272751368411812857756511614936247931462236248542287188433419472321477521113324841313271126251223175333621286336256842522661337257424275723222152435376673126556253724332313442161231126254232453751644532425711216326415361443181491651415212571541172215141228111522266213137665557621615929342483141146335291836351294923919313564314535113614512622976124465611211433116473236151357314161335612663527484244834264271481234315174331365463231352317451141131346218214625423625271182621196131122345431753811123361482342221673256544127213353127561281273125643651151123133827222667475171233222761134454733451741611711284223265554116234981554231177362225111113831424134954318386932451133121822162783513162143299842472954124122521253652252242745177243473434459242323114131722851872515317565144453456143463773234626125892122621671531722254141724423151145823375266442284273662237245126321722231219616892342324426657754325484645596362523143481183541323714421215256738828471117227492691412362251352349152223314523615241151316515113685351511425118691218333324319527222251581519131113841367528341344313316314523288431365721332267222323522412142149321445276166152318315134383938212363142239342511413123548413416138621811465411215762421562154553274921341332522477483311246425243261422561552171231447372227115151228341413223135164321419364634241113551722438233354751151326512431122872476824344266933756122311451829633461271725244123632841425463172536434256175614422118854181542331311252125323163544781348466137495233895143541331634237551923318516456845623543212211725632113382214965215246316236216352231414833224481225212243782625168213521213232263411327153483261316121174536143163783537821535421422223883123473325415128114733522241333324231631162111231184412121621512144724171239512126411355114371235632253242114432834218265152537627843935651272544466256542215129314131322843321833714347372613421534174521846476538397917342428835715212655724144211619137621154274735124426872114521264546643144774362515231157122161636635141511553112465352441351747446232641944712219254238731754314426423342246632671231424311434111336436916644413558767233316421514276452153128762228931837555812172711444359211834561614163123136222114631212383568259162515226166498238351148155535741232133122486363121342335112357383241181363412125344174126145244583274267836225623728182725274429112232375667312324825415544257561566112791242874412257764367331724447654538552174611483811787431974518215254393651233784247241432142445173342334236446352451156366834364521368521331211312246122171124343112683226683193867731558216215933354131587152666417335175332148513534362185326294655332441175134944826982741122852125893143361323212231321596743181211536881234162116481276657412245216252561311111345326854562626352364323121562532684533212175233592344131563241351331132518528263152386135135754231158392532238552543123321382722713223634744327121223122335362336251531541147164112817251152166644148429465355458331445112725622127323418121524214171326363432525191641654175483623226474472268126265453723251311734579325416275233322635234574988224361411215315366372152212211323221711223143132253356354484331855133254814621313465527152856543322312344648321111251324353688312118314732762274495561674212147143383121443333483512891513462125661145713125218612521222722124764244114111573735811163429163422712743225168733273418837537114784345761263448458822823451172168512221324721625315231164163631342461447313522514321771359412444212713234768517777315273635222623246454727552514294317423715754342626552197272222123265312584212485476422214518226611567111234273162777815542164176121951454972435472153166622662188778213552227731225863147152155422222463221428371774272232361618342336111347322146852154639114568437432557715324129396134536174132731111311442569136411412527454522142641526533184214374152178213236226214119231784522641695317347216261437935458721565844166735165361664268461412625611111576435537527242244247327114412167234141115113233454153466162662229612314368325365321232412135441575721125215279311332521213143863455442443152481154626222455513716713813625424233444522126731136551211216143435344322248321332223342722131141342551341133518285413942213245321833211242547492151262653132865861361144256131186113711562163148824155362463373344274811323984955512543417377921714245245817148295574241632335528651472315686542445815442191223351269473415557627983232254423942611126223842261142316382561234164952135856532443187146255333243151165917131213341247227256775231931319412831144383811131594563727241642154522713366124568941138318535411613222163368549263321153231631145642243796634412522518741355354314381162676433334433322435215242113316135663125221261542362335757153568174117613322715556267635341227134772655813423421534564182453945151421621762118876396138112262741312122457644713225112532337212342231339277275557718312224535333362841112836272391251822227312335353111411282225513576124318151165653544166327723252224713211261226115217553812651238724345421611126371572762131255231115471142111547177125213313443721623376222555371315444273285265511121246212934622218133124514616186461115358136376249226164385242434315514233421232174218512911835961331425523245129213522162173183396242233286215415421477111177331511553276141433313738226345425271565574511663212741118222713632756136312522421348673453343138727943662523111232617744634537225273437543376724441312617115183225143422126539182416314213394213426516555156522561258853261695525327667224272114213754248612718661654388197166835342975245326152872814151139232343551341111123251517134431542425371221232247422367294546233145322538368125719546414333391542517321372284462324544814227255312511758663136763337234121321831179252341282443346714542712233994842181436754443217312316526162211255436341237354412521137135249144434384413173525183233256262212856513144321433612542443339356551414623368221631223671333511293554282634233495348213684661742621312717863313763221425321151656352924195145121156342881316623651231335223155512726464237781164664243186222922747748243521431221565313461294261353126157543574329822365121272152213624318162171361231117644432831682115144462261253678281141545133423522816343731176111255638515843522852733323824223126887753155528128522565212439266117643353622233213121371156243522311325921664866564184312564313222125124315542231364711311127633422542543364434942544527196614427812165531357644111737154254162739234652218322283623812515543352442128455135361926531344122467125396242227164229552252725467563144347224317625114632722454954645334425252514352361355351423182513312252635382211668157341223633594357414121142643211331515571261541883225214131637152112625294336337245362631262262221766741224426111222362223243225397213558376213431617121163366865655163671521225643181523343255812846127571141823154122245294632711222118542823142422173386232511443551441432211125223142148244623221627461254161331185465351621141112212776324226477161872675865341255241336152731627574378465636341532138122366615423335222723311576241113234125383328258135512151224415172152221323742623146931851248313154388338574725535231264454828127113441412246712121984254122524223644695727249611211432623442131221422163112432361558143342181247583376516144912613543336312289952224151611111127426752255652816255313126174812338141123772348547726554234512167181864221138476146917444612723374441112215318321177265331241222236113111112354812425212247675228155521152234363225772226533173284743133154615718231418616619111121229842273283351134546822514428145358358112562169373323163134212135629163211661265184384218834413664483136651337713263173776413336287522212733717912322432327536264515214886511172136535776422177744734111311459773122847122833548374443922127337344145742362126519421332326476363354327471661155622131241276314284226974731465313211562193333756626228911472833225711522263322385388263362714662126111213122411184922261134433623428273723281356282229165353962752822552342166871562524241423156415153131574117163128251115374217767561772243143244426541123553774421222513714272125151165122621313452254133252239177667383638544238451455135653517311561263855278524221538358841412352423524389451211125146177332315472551222212242551363961377614364274352514261147445296274848245121323521493292833251837745532111625121963111112524338221992787277212435146543424434654575152133495332136614415132147453525113213474114764453241851424662227282322238716121618145113191148499241443223536782123413631424215212225484431333363236471234314641171473154733116332493513152132224213266243532657131451953263131115523214732494327134253435212167422211311446122365221756612231223245256674215184446346561721352621815974363163241415636175323739246433676912241152522312423261113151411284645214651663215239373332456622462721964325338951267235135134637515614521143148511611473142522245233212241787334771734435668621526633274564362626552317722148612318536573642253793221325227411442344133275424416542431221233271321656246411436911512132125321144176334855231221114316563333524611315158524458672521511175139322351322282225143634711241136874337433126127415256357123158174296221179113674588445368424137698731812264396364194423224611294811351281163217529123353641241128214612522813587613471494212851118218745221555336271199627131682152117451139321147237415318622487123154112544932441131168123193257817864214334155214313631154353835256722246142272434352193146431121349161236261813321117428551455421254243241246425671663161864821449216755411515817441344216437411652774468254413932435723846521658223932412417823214491414782545291464165173681352225641311154524413172256241531655435683212594343735225562673691835423612431783421318651512324161427123714131377381558236524192221343411186358541492435741411855114127465346613432571315185126559457631823143121631153511942533432551191119262737131186244614274122643257474423376414251449216254332335622276244433154345231282653142266268412232562632123241952116572171441274173243338317233253313712119637233426132424222254315123385142714325524846424642335975512226166523185342355641466716321222135545272113332111332775191111164841826343975524248614424151673216245241813356227338185571561417335469941232311834344727162484145823935264513317566536543114133821316271564152342454226525416133155647823513876874522526521545715259447155122121156575216131244713535655194354814566365314166265351824417775564163254223667263121562661148641145235315232355464124254614324233461558653731513335145111516116144375141658511536624794543223416443311431315226133656344526724521141646932155523582555431428825353462512622911453111314572313312416936232312342243492311376211427242136326525624577381223838214737313123342455733134154115247242265621221435411223214124118324135146133411522242232431435151617532313722611123156145261537229684614365121343592128586686272811414312138961821919733234147573133214182444753316364211221532124333125252236776342553162211133836425185628221511144125374458433154235833945771413143142144285215314436212462721514143567842264511836643771165232561617532121314211223641832336365143613132161312525432114135329444516541715633525223278414911842376145115323143736331124821111135345969114525624151335871517162345212862421637113141223426211323756718517653623511547553224314131658267681161258937136671542621244252416642833221331216412576118351451711465395827534631878417524172227124414145661253216569259364666615813733457182666141666913922567431312263545323181175114341544314174314253633722125912112518743583513333111213264151275521682614325198122434475242354313136123312556772236182314217263527415284433512532423564318535853234544178313153536247433222131661511338322131323422141343121213532273151135132337554344273564463627351552678623471517821295452113216232159471352325816141147314391253732217331885445178231161231334514432442322442883241134722494131352682312224514213225523222117341131621243349842715336215171671111334114352241125198242232215141648132277283116568421238222135968311765217524522231133155432458833536255431241213232134857922428111383531151443725744252414863161666682232223622435133142433617111633418531147154231225173121162326273114121412884576221356151311122742815371752133532412313353132543333337224113174136549722216221363756222211214725936643911663452211217653773566422365554453524146645491383816253414521571116661644116136219452634137132152237122122116212276222862331462337114336575441192624168482454812641216533352642414769478454634936533124814233485826331162151312473124632111632753385346324721183174128234239348334356613216123126374131153341718132655111127615254543125123143322433821147349457265665553652125212264142155477323181463415115113497211615462237166462551436457381463541121422219478257723315232222261262133823551513691262621496151624221663432123223531161116634421123841253334687743544487131141611619549418152554524437628646642351246331651828729753682722331754271586184241484342158386546349466521317458714993511142251333551212444542826263516138641142721722411514232135241518533223133211411515211235445137127124529466416529425141321731117167423338254135541542811157343533555611484523754241621146451224514263475213234521621348754215451315872625643351339383311157142254718844661341275216461611224818136142655323625431224116825112436252611413291417341569898325432518511341784613224563882257171121483321523642516616164111161333554564146832226121929428544173553321144174112313422242145642569643386724135293655131247611154138362121415112624129211116485754145516247126725456646535964561337457836371612326447253421458164471542326275466395555261121217481378646182552256151656832283162443733629421628428434653511131142113253532574211464667455118132144561482621313417713331147115127423611377123521613643464241133134321356152558637623213225252172424441626374264521946136252312233223316122141855936314682197122511248356434151553321435533414533231162334636241913528232121713296331622196462811111414115535411644434422117641441214151236565125741144528441654644187165423282134554565119151647125122315352111634115163332584142427943581162173217327168135112754655317145312259111123264611625514335722341552831673482312226451196272442943516245116384431672262132142652124231611736263352626644225387442131734354146253144326362141142577624124225131125365361351632611757131214232921664523225774122437312284161121383251144293398165239373431921152122684713135211316113126511692415612122412372122271917282432113272115311771364433221258855161844551138622557368221991222621522425326715319222312338613257426131379443255152737611822466166154424311521932452286643267835163153417185624415421852122716514226165833122281264173873425237186242533671424174775234654523822552637842241169635832466444242121332646534253631444622558537814811415281411233298114415536452471526352122745265738421441623111111534227271141527114365847123637865757321252872218492475323162631766247441528682336213523427111171575312292313611653315154322326373461372242285551286234984114444251651668136328332542317237431523115134421126223513544977252273261253215117359246847442225311266483244713448612324425364419114224332421437412122433458959477614465631145732466241332324235143522251257226923281713413123682713643252484225174439421341542753575325266331238558913129144324732252181345423117131325211185211372616133171642129952245472679344332171331166171352339123131274521278275287326314636352326152161226212423239472167623356651645355164163116732832762158864132222987636663823384713345123373213694633471224565345395613364241323222832341672711631372431226244314316656839443364522848495894132531131413331715162729266341468241522115776734317452161546351365172631175253735135433517285239114221252494956621274169267521123126835555137141744414554441321381327622112652677112354118623536519113871636687353153313243236535212821522151665317156427233147512476199362667144155481444211644134212126317462251415242359431412456364441921561141292279435213522331541523337617314441711142145433641653683142221512356877514221431867962235317523865211131115513111441151111431524735321132417511928335246151143272385234211357636412233568563121412649332122515172863116419356443731515153153235421641111112161563526164174136112421272327567213431236184132114741242651362784948399122261745414541565324434264153633231225246125235333434229213721541125429353938356772447415221344724141433213562163534441247132992271162532563392545186461694575613136232652632443213374324773157914831365212365522917116141856714225654726125384421424454255342261137121111242921264384361411645412434441741523354342645318252151231354117313913152111381523416316483341565414975112324621657234214114615233145114264163178233539356341115582425341143124131769113363118662416346165717992415337264422666137915215161374312244248131452521482528857274315244187317147428224322272535151434435142441414134311429544242232358812844356115513213942714428138162423932312328634872751645519363294662124351617445227246484321111323118182115226573554213342241141223424513455614622412452316451432654637422324379312334258133421734831625423323453285625421113154224124611243483114422521727525351371853132362366424325552467273212481217221173545555417341413374452619134222314131466248742321385111325236664133781641452253737457615436111792182137722543162515215613512615565433321225134422344623169434452635412115521118251447424632324116782732651977832138843312318286422122593154882631153614243144349152223233365122335632516423313244534228513233217428743624216127464111511111384134216334631315329986242417674714219565734222535882131133667761143116352594122582661521685768743652197374625573427435325412128114325282695213354431322514143622656884694375323216596168222425317871879234824394577515567324152315116325437543252341182836114568358171217355145229171286268224247753424632483153315541161217421729755173188511412627855734432722499651516847863627487557265432664626453241146332458533658171844628651226168117828416142423121145442218332567211272713628385274444272625111126881763422231226812311428532132548117314254623621182564681444397612262312352851712641813519613227111255633711614125766784834131631355812112121722323812623151523223644122423316313933314741237351216645542323188883412463142334273676931517343251244813381942745842686321236117524132725654632344135282137624622181315258562527217321611479621372551343349431328137111397711632153763542511621211224315636177271381114761235714331621286134577354224542585394686115622226253678351265199244531362166324414147518441712733511674246364151533413551149291115125637478832533395317945123353187234149332734411528711275612235136145183142487846336863774572553436117631473232722417225575314238216228751694417211366354145211465633123153377432162168329449111374481624721297129751565452239514625252718247323714746415811221154761623972431751163322146627463155615953421562961527232415443335722138362255547416715437833266117412142593419381726722626294645652311123232745133413341231443411332335524844122141317113455381123132256526526156264544141412424314511236121531534453311149113275253246451327516261111143182474357214696146216596439397976246294684656233616124321225781237136944633446211146473167376185217332331635352672369114311649366345716694311231241718142613642533488563445613682231614233533383452391222522256165512167291495672411281133234124117564422846225423221132324149825174165719332745782471527535116243624312685343111721746223113572346822624663711112637252516153227526565551515153215242823232554662418215241243517223355232154552224347811348631446472421482224413534373512843757181317128282113116832225461543355541136517144261222941521815451784326661225375614282753212361145562134272215225231999295152112536413151132231241465599351325561614152894594222877455342315339142259817113565633512317148362149657742143432245937847536532941766262424431221162137261529796349917236312142526535111229513354212132672114231914356148324123113661322712131243845713172337116745331348561681525754421145138327256345542175194611611866432421731431922175566472196123515465611778315551988414342453121242433583179331127322212325213643711459111311465523512336551757414652647235242418736241331116755815516738253227393167181713149724923375151134122263339139418221534432431224343443311118746612347122212334263233431512455249524324711532336734625355142265292131551196164312115113146273265543845451167745817473821441121186279112414333311951161711318629115761294622391885121624113612423341314283126739134512226452464241778483211114355253462195723132631192134431312494361336711628653437329261921181154243342213158522225321811259221924776143151979252321154243428132612861422767121236767293226358621362183342218838462444371321281231317543121145123315335563154212133957626221331341961136844674432546263126792641333356142543612122635532647342641525251762813323131241768823665665242116234228122544468636816338242182478222828316866632271311145732214221141542318148424187441344222131652274363191672317225364682622824133568327422127762463316326921321313325421443342322677312322451532213521311516319144116337112354116324725753613532525431284111145822324132546835322955444411461143341311812527214211327252472187355444187133741244162116524358511262226543572327514271116244325874611293422437426717182371821685221278454537313333336621132371375944214251432466462473714132451255544916125663451562713596431626411724854421164531172331913281411931774322783411556154413123378173611131712331258353913532732241295267342382535323521219247312936546382726333322573832281411262452577261466225744235481331321313511633238274244128143114324262445611263364335745252411753324372168124413754421126322812523453725211354819521316255315883221112513463622265253213458371869372149118112111226526636653232214467362443915813476343367122636111422113452133722543343421334135361123631474116733556715155521766375342811423121244922273585883311253655615111423319374872841622825145554948724331411433154461522536323251313531235359219419523211382632211266551766143125231482551211513233175545143741213421121622964365285364614626337973418132549233134674237622942145163463134464775614686312631416618241343128337725544615635131931265331741153136313222259254758541128386731212163413253548984651114346425617567837251812546414251132133145343344567334412352774232122439242439785242316242886244411471812383127332756162321471941246523123123725111231311234657223654143571252243121233113237324433471726681456114323755635417214534343361112522651531323368511312441725164135817324564384352235611128227222666243455293423643221616215311381457132615924551361111122144267317122873761133139314623228274716239375566712112411164311225411815715244376652246463123311375126415583817451661773133142132111581132118652156645411234941431516551336453852731833461115637117145184741473363365484138424362142651515223325421881331469344461742511742211343155233122752217526846455412418841561492715131444562371382211212781347522231743526111121122661314144153721132244111724692164675251474375563912311319431951351159281536321636123131444111392157734421512124316443226461662133234316828152212134115344641168622755922515634315613223232257321711561224842563639132242947274343415113749433652323151421642252362313951846212615762721495353344267125523446143425218892277164239144561593252218672851392132173311218345111162112827217113365323263813238124721151224842344855381328522712165251432765145757362273351122434232346212572241551255118343351311347246378174625565123422386442129758236375157297478363894287143321115432523844654143332181312536241335332611682866233521872726548233841214626754347834616218112223693118313634127895244524534215411245149912558741231714255946417115635121291172215452641525116177513531331362225351654319364551617273453464352523242822536325112224321416136534733652871215323841375733252145263515922217356674631252147176584244346152312543441845278317512117113471312732724281539122322541624431359313512161153135263253112234741136183346532112258231251384317627641114222128411219417244229414311575522612165211244356133446315516142442516263215123931127347871142831315467215227127122634215963312216322413174151977221351633544134171781522813241422716432584217115328732432251551222268236554118467235456215157731214531246162212115215433785344233218123676331327543521613323243473523671152439132315553741712413245377514252219227263576112515332212119245466271354123275311711183122544451347134441135554861227545212429226236361251353565334734325333634151425113123352125663232541135767923331333175459944112242247822141221319435143332343131145534524633142324251723213421745441132512133522821342862462141121239555432517271913124437537225377416913262122157512826255898781414444715414141429398368582528114123631536222797117111222631464653216122158222552545171342174564242467543237145273231762133562511111116257511647143551641455325153175546678713535564443524742321261762635261625821119232158645326323578542212259124432646721265442344312722116245216212181881121614882291121484178423184176355846411139481441347422813215243435282452715738367242636548634681275617131133335128581162339352432919162632474161213214843353535414721525137522896823411145282814234311617251563641825633237412336223414121131335126143212146522434136323234861431126231263432121424421931631719112415712941619331312922325416255485371346396725545363581772726112742146122441572314932122341144643175285143172241846226836531226671357153232272311334612211712176332145631412122643312625471138448173844422758381623713113673481152432742284323126343123262253121412821257162714252653414425115464613251668212814117222528826649215443451454661215376624518111347522111263217279425211262132131412431254138225135282254475621312526311245758662132221151424512952713874571221111613783424377662612321818214136631438733676256161899182223123313336823711213333572563624162421153822111514314659332137452646341237477248211138841547753523532228736731534131454324533111252587717324155323843681318255214531421311741989941245322251817234872523312512212235277142112548219425447413132376525163525422422412647326323643431147224453157334164564531122323845614254542137514341431365611264214632937298641136186261686132813462253456341713211337254251254471351413563223333737411153871451421211717427151624192294335824541832311122331645152221921282252516314576722953863124621231336513271515245423112948341463111331213192683162335111882313522415245314761325436452323359112174712135243413381333234282144236932669647243461151291334761321544136326321346372666317133963641323125242255373222443157533145242544131235214547268319212258151665273354244531454515441615213376241555118348524242618434357663331956311164332327312769931744122242525216272211181342321135324212723734717151633641261194215216283361572126227611436532618739352414225251325953162229446241417721422265591325813164831344491373131812815545422617166245321356352668521522324223525152651453321261821332565753341531113838179531643221522144256542524313444521741442241221124824122148211156244533373596512781811336742421815527511256111936757473542439216258173212425536234544552811265435834191231384511521118432569763153134215248364222218122431184631156163513124264364613413387522812211172361121517363274131116423575143243223146266226274258622872622315278352182668511314464183525267355581221416322124724425331231519436644125442552424156133222484171511133225418931218392453151641554564211222831213464369115323841122725221165833787471339542473416112192663945213471254719383212135252418432362437142113451127641812438986632722151869514949151277115334117555128662111151398271311684456245481141386241213251224524623226623621151572213811446146944544612315782181412114344331414821367121574315342144396516217444354365123215841611595721141156324243735493322134346611172171362136438211221153641871115221343233284177631364241526471264551782548423751248714512533651433987321613119332122246541626466123172213831247158147231632736334852135285366221443766143632343922442427642561466531221553325842464213431136358324581352933922933228332213333513711112965636425348125528121411127441546131297626532112314128253643253534612413631283142456756212718421212273925172221118121462142332624462451393462216237354126191841225353533652671251523528111411123551444777684395676518382111446672262851521153437151413113434553415171183323343463117925146623225355855133433426313234211214451863123371116373271636581355258423232853345282115112133812313316122166234536434349841231187972193134561153416354146226611135337136215337416427171121561555213551826543341722121355211151632263141252623464316122752582281465912542347349175323392111431711738125356253238222422232412111442584114826774544134223114932361416533226131443226153423231417244451354657793151135144531421141313239613736236424541645281211913254125219215547561115651138126315164641316111536672211366324113113616181354281536975427621258261663332243261214141821193311612461141312652524485153677132384369411231738164124345838533177436413511377262386285512224444557227212393262262748337144223252662523413135151163416765212341231512152561845127727372111234122119469177512826211473231345219492471314531114267835132336473581321321522426251312541373716259551375234321267216788314131227454124525363253335761423372431812656211336715218151221145164184111242341873226422113471391831141362257493121152263168452822431423114194126741192534283311534723636661756381119317186622354476425317493163533257367552172486127442135294442217122941354152141413577352162211345525528755541712322721148787316632363545527332721342573812344612113441129442164377248227124275227812314134232437535529627213467112611124757139363423673413185186341241244871491321678151533437134421127347625151113414213451215432146585547832344814524161224342695131342528711325711131315136152236484223454216673711412655531212352211542146524674122614771721432673824335156116549824728232411441386112613562173961411281241735481236664317268365341714341637142523421191645315141384816774351613772611225652812212221826222182312333852514521274329386224554137282335147646327246231169253436651472124843638413439335612313613289251142153552231653311593338432362932239561261527415444425341731412443863421466861831577172125335533613128231255321575543861333311381223511822151651231816212112742588344323634127476461413681754223625613411174122546566544571269956114133921355413323286338153986572261243261362552265671541421298845543415125927631343126212275444413112336213242353678128584983743721447212531319624215371614636135553431767822613723758464632234262185383813144124392625331336435339594356355152243143545533119645912331333662776514473112413112817842376543119425863235491218543131316862481411247651731435357821884423464532535526146353262342431332274424421932677434154111758627432639575158661526131325225152112363261242613522626344485229148334445134381312131196276137523326164265741364246231641116324534148333313316722241151221515152112315134113313143182945136531734817286632124151471432374337298351365417525846274918315433761321513372417518225561222342146614129362485144762222541653275137574485432725513433332354643255212143412344224412271416248411148655413366166413436141524221326312191234251524221212234312323778512215214436555157229722562464365377262375113841633975251135125117441246637555515755335246224337341844212422677335242285235314458256731678213424115534466145374844238727442234466457332711614575363663132123621514334535473914452325383133731412632423521512114484415296125354422343623225331151972514547431672421121621249326642141344141681112432282358514222437413416181245615292214937316511213561222383112425877864421629114251411622111413316116451147341133186217312825122722242653431215124651111324647666216416265143775421151563641551131415312812612628245132512913751321637414115113264274243334311353751356117721715522362923581689226231432952215172256573276639175673186524321666223611374181136451514233254414487231626921413543111784312141195324476724164245261821313193235784222312441371171565352613215749128552523118266142652733543244457216523243131458349643154413551241243125116121274568313112246151226622461541666131711232332115421239278411321374318521844594461236172475331316343311318753431625231281687455426651123515319647526441313474211265424124417152636381357441531351361243794432423115589163275852654682418517651223755662733584862464456413352334166132662854435413525275325475623676474184212321323131133732123222253522382866721433222516555635554231124475276237335244811651532192213212253231171523136215114421296152237263175972654326355214715354541226271226145563121142337718415464417442453571241151633564316637126453115223115444871457153164633772637583821654613259612421272831336921747311165464525418328242526771447362134135426254411761695432266449736112532316111432127415621335143363114221341432555321558242182243132217641312156431142261182137614752217146216745384225114372721441134216226342465321692841374381473543225126255314473371844483631343231622371567443855371111133639214132317243712332392512124121621142425343312258337381192435145316211737122184664134612461513435736711716623125613375333216341331213422711821711854727131142336235162153961723267485113413318521931431442232483214415242751214142322255281533275373266326791342311261543522173222546131163221236351434212342276331511145632112137114211615216774143172441145725311423332423431297142543225613552595342664228786321251673132338551612263445124222311765284724262933128382122452718111322253314114475636636354451312366485641323621611119392918325221981175312311183134411465511423135521267355284562812586232123676211111254632126445814625965326154811121318711195347431125659271931462261112771311171181821462535963453811128255256626256337514235165311162633534355375312543336576345461231331663137767311566413146234691444132613535142534245516452153439184113621172231121132143758554153312323146681275676775647131269111533415211141745413413335595224292632124294148761643768313325212311383235914215123151137971273261252243211763255356235732564652164221361714211361824813337322125724245625523411137411611741333584341864631433142228143214814643672161143725266622663144183261211273345934422661611344335631451551255251151433331234513625111147261341441147314227312156242114242438771113541552135356754364324231717154755112469462421111331447411451266312226942172529365424377143111925183254246249512312231333422611286437211356533741845123861731341643767217234254834156612514626237535622221565426341464136231423663418428521751125474233312113536665373121344111161141185633413976757242331148597457751471236241712553622432561322252245122222641611372147316916165371636123121816382117212523262268154575536254111748463252222324479324413385216352385433222414331225311534432855334512371121341444431142451212261244413212656324665413421415617145616217162222415412631213881814792171121763345725547762476718132333123114313364642326351421421122116471531126423272254625511152122412614423922286431361142227725192434515336275773322155882612611581224235193275426133513164733553768542753461624247426969168841272423364713874591519383412523142187511236158445156351111577212442125143436124816231241372437311844416312375359615532514212736434363575412375283615474445634283154364575538137362362222454226224324317121355213341325589113713797198211234342432164433343145633424343626872242488215563342717122171373129232243146119673293676642272584225111734327325328333263131527443442236647444552165734334135111714185464223225513661736937523161113132614123452435472342464715244534375686126733873522367617428232472636614112142185512154197432425314766469633215144376532436566651527917233441235473571524159851473422621555213211223414245154414127894643642832419334182221224237625914216628454341633727531121372342342133365256446111132323212316171553662527755534526271753271415313153415534333475231441173461545276792743142324517299733842628612811541611131111861393111424326516534393227733654113142254554921233418442923281174416414427714727361414367151214419656114462144831711532512521729317938124834226552322474647166324698742142138315176192283294337412719267254214447852228147552532121116974653833556322124511726216914713162822112514211526236478632327415469152525417378531621183212144425317231233243431511571213371341137341234116149411324135228541851164613231538226812332254837565221228241123211715327342533541672234337611121163584412432543333222821624415631112114214162866356315729232714317116631151142714255112451123862117532644211645139241542231414868481532436141414151451151166542426463427153114753318113235155165314356144141311162532659127551345742312615357844623215455436621261761425122851213224532233214264432812922242543856392151211337341132132925411377424379611564536461671131321276138637438354433735456555721574146134431115421476127652426376121492421154152211421525235163372431168163474226311441132738222256915245112456141187333235332325751439515856823142563345343243323315513533554312663147362583127351732283746357133162348114715615344412231261661149116536364141445236941423879228284534224334558356336288363111234289862371635254414261346161814633255553617261241511644541119228123758143455721213254116161324187115133383726696438961723131619235128258444951851515268612362467251863284673431143185513432356243415557242241124376361523421124443571312662445312237126577212522222336597417324133653631372211253122372173221543824455286138115414633334635614682151551336425323138234816612455214611615128234613871353431444361541335113346264121486126556318752242617163517326351694325126478421262393515411453884351112825128111286618124113318552535115141317663443613134917437134225132439186238593362163123423127152673474122352732333257616641353323133343321357955246514364232711121722721311133335528594265357487822493131221155225135543128257427537324555131575276432373111138267529132572571317341433815152131221135311623122216563498235675623644545343674263241744523213656375591975782311215223238323176211456322337621113415841533343343217175251121113274162552267475343432177459147424726172212163514215412741523343316475113425633338231275335811533512141625536414354351222215336641544512595271313252225547612338179121574723153344458568817135528411555776275441241642561442412124141523211927144464478313384761365131512694187452153532511246322521352221219111211333676264839353375312516567981211536311251471614216422385111471251131354124112224581374137121672175155411434112311921122151458672223351232114152373594965483335421355137952341352821322231124343262113412432312382535354461713227817236184333558123152625231688913432268215722927441276531611231312324125612633352531514683437225711514543311155856552443221124263112413427422841461121934566748344414912664372274362167231341418131152552144177531421224315723726171742371547363764515232651231656289214781483356636165855353113917498641436315332623423153165236246133321521134282222812132234655513114123553574261211983121354315232312823341131677324218137424341517741264371144613851115964553923472453322166562185772341553242215214262374322653122311544172742573877417151792459245611237122586436217996422138611226776615135673843572363661323345261129224146143621833211564511254534314198767122522153631111824264556182347414846152457136875742564222361761151338125221175125346751263515827127136315212127616448284243121145133543452139631884126151212744747422328417247422423466213111332718525123552467336355231122223346778522226711131221716443511217864143285722554373215112267436134447936192245186212942232511614823153546165284545414346312312281424264117256124321542615448213738132422382574115145251514561714856324125392114384134531571381211246712112314495461535445235285512332286654213445227172236514614516444875932537521123348127345311322731184542362855396117216212911724287344341326532437572126171432364535566158856418454133533262327452163315638321634291413422237152143154253223332292371641254761522617149171612371582414343134663262412727113319128117345247363152412151691312683621653251571152171557231612445413536331522124463258162288274241237223542241432228818269141684236938242431417923444142393435321635157811536788155282184414625314123244134414621837926266532245921226616564261127333432423753111134524554745116164437152821443151373941121972381481131477471111116262416213948252622328752221375544154222323914834355354351521679642333544813133335153435432162268734814278552552316574747715372523361523432126544626526453455314234831237112296255317643371131722121512151342851775363648343647253822166263632711526531516344256411311633214643416541121584711431765526711143313152253111631332723463247334394142512442114246124154832753216423111411531161243111417643243383513314355111112335846231611745215263256131211211314153845551367311598111371323221281265214858242134335212283266254121516768223731767544911118435851125777122381671549431748132162421112774437775735414136951881374975314382218877531732531236562126417441152219152523148431513357221263646364463172732163542352312551543461756131214144152525335151676458413634335662264122453522811441539171413724256575334922926419261127321311611254661329364152352584351341735715372355122628424764467111544354214376113141677161712357662179542134569512626411716661452314653451629521415324421213293432394722211164391166611142871433322264524814148276532712325135617331323361872232743258221812331332324765852152361741151147327266111142824741298122146467415444621522131113732327824911532158515684114413525562156613575221437421112346231216232667334611251681652751336733515414734348422431423232131165243752223138636465126111558632313251211477334351131611977332614365421481385652212785713252189235146451241941368161717424721334452197336431786151166241243349682152525147562751324182122537613153737234311215348833327132382598213916422431498543155637165371788143654141333217345335838516719121248213764144832624224413124265556317433674444543252213164651844724611361328212411116333117116371214825868286234742534127952132154554182651611562616242157325443335161162332524214322361914413221113221335544663347252161253255427283266361442213542466174554843322347244219114614725263531132713357824531491737728225951738564422323743231931371756448218545643456114471212312721758523132443341575271555472444595912155513522226111234237124734426641214185911814456266476712117152111183821132426311144727146145537417481126132327475156116663227563246862212133674131824233585223214621221261931172332163333752372772824136813264131822227162441626322256517631233433425543471111453647334914644311854513119728142653923434436841341115157222221552123423183462675365181333161643865432355346416572554322323413112252342631452361986153217111456162626712165542412613851333322746146352171213422221233933441325834123342581234685515116457275632232324331477842216537213428734254551741443443322614114354251523617143545325735452761383441311136163542132113664123142339124278732127218427241431941142194341612261114633621216358124314385422476255583312133612462242323432867178154233186764641235155632222323215124871232517333572716321251922651121674342145143345331516421644311392552448135128131431325818571324387635378312437296453616175636126236375121712346871244223121245337711117255751224133422497642638631213277213644412123214126311232376156123442412385472779222866663821214122634523415655534413754392151325134242617616675116514312373731565272123316416922626725352211113442562441532227342419213335315626324884326335113132551273875262124135315125763326634684184432136229533552536422512243185412348622214462866125344951544623325791345353114194456417644215113512343313624124176727425311784221223175338825356161423261816484213749338547751283114427144141352246285165154136119311111312442134251722321713651319252848741282242854413421321373122156643275842451531165465337381325736732273293123273594314536484315656542832773224127474833123542393761118563676466222552517511233352275225923342541156543455273472624453522514154866454255541382884213671841571363845525725123646225271362212717415152211163423627444355579421721432413264442117365245617481444451441453721389311511312411232652319564213814232512122546245451642138149437346741812434261736512664716184141425257354121374263111714372538231214421333217415542451384231651426311231194212264222274368231735313814312156733382314313249388133621321415131216711711615432443652167346762833374727857216273844639576556812333725114655631179755471115481753141648323863674474352457445382175737126111211361262543244425873376544116811625735322551422212135417553211264616145715353726547321532772731348715833441657216361153111643132243236522212442243143733454214512269524212553322131412323323374647133312673154228215521432526551714424162614571946327321636531321323386175234455226272337231835241215162464546443121429164312233514361372256864437134156621252324954123713333267212757343451346615525232326334133261761315332328133224248451127212158645185512543114154334742142232134537157123262476721751152832352822721422646235127364632468346541242532133293213133152247143732281528136141121213757641162557231157161412619215234321123291436862112353536342733113332533231445662125444658161518492111272314457241223846551624764232764114712353562326791348241263871644638335224481261118615421711663626275152742461137173452114178583537221344412184434252664521124122314374433123333413182121167137521166414452823751432111646132375495422321614736422543255155134257274142121528447132564475216752821221443144262211346949754251555327363439564175314434214827751232524371832456575511211473535364543215167441375635246667172132143231324113434528332831832336145432332711133144124351392121123951241541262545515534543417637527263312434582527312333333463111422112612324145282124297272357943416164213515244856212212854573285212144558654828527798152531444218323456121646822525272224144256662137131449724823418165773153111947368512145264223322327617436526643173751246166517872564414554634712613512283443421122514116944347135741453725243316317125546244413647864241631426351522111233137126222531224912141245442145781535145615823745235414922581427171268574561142334223241226626421437425435651325245743541362572473531313441271525452411618563448324226513828187112163693225426559153311143732122214165241568264115441332422561232751154286111181693231524713158141572177447282144245726344142113445933444418625217251416667215258531233553452112637645167275521135522126322721422473527314126456311714131271255723358411552636553911321321122144733477745163238121827633413121415413384118317421321532143624275464722113246325162422594316216242141134211148423311431387212231511431845215747552868215123528863256433138429215179446232622724514342313421145954522537343858225462526521431132186271416541168121563351321222751571255764211514422111164122273361216633522379214383465738436362442346562261734314546561225514517321651232191822242335612615236285688135287583881112835114121157681947383365891271274442983811451351536651226451942243124112744272622625324251424249512334718246328164553141182697344664422131316734272246652747957256347113231145376144724714216425425434136135229317311352835348584165316322435134133242318116252125336513611132413451112221795461412213472112292417298642147124412181532559513521213211329493248261868815816156332442436413388116514111674141725326155448314633112231424112253121753724152331961362154395392663872127224112513552657118322412264515116127459222268373661163762278422425714254385221512312689456226241278142111364512153582452242396422268617365187165543461753461465143756155111765325415213456821542312323573122541195121562425265332421831411323721831446164664526133423244564491612612976333366542422298525245417113124153134521644741271262232437283471212382472143851613216581415326514319237321521211533331242213664497453318656412553134911251412183731216225843361389324233352352275234612494326575324445565676532346312233164181381216232963131323592396228352715253444131314534221123576866755324453348214433141235311821126254544773322577142343275416211814911453267217736124235559734155972247658116122561214171124317424423739351754371551614171335611531564716241321143541358791539261335137618952546459322562681884315126112754317814327111771148415435627412727531111855211385841217222252157762421577133114223548322434811573214313651359142547736661362432315114664355218282432732863883213211819112243164236271117143234311643723641721123672581745824128326132164433432422436353534217214338567683355654512623163615523541222553132542113163245151236257121526735363136343248721124173666111122527424434225223192712323443323523582366327472241332123325611511113513364761243954643857224128458332155231222267412153424413313564326424183243472165266737332622312626513411341242756721758922131882622537349375235665519117334332264422234658574611331411132458831472243112334512943213553352165423713941422831388954532844115259424152145744121342125937145422795122456564111712336567715546424196371264224376565973513194719546262252863413144831422532879818713351811224442313215183354327656326363162446511325651223647153591632313575442421621219738655111247226143511243533245272228621134216315812247626512287236177452144137248553175334512349882313436651522293731513626261332474343234721335566122523692422123246721213353286156526973112654561432323532161922124426332122421411423174162316322167471141522613645474312872412723132346417255328141473438262333262142116766125416453322451421193347524415146455624524873433232742524128621212511365533281266757117335418336415123245112264432617832111327121721325126543313253843243773211534723524335121132627232332132514332147181121325351345711227531326334278125434336244269124973268737643232112114262233188123728781311421751344122279111281147115442165427312876462461261423143251271173425444731173133215244351535216623751421753418134144741512124235681474342147393371625245112724414346155834572242413395111261243111741152441165211173133444541118121123214171812134558572131316613512521762536733849168522321115278623511116375532237222461318135448312272258375683117123718311211525131535342426246215141444124452856962314181762615412587118832616633235611381453843142127332952471435134491325152216821245633358321334462553133955121593268513812356456224413221161713121545761622345475276442381661476598313446116585361763942443112324238545119846637116467569536841144532338342431342112223758323147617232433123826659514674617873515622435812167231567433372911265664352245214411222326712613727412165121572842763433586452611327331956127532811813725487313475622451517536514345346319647756241519116745657213324221561116182311776724155321464512252375395612153212482561434343441147321234312553861353332913131165711421333135516532248484345764624333113725211718371154281376639535734134752316134374313113116114221262576321264643249335736222121421451462412161111246148141337548221191153633473133431211584221559647912171232621873421321554377613148122343262772236251856131354246586633742354175137563423616168531173166163332211435818444753835211241253268116341631186515743221178772234326828431134222431224621819171584525371333424126213246122438655376145413287177615612353349533958767317152472674148527853552114713716245158163425312347125612625371274125824247466822563112234154263712814547181818111244752454111142261112326314846341682144137215746321715436455355236182634815311684123546179293351481651541446445126445427763342751619356212333754628225321538614114498337741136531592151652232213343811577153315831689442427442368417333537541234475311123432484234641279591344726452265445136671363661612813534243231279754834524252323135548211123681637112275161344141162225552741456245139512144142356265253263514384131525412966132133552221564211344934561621211155841834932963362313145415276223233532582432414221348827445551939423853492338648514944426293311211613194621971424871664215312153381156112223695865545275358546145215987251821555632262426372115284224151222616423554454293812261594916971329353946413294515232611613446724542285216211165514431741123273942564192112883356214516541262145421443124243396326112622357197136524423453642412125633411525515615453143311112332863614111191516182245227337411537423173364437431613361113219321955244426223216532436821222425455263831211344433553982538928384435214327725477344576526483333112157333141168631611373842143832417415515372331837243114216835312136791336441325626212653131214523821715338214521734521121688651423617443621215414846336349545857227143772814316754141312541973714634476271643345212444541114386243327416819957552166463513221644143263327172646812442348355456377554243244232427718133425113275814285456257224852547531112626543327952915322647331927131617428812144794741811671556436166919226251432222544411132221577415112423223452241211911334336381336521861323827413712453947254214543731244511719321335536713362341715351154228181411425445132351894177311237552255727873512323251212124948133426324439245246786177142611943141431164514641251134412715312353381454561362334512235594313178115225413314123148321752321124222871326863389133415123133461423422139771215894521516233157625615465231922141311191533284435345451133472162236447316232237263165253252784114535242462537422445416976633371799362217122436121974223424455162633363544861416142632684311486562151612752685352554446147162166358133233556785229256468374221123264771481492513216525482316212111341232527983327162233215713716943443753613625734576141192668242233635242249891249833455243175142241414915427444632724341526641327768417737342124521441234125372143521562351314575822293853152362233812726855483214256525831351472383171652514254521327623312332852485154375727232143362746131911345148447362862732152552252341454333627227643235233293472422724321112142653164281733424346462517913516626172451153286711671281342317543312145152252119516216121523172236161276617191416436655768276427431151231512222252964741517126742417724614265281932451215134811882234213222585521623772321148145773412963356462145151722322657411553375461129791137436135112631166471715711643353311978461512511751333831363465373585322722545917261358551153247662225331316873133171128551417311763543525225222232375226572153563371444513456323544268258322322847226511166855222853465161146556723234931215114431337524254541124164512345167121652111152561431843164362637117512541264253956163541575815611113457311442647548421824619742155155125364833455453164233323211121163316233541463181266312214423843522226426424213268311232823524581212122834162521164152214523342495424117471387118236261236657151123444141137822114724358614561612635382125265246561137854314133212115835613713318159626538212853944135825252843513357917671823511497321724394641158254224164272644127312141415361214666442188648216362521127216821131215364277714475942353552422312142834133414154122147341326571131745327159784551764134222211862263931759352574412422113223416226454253652541315512122654616524163584234541145614241142321388711545882254381647317246832113227146759342385322482158511274875262521439241585514214233113114114272121521216274833523356392346321353122396725756214634241436121533533564546311985673176443313112366564154616326613534512283523581136313247634771535723425343317722238413523247223129683663355812172717546162343286231242185751355193422352774335583228411892464586721811222636563233382363123651228535725121133151112226212611625716383123151321484216751418282326546253371493251311491451352127633222875514517515226231471441125121453156612321386991634122153141552722621581212331814224437523543816211611853735734225331531654394712646625542511345312429794913764788532432213232223521722372122351317132534625226273152236333561177122213616231414422615473146147144252612635367684243323244764236565736445114264824192315247431531162363554939545453312365644612641171525635524821443243363112676315213558331342923412134467642924523799323226264513116314824312857564924725423434531111511482152433223464413635122692319254353443166665723652357245843122123212137211921325678332631313819126461145944227215592713171741853253243235162242674132345551212712244239153185278531763615512314288933533456233214612483441861741121756811811168121376251424621711596232115219211363296232614282659372621142752142212232214137222373322988132213622145518432123467363831182532147213446433353614881418432364246512392411513612223691146542126367114266236531137212314695477121416141434523421734322862351616165431583273123443314143145212532254157343444264715234113461412214114171311116256871381243315821212433682613425148221554262375242236373236457723452453211743131762514488328346612711513317345434247625218313111318253134338675264224413234564376344184225114456241346614412471771334213344615652865433111686365133627233855921517713357624426162344311597474911161137114218331532611225341258122446222239545113827441641667344163123426613114325721862841653355136899144342515215584936763712222743212242157325132986672236576842147543141242626124962617228238116736329322525415611345647322254282635737153434414533231594143912542654251624744412238256613545736453212371611612973453447316662326645249215161142413561121531226262722521422219453662863322363251335224135632691213314421712511222345331334831932237224432651536852542533926111514335517924463161752447112317713512124475545125811617571212151585672353211484216357216165253261415762325557542943832125126252722741478274461511253311256316412622555354713651263311632491225331131316164752224147135637435173531151611713496584281534161751115623154423553345144541223131454756215254652568412314822431127241711613172224123366181122352794347514322242475721424411132236574445435441354512311461147257613853925411113243712565517712111217111745361515316455398275211918271275154124712362612274237653398574646272334327456549136813733752885963151374753321847621281344734464555327721412222228123159424134261213721265334261816311482142123544624151112142236825815626415221235267532113336326711245233434431972611531312315113625417433254466226168361195248522223147652453741591351433552242145184313386363663559111523483536141853896541341125477212142121617928437432333322133683651322187366522154729212371912141212625523846154448562821332555562262421913352331474325665521642513552759374156627213228234514123366412125442143212335545349132921414483372111216632271314273842334564723275242433393562763714654412174332637162611746654431139472633215131742253145171313413622159734513313535816624855611622234533127612514525568316331536256132614342225212372151243496116122154231537383531611752225333311441158162814694151156313319182152322611363214113391152413127426171341672343113736321222624421688142637124935462374133662124219726435555459114131921432312924164311477233435536214211532762139239618221761131166573214351292414266641241327572231115763781325556262461437844625515419565261156151177531312222621861713482861254415421163235368872311261268442113425545655152311174228924524322613482513615412882426621256742195225452961151232174461587539522523216153831351264267164311845553212121224534266974175162417312477224544657222323655123417333556131612765291453562157362994252331121211643223615753153123522314821175265225147551512535427118932826464117142165921157511443277764778922474516534217361311228143332567411362372463313512564324624542622862423757153963844363524221532111216231643412145622334224942452154824831722548571255412171281732621543222831519815769326165321123621211121166112351844495932536641721372915442122434155721111452248133942243263556529851542383322116743121121347871895256715554337221112341216316554448763482423432222532446526722258419536233735492631353194336672336311246632132131625573216362632282747142117544253142733235364511763412152322814534724311662112332231695314151112343572562251157246224652218431136611212414134152657445251621636144263325567735563222214617292431336263653355762377132384391653648337595647153323434566521523127331111171445411537554732148143216562922211424881835327234623454222461633415178537571713151447532357526141833314838233476143363782127388726715411524545385162961337212451211643563516436436251413521438258544666232182342552174157283428761797223934525361713583452235311327111433312512336262854725121537145115537281346828315478553664251445324312611533114117827563689455643341346813124813148111232121624764151941121554132384113322661161613113591213386648214521214114148122294232712641433266387841143212334832111852645282325724551157547226521123313541135551433226319695142433453113263133431312621245255519317114545452267423142166152834241341116872124331378873823147345127162495465182598267261822411331184636431253263224526555517416326211411821241932674476432454318522162745211922215445161153123443125563541836533152623482116653313531627116123191751523342636128523181212571128241221578814812356122443344255611562224871612321411522123434914118516111838325532213526231853312153212177145717579154633363623281611711541457162646822747352414954123411689637313241161521212147361251763264718637142111322121114165132354634873163721521212241531524273512352482163253831311544411641773772541874436392845231241752313634763161372221211514643141531554331685121375146321265566736224123245517261256511761414412373522361267421428512766484261414854851456338115252234676463738811427451215443812142162182723855524483317414121634242818666512834256213268344752144252415524565252714262461632365161124252116427262273622481329332652531911262223462325254532531465817255812276462321533844354723132675257831231283458222292211852683215254327126336142354293462631682198532532115443151228332652215613763426425374443334413313621864454215476263931277973352213255254415215155745144125186481424211523213743333153367224525191265426253125341267126842467524191671418641246322731554494511344422316751121276717763612282234422211161472717158117617833248723423442151393625213483534364414746625541855342424143546711815722414119211465767551241111573113142153421224216465694121221786243221454518338531141385215411242128493345529321149926455556333444176682272256253834444352433234551181213621942422412964124366221322234262214572958213211522564415417584423151532566332418672382583246165311113621474238111218236224543395186485465332234511654155522329217412146331272561815451212135712351142271235786612412324474362316223546412154432664551553562882489215546936143275111723677753126315411822943241715151252395441212562231813313121433321146233454117572562511666743721611273341245124661253311532853155213112531817122491661116443755117366173211544671515226146113231135275765727216466211348632346534561154165652265128586514316512111132216512139411343525712441235141311222275735421438933164634442835832145122752522138324773242432133532129349428641546222311774171422263474457614672324135234753163836293443424163323425251654543831714921411131142525956734316223453113151111662536134772225935242244391522431321383461522145434222364414121731164874352712393214531183331371223114348235222734114362223711111241476175166611143511537432213112684257113187522431535213264141528312216112728324625541692422424537511352215411348121664651143233167565622573113296461345365312184236122558417464223223126171296389232267143332331222241327665453262353645285617254111144325155218722933242437239258432815862368313222674356937214721118132153326155751318743252113625211717353351443112117234661822722452784523331673619112434134717615616541552871587275554476676631211446381127122116871274441371278541322244655135175231212152431122553219142665325436814552145457457555511614161622533832744143146241125318354335225117523662561551142732254221531317277151232816117513362781537457331592418675239322242924713613523476499326411677352722422845721713218861421118649164424271267494615128871663623322143691395529642413769151611118623735111194651522436521772537232621264212216975431152425214832415514538165144665138236547335384356627343732227362341346556221542414726495528533671425762224334324955122127553248217151216871271115935321311233417313163566131352521223396682442215621338114623352314522136553313712222324241477521553422618412186116241323351134642627251653394313554214417512532556153145164445153232223381662416426233112166212121125564511631195863255723823226568474312361411325134242843521153225236246185952429214279336252152486265337431147426264441383821327334619211715932445285295485524214643612825172532223513115676434154482253267122785334422141543757111391736951349643532825758191315462212942572213625258545317671515224681423343521613611327142254162875248123224337313481727332513211368212346185314471344313112499713572624172121114225214631272733817212335686376456134214132274451334542752115625617484121121496612336535173534316643111644126235211821333394218255575318435436128955125919315144525363178753177365316283753521225581751228556241413541484431196332634251131232571522232514152375554123227214246214782734454943323152318221554115727213822318731133112142844941324763227535451713267954435375131412253323325555533152434642232636771564151123156423814185233321783112547111279251143466334553315138253444412422585511711111425481575482132555465314291228432631612743263216157536214623639343476543254332312113212431481351811165211441311654772155147941353314614322644133461134221168525351425223421527342114835423332532231435174311244876454465236314245347236153214314616471139175631428354221143646841736851653185163382366237144827242776312562332292515255624543585422658766715711621211534626352223415616438446322846232272231152471458537154527146842632723323149624641411635192286113541113242864224271451836425323411161311331151252114619115158421176836321376223164224345351438821344744315647371122561519111123739372444377844124466814161444224798282546142231314316584341234832821585281434931231123122329437122331231353852613286614331221136237761418284735672112367311173533441212311529624332423213145223341671162222422171525266234656123491116491523416724111155924117134143125511111374549593213512473383561314165142426466134151315634121862331673432482121722226398121262152334572132616443312147342242675165216382438162413628176186273432624363565342114144424292355834125642372
