26817487888594782959121567248162934243834461615376224995873946514772669919124488429975745338434623636124534842346942413361339429941525949475788666412149477641791433969247469888517239787374588564167591883535432872917294537161249255576566634535611696124336999665681758899911281535267343771672264824349286631241692632685437955926293447973143125676649482384121473481236793283476516124542172671886786397769985237186422834149443175584831345686859699887827588331254168275185143885131318575515533341865597434775243797568487734314587247697823414586616165369994837846138824463544251661234867985957884959687921343339628266124479513295744228153644147228131924514814515218523517132676153812189356157626194713221919715613491731511132597673411354548911891759633746957186512334229793451272889582833255246363591935524954826448223432938247217121914548228324923725828112661218129979328967832815898861437767285834863256649425437846227289444131477323597312987498644126383414217169291372347218321392129134317738495627821542494891639519285542528294375497375746476426443562269257626756441116732615633626532128242259863526972661867311447868425398176528177277936536562542958662277267717143472282246495743974345883212712915691395147383954553915235831723611638372867255751725939622837598114882633721714718825928858359183797246265979275731862256841925612295845164219714424595427463418874995548653831688241942918734837883563284663615915381211342333616439414425765923684418473278679433525143219457388959141748119513178142194273291197756684651623779438993997745739684195414512986895146933148654581857455859996621916728322744535279624398137259468582933488721113192735584858892521385625929275541712228173133592132628672332287319198949383568974999611511814182183175978759421353269284163161745597422319693958549837996365281314883794151852697928958921796253551558417177886745153653483983539827252282148486668634939193383515485966472124542343538194439924991875849824264415893279588783265115864293114331995181164573492846945622114771256774222455735556746144817737548191273433745219524997921233694256215229387444789651873423689845127883842759326775112631549627167757495467461333981561217119263639792983436419587891352397256489648822629944251764781512294544141122671625856284234284638114771793334482959829693476669551514486916646686352589863617769765869468187852225238122629213254442986227756143271964529325857493334934329377755894768546154741672645566266558383524914766225433471881141139595765976816461243942349818136131174619641437494562159125594589444674983449655621831192511325385167184651594469763646494752151541922891754133785712119492223521444548519658814711724468726313871123482321437316936271289258157532552283989198769738884647234717563432199953112485756396345995733164711635925179569859396663432686282174552413617316554588967315623929339373173931264566664264193139876761399477759359262532624984382269317652782732612292534298451964774488254721932778422578212443591759485488984752382634982744148521216224276417242473151434881188699657638244711634127452729242275318314621364275773518976842554443186581925151543835486944952111867637618184972649153642771846494232125823254443632754137192565397228296319311148669867691836651482454155146456668131575362756351999136327527926731695495515737222487584361112196328135279391398593692674931886723665774891116712379414574921845952713394641653134861555594197982513613582965551447896654528912655116933792178444163875113131829259556184275229587647314318363752861364424857596582911733541158719448886912773778545367223614364336621629443463138313512661318478914884561186574217411338596962651293491712392986472346568543121712382194539764369942532387465342561374793438418133267996735116617231973365639498552698591231427414938489464228637947795989213681987684467717249319174192246748661432429473354152523423178851385253922141833772263178287539734131442391675571958572611718826192949216251691531756837563941111254677736961378536228957834297175714691831825416546788335123557464945862492788959145145881665613443392215947191737361738152626531367757661368162742335153112983756957982757333284179531938239388748198768584682653382415513534149989195896342578583917814339613137619436476986964431243751555212533967625778781768811553669838741169598236598621842674394732468448363416684154543134449551226157734862775685529814716832567315188678158157432262565893462579321369295495586538394997161477777462468625767548537561924216543626919595325662524247796792849617114792359235422538959246115674999995153895196671826964439819323796392212112139193483223878678745354479412923871472438988442999357473153998412786322874678161582888145262256962884675312226854746618598147133363716241547213215671518236232749935334613654964791287966988158625614694368869361423822256278676327745613856772832747612423394943996629986826333736843843597378333662553531685226842299381319114116725475179912115643473383861165645212262138554731343494837224928354781423713236125882822758557519394713315727815239552919687258178125212264288866926593563722835269242549443958244735734148182497617614356779138716492268314119235652157681728633193234727971618731229772195942341281257357155471337431371989184543914349462329179851415616484368529129326232613849412348212871627445179399866649455521632666857148869959943517555673245344647947494324688546192612321271323496193525129159255637467892782147391756642171398686445951325378496665723898932868587277482977337115931931913521671376656124342662445914589782187947531713955527424413242651416997324589344683257899424312821422122775538765855796966996971423785838317368393924891363954839645883955329733833249119322651472965323619821346419925884993273344919827326254287849796999691554312324452311934617143378775187624733784837934449731689797223836271181937681364518717592883631263823591272919697338118472643942355122223155768636738398892454484428966597596182929446149478842543785799635693366155461291231543384493543219262923175768858662626241678743325113292155925524732232445555933464468359878419428179687275396133815896958952311189682643517741811643541191348158196797856752531441851561246144956628616657173938244817547265657526467429448437399311627867632974122782162334735588544637621195745676465693259254551596955437625264658453966277316165645511128149466471722924164985618965526278373233278513523857421617479841377518486539432484572332896181613272948228247993477181148519397579321552567154247999959316998643122724933828819438236338245516322568222578725588376476126516262964169781787346267629443442713774785842535248112356327347321112492916775128573829184734856637946143619532495925742171146584981869781764319374236139989455315499651513717319986191141929832556491764517213371381489153977483953411195839912141333462923487536527233259429591571844121129384553133345425897829584628171256729151199849675211318468521274761887114278597259826578614272235311949957697118314731727598482764991263768431438352924223549182895912736464455376628524215332497254947226935213355994593668983925636351381233882769451177536188113936377319417879892925235128917466342659136311527121727213374794113261432582772739777352153794689486691345655568122495432987127522499333999263192962988115259713989414525483891845947713486489482624717355545511311252465766245642885539911298183548649699449568635385559343372439814537131884815459685912111674391644277995692456711917212444141636461519943448786316595558532476321631448112724997452523423183145822543574775712631939418336921794712533918852363298543184711139733167431821258275929429571722438112357939433623871215425467594358232147767642534896766316339467157466273973397198475689341595673474529333318596481722868937962339713648117153953813634776231142931742781673945375711841974264854598641368329633794789586371332251267628291237264256389723472818395975197424999563876919937142554135882295844713292985813471718763216655116912819364994183966453826293469941311831534657226526164731936354296719137949894793831763282631388495682412467691121582286995166282857942795254271451535256674739913253999216893189649142951174682653447516918551939619783422945898554972615184262883268911467527615966292946335315654319827178752215322388787252217846654291393131244186972952899821248696396523798138635253781444464337873745234935947192558291572681288292652773177912114115198753322361619756552128468435443472525672136369741373429917163933385594357599222943356271421612934538142361866912518522721874452955159144133671417291282478159555377893711234477693713239965168684832248212327966134923927435755335723589843313861362317832194956382353581967129413469452261623532339611256337727672695846245753836254787993838182651577538649649522868646534553118691621815155832146827269628451766954977671883332266924627344845313837537367648883657245778814713441693543288471911329683252113865112977539911723936247911477423812333438432719731633314819786532236359931485322789759142333247831256641513422164731232625457453264427624674747231637646649257961366731215746434964565683221322925512422214742782933413828131564436182462583381278871326273529123262539571212695432716163847716792115995438167659372976525867392739433868429262414416161885733738735196444824698592489476543575416618771734228445179949881551266753897191985761219242988346415679873722641688147158846496749422343516817278998953465481582626115413366682161291543956255151293328635183974467331638216625979844867634892446141347698695515319583474282328923378528618523939328365921316672931996466336751669464984585561741856818438176164497699331486317546879541464683932555629174629871653991166711276951559763656827788121484143297719185688299219561423537296718491749423444675322119825746367322793337212635123714548859763249595312622429942217267119131754971831693525728944566849593847682566366912585194115556351328761875296289633414799697433992181718214351111313248831264262753623689687153274192278229762916898566854912722742652632239194572443574952638615312474844581489121875467996484195637483115696413193567939782747735968916724941715259417315943138623194244916124893198682933442164241282572951331322711431944594765964576681126438925275771517555981314643335542229246518116164312196546814849935578567883551961565422941937732339515476663131349713334534978668461811866919495762454579518836944191796233563163215435211158477325528544653924952694885627857958172695112399823878652353939339263599715331531144244813711497735732722223288433823931134157121173875733917666429192874631474668717172678572475883988964482596426117359854336661311969314149541945513581527962871724221583851396591322518728424625724742751618373874343719684426411324714658323758513435874371525471324625446296371215213616945862552141789466392351743754361391139271657639198731685728566288855556181997973289195471869916847497148145718992765414121511219172775756752937544325793112674614491896144461825151672356566927463622366487156596183523789841335287158655584943216449214439911277351989658532179997788619587399734238416459477588195629997919474124653683827736267155928782456451669823875255762572241535261118733928988779626213161477187548256827731154769717165411358189582537949783542699728281215261866981441657744757983224315787347446418222323935175266333652618227927995141551438253875766468396379176132114414747877735445811156655837816951932348629725531652547565513368192116642434137938144338556648568743664156838623188288369584413154749369762283424196459137351799952635317846713582672928452833926573584664257917325871345299881857131555521639499771753368124754821718694271886997178137472712848895659166337393834218492693237495814579722832256856958846131257928994395338685427148863693235268173636452644346446783793232596735811194483413736373643936426754319979121879577348849242642981349416592416673792568967954745855381227883874374298596359525912552133824127477832156224482281864974979395858799711167453837117666481623127541735666464122169922164214138937438731117467362193561757285876324292531963615281519741453562774646981641494223473167327149977787361148356535244351595126373729315296985883417814597444799814952585513224869733417132455736223864133149515811574621335643541973673453871749599781114676223942477465655415289661733263978627952915486859112135452234769155967146226891337532179692457968939532815421352323185465552118919152162891534351122116746428626183223114439225519163969948748282471142891541168841959114636938291231425344615365842644353952518464959787339216449127328468761434522543599647167916861886175771831152779412487662219889237164888745999275169573332247575798575451422895881267936792564546373928115139111642598175932347713627522358743744568394844247135778636761318149823413123323749492441376947618993494662994698368194934977451349518449125167799972823519755886448972136468292425761725145676256594435877361694841429898752886342437996645999921613354286597662241366253952626349767275756697163119868174135658559764131424836131212892813279442229592285242499759728885115968395535566282957812558339353498942661356943635362336281584119666872482643326799252722852491455692625389514596432946984115958291932713263934487469178333413115456427639143842897537847967652554278539214979518146431234879994437571151937443541684235982746982818618184623498943534573898652399459632169332395551544767532346542362479776264172951248276166351248679626693666263333673654537457122337837957738937866589739636693338871583347615151786231534788663164811831975196387847654374332937577246125845243446551285198274886723813348953121998431954954113933699288238865856543845144349117979677159682872411147448174763175887698614596697819779773531555769488537482575512593814985971838942263295361298845682131267738344621881219511916615876222847733365916195867644932586149265572961132346231231482765287886268992446811693246793593361333873939861843673816829832162211554832321132582945338586433474919129732755241849644235914345317312763795978678499111366159269318712534198433968257623841595328723438365155281863865755523469187121822358199761587261634953971654543917241258646481973448296211155172275142879855628926954511456368866657636886478345115234856892879149673334811917392825295234572922754918626467332844546792816893295964932352592742766751584295822314162945297535323156731725546376423312284862215357668396385221391197282581939797841911266439862387479453511376263958212511263429137398935846597313348699373813254516795649113746915524476675943974322514946428719995679133948929713469384147249415341738978842412693738753898898543225238334111755145491841413338952764288173657341328531365586663164745676121959122925714781839158945496931498654175738121781399191181587964889429193681298719274184269173611219518941953934967746264296748623296188349972147889513988578382588521732642927635168997452457722743233983916265341657536453979232498726125865383311117554655736476587741345548634566263818925911243631557591313751316371475292764332439316351934619841555915789749535151327399966613251171821839699574812878957797113296984852619292349261937146259613586843481914865693915683176796534783415492645376331413318312819265477128946182369228921224132917779496138461999714243849731567977494696454341691717913294233163324569869987216451774873775156382746728328265586725876557756543843628744747235731615421653153757534494577415574462695162686155245122868231172919944324659881257619475715893746732429813895854731927537364317559553289764186317812546446128169263832627284293214561819669277543113341347656985273591431612478957763895444799756148625838332641773554431397413829314241365131149383467599139534115136152651371981396118525363947986572228913831247832119292175494343334574792265535228396689274924915222275599443615254934362419121248775194988837528595154685334562798447193322433491619645987954212541863284568212461245269995924477529723662723427364564967441152763867682321427777127889269573921454592653235332895123441729748838459243112658941726257861945341779768416373524723282673151889646434572729152942976678596431176529366589946567133728382933925234294168116942717853763216398554687116541864823919838132139329356723345935473345697819874267884274623683932552578267147895178333415345592317193882392399676423288971759851396318678593892534694764615174539485153844829642152211425254583456218553291494891676874593557266535678393741438755736497249562947875743289624935168891413399998951379315751889992397861158353292359329744932496859435925731364827924453953613667484468371327257721747714867162926619275539571122727822374448486858492424116993113245362663998784331696336339542675851467452622368572342377768461424361422291893391459873361576783326264691689447155564116245143114327854991186778947558475716727792425831282167398334461332841611989936461766241458543564812864928412557615287996118798896845539419818489186312147254989652637316278155572794295192966714357667744898119935865626925761271771329252533472996763616161316482575736924765446515435619132127287162251888412483426865744963161429345431145311284212418832929834521349696625278344895559761857219489312957947692896931319138333547341245947327255433267459683596191834967528337684231253268648758419912243266312614668699458283462165385742651892853754768814251659821863782329318416523528564363337351131226254311234696195515284317378797548549929628392996187425428314194473127215374259113178341813721818476547923825817477117981499235116149161467276443615956586926946262433663589658839541371553439711719692156859489889437287585355879921875352242664196813846914247762725222983774973913254657315944596343426351464945561515146511857665318249267641572855332241771899655369548548499573835598641422183444283921558364942312341526995649785452179622937981849677665324277282234498966945311221167645125487999776684169369727423435757663232611411748331441799953551213258283547942417552817962726691447494131486255537752174314628942149451719332346666794594792792442538916933933537834357839238535577475194241552463436514722618434165663649397191662292473744974317641967229172389943916645748448619743237221428773973233621417679142755417548878788578663621659415492414592419295792711126895731488299519723997941595971632247824344827643458141792792637517156158452864957497139611579692678639963223841273346975546162731523994618988435421214496856255715153243383556724274913927241259543666172746384399322185253445351346266336617499875418747269528124331698779422353179592415845921771425897414117178176821359954613631794233438923938654323263228928338771533532275337246296684664881779411954646549262625967225881147127943297549158316782219894462544147741412237681779453133464765572391553124717756944956211858977158186979446123364742529549753718866631517222511521229581855843257981674849558145284234812112231251749452384385896661877799547382463738361189634126119411373563889481361185159631922564688266429528237127781751462149942451416394843715355435326345263548477295365178345446387152581867595481543423895829748832636322533395973587479426867243699754894575196593813685665395258498523944437769936285666363487721258588126293654552474861875741744152217837611993244993565265941136293214372646487152741863818773515426473987944667173132641155261545476577166734656463197578566562937573593732233172465978776828121876916753631916437163434519423192513529664571283754219199945928513798741462332245527837163955423574647338172164691426271887794136921662473736423337562239324531782182117396213774782824633389683635636137886557483824542733443675139923855173462122511362759327447135236917237665971686137583433256171363569325133158477999169553242562242392113269747142272321685323755811285654651972191665122784738816449928284447125529397323896568419364693479888271218616855663396411285647123427557173966834898567223749659583862511513989246657117871487222453495811277241715456394232895465779334976759394565599262556166579581421628261526278651798521262322538654983633138151773827472486776342983556772261798636341454663986728336796139224537316992219796154352988235531354287426641715251194182516623738689991741152712969767343846156278823944896824331669131216224327273878748835437864496585949248555796749166166189213419754572222484791211543693352793692274249113242424919214382719722352642849515675322412292972661252297421247418588337542955945523534274753314286271634685141157177944538728684577291762525451714548329267617223874276552515236511243191261149552886826263659826155298618196273764973645551836577734161575669625878197525382454225212897285612197376624657425316586973875598283179534869485479564247185694161343112225439696317997319823123127267138993596121457873889412197373756537753216291931832671154922462432927616577551465238117929922712423757339935976229172557398552419337364475127744712239565887721727365472598654137163979584125319343345359854292919656316633763562534789422496141746252493384194423229963136198846581542181165115364913742263211122755818141262682931969186617838149675469294862429148323142899277134483954216757184394647296336899163124311515495435294933518943454399426525981935154837382725551363755189665452461914299326957371145394859389961268141113533923928641685445912262867115412665541348539452435233244272733962318812253413651612664521891317118579615618784532259631821189719678689169565966762212377365946226952832339798665256765484793712651655524114855796879758379468891928122215898972319999615159594552615935252296911918837573947319398248485172498994276585251928823863747844781759874784877919694157597214327333391665716315969125193142272216493668736847734936976561621149317264529839956633229775614179125561383324841535769133338137317582454148469762578747993637269175241566993485417737772426677316988369589773812698947783667223284233877525749732898439961662734949451387447192461521466846969997845316199234627989386348736255249113929579979135612828416947124747658682584459774457236812965336671166815233546881763885328448539679578325232781518924867449876732527132488661595545649726967355997422561241253717354667747611979373196414434994773375848149237699328721269349559139912935253342312942938189171928533991425356855848239631745751128834224855578435824478447486678149464886249277311563728912524849553557239243985223357433913296232588368962261147345419958698549133863895173974261334856149979784315151392972482824977578355199387225381229723691885416483337946745341791135658641449624875734961833673995416955195439711126651165869785255811157574393617431516852124615759161524422517889217113712536588558145119655646226366148312492711762935583514472447688121159188382112392385679673894855729662519724588432817572229395616635363767458635613966941799762344477338691838144794784363418766587299657275744592286735129956572921331914881157581169147197593283689492732334424249348439996171491769872676222836136576534337927351297849996954873148199442975627947973448228758265393689595437195619443112423643831843141613613456958874126393345382877227236227169446644945635779133615819862564677481281633637795567131786652293668764146234818282228555481389476612888321536836759446661936194392781391515266996689163558768152298992865574539692665538379931727311591956224432614792255813937894656399243987417926414871142173954837888723585887148565612376684848998751123374525349566782749226778118754184147414912824256447487516147821492599117732293352546311982188133825382241795525724816321284525683373311432426711698515471418896423758391724916938844914578846734849187253224338443462534869134584697243794854651531415537383571267196593348937432731158683934274839179161961672852497247311892763641648718362223625638285548925864194931481545612358286113127713521976621145247826536965236273176253944542425333232279412222192491664635873197832922982961344783396492432134117691292182542641613142886515554814453341275198179567969332737125877159913659678959553242811624846996251398132435712375419419732647577732859489721691845466667278574694265452173859588567375372477961994489599653925522647778998467461198533226216264973911356693636562339311612754568541865224512972722959982595835869817236185314558851974922142521349346282827233967112791526896921121857624799114837532532477631892547312211283373651515736589698442794315191866493362276135723215688563113394257845462144448683341458822821486351457454644328122412315856593327224191572689671367968239472676129918992452621851535673233284374541311867946626645534184847947789532826365684243352615118541445491642527324525232943935756444913355465143785763495736166667913239222769686223435998829779897165818723415842483313115982432896982479857751831619441672751353158235223191383347741386211144916972339678265599187655949777587587175633216538539791333485995845259112888836914281698267781427721544559389171193992924748114983492141977244455865526516788831241177585414865232798282716986844218549493735472233911494711276666799434695656292885325114146358781232953255777562424942376514294343331876932832832462965822343741486645299678674569114636968978314728429316959485819649627172761925417219947928237896129547477614169296919174682156951368957569195797367881438299391738288223869889491666949677231352772217137829314182971428254265265347739759455599116532419141878894749524661226875652545697584373299967982292934886832731993721288783388723145259964326211854321237341853632261544181766525133865269357352648669722289545361749958298865475273629692295342194251522257429427673824863499566696916913826828596594426133693882492695498438534745887253363317654117757456424716591333538128117434582136563478817572831342773372642515174293548153419367333632864327842231478116248327979848723436561565734885341175669465891959417555114983917143759635473316751719365745918671854156722156272628254942747239855263156883223158766759377335741953556251659135432359769596784648127632964727194834575474185392413944127123755682658982363829848523657291214915189319211677512695237413157678521591233446779982721481461354232216971724145437212665823796397562834812291171323477166149369245651215649829639315187671359946381423117932936613863348852343439519693218646448888777379124714134817655718465588266341296833547383296995525234959617657624193827717174827164322259945764175314812328281739332614814484431712272152331631997893939662823521523112473641371342337248459239515148468123918287975149665253221992833424926795649828381162262539369441446941672934124514589237692533348265337115148217543875148834129859696725531721639152367666972531796247112531554388319796115191497439154939279497499792244543592152144667343132756235567884932783455916782768263876969758518748663372754675126477398621887338781317584776989493859233647959557518864425221541698315376792826413734258373219813442119378537838399944913313163351965917114821654495128799448963997619376965921187352171429336264113532398773525955173324861373197591222316845488847123754897272577734352385748912616223671659618885862899523856842741232494254691922665231348567872242337284237358519334739464247982571656959137443478843164351461411239912468517546177211588262557654664338174152714998116693642378816884429637258243116355292821496599824722461443845512375394188668597396133841179919183889551327269355228765622937751269943377658557317223863188341853764218135449258913221456359625264968668436216118787445814241825742876234945994557173176543741545118489716132136633191228554263699952921221793399557118652858684232917287945249655768157974886989383495264262322624477817628995848532552557729992157535798461541263296288214917524235543481365337347743752674885162441224227997564274296344282867263913364673588389315713653555146552734684251432612322549421499817737758588167459772414917934253334213312399864951975144424794714978412645514117515354119218299526945421126944991138136998526297738639211125933539138828245741124383741151942443132921568318171599753913852791168254463192856537882367266121891227989878389278543586728472814241875116753377643373965282969192298252893656319421433527271172733419426331252186514127258761662752764536725259451292875216653572624761911244196294929882869476575191614452511757618652935389124521262865283851738412791994392988472299311371854954124232937995229775831513475156911325453424439639847448224544736767585979561997464855376962215546544143631235347628761732291614936386388288911655663823551799427968824288254364584582474326844899487532461945741469497231372581399218741691437833329983471797958535452621112516367193414754385734133749461582979483623243249545225571776114418115996619439891546614321979124376182113672215724951812931141944667845427195467397337621651123616842437712325929191272324164862195723533956143962672192233387252485198892965777732128672186826447825351522111264375322953815711335133436296246525345557733545281782787383923126666149428673724924912736832724172954173939214285824291733137155237958491539413365721891351943417351376714256924178639679332331293875423173415125583265945429353437146583668455112872811972733297256198873811222886597838329435859824252959192162831257554629514379777184599468797392128419782843824365414883112375784431392136643563794843354185771622351611813761188152478617734364952798112367615457669336449853965773932295446737983983265129128592883113172685193711923884373424237389497324712284922176568813471524791643391372319476794619137453737298456548198621567547926733976795484469497223839176855526892728747469927656737582566323859667441188552662283859791697155291656161432488597885127235184414889543299667118266136124468997632134138452351574285536472591993981392373925465765292212111169936636634449532819149458535472299761475593425128172822511974871694672931631881885458173953211715642831762527251864293635292478325645135586173549214163521671213622751156918597139181595951546197297452341252218213132178928429828257661281143567678665796884252956858577774283843672542111912144523828534238125213373597325141231315362433361489682189863434989882556229986468675941546822888296429866211854443746639251544527365317852946434323972563492564999346525898265321644461644745983481334492872841635458823611855522911647642378984979763319929242916263372911513454137531998645581473269665945598483414456277858871361926114157111922459541987538674459453937647636135567863867653345739629339737561653511619251698287897349928422458719737374457675569323377797772328954297139122282393576739371846839815143762932683536547565846281756243639896143266399642476464211366565743754763924169148989148883994923617176561161734341272858427532481995365431523454882953239142183672492854243125143391458545921633359414516223928291316883426865353539348515671365153831381482487783468412313778439412996439658352958437353433521391354297252191715881866373824595565295447684126231212394293721418845545117153249119959225931745735976825756174163429815466816386115431365492155743682892274412725328442232784394838214374452314795437621152818546995245259847752869375386247925375128334327459935565831852713876916141913274514155868717358433789429952413268181118794271393359794564525131298396125124644452627999774943374571785199644586989445191842962945314146662377289643695554418343483212397553362548681633381454233776225583148174842124762716588555543268835427337134113268125485686555731579962787555528654752227382568535325447472629185649875736185351574124158763827665869351591516429236697332463763831833533713823479616533556316326675764933171762544417689565955576288592264262689294812734137219739165164127385471976773529686866575389781383722761595574285566443127859329984599468125292297672661552239551388256243784128332635434569656499447157868251927393549792511399849433767468767952943568997178694824184111271195281855661247379741461951613428957963885944243917133253939969437795821334485746362694441568358211568953374849495951478731725245678813513734131291264849369266427853263521955273353993297517462433555299729557899912171539822564935248865271644896434451372395982235544159264541361843111818188782833289924697887314425961397355786713533488532883947197369438465539476727331368699738745756732652984864891464974142216128937142134633368453956692344328333864317443222542987915979173143378736882186177462212551714546885264582271742648424725285654599261996492513532779884276671817768547835796192241212311941449419636212579916657996571473446221895329462535731336659934875725651216992396411467235628749541956587694675316555644554948149618428332565475225629775179378363446577846116139634844186432237312996213461418341796229275724234858845554639519539419267553257394952992596166759879114524762827988224315731682285142941532898499957516811894186481862638641176241642231887177457718314752913924771427638523943616374442515249478269181135373426263625916542513939734878228912341323214741511693395775612672569724147781163893115458757694134493847162786252798755267429861533994955669622899531443676466948972781319891797627552577211145842474531352222449971496786228333188773949326937826234463837588886463666321726542933947641411362815263111489147775276579765841984375998759231868566815483518297414565445429374553241289883254187271295128311248148129814694482711863891184897181375234491799482531342627334359764553217743826175213331351497568314638742487125825327573467961498663698478859186643649533662266532281862651175359439145247863822674761657648945275189996835541671863779896185321194757344569443911546565115296344416141696598897225123979811885853731558931424244462198717815645116966685271141947735148663751336756237775974358844283784319589417157292142324535285746161154391686161288425429913211417842477158151898626769111482658752239484322939456995752456637775249849642472539726787279611161191625269916492393332558519841341752123459854255489367789248327425322297358521578224149948153157714594216538543171669259374125288832345741412895452475795536135524385577416999436525772861928121893245263451391493556312527478625388185422219433175846654733391612247485153625154655763419299995515448691756848415997933793265538234562851163328323531364434274331491614173499879519367761643135866238362496878615361568471825916536972829968541511792647519327251391721393592548467697394192354478376888895342898332333199979563395315862385212859521541323817372289285433815381566396621625654897693174162631636417421711734948331969519389581696633736373321161431843955395529169227423785738951489849376423133272112555798564611988397766492639249571993246445166244613477419235318231453311159599743946232769295929355126734296565452944517366936311935126265273434431972333525832939227959333131983617173137228269724991627997191377932989437917454539548584329839589511392494323477558933851519655483591312929167634475437151974773163735966812575464691934988665185481747915174832826254268178767632514113572735738771437796264822719523395989928833477143647457714484611122187598852684692344674427824871483436811283347648272137927756984881881786499615129431875461291234118126383172254464313818116314546463213628657143716681151115516634648418437823689649741137448349255628384638796137353559348413984587594588262241714997995267716895425811286662368363382857823935842114516131973932913424672894146273799853447735891448161357626291279676695627935447283922985872513374375541537279715458125879132813395823966816527252242862589166995252464254869914774183361743964538248984672371527827415374929353194521861341389328422473329829118864171754994749178183234883872481341628995646556466222374319599167394841118355424943344976696898237385773859754415676743663686332694666622199243143178288442821878324665639881357393524615558757166648444532624915519444859867826426112477463121399265969687173538895366688758473814474129423882182642392591441756338819798122635682326871376212269597258358537477838947267689318827478146944191294165656293346176124436946348215118388145696437127798222544688822696746414783371532243474511425796464816456228671283155688229155932926576175322153696735938734248615676321965158441445621249116221295424361797953273163724814437834123934421541285283972119979128523678243938335921152196326342664746931794547754122489948962549698646883349931851826248192284246386745325796969368238242662546238753334176613134397713673585868417694466119798977887188842556761174233498482874934127644218516361847375253343693856699789426758132759338774788212231577953322686951248415741985327591815672484487994154416543336238969293411551487439118412671147572741453938577412615714879211895676161645953299183112842125333331786978493666724256988717248438289868264171775217627775524917385182682341617921355295535737412526613281827955121817954149658896678923388476344663545626436438986411878538499123513267582435542352695294873484119253879262765625488576877186529988553385674432552238338599139747465349341687754888418493624227616425531318166994855387775196265288319221596639892641362681267539446115976611211145577732742212937895493145534728683145816644593613685953172274339333751674887866838876725621293731396736878849419542792532813739565751578765163283742916262897939359231148715165498637228196233634442381388126748657793962136361294653945215354643755129469784573556369223389917454633743241599731333355365629411976747773132562556879458125614436838535894972985716385434545675563986584488132712474793346446531292557732222193927298517175645275465949131149216132523464717755121315644487519185588712981782273319914427658579186715433396749949132337492696972977152536448864723414878967713713241176591329238191752651545579613278311971352249142548158213589782752633718823569822157771163463333841711297263259747447265898532832312997132674426391613577973249923954919256245175712182686275341567536248142198483238813987154632311169883381835695136883215382345438512492572362643621255621953337169179568729129285811642618128624334139824771953788352281784298577259366126341511394541873454745236633128116235888886316224965845366833435524586811435367634934652963243958196768158871972114773146988345927854398829742297737581177549975548171495242877796494785582383286963369616323885652949555667377447736365715349576923727636286437428239616159529662447443185568483469818454563745521466517948734326424184155538263245654591115684425454999823171813459417664437334137427927126156147682558325335312943619643689322226243556746844483597893472391523633325624474317195579344639748998355484529156535387876922574449725721274184954143219232339631644692751884414643249673844662544322923862215878179986146371322154757563689129396728975796762116591783585273155738954616131582149894253933682772112295345241894293632949619579296411612544173339877212428823568493537184415513219369273521865793747253271699132518843728287959215233599287589751964919852116214845788466285431832978182497675771987861219953317245563884474297331197792685417963273935225674482368254493283892516646664618811454337537222671175828445955458611119651467956453291569746661293116637636272548538769539593563667415734229653445542972982331788514741297334966648442841228669911254598738435723329835934181715398536868582524238664969722739661648675722553297917443213627375996854922233779318214411299485628341679992366851357136918464198947179237514748573988458769314195222264319298447391162745292582492421999767133819923339472739572787645547112239441834921464143382812578594177726828521299134886138558273464797771255358264548234413467239651113186495943717159361271697591634686792613852271852775588714754284171749571549613267185821625547797319294986161511217932393748287585513154198856831963259959992546882436944856828155212286366548919342445625142111871625411556911831988978622729457257626193966197284942782544914311322352264686767127936343837221837582511343272991831143537929823195389373454765663571213893776718922444879925119943658831827155875728238459571749117993788988522482645229228727396421392988738823239664113753668292997232117214491472168686658846171216164263995513638298611364276372561172737967712191461533223637378552696712191662859273426661325758526857467397242136478484617736979197756532965913386773572312129623884865724395288564473451751392444449318815961962493968219425913964991668573261555177676298799851347766552933841988543912625435234451465161943881213923898396563886111549921733393914543517472473126657428687981862991642982911744375986244492873144448589678441678528421736299235469815666367412563687949851619353143736364749781518882426482226652436241621319369586376189234944155359183573292465626373474279581917221374866348491923135943533662559256938869637662527774164543334299264588592378111169232222115787594533817217841897758486866565152247556288846814878523679786222143469174418813536794439223614894781448643775446222746217741863683737575939348742738717533168412226881238672224298118481222118973932832411319986323155572422263892486828677233988332611343132395925626284568326846316657216553623756835918985136296223386682979522661928339336887964725961493414844413139662722128155366343699315248532927611785598239224329478576998623759876336534759879865372575894335433346194544399228162712188349122438988721871767653977883216979444678965619639148332146684489359117586271118756525934264666225829996141535844467359967542792167755864754558666533866685546739256711711662378857343279462841935766285781165917216655856536431111585346692271238667791162283339866173389615755657464177157372581167245534424217628144397592657428114523275761666385521311327687476531267459446593271341172982478426642995937693176932417172818838334183167953357322492129913873774936466418627215685211728221479175732229447829489237472523638966728952181466973595184832197563957364569898975541654827348311135862991667969171232347316144371434599924661993293929949298389328553585496394365268237937839151133493182641517164649145466634722586831482385895319972619819772576232943758291262277172845545344228335723265465959765192611781679534263519122271415539491921682437428251572383173181468337172659111784742551622213315627629662228183125433542122391716346931934822737641753146134724299593513419867821649911951195544794124317877394526652519478953647746951856466846278865273531412541571786745228393662777857294295175754556914297375991873686282559188163132181174723427433537533764838667143267341465474239243745285447818288416248246559369737834534298961228795948482228314421588826341688939143865496436412358559199577793191349958771411952738733115765656729919415779353245462521837119954772661524813434997653837568754513294238812837212254124952398315765524586826382738972236285122615284563923368522186399273375156878792747314938611371295259627571319832971562681727972727353125237111647369374653291494885665875732164937396539735712653111681112717625388154744315629494132922478393372387712246261971178615213262359651196857322382784516729457513266738288658283932243516663139581748793413622115936992424145386437863733894833932477473751554889733723176598812349542172288137271519157315751629318843564237651716952621195638775438639613722848799748953848766662437465246873248432865846625271882735887298263462945163223615943742777973181968794825481843475382256451422632166119433398527842961149137265122854461148715412979898494715353244531624178134953111179263887259256872682345429161587165247345696499199448718114333613475274332291477819542439817626513287541347548975611392919214543943694963845645629125325995467972635133764375573198475664252116258843787283761321116678736325526723426265117289272639458523316535128819762971867921387882791553782331516641742513656933774591824521927292499413374711469995174336759882422683691476678953596371524375162566576194353455218692672679422872515324292324429597754944976731125541517432949129262181948453839226811478164552173291321795834569462755737111712456885747144196776193352689298538867564319313241262389212446832556672448681491636675632859971638293214561619166498416522219878569425843239812863635765132591771768327961753254457112469124152785584493131236965924773393999612626571683241824839727584429232218514571719947989991812219672383826999889782277613326393534118372433341372868478781272761428516479572894876391533791221972578356768417874951688642418149793531995773376972598255234211719492717856326122786147264478773921361149895352533466675936687813137647499894263731917111979814332911323574266213315564189319948674272235973214177359121643599383172534741376973298392487137521989777934528884664911996749394676244129514519922574616178741697128971386715144189343419866311493138428851962297128875219927377222622422867311881666996692645346835337434525924925779289778649323652435231845592556269957431449126965188228712889613667278966315952288333234146781221621561235214769233691283434837937482198384537123355714828799857218766789887723328276334955872639171331843776113783475779276541368937864974541891735311643835234419513795312757826659421346117899212433995661962757544639476939789387943782675514432494816785845725545254628567553816167532338196688762144618617347781593768158311294684613173635326597145578655437452248287648891577955644595264181229634826571656355563421355849568283176518613341433927613975223831551665881292931712275598827435412657734398258312995367877133942234448273116311171168274273696694299172859176115344964497461152234114572496972593796252538321626741334981724322412327268479333159513529318245666962715297113289822187354762917867658159115669182976325724617547242559375341283614217263962736464312442838775977411126788259127617582177925626892364122321979827845325529689284764328193198492486751412573438548381858344256631199917999626281874168244553536332669182938844579524389923514117529214817633438956337511331111745819415613168394151511795192612985122513671311634941527196835865474398436744851629316524925427641918462612314882487924121734564687289281214734857123825879876922273741414565383445354532577375651541858255654264341728471487439235162597453522121222656961732981144945446182953584629592821127614912188751273794157599132747187118595824352739348556636394287951591142525136941478795212633214527436725579256264359221795359427781398816413241929167915421536243619573479815479755175722173154476476612627375854368213187451278575345765688463854746787516631874212262838112675181969462112495351827221275362652823961167467439361393598816699684868943115482464116661875313843139585933641766689963691753157357466766288259995447286484292278411313513793733899414981653149132297531747177319221482755722576592143933147641119466441548492155837276944745387851216214475695683991441312983649684378183916734895239348965473931883339716449433972543254132417121581924996138148585451717463911618728355558319778555114586699666367161873848397474447218492222831522325184628638232137428349358389733323951328266787371876452278425117711829214333717247344332456395114963828472532886473994937443249497843912941553524911768324412293774344772612156136845658685299188159176939691414318544595281828121736163523916274485817944355713194465736484515229833819359192853142378239411283883963571263455423821823453742976272525415351661837592334165658674733344635632714958425185753552919881414627984377556772178426213674416348142334836935899844627165898647219621889253314297466281976496411314839766915937289755511948131183415822936641841958272378868733732616337369369232146291824176474126515344956227313783941361321365811121614144981524241546714128397343972324768359466684556772657352958892419491234498456153495116235481288914859457479278323197176435239427523385684331641169896861378132114448565876915312257132152383781224226759515653894436627471919818514828596938827422224724686551167822741956759386219491569444154421718931791152586192139283525526756835436541876856825315935887863561137941445788224781624776312689593894332479217916693593997174917348774562646753711972783719993398737551876494729695739518266427341535165734277436969887762127972532199841174184987145747446896141819329699488788141431861924647959655995646951529273475427257619663663385533196812198756416157568591257831395395221189262615993599463884522994462622695721294532374382768725689313244478652493971969324223548716547537291476622163937837374229469737284994318252873563281391831396518166414243383119411251341814673949661665597283278294377939268411486477736185817314512473347664735292965522127639829441618485336393426425144456527126655765112166878595856621547547584334317596647673363614432242773267185534766747944372255333165251883716471591424855117564891971461735196268161451318256159831787858141278494863465377977515233822756742185889873149312234179956228823596246627596119585682874951349442436111688469751599149814597877797473819936454831261171124145952425863457869814372261142121687235198579359398232345556877222271859127898522237653996446241466823893971771272748952124253283491618469183716643632165661772232683242612716486154329243732137844363446362956996877449336337439323579864625191884487181469288292862364529463918426234953962521228655478229287196563477415729115921259411862135363126898896839646477232324872515817326965736476645963848748376267997181689134135181571753589493412732112336352574311114527351681644853481175157332721377522869489449277533367822374934482536145454753524277944324569348749146168319547467459946628153887819546828171248717375136774437632156488288572724252233515295688111292584782825155286347531381953957264358878816834497349139134224263931398618239933252713713968459723846941125562639952315816293435894275218556561252364178393789332335145396524326116526265981543992662697334482513238443221554412383272539824923282723889434752654237918223669713349722258761643416999145999798331775323377679993853664822714745731278474563458955484564812846832186839917885699711285541136975172612727195579356825324998331661435931812926334867992784459619261647541412532994587239436464581538976711425996722678814542666582434197655573956843226225627348461223474239574311495752966261723288526772558642737715164361715727919771383541319367896216413969212131869592463346652181373294985242647648473186648191139528296146836542954958142713171767194376921487444342625314122382534173493381354628673636876838941767496922427214638412521328439246849324186935552431161554981142451336513681353684252214728599749827313446647519181833853967413893535755246685746293315769716375292257725871349195284547279993251759737258771682651229539423493462695294354835761321373478941731157122375752964943117652847837895627157632818939783984613464346555684643118879995745315822149471539812389686153211542947712974454578873468535363899431647566882197287622465466121773365219994774461282621581739785745976251476764539221968219935999683718311825376583443525797659195527647917539429596867682478261541767598968461349715324531621489245326245174861472997942466164437428932484979192162718559765742143592549749349563333663544883296323675731793514713495136572117523268141772815682579712696476156153139673929652534711198978661277656513246155173867821699457313531864196684386621591879211381375417292915931262637821466434149527649125226242878269328435918452667329845326854334838352793813691873311476249751699657439138231841149169545365744933398259334143513238214213569939395336925573717219759236138858833872113833544147223289891459713297922129115569326279924158577735852684877524743949657186164654394346575384355412664737429443497617398535862543994899753617669299738968228742974987126975143139213712268541639196932786775567654446826442768419532646981165583675211274135353739352686944823899674784384876448393171311824837443329123858413538985745297618549861968772633282691977598365845233193943952333499752472958263414214427754331771114196416227185663574435264394429491241255545821349627852617877867145621242445581691655293326872668554126171558782632264485899396614446544942643479691633513739615429623672134968869575714221163512447353589192554517621838549633774693742619538363169672364324359135438567922996461546434598155865224716468761616735279926478311232483238555421581672427254644581239149249384964458933183352215447381667476582151267551652558739537223444488612329663466463813989647413529544723134165333992644664532975323828738317745677824331236464589217731671159645795441362786972328116145947178522348847139734876452351963367217832756292615492342553378398359656737161423115398291635574732322516367531897273249357282431229744712185684198629615359226243356285946615181762332689969872832189317546459291311645494647987253793535164995522394147437487222366931124883512631426624326983994579538151512357514433317118652322495453486486359415194312645391442599954367194942734417492629237551336374493617569483521427197358333577336117945557585541791479973791129868441913243986662922274769881371362315915932744738657187984388881649191915331996249544162766848555964764626475459231885874795759444561661784869533871717391265924594384827126814691426916279846699256318117836271266611356485565173783564649266316318884346219957771335456281126136562636567329565883664827885374595343671822962225357481194848315789235517677631846228987756799894119529356781551124579741382271737716213896474425318746453244587465578236467782824225866676834672823288622449192588345334183134849416174274224742534357921666655878511611387481545145562889686174155589891786241341566465418314718986884959766512893137939143459758125111179125532359729427437633166272839325136621222372387171771774428618841734338342471431159916117388129758141693947338131766329338499627958615397483749758594386914892245242964627886288453944755516262523929417235977751363589582516291617122729642113438892934675486567555458791144121412591517579136133789353617273669784674318852852595881494434435184881626544738472691218651281593275743411788435677244574289987225355471247535612329827153447123914865979327594393241896736124475595316597489411399948226226434999364165977245954697233515857239644218251436663313667561441884793786827615675994922789313851512685273463295914967251577183236661372584819257551388221412374329247184232885561562984847954293322955971894783143612481675818478463863995689875664213439527642121735874218921861474767842126547767622493992132547894717772764553288221463621271173252767131486297129246433523591762256623319376575443994997131634274242732779637362921852389191945937747178254899599325719154121557454335768141673525498258163737821369595884412749679621169659114371223172499976185311632837219995941864675333881459482316948173889945756665434121513691833526139533659272233111362587378327958649324867187226221144452226137398892642792223266899896989731236952535213338213254189152648349226328846276711319851188965147158853345693618221199441442272879987834613671733952165382882984668559585273412154195227267349452734543442938899591845981337766195984323719725122223293282218823924343488761348484988248758739622833938313679412928453881917119651375417477731229889466977843322835138889925114263541511196897982312175894998787888517299418478116916892563788145184113199733563849229192652742642721922146153455626932436231722164172111414994172697942885129522231239875761752833963472348936218883226314313332659111236618317563539484354926447816435897751372565466985876768637646858229743211195495125742414711718917211163196473711642493263553951431159278695749729874184134691389663145575974362363767129963151419223135828741231621141726154351279372261788878361125777972842737429767296872213847167661819624927618163263612432658624292568811868396555513471494417515128152673498421841885699697746617548363942513617578699253223128571282481711112362617239193521782425183647471351658752871915626814429768841649191616771342918488634869467871379857919485159693916968893116684652442292916668839432621479597183899482416833971972469841152994254394664448912795413517958318236991289891586125379433126311215642844359178722634289522165951348981657953745645294854588851982271729353498787133183422627815686938874364231595618557433153215676974412963978235444459573816614398629464457839194588352524764939346716341398654127948564194131946831743541734148299233278991297151689136149159266454622939523437454147561335644371794421871466794221872252754796158812735323913161235285187616918396737342424216394198635969441378737737331715567795814476969797391526696148878493533848622756122415533492965383731474665746994993863223997179222696188186564873816494326656461945281251514775579887537816592676224457238759853334573364425175653823359452172531634859725894597179386327858823521458675143991359435625777386353838425337425959111777649793185795241213493712734478716736621395536851223835978151714373712842359785853953328747693591242136272362351643153295444425467513434866572137923278754496766916578375552544893362751357193151115762912764723163945621812445366382464231351823385439349228834363259138548369376515989471832788713893653456691235931931467479833599565351842351128893185485953991824918248717454245179178937393196567312549615421465762353724557297887766485316734867461564339425681563697419238294946714417682352783854195959337811566232569263132344812915538626682713614221176218547425712893383764327121489871316449189287264717419919452898912668277241768142821185234864714137386461642582272254123383985776281878867234251297326266292671463667657645516873615894225939936411293664253761341763537272863376687637434394312223271246528244995344188842314181983377558695544525529218852863482183817574599998913172438398245842862833227832643965993512811544195653183819193863638544927219731113586264474657663234535523492977911352321656554142656426742485927515561146212397872225587159123786186657661135746523461712933981563675647399212273648977196312118189174412692959522442462645386537579169219881728684785141973847112423255247373245518454933129372159789333287362938919925733593939312385697273717389323335719265924812268342398814868134816174719661495422161717576984354477193484523432514616794263999639916677136632313782756974319421281726355634127789162486479487111463941253468212725518544959637569154142124163433488181173332298245561786693419741448713219639241642985175261287223166245869831826334992958444254113812786533251121738294768515535228519458434497911897581662298386766316251885697232167526672175189731634198489843124892521776447941583631946561561141481728722572441419643832145594348327539311628525793812144532785521465953152921824571177618353857186344231262676153352832421333569195236735445769258526969356235428437466778243571833698353428319356537895282663552177669773492548978774359957261839877359611844742448814112796434219822225429338629595516715689641348168481141343683376714867915345142871253856286278942321265965854913616454673697933374774176284161779738455812393266643466317681966541953939431165389333627513564733567177284948235582684275218399626279336594318633275125741634142889767914744392517332566899564991293742456699736624788535624243634293852925164795658477827991268772856718297221425743193316732251667645251133274493783716256473368281732121961378112653775599691248641682584656961379335293277469258156383229583375526898564734862455381129794758651845813575958923991383216682721232375758863454858223181562711346197732533811856836269281144647989363374443433933248778682623735723123488346759797974541837422868361223525219133597435844441655431821351948494157252858413418414912226795725239253775979899158255953555758174666553254383327473877224655322462956386383115761357857938592631673244786838718968292214576712916497498551377673694299619855553417932151172538856856738443149924334541286762347813155288761978759863691913899214732946831229643138293185137932513977426577241765751954312851443144933559673628524741235655128832331553765411759841331325513544735644426211299986414358365711344872845538887916252117681567434246819945186711927248354655553273972656265749114534674347124573226634895795988924729128398577648193764144523291923677185715933378268577638393261668534419831168179631325218364918673257645444113255357724495213291841975758127213144491812626117956435988727149459731644647417232168695327316427325631293961899555484246331481662255433784429962491146665393367559656255258338814981189112262754715375498186745684994191168991955585626146549117611173376533363398466389451268712632928576234384425414345739685116394839714514766823658968418516942353739159866391125955255515987912817286473461211185792859445461347491589312388499556582845353624556775527796476913233541281687798982383214268164797913473971263568842286911535829118834447225172335663649118497824342242218517399939748645322687279737598819571525739372551158981663851413694639535422849584293645545236681414411758819768121599357642318199549135164647248753589817411841686169381348417416122216563796145785734991772122116692343578368995975521652726344227949824665232747297471353435432286839258568745781945577962561449154466625182743925696982795248859791238847321373471325865329542531265645773953974879572464542311481579174192827741546689313644535896913764852738252449574698164796896465972665975112583133669378146193322844958233687282355536776454462255781121264323191246955955223268325837511841984179121433263917965338623913154182419144151514366759774214919945186211857382735456757214914927362956938589711938371858432958424283169399777943163141113155853448525611263963146667955199463939281112768488619266789583232422157369442444699341629128684347356141156315112427758285881772378777991728916119548872165639855784676674997569813458241132764124579398243118616755739838533592728167356667591564149383362439626474285443818995974636188978254916224181425936131638584968449614951136653751222983419528858181731772767539386392537828122832575937661955549565931741412984498158387482587264114459138515664185672425552149277928328316943872434831899449352534379541175688263937674429278412631577319169191173685211612535743411641534771891216114891252256549796312116287144143243385264332796494144755846428137928595481711653759843141299224992262359423228198168633434749274383474245932568421194165117927288557139791391532896895362831227257952641712643426691636375123953682519626848667367472278253365912479315827976554834157938849579467211764413251747875589731798219524797984523732847912158759162584198554811935438236525584232546914343631564542417665316351767649931291474352966513235877446734928411853997111286579941442744315427761282837587497152615985771864557778873758131935982753855999643487281489611412888645218439175174675832944381782627965273919897951415277814457739869768257667953858411735269127326192866215693442973372333253924376327814394819464493273915434489721462871969419887231124439244159352649795873942273173284523521872819141438767677787749843622698115738417584672611637849943613943193183525388251883951837624456821162755317299464981326467581412262421589883869181379365483832691769529376819573268247133219349568153959399227896213872711285153728442836579245771491344724468441661322626957788114272446681171752345168851747251331164116727957188225972182231824215567669965328783866946473929623584351294569957163466428616357663186672211355256365614375591699545661338598139893496567955181922684533763912386721287551212724565776545459464752459352525716679667374515416612244667864185238926699347736412173775886863378466733312274814574383143187423562946633892531545198631116697299428367188835222485991975579953957722371642545377447772485437617753198111121922562826746936545962516173887181313394752425718633163729787448636573395662356395126153336896227982363644647173188294299447181854712157391992962295928163579858569532438458738553982571736359497146241246612679376539788533495865896122324457866119347857753212966493674476826762242653294365943776515253138438522496784722859223979554124169963683423929478259683765952151626821999187717796513837249592131624655283418936155626122421286923117935557297278791649122887739374388168317122621173999222665175371886879541663337437273319889632818119396391633421548644515394256147644856131639659365531974825688398268921363475564136492973732916236572487178989373269896813113955844891974953178929947818361259958287772379214722563112795738915984591385174216349442589239244292832631764497922373152919896179864236985142811819676685431932514212339914776829517245861559553146616896227935231544119254891721743532656532955238842771451257246929824165753813344616219412739445678717723998572932599127146453115548237674634142364898337619634211111128128551894373116993357696137171994131626335436299439876576722822269319523438557991488619338567477145268271272966266167246364615241472852822236183174743615339563721294294153245774834635656461123221399174135658758872715386663754457258566921794163246551396491635277663288132968391689246145115686313321236716322143218597218938834229689234453731837342741698339327729752337268332437227216695812554565276932999379153478611849244144633189191736948457427678468597596984494141471344826262243284263952245574646269573243161218759297624381764938138389268997221945167357319861215167766883731928245545297631196257897315925579695248566947396552272277115271712479814164588958167756658571895449757139362253112283259226365223889964477331721325664167361711998773417773791269277152682428114522192344536286891273182483576275259661759182818119162988878355765156124764482768872845728241943872843428778589331133796714431825392544441948761225611363741812439388897317355453425121112639419832113716889214958554979886424971553787454743295986486395582179414756675534111174871729394972543585271386533497327676911712959181362994369865471842179378132928248433255268891932355367163371117951965514811549665939342329396189835945921373814239141497493128711153742381859567416958789586113558271172419366498472656583969589394123247916881861623258844246684753694677834628425314934746448223434985246325582935558114361968582518345122992936493925152475711439572167498263172878437472921135267577372647914487653333434683611842511627971788284543339676325884532792484734132553656947627521769455342118862111732827434323441362135661615254316959219371184279335139488492176162755996785145119313198938694656813715298287723191534347273988555254854487199711615632179228272124567562922985453456274154771153599449281776432471463855431761854496264591621835396564886238167462334771112587843118984325924134264225541156352379413327342253545964521297187531811221291518862197516759121937585134553476885813399166217121151345726452553613438119891915542498156411424279669592883715389725595381246133757979111392951743251248817351489962169627917854532919266225224676433677429211753525438678328895755428847541444963983599886322323488239814463832941491549225251112991215911915162742193558637999318963934219943923561554937315264782966918283533484982217471513737954282478684518918421446742112581291512461612392631444879211719124216745781677921437998311681232551974546659144129573582252358444541334299941888599898642861863276579522895378248353419693795666174314397732576585232138778968581813876429426374151854619877987731568424145767425155619169428734981385245366864252349119611789696882178233749762564861419966927367257821957591599839497813662844116762332919446719234687843589251695322479169443581145147749191582342312541122318252123762294832578285821985219742713458273887667314944741425371856166199821976688424323474273893528628383224649443329579644636795643141493753757992472436568552654962313175828326375881296366511291849461476139172154215911273551376394588698335217986284431669715991144673161475728824569627138894586887523242293315551381775443632591756714215797256494121927757882795886816325877946285589212233321764566344817163521647482127619846349742554972473785534762354158368785723591682312899814371779955527982519512973838364561291947961928481878392681658468446792416112789535884945397648161418383669134265549753168184537986264999979169414168854194254328753461113227546367334155352543263966424976219847524514928747776858613529556822919394734951559411484113727297562748136392798153631157113336935534496335293618696869324159146243633717773736172758111473267818954874546454765673642128772321856562986517372515321124578593135845146613935598294486285424791449319799163442877412741156469737486988131444468542194677522587788134186447215961344677927141919761428687322575571492654198541758573122291277388339371873313192232586513121635128271992856111951954657126686647471177282341148458847438345353211942321157352575737343228721839417765829717488642415149976941375541425162318165821892218287742311736515971243983311799685785176512696525736142215286938342146154866993796729383793716821143447975156469763346167923467918439524753279377674315569874522596287187261334862133819695938286921361717539274333572952589475493333184693784249186656438376735443813348875227467178625261284962152686637715666547568622123888537618915664476243274471238343291785238254462457336221547688934346721934381888581514697326118982337344811653316842914517832113855222221936837587744236755124442135164319823714334174981468469213356989359286198933672584514524136863717465935613655993638883538334814998838887125254972595888423239845767226477291183765398859532989247975254593118412433765874881721767535187981627186238816445569611367359229788914862575378254558816518795256915413816275339923887978477881475114153975528776636222192743791162951794147519575413771125419122318654851829578732169816726681332266452691766496327236465584912955114158931681437216554112532111854822623126719816769972131968694787271981369584761143499973422585531773947642746729885417481255437775824684319332715929179517415615978163818315384494653858563732356232759134153391916545454658563825253761785674147489631285217949664419851523235272991173338824984524272623112675612929278918211359779173966111147245742157581846861634343969387132631115128259857825854398876739454513289169263965812933991185498379547367791446714363949712842973974973865848948539919296298117994426149985393647614272355726369152258775582586636221579953563818136222617616861144292966612369351953478142445324723277292581112593538996873685384393729149181863587112559594117279521176177336167469156413824552331468169154268294353191233459518772496364594861939376375933336549122615685979461156974817262219189422593696641162483988139231433434665274124946593423929142314163749634144785678375757775157615514582132361482721239754248866664234461818453149462157962923429996833513283838258432346873311212543156812833467522394616136892181451835129616623772115943688422414525894219629957888327343477898917173714913833914226849519134714986115873941516569331453734762459823299671368834798134285571721967711778621641388356214267772715518349736938291172612591487456497916874397124137372578981326861344848981813843891881144289313546537341141366312414973483795619514246179889561981883345214527618221724722433673327722777991147167139692199678216884129164141371736872376555744873788474216919619539144662389114143377889285661336799839437718729235416721958771747463951538953429259611327345473975444363447841915319635172562549675879164697163525814787286448759555799646235176769725356375941243435298697938576318355393833663941789671567725845219852658329298686489363269231393728199211616938314725299371918213633852569969511713399952545757318726883835526296927687623689183525572575615748888232363138569291162634548335242685852611879485448222744241495124167677951141566499369322933243259166599881965559575594986611727455911431648613127138651647325989192193291359693124597261387231335685322762668268888276994822791376933766681512986731793259173365415984742193648317498854685917518611971334221649223331928876551789355827922928157421875922448457576739765157717692764425616871628959359593852624635213292559177825696264141555422567124253241431258239616783356634728784492713683432928314925364913663735559249289419925757219787956811199339569535333177573398113272148357458472891834986221383479318267162319798129345574963699317771259118224834194726535227777935581332642572463356436174813831295213998625549499226398679962617133248633549543715244631774751319789595522181224293454432436353215324983679787639419826741933832349232316215783323351134853375694536132542519217213934474941312878272381674623211212662349312812556568464267853627239881335921656534844575565441266284333892481117312374594299892233253212773693146669149359646863125298821627492875797295976551914326221621221962845611791892738625669914136861397286647832677265866212431599231174127751916448354451384368296225995457155917857219451861242886461184232798458551813597638157448445866435396884688855515334916257737633816791733541194247854388231653175258249393225366534121381179936891853773331725821771311853416212332662869817742147497524521637836118643538132448117518473424986545369531873866379848622884972324511648526926696567523567681333637899931126566397972883393331165647682363923254898541342319836473222944917343315871112233949446482541845315347388236862382283798371174373444368659346639939284524711895514592746798921197852899182359735142468482826891234831173821537616183319248191527693649254679985176442283269179145437691117217686287322514634366665459789953314625168114773977777285792195875454227497239446294321411186722935743815182319261445597114752496617392616468345192873669963224675717131225915929518434494989982476626614881279434242822297846581457754611992682622996248995581542624528588879158545697457391139271182445781629837687413352233945938718216451234695144286533373286319968712244694896449548212524817915169151773144494124531537464674688459263974241445546368253423395223594719749259225519141217117266422839896178728131835555677275214326335181118219527981224729223122864192345531676643642233115498876144694464516762936752855549241945858448985916641573777811268414737533961185721555397421428123225621213645621598821792452855737644185946795794868813827531244678942223173178758414315454952569314532776288392662537884831267181798987989459367664413725546196398111326721596352611215675329711811784357583152233176554282876965213448517234191291489462961186314973379647273115883637965277214841461963589229511167467913524893175235435167666817324749947446161217241168672619251269959169969445758222431838899349477329176744123952418395439467886824314268117447676648298347247549412631229774293232438452869881332718348578696499671259341146613729631399172797156764641734191883539414779648746637979411331521771266458838229449199121853368464223187736457897293879245355929497854129174773899721117164816813665469761635969154488519542797429458918532287319168465462759633197131826458228177932166971469831628122791152994185352927836621245644498666125914893552216793417455823933357598989319663533147132427354666191492687517959796196416315386685172674161611423418256535486229432942734465515933698766735934263917157599423189413428121795323255386425136621485719927891372956466848761115774587964576667527455213851967519468443382415533444892317725119648488229659946772885459242765675161667568239728774767262373764397733113155212951432239992417634773812282293718257439628721654193763926764287627423187315388961945196531377816191222956784592696127315791645245964518559576183744422219266539677358961515481427796998126363883149947562887511994419557545621269697791486195256725346364372316939729628235666463149244944217551214741137791838646253733291567594492597453567579119133414846832172228391797431623751348514263911945522828214441765588724811142929195535325324886446983239655224442725262428827456832414251853371379425571299353962635781313262972619437335126253945397795133786772293248225814154958391819388111695273922376771916578881726174921712327615995555142928699928189685221393463876637424755272132493569298612281562889812717224564751321533975294649638292416963815577975621374417294243735743211466829947517917752298747399139582113171235161282141562111491324544392983462938429467137542951775647954857837934949849965285422351657782538461254983495739172864241497656777526284611927653718139778775183612792171647743559232336416635742257889585418163918147151361625985681532338838434399115379542854538338122125964872323983713319797476267256172395315688152223759325972698834576223843965492928265247414144367233695187529992893838582954219835477416396281814797114962365482832458314293548222393719916972222942288217767443292376219354223329912188811654982954613691247451117271638344637461512896133167474497243963229364787947216819575671199212427124935815158728232136552677615411119566492968442855337199928582332143993674252814769335224135643557885985519278224261517412342428122716577686433295234758144568821834623944296217864418938261444984439394411317359243884652131512374341476215812471449197223932817852132688724616911411227323264484732566331527933541723124882478897473258583228387234423261146137683334462492427154353894873451314816422378178877558236572927571279348677273783517796774741229736479211359946727194744833535175515235542371737733184185614242831681374142979383615856584925623345253937842892228738647746119334841189765185725755642119251931513995132326363272362858433469219355161931549741272237369926334468922752147222165369128932416335557921323281745193777596657674351314453226312885229898531288671239648132283132673157423824278517173965491975391361517646233929924761223721282456196621553369486932722367593876593455727718761738853491521431155575128434497669136623481226145396394985281652164614117733142732935386274873565691182822838435817862481217325912828235479516514493673995854738445395248446852744556823871347514252695471256242161175112564451678158948563384244579448788683417195782123111346865539846648334333524872993123512337641334692795745347674172413117375257656726985771447675468929268261244529934855218911425278941876828735796154244698826149415376632828694411469337371945718751165615662415319169648635323188966296257531388191236983539181652541559212993728532632944557359132443117453164694856237118728587813549818221379918124399756761329281196314838776912526356632481267436813538843855299371888711827195892147984318725711351693555794441747541382522831382586186225324525274345895563612323139659918655824471354289494838457686892319233872657119396588414116595431135139354216939385693753635114481555313165686737728721112723273182677791774341964135632456739551667764594275942234991618745129772546185274745697347385126115381642413419952377388443269836952424421619893587381473728752138382843689118199691165337575539561349121643897169846456197631265191118213961831713183268253568165243649315745655753716873564664799623743923524754865992966679364955253867428844162379142171424661232278276915239236154426284717444435581187251366282118312389246651672151887473985892718357514752744739377442314763216222791371165984748594515573923671154852823163626289789234911336879422529469425816326216896319641262144535516497232732739377217217261463231595842548337552325642248996215687238367842498545149478711861252275958787772586629934723618365564659422557621369567898356912732158798375596962521446429159513647619999241856277358976752235575166586882652415147935421392976732485286328433664927482483297974752319215877139789324862415874538748483922262837922948161374829327421547588365363924853716384962173644174713387916411156376875192748463522249999298649937173684392769787895753735733356685643113536524927128145817143253839855711358439936571153391623469896296197729173517845289835282323669371593468449999863682762744428638748696374613773278457168454688338561746681796983444388573593418114525475538242646219836332798683698156963599724439238736589778551765168765754191169642572612691663328989374316336529567352756156486533963444577117812457436149323165921347455191926858273726271655181234471327214765969748443132496185871969289672399343132418173138638371423731654536845951757133941649394927564246558261899225884227312831466583111366725747648981226447874652595719986642817487432467474258145191335228853768596333772637157951296947443625585932429654653478636515413627313317261647967741841763427634964795172631377232939512853951391759379361245137197266743848273566215968986629793788321223221656558921727259165484231124433362647165118654251823268227446953767631451913441539925864899488551697152119659719645345676781588186154619133331876513649263245389731775272119934475122573363799117263621399789323955682115979985527521665827221225211199927158288771438356447292743351318541938111175737792734545228712311827953271393143951971119338362331473751512561962684118832751981374883568853675771533664135245564456911999192555596225467783466384179873278383282596554286714123871319199736567971155228133432929457248281594336174348747732255417152341445231494573851734518325672536398763112198444213361911858184254252178682827453332795225761349869454849441299592326887165956615211778922768552421714117676975593117691759138947811293371853111643183612556754838974288317266722257673528975299597981546591213576928738125425417328664143448889382761373414643738995684969254182227899184481441342254262395411571623636238798233678869846251243651211457591417895949939413342553982493276576789634722953634516326132771641124681769221515585843667743943149684965451822237954417413143172922833387453679598271825443363433148143233589785374495276554239396415144682994178454358952466254968197192237862411292243572415549997472115873992764831684797879816829826472965259281255952277112287914883857551138915537481333385134464318731286173633643159481915824531438294362882136517725274726515734876461869635911156335279424547828332836353633327366774367461417838156639143292424535555226329333497929435182221528995999521161563839199974176619516262119261663141221226415354252694341421781834382467371783793631763863191513393581757288963275598869861515664638941656885337648344343695156449514775827511914427748358114825253441936773547827869226328197882945732594914715328127854319827388572273937119246897217548145833749127254481367699847179127422619659151142635585651287849362452268369377428454311959313358771956632754222217588679545863559189928563561262326998523667571776889851914393782252562995721246248262646161566797284418728783164251755365576779718962129871165958771311711737256946654798277447427281365154465415441483165996992161589134458563452632146957695668769996913612251999222799691495999357285844546923849229235635883691225223292798265417756524919227599621932331273892742352591358373841721291858857616876425277232318946733441666899516686973199139514978313772181946215684346562631747244966119599299645571849437373994962586819845472543266186816978534648864928762144647739698327516824571574312769349754132737235311876851475191835931831466936969568998413683121719262766651829674985153934447492343699311255335695768481937656468337415329312189828725984239772338895431265719721277337767996886663929892897525686221638694472234844628186445247272255429435445237754736538796543173888719674392291437342175968698115273621736393265131182227117465835239253282323365439832374548253696172985883536435899512754867837911216411312218684856146775847112221934217862726641757248772616271566331488852485817668666912283475337294647943737492941999317571123619563489395888323739626219545114971799354835546556719358265423314759311497153137876469338749974541966337531564177524461678348999361347442697369714561374791775854968952912386628914774489351623514512915322356748667267233522528432512195477177862915112472356195734465597998863717979989464491926159238122972125249951311962177563636382948111621299758277668335793382948958344598262384811396172341598162362219143158461864143298124997125868746634531985822135949785896963871973315295391639652418999441526174755565493382118866264356137699248375199219351351261569222935114948938523879326366676466154295475661593646867774252222497142319655633832346175268861346623427459429773828339328156822794193457722113418378141364712635336899674431716228484422922241716926816441346715485684125445427323442655312696267363248745819514752132282378422122346833536695615236532183424721562598575426184589775682715829222774553761487388881769332694616983941858678612154594764148491186367317924719352451725673818918769341852219273189756165275588885893739827873595164254953383437115864258691232156964162238267397239851638862573866722949151835512155282431293925399217697399921452317595617917225128891444764364823615617414988173999792972714881949465544448112251485988866132996759586119783453113646954276358725138313773125198542796914132443386333678192352446436166447293496128792518327354359377545132546846496678159749892262118423847378285573132966584885156889686113461346126543953966725539684195781364873879522361349554734861128641794641451996242922744459583813765991771272744633749762431372172663128185773579193943535377129786264271341765326719748787238912895368262557115933659655225297419542648518418835294354366561163865292967915195669547778452799867448313767621826392418469124583688258419844685319688889459594941414716869831795312195264473213127567797455485496665784562953136451558353856157886139592422854371442737291281963587849796743418492818685511211165682659972275539532144211516456534675534949551559794631257963486673534565883618215419387761796413292531358595496285917613486681187528564716477494995696919822862541833576465115839835842275174124521621945484581917226372545962771622737984577399435585666132937851712933572123953237858662122351651971432543675219626388798952843137882549636972426913733967451618449572124289415275825986178314134754511537924561915624288155643267211766217555153577553467929656456665553143712794215774946847839549564835411216744543341882169887455518771419997221178263312926735659338878159573816267827293921978139354239441555635248399173716267228182177231167364222548719342284764282164421327783472151575326292512335979736383836869566763279215942534519774162275522211173326546366868592251225234387395779994194438756995335974991745417976415418893384116318279152455739851916259442762691639936993876272752718878323717467296139433825592671359224447958156636171329966247947446961288412811389311775713867411847187364294334114947424534631134231525548521768678957969211334576269974784689323712764477637427163816441817427568756272581832158765882635747987532466247463519193331533138111288596385981837653472442297441664428641723495998224315827432717328421738413695261944227533484623658222555895424913124583329438379241394778535286667421138544712199457846278149451685241431326727771581361974881543635137353997784966843668851862688252136351718128467526711593569338786656247446352712842641365413867426169377953431133517847674879733811493197396212618545686181882545145391196834396197359953548283239363722526334541247829431353724717419776936116132971815731939582687749646797837212455343777828857234854971757451357782234684322785948519336959393844697587614837151821911394361953529862518391489231851928414349537718928414815891314485372242416683939514159754689236164449564439843637792985881894858197385466929482593392478552884328435228536343772796263493836129528563513894473633797129131135643541761385913852931558722791346418794111198726362256765938671912847192889398429238228653671776278277515769961729391536531491223855864246484833635263814163392537612574837989323861142151247281442195773566634248339234634518679198292162233114131129796924551785156968651583227638323442623598242745331653549713629374112648527718463822335298924784753547177594572383398925129847863557614642368136437441424745934523571453377572214634222911877666275535663967321481573461311427534921252238591964283648519747342315239418385317498236946261338937757916641674992431222888133812172121591363664928681559358519393229475994379239583337712246198467384495792398379544977824682673625311138951992376248611977914129473485652595968527518896318489643393668697376653668382325333735211861721727255791633625551511587426697217759236393472547446781757855911775669684733543762263732959528176133459538988556264683672276554574271115999992826545943657116176648172166465651125318814652796244838616757162139747421817263884437937923538629439665143194598723248997319313444261798852515431943633947323143672447756761559671989612833633683293149348322414165983634917124748237613618675198753541598325642933518278251733732832678197116838993628181783294292814585348548879488644588231987219785265341581234891344692754922342911431648728589744229957174156335369195691837114945581792325347138611882942466512274481251116815695916215721331825114941187543564126118911321214622673142694917337891439681914821658259487359497948195862739229263137183716641666957515286429255216142655227123599369544872921532192843583611577245323757155532374568238565118355592269224362568122446752895661251144991294346433919763911289256269634567664274813655338143787622747269758717914231782458421731132714386383472335522841671153688591516232378779165121123163964192847592382735244562976752568356544733735869232214197224213266439752714343439881165717386534217536192656515413833581418127123945356282149199131339327757179138692773955944218619777477816115968859842556864317323374653746714113919161569177148668488177656596649677732554898328897895789926626447567431698455593874629146494331558143628383539425572156352176812234449124777117154321711483284135136368133993668823867398871954482325583228474793944858524486365488149881173225559332762568832323224332992456816312362361343797964967187978873863661178738174928218232534614925868459832522758314762452531116834243652735164353283263749248859457134918169795175868213693343528841676251627527356811725324833812214543787118982893741835465627651265197176174572158686884954361312326797892362532991863168526238628411754784897478883215887376891924617115577768398335413981172619883115765842861775354254241893348421993831327277118163823626658842311348545436463687528268997939265121715755266376895155335624178916414496457931211931687442833872151894336995373944682364472232634655716766374365837681964421148651828144153925913736513538777436366638415794884926815143561354219345866572161847276415261272933516561488251758197624941515994383324132441789533174951372645681381984913794785528372855478356841595916853584333578914476371847314168275596955739325284138636282172148372936616862593737712248414814184852952236456842226374981426475726469774433115148355445363743877692549882679269172144831961742393561568833245756961279543894812155963292174675444774234479166359495266851242133229632687147679342617831779784354637445136257383128816721867686597239867616244639758744261514171679869463299383595354324774931563837993426292277443213154875465393941856343249992899516816749528488495483641922126315976757184239828711765951133793457512276396415494343826423396954742179268537932591815768329313475519434873382434997193131969194522311964255251511595663735198843855733578499229894671964818472423245524429382574931279562484837513365558719681543481648413158365397114414269154783496588889787631232941828875924785896343178329252158124275775443159575834886362112925743441292218148183129531114493278991771992567961431579442951212825851653756391127548591633326584798793961623829254333217443331953361237914254548127822356869473866513298278255585269261233991748217991976681544241628952918945165584258483566511392416758655116776514581695229259259959323654883727217839438356311774838354744513562778414164945461344228641228366368596342367257326752284933515486112437918571538697852864186541668878973461274841597356747752115386545747774511191958722923229926835544343669238791897951423349374597893365763283779126392562211577733689951757326731477711135364138666777118134936846348543492882724435369174237312169321147296964547885741197319134382117992313249154681635381198766812518861448694515462158284695383625527963985756755825645435142215764585415261322154761616569495447378351323941449224166169155755931245732584776143588794544392851153261722768668238231847799377229685313117582597652492142837381835572182545562338844167329563595796131881772496281134354599949151414862723571417171234826878543796335574235122649375276311211464928531192997944955156623417225894221244599192615842379967499519835546679395684556941425789352113314393248579727894859383225245238571466511611913721151377346283741963185143396624886751753978397152796928297142116216337123739699432117233254187155481593198444362333358451297928995482215458696693476719413591493355639236584463312551311865635515236383244353592831555265857586977673439135454462294255154623271831573526421713931938927614598958283183897298541242135257684776435124758763224834497779161935821169123249696957245579825483525153934854949632788615365582229833417193223885359314794713889851837244276638845215294873764624157843674995552193139863382461421572182437428165934381319866269621966796822965595642692922574655912184652211526138332299715145165141781326597128881146545244518863698632667452727867311781141283632378442135536899242613845586255741455313598974875894589183529965199773438762195819579262638894466596471155311517779766729983949698417547419322737836695658727636268996314824483461539886762391572589335687528731334387215712244145332261294983624726529772375441213532293668262747289429258931378292228113621562118285137535765733457214365421744378711566621334799278189937154278742261518722766158765979824827181955565252157454467273211711154542677265547465523771916644561858385451455569598143274438965176412338673924874419932228241723695962135914172738887485135555688161197221516377985736475317133965175347933788856946269645286864951366758517517597139225819972285837149616957436638123231581248791499746753441722833527159796851768158284151539911699497167697847172113362466225772298595664428192298271986316832519136529327143165152921711662272289185135776639484619861592365992172184955617516192563769255748586481553771488968218997863992682837275328946144214963931574221195822778738995393548229496691792566191849218813435221712815976237527684239963173271237192823693599713368756565888625178126726197411115162583211851848424642653645174379937545351798882348736824861788228922295583293986599365345349871871424371615554193294991547656424153452161362982765129316341848871568114276691463475286421829415236466897419768854522271766482551219947948886524292375712258446487948661658829463872654176144125358373692265484913734436523841631371386457477754574396462314552539476629236379115949263665819192399173936681393895175287975214623223841696915554396522823198366214525511991559591133776431528472389368454769325717229837491735478574831498191137888984624483341347381656799758259445691391113469749876468563219363361412567921537525952924273432155947769142973317235676471888191473712884887848729297434138778225135556756694745935357945227491724717628612324421366984278962575914126196766138128294351927672583734226284629814373111361284518954882578243562716959317549358782573356969262529288226161895186827934846317959143215854762683566788894263236413718179755984111629385377647342442284128293914336295578736134329311282367276324943453948475449117258694317134136657164516672758587258974985675674266338855394612846571623613844268351213883957161225383692227876142461936526126212161616969798231517812347577257688989913998612321982178363315171377526746243413849546668547379287488514159867465999156365218891174342585317413647541173957363214263233552682828971128699299369416891761913324464958576854893999199139414231424184893424643922749412338514538648188766655272312522554346212113455123132661767945719345265513388321781161561612785669118391629128744432923116764129243416142824164253781877756618343197934836136436428886499711285699923476564595273631663878727976459578241129419933239725373127174612127799783784158712389112767941592679651418962585613932152495248413568361641777147979463316965456561295283188832265139915171148751694259654367265283248452254755354281488923164776973143931192498483569262928957298531832964427629686541966254695483442165643627363377199682223271412565112638152173646432213485943142233169554453534811375884686538588146963963292399382239213471672421762661943663497594441345855864961249737264314624631726246674651163372585265693864617293739952327721859112644841138119391739533744875385225355272487334356934934511758592533286176594216458727543815773199334482657318218193335452537596633345454239324165378112773158325558341195886174536122178526726629744162282925517824281996892892694467477315232323493339666832724446396713749827763692529577773891327723432161311541379464798452821552471968248672174631249433371155872181332396241359336254382642156999728952716669277777496537139766654131951868567995318763118126336316387122354383314998893366381461134493121642583444497915898372433365929328564437996469811561216343772871868169463419883314985192532356362548847871757815849365175253371991846931824932715357746833582933272157195129223945483931158512725116837192541147127246933223348188881995215953411967452217823932694655412998721412757135329712175573991628133444457615921922451729291724367435849423621322796265254315911662433915159954978181481711554666346246532328548715419317871822793466754674158119162285268631132519445856412519877613969767497375454126471298494335682243177736757874837214932287313257124443384622822334964138445611339192187775428226585648534163614637129986219537182452732861252556653491323171738478754547764833717111778962321582536965184649123345784459921971932952475994723137123675261364264514538466539556238412868638239684869272433986768315641194836797472169612241931712619791237418154651764412218163935723248296166565184723581693134716384643947637386381992545225234646986445672597626761211439351841316499452956641994568155325874317887567743714921696361254298592672858462937877925397256755819771865534948152194222495392215454264736433921263286432253776727714386646551529825344495325496946871822153861451135412679989344752113167456875155764919674129674232553527347967198898927212995732225292668783671844827266898141336937373891664738715596385615129146568721443835669256321339741871452334368545257268429315416994599578246285443582941315593835611387894933119977933876176727455673384472631272816633787949149839176128887127192292854981862914445211792817673837428535994561992474841814739286366883615835972354697271813743121167544317192993261745577817254476749123769474737469153757148344618752563512265597991533935574255779871574222993443947911117494127588843184522343714657952855677627225746126317252774533528853152223426981778247924898641553533192973144762639284774126768812295626676615521629694986773182479136736428666423718248483137233946711368624531393842759874633532368838418552992396431751575659389627126848576365167116628425594412148224943612921498968236982836442632322499783731977297633275549354542842857746783325462495452258327417447113471754132349979613544137245826584461731188457676159144563914161139319432261126981923836692411288925188223478772961587692463391254354335519823128624963812773596238342615199978457584836541849624579913663214793825556742713618985272911947431385995735551747166484315837233125736252251876796116641648176782524854529447374188899983399421467953512548923381238356269281117246988827892464255268631431436354642735768233533111819347856726515223622563444562613869326823134284661897253811147615344474566311454112355573379821241243662258238626565429599611928236815489163355539246196578751564271325432645541132865559678557948641577496193142114489226224115773836786338567787231619349499196284728331872972157191425423194624626183617623929982921318935796391665248633784975791134644431271394611838229557532396319579698924342148535936152337874195429676327146127115348845835516192473947133448325839729568468564213695433258511148625664941742592178974587277964736471122157161543644257674787371896286516442781814794254715745553722435992124631779978226816186644496171941897483763736966191532124148815354229938138682287217622753662766333411753266987163781541277157154461484499738217321437167853242513135633254168321211897776593241322259267295311842954942352548826994352876445737517352978775326433125491423396889117939767936658214189363322862413687316585139498823957393898322928241644416345657583776497163234423415342463525669323518332417239367484611214155646153111596154956538618557142579169586187247621976631889189218472842324122568643284375479936334344454134919181367852846951319715745887415949131329511958253335814759657818252324989912957519327145217659472543674835323213913942852978123731822115771376952853245656679946575563421277314131777246938584827728879833426636268259888391611468147839851857883222931769364858668293783294137487393522286184687452119394481595299245821683387637768822942184828522113976797442345884973352129898731454719153581239576556923516334462991481368667232579833166874665592757817732425743913511463594346814788199713586869376232274456898751994141162218456677146234175698682565393847943285947799499724938187741458391192184779582558889616949514189572371622497286563733177731122289365314545751166169351554947999918353675477588496853951141683121356365296958818464975292271497144177488218412819363798182573433532121478893291941136175364333337629237834289695444349272176272371721219877698442434893243344528446252471719376274762823382886957581232281133718284261135394271937431967782413619589367336379558624124213564746456479323471721381425474613483985827263354761353975498135522366896329488194774452736362599532493941374117179452641472554428761232865778649615768182272474764152351137853779966728865333484947523789894618413695591433233935345768713291615252119895927972577489623525756347615219212954692834981617554459511918699528728664241955651425253723758788551928225815354699286475963764125553129954494983757866937791642268863316625661211212478542475276833612343316896766886188867549362112117664266164428732461182917582863499518886181447885329361731129947167392216787384357995126198471222555774742714719762317784155394741816696173916129522179948836851158214238642137789398988447647817295514522316654295798537185973946952491491421259496762194654927721373762577771685347692178248194621126624635522269283156711124227231463542611384546665685164671228338626318142425714741191524764548839683321538244441286148398535188428596931963424941321336816125893918346681252441947492969199511217728424673838457874334249546684977864824997112212648837381892331982783532483686338152311995222295897461531812813559528354921983421323987832245744811427319143831162894523619863527545162962943483647189665476891397151215585893943783567474589417195522941115344695179994252782494195377999744554863839499194116349168538176411176453348839478182689837252281213548842984948991369427212322482158342569989668829335498829422497277973161737337396943312672181884238376297883762978174858657724241617959571343555468598699226346145217625344698672265427639548971896777957626199425361687813743615714363339975223667229471224496416196779542758892442413223261816539821618573678114953171439285122335161578111588935985417176664441344679734323385771712215633241494138799635141192373166328739942483817492113452648434661252434562151953945461753519259998419216786417551155315119547923758238414686836177922691896221495383533489452413853365656722412953312179183531521559289731167279579933159412439967151253143264852869849358217835186642934673571371388886821731172443691855496282137987118945956951318161332236126272471186765766248263772566948776227481338243381927719382534491385479834554779747713647847365731729746676144413874424838833716227199765524823323455481447188425337692993298314176722532715823284394191318744143253563844294237325113786714329997489936146685153155255789389757661645412246671129737961123592667153686442254543951747262436859363422964834995344765342313675171769137329223272228149282645134692217936812197359768794744159445667246533232329528528446432269746232773463387164637132331727846916959244837218298383965352126974147715296216463251771353172421153616554236462523296448994946526636412293347258544431311337574683447347751652466352257865369454822786635716826154397689918333574364812836131686545147344568487844127771612711955371489131251339731467474232541654474631179575195722998335289977419484812582548642231626357215696568573461556954815646833999755334494599187324567118418544142159773129247733775756295956313467232179985325193979299219691526949175562585578989129991541879275276965657162254888437473398692498969516916611849847314223348725486414428271411544595125588354595799926714229911974287359495773983162396812448552261514385495995178927379222383422583571927765259983562375188726196987161411524248835422121395229664459444755297916166592496472956656829212218467115285384392626322446994698333685818617922735355642286259131723716361117973868633262866253467684525181522166338736693213867127969663818127942381265167481425671185924715398768282385941461946769125241129193462665364356475848382426762899137115688562681357382369422824371315485873213378131932527784795693276432299825584284222224985197454894641316763311354989765939172841227818266142542965851116563655748379886248217711528378943428912272724445291259918687934788221944556964244653167777568118164971643629532632585324922958277222965341923249592213551176435639946737122299845757321137654487438664643432958481385249736285124374834965428421131631923459849965539311184566114615848645582121838321431181176943283823444141214348851729923948696299967647247719779337644744837542286835792492746163894533175571188392563151374354272946262182495325267187827971798828389681112792424159465893247866837515584432539954474484568681483292313474177815175651713847843525354967821167798692414343536563754164576784121523381389395151995859358582146479525156231791421344537617911193797523724571851154266941453979162221692547295867531269254632183357594857237489823229433237336616528881239916885556671955341435999249754795369536614369318286812585275126684395216936788294515168118996719719779188924446929929316753546453128742796829993172145954221815442147448286732447651583663143523562719717572443458116499384323888241966132546895226482578764967497364291435131268396694336585885961638719248557574634728824447229656261316445473215438846263112853918988453465427136382924385769993184319181917842441373434419522363753295885117799141284678217373776813628738565441255516858693723571384517415587431494132237729885579675655569379132274269385851531215277124799932751317423163879313523497633435988182246163161323757829495351262554265949545653948394261658584525637437531521858411113774849241181844645955786157243523256154983429158115255453587296315441954194172719238962662114359551115352769611873253339622739332184266754756179973414432351298812687447717516421991124365291923134368913219749387461334564559127481697344324665132191419862233373966888991782473134914968262472332218141126441213812646513673177322159226622249844333337272676681544136934519478226336198133437631684557279829983665911258441253522215796614116113222444246531925479516677672781557221148414389173661653837336627212671362324335666882919114257496626648626392868223542634951989538473668111838758295661963592479222662489292237779585363793149299647293948247817164561167631167441157567492796132228548888444612739112733893122913589487851267684421852439937465491536361674291623913318622788967168467113124364312592452588548463738176648791211732847786387193543433377922666132755112849513156173946658759823539676264226662167315932967185936118317644632168896847826132758246471473483185185958454311836115268978881535727218411791942991279653131633891839347775951834892986422625494318384825222635536181764774814716368667512451637115534866839213986743432798649163164714448759164912979122737334579254317886522912884895281543728727336372897862274354838341815791592726671719856515829979737683438799468518983891719944457954967791773128967989785256819538189998449652737526735951662519251233719635325297499612627139689163594947761237679458355135743138321299875485286421444534324297596933133219949263966791832414431236898962457579386771876391335565269669569814429661259292836151384413556111941733999676892524343239843264884167756137271148745877761337225177482866322426412683916585417293972851282872964287738313331826344515322327525428175281939216835968524495192568924611157964831968161663523194711693217544155992992134464639331496572535797462796995575754357573919522562335145494486112427514471223558987723638189189424196231679399919223513753764253612131135139672632766959513449221754962859117539667862171314573862214468231872618723129836746428711566268941462719119711765514713251962711812793851697816625184855612764353748184882685449141486592919144994634314929997821825326483153672376954839166628885319532211195937776181116967597131127752324256714599241522292312496343838827257227934697849547957114891917569566787967115789712525972825788545254491775637259215192624649244817964278781986319549766577553933753784152772937347378716489776981328111723677232169511466998146765317388259574587934474663691377444476795141562867458328423296134896675714732814199499717127282382796394876216868241216165231392312174896174559335487652362822751928876938864198237474833857376189869975746586183318231777872511455398696685657471924345214688847314711715329436247536183755349825113579291854831333773512816761322114132623771282793967713136839528721412638435431519136233269367214177765958335792178469593472513447694458823456245241795795694518324452312491642484245992793732576437762817547364442438141667852269411221573863227974416197257668699193263635168946473116353763716138644528161192479427445136467119927244334522733698824622743393129299312485843741613173245748978478392755157221231262666715818247629698836689141188282199914177156729611841851516341927365729388493496217112436528847173323992293419136847189935336684292151794914734575298769759648227635213445561896963368877836954961195958144943825474987872892989692345322717615226133263477694849999347726521484546137578867339624168314121511513993964816952441617974515799943981875242893919823152474812516858138551394213387995862463481924331633642427863432468266528199134457862376365264759686652198411974586995668865192164937472352314982953883595473411172122536437755273377481819592857832739729849576551829622229673863265422341924254113491684949468323513585112539898619427191859218784565881566487578722761148884998215286196227316761214747273425861341511413527349413778866579493691283826569162793655135983847872424584344195817421947889876299199721234197945467926157666536229793195876843241236323637723692866142586493167126148824418295754395284685384393725327753288453674714434726182541319771634789541413668711742868118155311239542691513458548441156161364438831391975899327911767436335687198996549542488374499846169461597199484526179152483711687621595424199544194829811429226841414272987888917829833274695595519498246168962811772539816226213876764633197582661863254151991689318594785642124153587219813615388942548329687317376671588795331739411645415888139399284765327338944234572269644958427133783976334284451581421754514611431556675846738263114919955947484589863861172373919376914335146648817154744483271453121112475866357582199513521382618381417923174734795587335517486899886428532981475439923314938177547621193892889829239332255721148936122322759874726712261382473355697928649961284231125824859725913355681463633429663878941329983578778164662369934674395159396176112896316632386424121832164611425773166772635255578658835222317676234936987619291141658212244161798461654915944917653762744321563986789253752237435861439657515946141342176994993636522651145133933511813318518755757489439712566355196861129956479482345622512822894924586926443612253457331747552837249843286387963188943233483667924271347891454484268657143262615122145423473695555222528621579135648768956531495611146164778653228323346152794247362525824636556488293117731596916491987122311824521759867217814457444372447799511137651351427281531765417733733432794651846425125332792266871757296119231146377639567413489675525951724959432685724383527346469475389675151395653758798811112424635985789514763121299635853463858898549965381395823998677922361683422734657447925837755631111911367225737186875435525355876375274533387249838915763147313666726618319244627118514752441795863612492337697527877193361682133549392953691715435548444474518553743268315392622621415537989327974389169736814194924812631769768149261941742128431989222172242447355652754346916152278864586974445531256679623555979774931847161555462769476872358416226374979563844343918939498298972921425821868427555248642483545652419764154353368678665217416842486534567896212192477378563762419381383333179157947792455184944323224674186684969799453632445827585656355381411289528864933737155169526993392589799487637495824123616277953454125134895492843631295451411536245994672493276256722564135296668167338276651127375698962446771498388452166549945225517462895711431219673813892556777372362385494455446426532637836749378334536549118293674319411592873282678298271776835574785491773667683168442381214874327939361345616873429626925581322385762416454245188692784633431531281162769126769825984765119517228749844364661334243151978555391743894862229473277769144592284946174469187615942752268416659371684195497766195274235448872115129269449238944933592438693237486619838499452686281149226874825293287783663798716934646736439922886667527848577137958221517518217367295536211263847218475719159178158348945275813246724165378823544487651592548496582955244561373688129185158284327346358855662526988715751928315773616877811653328247813958468852129838134377299116181787885696222251697736425412332717212974975161217247829499555261121611199324174443221178338251851765622554588934918746443945744198347161981115241323926328512982885252316368674977741184232191673893263178558583525236665429312717364725942768421419517956359118118738168814645422463769694988224165231516647759386824176881812121687523861972159717272231989266735712553571116714746222464414823928157312513514496879496197265334765581684972383459865914218477532645334811457744227143979399585459248334182746154181983731195839649211449388966538636358238913838331785776892718433678419424278131582112756374515176353468281318593918741226857457835767844545744552132977851716856182387211747578867884836123521975529342157613426219377135983484186166418631428627516153371281524433661282624732214747273589412126613673237217654525351631777133218761236435272176415285757588859647362834841321143232594265377811161347485429986944169358848975673673948488186567445663231525851774712348972868941833511724114459344144454142133615259139391226145725464112125933521551224985855193733446938248314979685477447448336156961984932355253443656112939742846768414243929966866372292442655672662498699844627939721611111296332523615144689947876197273351963463753285296549487783791719581144356289523622992963439289986969621151413316255661341826846816666299183593277387934291544365784745813529872347436246446139441644386861423323459493534131391325976912144126171139544287699542184899349732363271114484758777741127744544324926932796269562942195447936886666598168241274693382438116951133889159187349249522448329619529865386444752466882887722221418394843132739165522929784731965528666594435935888641847273391589232355383658839523729427112528895248385432122324843746465828815753729126998811743787183822111165191115425733773531165436329246385135251545556869147296917194381239149232214751469847711644212219625884214495251663513269814711363667395554958246929438755129678719752234646938223268218159575711342676333481779367385891368828347146661475148219576926157118124226971838694145947362523729885657317114912251538278267774322899432233379243747935683938713716363184613635486619954452365156961555249774836993518345712379667832263784338224774114796689186879864883211375333649695146193972252877976128239167248771382691833492461911721569785615422545224669434927139285492199142788732181119737366773328817464391465248995356423135569318285238798938726434624429224193578329526219475254164365571362287493966673289689293258391865268692342257955361351674481638245654211333212152287693212114386662542555931595514638565567892146423453398142336226511767651142439284822164957229216782454559663241151455339751137657919352256472946376818766563136578957956192116678461788148228393842727141151873526338352568948164613814985281637415489464462143343634852818593245883291295468288698744538141336346749723679263641238451953319766626683184544771815221119749275332281916939522118742211643613135892677145819197135533523275311738694698332811245552773945391621521987144374297194933711335187729921234675963877263798975614272753946698586495198197259435887929454354297516392665596513299243747737482882924746825626584615837437764968429435863573229288877818262455787926964313458187488289151555119852249572194551155514524931191389915342339752944481999713528965513813312767472136989859925992135817919486481612497674783786367137955973645357561838448669419133629469338249146847764827257959222171868528179444738531591422645667696963839223231126855248237431236861651588836781851946855484421894371365619178546123823951849671989417672468661178111248411227613337394438222734422426922791917588446887492113248498197394148615792636445854264495438869898565923134734245692975552458588175573346939968623931289435982664842361353543682388918619832951879934364386436893641893628421914831314863827299279379193995519551454285573691216811523317254193264172261192759416498346185155186127125487723652293688315247852845922991386723187792628445681191667556352862891352647331433561986816459129121384421197883411397341873985323712984316466461145441183818173885636882114889388512449812762245164229927677878391315269851573414997551691429267559335756851826319157154344826223418361153348321293386696511133876117528862655794158986414244992737623388531346532222283676211717329925938347321437853326152518965336635622395288494383141571191796552433877872641394413915659974229982621689418491638711481719637898958391129653675672651677673274732961221732533937761286246352942262424598596234784675829361917666228185846918715364858335448244623228171824617165787766376799948555443127394539617854347437388782151234499346757727673881145182557296296559811113825415321182778295854394625617956565371995411422146957643328474473464763364218449622241482896537869357595616736131269471154135486221313931122537917683992863568766964331564179338558875842131392484333193757682459384966119845635138816126183656122589262956523169383394936464422533388525853411711872185557963877825171666629476343538616228191275316837183961893646196548248325628544913831761723294635341517316843255556973489974943791553125391825484787478169553173411317685549948371356695114112485651742849967846272797515211147999763168757922174558455415748288298837822861231921111643135444192473855443418181946814149937541314173634296495316467759448417851111513742524451747142215286135462882819144593691591813944336469884315481812472373974949472899657984596676234794237169815443656832498983639489961265968132125778746751141783386729343943483168118397453451147874815538375312824213278215954817545444945312982319481794551189287911113737151876217651425424876416687531874976896255945234933158621635937971344357467226832721432931435984985128847544178868276566614347946813279862115552968471924551361218962948433926822521854216866854218841234684765375527632575124291195539225993321235172122915121935221655464293792989648924561524948782277992591112284259422189968622815255313181833335128136151351237857962277868171793645123341224993528983956329867172155587372823234498837254764715829793137782641698452368877946358833644632741448227568525249358573221929285945133882776398444232553416615975645215142686965651181925138654761127642648549379294589245135324156712449253127989474648565745841785635333769129339873577173117692645125912252746635172593331199411811384199192219232182724593981693377261438381567314587291358131478313669163446862982519977349297853749747689612422386766332295249424187256823914828892426157713448863436984125493879121984618246822757547487832131952575277589915911384439385326963929349619232759925194488598881519334137864185219884869215115552419314265865366216494768296678686112892374356142679864984763475225469498694842698865456813176954997933712419769273134833159269515317734412616758713316389395377142276162461231557814989914992899294481727417974881172575327919219558868324452343233717431991538457741241432815722318871139479921926759221368153278726344829426985936358267969698796572274216616788744149981734354557143364441797817721449386125453297873978754541275194881334483272714649526851215372862255815312698851143238641692983363337613723935212653284576239121999922925611557129195584965972511851568683232842798536727343272921519971323583728257429141618293638815199575536733627624677932147247314116429234396818573776711428171619636134638562914555768526429126767347421395723146663514439642992719835982757423774747887633368182671146341255554145966423913646164336617622226647161685227557232969934749481316652381214213382514229924122134148942773671139183124243753952991798792163575814225688567163437344444692577731284172825429834241243115179199187699457618233415677445688492719381362112184878162113338263517988635795325181613183361811682183545717447312447659642172693251987112366522543627122334981411684984559965868174621233689944343444321135454716436788115399311335679533296479759342599994374235656166235282628225352154438898955496462752213543133991243573951627129386122694935385423337549195927178645589177922156225442785848836542528125728115625341719923765444646797654341624342616179888987382622563521364661663724791157683329921933298325874422841174273317234638722761914114878774374892461194724128464127483134741164663524441687384758654253239489273312212182561635621397133267821176434313843444969916138182298231944453263787212725682498864565724639181748431984724337286729221113282869627432942442137478831317747416187818431127852482785922587245282925185654476242127792163255586779449646339454994745699238571459122939544748919736781122112122236312414888295572389992818777678735176376938358999211469421982148312351492434944158855975721539445933829276143391767664476353354659552841748793545776897229334884152815539264198499213587759926428695623238844766843665873259726359941279419923137482797785535172263454887453682712829625949295233152163865959196256283492924374188249759681849353179116597637359675185374443213248829948658735225446857916782599192393816112356191986665196526133559642897415412265144637376861579542971428351953487454655993284762262287595325729221198116218718912993956431786472313561658564937425934966791389361555155721647745475538161479793346365323493494469612982365418266185385513139381728886737359679528363359552536966881715321712883141221329759885261735234595222365592576833788349541931253159516532574921368484445974885384322673984717544161336213583453963913674852538269412673866581299885115212266168932146886177652847112732217223787734384251454839182483697465231518562294312988286923483214746259866834147521344114579369473749764977132425177115227999553926938631262632935653451141826918752474467138686518955256857132794494181999827782859416753225922937815344243687915445411228167834934731876671961549311224687842225144381558297398438944446937588334653269189363573244732846254731146158231694523771874733122144128866642455976114535427349351554366925598795144931735374225461978152463135565412194183632621338251393679539741565869412919272884148147982383144517156598634469551259376719964138155398638255228618911586226361474832748415343869951912113382251919596178425117129294155422779664224262147939846218679521429866138593465531935891444433453375171436155837237144554438282911115165347345863173458493965276742148414822579324657991423128888518973867351514492438355845613727879899327959691638122249352116211882473728538942423175726888799852619954876114674545944775864912828198456638387932814311311611362365883398493398498795174366595393175131322464512832448212741166835134328111467564497142151595487922459237798795499649685358682193336678217441122344516379935441854487692711447183316766158582714716915161319219323667775948686152263313617896716687136957725377511988352675484827144337747579343457255867347219256525425194334682948281815574338342517847222753356417518833273297361773972826457991489412961371715772181359258148533829633881253138144933815929878415722362243538764641569492237872848989529876896526548211588995169872333413833693266335784165588387915445342996613437992871321944613422161872849632885652498718718574914945321149548142973786364186517147352873852954791294933565963981727316872773362191563946688779345555819611283716438457911772972426971629748581883516754647654322846893267423365224834269335591965171994589118273353175171122229199574153927383721645991368383229767854391871679678311421916845116952494559848697718422465867578169412847548546887582995283872985341668713988482577914327192623835379273727295551126742461613184235557496866149967213166236819999712449358326292453317492589686211167968247135476739139726353339772175853837216482471456471436828732152315194284631639732479527162597351975251371429556442573555173117846314141854915987859362255389396752752361769411271165644471166238241412266146478882626241236772231117457148634829214416188774578271331662971282491251873741626949411948557284138656299545136729542274659386423132156966314566523181696179365718562139547699522328735525731732746758249765666831446317136244359542941353231147637883129841793626919289577828879386923966962877491334346923368251395116836195758877218381123735914282945843528116799785943788794987996398264152638362771541189224282824617658115416995121114456858876116858852916853358987825154948726863645239354385221219177211955999435324561736923351135391717359163569261532451934288643447772982146585223681974321633384771887445785823235489477544711236135753152331665162176824644236899442583253618199217223291295992155852374133767575129649393949631383668629245999721136795275969275673139476368172383623772344681479992177463531269894964855488775295945178514349925574621426232826776399559869662912896911114128533296577824728623954369887426253292355454268236821779245533168174864124719955127168784244633464337334696694176551274414826292295674187989635672143557945452648861918656795575342567564467476234445711257612672741941253365897146896585121155687278623112695777658814581914913456441856563179664485649572545816659343542543313272198347427353933271534971571938464451752816191912183753499539633376412582468551368619474682275951955347363431455714622485163971495933991439194886641462968529326593134344484255712369321886454884462997891412344415648212374798749483442662432489429529937368558134163825211368888953577391315413963591796224143674392542732351463115554751737393547788638555722712137383177231948192334659792424582829552161352992128484772681618552249897761941982283398986414721593712574126344239281459543459389911842633566141159751837224382196913372536151474887163179957143659262978113391171193141418983815931683768542411862137612823919952349224153538139442433448296743943349744444792479598238694986491438175167135622381328418682128367131433235232286623372277271577426442967273216527319642318545534537696863871461494988451124664233176714391413294588572464323527628359231785535829577362941841744698231984934497845273941141157797571845465912642978291729327161619185384751175936432834826989549617639138867421724111129986555911733391192675879527911722336477578228378881554255313113741222734494326349738875991227966595378412492277523413368212348261263158426736924929993295557715851252179695163659155898582131216496737255615893486382359341751166514273921882382155449425467632631629529352494879222646347942958446553962412453932363351411528683596132291656819323987718447567428272172371481141728213313119631838249611628611397819646574562333766623595983742833172584487625197928739972813592826847291599793246548495265983365444264481996712432488116499874151937831184249762911393354443443369985191562259248232761431697826593293658461723725664122258122513646278626239267966435441242884284366863668321779374846654663496898251113997259211598788436544872926819644134114221917596178176529551297419844743437326241115139343285295914779322248463346345338117133881313485282563132424158511119625385468134937222462724412719782314284351389918448681965263588454351978765422219867429294589792882295778958613227944862193517418972972649556555171885254429588932187934545699983531926895322981457774742813449593917243251454232311438414947315618829438643262631932151429214584346191321144837964761532972415166514869484673912576927639156565887419615657752338132623385162256174156722974152251646953331391883727729896341734783671438895412257243125415573331569668658572569166417854957638184313932251188468614391651395996423969761283741511381219172198311272624697182112847339677974812276937472663858443733959422173915936674138229881625335123657687554611766551272463961129636378134366128567711281798811951337364613783921784917528432173373899555975699415621128157421151497596496782626621597823516745836386982337495816694494364795374838537531836173269535758732326582315928423897629623799828549917341876617248126178322344357732534134294963992285374831656444669231641743596563719816355242244828223672194342133264249256121335132724242915738575972919363945572222935631338732971471497923131256654352754557742589455989639166889112712175956325817555911346581134668645343522577296819792376656161236282973372373238997786759693734265746786468331281776699391414988161261469172884671127527216537328241693264698679132177313965482841252282186172678344681529319766185878285762591833591979988339999425191144393855463898761348433222446552748492498515797169116812449272632721749879119467982213651412211336898879166498897746257277767557379646139218948971527915432122376794624248227423562125867395851568871923389899662514643192813195777212133672237637559717718938857617161621499771472342792327713647314271131128441191258251676942773385292393287947526991331793369613154745748686196587973514983214666188271321857194298243733611253117483287361182972112373193322383912828515266212176532214352165518421519132398411319187126114923763521994631642126438227689492946773835172992289767389736534691737829187486917469199281213494424763948539214613293562346365612733411724382844612373668168768259145766976965572571895776345351623897812694148458932478687142883936789248193441178165496759558591946475757639892415849233868237293518835971232614486235996127969176822499229638175334287349162532463652355946913538134819339948694261119729174292964275778314488398523254583247248123119492477927688775957663191253722325696187963964336245524581263314692235594163379846818725463939813725391189635543981178869313859948993682432799945757614566838113738387376858456436745939289368183417228296337265821325723344451965111785688325686568184693765622127153747815859545626893739741174834118117132954356298782711686782415471485239134392178523157543669235469487959778794127118443151754772658448973169861446185792199588457558625223167485475346596376114326373264228945127158162697215139151241782644871732281367731586822936471248896314556633473897948224463687959344938561338485665199558641145534716498769126721299925522351366673762247791157651748346638765692931811432369186441818928262369334349129987155119195511744663383341316479592752287623957816491599413814496489923357611595753332252196778739673736693266814723495434469884439388256242422341186796215311853811657773177175619853253616663613652113912684262677361478648516113569289456251659953596545767836229979498922699749329433173464927956266341253315553887554212571827899268628824436583181549392346239842898253169796715624267953167951759281452545978386764961529893626788192242714647972696111793212161939961596892579829992925764822452612311236237818948731329454721826714185338749377272741631436572752683942179133189916278125257236182349181835833385852745227735878174118426753585351976551291914911854354458714159554413335379141549143598159922219558349335661167536275712211164169389952847757431598473611867584549971697412624517259932585162553331452371715218653822535263875423728174468297322423432534339624239827763448941222324777269369284722228884294983142949358885574983629341365359819371531649948276748169895759874844925366884538971914161629479711629427598163722524386882843114474991853862466227424574747462749742432599688293243712591167736417421244744215518984737832383157292713915619343399414965335273336782142857913754554627181746846547294452359155432184927245538719881772547468819759231579689774668639687236814917135876865889364145952113499481895249374195896635336226667811614194479834695979875124121648714324351888713647275861669339522557696842776844524928872393549896812798825227518681381835811156932889162291525213569768233518264753691352672922978765324659239999313273752337688788734117411143452162219656846629328791935447576532171786773819569998916756822286498911413648216435242792683457648428965866869425332741816312296779936457411321124178345326636834381625248427885131116461112616673183485191366653582461827952439576627437537579857563642736232356259719686134367854977966424722964359358732435364311287545139418368977673541212699781491742995277642723861333397928222862836528746552728262299792624168971647741153469398421721975599363611963434694335747315171648521959714386643677177952635825649855369558712214375794631641464531715693153759992533759562748211288174524917764592265876162459292341523943221326782813156641314959335522821559184138192578132468512297986753535127677949162338319262145267445916279484523981335396248761478291986317473913913336265511967189575355244563186719117243111967492583272194754963423528153391957762441198946497985225656112365365357512381952699963283833531998837799913642141431876762289865885847755465849641466867899328521632542132929421168596425275788944139439269515952364125434641937498275829141281636413458273858184422479282187247776787592743815561165251616835929456686974777325116193462243851255211149284877122963256541527549812713617448787633133874465539438312258855788141815958859682272797875648991146771179737312198492641396552969557746191251888142945156886257577682125721999925641579169196887613524535661143319764333483498696133566387715755186894663398966742825337228142135533812546239438269216998439827497244514525593763264642544946528221463327711624394557162963964176912966193232751544456353968849463689662251841888258313762813869679734626348254863382686531572163873382276165746138161322116263658649946653739723452748316991384546688928834558382744358324831581182481341535142371838468213474292962342835216244743956954984712333973578997378853842565974556739415615939443995486338662855893552131336216696619563735463842618111447765761133941315222741578375862494426568975861393827826882475554888287752242359677588148382332642818354977785625465774625863284312567635865269442613226514849298661644331317231721263232217579347499693828521121927782178318555713169483347648981792576254975926713783995699547619773777284929647229754434644451593125574797779832954145872978812119915875392999435553128264822484454765677679725589746917252576511546783463924436788515134773825774799595372719923567528359652113492823635812433278182323112629382823528226973347584178779527421785114911545787466445582136915671824638454613853227895884224989793966991425848435787441339368926551585222471793642536432862594793888831541915672695829747888346935619556568233774589727135646941217687194481112289639221662134327478277325627185746343235658276668773827191744497894556671362573438797255764324341345477692179844449876648644884659316852434641381228373786619753518146172858882476283694715173992919261511662226854662264121915815112356292129196734362628462543344923444963675419521675831818222273987814872373821959161613513344928989739664684499437473898422387631878662297549987334231312845289259645391266686397471259554736451958293487712528321773379256739491993664122369137599743665436518137971283319639774657551944399288677377121813651613179625932144523779764931826718814915272418629793435533615354889231653367637411543143234398973638471943163821444564181669128156239681927522445234214245691572944389788858413532181259749232374864958291217615239183176694683691874138792759468785493987512838463949452449438344225819596187482871659163993211362229825971834558819178278296277744784155521934168235879195254551839595922133622962454189797154579574935638728292258611335629248231269177174944357281188336358732557227833617445518738176933689572222523499941923187846273597458584115963855842883615944228886215814756224181365832188136776612157457462146794489673148916739256778292164897114551319629289723948245911265948783159942351358129238333819396585813793944733115865845661557317276553784415517959438288537638852488233675753475379783916428877559738649666117119729654325735219187665873158136183774492599557691496684264662227591298989967117172442618333251151315849652186637175368238754333597273672737877663118771163931394929115619465488955827442791742774831161859871453999182363899223188351664696251414385736681195517991581816226376694962724463263837732625551689582197539885514764541173289764172911552955871261129984333143681618862746835892719614724867699532378291391623423129871926129485143959344758299136759659216311499191973688278348389431192429355181765114585546691726214475928856889135183387741933181336124458921852429453154521576421536311755294248845183341176573376646785372391363283451615226473294657889363961278288412341197939226637571998376715674144196529755143847433635314816418489812378915235443969128426699823952649389143478219438841992818977228737947454532171474152151147374547153257823722455114522126287639431723411411341467622691176463219752644896229182282466851288263583129693447177334533981684139978463417462187635854873268744436933715156684699432934817137234756622211918914242924138815671175829467361738975718271389131769912391914826999192496145249927975285836429459966761196149457533899176383328853343238136677311298812664152916641273166221483298411322665994115865895362121833432824714559815343327972891934137334541289884913483214675486866126151768135827191239236791996837257194274443923749343926893311293931612731382198152395326391161772244732139771685261471413221264947317343915813636535535675632884962383722682239989225891482931233713649593924136219541871539343647624682589662568826132135961654694261123417216149118888894368355868835233911444345926334979577398388631793939167132783751245672231621763499334666182216811662588721976978859388372826888494569231966318173187665887229538916347321715563567194922154237974773119523417471425962714514355121945593922478817382831548572829613762717674688728514287839638956119276532973631616332571477815591846939247827485482897758355774676464913531837427484292142884256866286283972665352414616572241552525439142246192164458831278658731114265794453248764547191544743727117746183534446612434447917771255628471918733328859241881192122835426467435719831154787944741451745172815741123178253188756617582788746375153729163534971127224217495324492136413582245571375198173312944111943295685257934169253423419173187189292143899421799151758747216489936598759561715598888717176184948763115648123384645342733491514116363773629274686448821995481285512593463284244366975396456877597633725856199427717181257158923149393351579164963545146397663659167981588497839486895573495885996823647455679522888868246581125953884843795454486393917514528146255612461565239126432448197378673233741318116225861265874567126196258627119172861317435675873591452334968863178333738826471119291632979196272826251364539974563523419166732882263483235844995976933831643461152331121216966991485281617469336444481621133897815185956233942767799129281327537628811343641684914125244714349284312286617143299893266481576374597464215541725276227817687947438946317125913564898661482376993817654239776632583862625583959752449174896548633315186434435573252778479572987572849121913188384912395411773338434999479339152468328796862512621928455755918637516336157525573319579232119574114756245416652569382346156113865464894292252444377489663787388628737613859732463826384663826563589935777313738665933375337268769522238522133444452457239853387918641441349813434746165328621982254675323245721613839635156628786791939416689543544553247213749564166773442269252799255963777192183256113636256754496438529123819269687622348131444488526127478783173695654917961669468774229778546644299816979328665994763913736629397214239628932767283846633535668315511965257923514569616214616266721546951288378384289475121969786343236544321189853962136537491621484752333775577632388482667595319815326624824461846168655553767913183141433654868162794325713699961753345157227914239839444575877931471776849155558282497879879671149436864677337447532546332524999225233184985693743142791921297529729683391892823869278121634565251518567853816815219794753794494665714229572611977936871187497168371369794988398491697348836749414724728524614231825844444442533199783648865852328585292247316658144799481792863171768395622612251737768831151914196196798491619517845713635958356267696919813546181379552243878218592181383433522962789486655122988712378944425424441631569538186167673456387348149226598736246274199658112116956198387222363879286697977223223427698263782592379127963787552457676872748698858579823347484157313131252389679739429482547823884681799312312368277424262244892619791711777441813872563288431153829474463143972258993559294142582847112437982225513624488443777176312732569533923763745275167645288841199574517521427834626341811349673563983357491319193962299921263569577243344924949828321325695856386525151877617941982862544898892738148957852689645711558512498733467991725938234763895113337716946422659286484852319732329548112829678139943917968852522491345944849446812481342912957314164319457136346727131814166479799566434782195347223727665387686759642122621979324883376864118863816193331634736654246211137927961476554939498614298675695128122874441287151883774339771215713861917533724163762665685123252776111777423666682256456432221375433152628644524213163116775121324232993874595392448415365282954648312542794168387791178719631643346754164453687676788789622458562662449942266888856133325666275271478751656966481525171963713252793999779493983276237564368352562622587474497141134293364621661653232527658496328299263825683573168688842261828745462373864776722841975328621627796575137988662719595642212223621841823812141471276941182333565175219712262285359221567857556656643111146887935556961512126324144865488312921837122546514721946531414318684568319533954514716134716318514997228883357492342564965884541438122391954426494652859239346926843894278865234218931896354646856667521163319395777999244739325534138695644911461872916448112649478614172615423484568366156691242794239681727171368522495623235284977219585532782322714663282263955596734932394116684162423285246918146367887844847163719516417923139835476254192851351244164262551529962245854226172652981259192638299344362127244744126769255416787985312764332259789695125265784165642656877116163239682598823163991398483552445388646721278378646266557824273527626694439295821573161222323239219312225999836331478831382516564531231493482338852466181652927486598596663371715422116421559228856521121216473265195878373317747994727713124142513173582578666514193186262956617196383279377453134373968135445515548953151245393573145914882175544445584253424591374225344231817871222524311532282891196491134699333461523324225633396546752679937869444354212865391312924849639939255871914568154464641891375496978952433313714146837533669787544874162168813967832517125144486455144619667198753625638129574585839221413163258682478673941666818387844151468465684772789687232334859584256738177673389212258378874858983128293516981776228854571438636133676762214139211877649671259977362684742564463677664495399217848413472885871841874175896386368441138475924781845233846135918563172641773277536478634948584144521265124567524428213416813519196442234534195965711689755149697722268376263591452945781668177444772252613113472481638565837669371962941911931751187336168292617395611421248987756115562843843164628657369698783444437154184741484844729918374135574173363256393999971493983671375526764571157413729127377454264331675393829684223551832267562382544152752637592736477636479928417377314462996458181541421742818548699563668754347483711186429219159729563368279746335646347623117743261163181824313148959153343961952152288679152916843678129997666934437614687178483623272485477943579515619871599736524571578116797773532515782113292764517527586235418742431237244926493633654922997235692655861116186636637472174449729258649118797218851412991216585611497954466457316928884152974783227253245344262568351936186199662546212456616783537172216566356144257924868349753833553871813384366165343174688296729128664999252522677843986258244716728362216696119419685698349214463564143668256716866311755212228466413122668119115913154739772229192314159974815669522252424974458353171341959193865445326538437431889939234443185484633722365981678363353614752769323722343139191569731197773631482644183633651357352854814862864432427685499113851445357454952868428314955786238571765378321828183646116979151197171223779291839439261353712256628423265437353691316539491377991118931632168119827729755814879972363637148157515244116852328534595286412466363255415182782731419891162564616492931875593117567734418415781812734394773335669112327952762999951283697532382915971884798391957889949498579413136943929798366961512118151736713737883272593986843328223712242164366919147517977292611685541569555957476927799676153897843219224122196823464372729921759713589626155547172318112491757295874123699721878639182898163889912537396168738625155266684615518765298994975262522928555699683919651184236253239966757373488946759329141269953112174127271177288383997262318294335588218217448214398359696346637324845372312377999897937959548683461262469156735952293158332638718469189219719279664591243894977862519581661583886369295536467432891566723429996869851881923164623959441713474865816123839233194631756884884369292744433942791157969211163458291542716325235596552328874162995534742559378326884386965972773962311957388532587298292227895948583865896345472115138327653644184358122136317767745154364673263927454174349453189675482233321374152191491769561253391447987274673433773584216234239617263159113797246613144781864744671267623514417413452686145368632291174513915451965622157927123861283267585162773878466423637539959794831642973735473931865227978113879994743412774534948341733258543463165592239737664229721511736139633991727969979331832681471944818619796779136598784651392815774883288373486447312156447633159898469386523696237871263494319276554884269757194379423843828821492311831424527323615815358221194872938529887449855791478875199982689161252719692918581646572399668662992251852436522123585937788212883264494693588442272347639137743167359922335556346793487357854649591662849634385638759515511463375844982566344412481634833239837756237594912141886169437126116958179953921324361862195161615635821762861673259647384624135819789851132211659221221191743152657141932531263932445667126142169164866243662398288538527254247113518189814975346425296239593524464822749155536925714965125248793461586586373272933217979423878115737559429275179672639352589276289372781864785972457121349224453481575611232791518343631797118199747358657385145899199128425215526651686233767642442151236439511944353236217614343973414238767248486467381431831277683664388576421531676323564776443861723477186948587459569969543543547114236565197538851211627157591621317522368315291265597755448875186697577349672769529144646427593454148647723278252495618148276324575464296611483152628346185138571855667981128377375846721869429492262794731228531525316535223714762429177553589977478695858832426211439762958717345265119714272118564823645235192421516723693834128219792789626975992912392764584567675527361696841339723722366425462485486122957939678888798253999449562966417675627495516519762718649743223294332127884843582798991313357722152974573162584658714125717568965965121169269137867229197343973425317797944296422363341273327715873911137682722413195423274384372792612933419893597263861526517999481444448281158776471972918846525164921577735963476375297913685964949778538416653834893552113726947313325748364561173886211147666398655769591973563828762293748991654155623545133289717475967484248485992538164474384694728344246168152163582977293272898925479494192817596397796929289562636449983632422591495921954593565282556293414987396463183871894396111639618472679812765453686274747798328684794425158495285863273271195733627838981148328326353783976732755782196711832593966249864324923184732762555691697639941335497193368689375332819554337985297621695871545664635787435577137895583638431663374875433226123884441275552432927118728932568214167677689692724197424275962734689128744588681582386556579659367396937346837125473514566547649211673672338424463645899264171598542312727595636776177818354276167452795711556834739657426553681678478663126115251774655388336991578187845758113456394147559418177137593933969468533292485199977248496118627568483689479847722297234121539922195376472968178444324291584679189595194647831713652129892415949585428299654834835943813575623442249285284298228164529125121466134464417359333476413252195119711819343226998382216751828458648938338617937797441431537935454267434299857461864961882596439468181414124651915457939753153949818931644952427249444415696299232929654235974672675297415633246592364118646291137733223214718852483951792752175585277719682478228413973612249722682976141211327245445743151457867515912258693916465468637646616282627393225547681592296713691545637677557398637286623461924521127594124633721139195186388339976237196489221548361474919356374548293148233411779954243494721711979184432877566581656433772226235146931918458961282511195176937722149714565482271914883922892331263793761573635196961437798147595852892385255763691795999831699854851459122169188531641461821595469769718955696423495917546625513176252996864268665815681165959859544946923133127641396298168747447133769371918824225468842229492899671185444419468941956828531897297514523549999761839336855521257889984831928329855843962963133749361843862376429515259541114796512882439195251837276814841637734231479565766715963785262498837885812924997163157442866186421562825445365125654714833867399756132157882975894676274993766941117986594831265885215221361196121732399554215741284645532751315735474166725757995894879415529996664228486126324118419337211286833168246551851743119682988799161427194481824973939658667811413685964285227535126228597521395456828636524745637336954248617454694838555559895646275574677183658162767821242213312521269471815423618221643354861895686421394296456157296454141193496789193951768665978414362928932328498447299411943771568943824142245111953985425112183694964418433971988382594382434182384629471376996772953314765639436329768919345772124332191138453997756668898517552266524978254165262917925315498255544143254957819149715966399736591899896459177112373682454377259147593799779755166932255679261755758932443166496132918478823389192295932277767294573992781152771939546878658732586956481462517454488361554311723696397638279633232611129382371331936241314918938221269419472847797729811689152996296753568344481284879288218581169152128762245694374497791358511536214329679448726885531917253522263689621994761312394283389547692859247563795111831565321717934659894936274644434243462435191285129612226578281539814711562372697263547358871533492144257513221156654114819923964294674745558872196798837123673757363445861841234869262947311745837913178687347447835831698886191629627672111262576173247738762716599174246926687414927165314872373721554165693857233186924377235117349424651746228339178239526764571616587888898795422337765743876671643249215488631315842115892925818694229257121382758873717148327944644487789197975163344978214419735161885185648647856546648561573133374616198379181816732159789482131414999328526175989163547195711388464187269683137273517844316467946647833216663113428489961398896369361348447191189152336187551222828663556665586578772269146218538357434765892416659486639152955842476436882944343193719854551948642196495133848599337973981318647292299715178965861966729495537124337415714692271936989664364162592948953144522578787318866485445976556216644115572274172746235145679366241559431957951586455975828397798439223835175399171887749833194286116734493644262984521685432544335142546473587268962971231652443274934443174333924435678198484426699582911752444356486944581564814737544698596455687888398942294775383177237611611513322634337381229146972593794822988964328396272926195411672441996885627148461156317732631319468263586489587291548914847271873323864133888933989589359499179764216989624595361553682999744131469315581661139212924645194839443286727124257839799716255241215688285433995445896685417269684761961123153933582499315563433177263348561693441597864344993985739437274656352425852693542114454399362761278444117487697573511794594442297439286531159126668323746242968161638926395435258951111621191187623445382287621132576484343166929971986257214747144494233498783863983554726126742889383294486222638951933585121869358187833926554598667296965848166727451561943283484648317911816739673458116226724422442737776561221995691368458384462268612134463334193771191772499154596823116399696142589766882437289688126842544197476229664514183823633268368262368497456272625553919944786987558764924721132957426222865682925776859227438728611829132342114392772552888434561366842991861647187197227894578417235915825277152211311564391912979641552411965861838566646194397526446995255942215461929252448983814833514493413931728332756117382975294797895831645326575165969578821857985238212974313623255435836412543616386294329985219764253513653537921422354817876923448458725336976933412552344746913136598765322914319944265111538174415477481511457554555764314876975138636332277487418639114411698982659385465122368177444789616389256263433418923851147377371973777189951787723442645114285433143752341827261848211144848228122188371795458126825824113195932114388235124744878736782954778992863711999829517717628453246515398136371457422542714438878489464691648621872242647473641151939454698273436495631241551969211452414629664312331276845972118573424135816655446377652643259284167131293547386624879976245818739422286674992529743529647383832899294458125361971536297149598819979911698773661212652354983713448775283549718117443833654494238914151182851933949337525822341846165229335333724318586232221587532183966443486184216571246784451778731236327654666742571619195386176848334353328831993199889211813236419831129429823779411412161937565432856768123646555496733541916913482361124982141397817142889689564164195869956331385352924683785955934216867355474836344352122138832526356727167282661943665667689623486297317499912335173737142718179191215862723557516738446132942857528645488625165317562957225729951433947332487996147285942157737922348416452519338375912635596263544426293924274293952429249829122185761841586687275866725267863191337869259759344625946396146182944844265724452764347853798695199568767824653197295546631272751626773819687823557763572735216748418981111519196865463577556454677552418741451733334666445612631538688542514632358478395155313741689252187278225691913526451412288685136467713425188538644443333147778391372527376722959753915589112714256945585872364136883481831976454559129914252767136725117255584912526736297211176212645796282755697585898393736577799532577226435827267497473835928615445384384617647257589664172231844277758127881264654515666572216341522261628292643425769652972162517471517862832829662828433535223823733297558971818382777515327856877378725923536823456394528963242592445491453812579995875879994719441976212223562436274788774286285155732834215173841283431188453777381162187232892875241661588151955136459788411374815229355457917735491917916185486964875963564524458519974291789253133928992167137785614747517524323673827213428181639148228946793877714593313291672648793577657194437332821427233323759779246426267458374364725445732119485717226382572774198955516291751244524525646355456933977993644772196899296641559769757142288263647342276357983783533694152764879727973177298864944992152894114537745859295116995363263986495859297147473989118451369449829746412473328182163542565526142639658828496794612663885712291518165644871817817516226843146422692418729679452254334677377517713386255953729812894645144853421953185721569946668425873511475665184495399416929454475115153426944512531781368858756685484377399657532256266761618354165715147871244478924356941352111257542964614485447237917543447326137696216798714917836593515832766977778331398956918135233222342266711946957244415268347671111172462546922552241419887729696456789714938654341792314537962521814374771755426486168515776965674329155911715695292452645922425349762364729771867619351469884439188923257633839214921822542263815839396724271241263973645159471857362961498155627819123691668463627184922266769367964714196374479729285394969172397972522859231527319551128689643626162645258123835624357182897564564725629813296821367774148441388562728796742798212818614922116868129152254939224497233721291331142796217174543758973572736939272455441552478411117462913277614787274562236439194737262876287327718335188262558588311618932241446277736951985748647998394597848511725649249773566182539146343678887824974977614297634684277673185425527597843692111185114361381218297716569188259915331111589673217294428883442462641444798116119138844856386923871436561212987153787979215394896627853377372832687621881547469135722578126832973968476411484982134213251121975854234196634373163916957159729348394945512376979631529565154812782851334852852985456512628855275582356259326814757172661649692527226944696697583932248172761475577331951218512754532799756473556528738568776533481682743635311423428118215245752587971547174394593793222576363114652114284749897777543365196415125778824764198818994827193659987665493577115897173328213739916373423129844947733775328533181819179142948185237141634563165695232823439186871273894992334152117482565962467329757249899129813964127269328619818173874913162532181384624434585539124399842935742321518698129252347177381426199254126326423629131923357463751881437222424287223182892641378812258999576136399975744662761378689674261817475269121933948266121829991267831788687831934169732359259647993383779544954662911894321678481944919882818396342652858411716832175673827647565318885381196747799796976544293564652782648227728347255163186946771567625326233825648476218543627963699978133717152655684668692194168714511713544127854137426577619582192278287247417555371168735823244656969296254792394136797255285311958464226712156611234332418548155657712651811685569853443376326427791126721764559433491823517474244993478211233896434152863336924978472677892127524672314483839566433957116212968832453192415757631583112732543982837411977356215916231539164639911179859473662634431872151112743234558649151118218222753929336324361166249468324362296154994127244597112713899567469423416645426298823193537611867977673785748987739645492823351192512628647626892436259355531789155334956579986779159117847611585236185166565373216411317243817885192784931444652258811913557735433559465821574355926176891545692967547961566295468511335281392988873928191316892911398896432179856781756916469216485877219547279124131988986425773658993822714171725942191865361671687136855426346579359238989145733828151371818967188299589895633954964951558549546174144414372915223845578116216276339255939492528689766881468167534111662721324321179963352115242522883596135284664114535556526144752167438691818779146521374338157391612699759881215492786957933986117911919481599518673537362435126574111698236979843937924122218789432283852759314386949766128419385759172953324614894553218698987111218156877266491244455744279891512526473193111471422923697141773248323533927761474493545836461937642231955535541112835428388977839244157498725353787915467681612313557128397512857574275659652242274639919625359359164168156112115122279233778579635716672182515666895662669821735965466466253198386856148822199169228718945691298123779652992613596727617743122937457592461331162328623447469987574898456693268414719643486758322991862846154836598316224485323267419547571898481366186922215824143958639198269982512572581962175853172325624466746786516489542155564488817448531566156423466312595921261386515744366145237233467185169988244172274715741455144395215266485246891531792629651726268322448428318184154721295453672335492994513284331711213968657461148355247838837136363561955633411734837799216927887633265413241796555517124761275591889729226525521637348548592694768418596323137991363764799267681886715163348182485558599916327477534513398354749564936687526391286534651888192551118836919844947421516554463197944291993289133721912781232911444861963328577699282844957459321928227714145187373399921831783655751138386441251922112932836169233736612112838882163851544714767526297487376267988232933546256888185265656662295432873291624327488119126775174485611366196919929676867336595784278526133886847185869757464424144651849969213317369412132145475328454277557698634585484132848331949136243228832539273275518495991441951618478311779387593443291318343461211721432626459396579112216591561523315583371156721753769225968221268363718264511535511472497439574398587151784121239526766875642483746986734359478366833169936962536483255245369348667945528882858542588714437693997542869529348848235317781281641265325354594969444783962988557434189491453441771315743353736937657156776173526785821213465477458862355286171157459661128162239647431962154932614694444475152181285574439935467387335259435499279248328233172329283719529535526584441828287863689862253673397511496855911626183993446252481664223224329547941412462463869125711889113861953724744216122439279139731887584593865222285685534947431667492483936215449627688358889411465929856652554576219789154731815119592257341588626344237269488957944236972933692353612654227496748815254219541965662347642221755295758454122123344617384921971143375967658287793888847324378835224895342417845842824816419622446959767785476645356881746176273118229518545935972772953933899453371211162641557312212454316433878965928845135429378341144655594729296923599233192157422878429125882931627925513449224677862965628723367557579491376739555237994615236662196564512948374813432634334593354168792751964864454485593766329413656267529262572789283589421896673994191519786528622316337863461212991242636838125944325769684352398951382438965635291266816152443153814795434922697139116365667918662182192631236138819586712593831112285263116259536734667219377222133476481492396162834879318692829869428113473695799961511717734813397155237218534828251612354689194636655651166718792532263746292484792223317633472468329563999293828162552489956121933625424259381314482288265967678487476844346428262793881647962361382687314596159856583938114953286247892199543891733889588376861979712134927316749856692838445321944144482461289873856254167856443739311342982649559689124423441164468774977614223697727816835254362925541735622434891583134327515975616814911412686269145293719862527636974622278755825464433947532476158889576399158923922846253446159253426413255573635627552155871573934367741155699544485618748136645138543165744448656816316126793733738437582488518846456139679689885967989824214678391138665733811268118715517666378892346688747155913393793424897564274256187563832323639785852636571313922134235188829672497411529266876876123895869426599668676647492798764673943376157395711346152418548725372666239695576536823382644451419871579657113311487149564117548692465612692221668522757374485834429914237144376992976632553657225151985372776334358218271551748945467866179449262942894814827765947665633925296464868194982515662234291556178894365756693657259789246175368359656373742551373862254169357464884156793522165842329727228117717444682383261874967311463218939253993531724647185729583597272997165232548357685622444283512337916874632736278166229521119745773563495111587762768226397467526127699746549429118312274381929666935238231158382487354473542489111923271213448229134221794643196866112455489598791212414142582216235497259261713278182697285176489466914236519774565386464935241997659327942169453375812472955856128285474272455314597476918472216145434579134264379832919863936586924993886359473921392355173553425579969317135865427123154542517257722876868114346419238732131475587629881224946475237954832969727556695374919132539596484561438295611113836456424157368735619925731299212322585481342173879754359989179552746834636875314238639321364631299265143333642529623214475476342536661111166127115328944397776873418334435559448393749116811538953891111296789447937744816212171141239824619788218748211782999429426441744222697873772182656581864623821711432235431795228914233617986818961498284148248147834253391458244517297244976199191682413177795358245377216556868365115399636641927977818737116655254517838194389668163214229335312415358326221177268986522322383681281931467468727213329971384515247798373344968172319433928456528412742367464554977941415875635784374514241583566879797459354511529299921253414651621318938995426712912711649591188821298264697948442512822458672314417411591949272954114832257591585669697131179778327697696119518136935731331224325488347837168887523582962365756147282737224712766599427343959882423899373697275388249731133542182795619125255938747237141248317385146956616266139749278961176425552185515272325768614643847351158519495397331224848175397125196245346822591812717375325246852359282528318239633384474871974695183142631654434314417632868594344324792722147536474796871723638455421752451756185783965774773453211575847431283469991551475511861265228342513816475813157533831939571298182554388363444654767268323353186159937838127361551112227179231462772755539175853425227366782653385251511113565178249336598442359325199346666374953414353821927745521692199846153629953281388719633935464611527386368727633418644224199638456976447443899227913764593659177559636555431128673783177521955665819122679554586431587519142757413534718988518552582221255479182729162927571718961913834651617546912515344474648643971836559418955236729994581444114241168659492868623772245271924131827151317438545263796331727814242212235334564198557671228379475294414569839215615141511446196442714425318845543392216131392727394459255692329119143446571396772129644751593654588774335724993468161862561566926536736762972179685722366417254618443518533313565385843478145666798232741624589229859287645973654939855342269946119815479875772545389886612667457518696911762727697193735965933925493644461393151385883533746374365491166373518464124914428491299977463326858471938884151641636546393396316576375495334426274895294577517993795953565257178942286864233683851139287428997947144455734522254139142119136755461832923828712884727462586136332726925786471614985266532642639314159494699881666864241362258612659224994812417598114692359468252871736469128125562238275867384888667321911312747998387576877231423579622229956276643216581899113452286951767544465632184652294852559382519292579517972385989222619268619332134498611742489995438383158462173254258371378759156411434644616185713141224965614445489926546532325482546844257868437975238424829558652953546452544346837155647368964152811158687459433391931865967153869831283331327452392812626233626481394637523714598229991272221653926239875629329935758712364371291585748792243483244932593457555187733484264962627783295528151987412537336799755191651471549688816361283112192663237729397557925989834562353765856324744414294591288826231163233967553423938447448956952757876417594681626484499141785384848267747886894456658761792481971453823848131272939277739472993316279923292985162329239858183756431792379878522175474333439833422372368151214396165892583336266944345962323123227331226128931328243875337473919746331815562842925517857662986184196816161482561737836464727984747292554974328523118945774916191937466753199258483566893122114393812732184825567532452387427726276781565583599451831827786213445181221539611137874198736429923271327395641124557848142837246111154557797242639749833852497673778956556184468848138769624873166165745715574837321618945749214296688631995285541449846674126433824545334845171781619499868596974363736567177146554163567923841444395172349184495987539621953118249643977912282325813395155687283713967632545563886387883594366821491497248891862837984183696117461484522175846825881484736693555998395754887538481294787182164726669536411196367813358629322363761262471731216445863911177667154223227997395154782234581266222534444275981224893353439315437965836632977785721727215444568711832422446753242191374651828326417133816642817811656672731397463628193283424674345683851864448687529552656148792343978513153167443923464265255659227856891439624744575412961243698592181576721983456849845929192431929382136172781938631284411235859992641391963391236376379348682148453974591295914856355211372952717726672793464979964735379359957229283928466995131742374517491539188271812399284546939169445632521631582171861683476772476772764923193541969321413236537325613512341733523299288772924235627423329117324928225884711743227364167161811837319916666935124417581652891298367293168471533424715375783465991549384612141544127452661195522386998421486212996523672521857443327662989297471654934198135613261831361981687311529462128168321657128614164463742129731716347873293762391654346513412522824943369163918223978363321795763532786727153753284367612741638931744419787981424454718215619473927421741211769155331719535215934819194895888335412467837647958988761552588422215993437387192914215899355212254831484169113561732918617418437653439763834795334372294626924713767716422462386675173672541327699879174883553158618446276375359346596216861999826841996476572382182931715328191253647251392427951395859753931134816999327896279493633253336152171581615492838272234891929639685465178159131672485834256944613452529864267647168255554825235668314421762241621283743692413574485537981217365836945594411687886178182558735896154151474999681528913747329579117135668492553625636311242736219151213448633411353886455978252968585574839338221365998394225581598559596311491455429184167962475378449862959113616721892478776693118848988282149198931249228348719431329614625294143833638598943182124841233612123363119318673852768477569489835937342756216743149168621246316212623191361537482476859488839299363266826986942753413268531186717566933973473574124882187733154648766698759912264513441631843445357355449626356152187711323596474152564211617838236424146152329147116982698882194246526726841574622966634445659697129297158434134595634877567889779514681939146247342336277192468651747359585922675259485684885517425481537845571123874234355972276144382615252361773934984149257671132962236368121149156757763678822854198378753759877794438446215621528546535743913321783479527946325895449656622914671171383648673845436377542276213572977396914246743698959573691127921956845655915977315963199228395326659174672337628844551372389819647289146732362392836768781697446846361334186172231268263426462638238946384575216732526285795822194238582895216179384118345521863726447518641187892765321323562986677394891646724866933671936731562163474557938852976427666624536516241863365395123212644351364793119737233313839471732819888819894339217761629755929112737223343314991316556261456992474395897271288527454596594479349838954254753673672735729546277381794223286545717845211178841276515381178236278247395828289698841123571833857329821419197132961854313973848996191723468762999429929925781181511164746528625634972798541587318211462656121752117673647216225913912512529351246736555188897276345896373412276542598751755223132716283423588217144368168622693922822413141673941454829599916828329385273239222311934556129692539364476939556653356122898519521463972449623471224742564162812157451955265964263339492483826737223772796845253373376754536531353228714114132746292386887669373692861143875433553237166526536716586123177488935538986887563246274933691168142637555125423818668448972563139252399235224867212676548352341937932317154489447325967664689718967459285667664677997228138844969314632638165487482899861958982154117341322278375566912352891585948164331858493556741162792415311354478163798941268273975461542725575979951714276636255831167977469116354434873438189159597622459162653449962469521993633237482675382911442539163479511279932379943419657965336122381813334353156824818328859742771393997383925724837139226959469562511659658264381127193756729735298534579579118647461587846119878576282361431499583894182952329779312945154844223165222516815854692415862326742514712435458854644329164613817932314197439632781729234116518322893199491711836447879229394254922733482183411533782825455418389539682213115239792279288554111555968581612149958331464251917529453719378956171795697955771971617852275154136782831923884888251285511146339619481311354455614915845393229178347477887863391245476326545337133965112631789133143525572248252539175832595682269266499261714772276495371365111739684731583728657587821328134477612253226841686811831381238483697414846811247458383717563364619884777379713256131199727713547368985847145529223335293934958989354747847265158912955888584399646821156999996518658143623667951183355372961878211862123548229154739275674294354355663255915283932816226344194952374985372681618866483455968233838145417132175131145532241992789967583698638741575141256487541974681526257588958664276716199273142576723588426392955364995559175286937454657298224499483555181338881652874171713486651754424491821238295498455459616386655883218681276592615595349883351811342884143923611549799735337482585285378862274345784249646673612135239795751351721612128122146944573866742415133398657694891564657246776516824456422493372595271928689296494612461472725365546831341193545164189363447473429474413991358786295154631615167868215444223248412274246152425651444444649219549196388846743466985995742253433589146223916219915477236651424449498672237153222927985151176312195438328899461277989986951968813252529911927697379825436391677169512552324827286544318233275185572399591333229758493184761474927925176797154956384199788113124195394916634624213846927538895592938651471261298317515714924437919689858898518283267136156521544635274511693825267161944494527538836742332363257456743296437572429815373926924963129292945399157334792419734751613398595617111141838922811114674114979993218769517823337374585188425635861236665617692235887279246785973358626549744437568852516155423668274428518884636352899424897871442671814477638316635331483964777573556452118625963294981757422498753762679448288733981185226947422659559341899468238183318722327928997186618645478922264529159463722629249865715415898615636855243755662577154673163994922815451255558286173378312112582337453458384783827373315883843577999632335418255893333599793717477515291975569374711115415655783422563139719524715749476486843153913179525454267953549412136771545618642927267815113878297964382824191343769936911491157392491235416263231145759188957549154872244491392775749341557132136129177525484777528444723455357435561157335714779729966879878817641429326689636877218741521812791218389922368231586665362237727647996876449435119444161533222781697479528256823723946266422834873653582913638373366928278378948614117541562487949928254446813814976126985973879223164672279548525825581998336562642642822193633644115466579975146758755282655353222513259529431892624566142284186621856129523912189853398486528554288145538952256935378935717129569639963387756571682888179847347786675569329249379781429262972418832665465652723277524844115493216278135444586612513267482451829512721573237946883878281254227112817663925532148295699773778524457497215974281135633988236432249816833473849342787581649412694426568317113964553461863333897672252445635585932931749569812641167445288912599349982815821743237791144512925498812346529987792419815413432264476879212578572257989767135755667212819687949157416563665825254393869491832769143761323182979789182416737483311717129144238489423697117199694316846477622167311159273252247554442313661813652717399427524595211658754457181793415746866239539471474396455636469542377638949776229221676792466313461417422144754828287251975824365155213341145365541964194148935566995241228613791518179679971593347448176458411865371285345796953684619219921559852317419289283717193711396563139678833319977662475819181526342237417526598573168534515252257237712631742381259445231523338969136466759756393685947294946971866279141844583778578627146217182461751577392167559713586291167728371947812166431517497462984132115394132224947265446133669665561353177248211935674171254568429274149679199431965298987793451352558269794264592663569621841976539315182277288769721312193784973688363117682618478329359741298863645995226438312914215621162134593258891399911457999579952774858316461521636367974612311411638346986846231311352559115726656751546442111776294717579498685881362873692491999281234561135315269781977272248518417812834244695346662539273522461391553861432576165874988322199715382932136597976537384921639125927957621511924866633452774419855431972729466478446171985831212771733784979947429116747739729452626836765938146344624222164359276344234541531452212771934926386297236623487241319717646966221441244491966317276998653372373931749177116457352438847277766812826723866988431378823629843563919814241982734131692484182648115686116667283755686726873453921467545918154651963272699163168381599354538267274915114513615129574762762736589847951371613313211324129948923351332775592227171777232456359824975682141614835987615757847532688336746212456452726154761384861884751214126193682759849748474251766949738942883333545873263444525869573914155235987758158891433772394675279957653189251552912992924152135918234542141118111414584829783458647667637521418859997472753456227518492193129251545629698663992541665438935129597483396527478752719438194237232711973562318245365939562186128239122646341786716469693442575126829671559118231242219223173657916484476158369629927562948453984767211793311964215648281553639234194398371827434671586923562857476112534317744825983443522448144535182377548296222114743233185787823511956553718656389688134347596289575856131484572227839687233489776294983181491142692214445246416579722599462447171689559216837231361857213544974616692634599847649179355696742343273515533531633794955478958374656658944897395741127464134713288251936372112976116167579455828126828811569859985286665222775499653517129247833913481942216269662354431636913771863119848532119337987666367634855412667186747563827737139794226319877417739773984271862745349396386379263792269592455891638888713816325897759349445611618386547298852852829124249211534864177612388623456811245424286842173216971641834352229365499868577345998572646272145348915968793164726659978438835869925731323534273183836172378733718891845428346878242713448431498231586434572525975593328946951899158583864771153738697161148761873825568958866551282884236766715853636982874349559981712281686235464778672636221173451332893179597617642612379236358797661224768132169979148124312282968186891422399398219597439831126543991275449518946981635744349683738687497862891999475175278461953185742487199577581898718336613349431138589613484696185689698649362911964516232144671379916441486517143157752271659825611834315348142213293117849467528484441979888727435824237648988452285884242495771134289391465146735117521249389198224159933463163932311848343816925364241841275143791934749992624882241227723164691976316938861248358213144299434448277256381837253792214294742656298727777657131912259553817185551161523971618934436398223837142915915524322318964912624684321364736659198313118411443686576353342214272333161447949462446979959767354752298668731166411295212873515122717689567929317563316416689751583252213417554514489525212141195775219979595887138379823248242591329622538317632865384692548146121684776414182671541638828645615344135562258449651877448537692176277518351586193694849592657961377537652632771631632278927294677812553982241936345416729427351646999249332964417868984491531694983848436553975943236459957827437833593964517282831299945883974473217785684923439767215734398198766352617617471284531216693137184625793646549216366186423535547784933723443581938157797237223185217245246762262535188593252795689466587644545379973225717454515549179361962335352769744277541652522364569769423234821442519711118158244821744874599741526178992347948126768638946299211422411495767642263351626572818335471169468949254187694118686431438518315517827212966813333888314871981549964127195977751626769694272567566969612365569758313114212972622811632327517278318666274157825968513162799995251259836255895268862815479314587882464119443452521986751888277231287364668973819553795338165876646641511521494364235182596465116297337644512931962231115425859668119757169373668576347828257747771752771169485887663336242984494852441526414828553653695115275972167217214515273865332658221374386829446912583832929332858642192778318241328456988935894557281433187687214725435698652175492883132462919495693891231123491976287564542469138228294255216351556444671516357431433443935257512318547312542774446913255445463236625264745632676142769371881614637386545845211919447118792656274424667757578923195285728366891267466494327161425349554534513934911443921712233895932375541632671812178364884547895718171961145154625382674922877369357435592193311341532341766325797247562442626492318312996736912223511159839787741925932142833853496468412632243764673291125413761612864712187441381945468434747527572426124585193623966494288682454493315643963311564519389623882162942415726111273639256624665838978561835749278361211173257698342329433458816191554874763328115342547147943529816652984717479683671161969551194479355691626553763459838892668125738373161493175967243325763599136824123991381675477176229495824822558155995426654893255995212815884619431618848519225816399613487522272639741351872931339963515387492143641961215151535219352662824238747145811937197645666973249799658578539312178528932911541233837233532649982338681766389717931152865867534979767943942772578127227233263925537647494248998728411835769628772417457591599782149899689322445958712323755517446465784442898742226276963157799565562863331239514819713698221915792546527695211696181345469199177684915911596241464972932888749917231443311932114562764436369966587664314411653441551433835741821273326482868626747848915652489431643199214666524827624898927124734591312156221576218248938927631867359795671818169959592433542349376661655437226939712911483132935438544177951247326399225187753291716672968751766486525143141631698733836598972647159193138199923543738717283939448826424514649114645576159862878428916425577818692875354633632573623312258229724297739468579329936431824898451631557541597869217214842951472337614156277678359615659452357171896983158229815139595637618822454585495252175299356197459191337157952929981515536677679663912457735916268271433828665911943716694113743237733141151418321624283245237347141453162456778373981575657931199747879249323435691321348143323347362799299173196784993412132474214227158321981733982763241899451386617976693313447117382733992712529462721776261394345938635128132525353855672268468831444398792949542689224529145731572232395421747426445393684535821733286311423329521683575172395964995446786953517952953641656259374676585417311918217731131753812321164364763718912625765887928976152857392417462111111883639263691527219878382761951684912142644888123317774625628991668187727422136832429181111573219389958911389574821669742434912577221386331385566621376117668721196478155861546335953728147255633465558435126891398152863283561437482986129471543814734344593755474375128869515435445514214393366124953782427523131297962236389385756368722523186967956749113687684712517278374629267364124519587183936622871968324196241256244464342228118135724133534764591373415716526212362457664411399619832146968123118917114428463296638376291796984259587196464817392993931554198961632895113673329171774486728565324125548135819246136344278149291815598948599357428661916982182842497639281997885235691313167191173432698743661266317492362224129741651145963755342787178347359364935232967875165476759534173833288158578517788932265743714988556582339896351713258574486145745816279461112812519911421611968534143293621393642913632435825396183741418483348594821272533675322751199251428699594182742271771425283961137836839568977169348178562872473548851337628585211419616455487191972294754919129518454615233983426288519412654654368489793738282453561147887339385531399394273365444532912975295197955413341755347932332677514476853292594469933948882668221685131178744641431447814141659126674377636124766146239566524289149571723588423681215179689917536985564571218964794614573754555793197179573565189456839853813946399959161776181113631446891842879645876794665852891642142655431356857286229142523785146923512471638831486661347191859265549872813811269217217671881145813121346415921942544336591578199361372165269965553639931758823466394344322147132339945958266125829214873454369136454388231236163899297282364812424778732951375727889745186294176229284731931191412873798265361231119757459991135359237231896653995139389259165847746446259537168573891385723724191245514346351341271633423982448252347529496599444729227421833376614923432591788871138812684218937883436468279234431685855224887471579136193173839147964398421419139236679272459588256111118458222786464812488268511956947595851446542551514465389213379551852148948825167179449333854761442872424219475483564348353818567564824166341235326781365358962463878952263456756522861635339928263219996548313842232533767314474785246538352136975415949175166972449144244299742188277642262589961329259322229274478927194212953483675342271868191632556265416439631226178638951755623839725865769246547253132375982379188525488155443328915125879865497952129548513638438657773562755289913521894231821877139557157695636595864369469631638728439576426466755618581998442147278918123624111869784458589441276317358132462114741457927243254959456619462497991215383531193161271682776193178317629919549887528129362874581184655427619155754514553624971518767526534941191467726799912524258258326566331445142664942775499718186244922824484874258242923381788674631264695755823742146412885142851352538653521811454911834654548383477111962494324334624246244396589813163259158964778616116256265546261915235131586818721852874836627914854492445334156534589523552891233215499314219516348869725414421699723282279194841859738429934442234823694598568242665163353928697224918247914169327628323375759351951597197997846732599673874317525266864643221569862529612128219746544231448119132316469857617622188572991155921128157216939825688112352471832847829788214652887255414233732492418785111446334447422479121194355311155494246334644438795852478473522418917354218449388784656756388948267925781249982158932811148278345432289631674752894288369922311433582289933859644759226449939825535515243161517179386371987628584531498941883233951334193489462639251346762973144939274277966693253312598425386563547716986265932718364467874533356185359125781443561758387117652797915915662421219293275651158159162821811927843842247994788853743676262527863418214611753815584229693877116954534521899241224774228865413964277665429255114864637187189481217655924494864168849715815694662683238652481258337765144841697668281174168281588865984151746521445144528722393916824966617915513133743563264974569229659696586547762959792668433369531652948555337175199982542149172569357758883571318416123819465139527194336466454372482155725149924532957718884887721774789427161711661344988853274259198571567351211146264914869354448311134284851556135276156738346456116832889244998259675185518943391719431368946895387928425254462497268263317271558164711948643191581594262718663654153937678392926923442382374871417486126937973335744482294331967378167117253792515724282676543463715623696346264179891882499822215243967912573513756926959635656869532667253994191515863179234195464361511841795219364933324221392754434566411277498468141185976644816222963243456438643427117971181499839533727472247677948683631741399787337395246231674162133364133639618768952294216569446299639968811192452882422543279636989365825445586534367344879754614262565152723572751883734652432547761157528695826567778536849278793421982827393385112321176152997712751141757714619727326636456119283394347792791451672872753751573651478839596138593243693234283337378815638176655236962982742541756647122117339972497551714534614511285318368716115779124466452367794971213113164193469914261933181629916119956487491462632537672286719584559597351852541361322876789435194426228233481523634945486612877316657192697517496783486175383631918571647242735977735352464655869175147154537696331156953965579557992527179744535845646364629184811657871352591812762542688721458925867415958815488619546999642597379712653135187933352515681946774893161725415428557341165822238814736319996949632154116555775946988177997922142959722394464659321743295999328718913138566131263596212831591232766458627497189673513563764158177722252976824635354291835852389129347611764124411991128245552122521994484374169856181348532946819358835143995923544137552766354839351863856194485153281378527454147617949228592561339271625918339484122417381273828484654124115969662831377672857186849612778476511435929815266128771685811733698392967432512851493298724129789494253737632242287373466126364385915375989921989741781268756356221798385531222955847551677698642979198461131346714123612936726423391271331997358894465277839515852737344349466341643551236994445791776184963249761628981632748821447813176564661126266334867963479945636239837419497893229933239454245888174732982113546821288521546832412793936452549444796117628616661865354526872852833121917412636443314736191722333164129786256443125155791835669737754194743887164891893516636793497719266631992514367455822445284431223171869145826484948923674185321393248536961824951918245148299174393399922145356839822399776362739327862543754597874326817761183837254657436919881684737439759812264449731568572547779479234541444373533214154645899712969141614159539136113538421861599132654635666693927336343183786416457915382838714926731221728633129137339673696879984363648962933141287194111485632995931952846862443496212918761845719796213489759376316671983129769112248484357379295456678385822124429198418382235234464647182547959582316582177438812732431118812354148258933411157158996363222712758325824693194729722435557689757786836562598547759315624179437968731297468974353483654762714583129164919885652341913273661318524636492185249713652143763522278126175912225713116582447278183241923163184495742544756169841298599262676565514758236297635655662184693363221346926124432499521616622967216481426779476767495317126428162141132717854511265174727578221642338593318248661491645782719652711994172521243724732334162469366655626867781312375283781617632157543917754854563359585147421556134625217381911865773587971187645679423642227319811961284222616438481872246376574497455951621678192887712876536222723461987419485971553785474423793783113893977455613196865969454576518446277769846136445449286271221398893483538285588241193766555935229519555247585174745169864833626244699252474568956663163234752726672338846669881956125742164847784257466326743426429651455328415275137734786162846422423896935463393275921422492352291787637184468133138181168363383635696969217792183953821591516184119275548695663551517934635399169621885337115682321666339734695235332637647922492463679819929194455759185771526765445585442946826776287523695782518653954877779411946475366169484398261287275596443346661321218363569189211899984251145983127912199627712989684698957532919375578342256794774145249424945876197674194566758773159737752391639911662686335278162516634845414265615611823654712424298217581761416534978816835931328733498587651432321431874773957342413126549666339745984821565934649327848644885869471963545597493855521598538997544139676283571532654511842369174551332196129516175573235393446461187324746732282571511643173596251366268127324493121777248435618258149682152358886745257479465721416741291988995296716345122768473349897594798287566664826785447182624299227191819261483894189592355638615165841132576357442713811293442471613965781636827289741785611164952477211649122132723967561459534279635858238186558729524128613115545549775315299899194352767168531573539723871222873739561394494437884435545465662388743385324188717962653885942592689628436998681421696558884116163662647891482724138751974168279594971823229533561939463335652526499553693328826445761334728836547523145773539657162416915732459435531825467115793566596729585363159114472197934788368818354657633187638943444588144451116177275759729516367281384311228266977711231342172875111881232493121927472768326724733982529352871155568522959847675357814545643251794485355822553289855445713273324288975829731367644571714562254175696862885431425647732765867865949571167745956248554782117239941976869679615815892277748794435588631527935276918951248946765413566997916197892513238112939896767898259245412982156372254293452734596276875317789134267339378631541644227771186898163653521981746411151971352884716377953337948973223771414234242235169114851435494132834213485426616682235474694134741269288834396692687543432736751251187682289622918152476728511378616156537618968158999783883451585152867572271683746714974555548783373396187496145584862822462993378712231716482856867297731334147983453433495832231723263929353272925869946127345787719775417338849486995372318875332561435936976212434887195818246525846512512611975326815491639666234454862834279148887845734114793247214717634778225848532733389849839967215649754923583138754592738487433729482744464921214593378822879166121813459247718272485245829557466349411784193173353717983327242416829867876116753782518644839776229859326592697249578278881556513232251263358562453564741177748924476318244943893948174772997355279996143295556188451271445696839915943242247339337956212762381284651441689767731644733471771785745835364963936415124299827681252555522131144527951224336253111324342997934759478991786185822563978138569413166951548594332768651141644776416936145349262724472529994199844721891841571595329554729125937945421337769179976981137474377239385575774816357616857213889295222321516989553827535274729384257885687681834728488764487565487526543353774523776254271256641757245522331929622168332465467458534433473741823428255791364454853167275152985662368473559213138416267191972729189946854453877512747729163142354444919833268869288784272621939331449917438437373766895891814145534195516983317491248732143398982128575297272751215234837127669826836437764542447942765822667164263525739824977947913684319616558273822926215748225731855581178893684187844224954799338962854111885137285251682178469228369546779221411422729781388459686595741229389467291236963763412822549112849247366259713942568864454115613984165326157599458112114112264934528597512994684686899195414678813758238112994311244344561945684128368474576111264177387629884355239692177527459256442549497555418519679923918197778745263292655172727357993563931659478312753637841316118943513911558538321127593366322792849125356152894231243135589121282777913427433731592475319367849263926335545148746479322394188122722355636313484898883989749155476237419147837625825954876424618173383315348919596417295598331923513873992435941493222448434786161949779763641184967213996876753488591227414267825766257612569589337721142214296653777162559487524947867661517526238384825298833446639388719626327685997283159352165769772163644541131647985717131744376245813327727953619286465951185946825758975654646241212623237696464985294546395232476174297283793385218877545146483745778843519255519585372886114331465351166417695192197493492934252757626379175777441212592938937661119779857478561519773216779886154214931917361644146696178678654895518751748522399313349524854363894952216388389695556428131181752271965473894598748362379688173836592539955452139734712117215271825564295814453544334462352926952867928642191214579693449366486523872712195561538745851622783776336161215412327416459425437176169882721656248538628861496391828919364822222521454591578645252372433722782283534524376658287661635813937341965233959794369663225689416661762463527782313617177229588192223453422247723723968297138582879925867666764634761443612137973818152734468681554423976913198579929694584918635563553791861477169784553933231525813616586115831695324383817796263586727372347478766162829245314556273194781252836861892631416899873516935385949343188146532376345663352958688466756725567441725997496751191282122514839126726369618958447276637242889733181671758986314587478141654322221365256964666517884853949387887411237776742494579317951771558671874651552943438742799883654757747232136637777215498998557169258539533476646283886462429133468448386476153294255544145642539383688858317231986171276769631277318291385726233854984761485584644772848751533754123898457582397398821876845334815523211879317745131543283295764917382788191348259957789741359414151588293121372823592799125944291139251419888183224754671534967298597575488254927365638843297695832131599714561114123337321339368242684717876183585126454286715186744511345768585943935153355267688732468321317442618692717372644136649995331489173387589733218884446991281277216556635923493435463416316919995721231811537533463353417699248599453427547934217533136896935997353324166547763499424542121114673331694456688121957926283335726887427723247788664985485572386626854799571952996933419841878257312571513759467159169432163878118288582571171782416212949299264566152635366526835498489263772323793553411144515697636299511923485454737139469262466636868819624458256337969866437679932626165481274754716876265242121318173637326472546131545837786785945287261243947443631147964931858151115868392223594251497523418257559716921426914184816114778322231146599893192252592832848556391853675641732572516613367161569991589693341411696388372322379478235852571271148451345264785148481728621372773535114958227144576765561626211247975794878219147533592353284751546137287721315341921195394746816635984931859413835318997153929179967239181699122389752865714169715717977846591916123226387794234235946426362972473671569339178395662191492139657922267516317515811983741853575391164315174921572536912176938822927232651746944256623931559318117813422517557143257484282882525355396822833399759282347617486722579348225352855894423746892843158478795874994856865759871516711127479385333668762467542766651465814671131758484534527661756659556147658291959342286183636245934937677443974827174173929346599124459963523675885159473652718714795425198847961347731933693293838562361136668537164335828658956932915717436791965149166362436638225169576443334226354427618521777463716428999764335363813286413973222769135715387619423197734147377952634714822597821813674334614965783396616228487432274599978498716817334812643541983226583371746454373771963362697134287853527271947322787875995294763596688822482486155952985487292466246214382126657996231126874669633626894551345653898672133147963269497479991221864933285769155339268825477518252586574341627957218692614117187496977842187518115953547964496796162356529463988885428263263494779365263586612498213516451621541267514851912614914343278128311844526879791299315958126495994211446125925871149199618866249541724698552378949171632416452584725832232723599677583794399765731615126126589637912424323518363469154127711958427946943615921219828948521114375469881957314946293245178613341676971257224919758631368345534561545534352489828256916625625126215724387927155424223316193361575337938982314799161413866144111244173317934987719233362623368662785133598821551782397191283743553993161194917952247413123639287697275633133933352721914835286526261693578153214438192872842826461947886575399251222111255461635972916733282927413834237825766322871811844331335864257622971882925421695599686855456721255817121456878955732219985571279836843942278452251949594217955111799761837384266856123114691183388519389873464488662575386484719723311864355141761286476283436339578513511934228997645948486981522491239466532246265244141692246486212169343445854212653111519291915439418878115543538263994945354682642738884214419759264118385879886223466767637891263394657311226614358411114184159467259227124815129565226165391976411373632913128378589514187286473435566593481744563998439448161653345379852929911244318127236297932121642443482684347793967453438553859411368867424539289264333927333863297271621116911792129877454889131128441793344159592963122825156728191963923411177288784263323736215572514347355352156364954457621596534124851227452184333777288151846856228751521184646333896886426169377514497472143353838529664567393358173552874397557877792568619432481785317711166658692364638221845732379384985232445149521918528291124493387254278168862712776473986269393769219379436911145167525574551493328944843761722346265396
76464234848641217549715179552694399534859921151331183151255311617975459528477899468521948337829619295543627634836812993594753785516649495579489151454699711672682235745681224344529113838892893489486916879939173571263937385796238281825656171931272883382419347271161235863465675926785989655226288722812157961346121791532365569917621351588273266225577177598465179154146625168151961544914639162959372221987172333111439887492194339297611382158351294418559863942499474663759793388526175213669339481763249883693153351685299593877731389371369116289672196293372485125594413326971211897512728476533892785939775442298536592539594323153594947395122191921237347795774332547333359364487435729292893224368943442554544157273971382143718211242273177744153736168743717712881916995733831132317157775194678621867215246136297521983116284217528234526125219774242848461457465714544637768458616992811199617159184554962683669174623344756899992235543368771886462268817172152122517545122547835139553595975648532458539262646527235965987152311533517915339165647356191128724832164328686559665347341416521233113819185214345743616585734468457445859556594881115768383929466419942213996211998632794342651968641529463911444674843319417424625681211282869566456124822218999854946157591812221341473162272744458255223351337918561424663939221519692823492311145673837927718792952511878321521911423528641118635241924232291255976648855191655613383856977137545512555473943238678731274835616246662758273936638548855234314695673944265193357669246344231243724946492529274589417487943722131832399671581618734276892428419676359561335381966512232396844848841986766394389412119535445529249235995455943919215329917921728475391882796675791269955559524795188984682296347138647562363741915457421329774212124819925141245996922966948951649536671144698275723375526726934267752139172415811174812517233754735735663779621236516962956752842284329611818212659339179533144567166697335363488417952319236434837149323492172864692354771275613653493369933129528452428149141411173897745128429897229428822461122562499591519154137712459644132487818311571771641314161373779673529288568224118368272588897366813298637155549369851545725599452415258581584397882261638447215828745837547342943888532181679258761453288288881117121759635586699865337512227731837772786172465365964353628316921328779431311937698634754651318934598851135648517784648847916775533635522466843854712921582166465317678976539681813451285343112738446716398656262742381299524733474425251315174322222736125955188343322237256519163487471955894829557513575457711284368415153744121514228438547714761974447185752983713861388255711279472918618181866215447286974459131814875416731519831585295539216366162282537233225478362744223332759243682999411769221839762852939788679837536195389272378529622329839738999614451158214513527781272315279387257455297443489843536435233596985439692563592218494224771154416281121876477924828298939391923416913816795775277258994434812911121131555159251936911452296428922815799249733192969812486234534945597419919653644724433529581169149339263713948148961393814924217445357321399371759764549639584734393499235548265854657866352359965782635481223858151762254835724958199248991193816913169416574494436282324784824265784631878954756879179252131675928331373534381416181619986365574224697827827947361696463254233898653921211693169658452237348391111683977589756176562994379881888472521187664126541224885846262318153397648253182119398269499662378663225985496476224446659186949329798234174774727893389661949512857532641818697351336284195937414319826876626515596394331674114143136141669969525398141473997134263233743526828791224692479523985226891778584791557294598368481813551518482474164546188491379165467398957253213729987921621331921275766345275976193719869284457544441641639282483992261513739771763669925531681799425382846291112253655551142452679735156621455873829697485173238464122354632369199844644637152322762493849229264463396262925113545231912149975325181394885749761856557925779237866956955272174276831575941865714461332455339967145314172595523374694443937811728575849261369398584313241923395796349315833231912892332853353231586911259392581723456171189932423911796227784187324617731253913113549578356532263855634812688464657284243892141962883258919255776422368312599314924466296474759683676483533257133626653791575413268931573341669593457312872581772287194588595261186315463293932753557441824361329383512717778351211325894668573298279153113943546646297365411697648476646434822764157629931818821253885375635989297819952954353545556829761153831352151975918982556962358353868415439519884819522614885544981167374193116572411811782653115257525968554282987554221755378127976787168525715863627396635592367144964221873335822338693196964377512811393659327549153189144164591641362638561992452191325734757299263623381835357564542978821251559781597675646935237498568595793911191535634297315432125982653293755713586766266159159532966928797264444455529229971257274955656296746211361374142139795132724738579268434813882954982898958475444355245715478636797122161229393822218794478336819713439541631992136168899919366546173993599269789738116174517942422688871256264536156187379356579255214954856644125383312416252486536281536582662172199644174536847283139921874775558672648142144195763753974727152524155375187992231697227349434992771331181736251191213484468772642575725544545618852143916653564245763714594111542682593365294472982543893925396458487984521217646482611885943821412242152196243666448218461983161517782215321611411761615971191727965138547179835492378992812222334879692829235136593451649756124386968692451846543496872833331369712123568421391217378615658245267812736517175478696743235295933536838628161948535663895654817566716584741557725925675224722863254464465926961922332334679866548248491692944551447327931128544821753733281134958133756281534265444854691177223581545429863497211591897751311625776965576916588864375711762465791125326244699687913396593867698824959825365746398156588698526648976775373352225496939615153452423927635684566628632759576559332246567831383291941626146997713361589161116118928435111494323916212841513924136147735449392181632369212126147369862312452849174554796153238131573124654149548667371168672879768618119691416328257285214943156674242425631253854711842516265658561955234335154343217715772478168511428374686272369447449898644963212194225946879422429932584748233918522812232462326363284321569527466793253983555892269358333688654554691331585194743563642479362895733323889832477519889326323517563326732632899633871233675224138971188833923793121362677878337674344833341827625326919134657761574259776563634533996276214989264422367962166744354858166575449233861536285385284754966795191276116418266149191196311982711346256829428693247282439163682537829523163112216895973461595987233891243815249979916822176849237992157325328151993458112549223413882199188952482982354579599598787591129258339613168443413233272545449227663184323888197868194853419712659186348895756731928336169644513581728312114217217514974426982997326766377458753461923312371615126615414718146643451878258311725816978791625198988754485349321143247559948135129749639871584856433265956721288147652669963533794964165818589926971729791742473443257783525625365521891159977472499587346267897421749549441135986965166971949332597327364155213493878951657852128573451638181874576882613723798514552125331363935511794614725856634211749856269462431414555229618392164152713154791636568427741383193274288648624714151765521934171999975384895383279189435538929424787629261225121388256151414553657193533233952974397693859343325815627664321595586226547437422623754627569224217255716656794383564989848951514358738548488295125641697894843119892355173488339919671568623897946259353433862591299572729683551933718875322697515671993321954944892635222568743568558832745781734266561538741142335412925629345781196348699726532119657258561226172596386866927936424348463691732441657921633485214156133452863339898833631811683399962423518822216392262736895413935259611319249862431113667778711196528973571387923576134461429384771587512131842715271616936236437669235941777811156269212937562927894787583331897241642197645391566991747522386749741315719281432115541134295639982387198767875865665166473757485739185936449171699213969961923699483279961955457461934592652945713531686195811953321715144523471512571268612713113458257125428559663141163953192769319411791843128129347662844323677239848976286168647231658935351436572773312321952984419214379224385653195799386129177928585562165842148538974948891985741234832523348124185796648365412155768814759631651518914212322213767449717157749359418213162122771591986843194861418615424917118614339627966751215222617851638621831728357521989593195939247251378974594732149953285691989513427514888285475681114479943416984418411231991114832383628838572532939294345844764933285946879665464328115582514294981758652963195824656913958781923137499257812213575454532752662951715413328255481298319645378117392432434419251543914356943937643842191854472746543559833667322389268743115242932298885193694474995134873959523332539879728594442364825994158152857285637124136415328454593985968466247656819662233688115317955782619164212723386576974118335811368732849595588174451235155563272325244431534831499262518586479554959557314226886357776615588466659796578227625245182198467352778423364763156937534121816325276785132843664952463227926578313131417354535698941895187199431972954773215682487344143153962636764194154737162688487743411494182994991131427377469819547439188776632568662296457451251841196283151113512746883841548949335122891757216512378512993114228827651338457265689751721698217798675256228685697121248939251955274481665788364962814556422965658366511825239559196193136128321432713369498695614774272155714657265458617249572185552583612765331813888819942183589249243918788586531741862983412329335717281675195411681281563993253724975714985953521829855773838871227617862129315558776252638369714354793791171467984466686483515399741239133343894298679357268883732379718652762446588111349178543188172653564332123638278474462936235671295992651852232421826312482543194267288245416544381724773323542544725579151814877647524853891992839824647452313367396382951834684353787542372133976836292252461393814118521444239374653934566149931681226692946152712682531993288875752644152976573729781654247872444728794645189628233292883116314246741621795843997462322971121235554975182678685311375235236991651414655463829685365421931747252839443172492181845512517937272318924521431562855927778558683665861552519774341432541786572536486753782334856421415838245959955115626295174686245148933545391347723428336729422151451895562851947372758223848185766712134136994596359625871588313168635646754512125761539612729587648281372656281748817969359127144352374634446542325969664412654196976324674266242573743139917598447765898593522931966512233478499647949833353773922665897132472999234599834891713556468374242228438542642267975738289367937634294121156841323428594198884765691185598438961981622283616718829132216586211675935447587624986164472589111291439913545351966258288565238313445378494315193265478629613319588499148367422787967441241731396126488635276249313351632891547624226125814794319714787539245942514125213711531429666288632294363398759452761882515784252518769984176983974765122836645444199143527769543628842339214335421228414323623335618656828296159892746562129751617544517936622957216291339589142743547625321531332369165377522246792651185651135714579889947145968547472821123672331548383871357219198339231717158336174581148749462363243654335881497623688238959298577455845888297692658685313136472845823188646786851886591514488264935122363974278411346418926428133129484652422415354366419946832398878962111114134678835518492227533945884895141732129727375643277366337611617118469795213125349478255253218933161174376522726691989732482317495659378687821744958931685465157552693365666621448879454218286519932891118243135423522553645729868941479916252181658411522387673736252822938199962241975255642172793294762461432625561476116726252385942111369293235118172437295521451541528417432841495966511752258711585287213233657133113873887283126728213283724688652261338229194267668672441371334937415626997738643166835745127118728113693497655328757559838927733476445784378762658665849569356581126162519257265327129543199542191373185159792884166525297761921975668451225556162313994291226688473696754147384355783262736828536845932179553844458735854973325299984544472518925389438823116473541368159564882524263436121944425495769461771263518527362641564551744185244567816242234373847725166676618491115188323478993762755991792925228541854369155646176731837437158637733691843235789647178852274621137263763785911991216258655716544967995564319314781326433376877615432763721141551149682547825136432279188926336631121281949438753336969472192372121245538917612353183539121682917113321664765649295273527952315181691566642364266898824547299338528246972518679955791796545413149734581166664839857198147743618714614298942515282127172942183554973324934115568719446978117142724567176464757821782922312859839841321472894242256471183844738499939616553366156183369756694252971231269916492512582392849525771246145655521855926413435311839158538198554578764421628868541531741538769751941757569542199459336261481714264645636793634449834978244627488143914426969622387728668627573214583977691189843193746221935261969645442795493114297311352158576189684542956735586991145957524985258861539143341968324829854979377738763125576545822822369954291935733165132651792377539511595677351252976211242219437679811252484434681743737195145556614793429426614498745773497952644615448728789725466772756961291589346746887837589299346269352569549427685417888917834489681444681876966613568378493712317769775251373234911821335543921573441456593416463658766537437194844571634596393773314886412965745539882775565218534659167393176876573311543139876912869637689831758965791811519545698629212329218974411586114298691817176668221347179216463615531462492629232671988588528351155445879114698611793312744321712445397613215152486663615451732968734818788581759942517764191341264333622491392924647188764498544239743117152593229314579866457187618617842315742267291252627335877856141516619877284756427621811677499119922731935793385566611311264538839292631216874579324165474375438773998412448437154689458995741183493569874637622297293964657567255514783822888697289623343441673148525388713343978694724937194764455723834741591565384649971748658192279628743519251658228618468555915991157627683698555571299648417944629876286395167233847249273125875217874524949988388833212215976138112286232165942743726276833628648293537864961288371912236218491811445733725968255114763999881486381649988935655545491614249734893511196917711837444435972215617724937824742842774461153826756965953272735736981584839275366253145873935674763653279581732786156844222299876181612355538837115312171817818215613927812722368775782683219226683943392563955795314271187346144268394671274228565289634856828223681127759811624581759564421377337861792145412993459169452244422167549234718455699726233275715673946471232477359179822799397214152452419479567121234471152599144832422942557921136675211495323425433187712351998334739377215386669913267372441271754454811269629722238944247241511824972139318638194246772871679114917776298184374887865145764539165231513173238461725582286192699182465722596556372928363789511235243368531345558447265315742433591739287551493731383175478725837751319139696289218146461582628292488951194688351284761296282288124523241449741844426265948976639927142597872967689476537867572361348818155184391267378654612425694885712462352457976424732956764416893745723781315456813815832533696425547143551795793598565644294377531299277972873917972918572931178181764238635279473817415659757167953597897645825353442622434586674576224418889215921872838967274857511413779778754714994251863839664955642564315865654491168753697737662314894259611166146569293391349178993378163452742166218431344477726387828549821172924996632631751426998615225391943323362199117931989151191858116821839618223333114455916467534562277747326649988593377378829626855295179927434942668666555882212828336577693937489827223928785284776477123858662191393945134997879874151934415938914294323536914441738746247458234314994748396347565731753467517556124859629416588141646257281357966314667233488128169778885453494266842724926542881167862811191526479893471625526769519316932121854313512615845411189121154855911824434149348787913564184227288827421721344233319214342828522925389119817518274899367932287328568789131947739543969624589166538673875157443319737678476821817733342419387147321657451415216226942271372875727559472481144683949712887784347965842555691661423851553771141718757257413655542473273367184216775854469718825372152611135354961845796175623294572891635559196997678737391742742939211232213122687136741462231793614973191921134946225239974346785199351932237451568441465438641455982196755712672916172592897645625373649325125261892191271553121699612626351753517422253111351173359412834367844593957146666945159118965257562193334333725377379531195564986641422238879426282266548636316968741511173779664933795665324244693586299912284978914418414545259887949777979317365383132985843265812624661378974682224681967149669328674594551583658256641386435241553611771817332748627644265227924296321115181482243598886233495714114883766792774337879654711585161262612619742817942523594693415447931637336472989967419561235214164816838413643454582833917985618631298222321714349175585731231413598126574236834688784186444971652919114116484628873744253149373972217877615734963226844577489861814936736744954769312168971311692938531838445716657241751444343413263417255816975947471185337257378895427763134664896567787463278752943754118126277258497297365326822289672359573936773831279145945141441892937481637922987782148548694214623177631861433253125746244789551441784434947121725513849485828687751587618233997237324668333343666268752823636591392835572826686185867637834374199982259115771113244568187492812467648435421948355372886528378156284171271332474915232487122186859748338319183151111214899444876488264886212724852577993478222645965331414822661682241279447563967118173511489667439169967212954162523944913611261954446114612513343126555274547676775579995591234169536786352134323613246473818191545196131614222521373478159519466432572483126429225256847765242911923427629275625981711897238522144992969812823915476935474368927344387134455216432522498275338122894117339795985495223754953386344645317453458179367414922528786298433243159626492832434711762495176812629437669134684765233546556132377673968522558189938455578265931757271247772953571222123135729757982932584274286767525578879515947911712871382625115543269791338581211599189675171847566742285351349172943715652511617911648579464837116139291864529381431773163972866751537474153267667254797178263751395895417345373685141242726845118981237289787736381774922294311593239516551627599713724358722782119888258122444347263434729774673152397891155785912977837551254996885584961697585584353491821244742319867267494738133791956256975821446381214657249196468871333195414739444522825167255288968598996737385613935613793367763753326429682142635573218794831615911462129732175812626133794287681631826462742367177496722782292682722953521496215865294324629636178784341282133236395752264633534745276524561875127116859236172394977597866284283534177757776882175752444211242995617356817339164485132843277931219737335381171986749874428683735878491121243731962956223534277441641591922487313388567381422179665342273483465143274977461744712939578354965687318376719466866135445795721196293679291943759142752796315456218892754116233344841326319437522735866249916926519657358137995824632558927452415126453219711367337158321393947952591756157572932453951967643439421957969987332174313858864712352757573982588152368711662749387928121182293717279748313949842369313145446215859779391977245861675111637129528315438211134729374411831949858143922688367724945679346766122898336757851771431774899113422123716813978561854314325363667154389732663626519993431254572658117263544912666153273873623991718535187889155898697264952551815371674735499769286427143849456236499641796938327983163912163214741471649974398113425131555562227427128935781162495493925497635464612533422717688118814381464425612911885989428295921794541361342383592361714915425154895557811415847181677543381163221269372954922528614388489915945468994326972548999741786113154439947625225916647637137132181942634786361149529741519888373788181769325791387875854869747197261291622691958125645487636636212591887658285163921719941151452721297445958119948245224174295659596414977288659153932843458894771727166949284717963695784351443557663734895399729688287437173786136243253467665632446689569889639735243636929322745892245966929858173676136255287326184182933381861531445451621846912414127735579356195659969574167219926574941932655625966117884196388865687738977851125422742133715655529862396761663731684222612522744628639738896847124861239142332988353861256965314153432355113722414472718595141534258999345972315144871594657175793715813973981663529597899557258192118785124569839213776941283345141584373354143251464613735547693669526166543524885178742765732959597729363767213281553781353528284826747585159772236863943212583364375638866326225889987869882191199514514974113959687982274936642617423347442651697927444946238672529968488919348154852176959251199393957618393293949351372263234545548273544652786512525377761484234592728222512177454381896223578791297917135152561181191444513919479823588815517254967968559564492916561642578338814699466754548178412326825166359939121119798991836999855779767923748248213236399711674266847977121317344959936694272822583446157654628257932653262222877417748697447462587425616388537881363367491349147427777612791479715341672996422985421312691536641999817848951761169645333155248216525239969276519893734498452393193891623471273185343247659374497715918475757345113278928611944621673945187438422945274517373132942826913695467512123539321548587366635551225131966683144778475172157875641381997239651433672628811398694476154585798386187222276323155698611874841615446285447813754786875587339783785279262566574342312563839446374939436692934816699992229246222593167116288862392444761696244168389856655774932746618272852265251724596584237187442355297328913347726681398193432729126879521294911192374417554213963153555253839484988852998236165221767527198171797659388661841375812363596667912499799568413725517937457125948868373996222822935626789652376438496114282994286379651477926729333382324535481172969916913637986692736316959572615592942561754558455241963235954397527857313772533776546466214455296726285568213784393333589441177378249724427586823548988638891686918578347818551995279331684824159715973781843767488947358121217318856186311646487188912635654226612662199149534338661724892432874664535985546188358578975573337213663853216875164199141994329571136382856156249934597244477134163686272549793824888926665146456484917927153222762541565861764232581245618814733159646892735748334164438768465712386322562366246997813133686823988532456315829325534415198513717599122445472245283545191634189637462178152592573435454352711855427281821462165597774825621434556292727258499595511599918481681728934145166283413746458425981146969971783483525198123975451959295936321825155439343741267128244481342641978426433269914272353666957915158219421541713249594788225676476293374188413843947456411893984796323562638217563634184749173269263822568321217454717175122766185231382146286964542824624942855148291746915786439273284731331488572614183431762368815242192348269827969744883438271414145489673786828999112581146863238991419752422324527472264937696881526266458265211161464435162818137132244551752163921294676781865237214411572953968334211152731944282272949212623545615259878412441759547766662536638813724195125828587927122996232434385384346134128166155897428793758698994128843685314977883837291262784591882311684285393182514417798585169818379552462312994223659282289471174234444168651431251829692322857553339877655889543392951794577992486747411422781832788498517136952466545351115749392999235116679836885351945321636544479988231463965677531885241454661217632719526497213425811316616996669287252421218869274338216535535717231489456477861287968886556546734478442596733985545877311579928384847338536519942659447611343899136451158682259271936957739548398694881726311861168853579735133353186626358986359526414215353571861711441666724944548994337465537518454592531412862766114513778827574564692278584251972213556512832866139762566542711936294916487548467193728492251677214681675386372545368496614866932123491631571458119998452339598998677852682425692555333277861622199942473553281973473691719974148532413728645119544523819538845815182975341979234131274572398854385286351588632661575122279543384637751433583166135281964917933791836367827746131891113312915332625614826418215176563499923296121681771564224469399649238896621325797161714913288915447642822241158741984236691365744426279196944183143212318236353293742968946151771393551762953758373985612538849631145755563899434725228592992136634159365344687784129928464275212618667263333625687952267612577941112913456643732994113411948748391977962213966512872884312263111682171774841748721612733197482817393361598332821561437948353536792446316837838599477166669953241661326219247438732138717382459654838218633692566864564474129617363536735267532295685634381884861667924327563695743635433946693318161591218224911397267927827181174554753125196456334995558249471635684478917122127774724885967696485372573765219374163652341125437516894948663726421517244751741651313547732546155699679385873516621987919968748755257613936826585613928915479351941982561117219117832351127469632659591775876359834184745178536554428233832182517765336811813151361171522218614949277475919329728394271323672383611939728458982682135117617684169337859411593266166613745527675125871215814939141528633124398374121512422418725719245636768891316626331967628461461346784437458661876467958393861845355266843787474619191831211773399771882525381684546782982279924123672715727783172438593165774984916267593246651297448448994676724285175335434683329219511151252335932489562442444569589386595328739444387293381695168867277561383525464576614163896571375455861724988362915324255641118212824856481662372396857929512186517716341639735193164443759592389479827962596353387698567754113193476974677391124132693199955213814349188442464582223574469967289447524441777682729512572939914247552977726171255533624694855431617978394985176988112458249897131864438429732631789196264259591278893864338613738737581946724171212669989147849996139477981438817227497818335754548482156277236473489127122265839828613333487744276321444435433127344756439824438498839192799398377128613464736477161698615933947553793891652939266832761172325774771539395463731855554445552221165894573743542595591818616893428634246819388616174683416631451593418283498348153345629183569563526446273166897644974388552528674332326462389865614751547444686483826958828774114986381426395896796993251978868949516335267583465485378371513226999696685743147745745621499282776192865697387441577286999179127523491483752345526412898489575788818154563546142767777139283285443128165282137259499335797845733818866415648461566994226183545547237872489577767716823258367171359477117183484263566256251144351671294631588479558827151862537922592725312923161759216844118118248519514421525239972228732356163122114351946959696421468391453982662869654241197864724594697644933495272389317944218957374627163243672878977486116357793252724726459564682336178214334385428732116528139328567545946863292484255723291212296235566416483824972328221969249395149818921498121596882717762331765199274122388967621853321944511196547131697623669147642627461585312227822852626273884288729775486687199161732933735615636579622621742845276639823472581622158825197816312345965969597432192224565536238181142174223272655892845418876852775618821542184462784782373749556343726516871852165146823892157656439546311798867661596331614862461252698389528445968854223819951914445272642346317281192495494931987997142292767687846864583472578797539226753236744322642625853821264456324442536619358525132431713323298322932975986568665199779193992953251719494246924434776677793672493543434494141298523177531726667224245497825158324411922493925774866445589536745294241957999398583325741542816611915277842592489275778175852992148588383716334554915787444767624471424311458749685588321656355439355417861927231837726728937758857872924464178881419626613973163472862598176428242874734886356651457831271247433787585233632757757243853791175787116636372911316865564793883677378324611758657117224363559172146949858589645354586874647984337217221171626621998531924119193248783395318113574116264292598374342731355522765747714154919716154262496312145521823351324954976564726173593965331898599863321595944626938387168764159442585555349259334992669723658529516819489928559717528162136559186167512231129317186247564146478827175186496414583168126311283115659132736245829435328192984513218971443561537692811316472126652844629884523151114282235525841482621674834392475682168927358342282379195714447535818649877961824115728563694638685274929935488878314826326259634472865446439722687259236775817924178562643933483923246781588649279186677658343311973629343383254393377529576381534725843794963445467823193172417282139789726751633277967786197853888245158274742738612129867748139329773251826971925933732455841222973597464562922273864613746122775813656171334592966828945676426824354262944977929338153526811265516214799182346753588156256571351641967783539687497413982862747115996924591284833947128363953834141252891623388912447541866444353543139473231775158952233679481228646491344725457933423564356348179144164829512426494551384152162156414718346425185516752514881938351949935231623853531785262998524467127427379726425679966693339229335867232315531921535154788673442971736127783686386372854116192849724527121713182596693143413413193134871217732511755835641653675655382271791433336412737422686295911147174246537191246476639926216765152497831371444318782451672496664275134961124459951393657195158497882298531828441738563255817534127269372622229265255231428778554736163795969469795665188582385381841679832264422981231991128265236149359438121659471238435591663379951512653379275953514914378586678593298697918167123623921379463114423975662423973899683954868549255529797882156458337811732661179122914233973142258248768569471366728672195973482811943562899838717921695495675893919557137622779816198744865894242264861312526617363321145422234671693531616114628221793275673821887289851759494417158484622369359293884949555554793351192963198222725329641329447115659679393949376825169824527611994869594216446346345595454489934185746923649742561169727158199869863191982299493819243649543715512242884665124183576667754838277568849521472791263795654992667197372613847575365626512238814891711977471992288978187875986945258165697965918117114238343453757154729841834252657768384225937229621353984215163553769137418118962281757659197531551695777976552366226835187285984512853778551484321189443774628773194749615422727383256833172299657151671257218179943153498812771668646251641919644333569516955522588854982158327142177953529988554331836394426672488668236291812993983171319593631423132147516234141482442656961622431862177117513225119263877258438155734761181459219277213999861726599654688814422566225592139332444356339812885441113722883981319614238634749395755871491539589524238192979282974647333285111921948837527455252625856129785318659261445172353638717232914213595381796458444188927315351169681752566996176866156515174999531482133153871637415259257184359275425448116349726138381124165215854898917434851586324165629712145325387566678781849244559914518712674634715498377464881838368757739669525137961963835735834524795741898841517623957634726671293517158621191554473591612277362333975631311811772313573886296523395556654325878237153534431944342641741774939222695876669348594795692839331456443772416892124358332763544352553445634835796672384743972192613149299432429432955793538157942772455819624527312451915751921542235849671842382654693316983417884187189214188332442245654989621157532227328544943651222862261826421485166624524281696274453263115786146862211786321124266424118286882611796898259962912748685167142715918754456754752434745112213872747251822843298137788429727662511911417894339934113132129385558874645386297728428612939239415512343614238357397342552675467438268775589426728896722921329997258754541321847146124467415679113141184836382179651315282186742315574781723572556623451461299295464357561192846616738266413324585224631489822514313637965653986114929783691263359889871442546535195887467228251465112849515772616172821326354262333842648789683842832776768417113899315659576257136537934546531425231764431335721436565491565778483439532429326441344292364452469753333462382911927552523457133751385866143913453169461775618316723362556838886214612944883472145125461472326616966163542683878756412886772738354777568628388921564946493564124924421155384386551169415119536948951456216686553722562632918951697423645155863985675916959558722443192114912916128726458753139127169769275311724311264891243184353341319571296181745337278393564681114721355415841114538713612573444519667673748321219696244599889321855165382427638381413462191689211995735276964911568521734712917391229938292716978351354926651772678525231418671827426214549192383343685655219265844349829298566925747353649924391176387822863176817379774213753635183385511345293411922556181996195798456622394531253537441515662116815681817427275976766126558326826466938648393728864586152331513281349356224456912676825911382431471143736263894516214445718212146163581953524273526958833684998937662246949251924476216133552345435443877515858534637515385595777578835923183361834232644895756835353593617481811313849334267899635272523581384775274671381928332652553187596367394832367257565429869314837588169757837475169642279992151724373871189462133979713947456499677268995795842912139846231951937743572485241888138768733422445528123177121542239292949937162216867917193578897296473513343116261426184835364882434444133534688996688681846919837484829164385247636691196422987185663946298271179332263741131884942385211371277623957522759249356335371912126689295996252263253321112944186618162797414929833748223435374187345829349273174499272461121364664258625332324951735556551661771241474229712885817121336822371417434741943549863191825674622757139437928888324731866612391532316959576792341697725598675272664631397156428769786556674483738956643412564135267914351732548278232483287355983999182599119752325444648755213496125427387164424583981554819153319941442875228529863868733261418122571547358731836363395691441621793193146311125493239557135666128651918651257595924264616752139154591528448685184964675241395316261219957153941684325472312832938121368546658716372524714592124888599921183968398453262147232767131291528842176344258492937193973555742629593395648895435567827916284736961725571999393891659155918256695512918442641517854583365548476665899346269427766573267551514383221329631426581239142337823873735583977766173614814518457135341461714812538732956318469256796264668347658358998436241343329242159497514554226985296269234173182146615444216544977117779785912779154942921244458848857231249453692172265441264876412275747817741667651931838997456928685537386955949255234287537413435214654762516543164452835921525287486316478185167712729564483611826423364356555196597417177116185626417792567318516691577929249661468289762644236449761766373674224745739123817312588199422432539198283996977523923628317237522514573435196373911392219463672868354148641629363314223541534317269976973241576435384176114442532943173231895823723618187658254756559168534921928175591822831955797668915483824578317836426378767344576588376852426165813244998791162358836659276747281351371932722237675512638544648728978355859221973989886121534384679649998693886782781265244891457314248577482923358366849144224962185899978545419955447272788179769919353937157939897385469553117657792131225979822724999866857776619124136893313249236121698653242512353586618613183286958923911891129314887637912175671911728618968848423314151824144987985147669557398766736284966561744343123524246657244429236932164666579287555886961584845512584523541751181152787643468291611749331966188198614189987312582259533273117917229634839178539261211516486562831489784924581169357382333699993293314741772438782379364273231453336684717784293357582411163986718668272943975221953411123281872532626125612415292774327137518213676951725177275619799647161724552714148272584139483343526531563475862351419137641731432819324424327736438253351237367225821343823461792793923825842844143522661528993723639417971151514263189261153574489584353166114876379975431258812947424122365827564112699598274311782112737627555824765294242846145484996273692546635632725339756865339722756533898372599126486693549317298693844966268426896778741168786648843528346525523913176722825462925684184682169239729528199275835669393299447253651614764326395943192424575724495652612557476156488674842681333427777181739667198168927933168641143741723636132874547944142981518531915721424674667277986371296269832837439859522179786146374543983255444155998947872322628734971647294911367575955672294432612317426231252816277311641747891541368742793578911248261331425337656143782957479391788896228873539773135237473369647724723661343356293828282111622374521879259811732932645188934329122494818656258248113478932691277843851714238367493151792323829827821751124217384184359224467476498153671718923411981559921442143418463523419299782211662543543428511136549854119896514688791461924174462826519673577271843523172223868779194433565861356939987845167461949374492726573555654483618927678285695783679516787691828225195518214748123467676664749255387242219361236494467171411274317662168227832671637431993295142328388518971285594694289574812633791388636659638943443969548517758245543851212126739567119669262425283557276976826186374492935992595268794821351326267453572323375889983929566473499432424511373635922922797266329522137477741374497115173472738219791251289544582296449178175173444495781243237314892899839342796645559737147745325919191758939159783853332174526437182519351523419614144183251327937151232953837264322761144646955599743321943415638557819524829598812347426514586176913661775733711456856133688753224569278295929541269661183432662228276519192164364142812574592298112815962944178986777926628764189994612414863561543774485787118622816116729588648288186831489466715676595624443365153656486827164448977569817213914636391355759936766551212763382359117551121932766196992528946655211451721694624768523242414652166356352153449444789711347991952579369622343412574113521469346772121511395879235345113812632421652131293191862452437233811314321469121582576374158586673617858932119452617474615399855658665364435596211159344842324984251452552266959281866371224373911124779818244181976545449821916234441751193861418436244597317992449285523521921857529111547343845252239669989856582821484464664341579612132387685433377289643677687563876511235531162887439769152215891514714476733624735884324283771833138225684398662762531429838886156972348319721152834362546148482131261225374965262841242855378758553862499197221189662533835191556336222553824598697963556357479866129771194386224369898891927121249611683612445585845738451475313528489956755763344833619495566823197593526632924817433315414626521747882216541938787931134996886499933181219318999712419235392224585653499298772958788451886557396375232864153354128388843674999158332392324773734786651254162941238129747228214294998781738529512998726963458471151715926252571514844949152492518726989838554327672737973452347625176738185321577747815452975142874515111895753997748112982912516628279117676618882296579999588996459323222744542882365132122283718298884695667536144615322442954192535626735265979311128753198832678883363558264295923872274873865834117368645522316736484436931999881711989684276449229816758212222982246252246617366838765821289979895747671619552671875425593754496629335352921214447764448952513559832531669256833997349637968529314732133254266314283766726199484486255742247618793667473825299155354267281548229929632673544435147436423245451822769883461279489247978888644729443729449387289745751995497927194676172279558338621695682825716336655456733685183624821875332792376793243117416561721244692878334692421815219687353176358643249599698311849344591513991313728359714281314128474451269773481966312315499536444556516986354429867292568922163542134922971275114249143497852554117424418776436783243516325677984338735768722444166544925772934684169865626612924931979227178776911812421314896657892322698458794622836332722454832718144465225736295645682361465663538749598472898886762559589192748854423442622377535776268931624397736562122811124944452958361455792854942853288374962488583155136389397784558162891681989319287291383713237345795846397616761252256654713391229934323252627115692394635141666313965461368476752323855582876792314689981619133262356394294763926496443975235143986861753838362882695138889672419174147571236532738753782453229591549127384282575648128253343526277364449235316758148932125646915991112117478838921258354419824279112916313619956388797497241171876987152846848631715554571231537193583128723214563652874171163883472611214813189441869739985753319129598573385584247819417954181544821148687355257556373974731638784188221136873893114641133451829868123149235258686381555266254928256276932221933833585153967567234113581278746261363969322183146453824479781566875838799753768215728715939293242694869545349694567697245368146921356619944915924449761283813959788321352516433229123116469722231191264135943233537535741876332866913392215954646836479113295656175926514438366454164211862619584469923665516454726628385115749937288213493816889417146661876495362583349597687119938512763453462717189787563574634598539297374352266569526562982834673768735327646345193595959511651538137419336813968452338511554743185371172212735731128117568922398165611222813769264388755472372481562291261416947573997649338973962893976237774484485491623922923462342631811358371529859483781151679551821618628439452792211389654377727138426972215957242152182235913488372434854139134615695247325633882388518972256866498263123914551334132251622335464788512582865281991118145917247967126531753247259133526364753162418183236413438817487223339361541777614932147936747337894875687241217238493972652752752171599782757752251963426142475423957921689575399948684615265782974295211447525688832736988971277434334248687469362125412788495128543345382455318241282684617799552712215991353348396978122575941368833598726147986322294453237677854537397618181574612357499918989694143352511154621817118456245566763119912649341917837338429381676616179356938845561513316324336623587291426683824626661219367492739467791133144672723427387165362228124269354697765894257895953812228363815243647918282688491247662312155669257444531891697399299836215639544895284697423755171111826272895134933142494593734982956923558196698738811992867196818745645493498847446644658858458735265239416695561532969747764488537939752979296867465686368444534955444553756194129192953138167763666347847255949197461655254799366214844247239658573199987696141991458751343539235797711151594295561978317212215558441886641992546349525818482792625355561163752915781942524865712216631518931312634797149194547817135341931764146441617673761184423967259882653881266471879152953971458697635574591563928156147268873487141948937819857114353847627992162778671437822248357592757345327213735961386892968856329347175991488385318911129176531713256919284856626669553485956935498621322477119294193545321891174249826938524953431333957355227231962178834127134582545993393252537659112254224453749256161658491734244245943861722322737923968374145248391341642469134145223842875119845767462576795838139533598112971583822145111239787142619265296621698516515269553721526583212892239644834343887879177252227998268561944529442243683193237492675618875472296153777553665831218972133954639971264567519471466858621468621457951523427773731268128722211498787692911723334215959795949533885866389545978579719377829336615318847667456626975188592373963873196258777111422628441645222766787297419282615287227984735852577116471658625818564211323122413492833341253184535252289422571299178622289162887171548887718483865316397876823539369718136941313947467388689495191796978264465921284787285117199569449713558525463339867132692147928136497462817995416938765895447552163467896349333392713792542492869977892839955222737583249432137774385155258273249399957658379952818355219799471358859925358833438692317454269441616995178892289351544968555435122555661338127548546126371874939551425233294554128126482878316843245475555328756786737253229287185112647735976328569342896758881276135386276573393724194651294345165437795769735391447792197535912677937313129112217295512737627373599685493543457575435247223995963461226466799313836952754445167152616842515287451128846244484632462264839125755436918873999331612724111678796839742786287142136677233993962525494658265421553289467493415112167482426864637255839176724276283447745798438195317563242988183942865319486946717167598641319473775294771471512288344288467848165156297457344682939233124252548953426731426415123751814826861751345626926253252571418538659612114317351258333111358322959244519224414941219692122948594471939757798377961781217748335116357813275813778287996454439717515386339916171446491371913515765131711245216512237761836294766754815188944749397424165172189947832111911514877928488896244832683935497888492252365765193974117212816842232581453764355463694745428656512421896878599281779322733948148761359587271999587776397228428921384572531122914555923128139382722233275823183714369785844798271976446121753753661572943627882422394999586314383925759624861715132212133412446875395835462422768747168248452442123776911171729967771977821273482673336662829336558325193329251321568759799239632666722372774496714469355525741753947564987112525625223949422178261384112937163127817956955596853861911261563389175911255212537818663732391894595275473843651519221373781132129459183972421217211699761882457416197438936581478256711953982451847866714357323212285992345431551159558223991966993128996323895426811612392734267415587316834722261419142617349725411771451454573742126778337743211794926237189359665211147545347994218446374435413655118756486152579568636721434234861642777212915941563161341487661641562482489928125728379219282287694742952742486729173546998266797718917853649629876241341215831561442432366535459478917249777371264634565722133853895412652912174621851847488677473759797356489319844613342117212762755593122811969172358241872782333193142647418514263244517186446462737573135815142451558839211719716329526488564596371452625674534526346872967541316153426869444623281939175526919889814735733291936463575271126833733436984584273581192542352911143963299823745846883317984417746545128779618262888645688347575958281315317589742664748425754998812731838467581152321547276579989242962467939868248287793824264593484594964662236522127272636166885483624563124424666676826993724653836244277765441889234275218192979213372231622849717425163655149476796336418544519656623587261928987582935898294316412217256488546972565375598474898299376224646789296987529237762578197291331132541298482878464472416993835712772839533321254117141654378113654335588114688253251253219854493715644222171665191967157698142113895813255447136265956332232929138539937168715197795954857863957842738129135483571887365378525522655319254824323918369953357141485345317428295893264888528454742476693891496125473251363964845622211655754539141158118163193142524292541185327276618193882334452171631331914645751682414977983971347836321653787423524845513276357577145746933519491177494283184676833661695185843133269567138283132187588953914184988322578734365544722181322613117532752337495935985246982337158318267478222842996693231574819472672891149857712657215223457936318172629598413441897628944118913835841859365665651388388274795675358498247458275558552786483424291432854175774327929859183651331311645134119471627678323233455354935124273459298921662264119183299723194595849228253512377176936237745381266496993862826192627651179786769276566746649167411811368397889899763621189933123589614256364474866724221277921426144946164266586867818234218224744147452998364646155349377816448714441615941799313474517154552959525951795543118981351132911184133459514545693267133935366737422261732533313546149937615598221332324137342269976424747133313578722112691463449433687172877161826718584891821544765319191118463589298444456964672839932823837428985126888169174976427952182644573841234533351441357481263176432431968677835523294214964159281644418516929332649788941376566934435371546667544229221383898595945325266854375822222591934371344639758924779144447127868313449519432571673847691888566546512611492284719252412671541642341784953393932959935953217253469317757929821453918698472292548859312867916871567792771545289344452527846499375829198716656722686268449131979126232946584793593767487281584197498856417444961762195241639363524896294189112826227894329881283762565674512952288921261887931174164754793994449156945371655198693319871132153296941647196489933831616846262163773165997278288554847466392464727451597813954914963318754681261173647491739321711273673423386189657421579584943441285133685629964319135713729989472123843239661248728282146424548442542157797119573881215738668774879773924741646691988296594886432141932773556617785555258519911382432995558258387944255276162119691485491596124776259433733887825469561247141432979651756212964535788391755365651887675472347954667924744414483726214681621786586982445813776793235915812637322518621832315361474963762768521695836524722261844114873487645282118187864182327936183575771765191117952193944859728229333915516834571676965122916116479945227428467952447916119916556126538437487371258294728535141411228758772795612748516465887833995827782448471515167284268531643786822824521219113592598892615882595635176379121844515596584691382189636342438125181833397643896624836536359683626533345858521326965684635347578147138825847767874124137923329747451648648782742325844168654464863638739426637931668432842619199271658582133832317443386152584248468776375475933836623185832648131128981248281576557295142182544281112683152767959587278338959959293168959987345296599418299281296521268499415154595714737231243972686943235769784349399866797342773125418858194878724844683188233857844868253693794631245551885196578613479444612935536857248919972864381725951183195574943118261448884149655988873725323377641242466276157679913816456776967651465292565661974161734779167215896119935228662412891294662399943341648257971751594998337754261296211793974819913991341628191682141528152234962238686251462472113739321711294742793214137121446157769815561257222825442874871126213843947589399672859653419178522736438253652477965717979911838612896896127835359369444244847561277979738156766716226831688948411231346232683571654386444235432982143431427264455321292663381491356544991644611567999984469962984173987121349491735122155993652264222327617475541866478743893154624727576477716376611125161241346238114175142449473775295825278463527844833983214286192887392541711435262169432736688279549617362579358629128663847839297136331157258341966819975192979163316923247251792328729191268656326982671824141795691317197384415914442829126536224868383167123341111739558975245842551917146498434336424133215367345925314555355581614451943239844367151861223972122893393718275535677927421934449691612179836573397522763412993831338715563111489472881583247137163586487775615596431834276896646627533638362847559717598386587974732449765562933934641693796766256671722521458816297586262837578721222754424326746634834562265864931186445529637429941621895459151242998888468269143619431482222633677318343922236691459376853228814571728664535455714953496645193475199134973129657726834771235979828622747458666815121872456682866333511157529568478242154435182773243544987819692652931457693513764521144678626271762584959513254888823446635598259848819126661346712825685962361566943541786999144269399189285995198585243672114714916546738571456883626593759518771223227667917697876126962732466866149747344915927552827911399431811751777241841996148935785954791263812728374452161454933916159461316253478742337772713344985626176712195917635166278831825739874471837422273576428453816138286145389773341821392663742993849244726574843597282327688718127688569743559954864652156256298887889716889293455985771143632771258282563699823334784843684629662557784529638255777251763223776525275194617953945111445449266361284784787733456869121213814587122287113637981133797776435823659662384631474774831253439158735912121447913317196389374588787764473464242799379517841844223131195633722594578468454257668398648224986567516348167526137735295331944252671431314478391927284984513294324995811323369726755437597915463565524976778352287451326338741395918413721454968668566596248721114133427968749147489961843432997388516766422493787275766217299194259216661133447192285998975891392882632637444223911672618712641241978182289913952482494263313577578293675993411625192811575727635767758621687729812858198752963325625411627125393916246764217694427864929819428538695262592379695431896125918475553158565996425154333162147492178965735514218533359361398851984313956919328251762828293618448959919117892415941368531514637561275293163438642722416178864859799577449169247325162299392471727591879132893118978446337574955587521912136925824398315939394496762894619316313254539317686511642665271563344126473646815629686977289534953462281331655566591553451584253999232697977437393119641717439249464499473654841324593111513215317724854524223831335833117434742811521733156595838769679682432414946756874934644954466732912275511127443455825855312349949142652925631112645781946938512955411561744522554156313693684835224755365113936932559785494441752513446152528463249552141641378425525368124335219342518492824449157882642471199668978972987158722774899711321886213329723972927378796257174886954826861299366719397849938839681596914853656288771143128451281774442596465729553462884832776874582796287364855512725968311653724969925318312129384756235999332113158735359626128534725553733745567113735732392153134716151961145173955244923364665372373293194561188732945319111772514274533886157218493557746342712743721888165156354193491421986767717586733195538126224818689121931175187231452925565555811851171767173849652635439733488823435234223414781461897897759194647351539129924867222576614189457815516681335164334141433192545168648462699927756734222615984144213622641231483449199797587169737652565237543588975213156477889513634386324956473471359391852324861142442594494889271669933528279761226366783839612351288345268817699728224694382873482545398351467319632584676793497225424994182644138619337549912831193726954346686441272697245331493286381915332948456884348423446111479694925124898454761146183492145743961222317178652691631276245725197855492498412848449122764772155186224252785937815436476818991935465362744928199246148642497592243443446476694845484227828576514579627834374332887264533481279388724927575173221398592116531846958263639854671164714214935845993711524812593879325835365723885756925736668298742288426365946757188672399676338483817596793461369724253436617343147645779683211425358982873133376541748692431347634127938585616638331451723233897167623828582765797671539343261527931612346688231185332321776812419422527523837757991167319314818144384126424449726387575475765211275218334474178355134228496314611894172844215612745979675745498132342953355241557771619872147747513762497337738637328118198573768473788697297316586958647417676632872315744518221433924465299128167352771423825151738544919376574729692865692655196298393596153598745617948366834329732422381677345734177132646621745334674629735229991643912565951918792727239831815735294516477347848618644283653284618872883155915267848747825483994256488789526618864498616382386823463172337428634527887499671654334556461937268529515132862974671617372325449934488191475917395798394654752869178157945544551625786645725373182571428173354163349119431532755118397128935511375325612175138858366165221479272446391888737317833422892361728464268962691946794861799383168646182772827493413234731122112464287846831329473286191476193249522291296147977826472678511211758948643994914156542448735962782954516382938958781537231574534615352181147868464692853869299352295725159321233684653488771194732739632669966333532916362441139134453289412553169828542275955988452447683254826862781288771255352598471628713854783499726772924922823951877521492362675778996954423422952369632999823788373985824388732689457463813975487648517823743525185212445869154346236149674134392118856436195677971768634171382536231299833143131483995696521261177662368574746549937192717845533763224689391424893916515867116776465577463351131749771424831925591819965455327343271499577325899361736264214681775438847298121124868144192488296628428741445141311612557451259272812884863766617335963382955631926151783416613878593811232232659434334739856947161879414181244927466184371438511835923151955269333687483365483929645612847426423481242726738316137486838446546648862586275274329892824428211953449741954469844777979291484965694997496619833635842594767515877258753954132144555674946611817143211385776952695675839382162537269368424918984788963455521533624921112944856129479793252437481743462466444894493653424425635978467568944132562595933113187725458453913892357624783779523941511357569889363398371227184949989447483522735517885628356682126982212546194937469714822266246814199115837282694115627659256563623614996155213411783333468451191648491192992772375942565222189232991783394132118466431391125676273312621166995777864154351718914165662988345993638533753328392286632485198349922751342769869232161916311543484654352154146663835143356956955464515522517297933929121895944866615546459636142882937828284495844863589487834468625624535893142478486394186357916696821231898663647333187463411971136927161956267351676237342354843711767357348644432623745491449574795992297247328371191482367143844119869552163526122569739185339425488973185169568599594821691345162188921371785133383444814548173788334143366816341487983349651647331184244311266699534317374348286771552964913336785426152861937497422214391361417733341931414261914261292332562552421221156211869864619333141518863524334584329418882743993437142853231139299929223467263711645752242816789848954445643294664346723313618625941367745691395417713249217162353423242628414833729437164158748676469625425613744514616416831529136222426388792269713329374388151899747463267654377324223615577918463154419599878252191198885814659149261521414952968459658674952851296218714791819566592224299126841216695329828948377439411497475336872997837638123976192937436233527363926479131982362236916925485188512381179744464622161837337764948624548526164592371291252887437675962616882351983386472179467569869624328592252158378247698299298539221353587632412313186956127862542723112246814144237864323368679911476189659766861118673326219135247958621135395233461134413821838426186292648387513635932845296737311456635938694591472123881161376445727551312323544391516619472958213814797568427273546539177393738935223899231198618521667993221159442972314153722613112929249619917934378267934879255175279123688458816562247361529838357719743358237398631339798113569294557728225846228575962875523667966452546856163748883234277857659183856797432371521712682697427597436264784262622441287691288132942123563974222525927967677923689491622937135379892851347589371449941274192114174686614249253661996353254493339226197994549428874526837731578817113741733347674642397916988176618475411444444477313474252394174669672471255783962541674566921812365484911538836243694564724268599889324155499122594566614858142249175716916149481192579612243717156121322996114419369342282297516485137191414114863898523976596876636752159869356821464831772594771213312498549231614259278365322863197414713588548785944311861955962868598321326685722327111173766774664324642388871938712211237176982251746961348368322163511231813693774984811154319293296364111712236742528595272985195688412433298389241293763427465958749398185163529332257541551732631338722617273999493127429391289284694824732745375111821483264376161655928745582977687738157724973284251959414121543539914267677162553145884267314698474832457441384148797823459891786247945779648234397117419187242417492153229658468731216895313437587196695441628892445313238852841754214394414722642917695791541729575221582884138726536269237874925793842139192239494846283916593748623912434157645153516449117442686179657924324229822494948484274688679195222127639712816355649437278694147199575835577627415785622181316684193297195443375679656334513739587928579347396513439948342436448225911145497912925189943481379745891753235642681595184639159438741691542681684922392657223537736229246773173963772254144598747631835379251163332278114177874529582846437443252118363873865111155245346237337624228563617634898237776446198684727673985882689739336545686564467237586255292324871667563676636678789712243572231663273268812214477439877222656563761134749179338557478473436892622469171411365616122153571313482357675448647494596213424889614863887162925362684716777711262611424541269822223852527666419564963334357447356899755185367116873633153949231499456996791487866527631194116124556236133441472331588232882418153194224344971484461187147739485235156199468154248328187974649766665589587161826411443144917299114247697366448539884448841242579912735786392117571447968777592612195225879487253825468742317494842214625737233148161145341397688562961644227466986515575685233895726247973544131625481337198814399622849522333972191118151112197822829871196889287633953948528842451329668636952795936891761392596478482572944431458845119379885595131244911617294374618519835162976857493123327951238591135155442531466213959166434968939989172545288143191352446727873641598927413133279469394376779556533895432943268374714266231869342439856991354863713454723552862877366696878627266488211374187423366171568524834262893145224135436526829379993442611869338958633353241815648282441185152732298466316885291575989538519384213217133745614651764516412538293397447317236812312277112895249371698698123821122666564986686564174928823267857763683443174385266719419257781484223859362176432992963946783346754758728346559723631196978994634495174442189164498162759385386416973264299964697286556362946391658673138234453155976134847716562279387338268274575297988312277211463551399344772524465568318976429693778397263615141183214252491297229897817651399828672227585341373696627617173738582738386258639624741953846765659898111845921158796849995996929268527266678292141834517919455414991215459731145138455274496982245543319995357348174426442511337354885259247762386199517346973714736626276341328946524589424112119939641163473692317857257526822124759866524287113992931326186739133811475812824519267148719834393645649558273329791324536573123764373564838542898242879656991964331974697341162797166942967665897381318542688137654395647235251999127896187514399786676978298478322211872583469862891396355691175397821526887461552891716644747695336816269373398932742165637137961118739189635232222192543581434218849897713616833495221452382616285254843669977741335876881765422163722319642299847696187692374226447449435386526128662866954225512331413881639583587696454446748546838298321341852511813427224876957556876681733126327987818145651379318522775814461234469471985353854611995584945483133279372134364978342334677977682244619614337366739345161215327964321997679996258416466554264378435779356796345681429695343453116585572133119496162323466241116212839292777786298116765465486918366995575947172361619153312848152624134552311542146745197112396871849682239965193459533684634735642347525333365633349692476685662212998584422366424425511271758478462546149658793725683375932984832573718614832658855235182585938952878972237538888159933558953748157931351737575179651413433723699422677945272548461199716477689977372138136494149987343842153186129975189245173668961722887975997265393632689336695298257441975343994757348961484621444314862914137281113767444569318367219291213747424397552438211971145474113826351497614876871576195394232854837321191954935191417623965154164165216645339784358448767846924373541113742659431486875471496297672835152544813519865216144565423456563512436939376973298285324967854169423673643443299316716448629776351358896414433893936943333829299889585177183339115973124744872279681241715169995985859679492563834625799123591832828349664634673572546355922651623986154435627425595683449161341616434476651964114222989671574466798419542521575383187726551862945492336688818741251428161221331844198131556743927912189269136291161958256247538814367739595441247352693682942381765989181811827167129331588362135272765359971875254991742683534134759832381111958425641728948723394359247584617951741141984134327492535873353161932312357527925233191148769987793568372444372293815234424159929627763212574953561891363896173326451929837817322465541712871418421835737776486297186627995782346249925633153625316991681231942296257184441947496553512832322188845931444629769794333745183788919922228616943892649531224215647847999258766844465673875371391119885678921895431319339836562596498212232555293632679584642865971646723983547326116778782351891486975844763482172452685542518169818322713415945629353148728138881779635463122856434991252169396267224383953799848264519858684979132268567375479271467552843111434254559631996586143624775552565454831851315867172461853949892942319411238427462661934242944455223692515121667464379579176783939596189221757224383693334827431475634487684434978324519328271617442584495961462867222284528783962495526387378544736142442638375181691496195333525341297654244582524333935868844559543387387887226272514943868572497589374953585664128421268981763191199783527842915292284271758483691325559624946485715287426434534453524399644132383746399951135679819144259256761836266417115945187971869852941415976372776973316286333173623777619454333615395663916384935614373416162176747385644215639144511771649831756521216796512331549288511171627269967653761113381852489889985819228678354682213829961491214872251724431487718234175136745756549634847715318839466754864744843481986475697234265477455951534936186244464734669496619587718349647216876344163733263844561127291829865625922932235711823971657127947553174842969479596222219881816214338412746173437766487899715212429553942831714919543453766912124692744118948294497567149863722413799664535533252636583523537132545853694385829548642588132165433628418368587317222552466854572762679882893375926437928816231636155595657839439368427988248664271149728192419775463687322661993916695115261483594545841411349649836369788949771183148548413279177855363838152158174153712796743283477937912815329423945977972511397376573697389439397993712297538624677316795677769718274882159245497336278894447926482972872517627338425425114194617792127277512857693781387836992362382234991732116113376312558485275124732952388575282513694722352568155978474818987471944448225537662421942955357173739141716627148932643211222525375513258571238266281195568774413133372325712294749426796926812472643697395386933727241613258856393183843718117189266682252158166485327747974365633731119881997246171292556511151114927195336251464562464868246875798346298449298838173192969195864258226419758232188847976225855867576736332983566638225755625617641134669659865235968993363142159456192641691124195627641661436121931211913686173689372718467262443459684274894139393542487777222576815769612128614458134265237586439452771299452447176327462599132995625675951396628999244447281971238973354485258343917111769913859498662687627268333874673489173135454723372578775628428118384743962425441861279453717477285184195181555232491836628943186393639921419926994654942661151655956465386343231365395993159353429721112144419534139886149748259251554366245458159482387444677764522322291318525942164619341897138792289824795181955566998241831854451915252226764235794116694653311151678271259994658673213393725577184249637943823864761438357273329822114333259654424143585938146581436851258597476769598684247851254479417925424631118454544891172315642216793215772556873815532396534857525479373723712227252819248724721492894313579784644695711235734521541175249412116127656816373481359384851682338863565125226876139111147792142413465358855882416786373642388793766489118195294468744212574392131442333189148831119542458495415988444815285819136291323181984763193978553188375249334921311996796959179651252639237341521423221677622237235722736138574313164514159154497282131571763446864713117963633134178655878261969247811271951633318582448189134536623691969949722385999371411196845766891787164144245355894412834953888691518924195366531371219437143651182568784617676421912763755646981245414163138519418187654222437419892557111951523175663884419293349679331522969265215921424984452214118539442716321554577992589226612456586432243532321627239238146921875457672367335249446755259399791652416558321611187337414835223719992532927869269764663573596781658733392145771957265658432218274366213224983672621226189316463716255999431926816546143731268335559262676134787382826218742775377512132699129182576917298272793211844445968939757594853894385611462266297435628952485241214139496967427229141299438645777488926473362587857911152611937382941364793317316275262822574197827669754811876967148851769351822529732746948736334411194856379332816359495541338797334453375621284836733829496413554254164735394587129939771968164278924261469846711297414591891841256362863434528587942432356235956114488464425279588413755382683359366515176658975813457813517113535589142636195128378346544164278763114548677214187864811151322379861691815131747254775941911877862428748321165551527486567163885117643259339545812598843556792929761792447237271938177573752673629233536599958847795232859762945976989122913359948175549715522645845557999174122446533667441252193251515968225175214133616188839866924598952199256845599853585718296267241455453631628815497524123976367584921372696215455194428698394147817591722517738151687745623484317745568386953971534196536973369373327722784721528943638886545387289533443248392255413791139213316955565455971748932398242522683424469776242461921783741777994242384641929618595818215789211229997979229253453724914947559173892883735287937167999186751661258773842941297329222959547766359491584382736687467557922551493946685975119539218953521352543361237414783261523996611856755331653244919722457292557975963658871143281153348173911923273947361569671133585442743168353651815623332971872428466341528441851157343319831274272787681976774937652564612296236872147294329152976716126681189128363576897364876992833311631238683452156961777476586113224721671981249313281277725158275544245625552687486629466824187427598351871213361616335955268221451249848741574871259887495118572614596483678712243643541486254154341164263941291922951549748181289968411661263464412348711841414853466787836897951487371986913472249688112478616339321731646514874894665213423523691187126762456234216954858157348534257295921491458498528195319273463332772157446674654346923129115891332724695193299283292639662148948281517213596456397128297524576678254296341983626133346711335219184884976274735126217992526813762391411885975453473332758341174926775752283418275226242584475683774417883856396131294274185269646262523984697358848983111315193348469894874421719286232557927686812383217253721146612311823435141952673127438724682363524575811929812978832238143572942778289418947954186672378226166793712265671194773627161692877512692569457961932585679984325264127577339166172647556112147753821227751727944463117412917255821295911143498692113919587425273158597767428427756918439316593532556298143513321182558236838126179759315155358494869667881252713633952128216981995256352476647417133897857939413924731533329617498311288584125778645667196412687846124142463367828376836239522245499454719831798726786691962578388685857225818948763137643579497442765626118237237188131546961453845867349212776659617936613115811474786633158377446752537531295243762332882225353549235487192981738322144632765886621237794247128794614882159842616742877773841459156226186237164517812313213693316255791231339139565463418521641232741197874332572998737279798837552599336875426827327445367552844297992574968359499451914524279947338861578189829791667353186275867357348113695321393536658173776279752767265718637448859969483337629223315531896191785665221679482542247668799149488551177848967451994248832112966513359437335982918659993477334174941831184576212566919827396874843473628145156432189769539257476796262849421335376569219748785839376926744392917199189387537566679316923459252649457322999574422575578518273959996643347786892476749474161997485426133811551384114163218283537767417414541646811462226473562923794535991178339618638166711395349375654451988859471339753975945913213792418655227729734112424757834829149649838925613981678152215159855317223128689768994247787441412412892961751845455413766565461821557194787711766257636663121925627155759852372618124373412128323542194166441224239874445623815134618459473556481859791842368232822938262168819617228814723533634467357544328423822777854331966296113171372176192715597917349687476898772775735768772713778842592378474443452767738419122875288883984432474745617391912177187666698541886879894766779318671234321624617355813659277772491115554163465323174833452911544456954641454259549177388634662456531684175511734438642253326149869287512351291285479261244612648671641626274918151531898346214687635994133325459293467413463472561415986592218254859373416759487391524152338628442256369657372237456845597293146453688243759515156261613884332198892261122169252683422317946335177663346975183957128437818921772715512815117631895979792288121182535988121145967926861283144932289626272714266339839172659544224347441714659958125652434454278935314279494962538463533943146143124595642888542616273317141144419499767284829498278173936453169266532946586494488955934625886935558645834194741391832313354941392385286436133269783158214871365145221292952216511113482476429141179597422141377629219111511633615821786966767465728377463714122459655861328322763557393545164286435514941282141951533223528776464342111621792494978852144381771112299865388586651234974473132498531628827856695219672872134756397224814184936965846634145832489284627758619649737436897811175194243819283599411464796315762648437546387829896722749718746759156942313922593137565394783993693469642662524667387223231795891351116131441554912644624453565234238747784534431635372922521573576847279494814613261811334141285252192178915138947724866253292815158374236243422863514686381755496328326244327113657252933851372575115762612677762653274527651978864333255257966859356451913854141863654189644375279544343816399374898323546259363139361419699271333385127622967622272641161625852232733628251612356511584924252162249241625249128816391996762162627834122755885532454834995616447818466412618911392675312829355529574469357352142275888344853712331313212927218171369987324278172916712571143465863866357928262661782989464986297941539327525515877933859264863215569816424229711197996719239551354277253982234872154339855536249418513318388842815292466113737352299245766285573128229484438928911816876771978539743672516172298657859489496813345182584527322484142842824237952898599394424513483987639964148144211184972159359328296189326423314836836486942851554577367217229736129994499893741442449865745193924864659283896972528554673541298326357218368511123148479717992167952574417244978348343856115966278678293555291985465164711639165844623241297432278937234438269763561199147553271537294614436396525615861228845762455735614213276613227654423261576326149339897222624813281513499521453491611691982155292983243193284794886316163749235685437272851617216132813724332759289111751414876947646652582236537994632112938537211148736282997498174153166756327174775924179993384284516191886974824769881852696483866715481169143355299731975358579825596144885717596528598718756653911184815138947861144669775963268323575882897254357913228417596941397698447668611654237437112592897749195794492544356942197646324969115333478578589525341275867724267211695945233158652525437874789744562175589555731746921196219721413857795635781116626714741155445312569823632255851616168344461155187824783219227746333566295611917336456466413914874566221596131439549845654825249134984354524823579697137134292981145365367382599382256725572342583957789399155474126263646722767662965325414813723317242649788836491714797579478542982339567294754972941939753672488429637895445189571131185232296684314682396426218279157942685989633191178513357226287387464643598281743622928396233312747882791391112552383911267863292969987247418423785338464611799757291631768519773756614943444352862619462532719868598487545249927641894675653318218478276647141158631529498331311685846535412963123784422555711214114367274393761972757113341781772334351635657553126636898361795344441952866766945625712533481872772565248359972815877413878814455133283738372724861872247186655857211832156138563264368725789665573689857348753237152243726951218984863667443629397657835326326911266854989211267425228143353721297928945935588884163373449989252748119261546369346916879425323573259538737851756255418624697822553996342187272394231449236871618689395458295843764582765213379187946921653673566537841433913879161187311826439126895436113145785418118229418628477255721261918512957118699349321262421479343643923141232369366744897922792879726222248385562272551414883493779665549451254193731525746319918465148773245334994181342356218643946987477531884824281212874918697272144195449229491356292336981941293485125542294446846842699552718897185812541484442589361979477763371193899664651832721569137695897955921454246443622861812585855838132455745243277285552115514333262145965181227817523865541878673429248547253393635258824962254212751661664796225852859274666163552843656312384728965456772967553364146784255119371351779129726944189426834975615218836491637171274136142266657598991835151942195728928157885246912581783892188632584225245888527638326199581599977563997394565224617862262813628769186479733559647921814814986742471357615221819396722773624373434952423632292255737828949299772671256651925622772337731872721266721333443311949351157364841476646474187924486235649584772713555829593279124327677567179565173187655376955577545351111212625484415578988524767396217847516839333478978981916373864676282777263232623125212878461757641343627756943343798344727696824375973513815521537183761427442965434492543417578157121381897257122498195518163319684816449159918763125629131119932112346889291477957327647632729695429326564176331445377718688225253917447123189218361668171456172853655629318289872836694524211115445488214813234659343766939688474869659485795852677132679311584677914715998496366875296216615471477974726176393421839133282861451472366248892356996477656746133246311418984441498268643832133617824365144832651966649422233335379598658385744493374242519623995395293674482788811557622366924616963499335866426287144352542971624973223334688482685175465628121158621323134956673889624321652288693858943184113585953157973847231241565896126266441592287544449141572285739821841213338537778983195831531375768338158818977278127138142561345784954825446533197959114681459948466781735668816151527615113831539396815382246418172455119265745153612588226542563336494428894792994462738117418173658441211695344422941826812399334729386255294497524172971931741927475554478594734824688344335478112194676877391324922278956522647782652937357587814325345151459716485921669353248568764443744582223334527485556352356397452865684574316616375774383333389929892794292741296214976713968443592929642972298614917459967225866228431636669968445372449827616778974417117611776499578739324638429831972613554898181614666445897538156485115578122939148356545745932986641219727827435252175765339758881262368155824539462775132975914241927294179314372154842413941614195958123119654253158658888475636952863882312987486948275324161952745279519379131279387155783327876934117869939268622788661216443215755924343167375621597914132859843866628565914966148184385918769944342948876612621545734916258664498334844556411543163175292748749234961583265472226283448715367374935553288483431189574991216884166743988363597954191184869339834781584268842766185131844741517338585745322598325991875686459872568814259258359162993879595214492316594128923882461611396122438774849547726268435128823364237428474712737434447289222332972412843549868531626635369269911512954551227692149324275989194986867498822371318795419657144378935589821434794228163854233993192249862441289195165993631147673517471117724253157981535986884717977776874513767946738792678365417474326956853539988677146544418135272454835816646556548247473385753276645477269662942348443549917421423543718844956496377671666426825562358239345139411887615574419681739335612223691817661696432269716639911795771219431341514319111241246913653565262592464165394882119481752574867441938886793415599143141212329935463681598121597199225927946191116822481635825483292678189517731957675541685112486929183688715734739183981171921149736724236667422872151412567256155373197399119269299239469235953563112157925564716151445383212637955946432224349789291965919221169661572475146468984532925643669663144712777491224216584112172378174468123959215437564498236815637535798277386359464717214665719972441976311751238275559361516389834479356326579919252158962527562375459218254524546835857784561535218379456171492267299275372978113553824434714338116583316226671866172168783175734945212386743925394349933956915645784898289737745766115451248175324393758831419893714868816154774283371714228974762292349233523453651687364982147537557164182519989511739762865716483388581566254456122815517537335244123755127223944884536942444789733247112131394952523282862759395813844519572947517747473973237991212939239872216243859594299318287117987229314647518869263372147477123685129827257118899115933467868884985118697441671425847765349893114835512219981836137939439796924291548957458356483498681135116659218495135428649231122893594124431244447126383343448918845428885563171744531769387665981952953755359565514377573369253765213466354743349216218847729231394249671275276251128569297847183874551137543627675287944538733212721963521349917984143167722854124789831781526926712435845824632696635751643438224677444752718169181141673589937661483241863929915382369911473443175535777395458115988236349323834511178452765728321213696386612345592846345339571635969248541892955756558758651824539353561262212354599592778891252142986267599611737952974739818363288375185798138994179679184222656112848322149596323991283115221714493512352766725262232348459113177571166465271211288524585418139881498716867432497794616612924517913436253284915562981675468285333198439565245345814147943851437419177511498219363119921171787433224533815217577615979459423321847615692643293774875145761987366893525576547634718442358225344649755218468197994153937188487227442282579298578119551137978344484522931727145179692184152882722459897275277862977189645796484378996493921768135325961447816149415689895353322136577145533783331718417116323735761337566611859961764199382316142432611542888918232112777471932634336649133981428582815119832598384838535572836779864458879717371453576187986693153694348419137261982116124992156729429315161442817784641622577578627879971225612412475211387443456564826572852567148749184621378826664281527259654727934271313999393923825753514532564251685264198116432285394912635436621254388554254736892114637895449778667645325137346611167192641317282653749138318978376859743493435679821783159516827143776564978714414432468444412357391353781584355782222956473629117432623175926264216911625847954729237811972179375311723593419674939775214443628418961517832919133983646785736511962113894544775548926666148376396985159883642355165975862646636581295212966616637139496618917438735119733336252911144426411898473462731754217974697736111882962661924954942917925919819513932115826861319612761483229132332432142329797412174798588464337918574499736497842152559145872249342466415861264457423586584183495521536519413813316886751219868542989184899418265925177213491857122112952952787996597172142753421878373133563488364215385257763443218715184641561157311255959317244723872656362423924793244634918636722176699954951265176719884851199164874416236465458927348663385692119493513349821616199463217155861677331567335413243877411795316894178847795154322324633712746796134895591847221255323194474188596784925384241248914255637733811391799357269935156217492357858547167266314148545357785198245113696866545323166658716143265919511896893556384555154751145595294143373134889471761768629649629933364289654227696256595411191776268182344859352555491492145588344724649253183154729342785277329185143884188159371711467725786842622446229453275572781643298213752232572448688145118194116535255965955859698197815932981314333483453281539114362721615585811387535182634518494814724411386923753528318636989521841677421928964696433616793932216278853132866351753137621819153512454553486166113384816393468413188594197889857761599869792317851771769936183228197793391487142154157372368842795857437688728847838319664375394399582735266692698614981521852725183212181636966928943146367253751213824623165235679445549364179152418512234241692144681778756695445586582392425357498719114547835123393411472834748966349832466222922759575274162147275693168495919839792942325573566683554552552617518335422826748713258827365328949435978824779329545114571273456923441113219962626763926317758781581551938186825534641967223465132723714113734237791228115857743698264251712717891438221921854111972143916254226616356812982436181432815217424426263754977938845873956794881583976835592899156758754425839237787454241663647256365418611557463723214415755892325169928912472285552833124134697158116363328677856542921411522975115354883161234791598482521614268662786821416773473424489576856255842874818535475849114431365258833943382674144461345821623657763757412133614114311125366291141871859143827863995671272384712899199689348769797127848283215878784533246266224532346117165481697584967813681134784347485291631663355432374557964248311753582992244328272373115721461628146216543498285245933191871317149124367933416265953332482579798389556713159895189792212212782755649376831433659163272315444918558139677833983859533945725689851644549556762918956792535295182666495528747797318273951671115399318517184681433687451613355267863178884731535366976814338663226521147783993463788571334443523348173736652431534821291214661377854423557521982976693343318347965683646125557975766524673717141376221324132695113722886926599344453184581675578426345259281811123399833512482488538988695596356371233368231661536293489755846195272897516841554989994235575627211136377422354319485961437254792613344865473141498773621972668782633438435468318299615147591357852826825224517713236345183462747892778547696654348736416662392762995435189887881733572682899336236927863447711915328373248934291613669617245679283122214172237144437948868735392692362592288521138811124646377965219224171245723363924831471657749115858839319191348742323457255183224163712489261494263137514588647149389638223557169381548836839582821477334152994711136742596617268829592968713371595393796988664798728135262996675198235784128445511511874821993353996821496185564617844438172436779154193768185943563528225171826493273882175418627963239137193542128334978757894686236878216747261238325153559367346318699451489359858534871585543467637223241717514337632215179153918476384284863843249765434759631944794354894732553183811696359811554383552643822425751453653647192115912243856393537192633175217336715467389852911654841164717852625539498318848573972265839385942464774312471812139538438586381749567414648184689436433494428669995484322777543721165743551717648184525511495526298643743814771377833454538375921119341174455962578726731141145695354156896682162488131623794156115258436818488426889948636973629427451776355516529696732758395169438617833225223815581961339744799735233176144971992755687943148327619736429114998482461414125188445368882261563582924987152787542569416493283711232423118265115729125373574264417318323892233631347377159982793842315237474861891552771412755496728482899785311644623762867881479484362742168794124599266179669841327781331441146127585911137122345922421663229854843161338925559333694241419494836737231289641218847998839115231888589785276577737583446669884218583594619222831984419997346289942656926919193132178653941518762371144441361167134411175754254638677795679994683994451481438742111292234637811861833714618418168865648239547659927613676586364479314871197467471742712816735718229517799231211662512154136394493434576572971934472913713345154944652392512464687561383151554258498325531485811218611842614195536225962327478677986626153196624674369524881687484681172952626335176453163294262223428181313638692711124924887813276957116382842297776114862329151768749838935966985198435162627613119537344283648836176122139345189618319173657387347271583442112451966822868921416466882212439848791767138128327397396269424325742361155329114158262727478442414116255795567276143466126463881956845932835832393169167188762256964697926298357614347855192423824823199898491345528779517219268876336224589367967671211571962498951964415565797152349556526777378433695369771257926377115637476146443151857259118114528556597965953595824485521812872749427533614681158848599743885212357145519364154659283934378855921591331212166329957782369511257784941691777515597555439514732511543631275299616394578787667494677146854599766557131982584223637439721329299111149741811455125192614828163258381599947265726491984341646627269313396859187841885162143541983961868895191265929936258593322398212131112636664738141431357816342718688683156481777486869469829388328213266725343829814196217722717439295741344138745916493295121183298368233552411818611758286564625649552766787281911733469884859851778784241791613265419474998191281528995397662876281832153657293129569865543351566381621175142723419617391653624141468561576451645456183218313211426742986599161262248772777678871355331652235723635177549514261581742982265934347982467221625381634797851984386668496144414425369582298233433853227372341869144484952342498344995342782194138139629171381327979914863137213844889963813438631732665588666958861467184235687424235331433457649885172936489151374471696881661851141492289737362698367944495726934153244343432881347373422346488395825936786471881856157947835333331422938869128831134541166237336637858358129724481984741385555815961553253839811968183636491886674877287628391682168751221377915224175197778216241946613378326781236442748727474711578964634113198161132227737119363311265652575875179114558793976557371396639719441849675572626654716995836223665325462253947461872376349637217464441547417453784662656594213813735746412724131684356268541311437975586142563291389971968271248342982529529316923775252121735818497354187536942645879826639455844981198835898361944788482696385913333398367264875897452987164726375172321153722753769357743246362393138932643698225161381849416919437594841986552671827518824491715144461954151462364133395899173397877264175283427547839121213532166732815268147544696169259287846249129139314572149519337444639466322724313528849231143271196994455746251215138478557576138155145515578133255961424833356248935142493826827755314636135217158673535316293956419171212251571361921748771123357777564549754423697721929649657918422425311296158566471688561412986526278858929691924966455258794943542845252342721711542344289775431258617713393366195122758746172518617458224582214184548655641179629453895179643817947438226481815856484396315931498617117719276777187421665557379345162937428156397956499534459396358887849735926179737339773112724341262231381569471822884668451945267448411856781387796538647485252988513125732926461976745226648781612896151517151837242592674171534916565145556564545969283129547389626163193944824685725292943676342263388958287337194154763952399875232754429239112881389896379974748681335513363183779773738998371643997769812156751181279584846587918955394765524223352426982334432417719727346832412845989538434614312927949538195612894892699234163917328586264871199764472964942868453259648996578722126115326353225882811652344616359758118987984314176886893375131335672132237367383644368291782191177531771422379289395146199187955728962832381447136336252556521945271732245569367271814655269686464452195367857447216683441139236831836852441752281133858742241124495644421193816146469831147579475196556316932137267273823133651783521447151365326517151722185625221371771325149759677511256219282668982119354627754313529394165835635429599949868154125992493962614973526767266393544675411794531619581889922827769627615246698337994673532315231415422991442944682416843529615796263644723426571354784165194843627292361258263825287791511485332373636258712577536176335598222218567695766473554615973518363526846728322976542269993593861322815124572878842253973844565342493844535624656151895153414151726829263681629459427531921948751745452927715976189318166689131163577882821446237482711173887181923572475836139514167398717558331636264323992836778417941184472757112462999135224449654762615821571279148379658875823252768487882571511241536838898518683586789329633529363874249851783896315131349944637336281854616711155893212468868928467814598728764632188712917768173692928839184734288677556342853459671549739594272452647923828118381634198834346239562594646242768986214123431713359251539446129141398959859731346763421341531872612742383143879216843231878658219274324427611966424347487768425294114258425858296355371943616763563773687931612135391851154681393599927618732351613298423872487173477349543779266361836642516627132576218217186653962519449453413424666151964556491848762274582721417631491934231299127548157558862637587934224348895489194817693962657161831472966339743811323749395175334943399593871416659145862551675598916157233339144232741195827457922694697778612715753623653147225479764875131312272382251145535146473935752578322575864431857361435154455779273752696913154961942686841691731143293935614391622165458178162455382425479659333362292178558213925762687224731845135258352912143538589899811476531311931328493333143317623123671771561645153964638467579713894269139518254412422873941837764533172154252758184343811624138866924271418782292326278111569616711264359353654458336731999627233324264261335953683432679445561876438458874662442174143979648547881823224711221493779122795186764171196269575561861781553129583297773744956393582874852512739215392785144298168985391561964388949884693951837716541277217258358727886152559585341451243279155197847366418478257417359126858447574612785623992538524281426366632173267172985476588714916863391838267594296831893628975564426823782789651372744854357343437312952398648472967535575821662657111283121333625972493345641351585449725674434443117966363891263312747862213541342312573966552799228365328335236176744889595953734283537197943814525459568466627964716173713613198485844831236651148969625979566871747632294445235228319425342253417585649595136287413649516696522687327662484466439459291342174664115569984618964439767113653254574228598552332824627462746459276474691281267167744964884666172732123632941654413353377666789153154292121475319228782993753635256965316974337981129279123223654416226333575628421948328878654629312934457473216386738282764599762748113143199823492641496679328738996763693954179175457512413271918427354781318228158614519655868545164222566919436585619485133242749454447621661218245177822324564747739719237916137752823897318384824549725423338121852274219463711362437873271766396268113236769259553221149794958857474531323536964783412619911951531474992613173396199396323114411183195837322328256434425662221454534181744942311841924815883985133552675527914369733541278159971389373176414562894879572577478371398469194585738825398274144672557829219595348684534841945137331374915167657321991564194746163295191746693415954362456433783412287156994382176152563638641661222138759622281165491454389838536876661933571591314724764975814911589931515739299174282891752172771417222536477624387176629183132737793479885429475514148916969161647782273698134762263438836452222523413928111551471621768398232955921775277448845414691281798172326413521213269971364787217221473886918477421314336713567169799687391625395358968473744852856714933694493878391541731158144332141412549485611278339363687646548367892385861283523269912767282227481993682163742965431182817852828713218288239132481498226955938955243936933359142562742214367849265451987491856234854484514569223634252437492423178551851167718255286579119158733271413496554995358425989551832296487489933882462143232829194819541976914739814871453654546888298573692191724118217374863752969577145384546471646732944942798468563185157825363414834535655811692363627983733394228526598668745653559728179473592553863413873658167224992857292388531972944227571128156111128715999166634388918484321495815165464892372721147755669782116224914481851836851412347717347164776486625251516319143623987119797577657249865237361997768974342695149539443569966154418316328363658135547982755321571572416265887199344724786313538775744551697611613152966973552396692883224793373712148485454872826566813442779914587474341452394819929273157268546423252879826458586815296439162952317382222674251342254121832148424717915778792331432811759579692483612715558522823776498268243198599956291625476873412223797174494158635327966822167939242253437194463684989128143712171522282474472362161429992254286816542395952759322285142831693629454732195744144117119338564997748951342885519773137348948124493483318196886683623263627933774575779174819213131564723652617325421311239194325763963628375417219396186453962475624695332763244279799853985389348187914614881897351936332152753411326251391256481534991117612672856945665945143691129566674421949318884323415745391475391957943162735826965967419683188436113342651165161915555286935282697257157542562523983698592973894165129432351477946117839428128197719379762332212963176829978144791555812557165177768584947151329425578999453324221872282823948679189285382252663584368218868485716433845518329659241912168112575773776118937854294915521345726733361486767473814598538251282246648111898872489526817757222331458453772589175473629541228116545313441468213443146728348256116428578584436319549484566175529126332598924113241896429179616436764197454671542739151399611925816491984832752655127786133253956211963364855168718491866123323582488767526235351845974634442683645757314223455593511566652137682976342453784342342282337632261551645583828241729594999546328126222275126272696849597977433624651987159732475187216448821374261822285446977866434272795729386115994981238123332448299631955351527339463382225556625811536381292927653828881223432747254142994376818745314722729938261734249368762956389835254682243719354191312829435431846739226172663177621824633495731221243983319324874793366512587611139558393772164687451781746374487433315956181796349117739424383225573951527336314865626867389915412781367323921127583317442882589247811739851545516238919615698464361136478852776855468685153441117777178942554437267188925915659439155649786221643397137145221981348556965593865337543776551269927667678454483217127546832151731834116459598194233234962921197524593626648685316822514659911584935252623961897479421559454335511741971824869933459682243895275874562264717983385337521313217878126227365539225958892491114775192757425943432381287841444812217636869225996999185991318672573651947649392262129845951961819468581164125411712347513217446145219455666115525434765271276677163528991219842334899824692881753397155915384113731793345155232966134411973585129399141562194381467212929253334736894278323496621838191774696685425255429353394341539696817363539147175969361953628923466755511465161399739161823431135136371555923755593685945597653468639748941527411531375684539213618966532351363764113945921241439633683114293317472231341734197991243568858121642896497619939315915768275738316358153532929489693525571574478342864315223321736113551319226959197922527594946715112223118929837457764588715977295344737538816578284633675684852232922125232217377685162263336226836929663992976513842149864418339163827117129495868994881548599932275896882381928294951792229535826576495577251647271393171429721237337288434668899842164834216548391221245532374791293231847679917677594833749452327783283335171899626693886613813745965244659422169552625169933761438347613552924357915377642839183738656732737589667483185377144124228983467273568141781692671986422255249585413257727263766319864275993998111911697327736678319269147876256147234268882171559887798567768179945581348115748646836829144191312228793388116897782711913233483636256463614644566697291826893228869246588495499759935934988743143458526328356415446528554791892626795397662773967357823874763652346179162874579279277656219179248726433839388493282247799794532478374673322864237962714984892435712435673868896164748349846439124878125354123161924282227989553413368493777369747573799881311442489945224384296477962828144897574832466427412857778323931339193218757422792634143855753215824666497852248248753367124497798796733223572721164724696957627343335145953625374155517733832579382178547185691218671213679541285666471913349526577452155516942615671745929198576931475934372264847728586169381971488935294138987975938976878721463415566998178468943784749532615257622897749449923225877477612238873766379421211754918171834481547286478426988534899321894946526437472259526947157436136597512857576935174687233673166671384146146617443775616547341812527755677815529953885868357593923861351136991265171513165323296359563563347946737861891954316952166272619581165463188231642255951425596345347254563342433546624884473165656347948468242959531959448347362157784121264635433295631782524786283413224473541751991111211149998658649911811779495381837621336548649456862241814623912914439969523993218461446943198658292812714247271211554539357754145375928519846634934934614555426326536484635612357557994481951846879382749874293173497897923578381427358517241765632992252894112771384284431652512477822748273828331463337538114481665854842436788494267724489271968163631567144594661771829166813142959254238933158868651142943839361176762352982782686275169731997495283465393788729671298394854713625337691133318344333242949747333786964688747898321525266944894579238784344595932921134932386847732298862181854675431782867469318245688596271613172341945796359778913529244264273242981487882796688499479966233278427843512912691533567315144338987827122837237683797614343454542537667458212112298653561129264659863889891229317569759554667661692363548112346495324646472193871631528333414185431371662226343149367291355173355797385657247841619136118728911992453148446611713729291682594415936551391916822758768263478961265644535393331731776245115222855955438997396854842326864375945619881429414647623697361337459226612353865391373227125166979552745136921962651949945959561878943217756633434847881983376333766478341899922569231279718633519558591113433544361263566516754342754196785842199342256516251388733224283121321141684952726284532864468143166516597179821446972292121935121571935983585583214521262125434717531461155366799123319441352834451272191787331446224915313688548337414931199488984915681153741128949953752494819665624183698146434294222497955961854932765575875369375198751446163566919337726511964456118354498275929664431784814524759885694982773276171853286451168143512586633924226561165226988866324218222266122157215648977847527358577737246898166711473882462327586663756839328617526778976787314991464179226341346867722537923733432658355394171655421516793866955346699897229226545238348775655883782289761486687255979428812898429951298872826684865896159782944139821368336681868627114882372252367344452286622727316894243918158416734716663795436619713792319266975252794655833683921711233145413769869411311268416738174893643812527217866167479189398221155516368591637693334189521676512271747273914267824828817624437716966375481239386614314435915644711771736231778759157438231444748765141436677572179541877258736661768146575437278651196134349675583952848993773279716511612726783138356386143162551184223515321624469122872329288363392263485179711295718288157167292465444882177913334313256913937884653582481286828365112932476274531127736282993247735512339844347841936512636338536756649413525359341112659682939329412918235541347782331962375184163346243542516611428876626423644313167473334894972314864786989184235128622191528543726168759449458161715191527938921196268427654481398351639353844286117443271416817744831463532471251287341526691483729432587181368538864377267151962172337129317572789424369263348235398588331458583554453214252776593211414222193497957153259821444215114165695479953381569212498712241549121878112265924231355842247318241212153615352434228355779518832763217951154486479564672986379549129988324595797175167457982681123493953366727134225548573541195262866492271115937436931876852575173272566543786667334368131717787523517113193934953453163151875636372336953712842614244641259917766455577321837442738861873811952878587178465139918951518659779545273861346376299743177825567384979778911242989484344473183763163473777254431541645193648281944116221424329689517125193515433513216268931814869231859586948974315781114591917481751471264433739333615679646347894166166639561213266554254933141143268416491358676654152588961916638387961453351339863647852775514612628529225198641722759371433613457569554198719495685698261713522257339435159913174718879735986986758999484582893567121829996331743948238934432483452249151968432221649658897181186476626129747664126576765128489125749296987938593426637594318673121361928798133566622728937697332417328929274112524416592619262541827397975799262633852242132235321251771316247927441744542945632123546415778532691323292151857257936997446447559827896227298757625563343839684238831685719818815323893945182971664944815175726579973874733921696649837396545168561518787588355926936633426393427996464838374959241566198161331843354232327311441319358496125159716257212251363319721244787517711958521143247222377987571771129561487231986172252979683141978112536172427839562543714733991599116332973937149929818519873777524731293348251391516766839133928975516138448451985582435184375938586655487462274786913252765875115757551811851939774512881748495243893987336423751386957246366287865821817844323459694476188827866951647382632763759213111576852936132496845656666615279219343452295816293449459269115957631952218129887932915625473994815571152546929433138186892691997735584954983627386888398349385768987693675171659561763781867241112711544789915174985957779958638995699237987576225547795433721167513132391366615482659892368515449746265699936697111836711342211241252489929156175485626348826574848979245864743375984589174997474536465164464839497731261513884179886913418235675711186323192186726527816996123924762632181845953899887666127247916156315561319761441564188311918612175775344854767125216191369994177761727221856895196169415472152723565629963776511449926554229754911539123335384286573759618144455652254335648196851849386754537981152689721192532216924544555653235893272448265867882895993593768991214478886975816585375171292912879934415444319331976821294138633181746896945416816845377612426323678682928942497997622325755536191467757882542598112616691644852427794216737134637516331362156372635478147759655291314423388317625677282125277613187889882253269966493617722919151125218633261369742942146969764899868173488554393224451976322922632697854263321376632337632327412497149227825655929594992216653921557511295347129137443411347919253127693562529842578131417462751446675758627464525822763298963552388717432325544926593829922955644711451864185564139756851728372277493717942638529379432275668315112152485564125314127251625983593195734513518284448139969467488841962547874924485384543641233159174838751525716382843128486126824861119487849771142756634211192751937553525321684426251387753635881737389763451593642747591164324535956793161982136194987863334524242339614393299354329392435217765698635947388837939245661737263766443429958993674812984851317461777432347311147196741761528279153234744953856436223941934422422542981273564144262661232514185521123448326693261749385146736282715965468238722764327789299558242687592517455655178486699637531858891649942659162945362785379789327265236682191684162195235439546177429792964231148467696425967762538415774749656712622239944347463238743751572314878423319296683165696148657993754466967335363895577579186194956119299791529855828254333551796539116173111636377322216178712931433928597944758396797279826453421919977173232984777714923576181214783258478862515733655912986374171686626979754778475316749632957377733632969213224345431851359513881836411493256938979446718894931727719456762431317288349618393224272273248759317614447458817786596129693366839467441675877824155357374319856844667114919381376374692942544919829954612165451387593296588357263649955853122844779533275329344493496339725325558335712465932236413447259192194924135735632438131455275179923219698849791136656283364363121857296875655955541958795428421327455763455655494579919235392918568189863221153689187798932515679912436513857362966249581332156861345174899148847322357544751862131914382672383497328214647714496851588118213311765513892167794211683281769918253794438616633915143446981222592738137863693892886746714453514757171251486136688893781622536532452379281763976462473951266161473525232335833249751656192384281617521263742169933767953381918459483381915874295483623714947164226724511417754354485753937829464144132627421692313573648956438439313956522436661824527176438538245441632274237862218531419658462447937465228286432579552678867177839337387718371941855824165246294136248352564635361276249563195372574944211775899395128627622639321784923163991995428413542248457548921133176424443263618592985134181694165583823262738893289511335583334938541943243177328518776288943378363623284241178633798898861739133574815293586139175269115647881189831828147925355544863157659474434361996869821981316982716158942294452477913465151113895474942617664216128266367172522253268219874256641183165469352747578971147197389382987421983289217994711515982979233161688586519536342398612582222711237579872225855612999482288831963113899515965817425413271691624344526348183556265535335764662441569283464665428232153411121535696272512279451979444844398149839795995281974516845555348921739923447456921192395131919779578725727682773135736657956878941931772483154344757146259616748841631856469241819211912633384528314788431148679882276161538446362352288518965929565248581993282177778486687167814481852174279424955348386826227236761969433222658657164827555357585662779184972349988119799241384199425799548157777276256168941231772264155185515974396876682112847814553612424758365434851452562593814114163371432551827341836219829852474443456642153782947651299329914497775696399737236934327913591122115239719791576329831845436925446191843183518135775714731114271622422316566158626978177332289593692923434843475773318557285279313766943948537228889858443899867942966816342643959168636623228924965338879879132231842141218349311738538517139165191855392388159523989448442197249749333186381175532332381699312429533673686241316257139429524465245788556178341697467199836482592817777116123318826812819846299569144279633335785364144728453815444435788754343988547238989941753722176189417772653226415463376868361414934862395869561845174418225391533139489937267913577116976728279293128521491722224944565763338496911882227258932735636562932396289426352344123363859211121532413573613123386749387142969279186945666187588561947668585797773965247221616158925422126642597645852621576154586818549755811647588259951855211377137513728852324325954767596153162928393969773421971459873374352451359998176643149445291584331816982423624393778468981399227698282534147256649695158454644378973383685158589233415531519333792181325714916717993893894328193774612499139192391286131353373437947127986834416935513481789963546997321332596742379337611635714641836695298471322331626816542932588834553753992912725121148666271764666433518282931245821215673764214332313457843919148651313163213111615751435127956487153662346169979677789197554797417437554498281912336741284417195519262772379191436361918142534927616313319641243227611812713938873625827863221149532813313131979142375877479827291934333843413367271473243911869957345143649812855618333925395161324223289123863577622193481448667358612821984677784626263615451274711572776123292334746871243588424412638583343531917688356787742369273991868194322546322872897265837937917127524169694222343842686622986248747543461457124215215161261857411969324168315286482537292973272636545194332921392631181634687154986661429438397558852911131141982819735679655996367284275143477184496825225726488589595549157111428319959842743541475536431594844896333456213887111298742434913111134396989565613135983262217545168567979697126833455261144796953937851779616435316524326649967761243281322422721769157376673812738711187642696896939128534342328124145876922479443372585857168631867154628886943724347173658655468754523982422941212559238793293529941135814126896557866741384642612483874463657878671626249435623954539654263681788856626933884922954943469924349921145597467944393426151137899965364366776133427192588112136913676363514618219681613114891755695459419777328693318441827965133474974716145156495827224754213157296526417949875146459354635972282541732551539131558624983532945567444118289432271715319381435376239165513356695587374268368957415282951658195648989516296143858964923378193449198218423288354178718292681463343382576827931999538711382262348187899357433723865952464625388548923277942966671473234815349644525732722375268139253685141427112656188812159476347997922192675518253345894818131266221279942921535346267228497328328443728491349248923683147363113814512629483861821298269253867327277649136787739219936248195167149322421311911967412449145523457884395766613824335726166325398548635785388829289888359911997827592682615659191726842221965993159377159583965695341318871148925936274637989993662556381927933216947196256155993834999355871792654652146573567727825396492927311224923151362516749935989661648892833827753738217743852292622549546654558535341395699277216526227281794467886325875286829472356225936955131261673343191984921113611387351294494343951388832121742287671372259199458332751576913679616439673744284747463259711442693941752896122771156931977331979659137869323216189976888311669662137826324715926917511634771418987763483351298114133897426521316656212453494882743967344823353348853398178377214495763184217789258314117229294493587839335517528642674282251165574964419615557739415755176598827523417959266631819168144723893433663817294738599181497917293483855723595249244277138749539643484613412672941195212326676268748994267967513991912439296586269129142569462845565795825759199915764482778316393393271938244651239158297222684745388973139571354362591414589872136178654467943482814976457869555147888337212583456251863372336457782132567547314932465841471674876823574334234985952213375557127963271536241821217629156751666199289493411684336212232661115167294691398445312561358298938354977383443633427749135143561612192396997481768979481277246439684916271211254828763714797341963379821485945964833436945538953271367517343123641838995889674356199976412949133773151122777292588465334151674439537853314349137191131436777638498341397376517581983298395364488496322783763298352693213177752342515632461846567534866791149337274861971843245788673516523981124563618943552214312245474814274212325994728993575824616685727515499965291663463963526751249552198889717596255135888999421499658184451191831266177656792118898753324875984147542241851279854384317512881869154344452759782455799696721926975921395856712477234229127571898898551481184867752968348943894493114685688539668752738643443676922653924779131819451657886622418895492847183166633182533999762651732742487487832968229833161312873151652248568394417946166885533248738881845438538652975647244968191328945335514327576156631827888276662537552914561567543875588464349844498747935939718123626517242372624379838141976513313268317571783572419263363336876818817548391653159696671153591973774993469612377253894784237528554957174391617419484563253718566441848126718288748456565241671796573746528866424917163142185916127474872143152872229539762489515726592631143292996376827433454996667576641841214232773718219299147674767362678491911365739512781755775348468398686538975762916181223135568415515635579641225734493635122173915966214938136118333514395973295533126557426977166263448441724333943523232781143372646286751569137513421834482697639232512225962821143975121541318613912486582111356925438161167394283828926625747258183855798562575335253863766913474612431547962534433693546367323126912116446121129854585273249618847464257132523335971239197278153142565772221692748441598891529312717661631767413435523712438222453615569137539458327995291645686685422792172256198446113641947873982418131462391798745392223371191186341786855552145878682576342762928916655478666163392519426895856216923967542266492392212455958783261757161396512972812832176389929948471358928462776853553426243268482244578935754143843221414815413793118796437698783365628572418119718984531988753239979729614545316827464244699182414192651151965571747574132425922563244224463232317853185626342259433329467894336776562386611424619528477673322425199517889278365974523662688417172294744428883248622142923843349335323711451239547216876292133123891451752131345216322448363392138672769179745569115742881819615849727162325842724324964396371998935783175644294225796145118381272994652293133884771979437887723558292569831425418553172994442975494993856553354997723517668775361398151284279358532357451176431649374786751828861455161522315337546855563831255393499898964284996829231889938783176485925726858633543188553178427526518413439563971985188673262167643866586575925213576572149221183391743236772517662344657266262661526785489659952847595356153182283414811128691212776937413218685319814264587832843281288942975372635333153932816329647543431482974285375448676357315145541173432725159117629482839412655498153127914668251984254327712516556382648367928525115498289189673125267659287139182148755638971794524813171759538634289493618712734314664314974778298457827767177863834159195116124926273953943728863449985584352633183246564612633325259131128224693655412241951393827164158426346171252729136129736285829449546356822144674338291699281369323149721284357594987324387129171616819841149551267269213287494261188943424176924855684942612221623195988219812474877128342769943863358143786446532729753747964582474528631524752371412486213872133271961673969494922666961154491355751748983753435321199474811133245344748933953651814296278139576929215743969629123483131857455344275616328241743311692816721942883123726539213689713638345337721366288394188636267496861369931287986337694713135239526272284225225359981749782852178964796954183944796931181715191152918541543436626758761983371328694749238143325555743822452716441342396143934245844557219628366253584961518651357897559367311639569376321671232168826925284939253613724124526513327882647475122647755935195876132435788263189394931756924719172282583941674638139722298634639888212659972399654273839145459514651778179876812923651522641882791159485295871753812141571992531224752316337758288177629426189475465178184199435525978643879723949319118473719768553653558342331441693932815696968989133295218755216423261413876217762489149795727672117434644429368614346542236714925381212183243913785774567143729848681339814261699679719419625765932988692152792854356814516834234772416479562613534781152874392519173215241893513246434179112515889466538625823543744577694658824946348949664683948716764662562924546563129149783223423489474159844929387745863819278336155766951448227212193735185338636441378143315394472799632874198888364863116636274647743884131915438283423792579567439543621429355188951683676184779389339929994251351685265591853176925859476331362753437961665491659852663284152884868184617776298724419468236241739194629359242963557336158872249591619614784863475134485477994698124841293256921756423169672198146642697246538841398326428375552335772536456914241242784315151959119547674288931679969412754762257851427698423578442544834759676977113165486587662192986326252296986149298986196343954298192487385364446699191882139839321746135478525624321443245222343445835641767555761468489511298777544644797353956153283538956316457563557614552234692665236332493954571881459528147215492738615652536818773365264384782967722722387484289128615641126412133654162683749365289548754512579329486741752143811924162741144728261724194176412457439974474378642431281759864555562934493779186357463549269394419529882256864275424951145118595742374959813322546714514953887781172134556662473963558467187211232474469985583512292352741846498771442996224754771185493546377123693425185481257134754416481522166631818341424891853984651992425439927684639389282537497929241868537796687557779714625618351516474724221627669758192319381185345111892648371271277955876879595312936356377393361621456351163557246113154127767434417996533667411783889533876713333993398255428282928943849182222322733311565437921898659657121863752148597278451646746962476342334396136496279467158489636519397581561612832197519227523588776553637692869384341452183793384167784378139273756829218738477271136682214372228282647855217255829772748475464267569349422956785418738528355242948554658137248243173122611817795341942134255892949816651979796445817786446148761969298317334516299967773798143466718722222848384525755358841764812493241722654775687477343318832282258222231872941129258196384756646487276531254477382654571358948418512311523266425136458136852241385745161431555947394711247556554282341814865459957838742523242347168973356277747877552552368479423831675296241917386452564241919821385373485273869717192311164854991341174662516865344372943836773129873317259245722584426531684656511166345243318924726434918778599545474675672749285412834352575191719252967329612771138419459763869112132991386439143812666587355664872363432661725581357229146594867429955479227683689735881167114337871438876455122878175459756215582522547913656284619467617171743414717312521238784345412533587732436156578694319663934837832642268629785918192265882783176919729793676134722517548924136345635238173711444554426915541936972776316383962486489937572352121835928554651339692551642775372832741519255825897742364725569656861931383364419115678491357957266156314763361516295211974345626675749417916264472431848499396899416778911154297432163838785843393851246672656758537958716556313714842111868115223381371511734271219411236162178872716566631148926523742689199541178293435781919535551628935275474547936658567153986257287425417812786947839383852242136143248144971336618733141199931476175717422816488438478892742349822425927599135781362365659311984199583149722323766522625122418733143189651499757336574664222538315479284178247527277452566654326651395313165222943771978682624599947596684542213268637134231874876617335225554437835168333176632686244838446836411274943751556758941232267495412844552328296316983298659484937549545972488817587389678952853588914662682651455452546748816732435112954949989719442981469187283253452773357625161417727541544896791234179674875513615119767458156547626831572615582157734226677771451323612762633399795426527244914898187652318442763482424786248688394472151528843427921271258355853863912796332258333693729829271923978388152978116134697883998113854685163345363718196458811279681156981165332664151558455223144911142676225282625398473727924699543125744748779563875387142429122583622796359773925323358958436251414395116671814384913979442811169654189166478596133143273732298358587621298451129236839916721938451156459825826951126738363958419534618352486496422573141165425169495323862131844989178282597876612166368371459249994523164547264412894147325885129852143447274233852739656479426698885257522271295611695141466517654483321958262969595236428493967226836341927193917656732145358976527723957888653591937742293797618735617291193636834429789819235533535293791928399444957737841534281441782637152814693123525191551888185363156312571913359743642161975499864185873971246956485381955959735985133712512951326828725793389541466687873127811313943882937146931162538837222751548737195215822266213255986971529498157628784426527755648283268354216345479927547151921744114224315135958772634634223375179554731232264726527885764945238769934335677248394393745365565535324971854817173166488786725667496187296364539124251861117365119149938838345171459566917233221245662186744364721541338915541324169766435292274443733334783574443973482383839266343833211615475723253955622393558726566752794442314128894718158497534125116949846772265493297521122538422661621536471763463576124151277214827595591781651615385113495774711451448256431473219625264365152986213313448966497428173564278962324479459837166191854847447942928241633879384631723416133923295338131431883455822783324516898383416925767339524533258499635152283768118452424381936689795615725132466414124371697442193276841175753648884663263442412872613717258446822626264641668552855284943192121976988219273352231163833551535322428329313173884785115425248237541286469765876685482134128278766697475722552775456598591559969181332324333322822561954142226442647197315321652545769988766482351478782844497319415417469985683439163455737878371671221552664812648694776126969769757511655329446314371716193477512777423631555824856478641186824788653879795273473377351626193356819351434293452364182955435382927899684492514128274243397437295496919473959637944732291227121376562286352528279177227883313891589976253356939412243624476159598932896414824851942872149247691821461979324372619885426731236994796937181216481465673626341226434339797666316182536488523432153834338489195353619816585423943635811452871242746491448293836472439547773866536918146332184133152181165431559534247148417262228347255142264827267213217196671717594817648347777441237234434724722843362827577388337654196658875255376766482691682218736946656832419829164397462275257846381746991892755342212649532858227361112658562392778645934582154811718379999431121415739336618952476491565272751631347145297521166577741545387568917483242884883415237746131882864568691193459255423854439456671549768612355575717612333912159149216955774687947553313347494969495511892745342377117579634242115429946734839635711512616867128231223587572243531495223192555536473256638363746214526322285581683552612289818979268468299193896482593124142223626135481998396364161151255937891719236983143294274513458135428668266212484541927145126548925645752246124874471632939514274868161942378692437849319862198329282226631139254424816873121318269762957417668474467386938287986173116711241463659978988548879655768878331813512148356252633111872157376316548941283289496888191354462982457182123122744785472376892874772515251698239983326365565593133141692938277598744648422386586598858899147569568971949545356847724367828772499793187922127312896445662839473775411515673812799885227951117392735389283228143493192571469761494285721794135815272291631434458557375427357917526815827982853611169778452347662645995474788164319141297743228913817928677384119295172887477746174394668752591225911361241812516775313712141624737252728359935938432413673717154598135519181667322676678399244217477115171192266459621565194997456326766911785815191541664173962295441845375391654731448274418135327264131352954711491347969551257699792239711278786763116765558824659129221637178271756538275364321811832866143649328926178787243392753432172531341835817317257778332592473428391834952813333219136327167936931582159454894527728895435381199472885819514199553441729233259348714945331254856287825493814746413232842535942537686513542682165823337883142846966184656142443891134558243394125243126426515326359888982528482757897219256138462758211183714228861468757137154661914236427972246823419664783724371981382417312261776694641465717696928996526446342748156766123245339495191668346791111533342493963293752372463132585541363758267918329996398126192875227527384734163749699854331846483579225522378314285648515484135923771414832335359617245893466442529921757542959851328967114147612355791532875938785866966773668856898632318426776518187541238219496327732846261746631274821919966256279843372627397657913633563729135675515191853894682957336677328151769216265244243897939225244253845622425144861388262918949617546256498759649232546267626294449863854951754721556162894735376818761796411653637821689753143562431443622642429314383782897165123233171848995814332331784843393243411924985449132367265456573464259165412734118729877663469975421373843219489314374733465579398753141575868317418963517381418345191527556281613135222587222421619885151148151437762374237831537829544899397448952366888863638943542253146261277694454695697788493366353662994677876514375695634531822732462136871558673779723116389673458797232923386452528592149644132338331135253114638635179218128564477949632939376125279353458958757936932487981554299748869849126646152511877743217513258641912947195559572442438687517168664156686257477897255428922177585932934443491212366357918283112329263797247295427338287388248929168222262756712775454169145593963419811119111269311825225263122773916537774646259641743193979362518288579869995882491551921677332558267655592274287357652445576275662991497353176267225951981426554686372946881925856857913926386753292525115442659221348784885932172963381939339891432258571952114229884633672834762225557728998463627936141937765451445668714921168917887369936447524695193921895693927443527263995379728252366311136227263532127834681344626839972124768818252124495354276245763344391428856179255488852888972225442138986825293147121287496262556773915365835279687988378569761383591122481281159113562812621473628844414658235345667534536234671638645712788483963574633177454392799975178442267899398352176447515284922571428973133872717522826113955548216897589563599471589195567191485496341416428252767816933762436229777979672714829864126332829426761642359373231564426944412371243217113548986897148716414543655191374411663177431264912211937933485315217433665566492747353141897895248338929337365546883888921561291661556591342123557263782584544939141248489344787494311156845344641651813863313793367243781356531921668337138619724976491522818921917421612961714198857813259813758361998553442624135426686882891265687219567919327919836944587378661917341783825493578265775579633163133419566698536111229873199276323546894177264147745691131169884395431631544366288858162375687742245739827677389641581476435127945486635461238894886634546149483334779342161436659839635999657184756976973785432518894611749789582772196891383899928131674278556761445156392532185579482498968142664696257175898891218994245512333385437491431374165839286158472446772987953434316461753721596472644127712257315369259246948762236184121376967514533531124242816991663963127614888939873499152333353446986446244415696876452639281285222282636125835832485719529323451912216155848657645922762523432424736668429297625919624263696612422733362649732743583836393229345478516978167599831916235252673217313243868211972183133324789881843252186578174447398596776257675147452451187983727718281625261475788358189351914982648369898419921313424317531223797783574315724169499752618725662424466912223975531653466634925232986553162814928884618554854223942456787461918972825982161546713438424967429846317862441875216167114752514412411757348312268689598721222293914244254416844278891894545839483513556751829162129354654156261496685686999172921411377733125675831262731247772996731835123826813621676326493354616555664421864463781111458195254298247812596818635781266563337653842673236342917126457388677751899184345651474875676785178916961271236264541698511744129378832738245363291656683971594484847351131718977797746558172698841858695723586515126716149457619423499791617338469348441126176213412716587145754584467958642134638983596139623118611192633715512463392446491695585773691361712523445314119397829858385179789896671242264615263228536345656722216317144187948542678813162615181713373149134655481325765648817267113918622963128638455631774363736413866574728233642646281352815924113629266848589756512529532779618933596885826563934462383953789929173888436991861938331113267317229957679844623262683144665243946761163664747718293764327279458115325832821227593119561815754296654297987539367492763717212792689986141165261499688885416885433933512779796285774223385383291425819298412323549372744925269793173448365122457873352171167855134893836355327427245359215249784966743211176499984268223782295761484451136956942555415681896197698961133197348152136915539989953381192983841244325618962872988512661649324779961492997539919369953842477569453666223413392723449917177236885756919898887955674585119262839876572352361213112992686746974419663682111653129262339831459659159822282597542237366983992981737993268434424912978599562873915661333488726563367774293339962174114467726322344291758631347727499891819573797185476169593575749932335661325773773211174288971739197448244569482633162324223393613253852818679889322326921923242758257667418411762117927623211211414681453756646952819327419359893786893828398585592834865962632837694711597326455449133263289254996971765953623961722546243383199785386892523824268543666213596247946567634492553863736572316318723678263834819741533299425687459971961945113953946114564936214589262683837116379325167184972994811785885361997913453833498713125533415273766355536692153914598622399972911197455384516178886749272985974228175714592582787544517182248234973278331439463445626317164454896678259933513948973874125826192844531578675439156934493781239832736638381524714476849175429459512119953412218812861673941815722386692154379752232712465774652759616296161575139582735987443326144514366579131832122483472949391163112294891117229813151274129569976943129216922149617347261214819467536771243144252477699374747285826417945352575784842771173464487898384972281684117778917283732356384765125733347241322868595275762775383741566415122187494199449227164138623781227448179729389575431329241166973392984695322647282628492141498353496878787998552152328617477858464128153728813196195166747562438461816351124249479318348843937149365325445671373138254216155926713413211494153478655435871182993158788357142295425936679682562995252369146585956542613367595725176997114119355118186455172845286469293852286823243181231315556388368593126188711713174831152773783231396461982996478225542684332256564883798496328453745594478788693641183431853633423662875659764119681775419945191722515476638377613461281347416874591273813573541715791436256885786477192314864652424764547881713342748951657914811187668683929239479331159237133659879289565628863877995464149189139225291933363222816689351349892533991116149144251798159656229361451173956367416624674328795951121724188215346639321634726376323183739146225325576647655138836672372432537741127696462943856343164648559825457451194814757338413465169744531631779844851464383482599241648532341644515997743528126412544155652821969837298228114686229379422185267549227726377652326337581272578226473225675357822311824828938442919289542369179553813596554673646354483946655215284232693151549649736411226792152561665372174538281329422234336611627425377679744891414255846847717932536489535131196581152131882165916677215149142542725488912632943737162296395519185886739333544413963197697853513749156293217834131365722164739527934421412784539628851737371863484427836687381361634251267732915472266473384522261547537891453916965178821739298391571522163558347912196445666885589569669592167678495411291362655173811589871326134467891367274942489153696439155298691774673781424874286327459368522564995447639793192317589748356429436559961957394698681145772222648759583597762455456458522815152144521846581337344357178229227782823545494584119521818648115384652211527681861173193833927771995845778214358613193831844731341745373629243685133285936632455765834523771119862983895348672821344668263795889566991183762768219868318643794835578586132698418845269112496211329124155188938491121239825121431922373942937499895693582776681696269846671191451266633129873485353375179811249541311633784566327144144743869574577464419785669239695979865284355933659849843559551292538126171415427865874417212122815699519857417723122985444845655834761385747758261589312189536967914647543626872397651462288469995798373627362152333485353666247347462491798952618619984276915939829341723311622158113751848693578259388666241798367185658739968369455167182424858836812952773154426684313761464652451924572943373499284683421961542738774814545454292455695538691372142443768147295659212149177417446171412265943525613431116675711323518633136728735358196743726125244662149481129637521779818199522273381812465356696569346394333733117978643291737371439615299672932839537188232578171266317832972889791277136718289581644631267114159623326797365134386284777728656633749732571837616869526151338432322353442624748713711358745768835761371219792313378156456678817822974941412139831564337664198752283148736682711311931119539423473392674388955768287516756411886227649571458331339882494652129651176162166764628295684453788321633182979699853155529216714483571713343333821399424336835322393753321596549852297674788985742836843235235455498456697632556274199462381841794814152113122651642517413286187999311116539422264425654772412591649499246678136865929547677891335561452296633291453185362327872651137839479658134928341384227166777525717938657241682957218986688545213199438255732372218753298872459437768155261898217695577476886187331269434531219829966811593264571339229354887483777721671991863115756113382581331295975779924926814292178233821784813735599163597184722757321857711951965331632858659297539914521478144124534326628899775275233776379739956151712978792933557543274963214199368264743798587623329145136594424166474329292311983261819665261564544582447498816273147172161281784989235692188822617558841183151865827289181478747741165972142971419349477352975276812894535221165945946319276394278831426619884182712133492465332718254228366478132361329541431193732162643315361828596257243443971482824379749383395317128852834264244829459277561923543357684631849456218338512376639733191815999922256891673524781384444531419516935896315799522724926924649144899547781552171593955712422356765642935713574516496252919652726712378685889724956118915247234742615952473465944928124682329393242911864162424753997954469684831141497993221235139864745192998291151341442713442186418512388496529743242547592632942199495314541681726637834842664716271652493516236299997871359244616888247774959192316779952249335425218126323245331493597423753247328931929886579495298316141415749937175717555352752394732394845722589462343525783749178773228134287758169626132191293382988692146331134198858192343142443868325267446997757947647239978227542764733414484941875356636443839344378487228597528276539279339426422517232138849379595326779654766572389233525497272444416412482368491222167184545597132294132963759714181148811464384573371481145925145351199554683278367161355462334567923213874913728421344173288818457252429247168647589448415829893821411331859543451426195271765298284939238224336864153923747947545254287816823242925263434627994532646487212736831665428286836723199976734458162162587668387476957911726372739637212126353849424538981714212538262124131228873525535456236765415739229364469132697542285314191888615449751122633675219345621141793623266874439813231463292163262869627559137641245239457214413911431484697962914616887432825546867651452664667698798399258789213957244489544518557471487268852284654219534457381726258452479458225413739479324145162225431265412318838711384782331282747227516541339817352978888796416434591268742712465252189812117252458688533382189195278371612141345254639125543977488891888261147892594769165414986375591323398254248219629766661311937447891693783432696955133761529638937886632298574116184259663514677439218126369763824457825345625495732255591858379246994947818626674194561474948324446617172554186266897259689243293977813842815379245199682485345187713779953916762837336153234141955767394495491153389624862458558738563299584989781962951855197731674197755972128358414932473584732157422869339731966236588532879548885276213952533426912131741179313651476579699232346463233113456638422944677559837823665546494418156217871318819567112255622178454367238399273618525259236587797253836244654245658223833393526155764955337778981813123486931643248479417833576466651872334811743841134199644816454223542266534321215612793168284117882871689549338538214176528172159483581265359737672764535137157226361481797652532196774191222164548955394338235125182321342188952498618366251185758922113946822148922161296264175742997516236126351349495156663462937157481674712241193457469955483919644983397156184388574821356734732149127253123576781467431642155458216848768159555527748379871758562643572575896332536821879624515378129476824758198754219852266967535255181998989324168416639278176945127413351491427128146212468874452451985928848765445916141253543664884122983575239299931389564787353327653533275729566485554166536231327513479657413376113475373716495138584581317417619529734741975274738488755474145355715166572622397736644151315423263335229226135219992418358158391484757153868253154775563647465873181155714532482466332177373657685313993139871215554574216597236542253916179716522514133596434757554898582257334889175593955237525952144779623813381349784531817475879213348451557491896294878321616539769611949738912825147598697677496174714947375951972679313231619234348859976169967789246975557946159647725426835985344295276234531143378826146284971959142982672326538932451812635343915727657237176587639843817333158729634879444789624222388933157161273917156712681711588948555721883696479494789492342816825268634447123747964454254494187495449385198724626546746266718512739616779485847622443592847814252922368393475361443142534337145915167131321979725683792976627764178573487516557842658398855162356615811565919239219879342381956231387496477465785518678717182759432842361644634981211746181417383212118752132931143325217335757964549922173334231884335159385313147785418943323822923245531769671559225699455711575596556417693893978611197358714377914782311417432353526465521134173267193724515582497584883873135584562521168522576125172127315269238775235325212741431814446545818732132869142534789237151594319695545856514858616632445751392197438726147262928127755947433591297314385121723583628459967941597675198892951225889525692228219997494585345371745171829714939732341814181623432626566983767316664773811554889532229987334417243727678955298134131639379464324771214845351776392225283884172977923582246829263387343621879824427163186534532147554387183289549348323387315692758793992938718599622474561738972653242845387138782469939372116867642797321266771957494879591266717151466128524815478777548389425317893644419476679816735962146137859127293392432883991964126714665218912777423353371631679853425463642267632325984822473268126363123796777423658246256968711383787125217159557153315111455325225938342376256577295136169916518572684748985438334999236597239284328748771626146272225367819482171955743645578276866447629599251222927843838837767172267557168175755936275249947418871788116263774693943874799432582152135686499732257953368119147956246294663196775914386969936476824452585624975772832952284571625228735414295153912116982959116578857425164768446314273425477112513911588333229536688912414411656571644754336789388466428495334499866718489741244313138276559933523947719112266892451266594821838657266319628244813555222294519814873464642421819233432932284569341949354679933783482587559124443712236675481646828561471585428216479468348147622489761823852435876129525212493151556381652356218823134421894239771966481397237168428327254979346259948212768319325319456414882824192712554919661369524215275751375144252934264775728266975471418959516554178399461783911269725378128569412654772759824677753481767491835844931361968158617591761742714251362793589395478861655766178988321182864859721425523397878796754816864547188876917999539473595576154262943732577614135284886913187755244797287548965443146423943497968473245257116253365941394315285984427665714415484562294711986313897797881127749822579471568321161799528615328254279565631763916534873689745999647623363574488529264518642154616536247245795747596458694892657581755773859758991454125899783251851763292869329995541245546521689769943189768784294157365314393446353465523245366251121839861475979718729375358965952114294845963216273451461854256365833417783124178946663962596883718231989996771369472986526461365128315722886372993897721614754854926138435269238915971694585723732516696166314236715134525386798593921795321428782888375442171254178427317571231187219513448769525866339527612614464212623416552725114291269224442287785873945752272681243964671621547169258471842912637174223472453184181124472776811751994242483444892281298765924211734715424999893476221923215515697596286556436899651441455868242265162894172689393511614138124684249186126392139655836144148487795867213251839143714663785118741313831867195879945496998996753937946351457169338693442256337274916564566182514522283519961112477881631738781337826286291694682974225931613243735959134416845431197864486838323863192632865535156433695383257734554781123537765894359854834589688516797256537239294833563258563128155114821521585289868466759124288694923376147534217414818553221318822516946638243185519661745871691829951724122934695444869926996526783694117541227638624643516124337113215563169728484487819822629918826394187616172825219589959369414248317133363538147412314542632562831323153219143217171478563651614666954117969552658231272363861518323981931998255364267461662961353457216668451423252464381375149348282151928614153415948685393324931373674737958983699925821617236389683361365619238661527631739427229738575731531773315832542469453654429522459369745114537867621221673688783828286154834382867115279163339856828249358897547525745163122684498672796753928226822465277257268964744954998183449174326588537833133376912355873524959682943451337373117764697251434951432757294554344636351754675564979163713822298862931863421721933719686558873216282665439363247751787678593737411661511851811544315237554133534572973244712127193425776796636264845252259159188844422316548399292929533657654318943592294122853914779849672644297714854892996393351537545967124324768257269675169133141165292121481941853986823531816747456278645422341417683225287279616412655591375957468139132915515881113834443423922874162374939127923828945355265714724157425131171346775827837352722582371228653575667161438641614813549823114341492446132132952336612458569412562548971123139921251992867317199744427947162488265823534313998433547341326855886425576918822582235599573335686211755668665519896296617896899554223529931239354394564346632286773675466264499782321352337218548427112939715432211519552822195434538752729991963468544289219716759146284739715694447394964422751497856673942939917314113123357513313849416334282786795357676927454681721913854369542541175929781977742653228883352153411689511556291824611433617914488722765116478834727511679176242757997956334219173357735161247732776123614329318646925975758749127764162248833578914461166932687372436627523621627135444942791587199547357638518299518241794845947966583119227711498933648873262573455427741598575338231676729949241988763941459631153658997869611126559721488137855256287686156613663643929714541444689426786375926893735536585918742693541127695211596433874316867851232485721161455733739425131272254947996984542885223383415227769278129132946241843161149361629332258473878562562576376559661943425269767816143451259632444493518232774823235796525116378469582517941484189534387522455948147978292863715522978838941359564197267854646953378641562818738677224283415948725252518994369428162492758747225554961759945785445135612379196553618663395189594781933442172871467941671668278666157346219647284322124936929559436174882896957982358515854971979672266653741389196394482248362821225682453197229167746112672919582512758218961621386369947542862144888771948355133671765415555495316224234777763593349651553899588385622741818881126741468546791187125359518669327852626482173645221648924418877594441312663883573837548785129962989248216645685555536111343817359512318411912169485911378652643149658419931578779148572964935145374917588182813239895729825858496116439419693241845824281722692852751441137379834776393751578848273688254312113654487536783847361847313113826884275336885129133421864815556489423324885771529732124127314594739256997574492372595999318229323538652133149969963681161537669218759731323588394442287241463784415472534364511331896293281354723312928626745896151482367182355569614254545531864229698154735498487489389321354567428298151332482476855931239357641529692132513395285896555594874533183566232628442834155845646896632356122496125458593457969649325249386273547762544864944989294358332422384473658934112571345817765365964514948544912483253276158885635364396158747938477681466719924537654628477329321322128192963589148424555627654943992852126442592741139564463393349871535368193979122648846512778278697818241379566171788175184186153258962571544653383986984163689486672954262241666637486621991332229515257491488338929285329162918261342348597362518656334836551542886222292675325492316482315779592965214962796355194752221462243431531935975833327345826848275711323292124129232161795631748237637124224786645391581815514145467374921357184445176757475973394713323112538743516995762652147834945969774239367787511683543394615334784669842118365781666619888854921281258419325939738274359383265759232129559683487278896134999119685473615783335377895686329776723542399227133399392173985218497497238195344638625895967961194474592715481965942443732432772418975928688178638252947263815791411198281321398612494594373395762369915168985953923125572178931614574774941429555922625265476722666984427473648668623452959455352411645341289579624922492491137545891977511715824735215712423158291476613838733573136944728914615356295257574852289542383756943317294762482862248492898983442866537229571132913316998791231837239878356967665558843836792823227363177651315159373484455718925833264185233814527232697146299293993612958517755356541368633146289299845178683141537761163835114523146638886852171586627898524791863648998232867532332974388879398666977915753996568969281755231435313928128956819563597143567612822291944934551797651619829836532397367115664581652332335718472725998112918595429543133253112318262543524213382134662928691477979128686635176435972796185652978513415557748869436418692436465484323231118269262447164119716852818986764994191525923456626466921366372331958881431431614967377439428328468423995687384269424182532183535792571622227796144126974466388672335589531286466378353846662676354889686266859848379672285643293992943639237727355381262729448168527211622534996153228591963137842995272484874351636471382157573469327313861655639563498445733618977855964177567773383661987533483477147321663189155711353923681815914664796598371987765472481666415642394541553288593593388423468555962197933579251245273215323446128487481873577227983153416939816816451226335588326164252752732938367288133424736536648826811352144678116639628681616797139537215343218775832772473637856348312152813478581841586445362126763888428126967615236791952557128867197882192971546125565163518856418332192836228899629131344628586536423718693915536769257645324556738231231129966751576273887456717586551381711194284744368372876261613141864135245919727795829466674343439533817541884469292642469959325227821678277386467486572689686619623798152824949349654321528721417116747925331459737943291494922978194219528249338652851287198636118832775438893747292415478944585167962634769873222783789432314571135198313251982199819846228158172899515365435282526136756871575359252557633377422924654159257466921168285182618261494382464154291299562928536684747931221324782243462788318929693856566873546748814868162692699892582119577262263448893723637727419718165165622763135474145121397993975175915369111124663243553141413292995521586234258513933148414394391154194417969196345277813763466334168464226479179476113275951542451877672995645933496436431549971815726824759728466157172915549417771255269336313355423151873429626367754332767248655821167515164474567766352361627496963823972775336924519856382433692191891743742523549462916855149331359353854916368851417236672628551813234795239728149882512231413989721415214332871486439695984928766445236618735838199759913861317881118319821258559849758533268251878314491344326926245225426977124576136283841343193911119938524462123247692833451747762275989262941642721534345274999839342516838174136311263911863638963171874889289964675864188914232495353182615327791878455637736332238179225996182614833957365342299354944474171728181771752429547714491279726943222168998265137814421796366629251426591561247614928633536242215751279561736363239873479349211725384229969784973313293545227111449273256854629611346743579487741113494811627783816577591566511122597187334986677155377751583545192137665438264353314443412285729533198362961597477175791536857256112635869341895376692294669647524587523798767489698659386932321243155266291962617498898231912661172112847784823692116178848262114313181399627687484476896462588875664625456968186248363563339382674986841386585842284825732311385559413669267462876735321865755235189437169467448864474662751646976288211355221281965712344175642817892629932839781577551235196116377271211764532737756561861963128151836744656696448611185792769328717457959731959186265138128131575395878143593731488776172963534145286258231353947827991326968935362199381784326269587327284861138113192887352645756493189682353662923472223743153128817912359756766914552932181994271496116869499738983961975693276144774575314718372454918749291114166624943387789369149965818588532758282573296596489655999151381937458167686725773452889322225515794917813931934996246779631131894791442924626755996424914428513321231441337544294923734367621434313596251295771851949659751826677547215886315925378152367794257791452616411776292395524738347464768531263236655187823664971839723842353845554564628521387934747643529781123826831755151231853915873966924376888786256984829264448462441246924143988354811667361666425678857961375655826327972142594671315912778793937213272559147325472824755782742352194225859384158269397421541374613724671389874392116823762357774741656438513131626421979567248949849348929486166764862798526415515287534586525834922812492352668214232392659745315548648236381395183173816943416317578179621159376331856584656541434961585636231414177431448134398187617631877373252392498457919111493132128612447722191162716131257555153114417798325624156316981283589426713623822175572876252546444542218127532625614744464527238476225914583748313661164213286441895842968242434614159573628392835242452518611267411488574682978454378474867632531496236898237437657317784854192237292578688458251321237234641916179525427432157478341215816361757536333745541642359587432315299723281496286256721452381214545468925485533841755252185161569544388947385722746184777328732731892868119663959227794161941728632313348921549484365544518261341256972728397921154359412757311526955522359538599542516356251567139475641187275537655327752118199929345169719911743367699136993422756812644321154535572696491835421915914622737383286874593261236997452457791544352417657367357351932481745732836182712771322345749187573751145693671987456325963713441474162869919642771384222439212917152237732943654894111599669588846943912457477112414158594896356655486171887968478914429542559868931124292518546148584162846721216817547629497997587222771198157252323443976541183378498251953419488339693498823642348995486679753873752123449264552567664893287875544371933741641334762352394193853715138169777792333481299752664814312566611857765935475288635863881811459844342631829845818396216856195825299642823563476188663739433415349582687834275311122119397313614273382546722426425145489974251964412744324691781673135767751715255961936833985495453649515881571275366942379259933779787742456448711473137892198921495431123826448349715416755689542933223721136717345943717772538236183118189177953663189431887972647311395359583379352916155738173731962153463533152594646254883571872531935755427781475453893296159153628649599363596593825476698283862121412434424322714392434946551773862538682811764964465731184693344635344619629484728984499444118635474525122685562382428227365387145331711471115166145669956832735156981976427465927863274217682681763947312327492629825218424429667264539931388144596834325588222372945614426534688784518925697389588427994898966848466626362937112188151667752235718123876748755866949114627212833143184212554121771558579366175596645774731685859182461456837464184565616817558111929314456276461475159871439623957842122374971348371891739868911551189869339139491949972686515761858241486944542772779466824924733249975831328427229782476936695165777213769449899994916937764994667821582936776782944563378224694679114758641145889678271326344114789617814818933757787587779587897668874468479257718114391468243378111513192615196616889418413175653573366782567867835525823525866928971393185295836449225636128174412262351711831826127317796129268644273985699867372547667255231374633783211964541332224672323982977325613287144334184115196323771781776456856995764445618245396228641735278516998621399433548156353922711397391594525927297322279247599918334739221667522462825142185282132823577665399457824684654844247978474965272245624491751763761838947963583433718711622293595364128228487648424397968966696323361843568573689178752196887522842121145873513593493331159614918611231944568645312256143294771865924773211321412489732641946732426812734299967632248757462648217248951931936432313781634821417141432235792397639189696427967784885242289262879294171789493233191383686197872651939395465915115391454538426687699765682874741613582836522463563826532216716715222844719725479479722862935437241883464576198245315436981164559975188582367746324516347247179683691184812192343815572731792834538429211786841928688588318565414227576174989821541526587432813341751742159958363355333466717864813316731376347339476556332943474591431696349226918922456329113826879419264386583267225754339866971581511849889625545847872861221751594194165935536457328375651596739523755968319328829191148853946499677199751222466342261993732783188856522767234866777212628728812356398685792884862355791311121726158328735974134271214118413839639933785115448394631453282129692758695346413371138434195614557496521494366797784528715129863256429397551649935626487749125569478114687214786145543249459518766763638613214462157166521526932658596336321696448986238798721347612787964928895136746212344274463314721635776648117359214464213463261514345556495865529321239859874698549573226964697349418926216972935131557354235335254545127731722855545556169677934334811795279162213974692116515715327997971134976238941211431147812151633567692525223265929471383345736667784329855298381313211271645159926114216712328593213987938222386169259532213119934324185895217155732382537256723119199787114145261277194213167473285367972866931315812465137723787585666177545541497225784164261573355219873735347681138535935951336324251825422392523337539187352511327876893787396415547834149385397466946579132751943287727919634123771765181674889243792692313974463493121216785268795193945569487159788858396411723627486282741727497565214115757288624648863354722464231579284566282199426861762152222227177879164521379366973614833961754455289123211963434187868966618471224439847861571731714362667428196252536769954572414857857596999233974116117843629932272798521547332857556981511668787136155669851252298331775423672766731752337322233881959633885352569248121972861134143395353157563681955559735911827273233272643178469964422218451714393321344422644264942122593222859933597984423838331517368498459363483213749342134343236335924922375529939821612769856637146589911669419662737144386222169575341182914171378144239483478787483787175944217126999318652375765159328724954559365574193476576443472531334185472487465449872626656611565152717314536226321233261256211186358111932728661129994166247712388323521958176113786649285218654786463474988314342636363872811926768612575733738378322823546656884464231765369493335522643769552554131527984778846881638159534238212271838515139822634912514177849856479846351592934958127224191216217792886983566363729495446229254568156312351634264478252329727218975491148266184454971954694965686672361649143965886326736839362298566773384977984864597251827823953588764617126575243965341445514297386566979392879322691232767433124281762228462918487351743451323843215511141526674297489387781795127617133995271718162521343666268757741536762425273233439825812153795111215781921969429681236139713857255877469326961828155431116471222295992164929611484297554793599488537628782844144583975795941555911595156323367879122328798799629957583184346682588692781265597582446421372619116525227543971364344352465256583392881931826459849645478341897322656736716281894883245659335711567214642464215591473859499277192427912457492637873258793697696181235958784177231898823251284525184363631622535751123657679391935541222443826647252774324252463434213328689572927224133321428152116113162626895938395345355763962326391919913594391474341112578388313743874821279586248743376536632982521789115194672894661522311635772486886924593282569673726587324218813793311198371667111246724694442496132763561194112316683236668439969555414316638521562555919559885857193541239292832249758744832529459641728832878546921961143597742473863966839899556327569221262815256428927415846935329488244128844375894879396652129737775769477392263582213557781153972786972764919662774944172341171634456113941338954696359469399932687149553725184426155486184424454971775466981281368367877151252772352368776238647274184155731186364436434413743139718268662465392561383765271342927571135534613129383726361779233695739182764233865734665378871745249157277591739686971445739175661719476956944458188238213927685971896518741231536311131724475397528455662217388195387119685135222919944518831487324287975832239542616686222981979872521249171221927148294964738761733769374354947812583156239287279493131627592558896865225416718411174112551147585979847794149156328585736584646718673339123847861458997341259613167344114621419442258328447826127162618369827542433945235572529395881186159683762682926486415879434592524344588163226956381297619512641264774177883954945591724663777851875468558314551969922688359677377498769974998898543166666238369876381341972648124353968956241334683445231198697865746314454961668597957387411634949793192623929575332193249238124312734662947786225555432843499797247656566885173867126792981944479921778678758898395337954533716165826762722551574511572183183329374268888715742174342266318149849363369963661932561381495235364828288544754819959734855132349642518774967274337919427457533842152696936799969555991995259522912189492243517794219889211286692174894387689693143699156763553213527615186999447648251521186942836588418788119986335553764196294963813263982565812248647285351534683218324696341298514349147525431876962252646392493366858753312251193262356558271453816861219542125524712623415121553917539259162666764113576983913561817316381283712192439383934398525317532276587388951611455137747523312352813161898766393897748935756819143558996949729579235114397437758658465993252861731792153164881573322132573727146419133543161124836678179134854558199985219331433114959642365878635336953197418641276747161188113388255122819761598947851916117467949945942923947541946749493172463142945472631924638393528618173353813264691345462832754146913632989854177255147461314778436673174895274511331158755543317649274749239254643731737824864466438261534762453116938463591375844637645139378171439924842777514264217784989751248534418631843159444611557165311934458193755172871225327795959269816997761856172294333442287755751436359649872365761346343579447345632148286174555187139952892717929125191795895749822953125618374543261989647115297852562433584116386199578156395988615575476921745218543569367262111722289746429694587961863612537745268246311378384379852122856917922871759787532125532611599235657697213228491537876189476188653889815815644154579874657438666446568288459166498216175768286856262183143193339486487672878123446661141692252846238644826633379939113951294987955422669649956241627143673453153226583614682878248196337761686715861423854583281629112631851793143931735583129989245284167434198559328314135253526852482217782474241931831252869116716786856484225112821583426116391143761277977462977974872778654723549979223968193672974947382658178691511472461544912829493792744342148739727184233279616292617956848974262583447844574882914949385332261996613411768571471118618167821847726395667624616991552233498432282238559439155163659437936688446177519649289171132889137289549732632583698293255618228847941544626395911292568855953522176256482185167622143482333247763514843419764623463599578683297113463457888659486384665886113594233345676331926341911198264645971492964668649614112235678629483389827863131179815117651196574274754121939145834744266143793923588256371739697849174318633352112913451939191928923367534631154733478439822913753485787314159279943915613784331233379186751746633817454439248758644641668354832518549414296587529599241194497636726863537458367466969695445395923492586973914884178513813539557598845458187762942247944535225616453199919496716991744185624196352521632875939593156621789334177437259592471452694623892864169139614449986226788786277932722435891891121112218974231914496875899384437251345191181185653278469721611696996971177142939823822949474735167649575444399543616227469121573659896761492713939975284528313926841311893829462887625773597895312795187725527399274692171636199839355187613342722154633387928279861156155816384946262162843137668316349254111616248844955921579532143235471316383173984145836612854524418982348322233493921996956164963445893136896219441214363161515859311534437762763718381265826758157383227125715491475214622745989266369923579436248639978782319965161536461741529419865245192355975459818621367138912555599852741146148845499812736412137972411381471478373135494142147385337899712124414163874129627388664663623342448111275296648772739446375247136899834164783763212919532959688499318437273459795978218569835416413616896153436767781591219294758376322299264951772886177834371735129435137136197148872731311123692244994232862685725186866218343342662467164356511344313812411359157267563534592244235626382318272142895225215932232465411238137792717433346564777594793559391711592919137182358553319936411368254312981511377613845285442774858546442159559475639125197551719129936628164572443825893928684719945524577126949349479434114583454935133992571615327626246511912289243477252126623136677849326824794562159652978132377781468784984632774415127282352391276356331226887195156895721555332799253173146262773526162133699419345387289513681255911655612315534554313413644758995161624452513819621731359753441133852447957471115361558387814526192111795623137663378586111663719728184179456556484792142133893967716369947511924488541563648681771314958872138342896231448338746729355627167489489494726397364244141798264221887717895375169952327742162341195943328999513235584736599145458548977661949225339767554946711955796589989772854799127828189195638496165245926746666482699513682241253256445922231499697233151153581763832133522138478386551526365428923178111596643721614322327385613176454578449224611684252352263537511748245929135311625494694435122812648525431365952525541135542536784268641769599649325881294624271747666396553817338256488555435385617729523689536564522319321783229268612811178757575516893874124765224429292395382741726311535445931293524867937753119721648227329874438491628855694394297184313643914958249766434165667317735599433752255696318653189292393141696531618987764119891393732313255819119213672254189527414366266938448387851998311933247623659621417355875792822483492962887965637226155916927755233952414868351446421325899121174973651699288124769297659934129155711275476643375883635838438265216286148237353221283122925372993923735921349153554647442894164195751381118399931261534634649247867127459994474821487381791777654428583141481458425157113288193452562286687819298712842561789531191837218876745573748567892613182257117429726242732412948914551718496351423926825295347612131111717658514188785613671942371782757733443629994417213424696322174484296428529632762127846344972641285436913362894815765236213391871436714525723241724918664946262782259787322591953372634315367727635353816231262428856581479879393199681685511925816141771221121927478939659186843126321796354117984438953995151655245817767179444246172145526111383114474642814641999463612448647718365686696646191132925325491511261863988117179285878125833743593961329673525142953541814326329854816786612555244644424622926366714782974533289582755554998751887726414568425498487442728585862445383478192412358327888694521948554921834236529278241787626215345494853451491922528673468327726979167276399519446343396898174546649243267792169566992744331556847966918932538685793651996466595855837217445515835658813698433249239797187186148837935221261135464225541917943433293277499572821942134452426572962341268323546659896964491349552626925314313265323819238849655352758116664983287447754339412177347192252212969319824691674734474451449233892513528676657617151353646335341419763114868482566693822388633824774947987591358929652649293448294324348462217121215277125632399644122859684828372865855115855499964628815867845336293711316266885115795947136447377732328731951991138882691678187634229899595427542559667828153656359688397483793579718855723534319767865881265267675272914451387328183679129148639633283254957795772194645778113584862959827825634854869846437755184327145358875615163196521323192535236595478379323423129155892976275741196781722846251951179623457198378393436473957125868164289799399935334565681167281248862467172258763297641249135357854217137782787275889925189416276854965168912428556278946413711856598453322685892685812122222287565423144277453152339634223284849837384586982234113345171313423315233421145245437915835977864198946199976251868187292419722567759839662962171633228822732895678369614575337679629833349287725663162851986244343356899839237231351918479244223826419949791274961625463695144325972989319118486867674435658713986117311196331199393676417522779361285141944571466915531731417861326764921979122364115649216939622864688279573853482285784454534754621793932289848443275917742932376717587663525111845527664857482933335142412391448412911577345757713436727465663387349128175288676513516382129117552994289331815196586261834142755518116493219628399255617539672577641328393643529662432497871428671364629843434913639555537846499136728457123288682296621334967447672635925166238825225554537465417329618517773321139487824682573438536367561523447762812431716343839231889352717538356188662282798199997832184729261447846334821462115722482681716133888762329832279947638766678341769914911856725255111647835253213186187624224189612976146364277869821254782191314588132243469716621662581642967924645596626368412184427382581561574213112363719266911474879965213821613687845889768346424245386193285613351856789775133851271735212366928411698275355616776394813662914332378294241772372571996425853655627117741685461866482525264459173925144122762995823831246565177693432356631364153252735922264158157194725846661289213423681412397687281182793873689617243626284667376252711812498662919331954612169675651212611464641631138465451373516422214234678739541752736359479665995394778957627518569393791357485696267499547134248583924482913333271784868641593236616595233416869115336982442981145312481687737386436164295763364118988923243262677612821752947381499653512573699936553921557972829985937853187636451639517363134944269315585496585166821137691213961816241354211334421932846788942871178517131213649635121829777298864845359198148885371584624342388845315864766721688617415525844912138558283335991758523354812978865251877445379589646788832644422346722686666836485811517791189334962914184729484497932244912837658715571357754622895794317375126245927448898976419362796366172729175865341589299731359691765951342855423798251871491489195697877648451734354947517852532346548222134668593873321976495131292976218729357261594471264863836452648282644465316451182932139396866419372352543776355653919396783668531227131488849275165139761819244833216536898131611327846222438783891961795264669496251922185934973495143947927954189435496718282774256714786839599345565439546861376444389126242549552818798611919397279796439913242179594443969696681125332662195184555249135914324737358143617916697227465385413941842435366288121433174441974679899667353914188334862123556248265737467777939619595893944128865924358427768433593223688916144538398212695522127553375366748779542768263285356644982211239236239744786258497483987499458615487727326324236828447352133375234614329971123261315516339137727926541533423127442776947632648287932292128762612316124812958525916991849269458598159326143618974747484864641421753558317859273548577934475916676349352546185917655939741477369274127125563674612253462868783923542384218948946399295543559233641934196612468219557441431961649989853431845223228874477344484672176374386311665293116166119977434974154181759264279285668122182555241615673947854864297771396149453672769872289639569511698228354979751969657941146944441122729832473943476478865837925366822517267824528579344357379329934695772453129828714949696438139616912597212443193761425873625995731187953557756941811327342715855388727724131879377152162431535783654268313412989842572114721251638368117756671549841756613127676824675938452881481787712195995183158741314661395115847496157331558689881319476565214692221717159487676646527192736946727574514918533524657665633276466623514359516372886963349437972348392887499994835869218948898247964326784336273813699462826234326489554845216215649957772825636431375384744223663193436732954236272339326736415633435213431265228616744296864799389693737483874768926771425998448417792521359355771716143555974838386515857689635967658526563162943838334895951419617574164225966999444414894568954883771578413723914698968184225414228165291483381627759124216143953353661393664324369216586111593772754676187165428235645138459735224553656135861457887618277696252659541816412615122645736566141774415258486214684979466769416927153847543225449784441751934788947877516131735921373526375576595987156557583181362569594843111173993225796253292178594346615267487355473236369917959543839181624327697882462577461413152526295491887361914423565759298858415325771295238342331687764847318983931981932317377839451753933873886295576754437149419168715144223111416122976323128453813462222989149846381811731118354831317726174783662141171727526638451123388869862771296116621873868929998955668416249892988285758329565318371615882342742948528311627583851542842319522679191243698544689374363557779195596255183416652235168498856636381962538284571128876228759117942568857611963243964235823649381273673647867919655357455932452144337585695171134561132675466514523936943551136594734419371897518833931833942849572741533651859894829262612372193911751331171693528826245975579947787673273742641566161255848333381113337622237233896327314113159399315928323861734634993923919533132238154834524374685111336656962486327267898267325859365461547447332927266879572438838758672135711166531129713436345361146391719569843688158912245226912884198136153871321651853535163528233848288819879975778292316692224228427939134853253122636932765298264661758338435425988152263132572829628948923961321133351339193562119259297342636595423632146456642858742757493915749449653755685178855724462337182949456627651317664299177948278428395648959525466318726911668772645234445899769596334687563359828185735685525336965141696153163465886682357716482924788531832835244985553327518791125544252156354215954752885236723471812819616331981113346711295454633572452134183942154482928486344737839991191295393138636159978882463438347311175635147415535318272861742243547158685624146989361675145699115553873514899261936489444715946722531433349267972571598913799873849386595928151842462354397623732768955996381781713317272436798368735546787516745662323666927459194611756131848627193735599382114136813738612395334394671589564848737819192317928944654824231598829567815611111924669246525592954534651752677776147684347238347311851429436118883321891782129616971244561831337578434829582275214866495367623683864962345845881117954393249732991761745578718147289656935446977621254459611135261711266792545725176768513211614141859575594177853322636492159162231417491192673223139186553134968723546938247649143666892836411219978388516223881573882922663556317289618513738755937315449393735446531292641233155364126262576242249437417756314355551526628949355382467428495499826589525762474918233524216663625567589949756831133857699684891489413271445243698444373967717637257995636248737698252997126528438187449784268592475333546572646397922914636393972628892826852666575535263827487655166524753366233271411886792614211424546242552126443191495339642496588228582238422242949142922272872244697733332953871926189727511953976469612514252944445162428211534511218872118555342121481177583158127235632179137615735478199511649554112387255932651588377743273778653565128617952322815933152267469131273627497378516943383377275845187363745641693393347841824751537278811576483771899777462237845828981926896294918229953429749374563187932966596842819156974474824936529567439769845641541328983289965743611412365639249986984454889952716251643694125672597511935986947868733589825182794899497133844495264277654854294838396227459462181459787332355848242752919855496366363514749491785674248225319277742161256847586632444296494646126499745984962338523644811956894518257528324369421367449474366268493966963572742788592318513893275982519489912234357514636935555598715184445875973261578285242491392842136912475431862552523358822186815455333121918768977924826326932214192987464111593321364617517451783613154429318384344465577457418633257111555223812788391499818971244432992411862185415948721761512366922311321294393965115228663245665976313114225323638129684546451918668267488546912583835121273255212646415528272232341172446741356331736383375326884469957349467499893326257958681365367112244381859352427988614189976393543829881142645561642959675818629898835229644673438727897416644537313136228227277832975551598139479653428739696243955546764645753792524561314827256713157896599936742521115344693814688747145986147235392178485425661199784697244597764625245553354852826776545567533382322346747958491889495221615568764112926411828411512362211492422333692321321929375244134684431493146124123322127673948558758721764192178672558234439722996325873326672479612565154164319464152598168167684481735191889652367343419587293813911621577534563183532114536533186445518778177144983538292249317132885521983915481564397216829188675976518962566274551761929717135565978455329525513943275171824865997962441423585731382365455131661118815554963861162361574594745415655188888343499124219113399333762693796263637956189334213928585436795162254955476224546837555634371533673113217736656143822147589475629718446816895724318264719277111625272624448294795127139242925982575741898961235219896362628152823643655963628967919643948656138292558449792629222917173983731789816181487686949645362936817843274331668498612758519326112669453542276416518664253635879791311652483416926943773843598626797399936395541777163396646218319683736311355746377338125147838396117712874754221925284667544432933514822784387689475218275712617579711624788544129859157213677676314667491669463451386699328947217526163814825521546714328885354274517728414512871436213229879787882713646136889174684252879686515826764797557646427344739587353721752687667173172789694686372387179991287955256281861116941489843454733374527693115959512134129219632526563964199449616342942456763656233735115942891588247739854847374865523664866978444848446528913354434129792926745917686627536516142854183449798483992272772116285178869817355581474266877593832718119141455331895856172976159262219282688423694364651672324424594734152328884237463239665852335381156668844758815821225913636885947937513883945927143579288676951715318984513545569872357244747833488628227539212872769558287528725443469152488613925266159889144726143242236542739494121341436423787356763213121217668465882711999961821163528123729143524764472945345844255265478738176489192945267974114976622193487413155271121657718571383478225373761676328141792321712986457492343264829597365238654986111753988531431633174838843984772673338185836112323229159559898664295895598724483964499367331464548261441925523193256656341574457584523461616327921749333138534437291325214957346154532478414375236247638912356552292193245114587326814726874229472821858215415471232793177167431528188533934252482911182549143625292226214281374432356513789246435562515823594554191676364695612911312422335127552636252781941651916673694562471837755181238537138564184721952557893516373741517992633556867852417257395575251994684193118948942719268845241364533113272727984816388966593874876513693447533128279112655525657553455621612268257122766311717483248949514149356223846493959293748121623113149385228166346955415499881788393749846188936592963828169631759958219331593441378988297648786935992833298264829585553753327225927123329469437126577496262488587315224151912585661113628136672963631645555638277523973274928337435552853568689672549369131694343931132298397672434814252659768146554853734852595165132733254181946573251463279823476477883235297978822949826971376872484516552486731453442912625754143988316124934553222725799633296117221789929582151437253215518518729787984583841895824327294837785513588847774638997394911319566138567751421749799192867169135659119117672411953438964534439792393428662399537249786476728221974989689133797161833876841944245134757666156583373578582961549391391317788552613668258363219694529164786649975569656224381674128917213739246558887923458957993964283997372569876368411572799958564827154959276548412253533223534234576368464347711645997178486282482418945361246276513398372271233653882588564714815335534548693127442155653791718356915627687831349917621634137367728556437371939135452459436238587837197156349355673941338871177914289226686111578975435643241633387198588542457241477158557196958198316972162666367794363517525822464555586135912128693933294495269689169115959491313359315867478121414666421354872231927521718421763283561817756389688199285135114962441988463384192961297584537747724697823725756536315323188956482625225144383741536691334411168233911617994781157198516396241626789273932338794756353675446769998186666916449223437387511333846682392386172923118671345111275288126214964471918547297173914332911931494831411591985636224119235155625837697294448738423311346181424815878874764228913673487789712814966548698323631974814661382715326781783676225329536341257183278673198874237239256562168972835116377723374795673719914935357413594464714971826116852116625338171994886889225653468965941369761217913772395959733491813585599385358572973714747322612114632579635814386557335652329266765542126165667379584751429782539571586861541899582229372439522138986225928792123266469156161513183919486617724544339113633482414395499826265695445333825262354115377182811359161758812381325124242579828562694821454173829135739176578417925925518296393953258968181943199143846517749363552455756137668651855172314929357583224855734232991528429989173636883791434417347696284445572925284444141238957561426634716569937184638812446118715161731491248993687662312698711854715236728426132738366275279583238549928226576267378612974311391446283397634452726727922994449841477198816116891674238489667494819999247417337974438969417494261427987636655147762451552883115965598711487739835181226932376785187117723395159873767241148411849272988211144571475486192753397768376529873572395896628126938478921386593612238759887263143929291855598135626326221924995242172745795633462362423629744556533231521883629348634135756421136574696193976222463935839662421536676119852629992933944117597896524935889683277719489137168314576959855175724282213226177589366353993552753342813391939723478862235268443255132665446819863353591994556531188546312955785656829837596266978873315887333136822217432452947454217799324258512927622489316173116157436631247319569344222131453366522764848272272999633345129945286612277673143439661555868174476712765481216332222348827132255396957415334223276379723126473124833441461516685849566183493242819833517177292752599249263652457725124546686439118124668216421827979457233391563799361571985479194778196559216841395179324827513112514489594822138928853946834643464531326647435763143711926713179121434345198318841435972646942431625476756193695314937698163817314398468637311621247581887582572669779357857558844672536163914488227783983561331176726662761294347411465942198698383645928333244779963896493411328256812462244153753118354259923368571678864249122874745114136822786117323621377214612585665913496779979933861945479835436813622757128752439261575159415719897547284123732977474912227473726412561627825892868362511374941137232424126623293933375122456396332591871814793952291427152893379775688572256766395669414711461326422856817298369663643262937748258662631278972215323412563535182877661458869915423257676191341794429562264967824597667619317127199984246117459119588168475864621644756157656571225269525639853544557782129112365279759842825751968555397667176574852121222977668245668882861652377325975275425458371823343251241511449919191381159328476763652142341419964377311239147367719467686244168981432254436115241612249115467868438461231253854118793222292632547112883524349784828465538561925193382599541814247137592691713766294153518647213996952972722195928643725959923816952771313785369347991264588197246269996943494338375376681863395572943721634457214799819657316222913741228957613554157715413788611878918318464657362349272525289939243159999821893191688115791653513761423235717181936966936935119631869755558197292722798682266178971359744772715171222851277847196755297257439519576479854241264939287944774938335392131566644852849799141443352235943696297252993493488543485866535299348238235622419317128734929493976579722345212824761233741258956264214836484445633369248263391552615528868336523298747371347277863746883742642345536271634618999856563649259545115546752385465813689253681336231966433542568451756144476324729992612839581842419552167129992296556531566523287727727923533226119389343513833494378374238623178112777743155118331515184332859351239313867289114854993787652534611527848341454642663534268257489917124528531494879521939443227193943297713981355218347424321448855195867448926617427381573626665135926793543764968493246283596246867183824423747974447825952194465865812549467421634489373572862985851193184388936126918199965496557511185236721221997943546899619829476374754151212877917734673159919965178165698558882963873272218658534528743458465334136624353686564672844652699944244713425619132595384332253734831837257744833869729695186656353451686131546242761116343364685765328471841168115436229999751564433652159286148411796386719352634113119447188114376359325929543351587715491973652125296814226436165841234745366561855192843912767141245262566252867758995857621634326753815941827492393726128417333555812251148482845619895831918133841931395336823722763894426277759128675164924329883725167123768782582749332899538615791469511656375841873836552318334336998652548941636276221928748739899953681291586381588177173221853934464637761171546659764516565219583376472933431291619935885288553647735315848962444172656156528431851284944632493147817512649836167573875564281341475591843932379142854623874391132641469745719399621549366887773324421331597235698727224791941559536454535315185281973333789716748571227753316299134261882147664132634471249898794732589986935145157312214832159213153429776368312133931994451486756141229118449312522586856763136467461321535713875553652963992938192484127389411115525154787265788218829216237226874499487865973883832373963691357624474238144191924254582857144557872654173178441122519179156259746563716229543875736268174498568662283877721784739196828398248338562396335675968756933347644615153864653449666754843583956844127591147811886858571299241439166843392355352818664697552686556214454123891993731947776587621542417972577889743854375637516562259485755537941866356663161673931311293548536117484498584584442123342938652942645486244956512259585132182351127932327433757317278143946724371672588747251119989871293445211539764582641913225257763889391461355838476854737452376379959712837722839871831868229714438227877551392528173716521888122371697384716692466521229159519953386257758178131213797434357687297592456195166198371539424854231414185185713186135317746577663214828832434169573622536184279478127718788691341154173557769475162584566266374637536173356734639524169192466984663816272795446146472214441354922233422249325595583623257592287319532684281242117963385622292586351389196221874717574659256135475543584438853728655662911275329174575453284845821683589266611512468737456263324376371943295649234161916528466421763512966157134438658365353274371839232948784583637652365261835586613421917291512593126379641571654962436928294644949691533895648335965337782491354741221681241391986172312122735248616266685621167721833445588518763948643963946246194385271159461323715152246815136889939362793613953255715711316919372764318296224211223991865478248848161518463414138943624443311286422518137365674669281963922961282357442127565468355198594845286877746669258481163166261538693978473339715483565581961117478281421961422794521538946718485599791255945111499715149769964879413766428597616733454517338853749459536546762327766187788189193524851385189997663583584998348482999826654114348498212299745532158475678122457215931718489746715131999794967693862499579333223596867292756157885577315243756245958992997381979317732792119261793476348298136518424116721887782953346229136199846364178679471198661529427466259195892464849227273789513732264388917983616311733269879154265567742138724842618782565434649775314651781134752898417246681862661773851538698822311933253669214248341148625817322179971234614523124755732277628769452512615517211615547432496187644426451413459669277976929454753698897119196548985539245164975581189951121679532576433178519925862172329862168569498392434219147161542513973575145821564362319513882264372934289816946613518568946894777337141915879226846633645285754896657119332524546985872256743662666984248212178926865473377228235734826958455839235674771778677182712212115873182333289913339596386868913397497233977136936352565167394624388911782322125917821514211573615774358257523362345294534288949476629251794788674683534938493199453543541465562458811615676662349525337393657187181936671862155635991196199994543898615129336547894836256942463767667278521543896267511159244365314791331836318536223121573174263344253266522933122469778438527327371952528728862523746155276353841963493117678641127918658972171398415252417776473352121912192392494114834694199364582384959471953152492266617956454189768829864947486187774188656334832193571639143627552892912713287377993824973825921637273485714232128418253175213511493366488883366351716249674493597588566422212318353283771349146938752299579871789195749747395517168751361786341596919569443223316187234545845974175246411959434375136235518417591689185912232985121321925489649939961298155325591168619625822467914326422795213644463356121921811169234931877226228854122657989477874877976184197835358967691641999669139639298771341656487927927328598552912711283687152897585211823818765353884579162921247124431919531732259961615351742312663693414923648399626943925974484771537297658356219839162297662582178753355389415914486843787811579612334943799231111925856858481717972121259585267935984682488159999625261863269461433233391779348377149939632971932664542463425713312483888793951263975621559263528794572192624721398433998977381487888623546421354323562765582621892466264739914165132141611891616776314943493181851895297287833698169877574174872866245194623759145262698249276926344155654332519654696525354651639831812135735286611212284322127722177518496293597634321526268344383949223733239655768677183567962874284429528431879431465146155291239354869765679933987552454526522619258236244342717157719472677382644668386715347591627829422213138164992547938613272713275942913412784663574427761128475136137522486262257166145231289848387451587614451428928674364339488331221138548969295612577524273168796234541133558723384194815321324891764671675773748121488324295852821571727374652386274665627738216154964129956591187381214139925264345695189129892566741573352136966241696751822519113672512712981146341378516366873569155123313748841931325291267227442479712834133458947548949516163419226611399996817812692314545679233311429756617147929841923293332515631569916221551249894959691494195898148497126364799582511483861747438796937621315532617335586512146762881363452143718377257626368116243675555378248649912183728941558226465791867349336156113463857696367568173895758887786884514917143988691965557447413261567899386725279812141234127991152126211472258786968577476358248498364318874991891936365913713348969144265113947425273635823411621765729479969272421278462935333945569316538925786217374768383529819983711892819111842649779933269361175798292679185278627556231292986186247355386611449938393831437238328674151737523877131994912685372668845182158939978531194499865291697643861524875913653769131657226131551934585811422557816584296137378933928681577348715929481314327722867382791816412216144241328348146364925578373489926654618712537626147896236342299527128864363263117334939989318996145382217319357673337164131553689947765653639449916884639832356325363712231736812134879732355391585211921442375755223996287411427848198163489698735971616345644668421179211292334417698954499185365193484393658165758574635874798367134823849291996757388742819597338187136145164572198484671367581546853543112328263333842617123143973114428885973837328174698817833582852932246293213743176792769933721131494762421234133535654734482346975866894565966971837279789655324265282431112984495636817431517398323314167422573418553235543367469762886914679564344144276386951912866634256252198795291287886922468833316575352925867212691933947492329674565786847679929853338466123195358751534139352425226146234115231617456897213627151586973547521784863781998797227783881331839883713425865839298597493718858384312137882753167199599346232628784952132855474936272738948542824175132835843214549214153424115424243844941215775274554627114524723455785218497589546493233531991726961467828997863234244819561356259232355229674573853352783289461353837567879482377918833425467577351119428948521836325746258259112225976364187413691758169691776183495538192461345439813647382123172712469544683257864847441838481282676681646325468916443642535742432427549395571168366833439837429546147211562127812831516366996826285511131631874614313773566841182973334174965758945912586639138422583486528256954279677353181269267346446482143734878479377241122155671957112945219821766313279678695219152733418425339559448428818552161434996811286676171896173465562977673145583419394742346245128273664657157346477186757821418577813412249767438889142549736444327111145326754369566826838175983899964668424316316144512219784599344272627341973233143831483587373814766582838897993178198438762976491311577255323415321726972749175773516549543436449378444925729954547122287287181429745196992373553433137948269699661193839751433386939225142488124423829435245866691552344385171977636682572817426427767642733929533542564273867147871431696459954351822325733821753424995999679535515138126916365752825449761886151651294335425975146414469412875769345766138573811541894495256357561245682847229334965133216953655753816115242688178256976497535969811264292638381895285481438493376395855239275199211218658644277597553586523272667727163383115384241915272673196751387281284416655526393147244369373198879132761115389428386447711698424951115981635687356322126159923128858766462842763427872139931124962347811679838411787375216299157579889618477482876147733318276641397386511889764338872998736282738932642811736133588275648221892929583239516717663973518429151372767559155457478787318571311493914874346926581142559233826546644529797422128851287143797487814328272179962142767938842752982767495325726367128649715342778363311171921337525763898895711292661788814944788429179969248641992385341235794767273831691589386228385168736948355844726556961569681679951985424381775886888699383434325416468532723756793995376437317886359279221273231345898969859588715812785344293939519374252718196847272535868981278293529772224821343921842274322112863497263258517968614627714595775112638341685755414479946266265329861914267956313712381216128974217672835669211147521772316193326298921525322153329754596643673169118813658763143972235529746657396399152833811319521991558769899832584447161654731787365742543656475386973551271425214245482258641485483264287279918186349383117684433475734443274237268195177871766333261732761321141962763894663146811639437762662548696214467624532954496753391343364341832553322254373884817234189185317785219594717286451785186983568681667615745938213439611454276535767974344511553347386561132852591933682151922262424336821468439189377919144236859254214648928875325374914536158412338841764893313228979342961738514962595891512232951986954959132213663918414989989714695987379184982887855451114938515547636546743173439583575656156965226212228376476438235232268677426274334869728316115521421234547728684485192889814545461293295749595148338124542879357583223195596518932722629651811493156448331839418761661625267875243744842143784592249369543492974219789981211855535868213537376795811925471684335988161251924148394967528967147556177359582221394176666654242426392883158883234172126376198768362827525313978762334373535648476189228656562772359842219122416329559477818151121712814739346393924129393518682615863555862455791336822178581339425222418642556835592549926744525912329739585516837925285431616253454341427581375324632497983678289467662166569758516861899414842475933868226532611952356357226998171739875689652565843154973224142765266225359871714671125617568383445142545813255797381122919463212113575367522235246373362386348324268991967714548333725693522419876588289779268925329728139186712864292379163737379627982242721551
93371622637235999598837646891856233878793393766617418157128267232748118447692287887596693675363343931778262587183864316866182214458175334945168818877839289224473668715928793133137353625166371943643517752464615344281131812867578437391113816467994579416856346936742983762487867561943233427998543556151333693698713324128793424933924899451317481891116659983597552636383329342527587769566712833736169528646158671397951721632648514782453727844211994395476352274653632939844937174658593888174973833628837317468397158243676228191319537968292531866299351553366312972733238899426473458756585461491677735526796886638154758653963937449248175449866249159379372319598957765967966497163599541481249372984147155885453862996363123764841718915684522292164528927477464679967428239952535684699936267938934978221716272761152447432449617145765552647149767993577761196276688385763867737877584725737987489596951849796457826723159871693126171789685745194374884145216726389515931863382839217487871917277768676775378767264359788359789881931829159433623531145621837694151375726687933175321888467148237976739441314566694617142558495225869882718982892957743845551866992982584271669599156449948814934214147262337366337987555235118719763965166836774891298848534956262721191919226851953179971387165488189969932186255866811518351175596589968655264678996598449213563957261326293826949384932492647667298173512584244273711585639664939387998772258458997956171913357763334764968244189425231192898179947995133184565433782468444346541932537441998938386569172967178486153216528928556445276576728551873831484285865535246183241119398267867565479236988145135876322991931749638264724194887986229534245595458644946649534374838293364592143969613745462552557196959759451655546916993116953773934596397981761639678316526914487798535892963569581969975128113745893189548393634964338351798362387417128619293596984529665449614497872478712136393178121564621986683651695521327249228231117734129613315822589518936157717796676367777127885215989842633223685913374976818343592273236534877619196994977781924599541487722969664863519932697973355195321169399156621323845963771855768996449236282833375631618617856489125284418473988825835382947695149741387279944872997591329865137432684213351884617638412563529331993553969978648794921989997392351159692719141617453126346185686287147618273262827866484965562386574179881791799659267172763278978579952834599658481468637918138962244232197975448466942668556219328967427141937718198761767676824233387547258942974264629418248469916827691284156836137577626911168839861624995935962974927481615367489979569516525118232898971376936493733893221937397739332649682629318419356871579231712798921767998118748812296555821911421871469195835187423296872639339385866764964993484488855858239696923868722958661793285742447155444293428463938442966154346357534943811729481672265514935912993956148962316457884477812877563996128583656175829888692776183112855294445495917128869918389912797764413875438993399468138676473845164399941784515271668479124588346679714861749895929133858241946445913858239556493692147875849185861371744276242582527492268814567373557131916484769197783689617793597437873673899246479969574146973517956949728845298378324662931162567858687531185264911959395881487465675868979997415916745657478734316998287654178817271858713761926361265361955177168496242548122472747978991425982248572677748699285587234343325279176715686881767268578915716572938411879182442765472444729149915977543358149238598961417772422331521786223483176779291445727168125855256283923982965637568165827921488185194539371956428149422565574647522521819899854876873616519792296658541173418221133892938759189144826263821988926786515181557344599192396529553121867727156989198771638767367486849979979971746659857953877186687434777628634887488843826321735978892294187837786816835721676225619564291541185295374994961311737589927484538423577112454616724985398197653785866881729169633872385548122398694448739815487167439686763761315951259794524249335874925482648622669616466481789667689237543614969996797624816783245248868527717327793878611323172446538939413653529761583454923997596614327316877992242437383354837885499548796894317552969398682292216331185272953796981738218259124444827415473564757962984772975644816267616716367528192117513855623763475693344118612358262912357963966184978879254571316374745917552955927644141877278763633973592422564192825751568411195988395295545926148737264776874949132454265137997368916293782168836225768713223376641697618851738545996358731577671677947191436912435187231124292273131566755234634414996424445229821417866938126932659487793197763789254424236988882985747775538261714495759222271424535767446427986464119426194959339528582197923559245292599946578694781799117918211646298239138362174312995836766587896595369357457718786937179577254667697386845476933891484278112661663997323151716947443131932879564186846758896436879174568477581518784168378189979395384324799677245784749168844946786586736865243455915446684539431995612626388551315527777463326813136623782614637743962439825315835838564587617942543447525917537457623775469873844899128691561489525284846616845119444616889822617121796695637955335949794973964613833184172876838122734855475267163636715872529712645176816292695422998881728293114245994596882143258178553274244246587657411389335213357599789629248134864974543857866556856459197437151913942383575941858422152522256681921327474623416986975859639667146597732363967676719265187196676413377244654993669194678245792991719872595929514748453497959536561767158714936661222918243761661827714596399718337712291556227285998865457937331668784465375833281759216262985478587358617572655465345145959367159932527799521361388664719624552352956785479113637343514789653865932584417289193931325656886728399528134931939672798239291191756724178617215964669416436376247152258722455315675728783643296497386966969174811584335699453134181145955944949888651784346537991952331118126349618399514111645629939323522298327275144165717325165974922782791572222314647675612269761293244561276886915886838547423212963688319493529345897255753544987299724989763374586962689823761453611152131892868111957131564426478958857753879554618998917432334718247749193679299399212593414845698223328481897857576173148242321271932818672943525669819877378569373133735499939563611875687837889148679659882793377692824176737528597317941542643756892191117411379349573381356643555641151991663692429937992185799361988462821269385964695643724235379778752724197916465244147737379562991199795956211538726434348545315452973378628971512377857414683868766864378946558737128349664217677967514881234524219284391568762764786463738833716744872745738244546998321231129997645162883777618857117132492322324525545919838993223216696435955682781616348177966453695882834726679298484521775417248223383191511398593732717594298167487888194589376739159988491931977541596271313537541976716431547474412234141947495977954928591931678281599471652673668778992871122595545134652695428638426422834855855714488151492483654547242225683866523562293414558584591723547574294855963398956393876971941232948479693977293949473224513215511243829338585236119537153484932628154396968757279112779118668529277376229188216385317273356171514515221763771626796423125174923266176719311744938491983398781247199124464356561266811149844935944138282477767535515313277796567359878124739316942214354261811249549687964886118657626268299532457952689274696494136226199238561756463695997965821479635958573541469193617229346252274112461378795761181719252988528321573295562959684496677665589545722434497941745579223574458648761113182751811297349523368467926949296644586677678361245566469297458338367338839791799936778112226199856624769446477371124452154613792679667183928947457279755644228621387491863349638511694497844668528542328873989145325762666942977775666377822736939757288183865997692454277946683856862945828374943912352357696152365167935789917145423519847715155723215728553187925233157942397724315975154418361824936399288217797471368343437429548851551277172348969556964159556332684811613146455546834933761186385587628912938785151642349378241558716356498269514465447653443282658899847587415689494648276995783937829783192986613522497649655138534763733617877817275949862845898989781255136179857458932499577639124656331597596826742911244374465525878887256393312753529441183385933759783775832489483876244435997911113374673793335568454145661819974899595654462597941386173298735823781124598486614476571962787191818496991174375745871521112428341935549381253259581397938833789484587249131276518558446171187377174489962789577557174632297463399153519264558875531914399364962999995176777941613898635579658727427128432243868863431442977994514535963467385676351162525361535993991913879291361117591941133654873899432612357947239947216727285422847894763192416645871272477436621142771271829463295846958377838675518662337119729745849256261425619494391111157181397229694225897792173588135239187986747595344995238241469829927381871228669395263769717938484815554837155623176658365691188449758445371725982662144379972544672731644623866999311396668792252167725323652283935844292537634669476967371352682694278235145151611354338541681871476577552822525665341816891961445422361958857254874559118494431649843828871779685792826692726475446427669879897299132432882558525574392594322223294589915478963933878614887846143716682787534455252744846744642716549515595959929663778137778115993825277454869234253363939671396169533228257996618837895282394278784619826689644465798446741657648958115598843962834248263355932888133719984757979243946617596798845965619697915272129569114392449336916372667453713149284858499572857961962442299639278881957529264961732876944421641394141982489418276884184831954555145239938146629185317946535893924773636427989946925789393334429723819417891958568371189529353546631572585313774821796482641214247153237728993819556582759662589617229764688689677928543643668691256787762597789586577135277173453182971496655483618553386735613521225759259334946712452761177938659263245939484211668554489279327338892864775621863424681779739654319174193213397514892464847964126385283459659652998919768398527958751179359493134145319453111341515483385483479955698236392988953998534515774618579478237288649247268761734794465948574683638997284898178714926534371571572735471416767659458325363116566218675685397123794892667497165438973811679387653297941464452798889129629595277339424589681725467996976935497828236356988827853954422149887957771971857843559475676554167815254799128387951757967844435945255211179785292984458937386924944399888629913991796243321616334476535998817189998614316517866466731216333989618374958625589984518616496341547276321777884769997368566188422236356748213769125372534426968494328858438237517558773173554649221538839583755371274356515724238886154485772729583515248465961635291863685444693462391771187596135484375892356179372961711956584276947743727898675359614968639155163272291253383489334529915891779187914485619666277146553858355599344389679256235242653572867696856517444418561966169318547313532858177667387194331471879498798366569737847236978287131524612217857641372274646866532529254496172716857675371571936434735277687553452871226441137182662981467422199171782649272887435467222776184196842772852279384183713126265472642758233865916621874446445943955434313235673718768143482267782815445211376545416923988682448653286779912116476888383828799381418326597976461365325521994733214479566952955582442274587969726193484879216484198476655374977971436837893377125465476217461367759687246465693577262965793451494783958275381345298275337138749528861277524754614517557687625455645442991337394485899437339761338244719731236379879592719996638172875861971321578661967247851495679639837658283821711794637661833271598516943175873951661487629551516865298659539868416293875443724576732999875882525344679556859896787455985273189264754389364969889873851854148993826629947514413188937716262757711699779514162493349715615788834248575149168953627775897159717918881386665436199558727444264732414114548618413922282975886137656577938942872141441957675385237821287133559297418757813876288562399997612857959285428313943246143865463555466297963749778936132446887489296613561335941695285855674595874263924789956687392449316897929669886955543612281257948791353361349842287339731615276129898247695898665289848625937751742187798189359399947946977656998678966184418538877231562721951169894577495251716934339936869816116158617196473638497625937773673875966615824475927892195136558637171578685768396615295232529295582686945367659828418964112549565145355146126445342443348592794794583881286841324475591314725833219916876999123184228697943697521616759181953193521278688435486487195763685292177773997976424751326936288145278984995483829714682737528172855461181936541846967599952364353952952999154638727421677776154527336159234974229529826385751711584743471689979397718891568964491233997436148292521963779784168583147159268653771485267493183553476448914232932889178166713757653949937584393973699995685581585477279477471829152635219474317333867761415366596253987553343134561559994183831445181975847432728594621922437311698767744399496922385259825836933357532717833539138583417696119116158666272299326783692877858793873241372188418897174782982449357879233929327873285216323825862689435749576296991646814651832992861549888986495153442992364977827875922743385169622582786258182256839955699747692465285489938212692487276636434769536811641967382157443433495671829599189644737398911719854551148815736817229992969587765391414964627683636566514384753578317243852358229943377448843956184895676934484114526881913975219961322333872795876237218735448366868295527544219572363631385614929282756312767888479872917875889733362689272282926357432143858834999867344661934292957599769971577178498786561678879189968394527991174994859661654512621282961654931693567844492434892148157819616293436692817567171131141832462197728594719281655767497564543443215234558469145421167974437553175877291736888632513724579594527572751138128524268929734563879464895372813216188897472966354373377518666635985381595249538218118499161738256281918681994849418349993995582548557824551199234846913618537775913683365494416442431925833386695575554463349729181967674166872842662495354353535391651421371595243191335537631736514936323586325781658786188718983955842312847869112128336671531638676871365445594387683696831511639826896945645393189833831188957668555729139756279255354987683233219284376249899675226555854915925239555344713743552937377367353988926131571167279572392413762166454375217984744821161796296457617454678874788965489267818293763779222356693111361749577557523664566256574654778878692669254836192948373341558939727461971884655729371754968599812715186641198758856942653267194851842549869676359427975667356998871834848939968996859763342427686249111514869252838135345939321846776322525877721616427598639256185264818482681528747781411458953878957159934588659936765498983245733956491682561179448788583668546313797252392776883791486869111595479561638514293726816539132991533596781874496392849632823687668693178536293887197992668899255666361618456361638743121248318166495164514415955557629497161496743128359489853947877482991664952856343886977693758859631985996466476537315156276824434546822755985666734496226363481536173946679381894126784315313851887686857132216661325252633515521826158331297542277458589582979315478755293182416727715319618483877538769146899152558122716697554186896279375518818838835173751243769267611472158999761676531315296722833391496955148414636627288676198712267451878623787312799632163277927985683964584139783451156426891838782126577296826338889756125795733119689977857548589154684884754641512126338438257348386917758341936267551381434984791355119737419845336689636146399716651496597199645179362587513654594491578245141414956726377524432543355888543636485548669871743682167235642988147161493654381398375247699517886953314517597284699439998261124639912386443476271769225992162397517345489984649983767361875661563129275344299191195873144955322432366776789511717171237589742444978543165758617772573159433343585659783695333165589968792849758895289399674996998596863246557992765895657718479826395312973317334875619699584931985287719572155415534629691119598676596645347568792472238156488191147686628161585552634727377218469175167698433224244849999948757581852829887747413847274477975799967219333777289691951561437546356878866798133518218992655438439595417881171473929871191886765469156548718215698393892979555838982658447766716216747112484996936939178863993487586781962888255693551448937824194414483697263887827837387169227259976798959276116482717738458941738412794392723499561632561355243864256329723197546489575644269549343611788964729319873487233299883685985683988733675649975255678584592111585174898815428678479528183697399652356621849237314698757395557922932774894859572142982929997966735299193185159669569556855696425958432627682491529515366299583978732855698333618355952119157899759891716841624858657576327774996753546466598156978743631784411656535991573821838881672998113618769396669442146961473397572896943324191473574312349374888578693546993719182363913931434574247155246543274756773743556129219888527394611519721511697687357166848741736349467848236354952944798267858844643968488755765141174967326475798439239939729975991212359567574848216561596972878668914186616388848895249591831645173563973698937814495279675899854362752272239538262988291837155869183721987561165259468418234388868516554675228221556622744748527558552772774725974621137969394975494315467692149147784923159973952925237568915935888239998444628418595337777933357445475292748371869228754529889149692279994939299194151692421239656461765696898255525576375195384955282729227649594975736943769549694381646849986555469458729246978639214219744792351141996661863964725877241434696854595153815971981516915696697694713829919456568141153325392285668843396936859973473249623863848633186274523174922259282948369971991187511325368634766786751185712798945822359847392797959333576181457462849827491521552252625414563612628369959712431886379191912359358299515816542791125541674494457586929277679643559793248614856156342679246546488224298741334479638569874249318376737863133418245272626396872973781991891157728945643885468497749755586437961181119396926836116535666269892489181141862468813697948889883318852469571928885167494115231439236866594758687396946779712633173288416339347278192314924645798145397179159815478799587438756855766424299394688858624917149217576489571469377438673784137737713418691889116494423777687482314465979871526975831743247995384713845929456818837882811351672848543246638951561998176439538471699971973477641112336817813367383991865327412614877729215387366152872967466179425238457851755183392711479379741496818365195211881948517189951526659269125961838111943574444839476466598278127483583653382621671674728122446858185647383919456196239498924627994131575938213594736749249453691477925741312798193323374615994642984315948237859767915235562698917595276531955224648536851895786395889957787536333293347623681555374975868895351359995368117839589425758539777966578682915474559794666626827927987829448558869719776887663727151953451491637414126357468457839814594725872384869537588446146942893677171592145275156935967111288751158479457497147499853627228534763995485898985416544385891236534255974245645666962918467755315969924595636937784118596418496418263661626443756212353745256569969862386961569653162815395463622446572274729959365423174529884174952943465592936525181259959361317643967646815815298264312498584547429241565339642111976568671872979888729937699759156763891645981321926765992917144577133348598815579159546939243911797779378969465477938294114815648414652243458116382432125554548481771326858267111436343578224918443229411448461138819194578949413986154113483337254247834887923415299889166781234735381365868712365462271322869544513989529946796391332635691295364951931521584886886991519851555473861673796864178677591618917542578273968193398472815837786739712166926377787562392317776993554996689354498823299733865486545358723537415565146771145181585794738691978889993776523834925776172789267417121574372552263119839828247519285738295379359364714414565361488933279597987622774381483893768597881543985624662437511152697771548794215728725679569567547456985269635425438758914399663622929984766911495312935814952975341134671616554744567133451768464721168949893859831589734838247687652887846381166264124832934672658633848171777231844844276637773824466914526775153611361349474883292984189119566393454765955414278565794635661598872271758872614989289938486712436311939362477656546334222346767132554877485183718518371881769968627511757594717584371261837522359668259965254599361836955589831916682116297112691134228235816159183888978549699999633781555149541192253342599715267766991599828834953748919696512778142856679811887552375761336543341667953867422721496817195875718295683154724767531496281921626551387693747834534368473181287546155936463885447331544491299129581479969196548984228528652527147435397884378156969473335617544227682653267374558786325271245671573747994961148974711394626322725482567287684357498533866771243436621539776721735445379361683424178887266282338986272615432658699214276777426627459744123359572381629545198787782941159698671711475288272343532882885574977623899387417155875893742226384223716881221367912897931678882873473276519964516191831853582549451795873883426284747521785528113676177844767534181693327471735591944637571618936252854463719483184988252559683281894512668671256492761989589891282716565881195661813155254469391767634588291978795738972118498348928452258383932597749486583321831792294269711717476184912493265136767313248738591283839464465639558968139865182457633911699185448958364594679247461867473872872857615145525484247836546881834179519177626656489333199591422649471966973715842814977918297982664952969881288169595411361539988551845511874246251861257993747914396326495652945198657725643756639672426654538647862441968591495639621857221783597821846632339559157435635416199338424374177387965642932773481441799329329446796424748493782795446787876297735468399589632756451592173998849453276192844142333915583693377297224874636477495979891815978912153118258958482497279258312165551832973561484858959912996358785266947548151271376634161112514962958956834664814486268496551368699645617548593818636521972781528842541371861229839363187575153891844679741463446675692866223372715983314935718831894651492159726745699256655185834462641856194554549368537646232535999464365249113614896837917227788119197432995211667312596319876753789868492266722396361341686239679147989613253899779936369171151216684725785192553173917959596377283734728124958216129498198144137516173339793159156565877992141114632397111662615565795948746438857541897493689784815413553267484252557957388545972487236656117548952971787719637414888281235639144832628328594691325967735211531375178275566834373237323848166968124131328635763856576223169721852135598119763252681347963397828688868576118692551917776488292517414482798363619155162551259519868916443649751848233959351395413534215151656759657628482537684825597498866211928346155567157963599692777885118249415926937582925818872342621244975272166619311324355416773497676875873961816243122144727586347483713829747337269428256361244793732316944962911561133734166317118784261429233447468288984858224416372294985985189834997162294981177897765618441821876976484819537674984293691668219775468197716917122113328776381884551475472938248226145152928431235478893342672281127122145838148626296282652582932649995423413797985732392779487219358181961614552236919785519321344891227379563454337631755829874714889979166452119952552714432669981681438296758652784387968339555281663768929818331277786743494775565956877719546764829759638958975162132393321159961932964675876929384956479517988964238899739258152652411139536353697348645448175946839234288462172679297122792214346987186746546672486385942572551129755859241877764359319749735568785761987161671258752577866598645372965596969876423722452122929828158591536423959341296818156665247839878824724873817752879783993484186576147245213929483562419374279458629618816125145324744868779762468286783944685881398744539864275322122199159684637293554873318396723137466796167951888537528775815133615158195652813613467266494473246363985748846399966761791521381966354277382391143876236567983367289937731678927878569526435552321435715572991474479165126453694966621966924824957564653934584757837198617299655873652664746391823898882282651761785731661574134813715966229229249987924419532819868485486435363885828589467364254463863242277738698898831191871331261272188148486282339119955832995857315121965389371115782296735673292619941552575124899792697328938239558197844178786121536641174182542223664529633849237772888736263392727967974321888392879217751741953765798432595349843192126522789839859856697821267488395374475392579844557226762361997692558593357136396144375555479529471838897327247188274789987352496241594711934139982484987157955293926764632833499318979844114835538777787571133569836178986248479652834959637818874685373618899199662599771948869615392576487985895291181866817568749191317448618587915662817468734777196675897669622778219559557871696744429957994133171349113423723447462283387683811545681412768636821666544737597696283274581159168171892537237596998911359877776834621663557417382566989328196215689387655993667496963922727926165638989899959284975632667613181578742178773445757358248523457748948465996284927571457384994955958397457894338474232216345879879725585139553952673566137268992172365494749478549412759381246197629673948891824837253784333323553424273773157621419146642482196599965989875478137488272419749153793649519921548262976463811418134963139957928721467351945741783958885443242338122843196525769146993377264871918666949798924389834499791834365896928331968186316127772745441386959934396792633424969457174288883623378453747572257562238536833931652982819488775946998857422876128952949218838657979142165363564848263294478734881332932149279357641268411445887458497954783282214499325619673878338716868358981659356832925885624753233489718253694984356441733813649851959568479566438286617891846692697432691176256538438559142745992978549635239765479452714678935578172532977827486576574986521894939134371983213545969638643997596671819533468711291984557986329483828995441977593255219687886972381399187829571394244292746886915694521545478259942588715726227325581289247339413224714144174197639973315677729416148533295186997932116955797964157833443144396157565923926749431884718688125192163352946277897829118926863525723376799946327853946991863592622155324946412354886428876693995346777212858891869195688293966961971843937249645567711594612618292841752742375617475825783942276824567676946838564643835456997888866579882277865493823749678299511569198511748969888657853314245747993382671132173793379475161848289378546677997884151399944248878425227748874189873992188647881776439594535664764299991465834456286218579837666561423349285898426379397667993513316778254551386192411394815719354473877435198226146974589659677189622385783997168849263296571427789771443977519114683467435265113121383598181948148974667787327879544732238588832997288344812821298682773334135929634745672584144568745827965668815286849454719213512979431969898271885655538494752318781238558385444237935971732435154144288682791928865211463782978996763318918668367381289639678659717936397116268424415517554438832413855645689728479842316211861268899652543574568619324962625252897496718299165417994149729541635894473231768165887718884144849374881599969427477359124479193857474155524598891572146538317439966798859346592932995976177238117182334272558349956548283926977257642119551948834336481796527587155446529172561745258766596893477871664748574257561245679711326554429916744761172597133333593178978589665728872589315385491448357564758863691249488415559724583715697599674941563746225317161569425967265193788596735136165855163921366567899354156675858431394391728677287759754559346688978668399936694879469731169341175792639697256568498268661239436955662498789477792916534849652119527423829484527473558439317679894856816882589416457525793451268697561538699616356267689764411954286255449879189141746958766699494994595454326519568163789282787668698818859573174336477565149619435958387433629114946981457586916189828868823929759369688414635497665597518323355574358468374953812551194989454561699143823744978192118812393893779462881636221739877291165726321746598433888921733713914769411347351451195789167752162985227588957268911159787275434313684616548591297765425546846117593812536127644265152883861725243981137767275857557939569655896348439639611747229453633969247449664486111465582617716589387144732193931257865719539467715863824161594642922336452866433296229634941291578149859298984373834531944456659898456344496633884981184678628699369836491645325662799379444244222285731888895411649622893636984698689988216683614933743829221548898222359421872783497288121247859361214643131616771738821787786968842944496353778586667974764387695446828391751694581892371874946748372719467459322989348361449432443142295777276887738584886628457712989457936996755865633838347998347427551515414946563355189737657134552336461644349876893119827677927414771897986849972171548185557867984571281867866869871471586166877268589467857515933464858641934811517919484692844258438186349872714466862492842639799561497834791153572418578677964944618523959187386155453137547787638162399839469765284327684814899564384272744457912628599478974774494113546281629686149843498436297345298758772863895116494827619696128456177796598816893416687673468688173467623146814631338257496433174548427838243219888741134748729741927596556177953143774271853134763239153146423643384834656947413398178999527769956876214294111184972882977945895297867213921867388667574913893435195218881249816761556841937158477713524684566446648885886555285341338378785198428485926886217988866593338939429387176934581648646292168323729527498467325915126319565548611716949317784144685544226177272737386639657631788856264896755998448397539656584692417239365871269352874671977962176798666797875761253193952348853539657723321569659899417355729662692146193339881662116982964851951527326787915216234118143661343844566415872131735931385774663189344312622742188581297987253754389593337959388274152481574798817656333834576947315156754626446718479823743276335934934552221939285432869159558625524791276783653963916419674825253495583668597111316928399892814337147314849723585997698219227734679626518929426933472582719797498383546545894793115819355562879827857392639751434325797476786248537739233793799999969559883299384147725487159866998266945964427987467448918115865298571456456992261487321557786187721542272742758845945748526519427231259879757716325615294955967766929845735319168685451287633959686374812534354578938962864821152811398949577867172566395548443692745275299867647132664682897167223281568818162268488456166862667572315887678797546929549276621666197873248198127356759449273824489177387421598852618963776244112247546737259518148769492594697137876487364275493919146116542193199257915893677836462392293894976885814124325556366236485789988248747648171496334554735984714492979342384965397918546917347778674959413115691319929652351692239515539647997437348318622146477977886597457946293658256886328213149685181416798818893342458638443756869127678498894191725165513994873538879288414882312779693755837539196267591126628489367347937451659191717189431548595974181664579685574359987287562761629825663958668818271788698511513187879554536966184415793518882512884819633674223982681158562627392981198693665154491714533324425779135865677494836734757723168185593597597594238929111283639732527576358662295295235881343438974384712825337684484365183589954778884396829181173434697812172469177543627751686234566379637212976472511119657893523285318332796722153599934367219199653548985882123493843972369445794515234419313581941663439695974383845946843847298189634314378997826899222347177917982973384999865179166276466473352282165771288188696115388859272637637893693316737711542492581233781286464577972633684324747679292816141188396275477226152573219626991117415618963518568614654816471967263164594286495654492745335893349976672164938134446565965224417564664681777393637962782466845192826765984845388595747316577546287431984615953938833181462153388693344951843238723174357629796766629746658268379498924231437746961175622993486189746242243118419856561654256719498763284759561248167576492948191676258789615833963473997942374268163673612284873141213892757891227879316529583471964814615557173479971238592787817729411362492156341814388498851892864333776469838763568482992777679644166953226169948398883197818433798859163825321279489266271829789857866187392654182943559985729486661985686432537539549875617983218398865673552559445213556418958694163637937623698688475549247676918965812688644261945357356173721619324244859191748381826936583283556574128142992434611114417877261735139512844969527956586786828296774714688758819912663391673837775687213143867578611999216949278872375273268895184571457134772353631313491226251295138663942359525869293988294424958288941184976376184379733231716548883999885366376889513935184391886881956115854148139361391539746575118932857722925459663329913289923448675263783145852738613757799674115113585134654835758583239884681821933216593817888634385289374477356965167856153836363475975359763898874937293866148275154279456165467227556457597339393234199895179997258782944111782595587729115579896538816987738297397298985695365119929316414613851787547996338526727326578757232473859864772925217655194268579555542968416575481919589837894932494855716249879449677811548971366896239512437217461315869141829867285734348187672586734698474966743927256928712788486898866522211541441659895839464215284366681978841484358618389418236151914615236323248519656492484318278189784653897653776897198765458388573748145781797934951668389936386287162151683257398629983665345755811678883722564599482915526759892754428157691477454814484459662775246785582983398962421918999246449768554966656441184576992536672964455899981581922927739132769959587978941321796542861621238571623525144833665249699896291934864156452865675666933653664182926297411681353542177693314164641649849593656521721397363589932256373843619867265985569594385963223359643169444738985671885562695617693186286593437764459877312946678366761882835126855347339712844414379847856683694145995486154771971296573791992461983526576626723837796345619958242421877156212957993362347187592538147697175267765944272675596924575714886462398774729811895456993885753779873892214348683811983555193627898971757573458796948916839684798475144782543625551241567488471762529166124312614173485958442224897763376861852717854693532427685914952833762194778778413415151542738464915295158638628939598155267391654772231514218715923596187187259316521731724661633399253912542695253528854493261559489511993679167371111271516558231964494569315397136596872453749138941624296515982161217564548273159125858794118366932826214979384514795899521567597429259872143758615941447479117759927278831438838169369773522556669948216581629672936467277743843961445829479564111273674376854812734437563592312867514737639829177677847645879374839864941662968137656599879351329392728768694836325348224196873864697828979319256677714291914912326676572938994425259893841561517224482524537778864551548749391478576638195933988867469179682772278883524736665381245679898544665213182749894863978284492633487623132282519345897117874875273297784145515599764736459799112766951983346675617437729269968217817887439667762179238682456925861582394325385689645151172363742162737144343214989298555955132513749828577348595812597839246332281861314877595138444486256314369586937266459862788199594786796458827374998584989589656826874928974535682557111714218999322644627157257723395126462985378672487731466598784592866718896578268557197833415817343762782842589612743996433969593863568544868872844599284327999871452362568575136482189997872986571191552923124163641891576768411875397999173774892152155285222235133851439665941434491356744699983844426911411582174452353119952417685611277319417474693378734694675893963177435263127763644145726689276541954931898543358389953131977593379811771968578452229934239864791676134838914718922262631859727728462112681423386486325164587748669924535386165481358588798967471211963943889449776332975498925245234451848539888747742451933754789576347551324962654525355191723245315846271883859559854454197129422372863389968548314834778875619951759933417678823758198626789965512615291498546671254825233721356168763412342579175233398796598421393221168438353354665986926638329174818672344748486692615745783858952417675319315836922171526531217936463826971648579921239413346749181265836885111928157353711163277878876655947119235377468791798294117662991648556186319123981766184486391953541764783584161614493716927643567756896628912683364817645195295395728161315834896851523169139478536159398146762437826372537198563146941479589551982585922578521319922875455919847379674186887231185758477377337319178513447394669964126973884138916496448475447628556547521751348898559658375197477278511923782382476395627115748135976622143973752878954179761698361128698918966556893317518443414493982879535485679266319458678242172879795945862499112489672556539382669517284615759691737779275466513638542193969794625641141714579827414217264834268381983999741235234998289694863978517521616998664475427738896161923195161778933788879423224527141775923954534418795391588418452752668414185998978315944561988243736111455446435328676485279276883516861456388632491114573683525311541335966176187957895113338545399226291219444395449942758592445793811116136152927292553677417847798375627968299255784483637355882785972159265839391648523539854351545133468596386689824441646168989895595377615343873552952699222636749952659144534547658565528271795976868711932119378456892811122932712529728557934227429978299119812694154455648195894897995366926887626931432859697364384685165994284836232347159134719927788761392495666297488865953798221335834959581213735358887998616439429523689671846332741174158384177178442956869294929496833685521847856225892426558547388827827969656292558453478977145877438284694423194566966951835666855946337534837172342736943731732698189725434798779297775221518966447943993694895298166147861669293657412298156593351362274234749169277297779311816297769891994591512997976959151189278127118328898437862226128839331897298976867294589543764929911752285645793313926378973133257743689955454884348842961765667671938357957545244573259322932739391316918458555561165987419336456335238715825587953282395448645637928622434316734114853164497832844898991599666124616588287534363513535473286918998857384513458164165934144134796275875117938945563167669923396383356231312177728128686174473288756891736939293965545847894433529582236968357559476216164938444797751427244688659448785632523856715658884284426112443143779716748675542462333429456161872243541814972161383417791991593695373189822493627833256138898471375461348655321136897845134918446537276525746461669865575175269816968599757896826237435986138264146914666177858839844865238231978482129421696575153757561583787927623869843129925126815884741827771134973739784141715131614398528481427667194157958421692846478646239898534562199423967187364633514269681555199646541198526236139663136239751739745163471488153513378168777661695641313835289631974251184526328466917489479222471435792932749453991558688642374987891644424691998597461174795937789699332747969687232129182282778363129326929546478334816789531374949324873188433581669942889272863733425955463867578381861813821656321942624757587524146964359145235126951218397191482138525292881584714619986219985418961623649218418453782473663378462983193245995363995444476792536581265654495659788582824941875665848476116955456992517896546989755221563542737989147678752637318422439637551646124988547175864175558963481497416965365211721366523741145381236311688857927965166932669141889282351467296125782678475974487994797945296176314714817456598856472676256981158816797355426255979687988269658338417718469954878916988892452111674838516541563198562274583392498577125887881983968933939353855958165783836966212216657286941189283366643121655769824612287586755985491546935417631483491743651232615712134262691277996497659949958719534699791461726947458192455751884668585325254127118476636777787248934816934497383868885976123866548962337277515683729611337935784167627746228679173695513999535742939589575424999325132479789956663282542816961635688961894657155353649857423661565154455948281466186859683685956926415444698457331624648498247524876482656918926623861421879636496446855525711961249556157936881624764718179131583955775126972276514968598569363755477654769138242576443855753422594949784576381353462447191649786859998833414862477533416689174798668651169384211946626989864792914698874828338168722682785936846141222447554744492671761753868139527443128113857744143617493255724869124841564374631153331281731959368872959424474326237935692656973222597484826336749358969921527238783511171124976474485968461978172543889383865139181595995748699737724425517425477264446337578299113981649892847316876191454748925359318334444199925588483677337699512896835791776133454715863197324675521317996169218115312389981499487241577967953745284689887854186741459685347524255123448811873988888927858868179186792566653761872593328469939692166925488231339436823268348774738411948544758758456332551785356994253264387263522297184958256627643925712393756198926839278956866861596892923344578472319386192354579831596979547883318694464827164391541877981788512588346853725313382891256574919295978338256825575271878638776439619984761688735348546452613288765878665284794817436932772482662958681549533673811546832446327754897786946415429133241255621139619519496482516591924949689173565615823895379448651799895954996782529563823339533777822286988192567958949887738351649397229295351267379749967228457553677468238222419911289594254789744861162843848181116137987715711478275635886867329114368745988629994848274746824188199421964818385148616117174458543952282796764677792346271554921126837825961956568817726939817575471353859594333926689149474781116956899952987378579769535414867612576526814927412348233158385369488619216979343224127254121275416938878724284564781652168645964167638559695833352454158332525418644768555654581878142757987677844484691866746759766697679746297768839378796875866429767289686858886379124447763791491447318455392788199934648333964182878496132658411855739295396866778179278381891473595474712959287784891885161823357728398482878497594159739388385728892725664999522274795833142626978386697998552922647963349114198853267253917992958654213688282988493555317416325147935237659858834326221356585486817816985275698477636849652828728663162997769755887144713346717134769232556737179923693271434912746934291677594332542659669986261963857525183143379956962231795888251394382784897335884599999896779612111518394198326956489214285242448377241459927779967463991195799688677938927173569242786479891711596745283694815437463885956636617279424942957413816168759261168869457659829353655257952979144143648388481264864717996668431317699332563763684286857819545317228644323787263229188181677359847949363675552455178329148314526819544157819193768111587727968297726412224985492863482745636236561214138898741418444233511457873189796825881176723883419691824267321249698763457417214879451612793655565576684222373147891798999983982483418389448582219662656288422969646745637648652942516679958113713374866855719613166648461529966795414674816149883533939755464774266289484851236531163459156585824996542945127616655457869494574293194434855874548494815617166767113913151573856165697259414678177774697679798313355697299688125768187159181356619381651595232664624584721384768619954887749814389222613476792117742665321957515634283556924466167352381374867615965587842318445945518988587294643847776271478691667799521179945699757161979566577775697231864217655786552322629132242843247196177498572663863318244889957464197665414588943558257948852486353944959479974755997288574819827669454195919573782994338345127189418638591111133171782649739481863131328986936699581745133639413889814155189921267784129693439179854235979545867523799343332187186915564959876377696888359297635384446863885886532777159345461533789458537744474575894596461846694656944376275933481189673554296316567421665157951173648384655831221512853483183399528847898749724346769366852829453793875874717584413913983779532816277733656346166788872247544187979919283676793785924883322936373899842937491887281435865447276172715988132583876762246399369299282218859776441763869779841626914967826479639329335867981399862667891648266163433197565868474647744925651973395197761811252612851988398347486117232992783146844886928623654849757326578374159186184749949298199285454169877337117683454175583537446165913329195853438356927896199279383883573129693675611856598354392953484869438766344989559179753597525568668248583637389261642983551261313714461277436132311869483755795561164288486528244949734272928962974472396483317994457698445375568834899391514334669436135889373345561256563494736968997715987184196982595165964453569134423123929648879395651714284361658837138972892957379868714757764343863831843646926172353328653344298979382941157769886489712644368775948463952312339795863495777686962655949956958954923652221695953673829322666845868355799433417325548227887333445927287489695712413184366614655169324127343481157532733723549882223635793483194258166718998656813692652839395524986536957128494133538394769127899617511176411346182966658673961764248866613764778248332724955288454264447127377743169919752454989594774386382497554532525112353937851567173265328849418831637226467626396658432791566655899495597713861985847397591983566132974148269889218919134981143616693886945186838266648649146516993368593965853964447871117747867515969762514182472457792647273954968248223673921179779293763841126249532333829861778149613552334348918785127459989125783689384374211362189916876864427441366943341114918722479959672862486848858938972643648815442159799585952762558841218199629851537553821352235269166398897561717589476218751699454267186419326672341888879959596737194797978731747758858556693566248576735439127999421369737273884292563556757334561428194385738912335398896668431364872481222973887851639761479755978661611789466969742853975988325139829245649649835564979941744558943675116787865184678564978756411976572961612595528829799258571624664166995745287669545161896836391526871245765161592823857638532524745619153125419478796192663161179557313397717556468713152929477331846497393151466495718526112375337327818461343343869535839933355319525644288498483377214343777758115141112262444867258291182158384228162771317747387698725898683589335337869978288825834474376432373818374249948732416336485938183688324568199919567682395488825471569531235787418197811137821954352161681936633912119476639414619227287321398348229656687545614891988735839452886678684792347121359891468578372333352944344715365636836659358579237299898718385782618413123524925859846442483495873664355114318829154765733667845989792112939587936281161155481233186299877558653736549295882831425242551862711919389646559125758886732387916936472641298569767342958787662241114213118469446827763171651984811527518169637345842786664523464236226691587899522685218697859468182595284152769111256877213728562838999694982673363387178758936139524581341756764329126329238622199972523617485699179415147644687639385589681344219476128755671714789238631828187577262381863897928991153127749148819574964482672469672444259687787785717172222523128894551175388371624917967476289728312231835358961951892226756777148428948857725366573648929265986559466736167119279878737239476566997216231616517488373822946161299418677983483889999581677922675932917515885435773762562374288552181667798728419553196595888471947214637967893187897587681394395127361139571721439138642988674893147916349348615894278338566959746722557537975324332227461556834318456173691981161514892478843723547814576394174539855791788871275894566896869215569239288691859997712335128487331155716448181217992615311237626275412441348617467676691621388855923248534324724765134549954792788968955187771836366917887763381424595876869773326789972862892725665964823987794514712736721398594638143665726879659349363596297836937415785374913791714863342819444346414471625615831524284121886932958443425776167372488884412458428168826548848166792979518515463817197894439624455673742621667454878362726829652354494383529539152683991448788641538936257116877775828387689818436537912485386352426139847971738653667351582254698153286425976143484329138737775553979549636541515359671426137358266874246791368767246995126893185579138218711689754117433894887957968338219638495653788565116892458684743644738889373794279573591726923355547993593366345888269526448924661857192646536694222457434941787235423238551637213585947814531155773666795975427461667851152687944637874157416816531394231871522471773845117874773994661145985233343744837369791238265742361999127845912457169693625677584368292849433766328529899889424826255351663565842844664514655255744431873784817631599364389343333972912988414816953189936686221852557178976327667151879635113771134722245385729158117778854991946318612619468766651981265433715833119656765314524544953131616326379572282744277479382929264389427173838655947721696894871225227157375663548466931891769627374849494645286715476199746585636665182858287175723778841746665192132547141475118346879896231448886668948971413425681467767532769763366847218585217922461491925429394858475397278759385261991982889226727585998295225564346822868786973898498566753994417911614641794648741899222619569576737915947855668746977261754998118642679886419287872162418915313277443961169163425219285785257744367951618595334412713985823442639223353266721218681998537176232857379892769946563227284554646682321523273738429174562511318458546921439579441863595986942759578711343972615475193865859441297941929392772998611359895874551837677824989796113565694161383884477716995841919135444979115267633391439139147212915664558727415664361362931966121731483427137891971122741277188548959819442226544135289559767242432311754347183249711318977184678394726298142576184974161689962822931747914787916762991167343667238374266784781639988968771171643927353197462989674444959737981743898896317152599616435956695559846358812136538288893827741665248975887119763182322371486628737538885736641538919534776937116169671157366722375579217128917534981635969626613324161738258927722827288697741175736339631178577683829926419832819443168115837259868763598963862188328726148383579924521465494729112375428923937429474551313856562388565278925519721868246289695252615514967799139625488623448713191242168144825619997888388516874432631693324921599994811774167217267598616437611431967777627951827898681681377745488384381637672394117628943173994968345762733384737123415131548946721611617742684176235984147166865358959185463414157648596356975724781712933793767424698749195933782515664215679599237965752652751282859744324894119362561251977952271751675868532722659792128228653562989413217378774671126271955729959551256937118299323873845511688165651439889224847228814467789372729952366145723215796327474491618792499137531674418789625682449562555654173214215982638931187179539845933118378318886743698891582464591196111937728941567764162318576216831543634785676891168728794388286459773864647236978938685862574958883555379898663846217213899998292649328355737568631898679582523727432642948387828251529928957349221167928655968553552429129347911329736799735272865194897175956371532974893751529456951669887514379822549433358879436859182829488245716689792387924136472893911494768141394159298721537942271223882271334854582691126143663131772955619442188418121513272784416112157436747632874535612382721574446932442648468914224893818819347343231228827355581155339633698741297431852558459679116852753913671151411183159912717795259875437187969233715981154295886143589828389264668199869434489485872268889841736892641356192169978126546816721993674679938549763355175493475518463856685311531668195271813333581161617716893994336881374617679854928227598122343397839129624382828389441356816591914893111777438868689961967295142662534163552661928268388471464473973944335196822461933846463334874887874826695239579132221264725356416559139386886447925782985893139767991668222462983293882914516744242688549133662729992423552779559747973374127335123413839936753671819595627853597593182672817231964721438742469476935216472831428411521795443515152834872188899838951383323373163996642252823347683281975713491468254477788172669885134266928722681166141571443899299936641495162386663867873837623648524265793717748471559989512216275848214848388894481667555696431467241814152419962335292656158878183425622918692698435286626617166473968312698133397721177297735871986989829521849949818598483846979528989676667625458815948992355235814358936485296222526738256921419495235189841922749272526659216318122239898922986884699113416743319572919516646254962499279732578588657951883128142879378919163734932939398861357238852674765955393527753398939375729132223449465269982865821951882785283689625296441666848139144675951538424359775481479562195756939854532612395168978325626525675858285815341481279513899934668115998319231432568377168628394158643282556157333969218393246979741456634127693547485175294132886785417298469947716561513175561746747433646126267713477991279442857549433193312651969376957763981918318598395787552654711958766289832962371786415588994973646944685357812859585748217257337493478897128828487767856976595231513198926895386446969635924378357529976445215825412339177988789856724474365526817769887464698812388154321489892838568359866575926974476119723591243618219628243495771962512253679695515624838874425487895962925347726576216295132731484756843918987327926445869544255596931783148953734991291685768768346213777935884275777691736651991857337313734545491133162433582648715838299363637678914689975299178345315678384943668838199394139998858893477787737268827587767522167531585745178261324447147274716996784199837346576866565974928546851977442898849826972419261265683689393743664124953758756886369632118555633982618544576486649196614469347973437548414682529372359281187117287236643627841413362533781697856749714959222948416514293165812692224927819415581676176237794914413848286534189191127484765656529995361672416388947168753172996918289656393366585611956585457516669554459751549492818946772714945357878429791926659135557897141465846471627786217625194454834151883496557615174846169314299848482848419142851622118989783825388857123367483943555711638549542696661121699426395782228451818176134654813455699537279721126312813249748319696151817766779686689559998599456897969775597781925819945526818841253688449933867974227898277429112359369728516586534235828969892772733191485269596685836879137535946757599957138423369253412265642186612924531933668252676339514789717491516342523324856331311739987613981184562931482144895989641832757838279555169382464576341926298515587739334286381571643442845548372572984238586984882866741389356996264148982919336146931991783967631182814927917463961744484682745913728133638768633114424824962584491495611341842777798337981969982897592879997274153624769976939441977686958993575461518342951831544665483453719946142194229354122645176589753631317325736791546356358388171452694698238394898247679422259194727895416381874462562785912574753114779279546247543568698919543264189715297249591961676465815394572779917767661475585878844258584314827983595451874453877343615273676682572911686156229469299823665616633989674775632133767643955865532484646455795287333514818646684876352937757988872632987493348388429945449264966396514612526783628775444289511293433446119128813394868519858932836183346585512426593448849693329794118461917674459426119692582882782269478873556765393186117494913555624539592878738743599717433886649618926431686861881453469227266994522979966183562726939663652884527681526276486637683555734464215894977679497634264956574457536796127226239252951724298499621747856128164168733461818991138881246953827935116988593526825432713544331855241969269875559178697556323294916495644723822842761813754518722296262778489748397411597354386346771755628789637552822936526136756894389939974959967982344527187826517915768244333486999137399743917446798474867519429649727746379248669767518389163622965149586387786884639919464526785856897725337828195855923986313658997892495457647988679814753771795833646528749766274777214653439963695976384536345198777781191814113673581495253667449364592524439937454747183583449494366948648114446819822895757471435959713854972279499889527971515417189867797264736786757689387419885713949162829637994898388271276293239158479562598634786933291894738777951731114597882167639135686193888895846485462849888899155754256332348394177249714918648366684195227667143512927345934242441846573659317722716527796697244462324758921295416618271741536689465353277521223666328885876832964356777326185353147721969597518838495967524691138786456794541679313911617565943436215785952663795587481991545852729923965247787843499562691448192799722986453391394826377667928263626131298366114143323999191766443731425327768816792115528173346894525661217216921351643961185138256874398722693344368333275752947352999892468912277483128946596949215796717599831849682971283739779796184641655924394115889229796274529792748149461313594516991919623233236226847976843923956836364978455489595933681628564693962876358663983293531238632822963623845433747919522659986395284714666799237644159634463854899886966868572573142491286811166919656628123533848475828792279344784149811784415525475278476168176966577625924891968717769524295623888279989568718821493583154673134157977496642642191975733224879436769929753466389955972448977741562425229419479684421258271181724157482293549152766682526381685419624924943688717356454625675499641516586648163513196955385976497765687915416846946464885535998172612362996689137558975651169284762174784117733898563981813752135119432687253538453346556475622615818819373856798869655265219528588687471382728817287439916192668849278797828165516192361347668381589127184269628195439465192454323882781931523218953537668849513995651519829186865872368623993153173984695499724381597839648548945322985835456875794517622443515975535473419842955946786372316466727733712276422549559637386755733297282532934711498242463397189797774849493659412295517486874324179656717986397764188494564542531614877937798325376693883239642868429655693971283455381697481512957184417875282665291245328438247967882854419753276926972184294592745768567377785974943356535766149236994118953251561694582322669546882928381847965535886443567619643862379792491145919799992832958417176551748385483462265513359343972812194164935293371846727312479454538262653656739538131735825198787266392884119244782418337173125997645312141172373634585822356927616677972729343663922326671226898283641773921871588724937487413366694966836129769298672442222884465357754192879927947235318515896286629895663281644526326263268957627476886112836941684218433728333494237786979923986882573899158995347785839568818727571267357169487542794761934938873646616282291157188147745914545388485186852495771435462719589874656833384365133127183293366275655597695359111448673723928716269284553983962719434764526969584137974435393849959296759298386697752325835298913563957253652125953944655294987454916965251626899848684682677783978121919467446129476574847898715534572135495575625524878254439773852551589414591856784645446278685693747718272146546358878412984637495819615525411881626119673264735797179449229812651196438628396865476687745216555158488349168725859661417362669244723636147697165637126959757988634169131846893975171423293116332327219829921627652652686336693812322599968534717228889985937515961132827968971648689573723521691277484311981462648537757111426371659465563764872162217919426142389696745528834937728665688528911774252849277449132839373793617464959998815414455735647314815959116418699938373773448634882587115116634895662962318645689645889723278288469518374768962658272338888716995833434455358791531618889879998125832883549157585639652397478698894977585836334171768777911725225523529333681134377915668117979686664627366115294542227736128189968636349593731546627634727135224881438451361465939623677939995967184833925261587975293719751374438897139199927118884885482584811626241853225546891872883915746186459223797353362967657143753572714211736452227714724836882529828138394539438363431159319411915363259687899788637963129577686212216738594986396142813847761215945615598597925338123976358673598929915252615524352959787249292593582193747373491473587374262625873853269369764573429935437966827839167133293441467683868934477583748433934149752556481917269178117472988624638692129434721766219394146711494997667739342435948439181252422497555839788668557153814128791559724988923283827995317395549721471631939469642932585823128228629989832729599622249954139578255285951515559979351327658254324779746393336852594656165246882997549528714473389815618436133961474448465749344195976846887348661657472399658195318269498229211283243934568515199917155468259971448369773211799852282285718119367521916289789469634991489917625714264699814669499448442651452497568581569217312226239742474713483179351321944118865896819315186945966986887488497236739647923487219973618948685114432222957538992597597513131932815696544796725511699714975219991132988273898888222652647735466785197699594735964885328285972648491518782738148957889219276941193943945893623487785637447137874571364198594366684718169217649861521692356292316967349339225959541633336476798654729152757666635983338246527783671716331436184966397735184758586453257768378197986593234842657259127396297365571265548999963882682235944284418851837275378198915333498247297382577575585589336251169245766887943827458291191173234651662679692293347474755219833631668871463198377249681536277781362478444198443146698478823294292446667645948987514728875379579554673688217756933884678996224491668833537954484879627386962658233925547417634621679461254651586238648228218418229681326999857143754563456798365567754299179629315187786568529821579997751554614888928787418422211221547537973415729887528486882471467553944784885439293333714172129994394151279746661924993343477436622923772771919812591625388578874195124286615716996452822471636385699823142189563287294437284466672964161776775274173389218599993374543884694568482424981553651584782877453595256146589422683234443318386984217932323599346796738579622662286862944513761382858851265851196815248461913711411779488192881789633946785122996441367981184675687524978658597919583483623442183585477678572881173792741333768883969593291653676597686497197461988545933497845338278995435852893842738866151411887794664359573722859867786553367432673893928488938759469276961994986649547113157975888122462531988435334844549271381632745261641693786871883447456214597554391793795682835739723879672436984153439875871156462992752575696593466358184386825276269412166559555963854232116635556393952772361561847929448889948456987924932255454574144843768455393985878188835646474983619694472764146264182866286962885698117999356868686169147992353297122246215164965689352368317983665699574239595688781422388164196784448276792659582584251522819139493526453222487944176253399791558888956749329574957481229964732747434579194492143539898255431985129557158153353458132658171628458421165361984963469868988654767813833392985446462589658782994117839965842276638822223392621267516933185341955388944988183831392379697657673266767529744626981895889544192575967622467836228285793873478299175566653778179827518349788432123588865951986595939726163389384469419368613261888813928969471338359863467839762645487553536197519553998593151221844563369811952647493283399595695862643843836344678288771721931252177697592341542223625952131768142154268482685433558985738428321493652762581851877164922112145599262335233186544524821336561165417947913517799874967161751279767582747355656749884719711836216154857879728788991929241975669169138588158246271549232635774259526734227793373413286494456121761125885356551133611137287378979299369777261416679486659374554911794651596219148145821533177644545453118255881761151863419743796264114948926826691138335974839137646356544721754889285842832452171958431851564918213824913964279264924434267641717736956573614792995843475624468925336492673725482572421699499811473987976811587893519915197432535249795715337791636982549475933245895668923682654731387713588818859141846911414329994953845346989675213347599739231533356588757121647138281621188212962779998597682255869819756499785935447687878795636489682242869914441115923415294788516761474315355955467466968815198816778216568428484111193978787947189529288245728347367328273958633396475296291266443928989474885873465713599769169887631244164326758565753847745143459352477164651639544416327777685797386764156518869217525875642943886776435119887199942619645554642654259597319416729521179222992261632993277695837892975358484753129744613672671654493823119198531846541687139338698772964161387243644167215345122751293985391193818676699848162926273339171675149613827382215359459171488565411367754514544791193735699666423538631787977773457836565238116352628213798175742819235635117633928746888955628487543228699519747535994989485645516876943498695534573127816918476874786395195562925222931638188617693473989692752384129177417167158836681549894293198856585428549163811163939687558122413361619172829998875718993863377242837379464221426189778525887965256593936829291567165334648225435474482678588316386775713996465864237294135178495193967166251569319471333744182112276975917473515417831818659682894588348162161629457155712791352754718524986156649888518579957363473172386762544411146268717371732232224326572717889674977945473295898826553311463189115977851597421727718698898462636379367554497997857465754793468843891218641935467153916141944462669347827871819586466961372362224181959767447997327288599378466763943819737566933594421417539425193618866743164392357836561665994696468795294844253745464875552243643855742165567719717167752591369621854826494179235566943477794377298723984987198426848565462459759528586227656871668615736386944981482328399497554366448451277733853566117533132187487856785143338279993342434558593271558966576731614457412738376817385869736568995236887558973679217217365514489118912849289886182878958197297952516457711795964539553572525364798667785597885636176929999727428169448548118495273466349364387618682856548666644195193969233243116685645681267251871186245472763746286477284727723977529393215395475367841989811811394136991826751381375217636965296925953557475144359587295946712492285291991827552999387276461388536838848297728561545176957946135856236694531652976155846778872468787123919826145728315178754421172181359352879248291739981625496272196198821619146314797665115231489323436198846967279163151964274415131813736969757324153994858195153851875438315758751684999869573777386889881734413991266628816369696863475524754872415847823686761586397368136937665489671488451614112365311882161799765939965942528528841568421471798267659235995494821353326437749585737732986371845184714849874791991262568313448532635942332564182333892975869214657885316894434289297115876762927435479468269718266934384317137735668574999545139796121387667784816398935741176457423867537871695918799681996862432447716599678791945365846449828692247957218572826697121899946281338536681217394435781997581329256772229212451364959467492344712813693573317179971517446249166971442576519763848842743852984829187785352396955891353813541623779166527484745423119711773755989789876871223957899159364318957581993857218192979529294441412573383177181749586464196294789485838979329169777826856945656555187567541158686174347612639557628847378754917689241595697511439315616767598997579189125324216677925172948226699556218256469373817759727694477431133785267136731191776919914128899943527458947489299873855184788433285856532464232738144143154973987935992448119441955688455893641364264661977667679486366465494689419485482613671988798891552137664427171885419661895216214471881523345548794586776996831653646175596717148289291572217313968982994219744955313272347565391338268657111923247519573463946926482912974253335438738857438273347962423539728533923618925728232983555119755757692654252912997683176722742937187495947789492313558397876955782946184414174741147444273821637483439696366699943493642799826893356753466191217498495768559527561664543169985258556689933364498662395315668363538767449162887227826354983388367939537288945682169195543755315196795573414261845673694568686835411732854366338222839758355724812662675981883473634335289861482937856658867812596438923323795178779974478452352941518526843153477383851375552229517557528785659744599288378162672299158412913735814252471759585714358282321356853845241792486222957439554496226878332973361231927587369898237789742644286776813673685858472426784668249287848411989359717634731375378359597428226537134495135945378628162816554417629395783786472176888895878136169465341689537287348788253728245493983768284852989794245862942929379913547694569628923476188928764978732587438565681896396771741934158943114736939727618932235129791475831954745242123548776979654784926744123257619579262222616889355178466336173442388877739278323985661622729598852155854515346977677726492815986336164859553613537592765387239576916355764999967491918372214563918129393572922831558561558726665299656528169493376979543629114369439648116736718938753558261731923684856693345512511962246274219964658812813789294211399467677238976166143257491642998293899493313848686148482881632185971452729859117783897198666242819298568181369247552982354468283182931229221871779888655263755143817439719995622788659148122595127794749514559275382465585656341627774816258493957463273216248216197615299633116415519841712539799877429254196837214268965134342689655291656922145144841532616434151418567461485599286559177927847733725362976166733521139877216215488997842729361843868476583442488266537664438699197777639898424453886834182157691974291879447161157816614914132179744962112996662586885656458728651791435267822688716677934891586899666943184383271546191368413796237791939424481592951653648847973392494364833699615874886955938468476595289978469522757339295835276133986488719884875296892717918855689535347575856936172429755536985572562678162831983474223443771573299512252744988333787225636355164257821336712212875797694893724812537945371644565184182249238483661173635336266957387181167736835447476327243522794577776928382775136889641899432312496727842947196195817622274675569174159551479495918734667562962396761383911276219925477725318576563123785324968132835598258448475976383867463548867259853953172588922665674573989689287783453548691823222727273437467666463387631638444369626252695442241921224852669919396494155856658286565741817486371826546684486852341491496612165818187816824846297919458184819533742965422375681858943846693368133295533427688986196779949747589754168583899587718911574215492636954971962827325994881589678986318247858699975612565913795649693347666828114842142132577466133785386649882395219556164759534925784142882551471915267512528493686391247874634549344976279971724225655134183925757552925349659484599534819421779918635462891223132773238999483248691686399754517761446566367316621492565258184523982756638475957293212261869921141955885295188379888337513164665277512316863361422212942712325188779756311716494759955997171985567363299452127611953522253169932279968776766128614164677352783289598796166632686422568727496686557883416245512125516353192569668455598826624953266497131447632663311121939455212256761722282351861762723388653319686317324789989345859783765172399512457299181893649237375893846958975341875683863777338512451123411214229925225938468663484655294999964513589317357521246654552671585318945626376436235146624681545348652751356913623598693833288148891579913546923272431677969819534647448654357346262261177243252232415374412687936962241897311893219147448478578865244379394718286881791641998778245742865149423987342222832286752589453648582647839952824426794527927386974589258336614773513179369954178931482821655568468837259816477698451156547314641137954236922268324156536157747948822567353584131381177964611946575365378452757339458664127986685663418941917494162514899329148719877842367894328987367764428117965778423991996181578593691867882926619158437812484192243588173543162767176494299419698941266196689298371968719815243842447919948478336862938951358925273359295328688992668191385825378524366779876772414623941242781398836867487973271866531986384393181615967834317211935744242417113459574387293179935476317636969856369995461527245919498994182721726824797775246458517722275653646851546553851199411783572786443728381789438424474477353389324427983231411128354817659294769814989288356793564634592436647133892532697581914665511598428697943115438693554387794954749115661754691284962849593848387735775115191957253224455871986885769356864384826197879448678992789932515195471864233685531291884656743268753588997932374494396835883168682639774211791373983767755547794942725992168183632145999816917256336558827749845744421967235479892189596747483912323339791336267373532513956571483514217167857326811584352565855483689394351793389977157576651641724858494726922466264813752587915577944848266218295651572961392537987175332398878679995965848311332184414656999861867445873516429854256446418694396936651756468999249391956311154357196694911921489375637699594861516971983433575319861517699566118714138551439958376956338919129395284633984832798351427814999378161293339992397215176771436716667641138661347919493291285594631423934944874979841997578579487785895151447864599424266531833995636173281187286788948548599626379686514464157148567547823653385363476669332163348744699719796887862864773164829739555535725732134861425998943842773481344528733523454221364912529562885263174526956459859333613661934658519869617963487841822624853129287415443486864396944412179661679526634157848462646524698656941346619547785144518329327692553526745346457923744963282368626771969844421656478359692664726629532783879571894439922376952118367869529799686558919443828717495589938466397468261215987842527262449839652276539587167723182328885845988544754642869317755627841293677651622677547511366287387565282541211464872757426722559895749627537288725852151828893685271299247476743348754775352824969749814159589646264842499849136662717549966661112681265949681319581293454316918627123418213134775786749278799886413515164322498319272834733898837719235323695184823439428821993285519394156473665367973829161566311841614592121346172485197314395533892261529618444555635426579235819242669253282734826657585698759544872313271157684283455158692565347766993527818868466892635485834365754491598967287767794384664313247617223288142558172713176452697872786167999816272925799396718451853866553977753769489359839835162697122735125263473578785476815682421659513698774536194788629489977517266181284664937316695621485244422979869249592787883728489745499529498341394837983454431323595364818588488597325448481165511867594555142858949896236198369581724597499815771715166872244286519426344259587398982899411225738194526258289684969352355461453228998129139365592486398356331966599992286238293791918343896747664692147698638365572825697379694386171369774465395858639333276153587472268339499985947364196552629568473968359649759312647648111898787294669752973234134492664914747794418336128645616744761958618696381966525415743764735562415626972863553959215447955964759377857533971516711174819198752615679394593674571427698913275991475363526458681722987521834658351366385115467511985353646925152924535144952721445774356349731518278114827949215751798946475156421333592615676135762527382896312331119137988682615968623973378542559357327826976365566519366937744567854668132388494637517217325849434668612687645817683928699743162823639545881771299798233313969835728634815178896772567347229812612366811452432975914477619276965416141455673827457469257395517759896816439772274866697363936126986138561969669971855931158523872199613199433558735653678229796636245187771792374198977575983847387779751318558662999987479644416325342869991526443173128567779528196539575568231855574985818839622255228818477689813614869582192153248478477413341875272891169871296342562964822633581235243992527685819311732119666935754795538728116324244722966253163686528869539678899116852982627998815498599585878759897737137251675464723911514752983136569142292617189316238956566894122297686293381228663838966922399491929324354391565794254644939732757655518378497625657569925691795845574478714723732534455189311756794893695483317388389424857571466277932789689896372465961219979516788167471799983657935187819337995572133976345214627729315768585289443464284559387571942613821164895422923949926933685582268923311939879363596242818369126257468917168463764818976917638558549215752166869937921546851821977183797268577999833463648398285529139759133788886725166834168689655712129864781285912862575628991151448566856555488975391332934846249396275283676995669888219988816499753679754452998573518759821671787534529297467993296382115115985349545159266897757548298448688993579212538261199817829593593863197995594813823568455872943798979152886397448844197982995651894161919226821511869299752316597272979986938467649266186536563418446229386827995623178837281396933417397842484537532462174689595373847453389474869936194966477598461456872241122954997792436451624295528513797583925436498915687976578436447629398858891156248147295825435496524534333875343348216298127646774644993753899237683793341738184734882715386929284462983735565921995429833995818185259454337763194488955374731858515111528994394657952293494738115558892375267434576489111687294894128272662625265531294766736184167698154744896963938635476368699887732739184625978481657936992795793558997237868683994489992283492328339756155436648669925669459562811718668122677374318599556165837753651825161124458847579211495759815616259339397774288762785549758357739633789427234695475998875343593339644227515991781325591814317584824152729798655859146634629859748784218737546644966653225476839492838371782531472747593413919381527426766855878335472876339591431117972759913296227113938344196337681261473932728898829542992976537881926991574581663763292253419517579481323557649279393339271599998336567635355623192966226361965759986443153473378956714441526858925968811872979762598797946181928845216661914747661453868979918121278817638272374691112715992327681887384591965681717786115343884818977829619771467457764695376997921958464775784677269737394341839876249752274548478986196296826218646181528959939944534322892573111221493534777537584371135372777945981617864396438667682643452222131816237223357886818494446393439224325514383894531197582378662144116258411437193162634267973859443916529129143626885294181896485627177999898761214553639541258289238276182395414419565174514227215874819999512244969857931885457574853858879892725911432586672468375345255945153492627675984265473573699682916897575743549588886962975436896621928875772349455244543954559428358676333557829132461626897589811361411773499847851154599444786713335688569686675354785437628824867522984979665175868666276946834342982589966972331517495277983461113283967854695171285683518615563797832995816243388938734866494384185799629832724748194211266728433854979759789829838655367415343738897342349824696927352557332928662242856559447969587367735131717995847136648417297153899894416892775425985732785851667669967749755955342126543711824137131753792546863853196393235789235969336266789898359355535263173574694479969236776998879969765153997987232278285348696898773248138339288268961265426961911844937573536697329977749698244395879349388661626892273221672683893769348669546916259394321525647389911868178962721687814164586689843331621721348312649527816246911899714831783513447399212138778274132878888566147559527574998276112283426178275224935731833855662679552996671358162787354923218279688647352848432752334116826515942873398374881757295523894418896485171547165343441654345377852522933825857163962466762667325257982264856972127952725785786528317992757485375775989232951411734541346723335884246329268947855339988671187659623448284196131667271556764666894846777895318986979741764883418354662952479132925915149471172749991512814366828747172827854712836335737679459244388858534518387482447931112243216862572794679585473414532646636873568284856419333794427767669956979181249256325867565395852271739921187282924784944162823227435383335886249423527925585653825143821686894877637254487811239224424462846399741812777882765756132755832314141839529646936155238424769991481566669846688548947152146166977633933322611827269345265933464546376294972663873323123488484428637824173695717483988729753979967988624426619868356881536965576786715137294495256282633774853884926283544323622165939433891247151616954589111882377561724845248191229248481444954825533522665283631786523367573879975376329833591678325214853922618159534675481199641136978217547688299656372171538986451319993899484244762643581388486994812242446962663122118921436858758227977287771449196697366673554713893496147991247222698983578977657198491335884872665276453799627877129584956952948359274551433148116227778244658643699612965711597297133547331549587719277894279621766612778744262571947653595744295858925998493985899947848998732418713273429856527523817793287194948896115647822156938414253431382367769891696432937251678842491471376696189983549638238572347476655175798589246897587596758948354414131556298521491481322747193656129987236643571889166321392134731754257688876426871354525749997832865689414757927944931517981449747974664119385479525679327358782398338384272351736754634491965594195486488179289214992883389377418671286377984863612355121993984674821226438873759943533796953835548274744216656251283148276612817258271185624878559797798849114397845891365941716695671524283989216416621349831234393223164387897749843665875391713622624124653657772641478213894274474483584765524854938518439585668785481378257179165465158765432622179839548368429997858135598617342998285795819928835166442815592993857762279885668231547545358684717925867239156399882962679427387684894265699351716769555545986356353328623999879131723694182582172624643697573575565682198762333545479854454225934757244818758458857778859384149797584653856155344964377397886513316182875682938862736763387893362877568783269655157472821549216585165944751979121389566329766215814989423617375341627938753112483983915898496835777975695149854433344578937323196997839859793996471426958567277957876391139958421816515971153657147323959732712779977449999827233877983333747154197386368269543679312889187986617932575325466629559372676499257737938184868666897126237791876868923359521443145624588184472383642228498677483158219532994887786762745647179935981691959388572673884886443368294618485977939878487766768583125967778216964256186175225124797129411272935375358677532792721176833561664461462369558199736911135957947899696434828525689774616661461968284168799549642984952954371338244113436691246596989831458454392611826316881157867832357871557559775792898399781863482436533191442385367742735558485816659551976227457769564858992194973915751381583314565528418894434328649966188694622418288636291761712868542482649539669479747927174456354178837551126335594796523669781941473476763687428389516159294623652468234888163859182464847177753942345435756152254866275263999277154773167822897823323133926669922932292666557649661976332284881756189872528929287337351872479673225725789781222879735313283953357946123789358416485369589287267276464228593518259747968869792226592731754718427892768941618389114956318416394357176297451197843289268987418936777752746938942859744296249159325278749437845211569877436172416279768748878114222759668929699667185882531758789123758667949885416159368149856853799221469357674656151712149869389465194373399553393398624197314348935366175711586631328218468755676429561111237272418397649722884719248244469677915339977329247518388353396697276333237921433576879314417186266467329835838565435297735349975623154993283243482734587552584876716572191129634622881875853712349582984926725763319456458612992278894615875936434753411251886428679334275756828296964593627144792235754183148644996275535657179998787218265184369833678291852778375387212431769396829396934659751353515769798785656915436914823742623797469593274143737497424147518766219971923764548564841865647639224473453779865676918526797212744715631892667731972482463352835673614783312277134845753819214182398125221689524667786137765569548157175137932828826341755479996841879355917898897971555552913681987857166643859828636844499522548229827691937332788272975595194936977525367169496985668593732839464618381871773191574525431464896686153547551389982696987752285545232694368211419279939674754923898774858729253918626872672488183629345215924841599364525468797125383834824798552782268446133935513262157451787865582476488735627994493349428683738453838617998264145916952387915722489996186266441437833628331883934692948224934318624595211286511823355933388196191398428996995648817739998986864762234677624294762917291111974192575985412693638394318977749461681673836163396654984131222768137771797799281784665679778251555839797958367972697576596333273635227416318831179752333847246316597216895241816782662599825399918116395134184311558129881547115889571165136635955927949926739572896223431442212192414659536344386614127561778299656529967321659257679287683956694939585818596488139539123841112683958837128999289762225423496824723268523382147749946244749368658375352831588441478586171399194917691292632243477581747741888812469423868393516657264978119833926571343684461922778868667236636127286588813669346555793991636412344599371367634129168278927587944142755885627886767849737121456387523979127489958555678769411558377671281456125813169542715236958499345137759652947716275214575354329117925255248685989586371838387596828655567281488533898723166185464643855154765999649429542827293948847496353848619976836569762927137937625447593116261923299978293233739835318197681282755989352457683986436499178691733149836397142197214141934552157387376664791427452956933357683748713369245912476399346667888989295399296784974731132591182781169217168268441942997363274734586167486122742592772713781681678154244396861617137455359119285334948721931974658518748839698563617999738539665265916938475153931549977846931686477161771142368116422811899813451117157317132437525939758873857513941842857982169185171891792955179915611739675236536167642659495156776745119542389743667449868736463679629621268871385286125416111422129161815566649463291835526399222569971872982588437298188926673877815457591434722798276287276396483164931169799435478963279873333511475979191578254496791748957396662326911929338822131523115669128633889959721746781584768279975363748693736746481879993433875664866476126524627661799989637366923134257358954469234933971999468557373189617712126281268484143756356317897975481943926145983765596496126676822619688759328162563741756615722694236153213886529787586888778948617988435454717669548484746822487946142963534884532965739987614537545519285982678237932274944426527534929937534623771892237952526427747526497494599598331478564599971195495152436355511885121295947494435577271729551113413674244836478937843169231117877136551437112137138116951342599142259885882539881888172818191959589816575759628274942165564528442782596868389871815929449254314149157242982885775473598942564787673831394391315152116449572757381965463265348498176113934799861111582229645591244314453998275311974794915316231646555825483621684783443614454573829338363643829559848692916953322975511737426247978231817893667762521551456262357199897327858653362549969487931715932716599828622562776861592128822516329173591266466529345464885596221935179731913884382816664857143946897255692181339786387291294394917337837695627828488869118224277372389259467816325959488427563322524275837547392892681883895461823432368983126947199911478878895893845692636192714796724879494952835735428281233784476125138353916559425513361196325184541954235479754282459287817611918154954158112567464378647565919513199461677385317483951934386698918537859679523248518819892517725558763168397399846944994964761243297568145137699952829151952153154413567533143782166733891319243595378291752974551918663335737992211769638661228299426553693126931479998892811245267583279818579575371665673368813396298927764955971725511687367366951793296349996888762359765872179699623537497762741934962426275415957744759535721691391434482375599198747416482834766326549171246865644154677496118778711475812953276128439641538657432666625571743976569187338399633393173749218515259385477268758346291878885799547478893486252113968658416642952136295661595521467387816369417843629814726179226888281891775139265958625823746579181982486217854197626852141538593937637918386545494397831875347138396825463679816129973879478686463554632629529211857376874119388988291921541884245455838668798476541892246773286753738244512795232545475447978447187241746783568362488851211532291841538585675519837431335646623989366923349459335842333495918368119549452649269381211746255154186787449443799948266296828565555487613529218312268717583187784343935234265446322778732657854447345276524261584696286574775187132412866235547673273676982162938129988765386259235487436469593887473967143965226968224774154279841747654818759635112565588972977432681287893222272622646341586812457648262342491269682936782118927788134237575945669414194872697596681223411717668811189831663491897912276878681172536764788195426813655994755592863189741742959512757513542931583815853137178965392256241494967418444623444928843842237879219884874292582812957743542589377364488979141748681812654913977133547577771377137154827252753798356656585887737721412245636292526282684786275838652442394791931149844547715887329283465429891898583119999378927414992949225452189696625978777818783392685326243552438227783842638586737634276129419872731111725569959332636127573828716818457853634542953536296976711918491195386743583331561449156358417925469584176678998477851147375814565719756957832365792862876143772988691736923738629973638515197711834796792285951577989673998221268881647454621522994279971213158126637997576188887833856337666664614616443628912273935346916117572636721969949857136135461254511417477864886627122267796299948216293257688295857461569972188636154793357124141738218662813151577157758212632689429917693457315142666236461846284542725836583946671413367932292937623955142617539918196574479284349414372915878417744813729538883313767548496597377645647924613136542478464474958653848848691828595388581281162615786513885139299464317611739865336931516721487547759794762615871379696394528569741262155949685754623196824995395939988932383749838719142294848867887986615979398258237882647582772183219677785915779415384789611428839767561181211552475889114165673969182336775494181756535456131819675774862319429864559266844186456125779549919694557388187867872491576378193687327642958246621998488153721949758583219339196838468985351135493918362682728395626562277555756134549336251811569679822876758565235646318883344558876165382399723966274712315629342326289419388448335398797697541811862947675318775958619356421753294869476134128165863935787374895898188635355676968678226278247278874992734134711681384516796233896184259798238978451893741997126326937911294641594881516219355838998558989172895661636637824688939368839757273189499713199949724822758974276783357626442935844569973427915721254579987528663889191426197256992362588644688767139452827559694528658398246941431838551175191574618952949293572799458637518649723467717846573168735666165319414258849742987727673598226172752233459482189912869194318439969728188983468593885794994168126932879123223588926266718823292499873243257313582882931457649547881251334714476684625313663983485289195163777765171828379321669476697997989288967521388527252999258327551971265263769648932378297777142333154613187717742694386418345317783191677213748484644192177699647991379249297476675698363495541569525393754929696541163962651685629763165568435315256767917288877362984993553749666968651398845664138931786849963462652156163688726757878973229318925648123194866778586799834455426165288646899144466491886341489332383854687767776885328965759146673894548627175388268249615486971677167228935199582699835344233697868447268512557191564779846628425766981635687322924296633843291194397532977376194214743727183993547428936719968824898862168599118356894461434631638516859573364792548783167874364353579268167457732986466355946449129299272774975452366131985969848525981275362871391654135373311353696663613373841947799154145915991534438869616575384456551455515869993131936528575545333582437129844752799976638175867325496782419125176463213838195267858347261545723662949917293825142385122374364951547347384263143673986788197525434619748299691338891913775243423972635857664532853811319331875759678965533489884474581827373717253119316497614883591922254631911659292948481329438267781377259192732471461579964851816457339552153132364862846823319845716435779512514652962292816738729481261928555946788876621816157331979626482824392939185354143947428382489573441566573619547443141674189729895199686565252835219649782457495847756811828269741433918365671475999943276648225825772398124559238942741624827475692129933989746297729852859165222458982998861258574863996726741575375997126294569286319293323454714844747746225479179411113157386349115946317294221317862127911666178871115593325549375529995393184645319283339775161741293147895289538179149427727258561774446584641656145897693619162585131922532122347967913816742488498629159885462497557845811689777171139459796966179722173191791367181656645761788911286184975454942164559793865432349241953598186771263778165976381856578621629159627582434995127767969765312232437246997837481913397491839586563473238152138924983953327531831143912272613758767347643878563791577341885129115114143376768382159194651294715241861764991353487249242426996766965639982568842167269847142295842913897999551796695138327454424173116765283668635156879626149239675551591948751847135523516234539718225691547177988836775112163455267563328796624332847688581613178637546161348216838659855546643312996852516137878634596972347891312359514562492138216454271853627771319985369568195657514827868181177937482886727893668793259718274656432946614789356521257522381156469539837623156753764367926442794425267967828468437128196446596115543673989715347896185425846116545797965815936237919461297265242484437346376696373368744741787372365275146732713798376784337367754165226667957948166851611681281383343813228742786926462516868335488424497889626484576913563566595783564424366366295957729448357648386246465326532378171373618728782529928891641587568386176871336387395222734171513499116777672447412349119547657873643944148686594638686624578137814144936312892663965352546936388699734134199866112968458675963141885654568339451926179551247182889575119163535912567953123579936617796845558167949563129828642972488159942561345463472995119989821967189618412736444634483526768258346983479283174143242797829188266266712336283639521154726626115856193385261255677645494315559468748979867886435229614264773484119562588543136687952821478767466144145797588275259739776768276345177512974788949888175461655888819362486571868628995813874736986188759191994399666697334946985741199256257213682874875823444963228454849112671574941743981978827992411328929643168313764716795863686293616986984215613861952378185326382993318555239411148699266471775289189799464776788746599731726734542899566398759895527444562835139439841589953214314316869929341451638855964455496496419521979366751163957748877871429259934455343691742431964834839368536389241932248368661145139494596976237818461187667266934135868284235186462582318769217784956257676832996986155926531883132996799268874923793328591236384898342415674188786927727784329991314918798553113363174653513143725343633518561426261195825857613585748824562679927335138418281837279652634676331888892518979443735796512129636532974547798876939621657422845162634344486319643678497153886692982877446825517897788958472666797588576435719339529878161574896282987313739395484969263521166685961325348622232291963698878718392453735241232571474141115237573876192525627971158631714318983369365456868475988792576362813662412184999369342669619495736154629597921183898839641554175516871734738649723321487291164779292878218657984842747887765659971312683547814174679715468357371365644742274394711476986619566393231631168431811844497797631343266163976586993614293345847368495282819733395465889556787263114778448194423322856767537295195887259682322728513121925973946499183964422958272387812948661152524518838395989591249989335668117126847582948494687725771658887539956648385811857117849979975348571623796172165713555959255461253623977838968723254377444439443245947882215815663968353691357621767654171742389896789926726573896844839151621978387743443987885627648968144999837831478384567832541647235787268865935635879949961457488419179179213921566214851827974796481452726426269282757729199448972241694936951419131665431745527985318447869929773617562316415773977916149334392498387586963844198172728254651729435716416452776982114336521216861847893818228858392482295858956769966984879225669417449685741958779564523745558951232287247941667979172877644742195187954787852876651557346241699646473544699425542282842992255485936148741638144951845139859636782364611596991518521778799829158261754294256156112491716613286757825115241934121632456543134279264281977174161156176766735299376521877545111946184969854729828348137921926898252293419616694115652148546748686758158442499785316622932444532625731713871664647116896893486987382827972765657256199434585926148795926699385651244851391564739977692698696231929957348746669414113597689883361511684445196822274661372991854259137862838688873656837916643757773357112712819112961965551683665423687767745957238938624411461364337553912743574478545259556816676763888843951952973319571116881775766558439417412667987297618841687398199548578583772838583437651999162793835749878378657729349331895486789161913595654258664994191258278979393833725816489378518893425494396998211156851264144152298698716368453987327698836481566875793992446846776346682379157263132811761196224179467511972477968692149428368541865553578394516566246136318867147932574279978829814892165961344589242675641459241631112587192224165988774961843594253624446984386819477322382666975398627471521345587348617686178927721743437719235876362857797134863226214758629985262363893492813462773914996319549734488349455377618579654199973334456416663891397794567686913687691771442336465593548831281291857417345772767777691681921288235392788644439396514794847271559147496767826631853393529489517175687313374954822666674788161148564778338118549963548485634467891949682987588324393769682731276159248693599785726482225916686426778181114787394861889614976598629537461795562676728128461797567267215978487426942621156648446252924724932634561329553413493342969996956427892994855881596384177837336433767742628996251781486738156955868292113152319946964253251582939132595298878556759725415813923496751193931389238442416337889115576882546682949767587894566676612974346993123784971618142481361919899443386665917498377672462354522249634879636959525964141558128566646447632175848645698526161565761211488655167582714727555713727139915544727775989566472498956213588891715329534553618147912574541967696824111672268897874736632857787629464397893479496886635224421324273813432941849298435486637981968465351681399381615252376997823275388957122133998638485291892677958953683926156622563126541833212687129152225275969988469114783118782728943138115359488998986451439872472933561415973493354478287695792457911434881543644547281648547789668177996744944193699924262471572395823199788358958276478637945665736528579845754143879467565525843329911367167961257964953727668516378989599764654239377688469978871498932213345767543659681535875954649591756344496553853229575648619225957668643977148328916476545334787887249429732642568469951168645179469526457944459544497915453299273781278449924763315535741227858957659593577215478176149248976929692954983687626174482975643194542911526849775562299859852626186648677685793785735879927721228611696314289178658289735261586546137271768197139379964622863983593764437222885853916558965381624653618946523822948475878177441759887772293798696684327867935716273889237484898277525649835736461439963415742794485387458819354121736531985926351667713139617548277283244551159442271694518955599768874311622192488831671574437246886937261457776179835859716546712144924634174173369187744225713121264628816462573832179755713332634887965532355551221176141776452383112759665775216864197865467432544113766796783935964873949811963297777819471417866529522619139839254174676374277356617241975234329552282367396494946578145926843938835921352889211588677723846456148989933874894435375239197476772684939596148577117844972657941246196147269175686143219614693534188571454362334125165854551842814755296773473998553788626544977796382987432133927938549678181319511991354193537483978883419418295518176318233475659298228729466115856899681911862724333244551519137811896935873896654492247231561122234313855492513818797281736652319356554157634582468538966864145485638498589467852774528677814819739296635116132156239552677517659915385596487434281824914177977743765888954259117332477758598482257132425992558654211829165738698912796491268875344283458875579935745946222948294847373855228929428818687416547826655857997476747573933674945275562429977179537197755444493665563652825869392582884456558322524497236984643245685753759934241271719854944527496147252259856262615645874537869694882266867879848817725689685714243462282152132143692233478613573249933346398422672862389716214566148565476759667845397487551896667666842378797161122888452266188184941641259963946944547372372273775912831625563335995228579928956275874679676377384791927364781399638663792399644231889458868867796891334679856695824461515583845892586239483995494272352874264631488275919513623999998789294844124963884696722189676329197262538793898689766314259819886896666636745122136248239882159581858156876557536595645526158315128584834445336652596448458192799629186275878859976931556788161385665371791127499362773383223578914485447119393255514895928452293886732811165854415112778151385167147272818964777974696398362966194388433757481943768269219886269868369937832329834213375123888151338367852757893218477293479682163673676867827615439949873263387589838278387961122956724369587981611827731657144259883441269855754873333321147611922959253627641637159648334348323519324868572168781647335598919143692127949775327519822763615753493332568364228274447825135855188818172829724567238757229743682494657351127694858259781945763166389952999273453746165286558429762993246839434143493199795474387716547145123155766983399761814225579679521745876783369613272119859169774588385947928372259469393814964499458785294945636877846748535591173812116139292843224529887948939719191873342857699769571725789342923897244411367964666959537559397158222417472193848329681393276349829987829147585518429898183988527918674386354682149689953734479923676225969416462838382764144781912271629179727523219269686926654831768536399526433189787134978596317367135434788812628822522474249684289217898387484141667753958893452435816672698278213333595553189236899487983615152188134855918969394112733848619783778445287166751518791245197125865414128979653289249349155948285396327635452856324465955711717257649367362112959432335548843932356792659332489116648598538455851523429788734196546928645885175634347527144527381578336297653353236998678771136898544986565829519617874627522587785649229316137878938657371685633376689428851485299919938313499515584158636141857289915126454479133369262663157568594338453267233794325424486559681438986384676558848652859729876222781332199471818748873989142647525393619252988474718355188283866234448962764211139463315334482293899746994859616271727425987653425297515863387613293825423116653554881955966567894899567845342432939781879667677583889498912131144861678471324919539524147394114876373786322789181962136423386733541656732657799461387158421635667867571674934517862314414548427192594166595854757618232587442965769475816113497771895788659864761393862667152199643871669936779852731874867261398233386983263824498463545548875945612547797774859929842381289866675699725794144277284821255839418768325746868589911983151693145193132999861322485351237329918993857739661611411734167877139584487962937761661687149625717747558454245791547974847642534548745564573827923565371957235117861216341792748837653657363872836728654458142113931338827546195382776838546286139883998438862479374144268296957979313352877441186858515379186662946174389424877831456118728671469751785596611793148114599186859673728599697563594297117126511823667312898946275723799682192891756984393538245444452188382882845314422629543672693674679788736976934225539718957146384389851488935857686221489864831762888346529624394481478355768785591161872837415568457714963698428897881486939367138447448841572714284342493368185999772334424362619393718654751344457345746985326488469578887777726934818984934172584583743644852289485591553589376167742889918642252468343135721112436791559226215133868345832995191892446377221737856136468871494888416638268656347949876422755281989616582186396388854165775655351592356149296379414415817958783835675418376664849494528712252753699872775237264448213442889891389457641639576817137669398135659978642321615288295461627469132974736261622577627196531396434386187653585617894465891864971258959265772452855773759445273343877922287986491644745722241813973848488854135657449482183754542795914325675791894848972914219555524697282777169345738134628598945474393541132796246278584975399838516449329428996187748549388848393137272836333212996996458659749412719473696279218668996348754972287512418999543884766125622285468191883194917392166286357284944966823778299837469638624775514175195747721556845411212182456927422414944818278672546122598571671923656225979428294247199921141142743216773734142555172873767589598635555147627868595481463434197646958747792451765931138888875432495789645324424737633388646129384467723218425219122883468327294378772491834421668747194322471535734689171658556468169315579743768931589169978797682274317595897686179444687353458216343879945189346699657722116843827474772669798858749738967847424678164376551225746647565877655955834571553817682816871326198671898216385454479476341711684366156777666684223167993594929116623366464925361837359149667433299742321654258479373527786597747445138142151499269892691174127727664867918694545278927694929748763369295433978939976485614144142753764467129473639723764244318644899719186396586687422667574321315298982788454778263577487486513577969651635512582637221259575769163944657381293648129776842412897223585882485857662352447836669832591752279514417674256948116948612224826586285939872221127176633995912391424719516786655698426817899778669579727799958783557493982496464975146782427162345778538122782813288776165148237445391378123898937526383976938325598233539352976156162216687842625494581891236139819351778849548271542431951222617736231398816265468748781745691646223324174539314515584872121393132765375141937973483157127686962116553734579529147312347537479338276659492446933141424623642872793384787125954644238677154491871727896497498948153577387487227778363792766948666988949448963478427591942918968579926767862339585511669447595694299518359824954954359976175799469153649752433623731131796761128484696982234579364319732427443718564538934879872744378473679483636884488372473189733483642155865565245445197454619561595643639952399615315472735762757885648117968771458923975789255677434842683728871845257786999526947166977241257311686254467935663632634867342111141596191211817382549975534936468761483598453625448215666847583149528122141544483448461615249742352615136713729619675755662828352596286736889779637556531922311399248335181594441996453211847578892676979268615714543595581426621871817131789936375689235215137271825537638272878985928459925564477583383113828314962574381263788693664786172219187969338916733399742951679975368348628433342347912941576216626492357861152929248757924566675792817255515958185558362318521684786138585752599458794844146286678747695419618496522899614692736588674332852175624726288174256438692917776386929814966924726439885354875558298257555776671316789421266283575415711351415358191526983294634379177787239693551239895184539581121319462482937999935941478982928488628788734455551762836221758753958835455588891787889177368321274465695323729232544714663845245527912496562976244926268834259153674349273253432988777272429462545425315432856942596927252783432346597869858479539265873931717256538945583293888977277433172195225262215424474197153493875578295353195762326875575457947693427539623793172377634762798573775476625647444483698537798317325443727187975692599884798357862757315712817751255348814785173568774157843383365194573669842473923873895497863744699485792749379376842495647238426837517568172363151968873886545596657348348256772764119178625195379532853222778683384235857193116582136785717676889557983666711368966249572934879296879113432497937685379113577721666584823771549936148271929127676591933716412913419196298392191317733387826143851879778971784922564235649867953267961816679911983239611853181217198994966541342624897824288716924554971771386177424115145541448714518859827676838618729886935736939186667772645143334672147127188184167448961555285587337343525581197363582848238692781719853145234897197171645944672535412947425493315971192867178539465851279281675638986526991975195313242133158339428276546498268298463434412156798666978374258851285898158217486365759415749935719368528771122413939731816859244249987584765488932851536496599284278976843188927237496793174997213583342137468995495452686393317325878553265241947875284432349755249847192698799329167749372986964989575598321675637248578756191127866379875682118293985951596551174654631745977937548775225985639456941317229664842913662569989279174815429529367618929574789674598266959997131551473784367991233934446782426429841683789199389971654588346688853379657456429231987899822914619844675982865335666798354487675748845716355229686725696792838486717889168836129965514851741242424725979115118264396252436969425984737265768929682679761772553519943662544236155584874643665899581275173136976157759481213318914419683241214976686926215419852838221923486182283879971524683474145975783747763683516573224196277932592783879856147421259373636417649883944698235417598814443822525798511253199557768352584259495781824497821229359496436972276387213223751797141155468797435278581854238467851585431868114421117159974984672276275999965941278597968812921489866945152997372669448388355837731365818181494149377377249565133344754319797381237878281475441434397312194672683219781974314876375835933335258728456716737867991895277243666382565274119893834998783888423513538412742594213458328473447654916333476619137862131871627846764379384885717295941794443469696136138161378128456557335725483674236668926837351549916581214826474361616641194767929467183163668543417786523216226289117826817825166236899533185559779254951277853922268695692268928788534345937325379182481482774523434412383492455441545662445597786574963953545884133598321797666575111853652638959751816674459347365169735574285359861527776369787197779392258899438727724517368699545486221466376567371388219529147965579418774361823417981622771262416516661253728819746197898965596739756684418123588915471787836766918816398918582424326441355689116754681242178151337833865744622484778927529367785253499982784446284348164343655932984337241596536623111222573516457294143226264657598182634641879431228584879599576788278135518996739757629388733711196258916785166483485194745389495687653642385894112592856947585952429774923482575782372937575377491181841388796134533626617712478657164597962219625422772946374548886952826291978849229518719561477125545154875916656385582191958456468943471396958664563281412576673437675753264687358881699472193888567515696677865949253238474184899749777696744475785442799748279528137883639966936323643448932568358822824229666627349277952546748857466848575932375281291437623437243284293599422762652786116691754555347674477958228533449495312317173469786896378773644369754744312771976355698454834392252692367927434415778864272158342834766559359113681425673818719457851673884539978142965969437238188189133852667293797828937725143716692538556948887511598911736683557592485969968699564752393895753989292812325839862444637265538834826521258769798621885278714662345864671948258727539459274237691726582315793871764215485853462686436386746584778697743873747372667285434385518492739956682151489578978579496317765462193833191237383269893966657894971638872771625289835451655549635891213571552674731346299879292671328546914924422796865822336626871517146124849789786165532823945624519567447342822568175831518311285948529756499261881448118855346716115911973117379695984863479877567998117673177258517752693663317839836248966381469624215278729877628873129798373422943861846951497152422566869821979795737125911571965786652973746668698998692974343317999239263864374868686338634198383789292722129113812956453573346817452238196529868715791585222885666865788197835973671596911153931419285445145522849165471146246424698737771957827958656557898114946114218943542936344626562858962554956929384161365591867125322312986457621883854784765478134367581777623945749418156715843725675112549914177486469673765695162669579924842622116677319237419338883748843679324978659933341469995758695295611248914983695841583252597512113179385874838298522585925619139534254455618692934759315986147929769876276893814925335934536718635322656569379421346349974941152145338677475786465794291261675679692734988629227235671374345594732338628929664512997573346494827965184217428984675978993913528841159596683731639989631834965512773738661477597569169462165791966195652428521427499684383296836744598659491675143233827496917511817497629125965195253467579757651633616395498938626371687549972156958844587414492483179253657281617137343944676414241677929782619927156195534223994559622225783747123586199761585398189843914629652838792584557126765816176184936575931795412369873263875253297111183672558455381659757923678528664989329355511742625983495378995389318577843988387922945849641144721867274745359145841138148673935447643354937416377986717412492579654764363298732686153516577432573655458795311559499598637697817959127586946848514751265561463438838263151957593315914855191998298338264585918461525543449862591477955721463583181643183517243991351318894337614655922868398562131111951823279877377714447298583515553191756651558489338165296565652153977862644159513988323956934339869368292934872931444283351178175796881568144451728285445275625178451532151515148932663691615758323531566261297298145295489553944963674699447674657292512187577187535519561936688433899481969755455738879731517139169876753897835745872227439996767629576789251419764559684669733878961539293392815976371639812845499452865528676864438628573973939371328644552698821252356445473928583365186761899944835712368966625849277821279527449298227747685676118813368375444224667941889297789692286797414367814176871484335561989664815611985376638189561983729658516446295451676368856586849913776166384783347194499347179461995728454712711572957738159226425731825623256589596416937963754377463339729284928878927374861922218419996998546922778724958422874183681931693367248983616592435656735618748887861147638373981515182447141565715725276266523499746878378513112968581531774956662786536862294113531652941516425887545461488942297737625888592879496742344334892353873123426976558877587318286835567496136539133663623916518979857225173635528229416714581259449983653561215944495983398467157837992384984484283565911929969938578651662797816662781952128855598769467248577355388555891145496646819722595367796117159968852445511755657178495115382143632514174837836729618716972828963397972947476373191738736237574542855376531735846615856825152885675849588272716513796529362879759128245513971197553421831918726591644677522139669787151168758799985992722716362266464627813398751195838815256768169242559124823253996934563351619454788939623717797263689942326249272233829126866317878571889746499235514997669934129164878645285237299583845927854158711671883732198519724392268585596395293111717322865793163874237578958942169797136762288363693273932721789361719777271977925654528821581791393581574936793718396917719644616742751775431155969647339456712453956465418747816718161426557597834286753658732676437173863471965779947487165372352389425384296817291755335417849631881188755757467483614314772243891696199758899297166889493489645382917936589215477575934756122777743927132374737139825262532927222766581556833788989757329144861222686784579371996496467162745295997836464647639984756714443558331972147846137771677276489711768357327164257763223514519717851844821283624922986969586445466375766133991425952572887921929333676338174199453187959695746136534887694814393663385286149196943591772866494553198262582468236141723245659838443578488631512675516496828276316478917852755665886688159991351669495166319497417924892272892687478747853558689972614332742683434339999318715453955846684177228399287311319968383567387773191772576329762253769961428316954724618241184574961195116732259974855819247511915155449833169668376237116861118727116592175284773223422332974914637293281271484858599182733462931518216877193955484662283231734628376126968279567973933873876145943845145538428518914424537568669399166313247151631929369148774545755543586754211754941225765972372113935159582617461414837178924681241357325977794265875357774113385921122161722166961486826174669727959579725477568695747321744216395926912816986942814493424483517551498213869332311949516545536986261522218333585561758867273788791444755766782799537292437777778976442887136969211799452825871471377499427982218181827674247227923517284629554622528664869911556754187613522969474352894671456544835415399769342425531866794274256142885316829641826189195987532143547531486577887545975723142795426483855955563623993932584585319832993664278812814434578853639723775215938213245548573539954977565973716335283871317364773963296831633975849978137851555999756826949545163697817587822725718196168164118562232916367297345122629575793749486593674267354529387925333684337435326635483685227625964715291416864994215412835856965286627232447313543846621335614958392195695997544671867598774881964616687674361634361328377817924366393599178744475796976894282726568793913562573665249778379697432965894827927397647463226252778278623446345466629889834176921188532178526944393248252151449588584775947431597788529879266326614682214226945527456583288436679538912425694454725644345177563841957359732481329692114397829352589974356176989629844663556651785318548798475867925923173784453951121856896293751999396975484789448673312744955655942348633481719681174146188853414639948231225559637493199427972682428349351565735494388266121315275892934943659738468427388138395686516658369284593381139416347965431995494256948956137895527559952226478981839329312378528792886982142854376136184849253137449281133567432888756244165496476791468813485414243573687571847545478572887183885639387936477866379157986186347313395445498664599967879475577288269687879215994536879587998162414699667194626129978745883249893862311961573134737139727382427674615973539832888589299978454173172789262186817962792477182664891499911865325946568714992161577557589976879652415478813244399789775781646279678837869664175486784239217289361358278119651586263815161889414187314637149191491514372389455587268448416112815564576265276964258952679147867928344275176812144626322382345735359692587492493958931559739596419828268387893768658497213111689678434897928781931486173616257557267273253748897459448134599836484695337942393777373952549858642847588964338531484624424956869835475971555639468162321618453478772187256245424917995138856978215848219584735297584292358252971188593398993841486274937797879854366141327458999488561862276761465235977272262998648322393997395396561889119322968552455895674157872975634927978896812372382926512665464122792168178647614188843696549674596179129587492417199782861228292965876166965443731126461395836589482578676691235413867586721382979717819919678666611619194879492517284685848916125945981951894445444872614723159539972133938956546216345996982519817479941929362599468655593534222128994537492713139276511942365188347964459948859577799715724547873576529692878672116658864581953764944347424417595953561924295232198958721168978619546994694831647999627766395225952696416924434457842427644666669852652771679934655842859891124841551354677131852931587247651599685835847952813526826482447257552322815215847361881132697629631846572727654427595915441996742961851313411435512784779937335769286165243824282948158466958167812175171294122722712788663758967769984147981783559649687968767784267994613798772681579664891275671914685266516857488323979724846597329897549221473771385474352941959469589427967386611467171843874949744944187533848867986983922516229374417926754743452526348914199828378633662958591849466358585456886595723334534386482571136437915695773729188621327117378916473351568529358198196221147782686529737233393669115743253225292976521187443171587965596284649936135442948291863373473611227623945796676292725112369533832288915872866212975398248467344871897514735865357399981649232999825648292443661923526147211581748261514194591926675642439846885555929838196435275123281195798815651961471875771499935338526687319634581799453285693683319426914885839875239374968752394495251315336294246419529648199954226815843749582637994491497421782364462425994122169121626513934918615628176511118822515344183975145975512835664875125497393529993718481714322748915217512672391818847514676941867317973125715816272529786598928745438686695679992825993915188279868181678929635324499562936685177117197235153743898362798311494596245676583972393735774578124714853184929558985871731816628457615818525958183541723618117195969138432466399795594111135755181669117899456616663935243625591827733337264768133255846934591162823127782668343151668275935839919496741798163193818296772976935155361527828459655524282178252388967557753985374526444191929455592692471794531818374112554629569262867563455356541161296913878148431878375523862762151297923896782741425992476154184611566138517544934349967796786952594924267563483589888981658713648783681587218156847891745112321281591377883777358182852599838712741516272991127951279815259454312898118581612342628636436135979175529124342343369679461132382226576569824983564416364197512774725957283516898538126686834683776635519138555155268473665482455589277336159217943783183249846683971525156754133719489521963948394323283195995727456669188999253295774546121984645296816791488155986227427642942477416922742748749972522882139536944567846689117723158615433194314394161982874843631954686937932786998673294937172774722641773236971865663775389593917222533742975831585582482399568838868487884139432578463972168684255924957341479941135268876863345161672827495274691355398614146612899496883535368614759861346545849252923677493981969613865216468787594995413529598918659362595934235853619656767226682898282888532544124626318833166364128611999551918935881378896516879421998261999453921813967457529986472842816899618114548846818812179154882272455729525967753155146132821361856532387421755916933683759791188619421347798884294715891537969154147899784583393416281998923327959252699562545858924551881632674432675823271533597679245781632874837638555528957897983671185984831239781145648596751373582923297435398616976742951192671339348883687523434826514975386761846682339372243489797122488379858772535648668181564778596648672351772193641752822891672728985691591998294577829797622365867778157673975714916322183228883293622247167591163179554611844843538767972665775569639519498834741353917695947933734497646337519498896894355765737274751865533515926694465882787964677992229868418966725918536187742729621428595469291282534531575727882477499295596629594448335999533296448951432451611818568677476872936647762173556479756793111497311818371622747165354272669525243363232216746274848726434511979438621155631387387157342157622696568283426155793973369861599143958688355421839712322147718635163879424972214414878347756165189966771954152616833993888938143215884641337178682769855473732826149249694824455267943753176548448893666948379599857976382121367864739552493772332363649816623631228372233725591718413472656892434444243836877877915721284254597946525864939632834325917122921737227617339695979342559363341882626414328699264324385447151386523995941942595587243199397766499143723585873252961974922425845699274938746734415591567856716862947242839123426136836755632859432519233475174429416877157587311898198395951768616243379887987548754269831177276851269995469672877213398427817527543355626598891619627684497618488461685341953956744684681482563388119387998521849488759977888397821947671699114638252288188576634553698461122696392697651787845145586424358259159765995474917144115182344117477678915977947981543571237267445241488474961383638242854721982417514966698829856159863182882169353529318647152737787314924883556691922216679625755884851125537171899892748849185885943844859643838898344677615983653316739655187474166391259927178698851994665268988612436323166829628729763925582213479239972948319218725263575651245248678419293388957225762569234332455361324835848593726339758298675576945313753181284264849259292946527327386881678764419785699679379441859851989546249957619576326828169746887542652444148844631261262157545471926481638937562829291927812485967853879161183754217452345474682775184589346834986935518598196613882954394174399341261252683115139786356765979379982348515892425977256552978814512119484235625413114783388942829883147571165528795925735316852399151243943743593953114529681312148753437117646951738252381284658224248896378111474545128538566394849485989562538734383249637985125973823898871564486466994297856541796962649153418455673139811738794954756916546283947882223697919673947364588141866586868798997411677166993241399499657764161783735989877253935839248586746937575193861955553397177577367165346975263529138467783933887388258778112368976834723599741242751796136212982257254466966556538464638664984792769357132547797581183364737552779933999411965178984725197938633614725699785693488275682785996672827457989944543214989984326564786835155919639481975384345173717794836878469771437481649874149445965739775135964571911886796899295937387122146784837756849234268989981593319643984586346978549567332369131239274527793734432352737467796982154386287358651977317851212693565487725519938714925334339628969269397344551923943684671938682347984776289481752855928151816618686248382815684585364698787273895936548128217699838979123649527928192863849278995547957536845635798956872774896499951966782791545396771866644826236183674397641171165136615245796497488595479363948759795466737484677871796892622441951263219934937499263919366939145668399251361698548767717827967118169978476294349826889612423755986922739389867145656645384912584179952741723561725711757647314722294727611965351961796391129542246938175891651552649765514433726264528547138423325548425974632557955879299444714927535361245225178944571238244589248698576384867177424619189881157638491237434771166922513553172571987176557239299269323924433686589177343188142294362415587494786635865742642879672214181861417996899836715159655581287662378865371198246664915673355243124111181172262592386224144387869179876225734917455557662845537778514371647164511282365953252463586742969598336576855824179679593981651578691554598475632467239221716799925453534667977662517386997868615999879138426782743833165274287914715732264386844867576794749124447238412988462942128683248691622678312389818911548453366135769268497943877132684899484113355364679564538221988699948724212633864829991367433741419937569549392583862587175644339318632163126884965959165473132688498996784684632779968777636299636513413264694838272275419167959263566481522968173987769134281277724873586338447692457557695462239475197586786969796425174928965355291779754758697147699949651378485226945554753989361772277167657148868168741865577567385464166683969212535996752594856875551158959845675696243842237731941736295352623377976397618347995151833985168448353838486864687145661113318613728348918912675747825556268386359981285962551345646319152381778993442913654767877498334692949415119932134967932986982372176718716283711767264532245815348883464561847749129785522159719545822498443469891462288799913238323876897648655818543353174264489928151193137756527819153445775216196972688681454171968923595149168264581848532268964962891721383489471454598614429917144974317591318746297575518264159936776697884982868729783835253522247147729454695556825615572177867528984422447519162118216817965516244588581394561412427428549716484636438399779355171295796477638432425746244353916955868521311286717661818146561776569467545784691844214225368592478519563589981477316536638746868469546319968762922369688747783129598162144521744336781519353472259699143596853397564379877392452166529889638359698746486728941385288372195396176729575722982882113691532826366142195741121595982125589384283592398866632369497788514889113984127297438462665938811932544248141852658822953932368522288557427656997887911987586788721317654563589746778715682167945347771393653973644897551945638689899382846877781576713947627425352225441791995893515373733579417978333921644973964272186893248655587666314897639924289652761836486257527642779997231974884786994551231245635474293598688767428336767386453523737379112728445355844326932275174177336275518655954517322767149942198267555835386715229315884737732325938119438794456528175556429981872834587537257998434985742421649326843829311517124977838853895569156622517252626684218653525129171625843694755766366385256777931369636644176599884273323387857296279953576666495652755543144863277281454998457885832355481528343183887817879747415479712785715983513563275178317896935454528937617529436524626192148959444642977356347438843823965852494184225623394741737625827498133919768815941763892287935752899455915624683443187142459137167896647972913615926818359562456823639955728831858159526796895658158884449984817737674191246233274158867597894758671853622793556693676168633395642295114858472949771676477259214982755776232563396411188651366568875967542465384179347858916496665992126291259238679663956232833982386312113151787889338233222335328731159355769167485238838774463966859593737275172932669432716147678578845125567447561249528585573637119989346628837536757338522133629718882391957592172911452276917232158498237118815477189646982798926322371151252182247553464128565637568712785685643362545183696388779143716817521693948198477482769434641589594278196532315619794455748462343599325818533487317172894376225956447284233638595865441914993576446537588736327577227414363926177774818198864141167243565883815884374169892776364452491231763227637551969446262371236864593661837274952635592565482125391561564634366834456353666157298158937481399968636618133488982683862499748212218631324491383282492432643769185419978476783734179926796685453485416577741414356528175124198963596627864115478998146644233581111183466418899913494566659148691513872994969451961495959599387392595362597937689194392518983947555691748382859353285827461865791192943421744798146553958619379362339176522416966184399316631575899543641938189988299896822931174376427168629911169524167293127925353738794436812419891486226834279169997869816558792425425998346583565941682427159761333886584121499196583511589949791271416527425949837944143654594499243424885434654186158597819923453185147988963471138453412921928639692291147698342911785296881473682738687854941384586384551114356759923736579323271622894696969239219774644798756295756441942926934737443368433961762562529197619541279919838382721758635894292265277346987438177526443584822352686765774326848999387391767182298923646664167941326298167482822547543648593778638788315981221923172812693976871955361384275119589812183432993499295292699498254154216753946856515389896963168436475568821829972366892576764699386164199316827598913556519513173644943148854242412458889977937922325246292857143993941472326251283812355534443665787491587759999769651155746361753913294346886759264586269393276662668621955188839185917831949858559638768284689716687166753853182716134642369458823184142963586981349114325556833666499941331129119485336499464989448995262717814432938297466114877758446416976955446926321952764358425957463682966488863535296366759762638686957969997722595121544259731629873518819174617927258816541731278467745485161639882256773952156282295118587796896689262458873127572281136383539626123987568784247559335697846688149712112173759922284229545192877571877749483415838977736278759527251298599554412751449959159568613982545154782876262698369875467355828889772454189146684489646292523496755976549355938438524894597136127569725371787845587668121584278347725593562329292875826845827626678832899646351489226758885345237866729166444523848265877947125867599592346857652117689184442599384811929187869297765757975695682471568582693588383338394419777791199538686854284948934326954928297532293965944282446245687315537339787244968712554872144459348463973818939368152366591443899669899896313181682455782522629116313513583493378918667762452274884159251385512351639727491841188395497721681597934339232444958877699874844489462156677115384513853525286497189297857214949411778366487316534235192349953952325428878983886264982453991727134768865827596965648367175124237729515289595372236193716699141168997872325427844753131146218677996449152555711448613657195198489468471436843439175754378754182325389916349852687244672456594583441512699574263743235767173125559727818854293328837267237554843124589461614863573983434249321144866679778973861934672969154727796147899366547915886784449429238763863917377732836118334365764468158919296772499376567974748936993384762723293684385367448382429569456182497554899868919662355584958847875628929215845296515979934891352997483218763848486857325456481643216237122484941442922845296385787946679919243331661586949334652114927147292669428379214771359558352676649643975854997323584876797599655152631398349893572665361584943266868391291338286835137456515696415245572833645585123548752528527927695499646124164168536235956363839316354218848955922988826715258496223577911496728361814747381254569134896518243475972513785776912346825183169496175846455625517184364561479564665749946947512732632741436768372846254164379975487919278928374292413174586828389498928628142466355583184817668489232885924547873496879874969324577333937538698897129211221492698744628119228981412798427831913916463761419226129984544164365534853972744452751119547214969486711739835661992858358534285942684328346266486697233978235447175731954163488681633997879185521145522991971938937796996755894528256727721517121961288996473832346957458439628626254764919396843987179849236264868666234947645645391686245436438148576791381676429258785179922618395448265843248821138453353546644793633179981953784349361476194413387631437647339954312237744998135484936574784593473152853952974947961413984423928894839474348981949853445255924436264773532974646776181384932688812285613835494673855178758658192754148546122397819313786428875199953783642112199394376141981887335328588198695153255266498786148776848197821884527218881543428891417785738617377148332121956117478648498558845436454579454354849641792153256426675846229469513791567726641347417254288194878812148782349285387536396743636315974753136124411129767476774865869964627614826419549186445687256957792826159652564218276514935766297215339524713843845983731377481224165531768856589722271136163555247175924312391275868936647974375288317681718523531568669423845635142741268599479886941546959663436813344299927657738225212492654859761593393163658656832362359969429862298412822627982365931939917988755834371699447986191265425681333296887372233644174329769688513755943695134145765541999352163588118484314868246354599515574666617928859426565112372752837139471313865955961543416939686656137456799115598872125178411576664552995791694178197731621978547461822917264582187586849814599263236767669521537975734451841929298997159475833556816526256651111746251145681326842425779977651297245269697322868978526394924681967769642764456254928855888961462557157153134324827326784112554794742512371134967127926638576988953864731994651846919687272158314456647893919754359821786777268429361271151828226165744378116143962768889822675181743389333474565971758349547778661225384446291988775817615832527458683667187481132769456211278966227945785793366493721626499754898221126199998291938576281784893652157877535416617364988553459598752164938919924271917329564652867364636131979634684948979195489593655656256893997367615381271724282699487968724693956489965449751783724378675145385967913368439287198585931675639938934787199611961394255925142696292486317115199231418762685159298446266593391739446284768162672499467751154571688886736631422999711369695677888647567726892932755583862167556992912537499897615557943824998139435117558267567751348762179639641441544223461943556128753211477782252488893499919947519388469184614853694769871127227155666573593696876224379488356631876814683846299373679546247893519279895129245486883851115549278819117927937519645537459814414391713529628791928276252999251133294126891456941285196177899139337989715687923951485655772528745749335668449945171955436243965593748534185157321823791226352415397984814998638874829937563649951257985556418573317678948472556365845197679177717365467277578893446194453812515744682956496345178281234867479343314541654876599931898692573168232532973557774346666632758991436184633393246566554329921154989865237953562119861141146464355839774418769412556856351747845694875578792178255381717781977968187919116699513586281667879491653469841214792772415838571593221842683884854948432583796787687934629934114974294871166459775584974559119591739855893764467615896296886648118622319782765838597418731233828129177637555622485461291353227886457917295574716421547524455277419262488852472299869736814657773849751344238722463629767748598593161881136689623971896945469864792419474312316259485763922396353583153873736875121584569239427337986751799188171137915374254538997516592446574251137682651353849488275421636866363878633656315677164366339912333951142663182876354762816637832289932754162348181497941752434223615554987863924894744337687475946752348376269682192365557546612728261968956239426727521852559942688237371366841898956776987122261264138949976924821192965458915277735191911345431548964536877296388788739221138388494488271181976168138386226128948435427499271512224934322693444198646789783239153259911221122249946343248332229435359195275487141457854265711286166881133394158329258562936548757967616788985929624429459411561912129377313891839254899981172484818144949895328472367914224848166823541582289394297816954391369368664784299119665893861678739577712264175164585951597152977968585259428689395914473755173744654734926752884225965962921216738961433671244575126738478695369859999657671462547718754669629499629154328358977849266941296658723934194367433791666984381456823119121826823837945441876291331788166543254573599221391891955269976196386856453617713683836649585518419118925818226588541153189646948755549978688756285988283934844525468479795583664127588188645392883613287123665623637872258898171789196993855515123549657399592756797787464797512819577669556836947878685572116789337268576385495698351962554499394293938768762283583259286792484348332793932889439794541294817126989425787261784434165315486476976899335456656977569496496836473781615182993434385558223499531959773398547368559943155545231987763629118469484993159147768651276689524542154689532141333693782918541798178367315783844979469911942624181936862332517957638724735423953834676974283968659222668311559449468545385147114111563789684539118975849283923118984263967351461152282644149834438317917986646134815492931618925991457799262531943889786549594381288539252954278556837675195643881823393566664511673854893226669977383465812917253266894838246377265831741868628224988929192497964891818248966553434137539327775733989767789265261827281521586784987118123944414921388834818636951686795315761155685383951588838931767723821293429791136972831136689134657197691814463872298334417135557766314268996417293226871247697199458595279599452424999955556152173173373126791755236696482975648326825428999261581919723464886594426941916975336166286877232397873833439493597196777174712629992971112475561913479817915912854548386296733484816565824468612442164142457271475213367777697837944815796974367232681292669658585224177956149332854362888195872133339833295793387833279947975962694948955561531231921883571761774562422776437678363987116657481641498898731895566986556762278561484747294677413529471489751735883776611443746678815578717429185941188958557384357779763131771288637882677393772916275242737782136613995528978486837922587646582718284852541317396494121543118491126514665983888466598129886744998351215857496574448832452467118838337975221746445539677238221597141294219673946116944745575895211312665571671379885643748669399244473166281378974884255793255633627411539875963833496972679769261442463236228167676652169299154917152893882721263749782993634379867815428112939738327812762499712952114531591547492639696733335999478837889316635343171429982464788378674688879398271779736155177168376633886542755639678382815768711267468635781796968414844154381329647799188952333761144278951391771798548719818882854523141939299964372255236358926966218747154744777599577919613993933184167446246535226629443925834363796982314357338893882116872789581546247515669431287755863982883328798936972676929678483855844492883168694635926483235811797557739988355454473466617555494655156525671917285827917788272232393725632429796994898181532999486217646864722633218933621632349466699378896299419784954769433714698749613928844798826222322248177461517544522739949497245356841218874849818529423845514338569794648148893635522113278659315465496959379186992893352426714387317676725197231812667751976621956956162122928978177595441988763173718342589839882861952974241918419835862898378969411276569813219549263765592253261111215369812521255291576494355851667913974895353875835589725885769362437869111196787593732831667362993589996911973916527889993489332487179933695253818394575176529471529197897615849683979456949723118514583122659351852738837623622678768997795442455748181438955457523548943786971649565537959271578759317879295781578784827245226838761232184989868242798979837477412596776194213734927975923419997591589185988977589376725837129117398142913468345621248661385684931942776957551881568985798748214885561675796641955919145392595679997881375974289847979254113595279455683432866625135824964367129199536629849786977151874266724262343998426269474358457734718231364726166814537795994155744484451995766899549976514968526177532851981212248985678561464421519991987449933836976598594254132234747594657984443245133322957516565621116216898176616142168484634257955849685658493692911742135148978763288164643264513162324756991146738344713935143887922146126578944713752628834281918235674958198486896257483384748794535337352544123681317362798954942891934611796778163496731323272683657647948966674695636515737872539279364139864858136687833989424189476629657268133481553225986796728616355788648974792268476527174938496552984534691378144626618338879686447973982653391755187724728866657612488762696193476366659829857958776936374449558982533222721164719766953622448156392215667759516996846283213723838354498731695713646911715995553223125662862321595799421754137368413229952825755712445299638459398942941658529496486637821887215639689226772428375548886784249366186334254137394952754687582952781892481642925437911371175789956851523395826889555478581614884462849629988642179342169976712479962873318586279212187438963917143755961748156315725917551945185777715112955613516674724245576696443192973755668434257162194812127315138462343493646567679618182894797782644944629869196784583743184817546986747979518678993539388438412354336219639881413963372527963184277235811924214763637185575676592956952778447556764181628979557395827936125533963779464426868388673219427977219935547724719396493828751822235278137493964995482718636341929362979468518236439659459369358884421744862859394943989774388244545928535799789627451155816255547637298849161827828491686569747273651718873126517696464571997774718366425956979532339387353257574424941768697964872552686489696332124588959845737885212935981753553163598167876378968694274796373235193274187455728269928718784386865597592759688741186657286291978968278842576555756996229954781832357969975857442127624277374897559583126356955666439929154173718817375997424153951531221247494771178655264696732491641948699741943766565883992692266413716183557495217168467175583915949627792758589573622721885814736699248922278939175758911285491619823487621482765156219495688934795314386453786695981534518432542386616528175885829994463735761545717935481837828268158489372285557828962436377453548571952942131786844642467966944726589391737692362635971281525757116248939145362672189741828257485472145658261359218925216999112488459837285619788746911584276426712658642556873998168758369973233467936825378993421466433555465413543188631824979319451314896724612771962441248785222511685416498223694524646748932753477558664324893541615122217585989665379432591728251784391996349984284175655245381817533856457966296571493566784624426122293568954422417295974615982937474775458877816757828436269787498956811838229391829486752981558137497812553589464289951292629575576795494871231661276139924726672168599383497763878356197283319845238781954765418547225687631682745181399127344121284787199987147311369641266359589633472476876654914938462352946929748971438551228895944646515698189912535454358112524923841264583164197139993257285142984351967981484937471889146593553899794136934534969222182553747465191986855337149736772264785447314495738977858343999946429517745825114355736771746575255799178215268287354362697538594276545873581149949172557857537858753177751281792955416988924941556574775778389555733413429866518761357872167866328224842994535584213596689296757154239565435236538568589872778493783184632256966362193156376991164662257656948447572374521361992718472146546624326272796911648791397159773377515198264394985639759234452136543889378678642992913985234752322849559894766256472183339482391967682946143545849949728211388425138922462393283937658985478285874146788661849415637134844953159189466946635196974599678726921164765455588593566326411958397626591822738669746312936188231498224893787698647342546424898749468844529914821288259289488256839919389591917734165282738388238678439529584411997242787867796376998517627447219733871723216138288261896275495975291866337915737973263884655566543859582727848571925777782137289463452359816179722148334963481449651324581121442533179333692594966167221662577919248146962997132238884286789426279291875724793528238195255589247483161976637559156581841592772113636181734565585863145516555167734771357511122664177364411121259393655362146884829268753821881868697371218648799711567371218853888453877182267879188889882561968964694338929918442819571782955877555316139795417728373632449761526135946742891816292227547323696933735171242639991661399712519858611544724525447873294548581165229396355197346735513289221889981921176328541558885561729264756559317941633527698755785897258858429658845658335766961774567979644329994221351645561171871669683941866333986372574978212976875887186162837124442666693223899994559761641854481479268965722341125266264812992231328773812918382269645783633884516984133143861559293959695312879421524948474873116137769577464197498993485382585663338726586525563441378559321957724383797275645648448124758829957436691169145818958289719715538968848712513267287324666758385671469278759236598259413867444564428379983721477116175416283347145979875987588233726665331269399896753547882229123741443378143732236318216889359392984467539749317389981637387514692647451155378436771368254792485993658586233351997736434482815412614293818175797971711986151695664272133595425771861316686136388214145878868546583224785274298832586392138674787322179367192834952378681448568687421576756366179935615394537855699139983781674873839136967794218216668232665771741668622519621822196669761485916274311616753444584553524136779939514713389973988755967678573965866525155875576449527472365997272574542918977791488654663876186521883286327441725316682766546615847539893552871121665462453995634997814473911939991282756383661854822832158867357721139397344321394437666431865718352476779435755339619993233935631491129266149547339671942715397635965692714167332825568979247757792743157747758277984663729821536923314878115964948974615436663481928361358269911819162971759694648836872255155213367519267428692513611655644139488194999158757528977321542349428349787493849572993422259491417688984155863473688495571382965935352328763337456767926854697271848819547499957473184238691396777911157948949397167589314768763374974762559478288837482449128434646482379193271266145111965287836939946643639794946798578537637995921153834754633687657227482836299451121898592148915681842574458475894252428249794893975642748837544821556425775425799569219476996717954968699793338372948356976734928898127193579539674795657469437333327113644711433149218147797527969197559664642974766675591638165764267146882195946583817673799714189914677813344937741915793981315125877852756545632573261563799141762969515298768934416693824313778422646923296819517399851641619789592468184417183962856198369753954512177914192978418446599265174887445821759619924273431488996433659579341869551886941399966719914684362992757226715157129813764628859773591592151392977542439518864486648846541163455828543933777674339789231384885219566834873633152911729941518223169273314839264632529299895395518193159846556157792499285443494817916173741447992866646872326949743579722597695522975547976238572216288776393899141382315614951517572743977121773569984849666953384774218991699965889642658488643715866442789493428311516458824626447668858492725498176626482263427976231374124385785852253775393517938613697437563469245361491865552382322378748718754115921379939936444368419167158743264141522479872349294884278577422739534258881496958835965582924449198122247852339112512165449557699447362253452672838769243679222568988331726933917397515785929129521586166733724525791766833327616299461654159221397833698374153699773134843812146112667573246511723719755449614192668269849985262445876799665558964514816382262896798435936581174652713284828568952731742963211399998927571677846843615991372232769778175712371962637971852475646565311563747268477331184995488491939413963645976677883344719517958776521889761452365578771168818637351435175177857975543649569936449917843987167497869245162428912933548816646585425891186917724731437272584353619555851381429961825399728766433912888319917314543895389919986288918774315799449979213335374275565238732166839451318881984327133998563519682226814719346199943814872585488394982945698916579577875681228555565287953812887915258761764995974431474871598248611923496593918378354453815696445399636115237175327387555638172121846287664395241734165261662625549486655596291289745643597486199716576929764232817477457479855852185587212385769392144856684525827868463863158982321154296448413973721421148197639218616442158965323236316397658699711874418961428269238751896383674917166811466638946777112981699853224774348975161241733724385323697142151865579476663327123941247829686935791397587382568547541194653534973523932258169889754227123518347165987669574771169279195443785549472386918453349943387694898462222939164531542491342327939384199832851368937841727197355459981336541664798445362459862167328251413793779198778292642378739895299676996217152567256661977758292716641299913137291147599289491477522396145325944977273326189818283673143637737331186239581591264197291137514754853663353899685475986376695554939765671474858943919763653694585271423683294664652335443164541848894391577971333676544265686791961317232665475987579342488326469399187578686929567631138689761679384547876889945142263849187334456691344144912844993798285237744376169878822878363344121164727835918517281819648576124671896968915163424971169977231655554747323278843558538278567497819976432681887668693633234985191962225546489639853948394985897729139834846768158625723576565968217737891155664475847455535662883445375985689613737497829835445329566765345857332887654548532941416161575953693779789422339737126542692812518488215169154755753918246378996151958258891774193116734877594189439961582136878989212734499462183438656835682648593768544648742513546949521793476298678786526885587799786839316827381792494784581481686442615578585519333571117471813319715926566381425666597716974234494523187258152252591756113677188576354473588484189289989738443138882781596181236529416547721472239277764333698834765352147111723557496769496946483222487892373177815919122688258953154128767919594725782144248699796241775571272493117866138352316845211633987569764323845748895583648728246699542595138456314166896932898722399352241938587851485119318951628273768333161161999457725846162566963796686818651446789165752884575178181823425893143334459869677173568257973821953298657987966279718476737185356931569377186865455853378669975567822625934514535694335797181343945491844234758948715333919999194992675973769767738823847283851949112737159863418175765689497424735672275471785961667929144959542533171969842979479765381825658654353175953415537595678438929165361823568984895833799583465647666511889996382898447147915696186559292769563988916621531993171881713172819957867256827479397878949665753811618291279378855635589696348171696644429511464682892392664948315846293734439966692527318414757698686847121978748865491617192942477555552574394917713672448812133526647927792686284264631998128965319611661496855242674579476711588712955444993487518381712688172644897456847437868997935821694911329769899362695413131454662795744886659125953569934996748363973785651457551528439674984997687654563378815699734818197714377884568147676539147981171135523935542491658258858312524229897476265391464589998279942154253592664348738874178836569572984414196399865816667619946165693298292795643697958559489558176635894697138935517355237746827274162178795345331838467394574977987332563947184799747163629713485248195613481748561283369749846978553984927631915116335238896332377881913244367919234757427752699799454346339788489438747122944111161777654695365998685597371698186223185598894368994114476231493162793222846718995899589933231841792262658251976498181556525292773511745463215474947938126859625938442582619131369498945371778244983872971944446731837984336185982176927361644811688667998688199744942267332494188551882342694252531492485271354735928129592569394134876747328926613768179445222667699147775666465575612372919577654368829322297791789289976235348969599933515947383736366228345993196128363816917953674571587813165245874142739974228673611721771248619377349295652866515637941788981413955538443248248967627968192195651972324564474354159475434986761787969674698924562197426245726434521835718961159924622771231797876177627994735855859519166295886739748917768329131231655791676978629659895487558155599658121121928198178316235347555928186846377565428299994525687515695993693185721513958932286237636161518831816211125189497341935714672422733184584673882867196374674835877749817721828295498628576545951979646715496597831663255484839881319392553215336112118811981193939878853266866167877928548599394495331944843511723765768577237422463672386551439554613477581456483975968435699653273932853959776384191764596317511148291541777328887164331537584566958424195889563932159155284477691689418843934793994799358496379872568244889973488645249284637385314513878749381931766729815356881299956778816132444484416441495168838633918276113843942368137235292887613967588723549214363836271536693812693871762697957498615638381185328937164265498626716871435172815363316751212947665277415728954642392154398671696722269451291962195144285799566848879382878973371741538816449418636765558285126864997652146128695137757758996945671658671179864169448993145586996868722651486745219134873132665824721496286219464745671951699528667126138556252414695332715852818868113677354938298581546951979488657696167594738522155257291389378364693568567346233759165744845239327148312151232624746949293589835677819151983589145234688928331357851714133659852264693513991362437146168269566656784183653486445736127214327825242822538221871525955686159135849487348516778594874321366919259491881198533752371177127138732728299457821827173619178517117528854452746974821925234914754931674772233129994276258668861474243999594292231355155797983215328587722846687515154636591211413413591212266642656368987865367783899234252644779313569258651316588316947889435858265887894219589134914111928587234596241192498952865291728476272275946893747953633711986391282949787791937153942398983544583554239485189562355193832351629834688856576429245745634715429651687191456967336976546415167859328275372893435842276453997929716662457126986681932287191153734378484688772787889719977757522417889286884632783261939626272327486473763114265215283494564553152732415437854565977954171455697852925565767743616224662952222728342172236429155226118531285162896873654247265694769514769635194267786444475339238371745194627995794442668852548646185128695445957776476563417413333218276754937643498882583428325451764832195684752321593966885371323749294783358636429649296615364159298555467169912761548447915926377372753451449387796246191755745388746985825647953963492575527456327389167659431993897817113795828972557641322898883479912426799922699677927925728412594594592893947398517843923815525976145912186148744626284534498494376184736974776311792254448779659385253295999699987699598932978388265749949469827171185428394994626464598176329961196789451547753752844582275653992978681389154552668456315148854827314339162252751847595132788651559443274747298955919524194352995438668951677527693695956396989955996749223588675745823368295351293448761862996991943544422159921434756759965633994567865726363526155314432582232935557677588838658537816224954129741924361978253771889183535939935326917943776687897799894671222934882455176399113278891678394279343181116166249341587692716272371914729712562859448587145896359878873481791761584581636769761163167365617631213186936239744786796922733559471217979381783559915692297915695358773886496776144746762143794167656325365326961772989214185475839118398687896335369485655144795556711832354522334936489147769768115474565492493218969497482219314255478284458743868958965292217234143549999778215182344884636896353715446218695953614887388513642877913771835335297793542511282398393767181925766558282865935516775137934323666697112756213564317126262578734868857647921293811694653384966884443896981897665393351376921784881132233617194589948479269843521782717775938816814869421395481348663389243977981587316531184845254882854399389847779432727436961235353763816381616413472585679523572545339353939788695271568581823737854771242977672626771153858958645757193987344991873559162399148964167969118416649957997248986269429574849773678796465277669457281142115669386179596868226279641318944638362442474936595251699498488874562693829686386449111729387747553791695257936838472544518678323655115482158143181642182469586151985548832769796775964884686125211661793954434744552563414564278522148474783747559839223255651757356965638818744271784679549392894979564669182952376755953692132936527769426376333397465743368272367813591356966419977778786518815651792556894163238936732914826173577619469796139298651386579872178747911997361527345257177765199448335591556387668568166822919418274116338672141312256636544516599144795452142872337645927318366526348857587796527154818514724866829244699468671854856137944932744385729276497438963244444964137172927334119444345815551799235829426967697296359781818917763156693398679177498461562681516337973149477397395912976155627779438134987535345323958557698687566276999319915184676695261239752514495682553137935984577763518311417413683665119516828222699845727737615583716719916377645672778248171397272278879693311474638887344752883818923171523674781277988499266145467377658892461913796897994353296389291251133476791727815385755224934719898271433389873816349775723213932245432541847162668711547649556585282547248939611313386356938468384986362962195947662959943799356782519555871666891821392766825187613762227882412353164373485981575815329188944942494699189866749296889271412356563262175977819436627899579121358651325921952966972745713316932728619233649358299253864735116355241525742334629591143936875478168157573884182294233569299573681996532498732582543977627281535968573775546266776176395526282874392351197294671571732959647667517387495796342346494685456258752591656236968259785235293821469365941893649536358962928868627654176627699793676623681934866421946893787877469332769937258165625686759198111262436523745967912597612775184515892627192236375123491113214641154711668442766329173291397948858631974571752949359784319437158698349789679744483436757424862529879515871737831277517259994675319977276634748618158638564249937442326377524845288783382499529291614932596784554651891772914795548544481432357494165672864438935732361844482559426255687288517764992277883523562177982912952185237629673515762948162775694897921983893745627117884434287457149638564699551689393422986798612683889334616432632785283355263728638746448751175175971557996972237872189357918318363342156837869933966895345529832331448663951584778435137275392836826552186785963587658451314942632489732656938968955667238656386857118547927597684394623877747343428293648489426797458454163759316719967986189829664992449159795749648468181333917965162472658373649917878629566256716258497822929658996563377768724382388273733433445966155849181424742179667859269546826781472492917249932138991739943879479329729129297757475394745763198153847398481336475174691979341157916141912454132833421997985498669266883171751673282158148885922312255174326248462142996878444664629854591444736982141463571914888521378352977868766733381983334795268149867163267468857833881487771447918744231173999162844473783355828712247896799996836444147638848986981242199715134726679113758493762659271632179171653176551682238666958723955298775737236918974442398569984728189976299832713662525647551769716446484137622466473896479679317266246911368692398337817615169697651215566632777944859434244668849568347985545213565353974413941975286128474527484595369634689693586133948897528443423837774147116773261332667943389623241349677476439376614668657481853145284977485824495878187638973744686798197368983666395763758266868117666675438945618888244984287278823446292577438677913316694494468621856664763517758951575971298455666435868769475428166626138462232836691852868533399636253672797336248235127933593798496516816876351894883884514393219545251317288568288291654849931862562266955842369737838653859529415746149958268674587149277364615538218411543746652129465299978922997398366648763432291669448471478276447713176471122199387198327591378284348474864758159264497332121775362251662423486764294697174715991554266885861912943987775114643826959497975775933597386432541252958889544415298598762398775284692629785189898154625693173633483235678679919586476677632778694873868562144118812146325484876989818241374843228138754923398587793219965338696749396311898739289368629631437817829927971858142672683859421484712822438533851161749347248141287499498651686894266992956635577143321253455696548526754967642267681118769446346749687785537453635847214339445223279163566966678866113747255864463759815736479849427232216392976966826169299975946299124736329223838374521912441693586847568468484697685496582354814973958861495627664238852317326243363775915197556476457892634313194894787437668656632451525927328282988157881942949334365593225817166579633942552797953669378393475285673353687148136289392625931526263469968237135574715952155274614471587958869976417597674278593287476285664864299219837312155562793447867733697628938272479576856458291277488492354461777981873746282416325942597871546512663622226683592322697583235535237937452955914892175786825169498412131952275979554157794527319361339897655174425454331456691171797345955999384197576961778484316667977578735396842895997841616384798634711259564947564987684459373413167787118187536316722445663752933615434613169948652616822774738596159889932317598787788136155595862446778975388881233845418551483187528192431183764254624778146793545439116295239146295449187339392662257143885181238482527474446312662299919645635258166992781451987679648133861632923139125631313735879639723773893258243629871187316498446313855538621697844186281893581841299115411889243679525191818919898848848753825987484952898594619543574317582945778855545367887589614645611849751631984698217929888341995278377525885574131442787286768439955955129584979658592944353247483821691984675931328699889784625962159254521965963559855298149859518263863448382143798323139198387462677345938295698112246477712897599577596279467242881816571332195535393935814725329458886775916843759867875588365591343571471866931957267788877368828871885912691917816296373664774692349197842125779232671526476998389942663446167766915397385935657151989445327686147953594719884997784955869864627884397339431639666996694153594923172732883393536362741666966362862287487838821264429899477286998129145354691351935142263213181167819189683964892651355796467558857496957895176874131392281133538595942912137153332264369919912179444176695997754452962814982698116591345856416694389979186556845653881283461571135699938848444128514271387387389921584919397727726834719348588562792819581953671383168566817227899631443929975129356864944125239171244315397965824432181411411896169589171663267945696974256969736637186991186948278149489448915688252547951827739174186956199337342826457839498763722395761132989614633785812783275358925344322268153647681691356817889538772928458967119862958273553423673185612324151453434186248933893178499726717849358442916969716587142983547271727118913277257788249984672885919962194512625554937669354881362114848439493245144579579474392984728439174826775853988599989452629881434944552636537912324518858283316991419195147556985689767599733258489123375334717742658535326234525818835391112851146259751869342783328692246765972681813922686553636556275348413975518777859391551226257698368338534264665778356975629933665965574682831172883837996332213974515728737721299463683583775567777519896479466843884977528747619239643925916654264359288496686791875864549757392958596846833823122484555864884865528497912323657862883371952531752985349446954316995587871682832112619142646833667156364979179854588596415281835769663127212642677848591818663225791578957257191778726738288715593725778973547263197764891977861368648157975637174692924248262746287114758635537515145783956128836922297174638364268187933669915158885217192438186892293893951513269544433454966427629612536825131236696814194581437154898355338367214467324328929921223399833677157972232356463954878184894569316228972581979869295649278566893462349367176689361367738876149553665427579215378885843879424424935142594395238997874927761598378221852497126286991978888477885688274877817539773718828326579998659351133371627917618614398856951351716369876924111718139813944972753179588986486887736987972335816572923396795267964666676381226534134695436741145211956744582451291417552943724315458659828698133438818157951458512341733881698833684633873383173897715224142778926678319698376976695618117189745911795388154785567168457587629544142558289544273524169751879869632597857752358921828118883871472362744388361697726333638529262373396368163556418947846265365461998743751461897636493324595999155634435198151341432643345585444571543158681886453273395275889323635922566421558659814212239815165658857977484217124799889833483935759472778693958481665286982141762791786648883284856896714877162318286238197842136296481956691718149218692424542474736475164152532717919274299248437436966144639445999275782983259233311584795778116322757177677315658363545619211896464774263659513252163234718381245639811339867685795717179772747957373867521679142145111869785256714772673951296845636992898624722756221825762711492617735585866255488531233576781562862479283734726317383325294655527786386791281877834678598984183921885348736454476515428173843732186616937136983622149891733194648548786572366857914945426623988178985799917274128329992283878892563448325958777818757385599683611852972446596215874884669876753988946528734126783846267691373792426825579292523356512987326645212317352756163388671494466514461555931938335279874734418721265116977444743258372318219791667858537239483663118868995884721958435867753932655899162654469861298969481326336932983991324791158586285289659251422954859167619754957953824365955437212883478359543713578184597217321183218412536974849732639861576839784481255163294639195442337468268246823643762143394438489678891262317864758698941478828417874217652919453819568763739273835268175385684113726745112384237561477498872192563992538584655931732381768222819173688378336982263626539573687919158532869436826961115488195545825949632449343683861596579499996298162668294415289712452177561147977248354381667936755738457692863452183822973215628517816839151892869712478769385847319338857764989794536955342291126317993759899581273852923512455751612876658675788568246418789495567256682657467755725691682616353245491466838535917995813264438698819821231816486671994485454238585375856243226696347812569127158883211485629763466159498878383898572999288233278347115899919924177689799641224749318137541845712192385725146573794343119737892473477187497461358285671639815667128891583928439995766477526451281731768248893327914725926162349166975898556227783717518784974891997856323644489851283334899888937287489974184767886421999294458797614126753752568595849856521491425136571488655567627358621923418856972393481152879844584644811754781824799684542766929899193528793918115486845172191353734679941894892786466322897941649411625897863245171959287431454699223726861949589128374647211514188552261262349641339684543152628923331935185228193491547216761421485919415185649915627787865511843678561798934536736643299895761971367845237556363428988788429929649849711633251731625523544847217227933149362394965469215394764813255379515888927767263419178627897737884748123498271748524879332689783497872171228561933796636571335583649634261258324871871452847541237923283998638169793753968574756163828353992822454784964815717315337298856794247823929932179365298877683941894834594884592444385398529587862152897519595391938662777311411553674494234995966941388956179893679158531496373751952428734459192875146782241164155818269664664159697673598412533917371963834448885457259729847495886489841156982196715543184878717886653654167788716867373659727785545648113185932635198779338689913633972131419557224534214879821255976897599349277897779647428876826396558776821725782558938783726349511253185791848195247128933956732865597942741769842461889836875152646578715755521667692429454841592345852619337314349956464674534842357376989766767376717893953278627857597544991583237392886479188177166685277255113337579244583219861592187638993838488197939389996869459531664957158722991713134879362955744247942797933184153237199129974945146738757323826987591861337679991977173465995689965289355884463914685229811821229282836929628679288573914538263114569831639478132999129738887262184819935157146754166657595827913995243998335148242497392416476725912756868533143778146455892995388866325851361257221877666715766511567339458171761628862478564485636191463915779534994871552152789862319998573849812339496529657858412593899367274136643761629172441574174178734452664453843745568547616695487251479662588759712857611719178848673637249914623834342258367552738158528977814651719952528234219534124162882936723864655198465379384558752585487191316899567421537932888283663914949945753576547161564981718165931897897554456562668943588586383546221268313283646314974425815743436935247261557239187885879312299894734749189863839176113356163238668384891332721363984986498313372939977987981458858391743874327314983835987243179646482419739675885641695819718875663994789689534937178212852337776631128752798558684728569891175138373251472696542544155277868828177128834623566265183859861184966291846584117768236989341835558511724295451736575822868424417494494681587695457496664715515264619147569194277883291539182981918589881129797118598277984254282369475916826314296131216789147687573268863827345861991743879724932751549139741267353599233764515689872341224392131323662972579593718318193873496393829656629576776225364965897198859183392489958821639896855454472492511165517387726118394738721551967677998899646491414179783783798135386244344296354815949562865717924196326881357114321183956948721182572564185566566847154422268357649328673565787487443997413818379618563573832362663624395643453688168663691699335376558262434836881362759712783963548899967937434568673415644945233885517828818345519197579861174794868379672272919391942621476957432254381869494964782967857311493193596581681976633936446665458788919475982375464644488154615238115751198716946896297789417956635283666473261875177446865927741285926157591482481836918122921149483773143559762385483356767713522297756365852159828816783815876917157818962526239728885482485985583219197987656731792396389524263853175577215393469446748734138479214377367824737643698278399644352773191994111151716835174321955426746781722693341918772896454798174192714995291949682777287842146198577252999291687828895651569557787994489855462417323559242188738696658173456643788974984518828558156969942179481259578447398271442598368894277347993523446845818798362648751873454689136419727198184444649694188267691713929198372162856763532991241319549867968698788924973355399441289815494725728876748921699199994348656935951587823452917118897141523527636695655289587413577747953163367533879657155369932236838468559711664522984433956213655566494341857748382161376435725562253194719769274665399281779463961967376341834885321371756622878528358927252667379489613388883213763743786172486662134371258732938983646736976635346639541461893358949288973839166882727673682122539527685247215978685941768557686885159797714653761179281555262532417456986975646744692192872289919945612942794523159534516529148734828957628612252849152667595267479499529677138368157914694668763899656576881753614556773388785787711639783951667843932186371259496672863278894123266996936339433881893696929564475239384445831258835552832868396459814265881658453133525237948726635658698879122652645789477844391914257825647918677596511513466558256998828948337198123197946843365925259657839913422324597771339743249776146369565559898555867244835539447367999691735932217548397761574548319544364334525468189683414496852163572134824614858443187581588252922237141429277223888899932967289624573957586717696535426749739651884949465637611844787839794898434428287966961314934978925385684192451275876693114249947791435455481962166126878568368544395359232859665434617727233261333473499241232377561686759821143953684191642327154962695885854289588391468223764168555161917552688482959288397564697177568924862351838375798576419647527567966265835337275943212789613823727352965886828756218893559264669661385299159852784171695882542493433225332686271758455295985871713823366162338961942941778193827881693936445391575482927498432823396889147259179758548869956945445483446766516629179255774578466433528432577237725992638291856482392386112176976124216784124591778465631175229963989113576948591557584167845126888425754452377574719126235996516516157176286339434699363192864138483857115982945119848886443974684976976951995197815926834796367246389477775582897525821486745944964924435798734619353934291994569536658963692789473487361798714718197667649655932855542928297212552116343149478938895357516372519811984737981874285164675534994378473417253428246264883437658281353186426889653326232356623381785991483888962929575826984783834587214425951478556727565399654821883266199452899745681774486684736191916464894984835133223465178838216661368727379249518861373846567527413766882838434381598792299139497359978714211184642787835729266674363331152154358835438598868832722672623914719563696478662258525569844822193497873397967898436772997846688446731714781846469467651229387965464186439267811833498416395818271549597932162853667813751154379325291381653271116956567568919558638368841687834225284979551829549834985512581912132255472198738937566357783943261542186516867752126775611345572185652629188772871397425544731946753525361557678713617589462757628147317644283744549469664896672978451323361233134755395449438169785234288442885489547647564659161458131294726491839599174382569793934752556217784159946893694988959136238728497824956519856475192757794199194143875649372663388127792242846848999887398367683312457956377594192528771344738798813793657778146188586598717524382551582587838638658737563867619137294762583985617135348995764375165924983478117273256491522565896462397286643699469379464756429574773632497664762581138914683284749717147953218962355811288335674911149622685651561799571243126992931281543882155631183472644988511958761932948187889768288971894761299319271723954945639646679861284598185753659972468987819784439416385315685837488411226214741919434696873229526362488862546286191494463815773137416726763337383158331424897271899389572761174755911537763552531819486549826853996991179531482463515515582494566175227162588671928189815818767496247985941223266985723141671896766237573433496215215678878352194763232732426488399887586437986638776526164961732924336294562141919484824492756481399683582531683694794145544273938122953553666238874351993966991467121495546181269748594785635529683648828231977894738195489142585725672151983911427641699432143473165585543331878474338813594821521242163598447933737864678773975836811526584733934389411323251992286423622161289251592512918955636911636475243791292924816799437337121898161768473111586329496861277941354727727971466876688638933686729348491626511672722671999282976645922648623215339311569448593878836123688259147689542936955933891451374478959974761367138842944953492685178519419122467467355547732775954855548544738613786237539894681569115267332255179963158273158118226843427884427886598271818257459461987438495635138944776636113384656633584689116473267122311928342623225569957994745552772526253646614482122853757683991199435896255882623478663572948684154888956151673728382545889591725287133742136981866538957162177574491465894823498281944659962714439343885218297787956542742591946885859793287886271429278531264842662486169423184551994932859125815281999294977328488261552567162824516212377952588755323734238917878744739755195535924444831376213938166851743484851986592528894576789172594796981491786475669178326696899924992654519826379414939666894481982382281459231419931862968217798426757475577198443716936848226363144786552467771415554237475791271114289982953522861375559212199323997729847635968139454962137183663579238934789343938691854887959477132873375955284989678834965877628678833348812666787358878317491569586558743847694281324974423563959287185611984568218244211434475135896999811922887497248883986424486749291685117824792682974112817758823164499256897979475589187176867268786132961792789357464111453286411913658838358933654741311371987227141214322599248919492269762958286868315352436177786321754652648997383566319595779823967763814973499745189284923983438217923857936133356777236751781549514828856316652758815539534738638671549858259772643588259397498342382756554173939747982664624714667987868836831882794515237144852622535479766599936952654637242364182771741635559468267545817481756924813631288335382416382326857536516771877575729843977686575332837573977613949172879262317822691321641766823497563914267551774212324474237151718134466183489551278314798184656155777395645784827599313787339538283738388448172538771246561549192982298375222782594269366512422222861248353296476444575758759928829329357647857589996296752787554412763729914257519459993894619893726477824236712196116354575649584249219231775486943967667518194844217395936642534295229288421679788916911529842744314391227551889985931164552185575746555124195779494475886932831476357586293877742423225199974368693371964718948626329522387571599185219191888486742981168875777198585829659128973669548436163481344379928954847321381896178636363753757945856285914592953255524544278383592649854268858332594616214556551839414355672521196188251736867257663229416578122245398154812454936955656275451851276816476156182578989926756985613322794952259924994386128698263747659438385999593414772746824455159994756584644591763518255119182294516474471121218196796868158313694447738269273985956921796938877217521226859872411811595158399847578422322417945686679453616944277388347296394214996352975311288344862912425874236369891933147491189837837852535256648794287115421239759485975994451713435997657998954921556599944785985342126765225849486528455976523135544198679963789887598175116773972747424869829525465793374887956986187529571598635864851643949341241685998133915926148479971946188261894865951365666867466764987292973693673889781542225318967964561877884644828785698514983531932629599362695963668233381545946155718866463121326974964496551214446563749799518392888743635199592273487366692678699827389641517179957563392662864769715849797338673519991945643179236541977223332412678223882426252981968356671459551793191263653725162647988425637547343587541468516852951372855386599221582759199845648834552547574334648736412849547175771484912678114951784445844873486451828569149398946864892853359493959988311869178163363657168628453689684381399737932912913985256985236563692961695352355698616797422928277154886166671277943299126343886348756117425611751422279389674934889345695631987512111189716525327391198335991593237375931265497885145747182182142765898859491945871368423518718791717849424281238236622885985555972719884935419249214721556959893317765829387718457963777292371274897236351611832954569615982146744373527789134226792955227411915978595729549217162867425859982935892337594224431662967872755919941368917262573862377771973762166354562561262148625298122711996557783552948776344315971576389579894234462459386256497237537712284793289162418811554528157631197616145666664149474619668896946918585272867761234133211827674389816488443126126432567873192947159197726997374719592183844363791921218752642843578576347689517871899757395771165226168447368566447412737785399593818854824639849724919989724511183366331696734263292393679854138864125573827112715526346383137921775717437779883692477842377482589994313956115163951191762647877128251859352727677538115255123722662728657229368556912526732718386495259686657421275597164689677148659329548465118595448939727833293766838429168446415272967279322832815388436913839866817867898521645787296683273614854649392933783873739926754476741742164837785135116154347967778451567291473827994527394143915337682838869895967936869783922752134548961311741852789532514978699591522694423146446495636632432825396132327911865592116179636847865559244934269318875673998115673746849675743246397415452173384429182558524725394888765867741262499319439788372373766474834573433988572748721755169557825725282114148244779783212697917796348547851456914258981159498123454558519355484798485899155839747965657848675588826366738162454995356787488249633884314475898779222291424166466596872888874678184533778365891942892417621237631641777536982174416852326665366581853414557668155711926167723921835188525375886561498192596459625586699971315814188484459798334683959537776221992618552286481965758191711574767327728313196335385846331585411836413194854534828867383696319825796164691568712951852863567598522843328948534298986614582538972478375854711831783347932328263553644291347272422987737834817692787626855415944332859149633694383222996694825347482767288289827114952573173719318994175697665524226838613335461211396314357474864985427655315793999749468916865427992871893838188568623717532525871724693381597958993544448346782526885494641368819724583754185312132237438936373965951924179394818295648684351476635456242772223119381143619279318618433751259899913733765737285818776311287412468117486636361488383953348181373845758854831696921871261778527985739635573746573418122618624484639745241628166485583886149129656711964267514396643248378459955773742656689253357399177669279118565239394667392261133593197787844218477839712326473633368778568687991245821163254336542496826963426987439873581288289258216218693568459493712922735315866392253545684571441593176645596711936344496235811684431661886668383158657355556444227314374484389881486634541576943476498388918224626518563811233161328759496568536324677584345687653657293765362193661682167355317241895557648675353995556858958129889997732214889699629411254147675266377213531145557215827192556834227196898156247661159291967198153681295212582931588385893559119598451743427983869458568182428528587721372462869513965635644188437829313319478969275955494798116922318182812276597858337323618766235695975111758218693958948866339832276633734783769484386178916777646571217484663531113517897488188231933649749966951134436654566413159485159997656435819198165554577881692953898982536495985769976974899214793741622726693387452768687161455345375729678932961414458952639696624124676564378796774864799823492618897338152112539487858287497681618124483687231264451896994733547883669182228879271277715499811577118153668248326692644527798352659633187896645956866738939532997874512796119666699786358899958248415939723449486147846116896534139619799785347779457958235577894718576876722371938138447156598359585518477727244926971854922764852136963115753194746692178517499246426836959549421489135361216636774361933166523579576295344483267627871944548749342974793656391462933467441549316497746385728557137378949834299935941982211976127723349675528944581522716764398364614582357293832433394898585862859851531962196748841787496127121767746857778482633266883485513658647797628949538797157631827621767777891794837339777744998514269627783883289395971956867545865756488495539381927697335372165871745818655344375654178439847286734382963368517874571966539112771787885992183751567234397248751116577832757469384219184832887932828722366634196537689474476165769662793194462725831443395699971513529384643958379861512241951257959176196661475629481979942486869588865779983173436497268647521268243441754545356212179882849399265948323596824165573267844515561438913451391534334716439744938395486944736752468789378986456628532857256614996476969121494422984899493318195214171665831979447652171829779875537348865155253182292491946755721316995592412466848974613821568212958187225989611333193429852422826691686234818821393179795362493281279552366456168934644198484555314988114993193643856271512564647265662536395873744625333488769279684472114489243244918969992842387333887751719757156962154178535441663187231479176895614856785176841683718263165138664373656441182341234974328714653357776565615819957811946852627317658835829267964493662977819944498397557386736539888742952386998767492666858198438662883737447666979371141896681239763461561855989157937466927999772898938917159872773648743964716312317994176156162734382589688282193812386916398614598432525816229876931474875848687575486921486337342455592817818776245181576351988126247449937996696128826896551218466548164784147248799547297589423369425717112691457313648128886538692213276633886792613181373842198555976771558361559915175867187589552933292976449869891582128568997816921659764173527252189776981527733296281474596199315976467412986696492176688383824343213768823723772284826269637751836857188927872268443363771587879265791554392356553258973879137127122384868619455865344165442484231138585459561681463342169795263648547444454578772337694819559228717349499697823997925769568789291785716261451664982963451984158284476638366544843959523387735661513337679574297837941341659411687768671128675215311619349924233665947558661695558565916739982579546291393658232189636473162869192582554667897199279798371286598718455978498673475334573779517676238484138979711119431157219678718785629349736167146561588328974863297388938536961112952766667698179394421477976911436177674454477316382178629787195352451561558278541243165665451843866377423355882865696267999299168361758269686511733115384547618176869916362716257487639924579873661327252677761834799285283615367784857425623988577666197668925819784969179891351616386812438524453496665285616787956749227277587135677185587788483124796533937527254175779283275839412982193265273792324375921486942932769368184547267739592825478373574229486255779686747691148862959334294944668993216799746127885895592878276973578561849558454293212627958956736756383372454497495635519118827861283793686876139487159195337988366235126625398884825475518351249997421944122182578633147975537857622928926696189124149243148843937261873495787568963777166811286736457219838931551574555852669379453476653263852554825114735616345733924113413426477369277145949719751398777343919513941377421245589262836278551918795831385444837161715996624788838978459998752187915754135569395934569388784184848472831594234252986473651278973922986855931653113852545764286681914843931744594143261159811324448471384269278685993374991512694744255442574853288686697453695848555759497799777989727851993818197767397374625347946542869754763949566168363955548327641415874181157175865527913618791216166679332546616298632221957624528959411649967113825944394637939188948499272338367861862111491229571479517366197819565389248148392748781445755242456836419758469875127853972886525246455237542516499258498752421666597462221241213893745962281773263985387748476794596357842547621595952428199328296286387346537913127779516358865427656657692793146876457772814483166383584265712262413559191681141441698789515717155932428766229388886482565524824184358558593673663456291778753638853784718177754499393475892978838791934957793464467712496748865614367882749132516356379433379782199969758939876831767332437234914897672874394843519974211127623921878741341226228587833912948613613683417825663163617358175594742715188992615334891664961849152897833824264779811647928952991184477582518229264537635338673679631478276449276625175672741512275288291875434848878764972442239671991594676677718922363861514812571719418938254659513496951655514215317141944977538568821621569786374854526127764726455764181683561696142178485662735445936958672188428885874228266315835181165268732919931226713486542374594655483811489922189746385786278618859895568584585186346618112958794549843218954551768531977682222698128899655195285541997296413883697336385937994735787727615412253577578244887628845846628271434124678996821843625453621137783856621535488768162848984525369887422262729411874526846747648474171426118934248614262286666567685794711858253738157592562459517342614942889492279924673798479126257365714563679378485334886366835172198254424919954963596251613465273934225891394679218835375299592251157273427863521986943216151932629561684951264561538676926327124194362256436536631648836772161176793522655662346877588996893938571412551664313314862439983486564467431152311594472245679965949412182712799466546114169716379141978515169125886939167592553884964597736227924936199814933287758454435257919358665613164167331385964265753984145725357119152321399115168841357974218921863574615222495922379615446996625348621978853759615215535625359752528846971161267366987979539272195136419987615869473795468747689726355738312149791127564573628339461336368481284283729819895993475864468583433347183845992383727872755335551933491559536431886356887496787641554457676216833781299574776651867624479824856995796994696256858398692486734274586316795217957826274694798564172831138789658613946362822599663422981253225385935867125468869241858345763173642789922794313143967793924291695548594797972972333756933947618393465365819338714612869543424211635464165813374638469912362611157987611696469977133822625225539678817511963291612849546552612919551899395372725931717341391194811813495283449252263681719977354618218336531798372496746381634591353993339983796719873677283874993637132288987762826418996452632589561664817725966376857742378471146874683625331661155744493864892144761319561738927238281166588537434347372837945635417495988969415721561364212977387389659329647987986687165292114531421195383729278187984493147972654858245151585797348473382692883586937647478988663586883539649861447947785947611424445595671567747829131241652885296293976336526519573712771866134427126628382515698214958931668768169239157945651146915631525669598544636561185942968287679985577969482952671723375765722275892545845672659818226458398463272929793665772917151582973316319298818366362212213519624666319946583264183566754992954295579721924855891256927458766875446949197822263978486897765282639837591683834146787376741885294972995765734716368538398547749743819727833359242744641197785754767136874434186657991292265187166786359641632676783183233198654197153645547346183964336489788415551622375588876331151227183393417145497422963598184863483557379733177128559497794477728866798917295325727141573792766813772596125258691698619288861582939886311631395349425239315987944744825723622723182458868887698311758586355359264835449158518356731428688771639756646868227611742877579748263852527736768676114665124349364127946389633995968615874787329636763344875561899682193688786459275861352964853954853388563154186814924233389986187927139216367755882574225787751191783752174848756539367339267853782477755632595518388132539759911119215432733594817628891162966315328929176734989213642746111584145566898576449615389722686358553322264819953432535771158693192869337182759768592292489399874699319211387977298873788273424661157676914213715693969225734194989248289256211339592299767351383311693437511525924158191289537332449366363846282441859944725618646779736135393291198794743516618269617265765968994266887169267167683545437617152377787938721754836487684742191195579323327571779785996396848738385314735137497352847527477958954872698742677886956477719915474583858487469763645765695799452754543362658211856241255488544198155361653349341386818865795979291362852719828665852843723231614836776477526289621997698133286547955512872986126185758419125851956962944484818665344699199579191293426993396863965839243322596314328583618586574913679983989841675978697664385887978212293729211276597352857142698767181817819373975968741192762471953831427159915756919836258718672889437974447528633969969914766745835775847454263569538251911628385319692967676692855268516769289672219659818996334818877349311572791136512513414148575411578389516937941317427471864877571753849763589279724949358271593622321879796539528318148872396815735957726564419678785995888589846944623255694571183781851813414381959562481978965868341248267813488291614942376389613296689872992818914995641356128888732557954994579878258373854639748543384282961466639193472638836214222311585986315694693729127661193632585835731989515823449869425633575274522785628394183599383413137436811148746224341379545974292724663368889371796168691743383784976843473868961374188422894698327612335459368156893685517484949947441667338489147466187439581179225251962862769679722834949952887279848279943349976631857462626259418992765136658324985978831429473739561985448671786559635228875553578978196659988472855636194281895925911344991587742375669314484392925582533371292226953199379336135568517288195488854742479846868418391337651552121727667446611891719447427974473663658364361733931838567928134512341692331115665771625216949161883553171354945513274681686348591812669842367642945296839669854156174718329476656999624941646939648523931375196326929472443286721322389971384654848411873122743339979139592215149884886999984716939234772631599355192869386516531758786237199668367981929678814777921466344315276699641436799348822163724623962718959734331739741725589282348517124994193968691587991718452443517295112928916868718747789878391126686684522442866567137915513755227979241997586844148968391388654624815929911698371967311899429628138789532117586229558787967663243162741584592342378851451336796317738771887158176741574291558981478132972845161442748355413711699998762966123769625332763664593271719615952641522692612283445199622425545248822659636661856868791861887219145775582985468961197844891198535715653773244771749871539289478273953849772127798529924482669826135466856845889848478167181473966227373852936799276439951411258897996633125911727716916837916955521698675786511187871981349269281511771139293878215675313332669474892794149296648344957312951561552471261642351187563525689941876293585143666339738494465242969934125959983916433875937223664831794865657529173835543325714593328558819499193251998299872846879993445913961986477542753945124679327748568795716967847953259634388677165475852576119741618391498652996134655548473156229294167257464814543274452452458983651599895443777881999435861267319426859541442116736852956835143935666971939168286144429784586966678684521472129175912841968772735138224396746536869945574559911736247794723886369854698699989754431877586711727888574869816786426816167181429939962741171782796883378662733812678321921337897767518558643185517315521539695698476996476875978699166995239357688826552784963874825213462135957519287973483351217933727341154745466862443425551799246471979562365469664941874638154696829377262746791618947528984588451746226285319723485441174778776119279617216788538162192863569735987857918116357243288598565661492958734924522742718283945811286431973954663219886954662799291863993311492595144361426267995638244223238122591128135328599285439683818568641942576842216996654967723914527787921175934577215335462939971688481689624149698299219513856289843259988871576151626299462161929668912774777786578434974688963981468737312423647448187929175152383643426164262199551474695197197295769967584287695463645676349759665932548683971693851718644699829931687178127794842744358831257276857927963391838999544113951222871494859651434367828192864429521454889888615851295162657196613829197561811152254755684134943269766616229333688761447937791769828986761493579717889356579752667631341821585933148943826922675316446382946935555661612558986483736368193342514577829262761442145759958657898153861858693319279347686868595355321578148953414423855122539433699732115134513555145279339712865229714386716917699275627116423481961792821691256528944865613376261888114126742526656926483772997921678572599589349378635667268157727471979887595672784148811113286967722468866925863791159799715475172473617985253151653894521299619278932825978789782833521788687955515174814692513383922942959649188575789221261629858727368395242243652167449343263152895818681773538882435113339887224168261549927176277716927827853535422445983497557695158956845641417478681412893295876616493485244979816492598416299982862747583549587294765649375354248439743873581771113398715689996947
