9109116382936969708531859795662937961861050955469335255465093449954081533310576260489484559747637869056316420931228120423798038024377422206186046040706982513880361885385121856891487361103259158557096880015994673997986322092031431443835893095212310981485033954606863200147246609532693351495828725656253739524170637167213620481951134105244652180108596347284035199596519943068326712608384101277636730421308287088584013881312341628447321227372033912129920451470767445152301052552156655038314801483270258832312792079747774972403845703446985659553473979753067770623844012250007975171058383978981557252148532332322666961457504674205715552003849854583186331574673697166779924091464152472465889141638470648106344968884258849706703655028345245881578566689917320985429715923331626487817720079024068819718987850641189006284707144324011839918944642723038113200277869274947797367927711553615587051567051544724216173170260759389403806573914352349021770784579270396544059106840662857236689704673051528058615869831648471788761322536890654782614389857651295131132049433231493846438513353239788157456610203016174858449648760810312456868417916390433702940669892363301137120456656880949740070066609705326908908030115497002888875888850679789395444472469753690327608410020714642445536896204997121492852406939236204411111685259370785857432570606796666668391005818461942606812216846983818031516164317139876888747350160088973650164590191352318274508080346293276698388058434806796267176566110325015740959798786991496640401446575704978914835109778587442480925206148431084375294394486200173520966608828919079140504116212365562600562918554046783514470067061862389041994828135741012619635826686082617886958212477378362323037129321087986927819921113722680763404075125275712974906132301614970755793825873858843181031263838825610801186549282264560348743770882642057461874104203956431565452981870782140173397200659567543474736457102215447197278037312275393599436555115240314912320068077770285728817902963190903458493393407586403434229738062255223898790830286039998984250522464192586480515284111489706211708339148620869127393140396468099427516550548775282954345140512050461324338099677411667926280682949393895779867520914121518612794025370906584339634319895002439843344087924748727492230185776383806953441424557003077252364005865557542345039476950599636077379886454340462889581113038505661235846530987582053129702762580922441272045866865647495917253085358128983211146027729213492869896643612944632738533609160517492974743784718994761069659191827495718272014020241623464065150626064051831465769639420761915543653354386917635752280166843927044508978998403059826271159458575345121645377008293205507049087361693003699867618319815083467063386723554811558291431232273930185943447978340897335341897894064325835485909374286165956604952234251004121360280913972435074811863602199969238876603382664334518240365863987974944114737209153206536936717780954582103062622304151157514768792450013826481112323101766861547875534053991637992357045786647436896609080537056338876468009421140298823872819638676089199987194728058658736771490564134970559988789825044831297616378840826162254794289224574754591037626993910957301283028285924891198274559512300126159006925601848412003964952693475751757221513890748559203716482223779666141875781989021032545626416824430191074431209013993413087342921389618947547273438017274520991649375254698040707628979759633171946783182512394595098187582096252650569580113722068147447081795779530159141755987194329810352461245868615593451468379212046397135440527668844132531770242482629021777323692872727427119876138758381874513715505349712701448730100321448702027085756879037785556983735574799054575218951131151576291229445006429897241417813615728147472655074427315789917573225795300196633982092202298852291753285882236985375317980715962751707225464007889202276411269961680690622529408790321143338626808003109702328539161427231682877785859046426029254012080312272318238197218619330206626387125356966323960429305916203571914910693294801754584340796679554255031309830193296954229892450947876439080708599023305209414010908979699934512297212372842410912882014278167779977072178393574115708251925978532744605836623245951782818907961622366491370337603171347518110560897412923063731058242749864821170905130927126983694191789976159072360218653595119933090957180331742108434468513190931896998465801655677438870768281906448210809937510833290661519271428262055532463474136189967796667504267572761810909903672222265014543386080856843967774872290861908188589721325045658652960467670046837247432124178987382317248322543780095402468032005495022367678484984921895310281786562571324722895400659383952161287727015968377768270045405880112086051481261062158828410245488014686123698685288460314592122587273384605246086522302098424627275386502424050433767891915094329105571579182882017629852878970407366314496079039575046409292508558406605123886073235864284183282087794446642735214462447009578951028997180667734994990768898991642678675275621745785672270635241578047666476486137385737362267752552538698617707420474416694967890023330602462052233051630702992034531869585555028886706531319958582186857713983437210243183352454718535891304911812619760760626441157920902219482107439873519045447309242969253632247493845256889185797848306393214414520487012132302292256322774477149110295548660554304952930008159908041027019590136375894001967568264344279902946921465574785937458543345009480938585369061544652403263461696160064165969559179768793667133220680568166015476841194300903415482290114010994957175624729794073631560904011280224126332619058963589928467246292077196266045984772521603612436876132773632572960550182621129900652117934859651384806236486129388050817329134018934419529345531970954680296115373253320452296777630506431586383262373117467470465895184105142825339649454122270064994707122233484077245744369750770268279677557500629345852591051207493622794365358485437545368362847531508438207861100293142976526774002097117549922799931565198434374396795904940827793713680489092502905213827983015491228268292288735315617486443448698941603717282178917865182358661507752525700955939696189299839459734364357448127388762776280653303629432830923011774402064346772637013880896044351458481781316767753442789193557115963619765991825973279255879881982122889075113270816352021610367857110266765671193477916317843387833292110389829040417246056711403862450521954476511718610241827534157354484835558884509407176140130660592411916984697755215715606329913153600081898319978059796391908883993961762631541051749159887034542788956722589596274967855101158974243623986133410567658907327178687634943838928402815599657065145054078848821557046652878750297398490241200379577466838525021292361515908092700350029443136090506170217553371463619899597767230158933283504265772768085871784999842784547097812973876397156836997244261875599644856189510227977658231548763900516542820368561512397542104363732173231062882682173523686248673090742650299492889951648101086095615484157510463897131819024543338674011659174612715045597553702684934727193767615534902958964565094996694490673224527447668914964974226158555833329456652289805530266678628323647328156285754967473559377009464671087967532485333698694026410659881667462924639204449677254567427051346582769122518766200682809139888654564048969302940295252917759500667792872061430928187938343487805219704744299666916212157391225855390264601378877865718832016239217209059688239847529109905593985278405605040819504189579942633800823112029402471685720860601720935708321620750365126395851122263293597149057264074731828139239973869814502399286307035667891073390875263982193478197998776192194172990285437118877579416099780199647791103889520146990143062828146201564062802769322193375185921018573607620832328676190989292476953362554701425224171842747241663302952948069108953944387924666533358623299965717734288109772298638831754523343952056919951546030371695488321860788770144567740307806570626690808369016746585243928360633237525247453278898757588609179620389265931045874601498952393549231244860707306983770725220394362719106004955248740191398448092116119792215933180287050938044839725814851425963528125214022241548839709958099742448970406725950238071812992142018039233133001472186495510993729849754530916194644248223355269329209568178226014779293661723433397588593599575696970831887245458716308809676092254158980487754467663961698678551970301452091586880479930103157486298249903593654185378666805045649141127085316562536841854429648838889924895197971533954424377035704422505899649963344770921087618740199168219882590532376026010027432139852352756886053285836984376149419229886032160925158166569609578700441174849894815508053365022526617857136311499838126949537995178304335768699259655363087413882243279116235215273285617835324618306011303367583913648032709468645522953173859014942756301282186586628383135079566747630455304046133298792870726854271653742105672197750519555145569257437592531810380233706504853800501600032695273950107373960586882727019021972665531037365288367698658323945885961671792388648314366673584784966796550407345411617578756957783078631206432400779093200108854615776583048243913142438444288436583988958531939906552002106019337420658325582672296066184716394796295608484496655002778406425395301488252225977263204984898712119970097844259981856735692103671965757082133232366626335057616212273083034473268450601993289757794988317983023502509571543946366763690317797560782947746629226952333597648692536906125177217943589446034065057897188663080183391918435502603257120235510795331483942023419991789291501066154884473077011589264723639290936589732797043055896982870728900907023477036441712635282270668087117936244310238253505679777952137819977392767011587082488030674785296425194575314252354669367397056494990742738365912814984540772558591100673311427452028911802710177919346143039623801611935795118008145535733658316304053308306213864547810292389163840513582924382618633324037296298526530826267985029810315426688684118246779045619382836950551246457200895376549588053152427604207826843008428452911381039289338410922910467614797640588667271857612227680865743983881623746327723537936502809071189378303700201060185341970775932508888714437241568767687700946463276092776297752326650153081922493083448683166462537409290734850864156949573313105659599101560777221656100949640786137417435967714161066709781803067593375684386461924514150783511263487730459020382660723140718650334379916680403908428445911498108008959060518843637849736403431863654475133170387394118198300099634190438055656712000964603595532832704687087252816624727008371547418353362369005595580910053133724702244325162258928889753354893127478489287046085934611132521443565331706589949346181190954820658008466517911072643686337591656340273806268513376991643650001283983662742066081144382830978006920390681761746093830548276582850742020101634981248830052455773759854828550391034044362329038748460900362152361052639090700385071528464092102736108564588664842865948884740590986805691940989001267859043079269348231025472391847193553325781899061922441793419065592811893702700912561503613888415679565038554444584120195897037678902578915079496708465940749622153622351415333371630086528452259260200347596548217287498818470986455377176687921670732407058549175453458946177057177439799174733231463291508374998571637710266100849937700815637219818841508311197945215668257361960823042506177158289149361656474468372531014724622538082452835700957950298485510827594376138922341415925294482352146509472658555768656300815275131172288535625164167832883289923840383629537215699573276271967100704583756708075885689439511990670984066829872151254535177322618421415144919177379027049525836988789283397298784667323549852947921835320098524872922724427659243500910622427487963313102364868819384179760494414332705508573270459564182501524395498335312532708521024101393680222268364377031116988282420660412598210648941802875270377385341703927477828060620184362841716250249525525175929665136601332463815231857063904879891322075930464139046550294503586801252842666086385752647364363991642780321290330129206095099862821085206867499387239074885191485355571334100765368123879214956537972252972816642866926759294183802910029355448478769035494889292133445785644131806038859858451087341764782535402961270132085335020670578131505240901231985602681571720547700421237145071910634642633977506625050250030330147964500906060474995058086035706696907646540318775131986331877157338408448184246410150789436162215274552231142313498115623803043670906832582179474709188959703082102319774592386071380966601587006247954195248977607120320927997204736502850662890416861279193951229160203033375118455601294851216808019556517278489728117745034550115150244476109208694506921478976283277961103836406520079527004649239742224741111834160913669064780945492319561629495924378869589893620501249420764046566461976693731604902337511323933071765536359887070836384409664560432988780841537976175247183572865828649217978292910704655024389623824679921294313098626726698159129330846400703617894766168073915478805922072039583895179117858880707640506722790387197140842165857437141052451523575530034195717235939959951331152926944787156652917825593766228239217982548624921093191197578447258727268969249215923315007067381527393024196324398815874238766661210148049074069402634197591410194091926000576227983571312796416192523503384065736062125133277466990839137175347399067044924317171244205660869132082189659930214459195895536580107439632118090415345527185796372088878461847337909117832472141164698960622803985129614223679381681519220182897963102988056892733008245408112431973918590496564299070143249128726601974030412552406082118182403693856855536879199084765209526218772075031328438885985647500732608886777171625824909426729401606659729907104680424366226178801862899993517080506167907576952653917206400062545184671086903598188290365617991390639484529783537330057318428157936924279272880958801130025622941338531640405881315232906806772636449235489508015463507969636010741099463459309657293771879307378775654066503817580021964738737657926125994231811213568134330045690509402480697831854389021751256721013426269288412714627114235414120516774747410365777760549817382310099598871238117365558113341423410510834787475415954128272820034575472921738469754786452127600362426859534297989851412251503398761201968821334753158167300313046429988673838661741478053156810909293037606087432074552676245020413544624873531561392951697015162628900327133255008376226226783912681820628014357458902361317712555714674733524811604512334722932724414037168286174547520630474360433158673488114020889280436407509426236841530237076097227560454533501333687221028484896370182753077740672945546944977657765348916027836341025752858442147998444890053873620159058339489800032660106842331346958131815267201496584417095731640999272923362976694630742411994283399527401800019621648611950048958954043877235328065325863952085058471609217212854097114486765413466533572640850278632868725250558349026207667609678807692452610383125147057824970746991672358474485392569117620088679220624748464833063454265216072804618262496834732951725247705719706760222266804292009125111647583867096137425804948311329207651585197371178514959120005704378813124495276633255405673528796743565777957124498370564412776770820440080111442722646584559840312681556073049473521379601402818838978452543697433983691714883791939466087115058433959578659028576623754125605966508454839007123891337662455342325292717949125025040640459486886123569256920610006254090926517689149842978524982542699879488108054233074324628525770390737294419359004518135598370731183446691883470641104390688316141984377238026700613756603921920132311964714035037221920667131986853481389074801243485231000428977278262352044609569036699162818579516980372967045796639627202429378240809969188663392048586994006325659066701692675783586776532254977376970234937249084689209567332630951437058108007213833853588926833341613231441944116285819484091057141600977378241391974496340696024321324935140934503148708215292988242653279306640083573216226630521221136258407842891541125648320548259864771531266007041598716794012330093473490914102416362630952517225129584232785087234230575775976860979537066005702676579231107970409328228910577665720914668683211118862920175275306902266322363690372025061420271849361636367234563677929231825872805505464692192631302120602133610288297237423078714113566860363000846025395957067149238118865012805802882329609238416541316236008476501385172266965615660656088025716832636787114917681123617774222861285695169832518600145209946893310144609373481353994756230091245616859575343235376330072465986255971127525893331478805889435986182106730479804349187544276058070048850354830364104470541853362610998675190076852123186010024193325961101266400346579230582733175402224666924134302814253361391999784359536279010477241425970394005063080721097527461514458702399474499794037012684222382078799899887621941189988890427681059484289222483457024272461338406370530907359709387164719924181937050906966823681591237588459551403223272731538997166924683847154434730992887239064396367614711711270642075013575518623910045748202543556326821952285750239443884395875888278153440571925924795254433901521456990727902938327248653568688569672507746443176412626061650093092408902954961302773595835696376162533188671778384695839788671164603627767754335218173545328533993048154691890642344408664064364293454973295820807182033712267492883576795490178911524317124303178481994668606833368775751522760799256447798098643706922843988783519908222912387093186220743433617537732644722710497042144357552156275740388785208481880491554495660876821769419258146497574696319815092414988546379982813452319496605307895214277685973017731981115724077604605641300184926426626078996949295748946603765765566845960197732094364420070511243667581093002252240077852158668797245966242812962444598760567975103756927704469817980681790991063845239975342594860733538273293072353532098266219349384646954679704328427631803229488174337205663351987340266980347341674148460462800237119282183991894770884227376449057196282365032844235106474206223704525249312371310380658219817295270492063480334833637060035614285799569152489654347117673013233736830080661529011146320728396880118138384505389819384484992026499030613107384604396472435622415143740462983625354665065837452605920784677458415262099306633954178454146394881291460970819906000097355643524113132130648988644104912183946048660745359164861704818520595565176384136550626730664571548690278559444462126789815383111500245244143368742194616486386302454396360357237916532975593464733110948399663644374205335424781254319029298199428551330105659251955327250636790740425146848328693015697309903543321643205333774272932602918808967327222534832998454376336872479437061165620415953032430377821944319906919037711589081377946197695903311226984185818820295551139637897746330408229078210934506141831101587824262099507563840999553933177861845811447391892317636913317166491132588116229756886634604970604187165505109378783242039027769041948118023612678351193087951477456410979482354996798712915648677422861501309175084586823666998527387838540139503624150485125116415395046476688021896521660955655221406639035492918573653880996841434293686670022031964421676952977888191446924076682997115849018415142163745263700696785397741492613674711778578673192844200281763180466566649264305680245351428258001087443931276125334970956420900383211347071918539860260326171550470062624688419640163023377740544838895330678554206423886016567816922953308926820499176207643529944875714114667178376988171784960514190863663882836382619573351462151433842359503613314190228755717711275692936653762272360024056057980055313166866332879128061852557913635706225179190955932824150512970579880434428609166161397978303445310513163582385127761999784993559848543347523807775171362825747630974393465116490942261495115566285890744779355582018250174833231982104799885814964801999529083261841233736184383408156780339400326377770568721641640886387154701792393931829385944976190670511474020348910740942026536031293167240866934531396572852457197724707713283076914916460249292932932600922953326788814082537357510423027711120712537544931059245444294878352240363252021739045028184687990429784248604233285680406119790711452944327291022615240524581992041999596790020628632007552455394743190129034770882496605056684135381708628312691514171977422990188869710020741552625231440919375253016500989191378345319547135676596073007439104567932249206326652754325471517554815278388983435166662036028022630315575318903477594888389142055331859379510169033725244298561197767946629139509284776225278296574945557267185196085912916039922805468417322942121696074653419685451099186426293688201006349346800874607580252222226309266242764730396430999579053394585145925460570092088335152586338215061733770708019006353282074546697232219439610418796312268270675771041594654469614053057187880451007747635469073329169754816583561838847984744737064846338032943163473507350957972673502289423808896708595700011612150085464769066537036080825726341163624929347851461309979827511455342410402689395569041392509402603948779419673255601205102447795785654471023784846538686256295218657008829549379083292596419534424772063830411497228258271829168878581391934456649757098964087766535438345379226882535712216395741359949549136020342399390499115502658249715125607993313415220110886514470198116366772248234501620518417366985154281826805379724798876698472582752127934243619522546591721909714716074985889342038839086420668774400376297717660000911899087542776958415786020006821164903198226105731476921837141839764216596935474202437008530144595266373972951683733129357407464715539659925027002661800870724194559566113925847413924725650803453382941397884787729273583501196197012803675963699487179452459609688653640897409919901616525557937544146599772201439221325049842246543460952602829170989681820232858633457647504546876027971231321807923066485387725976936030228308585106531517538042275678626243003488232899818215251643377078625720341983548606156159069476528966683157940534138351845381387917930878339090541554459003292295685774441768247097032513528812573833752456901713145337311734488044788593757869205077631889025158688958699921522880047525729667663630689369948251166408185458293013053721851314273232966466326568511688322114544402167667776109973192027074677507070736337738832431454044900565690986540497986600149198014827929504684275388823109641781009873239190033601731987953454497511960010591914466884149648821507833891109650372854757069147931087499715954958856401203204297246585119992931267821234788699582599811320929796619531472524987184225756273616540505840232633000139254785789093002614064697333560975587339259528899896900010397566967130803350220214780454500107342883039507882324905667460536895754196175815622709025571296466319088531062597597564582494256398906478980494374695038457561194340412679690306184131791887581256953037010351677991953382743700281590194930885550068462400531821669842401852229972292130481588545418675098672519774295111886827560459499817998935277422166479183786001401661668706120246731890090278318797785305377756065787091447439703320093786530472343737341031060294947863246794195503482734275733320472632959440853599947373779294123784730738725570654211493990649317863996889001673994378553285145103108230252658906745549317602282294385142424791827469051283514502265787623991145653336180744984502354617855716006771245235760410557528252512411649244226890360778589669505474514436430896541197827213309464382518989722740808380466194502513107230588084514213091749554466733036544961582157298189252686043610011434104138570019639172007317255414641322921855252658693968365282944420471872487893205134076998956573726545612439235640741897253552129497515313230791379676475713499042220281224723483834815464187247626381271621038918515804700400101229012353392690053990529457801288455246367909996883555577206331082815614360523657921143040756107209182188725677987496034724785582820870801377604347437952207451850524131749385173117925059325972856292744084716196450650862596634787801300290910631272664551706031315388644034749387040245614719890379330590502881373812508599979693600870629341238222698450897764560904839470967192676533060128441698522063018083156961018531477434042477127182388685922655358989835634409103380058167759918256970361363626700508615236255664092925459992025234371573878524484186922518172748247390542793732921832273438475417332549879275244293946824032294711781091892988427999804153561940740388637869446134942083917310786859729402914589163095428087865068389753353112598785435229276890022146256854395043853216410438159514904725671335629492480728432662535941078992252121840402202265687762004166536836962183590775357666891627146782934568557835984964424349015998175914433260049713214573105019261875281175929455929370441812219608797421980059814688653664428167198065388776118980010636885768903939528722501781190800258509275620108483739833624155780855502657609985064843589696618036657335197589320415582574026836359851530287884953608219366425275930688595398707749978248661367670653096750661323372899631750658674287547467108418424806509346163714252751721455065341286429973905299696807080772568591858671396899253367756303280777463542182966082076501649469335777131646204463415665778468060981161668852781336816550266799956988700673722144890024830534735323839369905782574019853120403972545199233070266500662044459457502134549524074313485002941544480818794291039109946341444408485255340949177085821296371825805673554619509136232233141678400735425170752312646625009992969811979602788894055997676544296195637661240220415768871836084624816019658490588247771257974550894095433130004308716630452034661052403849547695741399732500883941132943439642455900542786220686507746883517443616553029954385146651940327510416939666694653059710930912372705511491900731126377163837954073155028179225156968629034904950620065465874974550803282192727540666436160442401059043440587708840216075817293898722879165823520041738437058346280686598088267768615098513998155245459467398762894868110253612298530239227134221643573861243832150130380956472336749343209076637066259962356393412682931483618395640751503457264868687125617535977219904110256002626550625536679740193618812601385380772977274046107791742765878017844212125014205748649719718474919877034524614929886867333852839457698334036717392189464582298657495638012235942386306143036253174963354680711643991454627511389550183714929275050755572316021886845333948763404837714251281475346481887149688556228666396424611538048403843054119454825738043467285323229018031208416070150609574899185962296947319785792954304416740017449039459356441731070513697524180029972116556536645404655742335570375512594453635601455172972191461058754447414010600453332907802557801248320113668215181123825947607186825945313519544742372647912833743368984089520279158594153033769460146365372182714053520487111887175395428732681743214561588118104458549289745998144077146572985188516478098929270716353010520272837476545560204272437791228623006061599724124596946748818650166952872435817493018251133859376551157689368099731399563436918662163673106416707425295495628452947988827684532226378396375077216689477534842223495346854261501745750033748120858411023139988512210512744551776332658210420909370828120650120883477646152089018970137785919379151496739989560627743013137086812122530042026673595434791528288123360247798336465939499534807606111105634513413454770575261206257481266924507536931261790067530766964540993625725875267685985524902695305635504171786525018515297754018934673680637821826708221612134830020804368693709655548148248129911616193003546739083515204586870837639753628662256082914352401165262991524234697802813073475481815116123571203156843300749017818487950918695608301921562941474217110385366965839765650482424794671993316487496694447046946624560847303398831732889865296879342912327388587315943002058810252674421554697559368980968170547914012290910130850030030221591619679157013046427972089832944161149034743325908097010881615295505073218798568261277627344157407085430025445300358490151515730514471059607593726790823270963752186052229858504339131769322065487839219716301511740665107597365211687497241796819615577257449379109434627994683997681310106447833295975581700871514043810944890218779175220613411732175501223888667310642002811495411717502804043853634160590061075124416672067647609899923454164215590679665429580792182682209061332480656066695537648009437094618437433033190521336347725507698607256886777089372970075695436021016372484108704774516442711619532001272156564941249672672883695812057547443914639964576644596844824295075098163557019986409909668043481828257437227200636622368652047291553738345012212497859558215535946522245784074074178130170762164747444484444767655262929823586739926253963798630549700520567529361752053399172992905724502039036802860258236832116992541339342441422083123837547211066869036681824899732295430219190707113716640127313617415906810215020383169239800195024110107442287720575826142296131509902305609526904244017868056994047770858483062462074660200088708168210309808546635051592845535169685399971100917052490101838585576760461623477956580102988255700202171751347317039135619831742260183372726481247455210716754100485316960165220040968482247263555431366246475300249888639957597636580391873145827413756464317061968605615786916611816577047257911224935004257549095669496594869039393154374598882166773733343233543796188835140332802542089964664524024999259206320915531543894799314454997638871967006334117889809665293078888678704967539285136664755381703777389246283247244345238906221202013806713615897628331247766124456385158092228393187954956857850665199185437982661274351363655783373374621885995121495697399085741466615553808940361881417245088382783620849409020798913524139347670618400916780853865080249215352168700188810309727662159740230313102233193488126521387126473853224361203619995022773394775733602885153452306029963545063370987964254376247318050993628440071810353953128997414589611806347305502623665777730890093364818155089023913130968022907589179854151687506069807107803703252541818871468166066237519001635051138399026148878777558433324635365539921320542803150175700183304082648359305877502069332802248778941229042225135459485928212732292190561502802606041977859196513851919394285783547866637817379766339414500842346785932054171596349696782137323341543381188659000864962704271771214305401986553434842672619007240360836874137825751215926829141172083300346977319704268597820879969893519325570788821168760463020460733227526960921193383136624034835205897573086893077578083446901975364557837403688602491366053398528149719184657889526834751344548956436495129341889295764796853070391048533425842472824508716600680090683274666668000759529000177742440105059495190385176631742566525007875403801499477993456267161149910301324820818332462626428585112308371094819880475905717399749601063123996532144156849379457324153226060791704520485244865093028816752532482475346812529592654486055677536252670230874698473162555117731086476596745948536778449501739834075880431380815131060218402363521326344892470049006570933149022210995322031887431622226438059085922253315747090597722550702784355322682370943935804017637905661407763112224729564114874854323404838414979157543058356974951450393188072215637683910618007432826126954570933786103936171947578308214517893098072487728802452581823899615709412516635349520550609448943080776172137560351621173108676094107911238014244603482877197569628638457612371127901327990139852745443853970430616399489152162792328253197500992793985789754546758803745861894963756771716060332907524955253745471262583344062470312045655663929777175769140801074008345918202804330889351582808691740679996898579177449504446925269679094433997371130046160144384143143851621195555420675892762168381741949835418922000078719537405815788445230508904273228761666482515203401329300750441904568385330106398143812574372895074969324165393056615307178963121703207187459253996203420539116470227342367606993388165937523681032971477897851328887181285943484530460257146734386948607903104640050478776780873426855649648451685426065619548994060767674848481094031285449194571998889543381987911704831876487538945610181752074649993504510739639261432621115900962736514689577258101296019921163167141321824574409564110896851577385148324666916259089992966430662212961166602176499446461745122214152854036499078619788307325151949660694614794147350113382664091547341018421197725460051001431056580247806112002743456274424556567353761332852963739621216424772171993886703384248421494311928266907792843539765382772234604973906579850278856401433854827166002686737190343180967649527172471142844033885996454646480849993142661458147267151337401875363745912524418767373829307631886643519474537671648007004430509496220920052521736546904897928183747504293211087242613784672722386659506036996181709627057191874731057826601045086145293386019806581475608022906363825721009131629916119570204836668995743181400525145275605360312858878962449039656241471028971710897692746853370159061757051582959832987817532407311387008002270233783018027186904121043268701858105310056634736758727227890209525878493182038742240670746327851491327377829104738511487703290487340815467532274443574530164054824746630775676071509251973172839365570632928214562410267255230309242303512228898185310618824283713229325619279506822383038171381721651496851806851869674328089941509482801662439933596932368848020790416731755449658356556607457205444797687236847812647208208046227531806516609328413265090622842021038279734890511274472773076329936617549279813206148961636685199853908811830254710634814651865306500774619080373231362428156486283519152028985546066009732897943437989634066079494149022873415384427970033769484968625960888055487341303202766875481106562113027837675062196222250547065224117506899644940417453078533753168500946564487441412040078870151349593465929580605106289873719048361710844375571257747877939390891672983387300236195045543266866176567761908729014745533120518355776602826492697627817000789572424142857496345883083649192231399721865906413947210194523205201063643450237496732730353287135421843821743330157253188288879851555711434689346022877782299267015610184587908119141688394486610554299120393252240222014899180129288937987541681839176364568156446821215431523602237937066614659362115232276322346777760836358109813511681305839331376358774073353814690697100290648898852118016765584751589625792426342173883419807864653508501361571831969344484410258680863659643242908868126523748227930384812806390674367491707933830705748684522166665144091550720234426223738542869680799089901677109060650030313393507830876045453044603380235522912644641803000924787080772765002637541933648511151095709997028932120795091606907885138577328901668901048791131745797571526091289931129887864041330355317196441131089625668654472103636904057459787345493824633690327475970788140676267249405325370863011729866488178513697000115708441717282606176717256251403793105392603667775360414226594482422925475819454120207144896823892189824993569716459289548127880959008780017301106624561035406117187937474314219679532099692293918304821115315121624439790780712914700094010313865909151981143741949839447797967337857698165105434783258435255284750354631535289237422590686126783276577346314075835896868974989998509180221015403703395356720475350390162803956331335834083132181815997145929193441694976491916339634481126931535989744542059327853346370429750729278969993245687943895478890904450488735153196430110076940341369554019477495736059052867001928060514208085950641838463777055908398312781863993323319283001211371587157532238386374858417038919646893321357767655888803520031409043123191977620430619427983460758424371820961489951295773252612370515639863346032541206899449917337269333306604817175576972353570648528674083348247820332907847620657899800020659182202768208255390325383339243375519139935283672991777781964469652604636024488205101282748542643307109240116340337360858356256070027569143875658465386699935278718175302519715750936741840214048903657510306259846609615028121041192318442450471905108169252731530488134978250965446907576706450038231479427621448112566568756064948484708234500414562123576648441117336541555353563015100222644048679895750271997070214787538709514870532924685051566575371911218913982868715813681879628114603609600562673207610547364975659219774585239490145100116803193695846637372196892875580020737493824882490824162867907916624977365533874357958065624998546415788658426552689992245762475698502522493448042653544076464728597995273336707336166455076278020665809815305055231065681587194193322278625950425814123030238875462923377950145090443690465292916875083122015797515720262215792988961299896172916553785769826763731052901827447656813465958904455671112379426812305959187156944414803976329562012960112855348181137002455668031689376032104667293931222810274929612297361499690380039445194485318436648241094782424009143485345664610084871263148816439997675998725460900249516303752361164696505049215358532842319541204747809280467108148514024147848582782788581118386893682923903584901193805587374205538134088618151699058752649493072551063927561938603673372066911111738654200833042321031450408977571730622302564270800563153061846477840445791934899892160486194087609845301065268912204147651034684496449200288086959074911127087626526304163767453532325517469984303364454842528989475780162253392195745385309418699143337204213701177918857218765027510925582737268524171080756531954406232225658342639868971995577537520115318805164733162904269078645021940976634592245494332527115716315308995800854516800201302745001637425152883514841443956079271132599890947135323938360286984893362404539444274663558521390856835164448863063489659102444445679015560607066100569191560123047900532538731356101841085797372531196404342223949812597715026344003920858700707398073258184994020162531504874692632662911160963029550095948475176183838448951204356610571320647344819104291290198672590860449327715487629033317496251652821095698229705453986471893393722436908587901963441690707895425606780970805025184622938661894548334336776005691251453314507764230780392544953165382988710398189201284107065644128115039023293177884323272547097802196923297737230215757251571178121807627582558364460842967734798258612521613937343304029116842740160600082631309418089735645613049825897203494075867255529896819458893637803716841678965127181563054938351026134882318929717075177669485708841364144992225291837716982227143294680746777602718864933522958417791448689808726850190953280761082085443351535186081634060143675648668605955272933757739344006422542049659833968120517166882172044915575922632411088838817349314256498477427371677205992938051009633464425279909666312895201035247446482997186479796316396412702131740210182811707045558144475735982784161208286115869549561472402774869082453183754848048808996327913423152491092999535246008634283213003089192852183958928604589839047024243377354406043580314617322236749898118427432410457799630346312454296703937244667562841456567001934882703255315589227252711976621435321617598553096743781349903183923187734476089896566003894922343664048458827843692529480529354380669841551861465900118962246157133507210588458214830895985700692272506324760027360843573658138192996248639773003413728980644616728139438831041385080145099606559561388419609235957563048160352973028740149158984957110566499632958807770486001204903134697188237020641858971609516162662556948492032303219518987645161359285586550860630208129127736070174303508188627737749009725793900225835495705323691283235172974751077434720248125130793363915608372801503617851026332853055855983772142182901016844294508040104561686813687939603458723100804122448033904172759197331824376409009936127785166794892209250095307333310597410154950892851913784712526745725093256987882481739673268459957607121958517841863462975289984294376197953374690194876479197924304352984668898079643638879658775289936903908218998396231730417275874920492214887841861614271815698364988430323596402297979754464205678314883744285827608361094997688308584513139616575717513635372752526061354733380453403863068778875667628684618885918081898015329601138790279950010072651946948423671527496763727417552841677615793794769746889683773329798188183434364494949840509971970686021304903124216127663053716009005029625937886235377848680968737464874662659013908370301840500349293370022267406311237482447313887454736600170058657896423756037734821179577555665450648276047052633686087175816328594855073129393930275149774352791454644454188516067013621263770687247327064229378949974116294917707536981973496049025281515289486612317931411413040720380938265860886492717658804279439896026092485582202284633339216871731673609164851429412068607725510316315693160468362422355553899609469439468325042796679000514929466750951486040428235865422599751060285895962621735873157219420277967578431864283794532232413596216859526678306995606022348455789295719442563357985748314812208172676844434806376497793074281227063126560706575017149963000799432857832411019805207100083681182041920250654238261767814687974619560691177192591613069128311928072358782141835505129111888265343925687187605044182735006830476858275680158597079132924746821050471052137626469249113443257727095466076132791968898298727980956533855529501201337056983374414900538003989946586713307341863939360245428140734962110982169066149067077117467485477970408672088109089655610951704933205121330765668106931532877362790420693456318194045800134961369015933096300810549979974276706499579311230378784436047850324614550985594532872513978615911619203687098362055968962324012293598683962912312798824406757215084505900193256213454162412609753391755173930487175264365421415556434026525802546871119661824671704620363937280650303844063951203196783033113989740455433704513905415121630157694097677913002740140601433079106984328604339770029555923475416914649045218515495433781289934068253552463146301596267301275075621411885347908803958430811030247700656062529984886023090475281918751740007653750486340055475598384287082419129447821876833230517692184351405092292774663231215881303364563868089705842965246043895611401970187228116178309405268963532406341412101430431324450403603432091489347340376378628717121081380202368029633424726175282547868987726881697474751707259684301669034572058348265402587613779583002023807125157111109995370749102530041758438938084258474352440893599579324738221038502973827063120057505228072862302705138550602364370116414526266691023048638491784924941629966983819104191679091431587759179069482283114294155458210948560596638905762852707350901635921023797470574995827182027837076660088715554197261386680111556407303752247638185581804424173225541852754974222716767378211418103504206638094674467726653620904022954256983874453531015301691205818886501440783926895661153062248464666367572104630602848136359795904764569516390615675377712929702424112195439288118987916827275218632597088593684082512587000483686038870379312077191546964017833799656267869199047479490613259813608836568357817422106056113340008760017553156649998768188599339617154998791739276028675881606062389686228406651750799798668742092979726760543818197061150047320369183241981385727470827854810132443143085612527602669220544181099763594999446117405443627018507368148388929205896660018475999824332292143545824693057076511485634793122442000548360847715731561230032361450039708172660983735407523919272487481409617787958601777863671190446600637439375982067517418574090372381176084831982488441335111850758939187810335787299661928103107656052996400401765000615178136868734540617331880278675070233068918407411398896778265966835756505820964034536699789649611469583350395305864593591394151621347587812198224123781362842763465246526320586701636661434481699873562104387259296803698115082374217646864176152160473221779072418223094380634143382324109650499304488366869655780103810994649294513355317432899301914262658339386966079020306535432726429885635290953680270333470743923054683079354126146601253938160666004726718179635899187090307334875108136150456463666870910979937606372886108355591744984676340563927054805444424474607020050090520366353180453019560728891814034982663392014884699231287959154846421734432719243091959980072632337505491169578368159628724187180210577138098040425073477494543652562077288194403505339044530799878079930911162079094021339457516911082012488258966644018566086742367115230011292926314627589984360992831075982507753760111983837702399779485927933350227935175805101926395697126530443115214887769852162730054851065835969411686778807937171120419662586837018374149348639642786800405156505971262657585015149772033029864899203980118042764798152595398113643220959951593576741908635648113809172311585455542662021098869171030241026899415009340648439407671330288569425760692604840855689185751525769015516592816881886703983457858424565544916559453665247242641618177049173948895234327038590454946911299003396489211908097087508651855369986577851665054137187401674370258551611012861096251576253828047106766219539889363407160252745031737113265638149875676337620610773469349981522860707173001890362830114291453023637530679481475752332241539323814160540531181232698784590698793768969717358597050333219503642216308867676493716477094125990302717295982701467457375382673460061827908035265412191521601069145681060098814113304915260353006162781084557270436416083666419034706232184143202586939842800147966717177197983432872133831028935592056582099164908427580235661672534531770440009192953579675186497460491548985208501553633163087480537867499881078168715724727400708499601902989753909755618359805151565769975131218196865872274958479449940788046411932412479862980085914991706124633004082530653424930124366342763759033116621771880025281299084165099211601498574828694753796060577355278741098791145252256047531813494212518504987854214162696896469930820362510488195635064841761157670667623900752269992757195091454670979495070199474594890143038116828908723608217460764301594667602658746161539306094585059091314800056823146673168418221915374309610352969074146207746852606982463254643967386277298622508806856177490191858381187364895056136129972396309097931004054107740594408235584675371823780059348718250694530266354581716868741941988004075928155598431528547233679696561163506298153604671156233860110470156580108047258939809626937636379439748254089963379158963688941168304077633561266601676400721272039720916608789787956924117978743715811913544429266375904277842629864741329921207715320203694836225947374672033869470828287349082901389404120245058210778184545884542436199852069662965427899644569725513080778343948191954285527261865296124159521145284818690155158893091870147357318861556122040904090609582191643658423343320113706493506072730399628404971407817041733034318400906181753819779127387100884072177471280352959064339404725016993475372031120207898083716023213724222826094243315236448000773046698216579235111927459267776821696387812874282884643608693407252770622035737975819429957687593820396144658735275235283525891715834477280978879913003386283934316635836630767623252402141854304504671267530975543804996277412698580043789923192205405267754962490420838943790577703895110022364901617225599224370430507171768347663845141510166628231634784473647155497510048739752194573284372214875482496628728130607704768389999566916603010806189134066362965474114588391472684125951292980463859580127605583196829524514937023678846603409512287811168490144728891089273914719142490282229937791321214844859317501805705219047636139495003888723559008958311192830354658156935387419549113770864921407483788516080376632242684302999168032904827995822609703755933008412278193098921929167077147447822655702851497438223852094177373435382582025940758418943695713853625257378485837408324187699027110527177274078659160548323091789962899159919945815973788979325421129928845158623101932475958869316137288529906645363356551709973867377377702846041379475411981885648475001157862255383366432296150630322198835085288168793204202604771639524342870968549498570912922384783586658184723980790662744181613450173751153940367192773036884684893662911577034678925190934277886644173290636907623104204483479262490355595759264831128779903473778325338961897501178719262487609332191323823610144197767622239513189535175370091167093243139070813596189700620083367351785182388829199405443921454399215690006342792997152989407415545749502930850492301572739412188965176022683222707109550330436832799065356119943238798554099524195803242446373260054554720209546769223929299117111644484331166726057025195968685637402697011700171732883583573902139421520778994888538230832114288474777534224455847482971358521798918437234488485828060020844507141612865758062011405130286405757519197463925111382505867314169027504910309071680908446991809284213646956173791393583880038948809216223236943870289434832758010586072516395217709613093058630472214121137531671263055613491276401148890746267193362863545839880981818674383903629495207861559194288800636419718520630818646399646560729747289300031757529607111780245155387785741981022461562212280022893489399410158049425565340601581640523922601901902239704219755220652703053914101094160739815872144886808549737322748430402254532790956093209235598553916883601758264483406353544900292589178992139956776821812981089890402273166758050769958207538422107723338034549775801696420547117031286995226003496541929379789952329228903813155288687380287252421632694695800564521008106839888050800603705043068351029389416543582978219308793005859683320584202855594148449774728508129461892128773660343270556352905741845396236253511985997597628369443969881724500920807450407566777161728419705081460323169490403791679050372553005575119711940434832284864151188479797748743805472848047109090145217644412977608750309060524437860314941153381473008138641942055896053430131084198200489142984128602464938112346893948032314657667310939559891537569287583164561167735597662575182678205386593083636222369799724070555712105052224799258267509387261139155791149263388428563457450650386077790827174303687797723680567443165976662852116703498062755734215840553838554263008935120468010275481833188292398798420664168068434225282809820124507727758356807633967179849346022110977162057831412309370358675368426596809599189078629485659555925441483599045319542288498743840815940104654370981354666998769808452460200899448146026483255312223267145666933784874505863781654700441684171289270246633130515957550102537271456185897065900683214348131281657219482555112091551041268406222140265901169141772294143268118282732462725997315289972797590738059255097101964512918958303667804176709630061625166406753410450750225488594837397930207288016683360212076416724099988712209108062038812015121953206147175198614882303616736030382200415788320094118339218177138127441355951969015227010388013275557427251655575454258318298082733655577002186874408339924832532507902749483910840866096984050478934453427936936941217364465995608053645361486594516313751647641777928699281493721441038148407981602425959227979587636501327719458121279550042275297372376118204007140239104442928076262517530387947136507342004291277809757866792856975914701977780516377894956079718098288139521915380967400173734948718107611972647730398042695809956966405967587641589989890239737715350266422829421241664691034001493709816249684298867746764424204459257038978832391207372801282509589110273859523973337461517391206900347718347230215333795981479891063904814241035258540357270280428755593986015661981443238514415296460102032409839882534934553568118818605356437897717586541396735335197430617870485106355731013523656492058827942442656687962308377892026947903130065268140798186437606448026266940110763003444372568941808711181057358690995144878899250441560250212665270397346369749757810304991232467458267268875766270037188596665025704181132682635718638740889161957587809983836150102915201149320261331849908942290655949979415586020310892503639685684788116475290240206808223741864032491511465097369988112068882793656373218705006156971427501333509195192947132852314505217668647711504623332189893469683367443406398317146045488323899902608153314021400127581754725470022486541738445020407518457000229966666486724401847229181423841601700620460932314665948568172969608438633723804566926502133412245994742874096293289367484731487804398225065685529923403156369400701428314056143165827379559431531213378284966872583298841979692195362242476678095636040090349465250323285040122521370024636732558346043035710083274050236546461449581002433706113396196756406512773682140736856386187937222991117431945625820301050542292791986184160595773233682264439441543998037479816430768511160073637142056984427093966081863548158116484402292085497628082201930489787959211714476555930667179025879588078552718898429772358052558257714928630558600604393936584690440406896483212566778080846106298374767352917278421917134301635906535049460652213421394497200444737957885388782795787040193935200751573644728991780820846061077923630619572625829768704554702545067138975071497025174905348637881576281182664071878540358229258267458408047222321916498611663182207154577852077518434148185160720479851661359082265058815887624392230581158532083997010499417984695860364188729962816796637946145260269075317011250654400122133202609070458457920591686555794977207346882656052479899117765281561952676314516583164447116208138616879936449134157392111920285540076317404968284769487412304395267993735740723148690348109440835253288938347129080703478861726514334426684607631509028846736340090122727378606856365009383050643767148169945798717386132264962274031532684077314246487562700025786478923543993063033274666344230299554256795354059239317467900473716247135521145153409722196424132361968468601583115596018243925150033931366605246244383372027896820295971403794914169652922308302448143807159317066433497714004777288253397453687108389037894376991669052799024086024252038160939759185521516052292155769521767770106501429627379593576317704629059236756109257507171394710730290058059281029937535249243219907520048323847471584970796094894781536634779535485657141009909846415964320557518032825363693379977555020682015563766674717794923852101657662651747866663845498761156875790924893635389498559217388589655783742208918649550911495892455746775857931354369366591723936395566578874321778862838627414692836038226901445415816410460635558676010165913338743024458778728141830286501924435851318790146891780239303851572581044634299461630813512485568046225508992666179185695407123682348372148594014354214087283522873992453307101933932385061884597971009714082074275173762778221278650487830747438992868638027156618462380516213899995709323004052578211852505060704788947063158934565574711276730768592784163216967664827462501172085881369638447231436993508690051146818114278146738852943247632545156103222087177393362529198048186127734419306804469734298227323907924084431268577330246881845677150831525104200350406472850776521821964547149069057037533902058520486936917796366227499162746318498552328458768867629414274352547547064483031988225342233575985214547573525738753475746262966716291457898329463707504602911880531143039159312901818350336113267197585466285997712740689596722352122748976913114088776810614435407189472345744425030604918123415409035878787665313459958190786477481479324584902471483654229204428789756461442644294930012047596891755748888001532627444254193728105641200441587150251394149077795782064951454434665776390378806592234165391154868080134994955894214030282144024694470119219990928960895418061866730587628110555556705486553400500758622392558018794644518715434967664170809463842484079897925233359534765830039937449475245817322974636805044797423601022513563558354786415564676332076354949729560446743446121728417954886251700974072024016957329600829014342046251388460231605706609858849717184979583940821502742245643372655855779574663006040120794245696911602762923273993811249196304891529492432277168665973685755685747465374343075404322191739910998636752133793530500578949497304865126953764654332459151526003525686522265521226131965997547340640211954398964544505212446199038220905977809777769756238921770755288299852497495440475146551338048073486883376146232696531825052118306116718397722757306527423267543950491610128722687010889003010933055788547593017643569307578301621931284002932355241201244274980310775910620014332737776909040519209421399844142016311685111444785456103115444439953946281874229329122619920592918986935941232656079739478982487473230503112281701061067716739981316365788995760340885049198021352587884624411277771672780108820435244677046940416352324242788854810771755519912218046705690443289927801387924755223436340632127624081133820478726965707216979514377707517241616444418976476901189309825822900151029226515690208101696374325079893398633142984919704040988225853484218875337738952710786594050220769411239916792062461933521822522099808905560534195737852267922880879200016643408374031902474658740329241835734654656733175311061471834913025017113041102593640348179463364915274525832847451377652645089165930869038788970778850885628463517883519586393498498083965722870060743257070501364698997366809998011060001705574002826757132847454326191873175734722598740214135221313717877743164569700100143495314924804878631272907309180927534942163883644289218262757345406267732555688539336208752251683613446002665936943890541104928891869975059763835906040294863542139505152689078822097392359081516976555238510215887545066519785005937003654540258910558237552117200092550049940131111322714549615039173323565841483033245195395066486900543222972869099160075174183748958184771029619705057761998149255401003941544102750849641525271700644862996764020057610073530217906702644892217024331237308596898542728742666928171782616247482303076780497976018158592173549917612766006976910653414258003181349638806794193948993985096574761792700159243373098641808018288154553495277637235234827476668046611460902509894515287878263451974920869250460558988050427885797167493616827306749516925143186523552182384664283856321080031124756752885284695208557415423531531918267563387735904167069544390478469986923370901611563215615531097871843096919139108586569662876108715122614811810624362340380402794763302160170166629663602930548576916000369083251090395812135992161941277843984902896817911560276257588521571350468942534851552438221278854239455351263655543648166161633364006572843781591804131364183748003158003628465426317392493395119192625357819222184254522249625336139774423140500649149696121535571378363335214893512296122829325732294167705479133199889529218229746547594840631100581117866335098845825166519679977349075628435033252389415352247867415244470489147071637858081552645922205673877125136858975587282598610923850569402814859174520364274213021799808889198986489742942786640302137939058344899517665125834771615647070174683581528039799542650923773516118095737173932608583224883632147746139649943439538163683770390588648991922495866683343473956063745739375295253234702106573628285744005821726625727918507826622302600887049900031819033939013451598885003091573036553675315593230596868632549791016188313342774939321539679285208213319587045038146757154803447195035949412510732218335154141468840880280154938320749246205920723481857162124874903960835280054349754080121970850459822262426881388423224897240630280541058046213222538320684727777345155428297722412761996040901697678171828545337976796104379047779074095645539235513335372710870908480483355415723315036457902903142598356402014482354305464745852832511227401689375562865677969781135381414830895091875106272716220488636003095675397115636745113357409822264668359424914148416967635912077556648110914655727712236340993686350611906195761535827125213734371652384432723510511647548104082699403367633512263460385327873554692892943268208762791544590822608451377896130538645797946338860459042575479421427330291603575780133744689511104487574072571397210366987837895095801726077857580897561720070832792519519597704618642675836415916738700562042441869112005617725278363428888162057320575782044771545702412098257724982868734528466978861004912707536831252393579520187608489234374000079675840246311542086046337544099298825542801682772531702240290743063963549589373150795578593819337494858061206893951719107969133401423759452347626685443983946002402469301578409255431238436843915232679792362866451680360939009636669357766922089974739709579737323396622110287783943937842723118041150087071194320008012415774415789829003537282165679086228269733587918564118392328565951306959640657385409470104281392888948775421328524042685545585321286557172666783399919695675333560648169476710981860466205530824629135178463592918849577736294039947205857989839828305635259381906094282392612180068145027071311187550268253614754300107200206781401227011810390249918736069038570509044986875796399418316089659363651008581713340987343022290948299835111383793092761980296455453392945567001052095140197579996549069716026887792428209498331885664114142044388126872306188090471903650581394361986061044438787883021943972430286265006084627728805760767076002899741018054317732062607180636329315831992463873946102766194696528381321677740911332572644177277652926894814089899050575335886904068245946079954444829248255888814091931236771934497851832660804304009105186848547403735226152377041997089868476782348590586163702363012448893783176607923284524188394860684484244285395664812662257617773167027512973124042628533783206187587634204349518837970343573189433917369679654992101187518458896799754932412356588815669647788515731182683919276943716311078749344410738453319844107730370830427511168246857805830866965137812750133542755386385769823305078230314711311845146706727890678407254092068616362055512146570186255869536672992900933391726894416587283929041880561501067325885091923251469749390550318895301192911161972048670621396720552165423214856566586424939114688579347124419215833245438862656454453079250962367165152254623599926443271620118338038681725295845251359902507408452514817045838225548493079908733971854824314721963447804411197468873160078070028117744622179506453503877546365258014158284810550376601538118555077434685470048845072593312568298362047013862627964683171014893232699715044094725599054479285242309248545127598334810346595512236714544276829100459714265849384938150973580876864206086555118727915384353411587622637611800083643232911907129428787332077589510314809981225213171591849441973840824085049474072848412390854653273483611067776664917417889062549333047894533713954200872909393923560582259236154157125077936348837145656332846564693911594014017765478776170400118427112593198086198951987801399429049036584286909335943741564959832919399186031395198747253240800511099052686720118061087902280651311632141054414665577313483946146580013703547197631828475699349255081995631348745623713735198629426488211086651755631945546189695040687622619901648156327786710882170594822171130543922621445749884228375819340086416232262092115377262466533346697886576785357280785807111160823747167154473455422015169033378072724649890352128461949152977781121008754798399631954035713827359360812912983384353139220571597461156757535061997821332905884264414487027553790644671167314097414651026235488637030162072189744035835980078220958255386752339069422556850181138452745031137392446899463012883790831565026576469430037234623633305267445973068485679674352336498234294709000780874590584208740702633920213952649882470023344352088233896790390259592860254780514982077969030374656639608372089575406617234737856515261645088076307891249866120183326923544395455409545082979745037868521623160161660900773370163934580084006474914454965901098225629306160083023140907316793905257468855503025525931210379576213926366526997280998455843381845862091652292092555689856726188888548252151686138044575544460213659916728168753321161299778648962600647316620453588087330933307088910389014748855093930470718825921394598161516249334686460139903051127119439778601150462236280235775542042626275065029917683547488494162226180072626981786295647731095226147775211470469795272207553704125767088828349898225444464339817316357024456467045251478381894069930477384457744721447202997913002024509096711564696190237293629677003823119620543362497836851808384601226867294380140584568253087755060045316120810266065301631879465245847644413319160803932211480380117980218390477998894197857408572276165352861697981351543259368054983767285967792685916054056440199363191313409514081947974904827932541270256481674674279880520552089202214036031043138836566651334499143156822128827777999167596011532194596692097445167352781947352598445195414489285194489542507026636686968116629213030582708822990742570577042665140421229177916402030579014265231704067488111884234781689147776997631016389297132831032761443377390140586704604258501692209914450483948021062727178355363351557281890973328075548975181743767196811909762863606522035844824912273353773564255450369033217017101743675139233025107486664631463518467463773939483194814737026781152287798823780700908178665539377262650122424208489629022182687038923803297717294277492375890573935416738224839459894401964067095228562739373448090050783475304398148437150932921466767173599705794032854791756450122366298632421078658492997928639054188016212584221833409279970489155623416419092187879891823128283870117804717860545535654068897605905579870879074446354300756874965483400113299551886276543411386904999159720704002667860755190588005428994340907679317507210279430202119918317202091231964398105229575350012141962327748310106072316074230589237368184069652267231816562941548478913115381892822117550066785703641109018113853324771594126671518169900215233715398656516106659810089497536658586541621679019729250803911531904085546706185253608616625998875126475980651867363483838309585678914201151982623047842360364309792542059687679775677871747135681006530701707641777065958941531598756067109026598942037046710375390821974176767431644650407701368629119237194858395634538586885449719149893878868463593953350104936169943212031835088691454841537145687007562711868714694569278725438873497758194171882513847641372419283663415521821513251844614171154656640772211954754640329219887289994711401728702622388332822959664616494486345212313197434089775022156844457724456718324479352439634962932523512969042514002135272079541852942204475164044446330574062159125391921182948523642501922081613601393362308610498931318938313040465442329627542582454001588387608973330677935099938812260917154293954696398155095723973523603217496469498756338354189825989875990387613289851573589387677509890122912024349754763062618126846385637666648826825378530966680430602944661533912030840987419848440327204277315337803992418344489606439766267810244446801915356599265368468056425358107457985540993995144636447484136871942361719743202953389320369491993185117645689762155296100065847855782055930984183014466194346954775006268482145624811297289327346490536697491431687788092251244041387955689465246629618099890087618829971538443231832674294468539937683928952827080231993180403503523267026808506122152891985896036942688724065439305515213605203222635916131905611750874251253020531381872536968782441093421106524664946592151951546655140097903007944175722350174068513098245747123308330115474389406243526804422651176860686380885833203979927887225978818628480219594101592487395584032955653182000301368124661561288834683500903265933797539467861636565499247070467091756013907041748290342427571490532601812961959867971712205134660756860966481474497179700899140701060879170542549357651454053871018963273492031780605479806560921191664440070789373395396860872869501637886125320115936019198750254971275420177673733944735722132761337239427757042330076109402003133844517116642605038731861372550040611348242587906938842967390808863140715328925946874654473874444753820602008793497859524809362121046537076748469124661058645511882624732128328979304016519924086744856325115760855832835794092984207736924602834908954964113140770682195846624929944969894218807478090071891112018130722062178748022670638165879099033407589685366326379728190200999932557839123237224497899426526008411536912979030311779413561872570201132026883760700631308489885258329854940702879286944705761950717039616153596883264893009187480633254718754162646025192334106371489758881863742773285872679448922458983955824986323097033982158457866568916259543613763573376410991312298740968607042843864343605640676774716175143288374024944336857994656322770957342818315726901134692122978385936977369997842659686702512292952157178102202708041202390007918905090725266493902009704997507691468128042905990181691493828761786515466597300546106825668926333243662247080385597002231263900701123853432868371829448339550358500422983055828487125437541752956926654379892821821678433230315822741501234444411219819542919285352491576328002085737832679090085329314063050204887947273215959799270085284606661308539490420820489353634690811246846502616042483218188126634575744567486551935559189038115454299685850943629192559674339310884216522683875843994937284796103665615290442883697280511746056396839168911166305187611300514046985967140431096111905812267176870870744884847973563074284401442595949285270208026440194752722500197374482244109244807789679174276149161025953873567863029192124136537481883728721832283024666273404474616644665506335339889158194062115074946046062692851988599821447247697520391119721077285786431568892623667452673689103663048421511644382306801320974421547592924703962304524887201251871755030338256639721055464612020822786779755441900666356679549363129287055353438831870211602632011369674006045981653297602092842201067458592538097548440281244328134927595517961008492110974368823645140985182814719228463044539389686170276167657114335619594685470323137054863063759591688068119728181964134331990517009674816971621690736867950589640404934890055556382853414878412256275769497959836041880364666234613110268211904513277625456967863969772348169388930022548316240585108215466705023351742009882022467607374887738878266559365915938983497356521992391443165297239434459649026058880812863385351901725639485786416394052479053277807155935571206921070313480466632739395872420785159257285498805093836160181005639142354861814143265783574641434823732975336949751728938482841151689384181794479024784606388658097636815789955428765937854385169285586851461756223134068704412798438901606882633738227930351868745022646179143630841174242108215612035467394717911845384012494412052185174316414273721152407877139168100885980249306232707286885626219058546637664976473932033202227327771242790011043196733879715875208505721156632960758096220815651843177905598751941441630584918802160433281584465799427423401659368494882968724861559743380935789369088271254123441705881318563293523926168059022168600824505186516632306366251388141289170144557579668845210064206373765925627087024869769209570092516749872111991618330583772040448039792615695290350435267560906183898661161006532481345845924909899138033319086039901638305966446220079353791821717602378052481390772035606095185398099819821892679748628261629759940019952632136808861345153814381606650008973309000359774973211901163056111059814408008854344457069663308355814621978021442833458352071416970090033745020163618375283146638461007389341905611120019599695591455589856510794343791895231489823595715138546172730954061400756330880854757230109762715301903659273162932448884217700099193564003645864726799242997471386178406018200893962659736062409544994003625275330551746138922710674117007083717405037272419511767980023980858212632852037309382338260333777509903930285286754286498946554742706715124997705584552601732869973760408392367313518436935624956053008128915257597508582182010883902207744397338000608259287705294338264081688458171139727004450235988487460817343047961633589811921662571504354589198284595861200175515215257378931854278350495023274645975899961577714163595041882454029353464272744538754059984285846100530859990037374181660303584445351447669942531853323464047949815716660199441389011014692122301560311630113461013832324783487455653861769859782394685796950354252387057696937615407160101900480360646329948916272383456118542121282115158862042924683691502434088385465434448576610738644087914299574767971253806483691314137047226853637172798362247894282144440296053996327944401642306992913879266765970288039586755531987437861426296865374528405855200887917982266772046216234971922933010924288462247941501808419888168532415975429539402590217054715431678134698593532501120931221373595102246495266508944780784426168301288795606491451958601601027416161481858327232359120555885635178199729550241739378503401639727712771658188276200987773715401733978613877840529921155843609599290966974580903156563647428788389725634577714047816096461682199606028299769572199832732347145973328144768449775520568272146378987882687545692882116377214095920737710842132677390206200068109390830688325871810642495731819560177362509765462583939934543802012643267009471299892139409308982120700730440596848148331768746788721014665517360123503328691980273177684483336737582210563879690993162096959158382149077228090133284657890823964295101964247616271188164010272814421418609388435628109265090810607905981170570237854180378414973637060482648119820332301589142211050772630950803934244861102181379387986638201780105703328507748135716326975147284220956671891980719783942437859381116007383721930917912322851285165317537091226289661024499245395752135685690901609298130612270668123394168952991514292021128374729073400079522726485842362260363623425109345837603582958239609599590160007914511320409606692809525204030824533670524626217391176519863249532756380675045901793068550202905469283680336618863709205319907202275550467049859039496276363930655919679499606746556914479596221538752836874578553668963771067063710989569209511267271293844493741644341907729492410928660343863235176126511136403307879516286393009816185196946758184199305864481451679444931407157488804727164877156893449069637891395781391847933911856070628605889374031703937142873792146426214343676433628991021954794002100307986323140881221222566699189095887280542089772539371022916901608544511884954851094960507058712270484604177816028365289763540820425946506998158065869551361158880242673258666205351791294401441444660238236857636832922870210939384077971346970514385764034068891870275156680876720670779183394036347756129310787203583365626066499930511862293915288994616459977948344265015008422496734519851743402866793024101948696182172402841055637138876099498995703546788210406235204874768116801999443288376044501054396737548273632328137624733958035174115462631410651158838989542836737503552664835034396638428002323271835636217883937133501707240323923966618577935301344933499097348877000843136745208093111296255388494467044999583401479981566314355157527868050509321379329203560008493731300962581153524029882294821679424912723515392652005084285661561763997745196473448911801550849298631760110076107669571880816548835370499692125729402851676973917359325431936582380010239444058180914028303544082783832082534847050194637786239504487494411165526968296775526536772451934268397062078856445087881527522765193355602465588546629615574757819549273359379403971529589765275163822589594230257346339830475202846879324127547221575281168342417296066396357833542755698064226883029750848914393820101133765755734794544259287791611870821108004697851929800149139620352385269288237420968082489072307252441679349947455696957691688495000153157147901057338690712899821159530679106415690493128167635688923306081005407821075800508286920192291537891353808316693823591855847481723160173227180254061709494340332843695905990177046434999549363408854568586081857660896365126431613727058773487300420786653400669285088573820566715292869318613512579071135457481620238516606359777517589028162585555977814724756950813149206983631362686805245267661299937212948107320324706876387968142440193128123952227545968660117688021638774616891039853864875409319753397596538202240152506815562327192144662382065460672621889463424653855364204271019909664225420672062839578200118952993879376317591523869875081834635175528498431611042656805731088048267227617448244080381549370289432472651246421376480939892612547897395639991776146738998575916755655745056436077025952726421777044683636223203562110351201581163750666216038969763489302742192964063469468748121502471707085308503744064266209632358207113090298801298343984789478067633451280768858184951001280463445780914412446104693596408728257639125781167704789733923485983386209200750985519538032097885145794922009538598050961165034225917315442993539370345604691234602984337412052112914171539404783740578337531296049877914736186804570781243477741687791026962698158367111753697877569891448938301956673890643754371918727875802550305928923024514960965868952379369963418007671748156516052589459970516657978937854626581651887224053778544056078167173223294479438243286695400025219316925505444576978968825947627737224720936147282183393719424776797071161326636637110559634374936382666634610405670190819278324902075426590367714007915372195458296347555606790337280407594318249595902506839763539408239382578977502902007081626256777427717806090606984546494364738276188038083912505664400016493391929297209834978995357034513337300879183160443965051436275857212395132037998193392188249807508556726916294239706318023595123984622964434103336202143372850298035905466554287166045514567492534684618957605128149105935808740326077291739742508887713620822074991973477729514904234195931303244786759427689496387232467142879428903603416111912385006642110668510953698916709656775055442789447559305687692911110176733814931092415458206731358049599190712854238088655455042115795301962960487993675883082576268303113323388961961851276458160826255546133227766748697957331515984059726192568364686199995339454869078619720079958678276397233801024730053465722201240773421920191078616432948538546824983758712462205346451928173787688433116317907253515556169224388216823001495397581558897270499685807867970103596407301684357739829986377236076891619219269893956141110689054628476453018517812942780029702781256835621661102821254863237163769297953395050280348505654721828675096415811209202266538172591111916989675913439916026600442363636168152366529362123173829127181207837913713185283828569161886455850104010569930930201904822043176509792642338892627011201509975973060936394501185575993885452964884552573162390178333408946687029246494708991186425591352936484384516593198099390106103719348950174778341324420579265334181869722124170882657991384680194295613188645337922475322423383094856557841261975697906879061906830941282769035020311302669433064555436368814030820728669947027740444500258255020005470010266760984781669872261316704001585385429707000304447803252745153437582655075934113410440652193188540017105734727763336693903646946637601914739478996346308875947886064013747023039877457866828342858799302422892828300219122580930784399265617474836456377283713075831985093447369977152471290903406642670817913687529711603816334644981164778877554923494608598875294503237771693137754583365937901378812957151460724281989688230157565303783698107575662330175506773101624117293980417839817230330012535553103957546093768230080073462854090998809808365312788147596088782654957711745739033155212044407291717659183079782246137197857902754757499954076836338805985629372662175677247094715081248215082728863168105009253865418370391519037017020970636640984314521248566154831719124504148093570381736384762344309452464148100539211794046888672694037362146387188929231366578248825318332622791527537779814979718625695089820741831940927888393949035269607142154112754849793564151278507149846910987026198703727739501151587731108186420467515172698306721548423769126310470915629922726210911146526892413768138602909441961549113383235521025214799931206794053185002882311424472368999602292503788035709200375958606517371168141259602857055272599081495008028545877891003735638095051878891963246221632560389275668646245317360801798996068212451671929716127075173208458455629545380826408052382185123530516731544936152204568316691345822778399616517035485039952886337973101613245955859391655361666726461557239500470047084750127645338280603482909806604537973509395650378105458436296885201384989122131007847910167536576507012848949035779991973059265732028672460984134137256226900996634229742771732197545507498985557962902700750522727260666777107829348513624922548697482413436582838816053042669567729278801002978609669199102093397831238586012029241700260396361378216271101380704648008891660939942799893470513241444489638651522082843346603645494360631615017767995765754912555752870913596337701195256468697937505955792750702923746181969329156447087865363604866797770832098514223028274485172778338206356656699188454699477670748327832756763713789453345493851528192394548978735721901038840473911984772581696430711263292015338968803706356362040702705304992443677129727531069553682866197228624812142524418574776964777240535197139889755835405517750397845650285618859922093055259370922879116330424846234904073758137993887644540527816587297184871535326425011668625449539309265302893882084707853876348698858881428735347674290843238842772620988644474718113531070147347441226458315015162088523311375670326104804508769655491331324089318276631367892960469882158597370837723962829023658523598402744351666655985050924008814697997137105861180771465383748309104613432704955653397443807231541405373867001970453403972343598039668836193334803649328532457859335587300769121057621762054940305183937953097870677386365238079821561698847035574785040540134765265311502589512446845031102584176043975127769845577505601622228937406531924696363515872045220011282555302778764395086831928702164258331757570808741433009165461047211563255780375360229683372436620733745157843553160141769980050995308847532872747240502829675223112662456593739288432949761272035059957241810849892754303313254682011026973557622019435406341497532430215117466776726466747619432949726977406138487548383048361084267880390455189919000889155769826512779104509784539515636671314515936852621211344710857378883870159024944574660799178230574203264479378479709633898378225243771982671377679434601164182216475206734837520080362817221106700656436483780020897619222035139456389512073779113568233110507402233499833520642509630617500228068286399781573513878715856840678779109283966507172832372663779956540021781052135347002763179333465938958465630051064931929301397372181846836563628086264410487958042071983130954029654660488691417187055545340996409657978128885834822151457448262839412050968571744010673032010850396211745854075467065213478890558657402526505476272380543204502986109240996819754878010264296607102666301721869640015841906514575151897943921498053746432586946850786508208175995309420787636942764049616290885705630118123866568104847905881561807922096689303348211070096659438194916655460649225851968917229042755815206910640843068954462111297339122415746687174280811526047715335569026858549332073326404733075888397533781385999996999045864734518656036809100193792915293300387576062092453718770428393632008277877549350147459892208115979535541754950595046871863511765711216647353838404983395600899803885886763582376799885861690056853180422330577296794763324979065156742422857940592001709518277996948941578521597261839107790318478022407498041226598622288609089797476465568440810910319026024898289031072336262281110521200746424856184595276561193118469015913914136323931522985236154879553752686238534151273934524869329639280280875551206952961520660806676906738393905575910970901360913387165732284559630679984114029680530706177211058472861756276619245331180508767776175316160670853564625469445918365630968278714650481418606292450102908003055878743555771870442518680745115637950290642565100468610428159226550155094479262938849063480175014221729364981602928262981388618390111925459157785246494748183157629694404922121150863745190119502516492404662260401152411755264984527756484230483296873421471137988302012184257116164410204490815258934955543357457077176909740611571225539833520635267183225905939004619895424756164198393181988725559939980278519151800525553501623596493646428169429816768889144504245355141710534211647871410159349839029589076559344811959363515196034075803651466444578795767113352047709737978393667725086011934033301351001210698250075457918695751328784494244512564088272612245529557222468714352501554190091404660574022648975917759009006363048575456227446007377031646147799637554757828017665214019255034064266333351827896637597596549537790578824665276126739252489079237286821921760688930128739615459865048223342511635146347288180205290523604448172695288462692973867381007824720266950481931004730128383360148356904106823646275878582227460934442098406253991055260571593627121844543029773670343061216838027254393427787205396030556169420609457772844662425019353293088891139443279792482744297601434461700795283358942368834186324551544561073962082800329658078486464068144897741946604095767789218902936215902218857108758902118795646112556261493440346645610397943760832098404105382699498619847151867202608074174718317134240802836641770788762647406912791002674437211792992217923491961493935703397833300601244574246390134476191819273363470695610767783120198042451416023312825530817716989988478539428492565511500671476270823231702947234905042063025264589978917811171655993383995908824174178655456353229921835815303104341695829919192599562768175160871819155924272445735851928835177881039603825526449965754761833342967743718665047176251471605906393707186905252494860132613901116511783881417639095363433460690995045404724087113008058537184649369420267593657049422575313053538447251658305353141626706015523544942784328096370642881719782852394683914961195771156292430651738909660661765523503477910153864641894585860663091027619578454269953157455025333989002793470178164088439662561917888827097646497885745211832547888572676597695843694482267796878273008122583513416843994199794313312846142797296968816920631548761718030531867370443479845325611112513199820987216478440207305216810075251720957364286631359104041882389826889916115504582973203654865026266786479856166884727761292789679663613478663445685654327678830251805654945164659803092660130932601024593288242766933596063620576473273630324666582633802413202289171190751973224806345818979405574618033106925422173555515612040864437462012446782577636824308863366582578965328542346808834153352131548403817275234797308049835615259281764103902951363791379285570904299895237878675144834404879284942616314754281835851245045030209154454171658907818162864850283582952460413377415396792527455322488468483109214404421979779060089140147930402412665210594135924983417179381760940639317114549478090323351926669865631769401283805600144932302725469211074377683218782993803211915060746860763554630187973565703709599541978709419403318733824967800492770610173594687824774648199178516163450001448697399643227055629780523744131999798882134016077734337828613653932646130692578205911915578577065743897448061669193479675306029505793296989660287656636265509669212995151159356673552667238165501136857159750635615878281326565813605860700961964072176821993685755566556095792379360836125466387568141617932735026975810843547571970658420954154054381449710405058312021958380946888297798855582198390901771357438935649556265084066722882922219049670836756718504051552439631812849238214911958679513084346370235866596593701573174393621280286798361637820525852836677827014982143533704838597027278457712462670699445962376355871088378897721080335103832177906378329718717194834114425664302572695022447682526562544583319036659574699348780976203544077293928069945027780526729250930084972029915904993478518122894543295725512034184994699301067565696079621537341724349191198679089881475082218214234948404636741604610937044939464081732184327864447059083051711007683177686575276197575562549314305564062058266068168906617778589955794489474318675086460717659953990585819900538821919921013464265583336960320219417788995640892358070073226134636332727069715788319380793841096687778311704611318877522902702530947152730937731677982471417937571372316976176284747826582985554947492050679647798807450758590098293388842772028465329146409269670706896658325356623240000778173344443479500200683679655945689235540140500650072304198785272414472397388905041425773533161084303807070497761690709652934105011764549908997518013868274849136248966222854760772050070045389990621256607785417279655059220625600389703823832727637108320129665124548273618747081625247802856998042148792788298543266780887158281229579588589724742612371332370459563554587130830823527235670540498731638616751297791278728797233314663636083897937649949032645961297238690983083380355563140744619950514321640212994322475967595726854312780491374010077745866112445187818178888740571033293615009406953618898577887935315659776333699079428469789647945033476175493576600115831809325180857325025362443167369897209313549185392460599951630077878974807825829759317929189793236756389598596391755696436204027758381701803918539465694623680133721957609632184884559418969888500182523243007139021040088809595872593100308447246518761569968029649139316320705069105979195594603374700543795412037387224582136018973206557561422907238046785555898457719612795883592106652681590715346736809249258835570177110809863844111073301734222601188740878373012733478790167247930142742118482397761136645517121633592259239455151950396351696162320007655484737422723075081305129981517401966886142939149200789275368517440194976355147159418530307999721747106974815064880711163707218994793567463347368060399620271413163949609877948631066003978687446209590184487277428213595304894384410038467657290209868696096433281786465349805739021063819683800500748847963326352485200805752817806674717930342995285817626247760855809763861499843380261360998285602618525436282292755312035730231674337272468900573964365711303395540594803230267787675185196840313585478027327613921518109396008528627538075963252074883009628208416826345956607381659335082900927794190004251293275531803402495508123919023995514906638352245768381416552222994197159617630774996816003621309051321220238573497003109471119878000081746822685952637910288676946262452780079672329793039092723301991949915262852503987562042906585010353598609225761502349589067582756737626748598750570712979104756931658232234466792507047462953181535871344412648119127587769636748148043367950930119934524890021531069339233164023575217980932906196929938048326346869500379246382858635902272743796286283726794323886185543163016875026162250158318301404989763915765442881232967718193319528431895410895177467168342973295030633839801025039407790631209451411141052353981135669790350029484015120587674274414028392006285102179596290188451764496042060349598419903505575739600865972993350555179967201019173597085560580350548002142792646825921248100243224575106186122027009720822171142166233715074890435427980740821818977325188590005651156815751446748679414673950180287551946105840442935112920659095640827381577704965434280906432829027628044379197721572973584861099765616157763875511501959053979002590864420084023820471078379555260533774759244221210602228475053004984155690055182032133063582661355959471859803410223698593686915707053588326281616294318323165260400178217383385126355463859905398800245113374261746262660942432751881740967538605907913383045704546513893033597232031402880165518035458483095712983414252332325564463647240485120230984305601243038999999258873708974526328220148216096996649344016495202059571441279675628825279390756769597407737718174515501812776742527239453967346474014101690380942693134092321682112630170825021146701341549143791842032936588017565887676842996052776380811221984102813196574051805350713388303820813565367003283576610371575102728335241393745152385826773487066359647063220232442239570639187382723259005954221557500810948096122600579810842815949409502949334768196513903747943982418959899777452768856109438037499389337474017521445615710971126351181401014599460409713827397612011992193396247371861936660531764804158586541797765611409035693388920480981517574685616510499922927991700880542161416746870512983884876430479979595619177288967328847715854338008658716812322712421051012116008667399011448629222237620245679571318438577383123059649644763170972353790161844046321437098957336231254017030256634263448915295877367339339878399212719840676998762836052318095423328113877945155729118902397062417565939784536102932650890170402805259813072163039747734138102961836589525877830621238516740446526831526516523695853663231566833756194778795814918991569502493143833742123227802886716059890809543245948034559758359115598970132734331927570988029512577495790136055689961642911066996719629636098354778311100971615490380762153748552050898224104235273544188547161718525658308239435344548384742984852184691275625452925396766652833014247136084039120106248539978556653676350023504656715317816947365069273596836138689453306882539776333020742184247245348454489077276346977773076916644521374908438991838542566440930130507515399979538082313061885089323489922221853699205628680245991734750350948280500199942619325874266383315117253667996009058120847605322960281239108502104135832759430303085755348502058995640459749853309580021398752560589843897543391220488197605819273034090056698529046063813208034292736906501494108708371837296253945030550566348450616364614225702602726695670268525202603218257472338462469083911077821739109614412030047752604609098909636546574007468307416440552631988870374676901226954263029453678912118396887092319877055046386788958084210381860950207591649762012807204451875698914027245906632653192359658062328504025005767752800458424539080518958237833624256651936816752568209935359759477224101390424171754426327234414196046100340848091249671757789552704002135633542631005353834560124413119168797064897434987201725393791088062228186936718176185737087052074104364261148538081756969964746755279066127126731625691012464004625274919407359699542682902259051694933261004885442607734176540027492942534569442672996865688836944990934529432911787565627929379990624285755243083126412279331928103503956901657509421316137617460238588158033290498684104177121618662473894165470955440675302506591928202906493593166026157282038235567783918529918194874458850273632076864660882436101996282728960804726379459447605478572120249761557962388906461935455036053910270936435740731630424109052925890917042187580893866294681788256818112959985447173704315650667622699149115971332239716915502506590508632807864926280326566440681329507617233113895504938352898629800721596824082028468863025759329556872101111216057117431847186820117157101792148164951419303652789091255513579204413564352566209751686685363325705451611199749081876923420029730331492785832746313340466145169628983589079647521476697998883106860772643872141200453139176896873908394140894373633149635579368311049756710147151691522180921865970019668041321059588184974173933342337202344119770338247470290106256788381109652289934830100451161163500598294533672782338083403412665462137863760014032116856598416763570898873422776766446260282737836985274159510717723369990877531343322875913122762301797347856573171058417622714470659473251866295979963970876877506081985471363547706935998888333062265251601243660867177347860673414316387574669127571861382510205804797608810112100697876775702069646351028467173332638992303655592389850258556651607020855176104534243374596209262305258254626008467579863661807322533754133902500810690539563969600492053033451135737486308016443277451376252241727282947315243112979967817831817232834559309732182328870011576452303366477504534761708564823694783793613251162536625417876893970200994783056135187278909192701563777652911350254899802329838740685839632078779068789385405851489620344404715020270998732167093921979829453069682556363647759875967106694245747135105609448107035385021843828872039823485468835687303665008339909865283554697483027404469657206334156599487781647446826210845020355942315435077660760943963454609836655520721466927475328804023962079229005239833810471982325450965639307848909034004912133428226220690322669041117860132465788945986374097229239602500175307082317166570187419480152882642894125662967150504245556307713830679570952091940961027193834114351663436174641763506357683294218661645332043370502557402093154368998564480244515059961302795079240071934878556973648177454350034721477132194847526983064977661943225496923030990763684759891593534313122763617548883475097861615768873464279179439211091491301392155608523686294592965425634251067498561500040005699355438163538099633188533992352939907460196390985889627413650907256957438036177526692365275566565467722737573033471891895888116828006605219015381416940367566087458381538985223276458663436619229612469225093337402018875030317751302225541949973274687992985739020452600822239067493101736154136441001895111220306686722020509738955607160944208015340296650705341668023650332812761585234977020052521046880049505013893407726105327408769957162717412480772408671251664840712768050476977579641202284090695172999093127228586953514605309427583119510531731851962776139851116921504140104751767254839225332687807050630071537731483472963755733697559049040580139239521757866775472850584107659837124400728284584350084696356910930712727301432935989234542046072680951621398820286783428121818954507315745272117067787442655932738249644703386056893684180798171413755867400959859121220041591457288576008311052192571990542200230524807386072032019267346229350376331013390887405107737048713884024379474618735978141061644322581598909877940221262189533276494108567046493602901437722173061929099750456985084059235367604853511419246579466414125481433187831724087103670362446955819470106097382583558575687915441956980906761202884750799226220384696314609054927218092719812146672031445136762099666230631726805345133725722596971454502092577470997073755175879913265103151296490662716828269755705138987838731315710167160416180984891104013985087029899967038599047055436422950552747854471577658452034316905052090244682627494586485259764781576103498908456836811701312287078790372525791302074657309399214942022074372223328226326585166575531283373211316833287734581309617678250341738239656464568076121447341166812646148021555335111616786295238711697894849570450061448312288081174100147676725018710280316142930502029842496778595081186367929857267114625584514342438327978661258784325702656402947124432507385846466846189442885100029955817367884932885211704744187192342640318405625695639621128154864222486786465574817122206957579206885868292803928732977922632660618126821699003924346244288034881357001206750545369344090594521139155269267017131136412250443691397452196432224436622454095924539906560168430081154321916133169357701301377604100884452245775943980057507953503014189817706957187861792731397777789482226406921251172642040453580463169906685649426775284703423150601157087209268147190024528793960639763941870668262315347601272787452022636993037455321376388386024208943528818288689979861247117908038665116886586240460328326961961845510186836022787347639138012084964473269559201911879497575350818649277778630451860003997169696702691014604123889355313014815386827506407557218780980634915531877180349328012118396122399676696084066403692788133302857442373783778658964414974022820812442226395549985106266824907538001443988851589092358141189969085945765544476836495159927707111655974337615483800428105312908864563956635428105945114920745926419601511875858852681311896379351999324475463443023212998252008563796856229996894956126750010442863025203948736047981271364711170521069223253676418685485409628291605245516529616959115232540036619847746300458136834961702834488949524168717691336593663525543872205571639951095189168168946119703304459116914124527100313924444268274268010366895069754104291525384104049435635875483614287948120352375013855122556322355571914366799199149440979982792792228885873669511707800535317907988710481431566078485464997889763645822752954856389479401162070119676030241575155195370084952216373080674492681148371911954230317012250303562587492675061130704016571282030666593742273651834338778477876717437034521285529947020900485716633711396356899095103184942221891426170321697683196014767720992065610881427225090164543502135720094933065917949851724143169713869727909208059500819663906784127271152223596419867110033679472395746296249559825925788171655913961825477982067250949326008723525527647708585736812067976539091483036047432282580277197770875193056620086166914615345236914901819313327984255214672659049864606054715186297062140136953004393819100676055631790470768483062263109205174283975795166654733877274174531960601450962534749197421695359607957999694295193516646682947457996847229740808036716634768800894536825258179091565151725566824315148732734021867097976849978807396170633921639925424459805759119768611978900946620929598112544710486195511397367091053634170699748492597329863696098118460610719141357723083288673648277142486275462901569758504713211852887704312404463516310691350813484364845541848531479990761362324194185572519078703532738640709501125202774345161636629299488762359325461951014048383504636883214486043778604441800439618182589767434759653153091837578280158693976226927772509884999710640336970722085805909759680600014088328454881333617063614277834375927524733189594006021161040764924358818625977046816725296253947238566874542033415798736083070524632237632764547328967728537063208581370625647490814914327557793791324493368081208203910614905704943500514852564255222471150381819345543731526391846944969905460115866004436314535359308864765683969669938251266607438605104512934428181188971858839603607614590807370054734605263587994604505565769855995442919504661714931050932208060390063965087461443221981457919840977696845140589662783145296519633909393263851145040864206936256915808934679720321577902967904248282865867121393288676165423036549869103571168911594594320101339142631156087219162652989398768297734746178506741863783749185727641440473558434890913002986419684675682556385157480926049049667300168180973692056845062653412681956185670951462244557807647540721439385795169330176249709188444762709345154281027695043027672902085163996462378457190995326236376846315911451158687681721079462624918682330704904248059185094248463444506802452359703989017893489431423700875859639517650020186817138104236972200504026054463432877846605268898677052138221495600682692318455933178159987078153298098092819002782976683111962239162897836970259662711426002142789375934405749618839648715125881737514951770014518550280342564403756197529514331091092029198434973875003906803239202011914878169726171956276071604835109775620488802189388012302137945679527681105225535841299712964518131525955009678146011809926453877267507414861559962133022902132908806095847745921883103788767961884198991285968162469701760182333504774825840202919756714271980216326048638427827412929467250865904582524205692429378380690433455614985136482178626214380965078024357351977775140265352118743337957842424468111154278246620759727189437958128295632430869553888584522905789011197748060981031779162818342651961412894859970751933820151692228480292995678451617709685262751979991152304920669637384439867654165637271583451099905499069460638017119656179836522986527391038689651045391349825920574082178708395931082661239529061627071425204706080681438278558109899458013808368161246826281101237522865952144307852988054931530335053788828962867487430717748901193374335750091860116570621281104058489106029842512195032587892632706027592401006097174985739143385669331459233755699404005821626643997217117304647704333832194772801440454996066900650465538737533739361249088243334965948169211565512322528339506330182480756111385930790944972039914202620586536977229505817863765682156701580702934624720047410854837177937191920226606270480186448251655082485222089772008198965365899391773527901465025896110074506934097407358048091091054416956356676972125344626847636892936341290421209313346408900161498261058576268261750431380437436154426686943952347530270021276306208379150179237668844977404233782672774368159200791245765647538621038562634386675039512499499075912985966602986906753179203473591896487682950276059968956799222625063585329742956516355319897678461079714873475358942341591931519538918106276175933911030253188034527032051797329267104874373710905078674221295168003471775078058880629057758188789349402447648489945811805038840827555823185377530007739744703392944900881816367391095881742345041149202463896956460177779882470765671463668402628657013617016097356061026005123810974391064542824689475681657717249971553663640083521820473395104794332819356184066325608585675910536579640905438328152878288100570881558955111887419634894197356157808242969225390855952917036133814119693518980848001327143345499466336580951098092489203549900563651365929340810041057280147642935188449274411718354766591050886747479869638222669249695962467492184410462749719175078757269596545365727862819431335032973557538762179405363707440103685387175618170405805278355130483669192867790846431869990431825972825871282609100560379672481293959561962907767831563830647674821287944243119867127851978178732715927504481968777400369328205070832551727185392023183823431081119823009620008509436984786225220417253873579116494360899338526882197018923735297674656733379730810429748367374425340147612974751560708237846464397689686543517903946647366689409566913409452480945463588193457592390239333457765623989214357995093800676566382458292070851223716075744088822959172218534493891742961612199786776494486661244937192152454388418248533298765478701076484333003117069850011995955716102931667058268114074760526236764491909252803534036656774574825243820002269384563569338813209535634564897622337299343191067055064101825267292604011333165089215984750653843040238049844714730839214953752475982784704469043221981065946419622400823399481278768379586407004425105945624316846048616633439645395727453941178815949327597265519083196636043539334547737361868184209679187605242415351739453956722484304562369525060065377484694762751154674867161966247366587300643038185833378460102668726752646528504665992255555283661402549720065613550979601624908012841934702128531768130392819483533923836191770791066370944853104346424223309731496758999825088293525054039150104395291812533277553876550039100470686983091687570725022473409577043274727016305967875098494773273294808649294087872284142189188085153823156888964171283978095923056361841878462700142054310928607137147015852891023678505601155048792012677533237611173044070730383591451662911992831547539364744679153487038355854436402488122658322960787607724478573626451091943040359632746643094959348923159853357238224428377342278301273828672055041081275499195155208008010867884316720464010253242311517548149924140358224628571912903068051438864556967112426009750013500993592164448796992257155528732758777410771036124851041423197878693743738759851733129337498905920977665366820850741151607880367416970174446527951219240965219682533243006203719843028834130395297501097764460398163923759254222205566070150097170609289581112015682685261458697259118798147412887285334820538668843990520499819491629323731252140973884614154366829361842131585495691663594988903515872253675174067834374515018788055397561004616749388643030125476538142068133863660467226036504084321364738855070535881821416641794913884161782050868537638638211568421320637028857076258114516385258662761168963785590804573383162853978352815376153229197279653857916890397998549342469294229942701091479330316069836709285672455063587977105572567469158638187700170846142016210882597617494947058816295455253666851851493067401991864717891460882099810196903400412233103091723177708188401397562007465908332643727788844667953935824407722638142184981458616910314391095186394423251870939475648164202737240135902604604012584499068759573030095220259378586175772110073559180113629408834351053666501751778452172185502884721625949498752470601951238240778687818178390576811143823340157261213653871838053281556456751164567729389554487315356712865788543067336462418616306713818254695897845099592035830828148893958628593996565829514024662954007154185918846533747379156033555857432684908998445307345256591057585229955857609955831423937196923723451482522405419990015243969309560751535263576995073411411621542471015576172351779066777482475013265901068688945080520404395052783574346425922923837888842288076624724929620635933213455476125424270866907396044660159127714399005042826078155691938754320887791213395718124975610151857097982989364733162906589617754016019062342594523043731557039094731123061520283918838450870243381526065545556236518093199166161677552172198405160930206506300978907604129082622183713922004943723066747056175658136887375391832306634177225494771637960434164683103556572059780347773210056481123598804623019932630828940833517412249065006681843900657316885239362386018719859268587621065317677275439967115239446931831836072722440120755525603287778590262909958147332669881974768618863003038544072897395263638911605153518336797293193935878687223573282591613114696805662207050598646594641731780135763736194712874712164765579523954141877103448167523743150576239078272251705244254588423337005682019590319721563501427308911681578807159551417666909333851942270697801053191914759842501871582352015505740457606746582984871878465352839149933900169561138964489682355704185644687461001262723453882983859217293409055065993406707989298435956477334518629697589402063477907070704151475315581225646417258470607434213340607717753554051689596038462345475728937526321107278331682244603252078543402251771636908195639892264619455596477895735992767072976715407867761079351545527953652262573463170051863787474880150921842456309585278923103374398965779223072378869610043202551138768914570164395174022661693478164758576177407049010121042414746840657075430580589357359731219706878413081641127133718273521590786876119128066825219662314029737538990777325793408730518357629267743304643409822661516324099928780165338482355987856704244211509023271327963649682509583966866653504164005661104540965394698943216322878856694352780665908416422123396492638255064816394423284083011135241299373610988828177532866285194313212593890862990968910447586495707452037792815194581746292654772361144529006877001128418938948084739988670903649364127747159902225420459031288780559549172209424369251716219291891089139887578399748021245380883691544931918135582641425143159500838976266733260012281912623316681535708606377183808679968238717386816533404355443232450259035284689032511278482659112133987690929486023875530446881757185952596960841178422194310109740442911771613673706775345302621759729013252975165528983138476760005271161177450458699617584493858967258271284873256366931074948986920935679496888316476826508135615494877484502688490484663840068149634700954087725657734706331768652822835898397273189778714657085070993531214878242911364225726927042778092386391605499013570237784002414102929496171819955811085769324055029104820671827953735216562410438950285436609362180851033376575258876454142709885540823134861631985508051392523256254426459584422588311228083024920251418911605265879034241941353075607997899963499041550611980044799881448884944569585442182132313438103782234983109583341132332355761753774157920087664973514062920896924603219317913270768196421059394910481602968984400821342777081243991682256904642431292318935008460288825805084263466303094683447945909995298348167229966023622722122473927197523115074129525434764490201209778647934323340057273893064737105076773894400348703890487090376665390950665683815468849181876005736335702317835527119663557918953396068450795494648503744121017908390217232891424901272053275555982779114286254226663702186820818316101961325943607494718024113176751431727315064488356891385205018013736757232967877639090478973579268197664699168744113604364135418786493827663557597441728511389092355673025820058951906173372376453783370963308455898692664639013452765523108971341404851791925654387332387135125652383161849461238751496097188308857897003954116105991406220843969141781499979220623767551672275119339499636130863220381240478910882412463763260442616343036550388771275040000762729295733915819012986341055258452586494290738090875990921444856858233507311455930258085828391789256097062569728284331862615075755287416343650625332086757240161841964149550404597384063091053227996119704133223673762470272873343793177937194966635174104728160243284989475823489528660347210553503029247463467681161689261740661333001703050669178114327959869229979660816961696617263479316450218420645134952956021469486416305704157365575344621258675655181911839119986789320178541398552016960852532427514277487623612119454279117895688776652399417114419937929437774338711502183384828130087787588788462824795049306919723161565058886338458565559975132779593284425674266224664990907469871188649562894673202796007767565925833583512101477369531628041478302575841709570716665197063156917052462110264929397826173565644693332479668575108636515692063087017415386676652208618270048004192536474998973213811289905686605914024304965180868438438991144452827411425321293182259824578865748388869854708001358273708416514622630890333422261148711500223858526760310294193551271157837298365676338506454809811835684353833418850629943887351305760688504267318588184429997654396602902483927159498750997481641988336139644841243309207685422610999277990218728444853781558588515524084291946755379556447796051628053737387787851763960159544456976905803505198481606289177100417494217474654657830939401763334331568370095396114893953293759570069178406444134590492785793424491378253542394316729888213020228108399053581524027489676675063954401367901228392982411602163615249603057736386223137172661296798628337058231091079307203839173938081034844872008017409223026697622617596148364992375591862785209023233853700461832854218667959056351470290404769027071074003833583461600234955874272807791751550103442617163112716030337833488935764048278015336002738528060582837869970989575404639331842472688203258540813209254978827094428508114219582594020277296304189294774220411806310701639071885846623081221384793386527079606811342616187408292378902514396732189290179200245010993756218427838255869353515526226071569445583049208212702587553471742690620727896031235832060958157980770597101560182498685976546264400693774579055361539242741490117076698166655769924093428413685082074343682276191635357323339630110520190467463174559297621640758398333623971717516038658639532723492667510591820846341840443855340189181897565672817234178287450285358301538382598136023395987678837086576178528270069737381557016283821765893172591019950300788100867627822029469907213984542751677285651391987817818781310414998180449551783443898048467558465813893235859813239192721999618308328482043991848027110640418008077639628094681981845730192704902474053121973029525578056842349795386847833017613297791078010315403942456750323961956908702625213335326599824599745399761702010863158575091113892284560412867875737984638114152348027200026480043285577549439688035466219302123288397515848244742887516671073408432087729624844965854758360850156655432183166210445036245353439001828666593880187119809141375581003781466230159741225496193931839041246406483975708021473781399065601441401084343658269110570002320838998558169433111081470326486503405272441460464211336427674372483654237942779121311606810801648960646427608433830430763688289072719418204521520667784082949690743004660640874128655606329712134978675630173675394568245279210332067219452393993674256619581677224340611011140333729698987160762360270363960298696548845652150488219412841831678972132473942845907746017345416396058176232239491223727497941537009392795438393509222706782078057564236611862040312071023963799137956235441353637424458187589869277543864942962342819294671211974386346203262126898585274024259615667697435321582302706563202110912727936906594658491788331133392764767829414301187012819524131019861515184337901579741844028293760240598063989637762344122659354107545171104199545253546846525607138281602456877360392312643887464875472655994823513774159392811154513838828819332226662454833653769077947031625166279619277399148102601955663210692897500095687851315412629317080249717238819081888181302209842960076170107550651364897781709978437851101236017860896243095159114892334784609292971923491695414433911354080585898271339130746926355484478506456450406764999150807183139104798549093888714114627685231760918024665410888496173777630809644506697382098894099808260612629186212160155330041865717283452045634479379304348283487070063999786843013650799952160477231025708554665011491757488307876551358166439491583895269628197332346657255513396657306025239226553020858285322461453067278740650581127309151380139265314711363943956521508662898666931885667740566271842899744116652992215619341769620750759186201199854742280815857911670360207267447356736461935971297959771248196300038036607644591090241333934277965318582552396725399636708499219621725814633728616692989596642031538410033461217040027845824726613992475186118259520754618028313131756038619456621463572929311484051366186991058043951350537638079727392423267092151076939141913326152013938013442038113259113439743710058418697980816449500716555488658427923262184331537115859737270260130225824569571837870372083604074380240260959385757757328454815492756767021245753110594234990224516483873069060149616683189883928869248897880602116197198577868596110783268927225839834260859821786007092306233450506369687892773871249849525232675170429634881642448840534933574025567450615418105737111242967185947967221371946998289895913043504489361658599880521541969290648718804267394278620877816322249470616444705899072943162575254347426410581571799817972995234692263472120778436182992413050133802605004957058897416978009109652585015914608545700901352208027412467868657081898246968790284754037243956367182012342561289264941103693859740899714900797582094217234673570940777307489401531964914508758398474144532001532309691810902150872727307991230330260805040809907993107112943119058052138685438970706073649013021058271410364074632691584968826369383187754846291736491995962394735926305530716059869605245597040128308994895956981815067332764137157081427168902561722705055502360507607046653556526586451168627010032516090850611187759191858694233380725284704532628387553074051723717120130426481893085329992192845223036788881779739905721241523145082104935194278462417883957937508748263856549352264369364874424497307035367006457680426276076862009282474649458446154361420960224656132853361784080353028022988544911524137830595820177490266290949658117631142219799182455902735664730862378335761807261737819530664389495581786555853170012758389734532404016551936339028584235799462279543458555713923708718695231995152396711458716160224882134343766235890749960705772208473783555319547305741174377330471374902877061482215622400481304573992757896908109791118574874820999625837459180769837396337507555442590165141055299241434035816952798690817990621779118916140218637648136307281978818279096864230116262449727982240645573460047494135861918423535525118722991831996413215346622986805292519960440372181571171772025857302112153310804096403638530459671075592457045250974962421954196037411073334363037568633658623706838293228389616346673723016614739707898905694968388593718657268727872972988596358288482102796684072494877651363058818858635403224124140345113439309910190424576730746154394350354426633507287102061173452058108438039055589038009711482883400380087550082218221951463078872725454911294190776570195557181149881008192531637984151603885436024058272371965379414861971856709907449749629664819470095179206153446054481135201656316309972542120261083938699668428971555926982352992930727459365028546845292347221463176445984245122248337748750093541054948432489258449538448225408009457632357035148453245898006451627895988951789069191361128993707772255394942618526556366272207088662642306807794722776957759516496899545559455780984032387851815658458008176437802953798829711051463473881711518680196826492506094232250789082529567016962939588253219250465466220052724039363772418711377382755056847377088956634279710003362316885335539291250283472165667159473171369362554394520077284615530718316760264133890302920297625530650445675447298580449932844848529402371243841323286245532344931679757186330760745715888711323118458573113713662251030290919563013833621097361659936984379972144126965620234886876516108958944594951723611420416935676448848388300319400084259097331065905224004587749835110457228100896050280936201149437025767776815155976036406105780952634980628518624417140937063502384362074651553760468140109607420897204191965233458719917481026301051409079827230426672919348163535938651301529009053396084531529105970173071588414220230687016290941360030337248403636233766260918400911449243969340993638021155445502643326348267936129535979582554882729697102039136924937240002960579942247444472817769015868652678065110390575771376709117479234257870983964577117543659146875953396573360544453763628443658102969821403063023802570498360127342882041186886596098255044987151817914701155057512049425884107578792757968041130102739659742723772978689783510132024803706214287989844099588185099191237256483736011984384885096314860061148172257131481226918204932391380426201373910080679519555989494442160775287343206068312534473633780470153112987564066093742443603129971868968719148676695286213815319059258207231657464910018636066682561038706635968184650731157957532194503205119356193200264771359813989983595926969953857825124403583759460347005187230967669694378918602765289565350251641014382779034929022970845155350780068144316178834818734289211964840495185055524981287090543069164255944389884580618399827438136047689135517046045581437800977790540258140032417762024436851252665353316464320863522899116876282937401136877273485311516205094359170583137784542757310863742597452216385024970612702168223104779718001572265137150338541646340911668716292137670121700884579683616127276768758974575958602984594984111881176097466514133367985956753317337622221674374294184418545909603837719515329906739254358986762823769473886050306496041853588848170014799167281619131468635549902117091516041242668185084034501078035417269226471744681092142060338347399089917836923322277872232091089988960569445260944904622724785784729977637657401808802965605613725453376100469790889594411248431267968227116830714207399905646372272890757900175839175779387582314322835692244743841155112288824760173461575337475300045449275745686810724818315297118175575182745862052941880559218354535988076475239172958190419033350683847484375008499823025286341602212865134330933099124130947673349026812102272852912485397828591067938523862932849684743543369497113935359419866059225245297033235432833128949868377425598558092719494173665225412095368285368971417345452801042723862586479482443092889952708360884924225211933426384895474130069988678988127199302764600968717353762222571344186195786509646968700750111191459512675691692305856121008506653328831354873026827884492853999806799981649034988088562574377257769878895062452742400883581464957493632505784790741930864826056772530252492193454674125722435448842038222045001139628215121389373958484977018525327084446120312528490441314714902540212799719419545226208270226095721630821043914061788758348548920546487415459334777124846411378789096664189930951023248946551327594375434654051183056641984664913890662546227337917910371508149704332958304037518331400960215920426906521854702049396748089757828669974211210907294478695014779337642697170172485096525606485342278357362888168699780585514805694372408125482296072761314618557731370140438591460872185773180483754249426843325891363835738628689821044847603214407110877088282006366905978203304736316987835464391352438510208249895770386025418007008742023289903468324483402468793380381392708900682384547717706161108822883123857642643954671277809656984712058007344559949622844288376556387822939334449553272152897454158484182452932385636672464742237543902381607894140047593636681707485318452542134969560917308376452502942750626088854418577428062011512418902286611402220145365575211806609947033867676344352403564159232259749087921831201803629429691587328919842351929587480592317854816832177376838007182620341617542931513286033793965866645744719193862235055453442012738026808974372749328932110831664058225608625081818060790008280396686003430551170283142010757522667796414876816651780586352291370618364149016575236878857904367782060361234955684984362118314600917095309060786993709739716435983841355713306093153414208164728343115380256164819781369871236590862138006510979434198273640979758935866508184145397106620037570173938069711497453455227278945786414028277958726059821863150201309775585961045337173916760573357466913688174158815584116236919267059090240082167757809397446351242686480427663906227758192178905297772535808559189138267960477299994092640852102225610958810577752529861360079653862125447326425023681550568188047559061453071229237719549647533661320305627897018249791124147202040044816141010506764399383148728793904587590582772429146390515197172553076479499859327638017818130659631358977384135398670511797195736169985188784016765259803032778186301253642148036757787198764955143879125854464134630550095090472094237627469154932760601562344168028739936848672540655330490937876937498612430388369123901327646232841694420327495235250456035046336807524960729774853087636484893996068007640536030261948361511366795462340470974235053576887948048803385129676824154547645759215939667229309446844116165830272030469220200522725532912602820721352147695320794130832624533148701991070245837030651171351145085691482382496279168437854967893015358756779441957873489379405512241940547150266318094098764924068200468516693072297562278729767140906628972865069784824594676357411383767483410731482436278891199968981131695014021647312331235311601437387799520835947236787813024514039134442942831793883385851673668292231699006030416101853500576069501846880778256403206088132137723481827221054230598202700328529429822502020268654636804087084898049044680773450639939504472698069573064626580861548446284550952381861109126501896866797036162380261932186183654963145272034009621474755660543204826950888869141114764111909672323148089305662054543063034540839626298424610070689535031872263133060015630247379149409747740458785548837492905580842253312886168936972311785709030849602608344242564761671703699565518694982988160181548391886510109240232842308563107997655708639395650201976926544925812201532781731489411924909277097459178607001518781708959449036492541338858649324047364838926387485606001492002639531197975210375721325593947024441534100233883519117176012748990005344067092956231564297011205597374675190167451832168615621601506703381111197511302368608100522591484917511890881531786187965210511805162197219801076943287598513194892236535642247032644617793427000630931543883267854532046957473161924962966776710820166354946339752729779438119902028589966347592694905416099779995938946585658542551298017112765576581121262030616678911034947456237805606525370271066496729592992311839487669941573045267825402716812628338464843623355909426790919942604307699777249459912326490175025804452888485443017516064780623834545045547066832097837132068120743817045838601190680795816871706628644500499925871589483777723178823948664031981446884462343018769543277217290041030286957583191527620366344904989974873014267205241443370977266034862032145123771466625551002810451957522909535028915906278618293999985555660114348341521009294940343665224324413712674606183671792745290356011656080164353803701313622641991752446361164557014033954661760455933789661350612706245188827319000390529545139444266399276471060728947579540225891368499831572360064653420186833256566627031598837574610092145124729789083373022213257361686427068115895759741321328970201859221696857295259050952244976039714493794890797898564690244485917950071706832631793947692422868592624790679284104338539939661086373485319308793664034969620454468860452077061230119512204850698509721855305391133037269347387544726014210703495414025820896788033620336624914210506360318397413864987844444087869498838225157148943481799899524397223071639981699456019706910623062463077193834505277362959176701242181771332549403710789701818893722265051901736257392812788811638900117975603091434514001828302887901379523054946519772204245784454931224372751920659015567136628095255047837500038047424212425802780800683515685720274129232593542069677166377880730310401467410225005862578615478590465419873428586302310244946457189026175867525594928646918602494614248187485124930102440488199226472937149971190054349899319742634063578437917544548558489314986373976786767417571035424434443368363647222206592349666310753975536134309790944514570463511215553712792263209065356840193790088062467913586311644410810824851154575481479033878743318933822294994517330100428218290800795864241996116398014659554054153195786602435445405329966907316490306714161327650280257892336625842786938841329922302467177325144318325402342757160890244329893455227942845118900190828456357921135936090594623599900918161785234295636421079616221247632499436706972058348096801903401041076531426679632054800220774146272499539209956502991011493837939417929089148753115208530766804781779454091928362864014190507858127108997740866697481857433206544128667489574852797170552186911387633906683732394256294200212184368952095555343436146951702852682068222623059002961298419408950340932221121886050667082097198026248777915769266095682655498955272984391153541410533026011876829452570775227843725002277853213357456086241686413697844586183160605304988170733439689324364332123497170506503507630291780160710838350743199570945175818220629318512209047492503478402922654020395470796747548046777268898629841361560075100299457395201107565900973769774744710198859565676404087546758413351250843462510406762864440896447992612732410213099901547128976954874972238130520937424372311519013414783014059749732136979294695351211060277203364003423221568005829547212060211309062322695246920350449102616700541881021585827998719870045249131753032881753145026023819047191473573767580376169981609458872719352666174286026665977858939680678980377553814654731581654353956782331324537186177246979563905909794246470863930657794163915320464288697659396086134520787048259688662856648326882527873882212817018797561120780501249533712095273842594492004424522570362515322707525614040818357881677868965744590764672805060669126553298411660385947578458424012998938549198600464160901615704895002421918571650047522917791287205050332540997199159856350246708988716777202419360842831932958942965406286237319983042244360300666053075719081771617878759702557981147103853935887225865932929223386283599645519512127508255103638209826765031122821609129265260926257329262357020069202609669028216189238847098646975808793059198342087585586304543712353502121274120668012100325692940653038946802353897856888278010245712944486745836527750166069576246216681679571138075340358405807877632297846359721607213694885504574821749818726409602329475762817879253042638609397828276766585236833539012089979663858529464869530927919325136993198114858079647169187351513174291857338936350044311514656671497384974715895247607121011544892702602227017512032775752159328695804021557300075489232371796893994742305099719674385337038461657600569522814046124637975803293692529909081407226124081234034478368422445236381034617545686668158710214832030962573213120171350733146460512782222339425431240243651966718785048268585426211388975590991576204851456885941619198881661387006039411854483936323383004953582929205446674674630763387225010909338261203021368929338547642394809731583703397090913034937492404299178984194661645794542663818197770379390446649797424194893005595222120027099989904248094710627496003334702447994660921213268896301891755134158728410777140027018786557359993717355899813670248102878877326640436762060027912881188428301417301040793363131530034132844593476111285978243359699191143787879669446945430202128754742764568045276507660238345890952578921918556235174710855541811112468429658540313841476243855623782112333530101313521555922105962838657349103235644585653020625065345708310602301495461781415186463756572043878612209119211686095727257960315925405767203350475525121791498832210374707501391526820820336903473983296622808883012600911024016335658562573432545800691133768588544787209320957634504359725866808321724746661795936268755611602243919004523897702585993182013431315413960666715797209663278173261833715577056873752287895533736064558807825408530624974419236253680022406435987337437163110878963621147693301209663470832355243134131804615560023664014373526648112397583945349020110789550004433947936343918028676461499933507951454918691177637295727745516767834375182796549908407568544024658916541826681821868240774869793893594233761639652279531153659186770004363522537704024596206857920603224019016162462569879331366505871128547357559663009067652798095316558119486158401823809942567053547026753218142411715875071920833133771907795803945191670311849754472910586245802341323460877784900347020652589727997196178777818119828576983910634649012756442136488480710262449283165348720364512811613819829281281052776932032856970221849288570490633866120347185510187448497673338521139644494074899254793020325490458219664371596959606097378227798631783706585503763728013355250912683911032430938614050747130492179190713531869080822642033674758139998364446751898182570790913698884889434182027969542754119922136805825762798049357912568382774534798392923445883787827417658943336192150620768366110598721257850013865230382604552288247209146361883541863032492095584716292760379507579041330446018255646637125268450263644723402389227050475799355597743296496766320254115300789247447292078199414314687431628648332488097632769470978712310727163445554802967286517742816608810282315469781345683949024678355478700544410855904998036933370557482606855260502884828771082973728315866868654830902704094943558313839115904179329726077443268735869761062941536658523292436974107672658239294590110495125902147009285661666527142651636329913596204668202899301890436945350700774632999120718015406323803983192457858273835738929408390687155450902888645655939263727756508856240745170425828761752741934661481961401332923362837913160311477736858555748058839088727250142464055275642980011400487451644900465439459175133375344488339049269843889211161440584831753099065589264739219994622916139077373053330235643358437649471077858209577337595273515890437040633289638274656176297466190375017529081478268640462931093245616940225419514062194581207231243599988791842007417175580415914477060102396591117395848631955646850341345432613529575572127522912623236141591654398524846527729489384206521071975476379716349410861099850132367362453217759319835022881379637010801406052668221128331254073568419205003710275815091899951930292153649830687280881559532146309280562491368352642531702721077912681848538018275885214486876504413751280515187499242861202431198459861412272140076220584988289699677608128511680706018050832433666861736271086327663619995207366462591923315130446142408773033654045887913866694901827546574676509721488824128525740668496237040370422680552372579956267305229773334388743825233806616769800060363227633267986517900173963909844271306832437977521285651740270070646834516155894345313847652846424781900125059574996803299912738798452157796695431959070207476173075148281486310119020304579589639644914965195862751177949250562257495014315065401323073856761615087288796470300271301469320466161319964418645663488448981179788218132264669224793436860076136274886102670252500907856179413757933506211435506292384844210015175972078289127358918445131772212413175685359340975545167714486067918491215142110924182727221578908403696171484064359309635449768669634545093290614685718682219056224164473380659117422030888137499459058951430903133367940455703958520252506214727768044719805185032813256555292684021841447094378405496003869465563313251217631160010037486994790870635925999928634292328810529517349499305472602511528625612164599603564421197773884059405640551888131399957656282621882250748702856300220272463549702218870688135918115861916437867812185406767578345841312615344549530510299117560052819526611133826632403001433851203264076990724825616734341543417651192820597645414671903364463011442613578876522290896343475759488674665939251621421194956800125475551876442389405789183018263977982988214028243414483874645582169115419066109635286302278172068874406555506677441954986963439660120770474117311178384709923485454391058839260178029422879930412645953824358344343801288514680538442238073287534964908466493480626066492601961391296397283681006235343816672530426464200709936422556721221550398710779657711638441293793668735540679601638161866982154843802821365021697279666214888701639293593147828236578729323363269134954510156508560012498688771878743469931566288531608618863789876046167491384749010730276103620937921950467769464989927696105024926061068366196070342666734335328522669665701483887145964003060081158522355653292957649680945210176809090637880840078931138302828722612752960211494501019441977986015626041622498582779585619567446370960666956854175474781411316774823248141227310352097033045203383416343810037387633002979681938663120783397298104057812906868127962505372241674053939117530315494981586955516977698578624785747489743715727770319307943334249902838250816102365939352218377781499232226298648764971706919633635426601300211339371787841678793257724213081275407837858490640227398121638309203112467828950396023169861505968448802189644494680579589255506397855311029663175881130756720088312760494830441953324465284636310563966150635696541446942548520248989373003280627566898224297474965582029575616229293174742047537169163495820591371142559701912972271253942448354644293852013675671783373230026120498852373780255333684564293471333040878864728387078531947990963075355479413523348344247823648733435226431360602716379729652767114029153079915166886250135343017367330789151824524015158490766035428271240782592366076531421938741597598799666875079674650001809621512430825213466314586498471064975452988749861673266571043884234014103736891354466314666523097313573152449050147046621586359967763279152624653305897298684325990916720512427284107821788155527408392078233909023388105286553925269788660492997457368502951131547016723288428333618684563501235846255955323013175069536538566271916082004339209182042813824721392939549657821684145696676724545676110366059943003814137661194547318799591966991711289793390206079606377438796747688038766448533336899911798978589793368963728698605642688086125382110615543271591065272571043189804418783553925430541630026562383736722755993592561745525295801540617405497466161002360086838711793530029388532235858410277901264367023124534126933990149216377844503813216572705303449787901641580611205576536700067084136601158372104530382342065890967103637274398110697093902852328242858283278922360124229494270708594188576040477979585556773883385103260926499345651480537839445054468216530683249054914864571652600106525952177288749840061850360781707016832799464425182259231391433906906710565615012788006617653661868072784888313040119128133823599563926488055274085971997578592100924832589721490652321375885082313711672496313656045929959550027871742111319052534317626455405834412587515379668844191599967801642620133630963818158865761875633085421191288354122607870725464080742587872782656337650595944370637051230606509338472857226755266420224472328611597745882506089200887417389208698238105355596067370194735362833487169989194466898629355497599930825788739121963141810736181760752825837260046234664388978168945239309600742522539797534065890082238901056348136186078373830092179512064825065629005940133952394012733348361588024227353448963712155119193193999653346802304905339959606943715965160980061345776423397652167709890701365359655934668623836838069663539740319855523512901744168978734570296657366402572507233429748544610084108563219915744179930440816328485858787249632220898387711493653827970792364756835756643648600005598188840126824016938389253407466658751069354213133469609439546785343613549826145264386696059866203210478651785483676453389093496379756205431133172301996539974262116779513774227493904188885578297958264716055865801993537218208160547493765075561838216182460556170993824118946742267626467778585793232392457923617545544424002822695805781907377938175062863636943481385769627200691718148690008718553084184538011577120857107368907286168192643594498865991343897289964155054777809791214737027366462900986614100500297165007970487302031493954076866983666235520530098623844940744802791863098151242870473797093832597500013487654785276259197989448179398815293037402149844831083223231439732173191921920440423933258536346788756420165543837365124321847389381578460169361214752652577293394675156060351966922497077461477763677519147319347445808001294050354129940894676774782617835195329184958839816480396128008391650000885222059985065275255989997472387139559695074145798993022295491676672185418904422518936092459102391461827107682277440224959683230785655421964973319281503732779526343153424896416243441037834613432833347695364765828990655157986568367936426059022083485936272344546847381536626037464916848864552115324160111443810338299239292442800648965486726244158449999604770453953263381117286287760928521937467920461216974811366354572918039923827644176298865272075027879186533808666671260959588024333455466972649357371263655973013359653768478473816890590580534660515910676754108954254940172868466850911670568669634377493948549930464396344282931502366848225768734920467636213685008328819951586847465375623262903255886331582699552918092430401558803191232962326907837746276959539513036077874269559057365270230347779131822591019490932005671350288876668655842676552452737186220253458656654502903285713398125748200633587753088242251018043692448689500972796621029022318778506620386789957940896169273099801165814320477391188815488283615857780779911673933252866443490915806331083298215057047211780126879611714453644808010985368047366979659565919554666810131645953029625364749627141164037037390963339167299483553907412776732453113277518748399311808005715241446674606124251763736123094943041005149552648674818557400042105818391196720654342789608527103524840833941756738875534509195471323218632481729843996301307426048905896827740066219534529921762151101939766966022561909998003550452331528068191331889192619100600579033037954380589456204992461280739947599096367743136679259182723246119015469189024457219350625291198866817613980407255256550812710301371122476359995147955500926898594875902358333792180623438311677965841156519227744809190217725543917725819757867896323715296548868203834941170652803783295758550544288308529190683199943775719828427699148029278124774139582160295890047038593511782337300048000551307791427526205657020493436334441655720298672010443032676242619948427808759852889379939845289902441415480199479376324715464719226647899785712113301941789362804961797150564161307179274273685445000958899924492305627943734682387079938716266186125015873816380736713864900223618557598338133404940170298071727300062267455290584390695278259037982009137299818028232717931410468790009482490841747485006585523699089550955909964720988388745692608363194199827848034138875728420188414078529526387682404028319529874125327026524193736268599884839225383596132207221826590708139311725467003291054497077351752280155618124697498091505607012072169694183597190265157515464519962285051149623876660796838298061067856822187599665204855369282173654423012209782157896997280512531469032509876051634150997335980171176754566472099177696195792549351328182755212740798273083386508263647076558132236103540046132392388629813462095384139057948912506962684199090676399164306432576575499831332916481021474373560556993842676553550749034701151073401016135942360142210111240151567793082328012123640306653756920815566922926592163318041204659423356798749493391873977257486482248684308072311590236120980423184303190901839784467083771229281760175202829953013766501809908274808985592672241786929182067559235730217416123867310117741520553119134851222715726623062634023218037379466939092419630364695553804802955570773215670093914548692334240560759756272486842094376275421770437238919823637583472814113011749543897636087493809914722658064140862842992444091063284419832493035336728500568759545877571722301544601265078030748535022449015103486060068973617073053963754799023697759136658129831845707110983176646638506201238129457497149304629014914366743475167782017383832244392330373606189249393459991105290678485842349720164463302619582660387298526796638643204399615478075913595991796332053763781449864102347868283548027026838779665501584938255604237205269350728186111148877253273691034916515469447566737063151704805243052767258157409820275744959020731588006985768452979369920994137686326981895261224996825286450430165525078087996497461485712524200427135099058103206209149260613841647861883690782369384609634550905341509713080558481066771033293035500602605267424334399067391618056106624529963901865903061870825183347474805333847971916914339544298291579699059340853470623740033953824724410484638460770991642071392320985220228446911091024252509873693554993497699778112737142878086543977541406447489167576400163897604586520762706517008821757276496124789362914229593146097174431719295764676372610808366334198286694424976657882176287439087671513511199955288260624679738640033061841917827991142368211319905452470791503492673134270820445658516492760673180120826297949267868918596179054804380466956203374241209770988279256330380704280577385369142311089730894872636629883061928725044801398684182975409358888669843941563870085728285912492934565569633881218965156090648525712558020340076862104368455655489652139763697527184500714842814420120732016478499016318377636819179403636046629526078312162572656880097188839691220025461695127001246996015795731589856284362785221397675443549611135623079654891852068622631725065335706858897356456270175848136327446805483886747895372021476763122109227609632147807678614750172211153553355799056401814762826231602685167505211084505344616108811430265692085641382135607961174180777490018965056558638834027066753108886015839799281716223770889862712721126984812842288107528947510745652094782062817613452335734934952608776621635130314615106721329754656567920414955353876563644580138684156209722609335436007451697145512263849360698766766032255557451739217834643315267111043093493282795255119995919740140962398935936217096418904340609858174328067071879432074614516102980811799103618607381910338909751308373542694760330672465191453813297375026316752339371479086388100927038366082209246581103786350923599141549131034117121071340519421247263219817598635317130726674001773620803350359419089385749051256617148546023443571777617229935446979937680584263834821595492205795182073979332947882329187363127849064123780515065760128098115779848054698292184691876502611659817170732205434259602931143881978081770871193775549822135101648702333890962474503611008909248812814740918438706639391000062311669560397980642095244672852519388611934088749620248099956771540349903341882934982993880469899147906121629251352192345153169512565904994760642294790094144167983982037259945588243435269690628711044414673394772445184462546987336549720221170394190838528979950607598856232283973767317671526740471342110927923288635468323149884384761493779419223088891681742951750010343244785500130739029520383160228189417138330480554963092709885306320461988399614649058729591340476362203373622733498490744443082211895929659177343697303158414771628850856819239949827621164928206657083400347047634755852384291301288205442181423074724989450676655684051798222296916015131477313538781729212727044979909385995352971642106781551226555503831858627036040888070679061218674344760042842163424072497447647338161662391906274876566195624532558293272977982268116709333580219963884272979091086915588633862416614435974161540492410515796252429590833754100920542357498438312806540996398595054420990963890574658762984614977076352651432784121895752211152984392253848391909350835992580126477143152561879906122866084110582897177429813960523455779010276554598484543222909135207826881171539780530767748016740331464716478868633803590706894009456552122153618304686307621095821804466388959246429556240770665220895788951002632006039464964716008297817413337814171340128497403839359062703148108560596068404002953034510771933343880230745206814163475507334043310891665454071246409304534295409828747359550518009661460573950591880797969135426895585416305075090408174828485840101181006363935245175042781734856930669200100104307873708361575934447927667908515944097959189426385530058189819030148199366366608315814435475587998457377365207991519540509815229694210042134051204123176777683515539895000033412893913303928056207419453293608801779708058149250925670483640631676732769010998692274030218463645991733586815496914125492692020086913371702346027995257710473102436815320357037739283006619889994673177953788460386385826095758581495637339244167226307725079738565623213108666702631283496509098265882400877223664136023844426467991875107984366821126600395731359867265606029195229585041898826126361679594621284419102597691516530971567668483760407165470228782213523034774289370995907866990592973889312601617443116266461862513585634126533769018344502692910938717059043181032300922828386266485666542772930204144789697064816042668770520562520634760603309394389428668937935874158115512819561194259568397384695767384846539742498698278554892453359298129288423536434304405031762925900811305543093852334144895843692512188646902736997537099664188847162215838185447742606103265057847845462149605689167684251346799189653883825165015181462115804543800682909011012085286620871782165549455412951868561112073526285231379509605010681814605979324249230544527683229343064186308491878690616122662904855621556561574691633336481891618468684532193349230126061884365108376679900029618767174283660367683920153967342488347931899231288163698208165297727373889151017565650735920198095667059065414227813690250760402046573060397404445165146263723988628050810507289650957436256685238420216292566801190491099964458715539197206242034885253249607673269485332360730914771298703173175136536533511363889485810530181019458205851946732629739480172961040845542032385426953067392178981687833394444741903468450668087192784193587772314834440122792988611946513428045391443187705076251410884205207387161754676633451648659726786387451699071498157736356952752974012554186670455004806570204530588089183229874492003212875920608533407411996584301967121198867284079228250983321507007528659354553313155557112878625769928271240892101540195184220062572855895194194919571329892249264596629312760469482159557665204760125728554819048355959870064480813779793538466799961354378834614019871565066997066984358374996234475639442088201818210479031122480109372895501962037919610298293714477354272483508137664722928916259168281912159140982281589478635242129067638873490417257079745973610860812130774199721709072752516914414077567892974903798178774283177663075288207765996812502063248045456512093731410980722623578139489762321242602792379364463906552697334803394862805491401225290182049886414285753333769240976414723369621859957584016477200984874783916829950637440383269162765684344625651770116699112932767417055750942011951065558692821686340467779696687631561382615167331772159378738709677165009154472116702786946866334976374807394876853259082589261100824908360909588260049441819352050742391732097281422659994731638593465784129617654010919847855201356300669687154373423435267213019090789850134924156447191916747939603692805491090539020917428308384496891364771633553584051705998013042679481434583849551857585830428129406251163047338602337323698611147375129822801771752780987103322893822591633179059091258302709915240906901014565768208694487938861682826976434243785571843435815210084813841421355239479439781509608899355938012965693311551936810231621566706252444032398837513059357862786744037394458649644414892877593465094915778071709937743320098832709922149045097083506462740507811879015751613903034753121055475372224393187793854954675964123804408372431604598651454609365546564916209054137028616977395353827141252353809835471455896784519757944305949369386883178118585403601483775761170686623394887087305395255344851184841142696439299450845880696028662328180021099718352688091052335741912068232928207176177093443166791045761866575764440370524972915387197370670959819056936669429455132287913642730909884091315021658089400058269245070942325954614178305709847195509118747665642654591293508034613609174692556832448951167077797660849528493741773624803276090025499972254047682359996923664394980270737621028364275581014806431348821363854464963924925546411397262128888591222997622374298125750710510092386607111520940186195958323636652119455907897241354815140295532275030648156230645122212347160428227188329688460520241649569254617836151224806798986266547761274874564138940839451273965274409399176823307258914409322693904026156061103569284862240524793519521982369284352230603951834789625248322254422484173546475401738697036170053579562009973430579458807548380710057615907125815429052628108401444665555757770384207171635692917076682071188731631117125849179402981323052431477620265360128316843763491280133974925618886062934820215460882868708979477407700311347624628320558140822181104257309939027748832682609645474293533691808787761848792879003819680716968395104333227288877166072110598071488897908860619778070464058775731441837340762931724393745693233645157732461305537884545866010946060311863722331725719068688911944967295067599798317700145340343493029725862231412632459230999238829463537691732250135883779663582932311993572658226940640610972185382011575380422334141356284738521956465819668371989630491212920192784988429848323809921653482580646753224207789490271681547656794203760399475512871773828537172887940350453469108022720607990502292761530780156264251234272904262425322190220871331440037369658309527855557258587020045083864821482688937500392084299431770336426168134876616320539211006253260932648639413034145784795755586348165513390314046638139326307757224396823296271816800308398188536447241615154855312259435881534995434184827528493511185187931931646956193054362391716847979055202672398689805801073845439051709757824875770003905333727243824876824043603941275680039196894156335927184084771648741383011527257901427616629022956583087186942468100391329569837355942419098844083115955589010499636395799378765732228223468817168689671617885204679176395948675162752033319877029005697865668333461744751476540937049387923352941517466474086358839288674267040783872157900803633069873243742553005193606401973117942295874226057864762697632683055611143131663179731038483384200413516782614244211376080875878513676348227958008969295702158250965976295334011952727310861394903131019686477984914453379596732367506996286614817435023804166102353505673993505423275979920176795281886803530596534917554824572742538246679144146315895571623240657975047662408048353460524622050653787688975494303814822409282642303932126229389095720924020941793645519893194222796173907914295863663513888002826155785780496964571740213014571063490718158444724248103367914516929106684071381038083515806473742079192180262928062115112612506783747551369872122877036755145175624038264615792491330219459961931728482067034900386664316124408392957396292852008457632182320722937585603842708019759893950748653838835360826867274409334422679322703545976782296810308327190279931352721996558608423598429687402784819496101150221147805230682648877115100143215451628203906044250958217764382715892612975880286027368453047350119884340573036101285312237609100994709377310324117326901335758593993844935560598252689095996886805760773304849778222153899569521076118253360736847074077133884386958445672319004661320146601953888714773715118359569534831008136867002327881074764012340546152944477286048983680161926423308262160183070969409517220594235170338202957763100454934683194740316581426246373686330767803092443821832041813292744219492266803884216841512347066072065139167403786347285564444032035805734741481438639349741652249051814311047077452550698793578068867107587783109196714279373352308347676389537774225232564503433365336604868634491238139385725321313810653852694801454653089675711988706816767414510443194556737506036216200439194736547223725572641397703966512924872976960440038277221943695103386190113521459494664466998482489661176348343918897358559613179863862389394175965985526451347648009719745796327796414057966235240289414965135524402842787167116010968599173543345867885346842125143794383421668273240893173199362648537570769981612939413439982523407218535659137493329324253601015896921376858452062387143725203438502471605315242225464262191750655748776667722958139142102735197159648849143613620674333185049946887835534981990485920887086242988519543164381452561806328542191069225535156519026437572374348545383353718696492629054461783104625973850658153907352387998644214148807695607103005921444721796285726863102393658890239254951366419637688351501850423260097721934200332810072119828199101761933946294820539489397416350176958713907926549524329787400596773386996805403514545125273001624660659423207167418531290045737593827928122513187033403243969249171323759495881471732595670707092005829299240412889829726745736581922794312603066800422753059915019414832619849296441527706275436118211435160549861672019168955217628940084691743096232843725199494258697172620269402156592195367071979899840522277273805055827014612283158478802931868920006545214834276249659580899624187378663757613227210880550768267951186760325183882461955510259641210362413883018657376028897218225701878388192652834739455239033971799125202511764940829647703341298147260959702045547686272698975929725915627532814043358725872551427949852883083069535055743907124367295735572082470848763929870210769420292288931434038570788793945779349717111804071078145471193401565158375738837550203795304314328435166974447619045169486365075652866958082839060534792971503936545548032627001622677505403427415321885230728806643733578737792877633045014725068873982690191453217934519371415794304012455341874883460966945776999122479926076845097293190732930413524518677677337305581008338334914430638148253210102166956709495214867286342842734831929304503805642170184762084778082059426138025294646896050468909830835134689487779424405432057937819229241512306351223295383624148243581406142995478497589588757712875063002219462090921812358392577699932573845596347440563501517286506446399282742663378794570590974739555758112017329973686267955149153026421653033930763710908136833758263125752179145276103495627794980691598958475345635206696584175712256174266027801511153940189907292766316619320430169499915838964655815565257973709337605457465475804516478892857513222884617089924665584641687431547657284475485584949426489275611591831491230736519970730801502960493222794865530352294665201545475435003635612357434646927307868395611124187193193708012217286839370906561191794054651711076308792126615131855313317855119569056496522294861479006636174244818069431467587604470330646685736402620917595635872958654433303503653885080015017825277722615360995640089994980513174553858762320779377480536810767898477810460635286959394049376206108858195835901051786063222685445861062009443866540601120050945612048183637457828949312449635261654823233204967586490310934747962208184385627455465856249167998668497280641904893108855552484061734901432735879023633519048627323137867835279726719285110928601817557397955838347092687389388725937325758837337573060226948132346112054661397356925198447575558826781680111039386676965781206037932795526057380286320131919914612592289903329199152453026896040329446253790911166243942637343991760501010515839145069045706370524560957727886614720147847836449622383385943712316104595588642241673285032610911581808388558515631791296509462094059213048291513002332447003339467348635443978131482524312198882638353643349655817684022829154175460276453753144371841593733998977021711694083527930269978549238531122304370243475049940914242851582579362132755051153267599458753576384970548185346874470095746251629972016190120808336878079961669018843355434596328557457449318136312512340013984840591717075472768831093809759716334983608445983635617271850407120436323410780377386864793641809946535183209687026708971260509896169946749524404106927278454938560402393233487154164851616991754828173391346866853524497506913747109429566039157582609159296160151407821381954189283974658203894410547333975955628990130545461236619406162562544874600583748654955111274135287883947867465602014153268694992479544961886532953036156372739504872371673782865739718103591628220690465669852990572157736860974163344451097194802189919331917297171113011316071589512178933378689379005855104095799789065399828265657452058151395409620640539038309390772633808254697048775365275896644540715445976775792448353492838583742834095696106852410376391651016499118216805426389745992842138743388855210651082852661461063049123976792530300748828526576726483306320773082660772108072990279807636412648181097795175238819041875494830917412984964050915667085788081232480880100740118963931032171826287305361667101205050304357669752065247584008372168719915665809160475174569936178719095701756117536553818824179408596316063233156388397344644037984730527339085731626671255476288047504930787959584572845598168500933160399313522414992368355643803929800662398371428835054183534478678577333299456302522142782804422383382370252006289407340146687699660031954479099435655001170633108162905430755154093360493459174182733813274540830398289034812199723277981272391018817291111770272801158969438483866903350399258388873991792219793636851962903886046499977123133855252858016648282702261748433845687090031363085441805364533099613186657675703041347317897619749427155651424777933942460891037960716675463751623087236719777896501998065765394409254547710414868065644569675883879460694947192440425988434958296621593163542209975033658365600629431874914449583306717250395917475278731968550548343430274853997855655181441112205707423839775839056138933894314433031880949956232298598725651857793849622023331797681145577391708651935141876344259974868937956382944527961175249512366189287543982463330556571626558104780749876812818714502464665868216337503943194002419472849803201845643144144216793475565060297283890369622104366060465006913111056545555052563958567780329409270394595551515351919806710932246153162088142120670538739815501903804710558652719906373631147826582147503393933322442717231986627276282028458300602449423806703632443744913466765052626654081524063360320398177174049963029256832700161674794701543259847943430779059216654798886661165242883970275727456778761793437066415478768394308559414805958528775981020302876691603956520102279737776047770320616672244935372784406862465422457794131645971231210316443441530133868971402510511503534140950340553743648551652097600494301443184447691925220385808892572725376041311377913753667584559730361251007636198440567137781761400653764294555340335512308272053367484654131917972532338421265517343729810961222120328034426045090339990976582505444925244263048439352104983010770122436513071800431923638503433323410152237033389952191035302100048606059652551683329665439929269434696488814258352880419707132607068232533594010923685281142175218315751431367876163438358316654720520285732363030340517786076190731170799305505359494984274404493387956887755552426428454015664559635447213281716259724432292632178142089520697521805164692165832842161194521195246665334366329549798122448894473132374061216902644361226898680820939895092238373939653947102102723189970179633126925719965073432888812703788022813300010305117945090881491312502382386231845256460847714060087028299780826783931950269253251836019545943902160980047508180997045666763250750530250426274742305268707608421213497313615641814647774900375045517997023286096082813266510398194034737372223366079469409249661819772932497431179914435203314354684945135891883421547931583413226695867544002167487499538782388442282551386817715432832245929648556257082650438915413567771589094307230879173125385367166604427469615085685299428255976734330568235885237288247106981639544758027228438929464225512288869662601575824300870084205307589582332904412592887821074519474926424679971314761493732070333760670050338373357398116974607308496424595287131647950895393236375021668523546130213999885785657870947787714514111357065060943947125385708144684342005649240925476784385939812118999097761504840215819958204357090182972712946443640102471708939746018692510116754868044326252833043905173104098569189140301103043651130293061948018300531091002772600943623751441201049774032505240611457048320747655983484423955109133382779550526169281317428275609905829624423504068905239648239173505605535756784793859314257672193647087752965117354177948854634782145904861873012068061101749238763759507460137602611195039371951272124390556379510726097484379607315959185896807178471564415280038089177194791868417752287822103463829555249202076266766934318647738072329513352397225261119014042196611904702069261061574848964495943361722715557050926674622001910486906267275635381971531154440882586178697536127634482679971152874844917290169722335278237900764543015776124709150143088022741426123286063289790235582174792149423157655899208610899644433287862508886601905651307060962693372646484206483033895094756581009173997642694051560654575258349819094279276176328359483176227618875281032279343517415879571775163043680490298303744725767155039690999049744258122402612840249689938545138108274651602946991632326622164476448453198575941089566235964446174508304854836645370564885484655077249596809215126949039529456656636810936494001816317359633282218736379797685826429791441629345177028288658385662506706197931835002541740929046711048374963071887819999056122266667619213286001517184698757740104806290608425734311642683988422235337827687427207566327100375490632448270579219884000815054676455487107514402268526409514135786872712494788215922901687085238187249459571725136538415454825768741841331037219571898747396631263221623884749483295684748475519648494992486077007014014665589105838045403221377966596196893389861549557366987351604681071175635983506418302893076363142298229370482741040651325740864507337131153932485156203077445825333547102922977724044751663281592609376710252131635387826280650815103647082689069262407568909600103067379795544856004392271987256025589730601083369514247649026416973400920418558307907566806727731134799195706813760550885370941709250431642346970084914704834362064714695310299284314572649353459557456570660022095520494883470390339411850875228727536609741511526527151345329378012733116333710428352140971063499906925923716122357731161986583920694360519520186985883941173003366332050028135643400831160532078594940673749237706774358423940194431022550335089860383946301491808083572195223183458375190805550766883921939298365068597723010220568253069831197573622766819938889059000417406422002968883151132742497989304783446522318495441175399162043665762254469697383185322485007555167165403128687445161473999873869966655944518219395556168776867219176031005890146205546323750448436337181998424916487744654554675759103212880302961612730317571381668465269662905590260386343794552793295613228048289694912758931420947870523556969293743095889225646372720882993952778355454568947463419693647385782685302326637567890317626118165940621240951893274997343717386170502370000313788533168013739265754692877866026172246250039360124740039919199798614716235464439216081260126621144974160846141889929473492724506630318095466793620400336790179617689109267457768167363192550243991501165244687651598750095304249087988964568943532060276786508680592924209375879599636019884059965354835442324867377216304838234236668126143294419866896143507368565042959889577252610334973842633661004136021807224204035352856719633225965833345127420226656588447294870195765223553983042853322391983451456469650043715360526907003676281067681647386236745114509096264130615371288918768437214242380322022721136357645159342231826611393089299189811799124325828417848091518562853729487100799110280309593380748425126005137552736935585234043734993958552085956233993180808517329194397243870716608077555695216179177868460352404876730222126515903477772493727425130370410292549480656277305823157945385249126702780564763074617186993679156685291976835360776450494677002443863995601396441795880950424494995239187385676239079599194811969726377914381409530594510792559911985159465035310641421624030822817422050512825266016370058692382259816078252428861361683962894263522553108087972315660192428164636317319119089453050091015651120474815624206506443214116022967790772620318104288123533607742492728233506715884380298108146838365619844707451902107151600446617678998748266936265259821726918417379669629671389593706605768221618779722532433891305365512441469736031866653924906867903434983604952703373141146226276320025994949661311736175319493124541848055164268944382914988595672565839148307682662842282211494199191594691811508124129872256917056778494294937178284469380952542578401560482605939355093315195605489941700669631876567969927779130747768575523061168839992033959958429777127413833410003450305594024770796682568995163047740447200830183656015177180812180580165297409080540979611216387683617326346056815011876192470344995249705321431209810896600057627782047494961650622414118638038317172951575496662602524911125357731720643233893672273739561885568120715675950858119113774066018377608015902199374948107695852360169879598104450238238063849935850792027448088414726103219461799670824520802734994131314305212165963713684336750854858385060675707801550330762539290651662851888723050445326312005953150725907399671230460991325243496744833816141560917649813714986615784864349266280119542411193158973177670084146277923438432723880429253715039011911788337704295897081932577172944023905975900323781414711320123921776751715947825582092712355925626054219015012067654367094870320404847100756973547385258177989269059214402387003272415665704967424267674734670034689928269830177286960300040936100516094066993973322456468891418942420908973532295179562973255926265256626492875245187474171657265546055968379142611213023553483276229006081892428491427472038830609211725767115244316550206249463830122889117289042627252157691350977784005845867459026217982737172926215120157634314890187217103557196446640221702454113097756310096193679615193557828214005135796419315270409453332499750403716338928974524933113798669036681783352650469660124172488263008921594564162323269994353404557644407346634377756633307714118180418936600700269575396442586653621403793737711837318246565957981219516654462669783897116375967644137290741534046233716320935947858118742653305782712176027187325964210110831433855157443920405872312366208389269845208529844885068795931291785993333811515883077950732348193249557291240314052403629094605877043008221206770348179762451409655414838966172039342231169391172732716787612605751447650818823823123150633955973852656068357807272289802545841890971329905334939459171838808508582649075789350686755473149159091568257921609635520216602853387851948951960078892705374993708605707398385148038930284465959563456884902483889904722887103443939358052288298341430713609002797706962281857298213652755274935858346340271182632473981072216925327106898159694520831765696102345719245231617792995543067306827533082594073006282734617877450995961945382602416117336220539754594570658575613526792827525402328847756700723476831698738601588169577912694909253907218777938561819612593704549180294200000757850748153060643775891811621480476725174698636641212622642399636701774395658047662518114502077477344080863230021857779913330362584997908233009083678619255953494690012210229952569633749267998165428291373716470386631869512615960724462111194020138371759503093922386642612553821763725199146012138750966617359885724539728948222682785210677816424936207125677948128358963524116536565615576090886106297443822762283323573623534805004878437171184514706347372825243967115296290256190310014729696934375423676001654155167649378360205263291619924164938352470323714016848973241498228549905867164366932202695572839435507753992077550491521309649556744631820039818901194571281028051600760583820732067424394242103976111447929211024526816445040912152655438507544851578009064171561583082822024460212364734396141301826943387446128446194338453066122926320420001440316011973112273489408340376536148990839611114839993020144394777769685486263424172217574672108067231033888162104078718030120581753024004806360634640916871498127031584410561690601052457909999826684130668972223462362478708323863105331759306197396405774574711896609727332092771709856218495866166935716530040583158433160594930230663920344103746051418266646240541797291818818775531121729196254459202491365435718300590171853385116453630657669239771430592733464753603637061749804707883667939519985723947013233567825499580945677750199789570273029960990565656133261808227211449481319776876674525188971416943637886273189444197657462853990111432123257249539813688822747521944549773191898204925298671158071167981759356579675877809486259142880479204486913465633868160038182211243351855418213803945168979585305200190333808443330463380027389231876627885358620683854481176721907352454558225047278937012659715363979879846640549181476418573353245121559109525452771135477978495857775897780877674399334939968123256872096765158666257441774212310285459138342768244048880723110954581156578819558515827149586170400720586730637993811776718991203979918073287591151137468740787233863154464229921155858208805206835928297807074382896551905853125389585800571664075876604100132137529648158038426057149662958680874795655912414132065293280582927772829592574179922069192893444869184257821327554550863319943431716260848132117832867375867779051650153247578472242258138362067752274200758557151071115136928548861946603398397768619392091234040696654977824666127938073086208459772733010382393723056535940815382150884711653063649402299769448399809456715093016417224065300170182716091994220721947486636038707849423141887472301145315810597116711180745617307048220149174493788214361248328883226622052405537342801136240448543009854904069194057460521016376467374913916083773028249290363263224675697508751901654069100446128434634849309750204539659639233177449937885414657568928827595436007263637541434638814911635368061697154844162874070097892117812395084814594768358307532137322224177786306286579021294637414329065981597906878583643178226955407795963484320865879756362408231659665201479137859423899407543776850676699433378851084146819587140916042237758135559966144197512820973571309798501916583728423122567575417398511959898934132057105767190705566520872749219751527123195327897191589747143771961175958656462365513183296343210204378656590512321315501795622762422436998005850494107299787935448759288135418058632861132357507295851771166192952226436888025046192385433070499156467337202477709386373788426783990014680738283859746518790612025120707305802465385456707180768323472978939038233048034646964089082878196065208667359439819701114712613852958712651252241927446876242739996432286105762509589280693791170137947571386988779998585897572619615770948988206106394048059620134670162938865212685132697650531212155876268048646836738235175944031730989405747887665042296799900707528171727845392695829222982670999066141519572056664806673627731246554074666080543218964119245672552086483069772115364225152598606411444083092266272909944990776484497559353095398221483292759937358376700064199129514779149586659214920681744933196841604133156688435081361561541486409151807898975560414077167006879999128650647003376182518413068598290158753906200311440933024938629255902201825374284503246233947041846383003133993203002496419531504022367966747399344039787647809180108373609463730905316248205594434991788368370638300726433108021209935792420190760476785485653138392385162520807904382075915652542637799758908738137614607748528581955598245846557078098186855138067721744244305712474995732328461507817139839617868408155580723853910714958970171980512419557528782426353193550392981512316600582465267699130665903204729548539431764366664585086874494483246330734760334749788360410578993335045587477102927835349368361983213357632376297917313542614844111597562331749516434201892200948356075777763243400585799051987821797146120674499428369366363234654506522637255925672603995341681359768512040416350969211840965056729745702697919160059213128700997697535895393188146737666377171196411796294613288207953404387615253455378852606320678124338166680088287007694319214411420210836187642984827218159527619355615980344662099006683291925218585189843112175968665162809139408522538236746227647567185628524060640014657904393742191281564025906530921409400489867609810306526984392528243632464111263942507209079169711236563276502670197173549919686210609039699760824640157249431648898553149566446835749070312218273983751156569045468675091462146510219100783724293113217438299443421162744421113383852852960450826953139734905304231858557806330818595495195472864193547603332731412629917596276276010870334547027502969736103388779991472110306068446074406958948942376933083566880361834876459477593170919195421037570080434015268653787335285813138159261567151411918053794602874620390788686596469434446187125970465853220536343775389802302114019837511764056172760521413599963750824232568574761670459240246314687257502723117998907285867855275318204677460259881313322595946011170958946478362253100516985140132934344009098010169350801076988209601191967147445891176703199208064976399022106264117691978762423947983718529984192168736418942536623807840145709946414426270099008654788615193818128737559284312097971817821237655943219676638658427700100769698886604428251875100043025554723518811868131069335147674723364445134209202186350015660939885851166646774248452154231570805361420580558786606270075110862755327103934869451413993300295727758213021963804965984137131369706330312513090365644872246963263913149933376321144576116200178208950091732872310478546629807744082474531454522671638069126204739506835615187782266769594070228934691276704526865704206839125751733307236906581114163148960449256562801380202717133024632730988883262047821512899008079541763827256277195066314281043512812335604538715778699825687282541982549681481786459587998897118500161311847905540462820099768255780499565649437934612413198234603750335930610074836817872228934131982833484054309705499496808645408712894423512291613434757470054906391529287457127523931323354958065002377554177030759641775130078295897662042151938967124812218182776861478622077592305275984262278885089365271872031101890850807360184800962625986850631109261406227385343912164452680653599186292944817570605614616318136322314207576547609290550660003511944645550014722124816769731375206440282597748945813079770681792223084072544390910254757021126924327313852759185250885514942177932826797011010717151404157941280465390937321201176426498990446060247444413123490915480245440154726920824965444729899195460735773418267034739360211336603367754621031046140382317021608955330311437740558966810961882056363609037928735542783257214115540819704571905395598386078577302523651654721413735432277598371179108937250335943134311327126430616785939760365802763783435851044898434930845491381718963407174867471757693801005596245009125680395554039288680339295562233360851381111505997241788410436359925900625111764047021892209622115700234390840240678934719178105128538644046252282085510706788939561902113120484263277082081245993896193678408301862796903193253121384074975955501002304444440991879508921389508558354510989058385108386378852388635936775478596668320708843292144573763306516773775570335468812356600823093358591918115541456299529505653173437689387931484243987102147982951713564233741620318037896507938425290674123774141399832138975478306887814694245673005208355891535763651997721081205165835946740521661378685010082042459314934564621017274797139686614982748055356000181223860016444868330455319047470668623798673570183170698218486000080643481774909728392206682004941412255848787333708632093790399961359082013518200940188412357218895502744350388275907908224068734298799673920770248313952637967355343621540547966989020688002226136241478026373543873306011346119946542883950966481483294967132532412203114181255941025448932724458810720275585078867826312909844168211603853056792826406094589931996414718670471838988723107591918271097309578453345287495829185537581378729600929407363800226394947664825636764231789698761321317353134815688123359378969976736362482750597294794417839801989337172934843206905883120436931465142378400197883360248159257660969767594977015806508924539909238371866896981391992897808661206211417326498161987989356207467457920022285708177486058974288638849100111626670507785361439679740953662791506579037548122983274196657617519837962416199023687519358395249842128388925597139713269009940194434915226549771184451360907432678133352826496564165529544588390488576666527614245167462678408781505333373267523925378853770471446918865233316332429567590775867715199442318129398507534262712216916110865658439644618223612710857880208153322140966961382081858749673739486105353820266648658446157225478701959175579929342450754488312369611478546228156477012458639576947111825467291222713221953800737453714112003647788211508195047058621175940180589170386357513754588456178951490248499895526803621939250478512522235563989160927558672906980809661497426014959702816903730839898239892218278890255235834797451582845920584917257394115277974933834763572036722838123467119249966577414452889800412801008764231466230349986488969422686227230400714430559116037651119152948530322723965659289953470445933677065148334180257456361616436365868589552261437170740863958222053165968738843870185227822068558086715553243492801302945086851755407314461609083146547599712868505122912549497968265236125921369872183350284114848258630172271669091038367486790837706965645126036921863360302720307822403578187202348562679281119221022949002030455740597688293199287431586714758305392679569087678660298274811661227458070171648146515414902597764614995168741370286665105061827263205486906813391502602449985223653362289220646639743533210119390514444961463450657418045479380298277452505972364140890617518193649441962689716181546891330009350374091032051117853455462598915751271595400577613282606473796197505344195218432825720586229361901211278613508474187643055190697293885087620203384469280220047278177680081440009554100859251699384239851605334044417424776476975892283608922159781676300349768717234049308465077514344035683640236355566939494924003934682648094000336444449132513872210699573943215164973084871319358264330140429047890400903186221050414415725533821136346784881951690691640147513637398854633475145382737687763823326915898539466302902563131300900908978827049621836403249989089132521012876337771878110313282373122691466445155556387136969912116890819981930943374476753839782727885285900137819375045016306412499374241731320889433746067892169223446847866196554609929276990812228609465032236524952569286191837542938311667754320786068796882070831442437732966568463811458492078215583470419180290327794057921511840662275832534803988989402762504316811382789347570627716729827063321970876378067724728056843131573314475005489341674956288391712293060006085821570360388945536868504938353805541012619070993968402304688984127519331953926807378670723512456466641122767587296626793673694783159616985398545377478975167721299838640094136181597647404368396327535274113731873367971162219547313096551134382503517900897429625617146653573972465541047520744118421010355798478938766456330575671144477773341670701681014521397701417368223168631261551646392720740616689971057953680712832340965058897461182201492732902537512288620158427403658115823518182374903731727453662498542573188637555222759517961880695354069207080056048983631492827862591666018225160182144795251130608619470232151441187277751043149504349047611015575033865810269511621131928834929490150510350750940047151360438451212816897708330517679969311710863620073895427188563636004144181353773485428978568221270037872905398610606370390295209493419338417644151036485998628926205448791734422482058078317248863364460328793885218077944122736986654857191828680645419706063820063397453047997282692186819435514562408911106360205466113006798043893940981516613834719621298885304708504501409774964189427423581924001895833611394676129333595840721810140888909415886325823348105194548344479698080967931921662478314369063790305684525160240105820330919524348564695509982533817484349029757095925486285670444820483024371896601327413627454342140624548515195681511849144330796324629282360730605988961828340828206812360123334197209539497025472551811862513213583662273548934546405488007445764717957566755484811750914383502421589957930233517093815421127377861717920741803691214366271292648420156984842367177626146391148251777034471448752245322098728418230568751399813577209059505620815094627151375017319291435213458879237659949666978640863596849890886420893536689070030288389862137049459350341147221810810319711940875532812256592781569913327063886653585212674372597730072063959833679686195358614497123271140692269300853254726107926881239737036581505165972602106208647349273368820818918696813849449154436603563643621624840774947477442828322666805771561048783737217146211592929528999725437724507406374632769133926580607567103623706289450253506847791524566301321912340688505937706636052281599989474969846883341265881994416248394963594300692278487034286677735227689079647767313260827302200869979232831168509415609886612406194254227486334646971472979887115126496532867388193512608657525978628705004701798579702822080871260819835453227055421578023958811584682292867704617288722924027482094205998977949974036537684436051996462439053728072651047719779415808989823866325985367699254026284746197585582435032187835141624275242415113507020622233342767475346984961179304323355174198969890317091843876844726521906337290164264586269123713985673308227857975688560597033311740196977121954339031510621646815672343348109115521798107186530627036473628190936954631857363594405740252618838899638370027280053135298952892312020871781160381280044253223052607483479893491222802092830405480998739892993167406672305696503389064193962972897943420080982661095067080910119561063917437074360306604038868366752882692681422175778226387422102199223346524322926867418729210631610289865370848190325456185935712483171199883025382142420499697969605827496410475960005394731007047888717956255378958923892651339781656569197529557043371044358071718101265502771794924752033291771433751788531645670950117569839297254661876619553501943593851171930240112001134084529931769635625641948562828824045813844222912430487663921148885967473964908397713998011977087364854050676943697229205806698155982828449938218230341484078778640808842868930463231658529145570982308847482600110272839223991462851588611620447959119192244729746015306402185739912859030584763595092713672943434094387548609234029152323437600930895601077980489671037487154055212937066939033765779759518863305482831893197207052590570046929095868571410023789517861509100473401041735097317998175907875293200857653863464112930998870309446949368673713228281542654682716249351437890978587341689142898970620020278048950763359705271342300188269057746923232309567302457242363091211086441136878712106399954205175883744876420214753646885547051656237830495221734447909853506320862661981206659310536084563780244467062066630356724585184559561569911454149497235591371154327113712648618563440534846324282035402460824329923458213602085542379747590209252411231649438378777070619028463811629639714009407430673545292670018298118715314836433585269785876129650651082549668966461274971908157876579490589891702210154660148875190895240100123904842537682696124135839875854995349600823546037423589457749950747821677037841767091761300060575272121388414914278998953547825982923216027332840680820879292165200941103955461686515158207154403616146649104321923792319720174927012747617804260102041006352835943765113368887994197697608957019328136168761764549908320881790808721089483763685151969422508001194354676674428163616248914201804996491465440175168092411532801851426749833847299924952566475945200014656997081162314986111769068207513300874777527928020319767249973028928072761762652124784639802292258091128549647520376456535218018217203800615188390815695484687687725368233971161997966258666032423837523261636131614755024992937314794184890217598338739708522302901302266787850476817620775652634941468417119102352309057571176723371485749427784319706510243599180333632265243077214895326786235831363071482634579379469765063742208940102074927787051257038813577409339200617370862005028055843894412991258788366433518790236065969089495222096831772987188822112295935392310432768506747019786798422010504594054459547096649476782115875424799393653292616927201311946076660212162300094336993250412056868304018369245567360688660115980881961400238342428801881985795312894712266123839016803240064911721487129362598168185428951822298639267108441993380971660581246599600313171758192088146720823108296580045611291392506204724110483928522811406166869301649407283641569894106917691413180457685917117613359864224925152297779780273267171659796359285221051209552723315326334140899936641885645056634739749519761329568760527792167882986729685139766453165426209887123659693994762127305167761191019243039660485963018265396324106587097715002625191855939615124620104773454543738333987994497596981151933800911099363723567352289793364200896915893503120178632414087409520293463365671933739464953245208285354430930135413916500112689128774797611214535489894776418532541275076401864358336413834967625343106363597891678659518578703503045565535765370369670443038468860342754380563275047969390505389366669158559976988280899069208895870997126964744997170638474240015143665238229880869465659345525460932684304225429883929083100993019665295258561173709920286884373373788219350910925528238479665429490579196052758876281264767984354839990142739641027771821324540468071724525503442127937332526771247569515657762314812069409991803188304235856499079491619383071314473982540982333214685539500989935041691124137207129570473778539133341725251294327678098451304852332837918055717573863746724585240231401949507171990764465878733451591232880885823456412418298624489341113815175538746411988376382593150350628372685487542110129572065232456249205303372312797345126790245690334467946968124135356487231970981755746491093685903298203096163036762818146013829984937313470136670852697198251859729607663636139754955996186639749107765710281164224261494981558941211251201627280607273697915021036312973089251695561358914682103315963697159749667208466415311738258726759217445500647767096297655736652802765138419083541919583895673695898852192450286488872407421916628163185941153266859828823840264291613900185398356515840222639218203399578737364525653962187041157512214002190067637131726943614337262625177696427622342794326092936137067940434193333854097548863012483323962253180698594077052975745119143115113246780858940292527707486211752867006216795694059274729516940378114793694831329634886254047710127661645727929245572486623573782558944815890873836409444175138584969743908040104206050365912860406215442315638342304430483507259959674691795087067746074180952881717891702408851793990344322261527797094798881857644119203920554960900986725948705635875036356975267204095467262391411235033306005980783449977438222473354716132286928869729287692934791077443395444640287460100788621617279865433210129939468542491776968262776399938963915402433759998557357392099931280956894014253314168873346811221288470980277889175488133398254526202090881788962821541167894617539732502502370008741059614972860291653045606274348398260299129125710710426256208770915772385116837667939061499819598172902758249544578355225186492269155735419629990514507613895931942589553152128462410444907287799882839621543259573501625379115401589282181612019074251871712925557087511110691456564321577669840316367762393998048404990116658031374613618176231756315801063869724003506808072874604018984572693522633399762155830943579913155524759385007246452565463773387152812821924887690622123226226196415658116453506478696781949360716972273565351534159385883133750879824415031471591186832999759302691693154338232533064834774243050586135190826593055743354705083380250790694485883699909743630155659726551000688765407633847010876720796039364038493016640541667029344805659158373845309467486535873383733519043384731942281314437143449108624427055540960354389650495046372277492071249576570505468861645538539033073037951726174999171434979947580505185337021987975369851552879046685417225599653748553170667086048937749808691089780651034224238650379801458301543855966288906379718819767937853545067939414846960118349966303635885545882848208377235674447893615453302618371124528749768785021558999146832673967756474570149842980296169929341331994083514796862372570277922695233822875134907314488038066701300753536390553988049992438421028209093131910850640097157660243863608631964955458444897330263318428564349613644625539772505378591627050566206310442279608393315044408902065025933305414524193465856423751985572569451573286486568901428892597373347800616858086070427509350029626997705987389214708582865738095288055463006002013397535611300255573586048715166538871898719011768822220573780327390162785273989774555012806474548186760887024863935760783318709769930001930061406843736290626188920125020528153130833290851604662951995668326197126921356008394604455324356181339757791412718886939912358848612287549539576594730073670165522060703129417084755721184715182250165078131917330759593904413080383620820392521075592507097447903181322551864845302998617111492460336876074950399105979106395742005316499081498079634501754646819861798435510986128673155167500724242564540943347522592682961453837692603766640885173024336457228918111437736217145776959038667893999132238466447604083547402387975136201198553031958237190887706164768889256800374242362917431768707800764433667074516781597117061617573678913054091327452037588944184730772801617603441186896369569159078269225103537486598200874723430820065365655045237673518642428044866015109664853074884447379635707779885954562024802563042755268790885442041395012199539835747779957758974551826687283381714178882873404909471521943488503031416215728066674655133579514810037016926238763289914002900862215145574868592187401335863084231455791677852317873984776301434391880311491630315162990257422959961999824634030235181665157270186814582457087075732741535093771911898566204847599386521256199180601801013266111562642868618163902366102499318566460464643685617910322218831388767991710760914695814389411648844260004087209481935453913919956907264538029432537957721173713556808108592194889047126323908183735854059786977149374730726162926742061948852459334229226383548331943976896108236540151897671246788047531266923877136921036189247274489020679966091626379565641325461961911567776412936699133423719703864697433354791432391495755495371374631419844649671184520665924059243174258277127236778305918313501535865777801100823315479252429478162403062936263954517824945223680256927239072318817249125388641833955413546377883115754602592663854521090357441719107813081867529674237844293585227078059047701752521201929042049038819581852891082474014215540888163147100071032313894269034805433843563075675772361351787145423111747021857536019469746952097879823311391464525165877170508469858469491274970171909851231151046929920707108215717026334275394518964606670149396259828953580289349081623103401410296001068349006760221739593143576854120892968758020096929480832603431380332143785368814041325182558966333668667992392966604222464462323659484779586315002671362457571797803578548101806472184945511126628332328421127172247571557511270229854024823007398280637615182797336849726154618587655449730890443497642997582757023260477762299919271470828491421591173087859577254794985667857752610659945784868541093438190387485103574347253048718702378549598914373026212566569944735015831507546185205817780331318584121319269133966420246376126837090900405388912391026000825180997355935168624769825125490638876401383703019735025159091264006075459556105242629051993715905901626307426875014778254455858077866914899268346836901059741628428856593066328854171869656506306847311755214658957551823102700465714613536357748273986460771755312058640690463295787878554616791553311714702890791414784100091034052294887333990526241835730300736723830210029953964191692271644513518723065636993967024717520403223209039311118076499339752246697409701694924929135648545940167251150005308576695374547716112680547779518685795254002321616387399705922729959595924692550797442421128580809018591742618506849314710656677120482593195071931675878200000469146510190937648869856983621492478768648200687851770080389594454221089210062275380016714269702951904026601644998323529216948436612711011307549328502203631146123355605317864314884553064222317213753332539446699302685835683241652537396139692417216113056126873241211400965742541281568600636479176388166906595270386940004702188792833594628669165161381999741043547797889542720873186084645763556443518299495065037127564490797304253444015747198833794202867976921938224867407712536918648537758279244606505874123389280405892236275452783362880124652018933814606260575839456472201268242314296612846953241402321831794090348070597974005067638591773076600996523873084989488420402037413512393978659235989243924573464627230314397442252166727479396933024176767611531459507895210637475369580698825686688246988385995368609235825279372833977135610288821578644448420752756170200013036733311068896493139649450363437201868341485158185749558323637985963156740908242787171114195230975152521068411676677577724060304088005442665509182718187980694935086624409101409867236922651226203743113437410766270379879283642117435724920313954750955329685764271917587146513928456607147830956417924130262501039872495855071921845295562454381149913784887452907806646589149114622434029059413871015321065584261754163426834539575870677336176283382096438427180862949790137408362954172159099453524672595652119972720282806547816637176721986395802405156847625145487519031301469287796663154791030743136108659998941231445088151649605670371409892363080274797468947357933715744686889268719780706849455312601285264899132471629760114150010954679862343763995475491405596212943855065364336216086717744503676678070705499605834994664064755062496860156394397615852228722172801058021636445166488758604829730662190423025530670056667046230335946883191982635069618310413204042911780617373293938679123751382065041655657901865964655781012458030366857728302360481875061571571531051273554989746130448974408058998057811404716844884979332461756837289500500711857614425926952679264156014164409700926430782986960689697217198819495216833798628075298483190705270564402666190095742063423946601846822263136873946987558054529396963217614684045837263173313281366134241386328922196404193042668050970684733844947544770937893135929273704816800180045201572834830042751196198036129066910186613300299107603354317517533999046773907699536051283442298774678564283604820603489069907502769369236923683257572035904322473915725586065695328681656555411552845204842048027628817797779790559299779068982319264823633225144691705005417200101571235627551014614516183719313799493175088425219658347539109813474451640702859515352106825250810987857007521972963139970986760844174840760506320680985236809303209269470023770175862561528261323885654701154070395198909153637849620783832259841168947541516457893417965597144485192485621370664375548401857336995837709849161387636509283587614176167643694116805879907662413211294371971278633484703094893355043445261747473630706144204570175063987709832083183154072199322933291550454198418519440260156695719175641078589285735536864207549223716903767220275379871955954116635126968824097482138242116941620123782312455033599297756080765980775713083224758656636081231048150023658600583414905061707876944775390074326453788113336209250028186233516940818671140515190533807072564861353154167638782303755186347655942582586022812381345068361011587786902798642557075346042809809051658172225473341159909067240836406106401239196972405559007443983641744042114579098657708155853412950364668655327672553428051263129042019681223319063119211563593499915036277028432039472383068174027012777833200352129478523350632916810591212234897420041825160287416136612698935930310097095480181511505474836284515093449021606368079325677678625593573272517458598712858167797148450346572431444085671500485982993728570221670785417951601595729178760545239082218266156566332617134773021545298329289550220352821579306523035098306579199561508002919231136883963436556387402923794680380242691075375076627743576702750481831869646812029331293278908133719508147024301067830474136900402966908107940118235287754153069974961366895653814622034061091687459955945729494010556308255685789412926545086654091572823850353087483175126452568594640820169211259782377360999990760182292579881256903261198575913857655449881185313072322764671459731164155794821284584647539884163254725608043392826985237023194994347960467241703018865207327240120480581976035657827859650228376588821218910684138286197243287749437662621357655568520480138253682896076685754711796190407331971525000209043468966071134507872834562548479490044540103284221663437067912996913003583397551746378013015943702667853069664988395749360065111630397541447877160205563442635164490188294305792155466138092780571662450899851866285162923213622978163934928075533587637874533466591375390329384800569608563202180477939111650066492385567071923439453525711040845728186382064244803253485228280683647957850780911850402799961970355184047574490932548096000861975631885682571473074006967458201396682369799322868590824549595055754711549921040653475194381155859495314657088735186558461440154545149374057914025894896807431766361978004171121845625336295203297416102425008736675681223779814383724884945604023138579324881382538521276449521518254547173527557988931983293215430054324321931786064246570188886903924749774937492057270678490246205910471744898441427877041886869484529537404834651738111232815440857877785561002770277960178142041750676245233154830140171708669101931646126430748514106285866103430316715671176225584777173190265004068674643931699771949054198072532183133480475115368088118179362764176386422604369910478092954861732266506086602722901789284449098284254717650639715851203671894030663504766419536784059793598689633729596419143083083928878337287617069768481464704149037183420979831351583427166436119847619451791049626739289438921173705634284589141037463175613185119237984410257466144635947026255581750525540565013533474642998248626040479413802338829943001170041962634547588871912436671808069290222985277583051721395624937706881460900439375883955975030041967880973793843435241039289455774840500542537837067294573377053134669151983306276470712113658379798661458134314399131412577395793648832164272339631591694608884813351321582029577820828064042185556016907698891419906620757410929232728532543346326153030927686780953070864023805987504553618209832215675952944389028391152723189959702869774676035430813490381177553660101259890890396568281603585866742364800190320596466468141155006533460013644715082734727910057335591290877471757916557786732159490722232712096782824574147116040218294095540330193195072073778083529467282393350709608332054678803938105649891549938599710019538334620292541429370146204519290931088419906880777731338262983982987027702727448341956119556706586825939186738160800585995113322762727143772473982665238546104556684422020531606927055806176482458214943438607946119455570923635415915557587779917418717332782244956937374723593985759929981161854771968905722384398815330744601593923548878912378645895194976360220443359866744725827382422764424559892823392315152672633516482656464519628430965760356855799448773346412980570741371254633619624691335024610403590131139736437566873564908856635179270585778090856283798307835841632944652358028619285791438947028713391224790840379295111015532826346867987388930778919106778426515004112641194470592941408921677396320174279301899305042689259393148543727646404839771474638214302941522784993913560635004473461266246779060458440448036206281048752264286143645463773872533684663940967339043473656343445534199782347145604844999966469138230147320199061108579248183208570980533072919005191231147551485316213740754812855559217859349499616885726915686585820848163551290546539610339883578853448690481583461809423691118762824018529229401592357016016638701373653863208443392648113145348972533096631198829133662852920117249544257333355890751588942741451760042488537007723983226562104485764314488183163641590144774769940092414789357624334239429672851240612056825496953876181838178876307538952587812592981137980773477857451258854799526378779245699937229434716687960802897656430276114158717202049187621260154306056497014582947586676535271062833171539863646183451673250448914199385190004465908517165654013483495882840112108352405421206738503578872126130947902567164067167968204531181703405721402282565509784301379430370148308082311336232314145915587737087312300197389360671998063344269807888412614813132295460608649150612859926153276778014164381699192950702012422293620263779587015611312661111014047390491331441934355295163828352519077995811381677359069604036465847548463975763740773866764312517570310492403678385393091861490191817502570374219070155166821325155542568707071143726406492156764413556396302584425878995990978962963131769149072523274209295518129559577816127715494746906611939498044826601750766814015319383281700026968585256121419264693434591349620830954978113820361797648674620308465686095806604312634540682669185528788035245848345199057915232032428046319756759100730045773668746229603897532754408044861914301916136899547881553058957079245225847071178338740767109291164100993959871116124571073745863613243475504445217028594501125892749299861713566794921130082132465886345693194719467186609051058212901134684694331501252013913696957148504359761275441309708610396725722199862313720042114036938860533131111917922162584618986180299399065188258013008824746726507197605166010660553919914535855572433489525570053582830210422171298465175825449272242691604879563042498792670497538414510050822638770293640754686097872846099912813635949395189774325911458004355062156751042117564197174685278557002532206746768654659955519824705655160123248147723334817329140378291647181661834301527078163599614138059996485400868323473235294870455357878183503876631075272321620621672948272043560008629085978654287228191879468195004051554473556139928303481783432550848551618640438552242321010603905597374362310888029063922030514031848715354916224887686229494373343639820736918546866334140637406738220534186164177175523519050148631052465697357450140605203220177288823038142733486863891432120446075982316213316775967450173005763433461399411103418859311377017289157446239687904662320593002075803894836160430634255104498228679418214376166034166911224876424709140522344210490388976246381655306092501781618776269221960769997161213663196765211822813177278551561573842317465528404885765436843370844236567954785443009909613361183939823119862229995912223727075763128309237981627713765333818796213773615689272783932878571655082426243213827631150895508467963055189264365724636903973653192844026560384377921279175691150221451159096066400213894201568199057562121304383850494010420417306946947861803743618489504006304554820714813618126487018790254192645876834866884478354876137609903237694441963651623829980339619967477969948585685040431978977476751098228745409499512385291125093308177754033269107183886747251972542664170342874546594197638126712061458895830392898883566599295792762935616616090829561523539165983138967142996981830642506303992320564282714124461118002404998447706560014643666151697191752760211698031416354334902050570071095128781444721137529533241347159014729968369076751788149540901901471072791021991817628138888045950526860915179440834159050647703561444306198510235585461162549067220682216342252348385641413430708370977526764135527838989603876810679394686191523926460679288366322226290572218865076817570869492595886975609834718802557063226517799509458441763414092358168525164625053636545982956281362031709252772345155418489350501048260848901100795192355999701342962779345368352790756758393532794126463373781682012201827360882571276975671061746244040680060896188109106213728274660254205311603558500671764859120831042937411613207007299626769325767587356807386368413158898580955938074973020221639690489433134704714877084847239460946831710432120040228189468372587451473797250276482094693704285387510120798326997339335849878062772112925923639466410367608314523426518955789850651762739188678068626982783650527944734121963583779147732698633694487482768811442724915710766622248149481903276720910481992011446680800673363316913901897275125001568763919331736401175586949794270636317741455131991514963006869675324691790369389785997193442411088951014974950103801961603674368022950896885345384551018641297751326601131693019086700556939140596664685652367597285661412198845379920075382529050030971718230459241978055660528207604698760325238229479206759333790878127400357107432546209498503604643547805497127502380156009460833192699450599832827764603905198268478446660874074190155116695309836843600652443187093429273387732047474361258756667549522301942032562902542826261081920831036099701326602841058976412985257507784272502749142818094097437874227556409176666787624068328218045974935294116515942963718385022496401565346642490370269419396827538528617300273020518041093804823170080054597683977207602042796856400032628148932913383157089797080846482837557712183830564417151520790893083919637666420592892045270436664925970382613030657211897718234691188060755215540247475360149837034105455752807258630149046300834436072330393300782330697328525587607283356489275462475490041536306584810189862526814460374298071913356444277575219322552059431589192098358013242544531759543169714416458992275386101365254533448063937147192432236261071518065686962576820374208339669963636855558832162987831989626130251973990787860849935544132326917679807072332971783318106442927325856158566559512777465085553010133290509044190082877521320544396092831681743411646943098609939983551004894283554077438997814595003102706942293938426950944049945962318781089747942978429882350715893166575853584813445904623568610787873852796428693134888829838128757979750932778127855937118670002596357978277251811530567325920752863265212922151880268490183589051191635356638488163177224742925888029112201066135230453734912437893856950274452601306024061955082053187145517420452348229743375733325409272474158947526560867552975110209507695056273562468678568548878567358654660435095303368172720039055654997648446875880152648965357990527894252404285794671252035311400731420625684154079185762256449131775740661815308666408232436745672916395056491904452944803834270879009804407136805326740030248062989123313984334190150931150865393213368507842380363613819946907439375004624211536772217818977421101935949595486512031337352163537197415944641203525548855480085696849982072428388585181551737342297308971169569649305272309959071567748658856610672028013443743877606904634027889077959476348074610329871664357743613845110615057711308661935477562350517098390088305327232859428742421218224981333988337642550934925229670677705427946400192170951168199244085619327612747409784863909763635899635694717778638992727135005340500414380389770782065130540499255940403254542682598916583027758256479716824559803014452122501191829448635798574988922755252153519152017648995100365332772005968979628960858519547368214553118891838345290114182008636738584962175664235279450832281467999603758339829679280777717785738735847498528441219917626726369634166800267201642981211573529619340000570062589662089668817900444208265378945443955900355726960958663729854658384375478123858051296710662433000728151489136978876596944662053351102726258619298658618523049592631286530745909275404287979558482247461914145228379882530761230558846595377860168411596764070067629037127628840164029272332885973333113625547478805409487297745607839076028744636878237869144939715966710106141251837822818439187658179166055272419924638492498558264105759301356767598700852634009003818171730607862577505464104038943795772699624916615554055018054565978678892639593221831432479420704178553143127081169141012585666661187759955927886261065501600282378804743633942981499497829675930573449872595044315684112730124265578311136911327646421633573284406131112876417011795486973919524712990452739826616836931561641889622399962393162624489828786872060303782014000233773970891244768944111975308585813622004010448912693055119792820339415204025643098685791726966511783765448755127756774585711558935315544266334782939121015949886520717013238322181648158282969003263492712802205492185941592170100533414507480612235446752413480453134710326320517218977707132796352879403249255102340567080475876386095265838769391912130163241845253358961506996168307131327077499778193089075443739945545892306712226881746089779054644866687744947779169640638636185480352576559229380117818892049103538814110328731767606727209936829619215762054544867766708785009553605305993139300336553816775589617919845959893924903457320048266632934159869983523835311308466461849211761689471545163707884775314663628144768612615216283602122729876084110929062356398221523172011304036120436846801894884599390152007671957488929591216033287438047052766738792283229719029689593263052947949847998674065407865426926228827216136692816229042390629330468075066513674935529171917696370702711159825589386523270199142808011004635959857480267617346654338191372654230596121289327870483949160340907015672318393783695008943891494500404744264739725523971096588812046036702111162154946264174600464146834278150422647013264037817858377611631223477781134041479356269608272920720976890761369582488311359828788450115012643823904131733473939354628034652975146543208878966391234169233541485602003162623130314719745717543151006995859876325072289671463082359735008059535967241407179176547478078295051330653510573974468623318393910012414717459532341073249559685798478149204771467407593143203122315482633879228728542642153449026155497726033122547306657940996180159949725475690968015310557901300987897216145031002237981620558473721491858905799151010263008190156717956650454706990708956183793645031501532047746744565039831181647986468378629637859201900282614492375479926362201843032488878070357761234977614845619309940185884804754819833412470416813536215148112733227528245352092246855910245209285065613671000169985310640057121737716031424040993127770508804831744455709303940029452612730067607008001352608680653528221379646555373151450398891144768026311348274215683566050795361378156342942667046301295689127102415957023766894114495549715486858272466983756553158497574846521781748920804801347826687386062278784598360103360032278516647421505326283801943609525594132991603233838180931027002906705467731273853081513636584078373727377664511857348929136962978565305104632222961386751096129729718570825510328990640397922102947478322818031838973823739813271835563904409602405494915677242198876434878034526064737724712374234159882399890431375443577739537918804996293335818047549140216965272304494647263053858188306203474377042733592485919243398633278001543267744101894137224315227806713653793356995970416709779233029785681979722459196404189500440509338494385750369849877989430564775363599599911566237506691142584183316092907245323700906633049177345245485605041627320076344882862816766868427873146272725199732276915943187142978430870267824966287288900519733461371718175689693946314830060185291237588303195820277663447648960525866410254323338912502421998178129830040449673907392364951814298072674502556182436376381066141401488431018198006483922037095833702549770398383151961008219796212288297836160322367966878804766657296740946063276320330831643180578814640103870946611182786222458146552161101979082194178994221714208870642826805088665805890514738413291039141927483254862941992164073546588354807572627561674105359335569400795879375019017212915358667685830947479803219955822510433604919950311602063469586238798010519150854856110406239585948648537671735796928701038081317944147978685268814952607101268536563075383838824673272977378451912223828617043776884044923801506155117124368974574552632996729338700885715582570105853083533625294802500704604032124695124227044526616428102069262670597363901248897212937645896684270178253859259516200065184191694194758702173761445649440327909962704636070614575551427619957553794544021037427432423586858031900228758164324480030245059243832344624065100029265204368503399746909785558186745386842567463233564344471215792811982576831500226739751357504774734935137784781752535896775018529034755203891400502160094916114810709773974451683663189905116527670286554924775446702095800819119820910540230221056905571422653459375480104919289721222537314288748459525905493333021266010048484758949738508071617810857589773298092601047666719830868394210432145747464163610147632047588726534375215404333135526667590116808149312943310177404610447180276584559631598007756470108990860227365084543397411509409545587975196597938861530367069080989550983719071073253236379424696386430412611812631833383488404812948619160286997960891243315894305325164178038440526880077964572534107571713957736163255672313252884864091432777823691163565676641389646925005017762407690847629900324520043682207665987348089209703907638579975543851672311233215452625458565065119040474390686153835886545201703644836342508866863145111591875129441974079916680803056473911397506315028096110527701193212980313767992178682474604192210849070432760558118308089062075594987567888408942506746840989111052981742886851789213687080381777102068124045301630004439252779118062280300030471460308575417711921026105491919885578335449120000918557853689780842377646654647244509608923631713599618340160042567443255374872686432779988746229588324659334440702802200388698149938669482690417280941468771909239969780939224329576972014560929076814771885975210550626272131733979934170547234879925587282723083191749394016428150206539380046753226919193851420055173097411642001892771767126258780949092128456911466401184904584757783826747745368185186389954765818149740715407041761425959657181862289541192349033151377662043513870643175911558469104293089466438499483896887537937455116516081071743139343914581549516396822393982859402256448124452184557649054773464577294616326043998027640686667657599968893651359470906090375482735768233995503095515932129520957173404361665163638467376081933015286674748876529790083727488792038350757933588879558380875120433168597066574327010847660975750625633833619278098026106237289318421013116715454825509741571650139785878200731208591511437697973654088755828607381821051164852956936725691048140003516590226566950700343102433034931172820160404136571878970092163769800913156473378635948606631721231519686026686879218584665947143933076862364128561533343580186069136738652229913713080850398480489479875423141268144390910313460227151551461842859743826073226685595894980440789647055607236746627299699312414242161323521894667030854147679241992230445155362937959392307622022176123267442930352024248503966815522557580026040912957377581467688530512678409731830240364481047819776856820357577145245944000135461337505493533754309433441019810883713312746573849552744608481683645049789767527876495048499963953968404641147032224483848696684002944020354873684511912978718970962871704235612357198659552095409435237845302406420482178807589724758230692561929465743341842328899515336783962063633790045858819898784404594385067163472675647035390810329464909309823857686447199380710311260889824905154858084081810831429579647914402907815774650176406926851416484807211165716158695475685090336485545032113237092084266229695557117561397505562707282432089798620624105559784250462386613635694123808681662876720249744519958877055813563068564424076029647280309337757537559281025812385806453239499757268551452286602780159804011947117659960914744017134715257222835044772018566247881391451006937793352873359685046563324323022437971893320204873015224196090064463404515351675495288315231095792658778195216168571090334535913835928424684006578315984871753520275659321381144190377031902639375081440316392491567032512430556283146686957101370595395396474231825546904111041314876460385481188507153772864662583148229089658227855134552690147494810349906853175679281650476383795605862337824522864152197977700747195832827357888426394663892542790338103478154207174891224871851933204365821953855218057669342235861496672193218637134858379007705555207171872870079251330241006016782822036831429841734718354066912932295015462054717679588917938544535912718301993597233859490163890897892596481978022156577773676637169853997119885121136204950034803643826466743713860753575632274519916244656035777569020753789980527969093269594507431615165856816568004994731441700035003662889356662124867582590844027175510762749190111619433729903086029941367729497904500408714387955307519741164290715057323719909068595197533735038690228448309307568434985350250286445820535576173451910876971205975664859582221048430687409786371893739815285414471604547885052856538063877206937636332221160157774780143341833409621693767016208420808157697586386408156388794304032957812563481839029392228037431163520198060697857754680132848011662033917489976675405700604999065673212557000085450094270946630090006221578648105068577755830352390568026205015151623679226731476590799182926182539897115238168733023375943529036048336375894599001915791219314522147096936581570401245408269433611626189640082085255096583543595534578858196310728284598560039512924199645915742147027342630191308497130730346276577936717256928165424038626313175787548692201325178191802002415787462529884208305002660136325059997844850902905114096689571995938958046351274033338921807574643003475775274033494282753254841333981744624264136042954344911059965543465055301196716257342570202214840862064825493355810051012686743895126907811654918256277298168161258257650827962145738829507846022082369166101245505740038408425989312495729837316654657461015787922900245002847433403937605334389595384049758621572148799209129759501079594614060942550727602382912290117023995227977154668316074193050703764940119983887657572080150144873880414836268312830858051312661831797048464956270232834497924336170644576181067596245814725760776898952430291706713429712247069204400536722748950236465461934673280468020274821060456147901714258648903317926599379910152144666616961047559756044225034669144554126158546854931517832021020847873764163569437898463063645423674308785135790593191263222145316222527128881298500024393297544927718894878352541918979020396169478898734828277077433178589271973028085537996938271930601477190225432561669427962971077406940058886940702370432595125284669988044326635825258749925843029912228839507395871156068719696233287160837362153519336704132583521966189854261049139705735214025115457305778672395128245171268925133381916418549648413083492099793627208209876280885682862771636618361368655020013911301061175137188165519706981334438958546277474451643671086277120077613635677966843033291760744370672975098133334920336910048236124087890366454036382712157379376451818568434286872519621611515581196944540754595751196199192691379050716927588438460937628696340993060275942873931272384622221907309391678063422258492025666113511110192902247197527872620171399682151224464409656240638556529173703870051386691816263631751129790873558862402473119240005884537074324902068463921300292522390825506612567045865973828410557147792184753433101460164913007882463134909040555223320269107513105018732632253527355386330988200211851502990822906968319628703190819410624197234468726143168223981119439210220073707679630633721880446063647536859521767418062510482774361810092973161969515775381537753444810321385588946388458937414650643122982781090577399690501435624726000559108056241289518290608880155832935366629626256892982329944012021034952238780768889093537883600313691881406844401830235467764019356865648527944741288197090346232158978293368803956217656788653170237476856865155997050071628733359806634146223861217256165939965995270218228749144890812768894605537843163291467548346703415368532542723392720239444994508888491653469559461545935022122830314490146676240115537071069917852702224194537354566124981015587247470301410310911368733744146576413695164947613723781565357109402526847883983328943629027399034832032713352743996428327107577643363013095964885815600428526434199311557528495273447388897490650801972412016403950328351569526102573000266252120134958925754017978550206509937855299363686265133056116521826902175831718093938238370398291120308496064608934831224861152167003288181799485583984760714239080092972354035028838620760001888787619051779154154169362869373045128621304252762444802023535450807348128749069056083509186928376030858731943803816203200765909434001630260577209031365210511288946160537452858790542533955646558747812934071050349108083745108957176466149141923024755327749114725611946070805039308832534053391285541368697018861545889364293311221781127726601668765748383813987703072649353614008787758556203178313975196803708588351258133658741261936891142809759341730880216298975971951431336138813534262884460053858942067789893442776905480727500741220280412223528751004753943036570464244452784345591016704726681535415892790538223018766518780534001636378301435435886832056702248901990119559079215766694349623588539918355533676649772857235401148101726924375721348092108251046812840343604381730726871471883132828500098611201237791013426877470990016084896320963641076473461477673438600993696002786566565526505390208395890081964071029644521835203352451625186220296452332363083151288614205080468622054723498022162472512621112693865960009974281935304129851445620350630789624978323700360999070826933736449565119977068470208512937935229381936104263267269038709330132490105163665708664040178080192414872598376268334948370583946164319334938043341315521805969737081194108860435500032857436099329373262867440616471038963455163579411919927672589881993362275036199755136275459284316300589347033170217110337066843969358537901623231209523538217464669716036848947725558612768989204127786155003589049364047783183005368843334770041058430825718002745024776937864554594924010693453164501970364988141364503096993125945282132091412521832735574897193609064908368516912682222014696830812399583037481023794329662841212494515853518505510685076260188806594452032744082302008842718103939911765615224949313093938196409772228326349321013074124906795150695705949008527497605362757472408588492018745719545592864387712707009083293423539956464790771007989086649410384123197940205670102420487199369235011769891606694079965535369612918503353436205163544500089384455837756113458415694343737226041370256462598997963372290324526887612643911233305814703763425923375927280875095159890996528112037650939918157066118392896657041476930329242634439877349630156586401734282436724818351079312540236590144001218614574132955984511616698757386339121884953002945560210131738608896346661179869538571580384476719328819258626254428201225173603457122251039238729757533502618577265008393554905070069473383488118354165679815161373208417176884200435077669172658617916939789948284934402520208971904790422076400062500393068182149936462476717889185770980965069196879045840674682037538634656507742059861883416311152110080654592281577647650412584382706132490875186756831245147057891421912934375181198189567858770190451562602951249291716459115876996094514013265493936454826270940748968510737527139326331610473941830691551812528290085343266002017458853884853411660200661403911725023974709846809184740832637396878368179448013311303670251056633167933929691695857634638671075060811182414875833745169310675362185851588963348677455768590046986971106120662225802820024580563939181645238113372015589364411850822818720504630883246874452490800691847903954326586912975379675611859647971080222868396234258692508728021479545517751317785326477455552446728884286972817460990713031895542943630127969696314580708079525895076683339471042461926206400936032607791759586033355666758792988765257848895882456673463505232371857099343058058317959701182218113224380757908659702992955610528309444760713844577964923270593293395069794657025181533124829259035695648291904270834531626559981032970679892806008475995839509894398575828788830515930572406968784758053910245319753794151119762257000600672242403896529883606556258945518758605630199025102139469373307308319395701174323827038649773537079807384656308625498290972074709435058727352551315042426172502827333690973309893784958055761366780926570595994413171025827005450995218375790677456677059527847748251478952823369852898055418025614751371741017951934614257494690587709218042041840614620071164803221847025966158803637429317142765985787534531006279424637835155459592432740591478117936476763346563954248079459741579503806720281095349096548505279338991572004902847139945150069458022107002192923521446870637319882888130671080836135240564987436996455158765093147420358812899827496830470276362787114400228097359723910078499545917946885420033801370512360417474343241386284696534020233769958473966368951567288204358543033305153044989081212073273607362127031531592983067657471823291049784714418724936907430947610519542515516004206128982759732376452025427954477414658622781762964779073812168102676997166456673262585237075167331127372420177503973060694126179256847770412191397254144085812458800546963212799118589071268425453307363319006101451488367487359595815538987844373851454766819173086131538812846942467378935261473755795099495724259354097421082522290701035247621754924066250143963792715063577494378910956318542279708139360873986093242689322238058410446554246857681862160381083414570950250339091771259727521531598763881887410078018582908303427624824015882880015746708962197466881747149037149207456903617555672064924853058116024060419596880508686756164982133318800461409787295982142939240237774300816027714982548791419824285462379650608997775750518121205871205778776915961331442672244290023462012551925385046762431951317715524539646952160222303412119889704878221420071026045060372130053035505341594387295360524897744346674185243367214736199167502871780187174782575871585880886499345315792388703981397190940750279597680529366478535973092386016368226451547660185631068310846219792757660969394125022321480974580653753544036889077200348090418718408607035776259562188840139751197969943719838197437234294380412161515622138855946300492006718068236616128555203004356221066820602467448765891121460350897737560586740769505428061633065910514482549172409764471955087384867402686082969143835178568342340458680461949699786913147546477093304338307225764202026946568797766065645222686391921691509347386153700491538630065274859465277351831216745557502105637284049262025536927667308693147649644901269824797529223955051578042576257080617214160295823362749269020306057338525506759006807710431818406557864434925040583963352749834407886033640984461993461397507710012105204467810531920070432403024289930588627905945559642729970161669865493364077575290619136280466918229685793951120748817240015619307943935786095164023158244908037366725054753935637449061219043320592391202891144789817610162980936174308113222405938011587539424026914139387964904817129350725948243877446516019959082054299871593429715769165110526913580458584963851017498288499003192571743286987982627789157523954914254065354511008632855805247360621503408094041503625357478651142659541773559660737056404286038232758030090329794443149137119678498640885970803613928261646039793957775237353466938575771470952501231189858857904183814936096398766550019874563338076825009342808209040690569075219440731627248563329094802852468112890611202445724857066339221116886830297220434153161960408751506757918115029326153773199803031394657467922748002419309632168753261098107971642191222570976967905948187081722733946623977499547970092012783199892888522178825876635596320263697502365355528133524376243477811502965115345965430840817225389357109334742253587424620611641447987210337850370777369125721114882371204537354775397068945269068964370893533929670378401296025149404985538805546313898804131515875708513097384619092946260028266988137244590341706646479599373045148011690713491457527796156040479249389678129513370453792455722277207165711187449865445523499428154223270523967952000860615207119621803083203151637299763174666309526990454223700658792748145586546027694619792316275885284889460724997947088794323084699931579369580932618833412593514809594165901471424773820064385572743556821529684104076164324048243534611139037407364222624818612132106495573374868819016146208516752916339413902852382050597661676295614574602039188769834265619743031845239579625737542495786696210876129046421993582993059875669062577592526044203558428440380427955901415055879218524964669417942256262074710402444224178787961481491809756898422168839283471279222320748478585033207218999567453653955181298090283298278728052835497569244099927814769567100352027444186166863873125874950160396270962071876730358764409439659696401479757902031174210250362427359392091956769317794421444818816001766474466924938977948765895689946070005782179081193691274798889899272258672608222822834187626445213279200513143315064608790551521886474269683329751228542107985816060067055510618517019141827492497014576398402975357835752474734260673815508412047677065912000762669222634518983352611986084700951011662908564518416589746973857947188123725348772800756165874498404257442706539029590944069023329318021442800899778289430280039996497634681471938527336459136023314266766462415943129298306181384220311406842058349100379372389791433141480904844931304480290533332485614574970791386418147359920524956580844745921224788082605467201467696926593502657707013934314502476144957750027712568915541259849829693778563773726795710681501504944392633354449235054162734846477519442387827892889118574449733102094319656408743428411311191339404014209575912847196947901274412892389477394863774058944517090972412926613809561734464248965132077979765935120022280219138230916496233902131517293678981064215076607377178850498633702381435232658308748304006464344125127195577900232804365772575026416882993370337813851900412747527617798464288798193283120716308159475274639114775824858018309768217944999819098363358182769844397071336334812342600016087784779171518633940803358629359920529832731238355362334886668169641122639953809894614562432355334304735062992381274123273813178642336933563293283774407110945571931796351992690319386379299701571770584984962770777086827347291782406815756367272974428719526245894292982542684784767572599451474639614301251061774193756101563636116648145995873676644407498436274232419420228246770746928058429170046613808495837463828000318021037039151030243172550473209388518457964148298749838890467906614698346712594427359220434960333683605685398888487593085381641776157426626865297936541124897888065807672270039920815373884552243136724194401260060679056890801390967878935698462475445958288961583788477975207555963961293781083166289840976171604119091410888877604703719529957220496445560771223631943586350302287430897097316468616927025152701300876921260454508123671390327185795988592575232009202281846915769923165552699913256126975806370671678093569330884258601138090073921874621342209377951602882709277742141504728828389851974560640136535985484424625671344896189201199659285845515425908163769891592948336747953106562578571350242868003279237855756460492313125362818258968290891494080802941158790433690264246570613867720780356761551656889444638094540830367431353499930568365588499976376545710664893840996758610901168210443064848284504387470180530848469978921391500770190889433081607578352651358075217018680874257901376164424531732906627116051184981824505155586802435882529009314498101549087549191902820051486061622509412620225677382325089639691956490354216009292622157800318676850983558493940847873279777492019030263455889614591306023846226634064328245910606788282960355134417835534201015893787453925402410073994901884699914117669561789852902795818203936962756953940760414496728281459348208539629884780097765281663155404729652793504868789244920593636466912739485436177629098926695475662862040877296552366236648218896705637654439292941925403395393146321667510932216795582034509520226562794695314510399105633643340692268527881996168561105258416287034578898089005147349965372972863848716078697046535740071443835601562555562106348197449272848791279393496859420704839745514282728219004119921537425582855933553531751461576753989906451814654815062530854327046382803505745262196147198406886675292962154396303374487026623536005047343463864678638631823824373460622615207675264661496647314151699972061876369419731688018935759856738325645855639853370741285302079500180681565166594019741127467421889413638937171244557317133237232515933513926806223915653872793967850650853091514763838412248232624846971784530693594036732577898291652879713285430040303956831127093906686753532478763796488659422048176838692734287715391461022632544832561777547994053869973822609456216708306777836280562283299645707773247353531624216070051370955046924749734055583467081966972722948624289197168623364563153582377419228573682751034466202551007893286149209346349611512433755059212736555178585696444272588156153034726262775658820328399049383072247533940575851973192859511665630067249169858522936664440907023725161719073331931908777083805478541162162423554876777130575044114437524892021794965177861482498213962604603680700734337270896976197012026695722147881522968224791821160320843281743207966518287639499848497217081685390383961734004276987848904786765513475651391773838129921218790949620378822407997566472651483445397039724411769017388018798448559643337886459611663235183233781832598386488089854920677319045231354701334954374348097019770048505345857633684099142965519506555122413494206537056371338260065090229264104225113532014893084409411897537955324890168596259739799489912113767047813826097196533710786198331363325057744853804064303811716667215460880058930845396818977821046355758414661288049147537695753321971973514995309269720781614075378812404925153933082054062795193475918362453994349458357835907946950028117066223073900449998497442888947262213678344776443123214016066322905421573238839146168011043658956455640650039361641605816703906629636429230955984561939428123318658003522726335873806067798680318621615962480378354886737166425116277176220430845863549820458088268968168580219059080496760042083124243728332734238872902775319251569763256148029293631564570289945025580733663118965035485031015661181769724874325760122399360001587867664691692338706385498666966298082476154654838263466473253009015111080271058852999504940262946256117623632126351532309313929814369085008304511604369954934501260512859655875685516092361077103384901291806950047123255174547998086145594542882505177984144890117444515437932826000094342775053418529063051661438185258048505553122166107587518813430626813357383856304294774946432786430171765909348696881257491390007125876483733116292601658964303011751014401307337063059566727616815634155289546214168650674401047213043016952782934832598718431936333950600883165282254482280573240412455910475753179757528803590160520324547017711142066721278788168943458153754602075692253427531752316200356113519675539659719514360481013742038922170254750151700692979293014354112294495970165948920690211538944657480611022427216327126363394278520050044834075136200316166888836787634576326376178241787983571717740034351188891317903510959928091942617703241959817970127586976608331819613997189522938485586704990515875270526917615245501813809128729071819788089084499329496967368923530877305899407159221031885783722187733936329111993410945508830403824156254090212872063055398541766952998759807443534084311782267762036324710480610302924524918847853144213073891741483530458617619994694405467137474872384138414186172679760097651448514918064780508488713365694747529101210591246272421608019948068143348013778179102055592861867889119724514318833447613906995525905594819857293178310912984538204850570168813834785757690907342069412039341407300945337347828701602564043372872685133302497445402963891590278179083144131487005530366443545963541396021089079821834410111845675077927444364185497451697017379203604151252650106396905848068048676725508217139229484438357265197167215510547724595275530947869932322487974783694906084195982264495670560190999441226043491097504247124828047083910340982011900055169479673761089041673235157921330511581315944097723541317669497234572576372392587522307705737755370730975854806660962913694924202486774837743823141607215507001079940578885927380478671690743293047165149833684393869954736654022361122345202726073377549789711472770991363862070969683188823718400187076669452411231111024274413534830904886406952646646120242609420724449102226667822384643983786173821871354242088543068066403702250999128412662486202703900812660559820873891271167323744162188107092934614021751604487217977491098958064668530077857211361456911094311550955568248181883542776741354549409930984953562088289115484877667050474678226298813261087116526223276067539129745788757764803563850259493532288466595896148606828781077425896671331674394107199629778814858323843572893705668406202364209212077164973563835599316205486038857657738350826633819741500156968774653884831213392438412893737691034240990636573873457753325972761510033607663933074085546135405366518533222979625266009993600979861617471154205955940738667446279113206713993930642926636293394778997301555874725000197978253970341928370861218263994765504662098664219250789483637125873666077603906795032870786897424477381158658874232938940658788577653511235176242623884922393971633828604331818531988136257410703265700483668750180050129662718148189182185917259084774157779833970032439980789030744344272096928433334917033212236812880555754714786970579994583302081047776799848579091315080219582626158141866277073512745033301732509086158736419751652819214998284067229234403317392368823094489810525879461522254330954889754788738520735145422615056608205636601021571590293328074600836809065774970677620886791249793633477937157981900670483992421268347061566591214579313485359096339916982577320432162530438373249862306744737014191578723512584958779441405298246686288623650493212580697479148279219124338775531487332302288274497352742440757990098877323076620318419715244181561663137437677402587651105139418931897333300894673061634626685277291321435044406294029597144101254421718585624376482729727794610707210039290758747095289198803270922268858896801399160737670094335272845851340326052722960669457920486272337666554787231408924286853166440114543590142438694227461541240456454725795057614027505672245310772100969529722770680316775427109793020010066025062959909202751848011003143418154758106428659320456580133569891888697020257703112149484043578832794765521621722301514875761186237257872823973501394925377771700810356834476528671660690384778923607553366905346483894315849940563975258435747432421968456007567443661533072503530105584556831116539263306273585807296813048067445401160484470756057764701652622247685178926897636128677316102113053744871610955135761079116384745300732895967766359561694650006660894931183258618180077114255667959517902449237335362278589815888863097436087670838844404627242266514769302332402385250728098617247590609635160197811528688249323671302279115622554048256814921210565829301134616141046267339009045845257743776388504238997676314618637288793847635754647296687835129352975071462744296457386183099177357070726637882795790870358667353141383473063180603984092633125657104912753816993882115729823157649936717170383031520501220627692530461430889951667886923407640542710061347204594242523447479424507319903239935871761801820868721486088918196112135605750922821014684669809126148529946535370217966978062885289068085929000431376352969223372312453652151931839784448753258401633312574547234723397595047014307270145457425422083340801170911064970221815981148068395931470305674633471831849098860464238300816380130595589493345250022183136098009623548044735131500123224245979411027026266619292922742111943850118158984683044063358492346634552603272442759287702431186312190796486187008679845562900771958028255840392583583241788867588468802828860765448361582883435716694577719214395350761378917633121621496219039001152858150915261741651497194704385261335913055750593690972957864676786853694932862131646330888514710423117167826210866130274112179410045302213118256081933578398894565869475401401909689803024648000749790372323790142385283399546819060912180519744391045937371287376886005558948542749270430702312939712815663599333046926078253161867522642588560678983719217859462530350213173887336626015174519313651172214529363250581825220111166795517377503897172349829749600608108671902321630712802795779487170228583885518792122417912132137130505762653440358658291392157589516267705675716942664610987537586201491608473628077625939641180608696191408355163322549840705690964586552857221086817141025941745091051553803718454116817111869551904361409370295697504790766424394992131603448840054826230467132826693218736583235890288811087967304097759093461439882795919610710312146696594403951195361669093333501722777981561844832500008948644879649868103022260642831493046521389279914751459277504281905512090387579074411156732976287763918975039476163487477450978072347975956614165796889203266147655217261442043821236549392982146656867156131452932344791732345685158398462063648136173589971679263984080087158281569168700417494902191317591057089356464647635786438039696333895761595103688683071837631355813161657779736546676498736717101334399592505131606474554386972707832309393394784050351058036460581400311020618712465356551870590326012171271237111883501585263427418209186272950700280666205163294373791976832089049761980161776980456989127001948323650027862456892542122391479803346787768059003590777589883456078866816703569024000997102988895283975324724638173346976481115402992565533615689034126169593169052690669837033430870855801644627708138537719236473562840018358871054628845570252479922039265857656017697703386484384446998466640906041282822996576052944905497135446394030185384580964729477581374627098001225468462844017455591585344180182180036173561722071553064850208047182924845246262607713594772876469138505955747297944002190609557555281592836819515937606104815732824446521739431209755616428591578371704389775449130660401198409974759625835399391325002156034121665058592444683647451420492555402300333517124064429953492380142448469455698893908321496980906030915538514569771152277380594912152373502596219162998131933329999504461244419343465754022603808217710097716407989500816227846526489673564925789472938998298638679768733158184474905445760433890878162705991600150943783625491941508154379779245333711938240501745641944262499073878529462819880487082649665695636022569063827904213164498600734980113997063505095993306537733426835575472110016708045627650491977893696280815198480385263624274005277129386025322494149734186722286613575952008236409285325326129261215999235342832590212273808402932243931589723023333539748214854893551800710260467637943445731050150284646795081018039151968338815422645919763706382935383104512879704936217797044432818818681054324769636892381082775522197505866179633027235092296787987866203683462482354209929726417676403566925408150495554667611682605003732153110640301960433201746824199116958481343053176570365226655974830445372686152490724028103288559140809154495673337992565997909435527552203671850466240522930360544605875283763726575155675378182731261163292448153834687107738450292837078160367975601580837443795501207167127392428129302201268112965045439593737661961053186365092677869015904383398163693367560658580001188343671474346696737421843285398846494941755993954378987541427015095594349448493598392592534478689301294562591088276475159212620961309486306638114272299980842871490866194997457388334065380240313967658680969214992166887087785148676089173945693681340954929157560031961997557203553093133491989533775200431731536427269464445180834570669890908895716492052046831938957821230860497845118658437419590186485325746994325519246991204579726669519280195973691691707833701551578421337589427577996413888313240029161612407954304101836427236848983831238016115016648568140909049095252993108061590798860263512508641179055717506438069814857385275002472839546268954928009896987475430706704083640189337541267546295133444044857509861172717238923927213290323912541841946961700952912460797034928014672735446373897060430239017680466895206284629254895673125062266096015953904126730588647428853525865383308599756191853837300799797425756109112246086798463214263541705203629265790304230079535950109730416120098007037169170249739166329134649602814890372391947713528925401631563468757663338336611455420254901995037488252423353654159290237167302887263948136329424785448388538665893388038716832454210092380154251216821385504293515745045628611301464419764731459142567921517271480128230307169525098351455105634333377127646978307482878640405085635835135712123956577684535917800329502611692706392541807607620909643228327994061637630798555747748886814721693417207718191156926507885993395191067718289308312007123938917437900654182565379464031291301336783688232709080314616389302833474267293031637448659637402015339689284906419981796429514269689272546818889341998318674613439428995383453552465400733377632226880534640495335963787772599245797256311548398422177344385604244415807414803380117566309279159740098008324219433874207657375313920577772730966402549238952115085965689470062304717759804024291119550484093492178268417247001597406782915491015222709314895079577042572481739001546041318856464397961622516626977042058924191441472838302613017003115786303281472945998966547768234138276527078261235195422521766954645408687134783777121778174960148255731951876072783958980302307798336818750766174720297114450717476739728560867325759649974347785847870220651052019338920298867026254855648350691741395932231158462826084798281025652805519622213198516420675973324664130929097549040860595761768322638912162751113169475448264361050302016334006564027198996468650861077761206781575195704825307907538427766132186140441346281966543390609219803031277402610018480582841231767466907051860266318695007089019057948894435636242953091389453045307959516508879285557994159881827333823768487257594826608740202366885762550378090738589295914582152453190684641667748408537520078045422927386683465747867063912339460346659996821598289675536252475390029052601385488823056512676864370900984764080933206066073885408599615318075260530196143801400336436862150184204286788100739424788007380675921893111613839708380938513638254595715224875254498433946171199116966351457853603462411125562118281547960112116736533535383537992745527535598980577840712161833807004636865791014718476666894914105632117781003319841169985993314111132977437121345912435631130270413629790754751694842425200525054925780468366338143580396165645259481931123552609157320847501369574333359744121844260161772277720076262174004161204719032633058865149509355838476233378460321974618408149186809018377030861380810777393547925420111531784540666757692626335500943423299025172791007377659580014142443796599624505606136553457880270963700080525914358603551626868838526789669454779965244225055609636864073687794523260816408483420677013348044621036464929146653583090236416183675948687625178346774705152798193161991317730219091843137586010840291675905351126514945400584908259833808388326757068676397546826271328114414118761807169107973602248374852351460136113249946061591311182902651292090364299890349939770971432709818506706682486522581469385891175263868980723823899637804227143849822146409039439597341304433888093548164614445055115984898739825997550094815809042674375449817040966550873115474447429318120777749379785388547075050498450250321826128821807213286802405248286113662668654230994069277442370868741721501613710636579417863567296919948149244243849241452633457910125592493049769705062717631731016933143313843419847453987616478467211470035914610712282220668287937755634493820348163383735394583993557321815679621213042334561922038787631131199186413662386603264138286781414143617595381433919131417864213306820956422545291526084830289206188100594865823604550167969267866746554335009735413191124159455955683167048156949012330314270425925072877352735284446721526130522119406140443023822012616531673513407739620751686078877287100765416662090789792990854960791777313033133823542145640417963754207718592347409114928638898341128360843439176653855504338057708239918506093469773022259139385450286381703926065645063758162462483600444665505829936065744787668779986700817884030804123558987116091700939191460237215690136192233004160141495555191102660101943258870106964468269062799469913232622521770438528070840653523776223395493524350194550978142589783814630153706988691864053832805150822046870632589159260343481174818485222459036823768458829069131757776602891850056718468036281350362081974950639646069898507434560686028497066493924593685487680540255464202265755830348559292825720809904915065891489343248719182811446051982466697831129394303420127948598926915365087460322708180226248520342129395978993330796500864566161756943128574093218428712870026073504128546698027593300581185310508824657876962861528023643486314667673693447689516241373353711835849017165500800534721855108787236712360663449994087809210264624062653391883405892827572443600182622431822368966149632703963965091628995779770296054962647555146443417154256636362329321699334030303538754534117825000474016710485215813647222849419724187985381863286962829770555642270777824254623245359838867795548057337708973411191541464162553125821443960376404772384520687559580409652461331037261297009237410842262043571625803520760222518227912254498249857050574876420797232549237576827313888763002749749184034645127847112208216371109339751657545389298305763192746994657862249582959206381194614341436293679013044448884956496506358675635844905213885869774020585461347426002858917146437353197632024200915200512038112052243944216729164329821485643363535784521775552933313743934032349525103859061098937843223804658542979526378667685086077464718226661509023949144934724706058570553350744155265073486147513659707346962722299580607246819358647319891619506017188689267280476752728653953605326541436942454408022386139771820750748876194454181414704720983156714045774663391648908847083011467379634454813213077920034203776416309643354030455752828636057736472765739065474525904254770086844301206772704255302369299071257519631347733621316173897324558248539690706551892227813315493491644832474572869585154182743262951150162451678516560602837721679315248118795234662259263710743951795571387365750245716293021299759547118531836579894216830200605522925456242902300628464393749041553127423491977577620650393085921393094067429858721001713139667819043153942268303633792770937802279170899852977011009939020305757039261590157068438102268864962072529019000743032559716493554733010430687611250478780925196866888852237861702691650029774882915307436247504895623446872500061812827699889804918099043045867169642117120862002967344771297579928130900254763328616397028684132868786012277558991105531475689144234828628722327583514571942951284579510292812590166466124052168335711064903735121273524040974756752824648225555642215752339992061158942109578122906973159136209104129031580635007153776568477300284467462694214512401274863925971999573960837062243841674776891171652592020994974752760156886312960154315267099646364797214009887774163460734342141321605504168364771450945362880844270210434076696170991631090140770221397578881765209907963266005234340371905108069831386059817100634116905121681163574890190128607054284070154433409296236538547456064396434760193228724566434843133417452259896968671300194880012523282710994308046387906156359118078582670038404067442070229949292723477502233641539216127748742797206789971359301775932372922216027220210952776490351584409236491083505878984789177196962626439385852349542562364559436148324847712738596274375125273410386471789787228799685726052620609664329184440624645422898953531013229841925041675281803153163895376435702985961105381647411157049315440086188971293949364253651947737909298164008849483644158895021106433778255229666589271248838157989696545283491101894917057577666120384415168563511495092636364812470406460408103939369724673450490143608027331279115718606957314568038656860971352373339335909785344596131801207096134886033346642976640254697314922045569357795018108605847463802269028996693332543808279999231119077037128163706222342563201744893143203090403748882053896579358548802368113760289747775864446267138034615169136305228490560592967955742580398668846705119912949472127140284103510919355614297478150590977422513540459574629592614463353306331479292890197549783313835585092717895789663470397713314260832153554509408493377820981359607121581314373703581562916057912846589645382944381546815625619578257873634346806828346903759308942869314008528608738978766141859880102291067225070079167769113677266908630273790956522078292543842696272355584868102742333666132154532639097001216381195888751857213899011993923641412364985491808684976692500763156084753634210447685227774794786944688679241577560695784331999244995767933833483357093082187083044060768047556727931277581269651400576770288048218113254208313334297512528385772960674128958996297110486022167050555188674843604572515224719326627492427046650480340102432989133391346428749872830731507721589871638740222244697761820051981532403554226682453815531198654216399858453238446229589300745441747434237892544108449891355904910850364278472496704934401386033078803641335235891093843994332588671937438801205487063707476694896734620880081045181612549593446004690418196015826401662447491128501943473279736849251458360002865405045269323108640054401080435760172572927404318521315299735817892509591597000487180109895636507974549418684130727322828086940392527455624969449398045350768246661539748172029408718927181951272840451851063005438869829376191739038603311780221883436645769990064991086899039559580551749658867669317864966753511547450354805896251533320086559498567327010877017346471660955252597666452521095198080600376609917545470104710833750847547521533199832373911303012437741669403837851271932893077474261742178686592396333226334296541629776093583038469598904772432804981760486739691700128921571037493298212573713928399672753253522246513469080430539061735518830709836825928937422699071502770902002355002529629613037552092507450979363277813726091167173565790130196840788244993324382210671237372766745496993841295945088560810560341144648251433212546839259191503284269850083716288677982376538207608169512833040580029875991563106004359900303412263882861337233445074898411741514261339488851729909875040297478790649825251491021504740222400251846769002438631124391203428680627189228911796395721699097482793752670517615341081777138081249437839975057425579378446551868613512640943101204449268354141109534780921899413701619446116436517229798140857321501846619177738652612754084785975335756199554192163920238845680560135461036674219064472410103730220278673317530273350750384376703886927230645918776038819877762582367219517799198516472871902386740858120725584680124740318229190293771500625139060174423107580845106467675928170380883742757845576130290104647102358693595234989092698993548990637376488957611133524755041110418376458573824319516662792795581373160304450204812479696285110240993293675846995422707787392348569445129812064197025041950279625443740760487133507610299728371737519484688734534741260505410642737870335185446263120796532647075212122137875566194915947743781955129320152355336980506814945186219800963786461903471127928029623793641935350766225291263964719267310089024784109788597578576352119824899144044636390321588306684690408464485348504219502673440920312601456634938066297335686106305219979880136437747886658619759661897387866270759042599584230164831608996689361265088661686124551848765115652991818487025237526258497483659915709694980153053142395011275895293504934142310583590092704953899770812202092915410707559435808068596043260137777516059764002011445727848904365513674473644336764661795931623625939389220691466276847612350349530916587810164575925281104079055857875447927535383992181577033910403173187706000019252760255545367626801491957903004341724395782281448759036122167813574564358533894221232153984892061750626080746621507321855509089077261745603515421934868393977415765650542859502176925771274851662759781077633716243693606235502941507919621851740182002653569109760498842592428824965158113276457137742806049986075909669555503959371326394446507347371554809976283209408594091730470243797942963677457280586888828716546646789272077110306029905502449853014381422164014416906962426695394054328330212471390074531582626402682385589089466195785344110009375817329080054550255499607419004149762908839642765417140155010548570813887122804225769403471364277221369485009932158146348388599353741024677630679885034878753738581507115692888073781647643048128346444212462203565851034700058433684380741914550004743136894692578187852022618368535081449103428536612324201172183844214294326862986183136480662888282473376265343425175758890840983014636634135694254407234054794690911311967960209361462564349019762329631563650323664424981819818473464344480755621697496449586776702082216887054542353875935341558522485003221487651513606153720987533020907796535930875642444801168520761329505828383868279996903462318915162880379552731520981810398034210155687818281573821710768658044542729471419271378812315089128975181811659347415092416152172515563077587487868251362620249525923859901033046807678354214515706766796407164568022981434815895371174417803449770141750008558008132743197017512608326456751925690105255225755225193634448502153010866912206026112006676870277395516304698561301175091610519529338157472494978875118675694883245249838439005303823701484514786953796667507836667323412051727628566474729566440052419113576144906621620826412705446796632201012985544670999260082067953230002609705987849314580097501244493472689364056022767034851428565433497137830138022878763253479431284261628253511920665757393387041436086290778102750828920634910139859992974751270397024716038686312000995032746560905664356669125895688482568433444181714051635825856584726386711479511391331986910366791255434490178416976946843501023831145799123458246676927385676596948347781320516468323114027270420896137490227014595509055170896377691042013841404972702006095284733864715522041951702459619793954087808502068398080694086984335056318467871003960800726509974836310034475607013849419772585831263789914042767451498000170727867327644196343674717891933010726032706841548382424020778080099509256504110882432073546597056419387471026094891527622327005765581799676997508288258724580987349304397619098895838849432416895624910970200918570485509277421748757614159747435088102805687174874782028109931766753036654399430887550000288027773112860961281163313501224431976701975664820241307557023401094727493400771385529071397332106466420156314830771321728252705096125866286150899043800945469355560575383702090245394858944572404741909570869079713667906613348460845694363493884585475396986047150068131147464822547026288745352292726341695539655604933881979086858922587686837915112733671708867215305991731973302207918508594031767979919269156992939718583763801990661767137375564759030297157494552968044645088591144720504165964486061911976632137486131316851699838891709440944225718802878526068933927254357736070354041137657717563266392255401045733787696682582291872454964432542980898219621145358801201959950411372359103884875445307010256024027048412656397030074274950249231440511901893224765062151732917217206014343138153482210568540324792107426261482041463754540823210076446198863108681545623477657847997244459942826372551174640984928051136438947527397494742518026841322879792527887553850979296656628397165618932876523943914718026074134112528804200859006301780717462808506137285138925217711368198866166359958995855320389848138954792675151997195548232077729567568253494353156650495534713066205925423147004506048614262635825013358103156389977296876165344723544300432076632635711833073175968208846673501635671830518322575893622874159613819221962363965876932286900806375070442570240737724626947756729717571301408006008328855732937899167474104278090224967960672980502325826009802946193710972952546435373116415878534729804368794482568500995866039924829480466470276667384587303270585772056453172666570291844176590734656261546075599171857247993433800955855522676675886801576368408676290605893406896774162165990858349465313343907448092905946153587003697680619817661374907952314773855353294661079397873891082183147912354477649279858293500586707309930457037215699301168982261001061638271454625797128612743308977879394721986850123107689780061794349381434243997360348331131769425089112343404804235952162506450813126652572762906248741001417083212961806769548977847323401738107838703685661239192938157040582618033891567149986040935041169263550683930277878660360949819307413693492522165282413737906541046635477209305630749423603118248558813593670897997131047948967802855666968017672209792309373350478078888916736020171630238186537067613006820919653407350038973485583291230673638938693711935654367459083702296560334708275560564841573425296700102087307677571689392469836725258666932729325048336484584472205773842891850258983930328459235484350070357050869939862765170169829491638987508411063773112256576338151210603366094748291532117992479900345613962320553436433342975773733806300595701995254933711172894370818014016315400846122275719266293429411626678423508904743867582452634911318303406741294266894510086644871723400059321544256821615510234855744615960918081638094962769489751565975059419728620399546671127566589944041636125913503115059490439128375422230158093654818332066465520350731725562857624502366829132135669125531306850794675270057672245438149080194135328904516358292718119048795091233761672237186772225265219329866336739640136750481189025785333853465555531417224018479678013696202532429454523584833699777908374183826733276517158244695502725642925882522461417638856430614076050374346576043823820349733967473020913844905720546203119513438267041227786745626167417012176574711897855593716907819040258520316769405979423258072064155992086832340491758797366464483794276506231028945874729612929258680924985628599973273579238325454603391946982696360165078254454165723456960637440473438070806849033955899002330444659943963045304534758579227397698810675447316073688349170702087984573290259207907851617661391479680896437037335406628588620868276083606035507940020836035924911858775554325790167989466202236065327819913987156183084842113531273428934131687203819819572525976008473827294547825126605442838298670186311924886513571340611752515527835993954545135026399700459854226803496564932254454907838574754867515390172101901858655357583693201460635268560772574045521140200998056722569192062685110960301346323184504757034428746910874351442355482891731255952226308322603843441730309424303443159549938679374976990521004384363842871016777721354168768106514100223211001055441588136688952484366458241872983956193128815186110974186585484040239823785049602205572114365879338799631191157121526235073177645095024455655020065633817966269775398455003853470511691511910949166352772885166733557857939697515324855887465043582212831517485043934202325037777902873250686096974971016959016505880306619223617387738974897151493227057216958664288978013217538712015970848233726058704200227797557133307393315291865540586830294505343232732991272339159148668685758307235841396216530400304220890902750811955508732876695552189145147627468547204098530933268403075492950988388408605033391258673357979935545838431521301845795775488100976159313972138475724727785877058148775999968698739992431545037110583610185907048335741139003769696945263065431609553896517626140499650108030421965010335010619077420709398278023014047711255625262867776965786239415280383528540674892744606780125192677852295188058688288450248024268033596879283710681199695674866254197098615651312136259036362551887735201668705023199240338698835031898270927831947657032239570631615706984548824640268810180335519357845126789516499406641437877942250106696262430460507661416388910353442059499924661467184994107456907189504957078632826513128680553848981122980445446312582707509739754322233965646523638568687792939524229886152572602303293938021857260646720282374063743166090176669033145051717672360167264463269821600287359058767522739169311345261597176295711331241867634574657927720674574284306641522994542834571153214065867487946507546883521734899424214579209255351888793480870222954212970064946697959326015892331062779000609010052256448627850742089899646932739423734556820074796341147523941465209298931350737986059581643097606205705457714269720239885229617166631247733058458313462917357316783731793445900580065721129205414112000663648426025169739945924882674653330540739766536181587187153408384033894060476562966830036326255974653987167825452683454826452498150989311865589047094780723587255600679317540105095014000989768959850817977471425115043550639076915851380870850115248965970226514910595080970499749797234415802427012087749562140436875605134426396759806066843397277329608008766520121258680590663074159845291811561745489588369656487021813604086406298726610688954683481260931582166549233278368068141329437907453276668796802562550978655802629196912474031118814800903952456245317844505777866670653054506191489893676766862164428834197670572006749576928750864803469052506202139354240024224716918245418327188792237674165441243100980638871012151677817317334050610315254280803530525383453739049596272260228281837740376605188219434615600277889913613245620529665112997563024831108240136049318947084953583857040471269073899634694051925406301555534135751068148228473149200602073446515158013235607401651003902981474108761352637869278796451985603654899733249439278394641663109940261027284120273755719026333132691799708754157170331744710981972360611261717670224185857979058437333669939426358600889818209105425874843289440603857309851899865750462499249177337219303476011784955530751075165267730752236116066434094784932335833512731720723911041060596392378346239042170966164001253693184272030021940996905772451783131388787902617125705447069698728218336893312180582062148871560107747067029762548524541009864695521435470422171075923739634315322215178633653175594584951102748337078972275504646496131107607011566906813719096532274399976207281960936199923977108350477687161783289026952460029098579091561443185061016881962854315851283106421193111649954061745226628957472673678938540982459003945829247218344569139320776385490677677744552456254816674799840875605774441821892729576451513633061591327966558632524136560224920544556050899563702447245444186089013948527870263078719639255157427339188281398280196342250258148157892197919576043712865377956854427732383773803206369322443882689436203660329745097924839418337020447389887433835442036841813292454099544289443314942007788577385088128670441074562514258206698737307484356525176696296173580295567134470929878834392065686008118837014989776062530860411414339133130298040603402157578533358089439848990800826321880474274167043417925786114070433134441797622069134784131392122941119251522502946685634741376506195351740089950751213229513618402259971709796217709741170801829211439056596724526669730912518777072857629757628201606770494172218042208543786901413229457218995848693888633412054135822838428759551117454814487702021655134751286428932890147546690772371509883305104715635572408622974452859302088476229191076804184635081469382858821248496374411609395383027424146602556173734997105126870189347705758521539529661742949580837928842587771968727387644830351827136859055336575298484451083048829280808637132779034722577279181812737928365929797881603174039159386084506966784030565042175425646682791193127588379988056922682893992402979315313845470158871175071626089112244544296196154508840246095465171769058908347788123398246013020210152654582318850990115541658865216216958691016084702110933404395563278778276863227565312313258429908065327973332229976487761530576148521686014818373542404580465414571342070732564190025911169435737133046842247775766429955659230438121834003691896585637840425189432594187417869205354180134279042398337338215878309721264510964740549099157985343002564038354884200441054541206715135287442655561456457512536076509284408706228508772098501683837445848355466769501928252825828974727969581565651240273486365198782201681934672485994906932345890869352854401946686773516814098832390066855498772951045229071149538237119926421548463122656597034625888123775180366391773020676144728043587143698454652105774247227851395103106018693865913897764825709064555121247009579415686533522766687947782605097984411451775110214287244852704426678988756849658693987763026360164154364610682341510990351568898351404431236353935851803589270121473751358610024599948857349622416444096200838607555766977587732880142517687906110798619422029227187052072668134217500314010162552403037759030094071498097529594787946794191476835659950798870096739221597866443239511646359404863071798599864584889655082338742339697274121855521469904429590338187804847189632992438574429120259031159123089317019132133193352067515743806133330585477568883732682801742699304393825662822123727500044819118588496837330088636557862969599139022387377715573656950385253444182118977506400100859410296536123641565511723270568605549777085663640494908262298763175505683488579709658446459542924289568148500181068292046180627206472424283366369261861107939169040939155994712562386157774151624097575722850689501486491592183673214806530263679593163757871068531650785894641490420123063861446936758340129649239560863420228774412087673021812738356614941601748291870543983188686617609765046923509907151724974352171173429210438844288971001841260802042862395793780981394017090291115206567882190402679521386671716765798753478743277858661488613269998221800638351711784497040360894413627164636439163378876419244192917366264517170041349669722462722684856684463239061666842361866511607865438983522595363355872881757577072381995434238296290126093651082661013545954226954765366284712324839961607277055880405731479385411125957641657832033574021415963205871152676552832466012202515900797908738682143033739502796750723072104125569734133760215693307923035729534462187036307628011613307599907458883590256021294844097842576715391985525788260854555663094623749584311239055972148661231024529918178273689304650930807373322904627733156631923672454759515285632345211177698026117784568837183590178997718843541991997852109956550571798896411224755306796296792914492449255699634883957342491491694214251115729669344364578255770876801292936447562774823765861063376108917978298651221458525430986657894764080647104224643837816636657449439989622671824317700758551430218317492905956136603974703150807847321273645170359988667462815165041588116613040284517010151063831602329311228414627217574691798448497837004995641912640560112986206718424094111939804134790745725874337595338154681141348365595049261235293832806350060978123531744601727053713183583721265228972328106452882489485993996295339138774187145774211123125558569511978083543929825898317016795591234430139250536982530431281955967972102037576015829382739377431631047762859766647821210470676840871657935267762809822169247798165041932840073560152843629561522227237368267207030600844908265020277973180272152868723140819370645059528022243624519982766579582106770607445015021007940888890215952726906065510687239358018077254729449009357285300686327148453054931191390293419176342739852841244634563843079897619113527162995998902801235558605348050264939898910751510424291449632201333827912716662950276620858166767853781757984912955131687297774683971771220695489514150808991891501836300125820343118555102954456351072797757439736322702943241008638351409615748534350511361609802065718474416367526470333090089936082791614875325792375161241954899226960760726666096971254412661218394680785015921788826512312526503961910597555245591652195227692188933564687706906599671179924600677384594381983210318954538651097310119358264615027262576171917088640721947889827568418851995739086372202337567589765581648809971344049799172363259260908513246868637462436059701232141736734561462290141400111161120035317122055789051799499638966212546784134075746615919200994844198866052815894007822085194892419797056279367282521169811300307265690370309303981894906048476750194537862277623234403199810149207633939956005851511375191513521594238749354504737751194877921993468929964201218161307548314114105994841396684415768092798668986653708551847152880494931058296238110437518750171762740203540680286864307081877883622538318175937391796160761404627196181230110297169871413177748942474694690190764182974022275703082065896222149816673643669356271071164473653872382764361881889188029319067515722072660767704843637165258596753671169419714955786080834531370693406385169943146439720971815978549733905272365282347433898728074771865515538800384732843243137482076735770235359333730473967237474768775445300824309913492894900326249554430604867119261131574219328346062478641358609382808765705760630508483945172056728793149417231337790354719642929941948885946261312885614138129200944620678700717665400654348327124418946023412969744616715345771248794727241549378864371429713776413906907834765965584823794447907018020082587102407421428519367149714223936417244334311361110408937328930280462437747692242396307865680959924484475417800289183435654531390448748540430752754781419289084931855782163648659582667132848082337101876617168149176267380819540544626367539340734675227498523882160351003955949260306876523927415156973586992161732008811505211965873455236166450632161607853529449070509244843989717483529385467861498084157235040930727615719616107876492722219866606679225409329274479252028422911706426958734542579542074267476986282698546828485577853405708037211451300738299145641393624338304812438279932332166427014446076139634972596275380682424611841411430481583116747326408262754329607906803739998600220587445290891815330069856641581498995343159057405991579510198674471632724762989433465634140536630038650416179051181631038064674492622656529026361081476070920459651370432448279399170808991727011052565311074401807078832729241548422021139172144832146559449972228499018062019888004535528192939557729222715481808580403651128412130966381944788464531378803172965737668040894109530441314142949421761051449715195413418785630755524611833149537072730645655080152767574854260479254764635009566081369781570872155866424849890164522494057417041359455578673129786606964335314585068911840965318229796079413720187274653825463295127295123944009285297542608390019810421973064794346755168890184471247554946823928271114411301190535392452153091304718222026462219424327743478287687678092856946928597892794629830545021572826974946279566256152449692509990694428778225675304692646983507827517228562846295534786139219811252842015883550900361726385076883135507421059622313912629595531001594857064989390878638183444203647242507977395775810044453970003992130698311531210173945992332843895956359295647337461025345324121787433820302859733761252510608436783592842882141009024248919871971791373583105050369558939506001951618441199501637616931991276787398309748466511823853139197296400204364658851767874934447188064733729660605004302591127780724778611341959837003903414691702251386403124057680409405173637241532612258793554403418129829476015699890172085769392720994160975596654895244482407614531196149621827630080341344573541608079412909104737381053270137052299711252882422187944809346268158229999084482502416671973759368288861043001602757937569341207187919684710989988498938939953084658879612543749022454876267464633677586031426923321351274242958270292041423170373234526454757955942010285353780169130897684195345075353030766571410727265706105057373930086853484408350424281927714238714344055744150123619164277787297385595242806279561486240936833545572443840008095954196026943973966123806655931487982454296356310594793869629475353884551480108049671176427333107637195077446468945589179764673518937105523229039513553055209490207932881353851495646885535460609245752738235139582262636454522591643217735260081206830972447720945721591781221096489382762175520750492069368534454216407975188025275088686360094836692228373821806006601285377142045248017443691968477740988778378268929649266162616115461272669067279097797755786447143735380120683668158139509463135790062521793897496940763111495971177462221843268209296589312063202289667322759999849884141986887533059367576316352203568924344270639175653795187871697417472635391820959112896212621272995325666402792590369964159616905754000724250525937677001125387676082261886884108526509427058704920857239836560367963261782388983548675936113979274470255644206042807119184145165263023159521030180129223415236658348903046924030974311863570499582589104580294474291021424954061511033420220126036496683473306775122611183129515430715906827979621681973405789510472488440023356812318365635849089621610755544354556292853981020170958395103874109510955996948087728725995288845073509004951947412249354577691956973122669807325788953426371732332715732564575187004197112418544482848358786168781040714591726829939157125120707183580983437632241862117684083003829374545393807576499305762524621610456402216837710628125856324044027691044389025070771071737259979439143831468679618676432918796019830862687645209973767035058007141993757594452544512707397766633692748597134422751679110359228307759308746853502256729736963728782300918762683486763700110898664192705695253295190823198437380144218556293903509611755922055518159310599299443143920962456219441686206690506530510660640008472735821792937706340921139469449511353995180571976977994286724459846572821235100370679588697615750379099354563001378742507922161655277216501363590523948965094846751031874655623184338651312954122066371057152580326237719055374635216089059327267065123596438035184399265440111239172401104178253035044980060252618398487013146767693693838350304193257325278748038112032913267311076662240121474008357849740428225650095401531895260825075627450482141597232087324336263055380189272570970546117044292508176614265905874992229858590247923186798358970238266693852369437226342899175031779293137590520369974584455749835332457773449270030182242758748162321865743326574350547808750948112560876390405117991505974716802989257145007850898811706958386558538123189453244612508734116826693392247087415281557256821541854149168041759958294117930805599278307118656209072883663758287708504445864722289322298107286196824755344160709605489528300932113333758605766703283663267813814517912598506961391325321625172704569580116135685704217768096626979501715561559511137126525406691750086758713672946729689585567112398581879534396729900550709386723497890431216758895003664853560074396315511764213087793518941633447187579859286217389409837279666255974993051077362944191793152355010899439613761894368625332219209772210139839247474741908389113704663542971128473892172722562727634342987864601232090839104254498050161115496566525438699020697283466119432768988794125252536874324571980871638504477200446934887440143851135551778928628330581105321984965155998611983314543420153294102224130196749262673380195065492559844270774755539919170789862516967962664755079744917167032772043322956686398935327875726978047040482864079792266634919867532659064905736069759649170565980994244470980644711366259087025331986667927736539303466028396032605149954557181616386146367505123823241154260314897917777182518158144038330156953690748994991986709304556822991523296937919099430126098612999364689438857429530096716038626497785507620954643460324243989693568570749907816935821720345196256885123445499622166913443810116940225754236886506374556134463758927386302817333453879994929964515118370168119417246515504975359645976460870459932641317486134736273054665191086447059690467712594558222388661837705107224097527011699411221403819629722796223309250261214714031235108483074292306025159463707952551280858443763921563916552056247965433993318747913197914591110053271311594880051176357481604508026191254073225792815855647901276475666951600247728729781490490141740661639923596836809345609056600511930011012823035826092591176495793645351099369558532553321606810790663151233853790422010501582558597646589346567010742182524014223100472502624850876633574761323022676428912640073507530397328411740464164133626700009676228443226191668951147828682635204435520446206831156264451815717906682135926769044790430239259784402462851629814154288167437249228728540011440834930467486811107365036651256331693483525687211099782229416957689571248658548824593256689190376828096137877837662209831064886006316634340965122974497029338878107881666318353346243205916921041016159141549594442613149229563135530141077694796669251724961608074413944612287816742146174062264824942155595771556641938033679305880214333734079964445200940087364119136521086279282415942829933949215711625697813067986977803596665747186382608953581720690241834782205652071553335676312320840346312926403086511977083984003154446902651221599670627573053671721981297959636896194078390713141369049991420971395305868455746616080741946464508013423011643393079683146005493094970149120433250727656224109440615973225386239872767116949003680784470701312837866821102145807509646035501218606448910713600907752169991089520817673061014260675214369153292363518352276548716378060009325000776325845214797202803378960782562456715837446980208252663121984320086863190941230983504903849589271169730993320034875246410996612057340200589489403397950954047585875322709065930430533690633557114307008158317921631409162819813276713145553211369060257827137531865248645992249287094365741946416004433341533145989672226953050041245100532818277408082299838137070639607957974127371543056962630164312370286634596997579876265855920532399367697425449382016630336206080907077233979458456537554497281649788078776602404972011830901256154238450379132385368244898445402559020017238742647204110673476741040667524450549262689094799429837695651796487683472263733398303318462898550564054086151505435425426979775428866275018855396984201342904383828648982901369264142545804059291605088884076477804174707870727834127146671215930104819665228052055835521986369418394087624735344224052028730220317226299618565175977261865014133063800611939329969844601676174104221079071295521200978158202709114350638744368432519238668322035043686568205255602191461777594126890753044638123097144731577647362238625342233090076798873535382642464479036719795653453802540458558722116536502540469869625294128884026842516013518817648593968837221645884258624450462134587953997042142139354243561053540569026983902011467300318142162719769542185905881618586440155885852639079868987570203813066967769915048374187544177470655122695479796166777878392092299710694129080205689363852126355334308718754819961163136166624617684163063981155776622180381202560922791714686911090770110679260589529223064059325149647012856700437157386396050580041204207708525909413938995223209541016677836675386501099391966469012160429165971732395719683131634490108336018464071273412201380641500581028346690313505086947929956704097140892479851438105529994663643459190272973011263520152545374297266925763687347009032515942401336909022000736170727380193199357808080228790165212209615442805848978828194913092933915971714714333270227299123870377209713664942581474275765731932780351187028653676321841689947900690935308215177014683391287642840409957897841002116458328899956087242232329309613635617516148732358637270843017719867932010151554940725441466191555953920329797387046664038048263551100727725757066828608295150623850302629911183502009696180533121592956269646183197071939280535752849384824005748063204336273949926695101958221036332686536656180061460716264762282659219763179668264272598925627164998390988375996083616213315800225804747436230867638344471822493208545044066270577420420635441871995466687465649521240789818760480871693346924030615290066461358853244565583078812550946666871245137129597137840411590979862213728067303822612636427310669333737202188492952405597493112559919765200762228545435740257369559930723779863271400157043715599067626750637254945989784189029278577140311038605393431779841734864766969437331789066709415631444343138643114851333888315388856564140045817249227536710933242399677320366372040391750809045612808078347617162716479414141711216971794296884241502387589926412064120648414561066932962286308029870865521824251958118704735943412015735136506003096986265911499654988061550622802868268909206613114641346412880050690953526025485139476588649040518439419611304365563472311242180827755306773927813179729553892256407507338763621507420546175731010102098451226294614778457261148133939958992139385705260194522678196473792279830312917367990537870918979086499515715831732790096117151254421883002664092643499365413551588251499143443164597514201779959601758692576394971775763021676111844182074959754306134364066604767957561203169319991677504217891809485669766123697526580212010651535543606684722064004008187849812628315422984968070250190370569717102518167411525437381187823201218963554342673100310929822140724306915805166978134612248809591058351628672183861806708505074457468624362863052110085281143306032281776821833964578471641036906085954570204461086839387511563759416877936402311496767346558455485590174680716074582834216287165957229809628214289332039691060864854137630017237602465572656035622740348754262077768679535233216560662795600831751125035135286992315476533204158466447877562263588690231380619799953831592897666983471309740085443701971618141546088878743907632636859976192869076493685786610747306320191945332374659974307268042495127868812741095905776449120600298415422645746139034442632289060696964052474500271560917496875663656917151652432174663699417499997257679901305935354668455157613803903444998124252124638337382533207197732622150208708985557943726807528571370771115947276268612103247851083138030725239250504547294159656706454595482294415895943499306712309433753865571090462051017261558598617916320602576001026292354758793741888662261831804463483877748657121016592898668415334727972109076839158148131500852471243401318989233110706947405961367084629437776240266693605583278100174110675095377679434721939868569672534900632926544834221969433885890431131491905439468267459105269821604536790262745270889091109150193082621638803193320305202995352864248835067087608552135351486926043080597574752242594754520320607660820199611978672953703224492107339261524997294353339595870054619374715712914711205523793518815505185316027618216380206987029052335857428283901386070799434307658226640701152821760343179345943169479696734231371402308966816746056351716999265312167093077439930365600771961494450727134384982650689317103376226707903933133738655841587033653913025522872407544251012308618353912361700845996916368560500013784396327833217281181670016554054377348158687172557433132587730989176752084544937146442424042579563946444830088219315819948240085138456415813327732593384639859299026702379149331084058615395124495591013820169413826433430158608273784363745839436300661494372019949661696773105980844850747270431178844464076415107568896679659627863315312066770794435283609285720084077991225685150391221514268397208514105427329747374436683249948657833466883492176856293861871579199496328915448434554578553051415933405172156188208523366579559786252357607277805147580838862705163353774452436990211328202309284794006567198582428003736098314485761026979535576018055536449532858099165109700377484908233635506157145473781448566763838593715544789196106021406529733621395931299360865183263230766821156265757608172354770161841330360628798150888355183748732544578080698947935931160399417057121693789264288536919283137128772323585016299295869290770797030652113683847789195513761903389009570736277205764523043317656710750950938472030039711079243214618938959478247732056837998661525544292602438592135801691326361963978766968900603790654101057966656543241242227269390033916558255756365876727368890445760420137476109861482367647730436330870031844319121418381736649233596214260801562730122844935486776824262848149607831887286550975495056925159907032497718870436220016476394888679212132688553280300728085939873485094069419994139298902370207897343232127541155988257711386314308624353145577221324601343205119624655154505225575151395046175338896784915294508198291220188225987001805130925948220108222337439639423467023939222664399532243350499729360366652778700745174800045282272212334292851911803656433303565614174111751842861766978678166985344606744380938917006241024033061631194594417733429772654190805069383863258043518256625671838984260762111200090438468162761457672913671485602844987400094937089966852725481352871363346046226251520886666447833577109059456877223282205966382383322985751627508103633526564957107270157597627574393497443427609971157737841471389491723009036143561357723776018479300509159751321783223026043759636550625519405720914515232893147703215061647013841685585689313491761484857552520545874191658607864569249507126111154282841554778507776383082480316502820695403452754611872509661582939129747070891441008359491257792250698275837888548200003695780406151749977839028088938414232940123787176532942170947659818852729009945927011061112637665116820282872250308151892893346880035519520460964177774655557993842121850093110397040203798360022463618511239353554130585560835947486405216789513198944694234569047377125736148350274523275220904173956044842971587691522234452301922785513845253559426804713309480832435623235986341690339709853514716227491973729509032610046069035107853829434866576912909010133972846634629269212162507255641496538734749425941151436565593874963159120065275709740983818165545737309023099257796602113257744703401372167521446269636022851967012184110759429567482193414732715760251933615460421608788994970992431971929130238894984889529010743477779101244756951599562802753538610587714148365889970797550228825771492929298429793202090411498786266821581626446514284076402947715508375749112440751010349686672559497660989307324921390325123757793027348925875105111622430020291803495336414390976699566405185293041646332813168350256126016244676157622713914026794256773747443602484553529909681482123811324005789106635034825952487356862903755976116734772287184701943038253757533977255187671016985703332707910672329036478496137053750687753526919759304164598378215483254697952124734354123583272450590736625704440785506694851093682384415840739188537692762737797986986121382462294200727291363274977700793468539268459008255891698633973322616559665063320136334319065347207425012036980789259709154635610117276942532281942704703989577589279748949664204690471283874955073092357523986100719387029958090331527104101587737391566626145185896496240340657815053726362072631920475289519631966831075676535475398734704652109713454447469509874289539566134258275783524893873467119205988394578858538264519427239961878036793601412085413362259519197752255284396464425076060505125367799871434590794492487596040357697963099978501344858788656939425299407235289199271370767858065445183972053360083241252637540684143394946963133930535319114100628218521564900921211876666195908115542476915202743218265527646024134262008946324328722803280940469680558589762129582000761117190283228629470642060825297145883463239775077519995619605091945245111873604667963362995287607484129617475970030062151896247918144037235133917920715141365881877038595926871707638053728801825793429709533543843646468428295859500420242541870701142910355619700900307600742902982774999833056012544674507335824374154539325550150323814465525380782104544251776670483496631851377671813757428712492960122374057904306659833258166120355619225797596549284392066724180682588179463146706491074560159197318482768727180100130411396365394852175047317838408612973857961073474758605559846693492925162562811775136340773272903302981226233071100498683461926909144321101874591491654485550658043673883636469599926838497682857147080587517928474937578605744704640088004403295316393688154247812745957438173071059829074262472117945082444946824546534074607247536278936629391478654202539995594995123204758126677216981355130493119045026896564184869924841415561974467020008617768287251128259735466717465112535635452999289490112299759169820025706304449845286973741871385096600464980573985068651302816241572602482589276710107434858497958006651033176724949670413011228753759430748317748007762912342750923199801540322575988447068774236691791331787207009849518183499949807170601745613403332946448211149165593069686557278841250203452034066479899232762238640938000293231419455446929769503032263903287128800824581812135858690906738226959908932335575212725367886640273607255829104806849697122498385748994100064778614365608354528661739609214002103835922375056365333438545995323740939960552933242341685957748281228063947147485947558863356361147936934389673646433326909151981686407857339705251802977985777800159142399029163174736758046961854686270121015116138110181440317569074359473235938391130407979593145793506069839348754382577473499398873190024173530172505955787514657002780139776657516135254951812977616316220894394872931007973537208176922367849910714194427020752258620880088553846575644448989014809636526700462683373419762847234955023413378175926801019415601954678398273476070231879115899577688218548572148355611782423916066774975053712427376781714235894376265920619433597453088730222067429464030339929065144296076402570056206896402317636865322284053978929728818738073737065538679933715255194461658556217743515204961052644936945687864885211587164062434681380372242543564817614025905380847428506586298096572805687262471564303794859326680897013038334161933764177230352174771873907362311722654367703198786111837147264882040132647381383476294539384326484787381831269686528755915298762359158628525424315000297145610196405366659162938569451573811911062469770353390643598454794740371353142115335849756215794297471800718206600798428471964119453535768417674231201088013716152736027151823486596697494443658898918165145175603429481828567931223229378043284762683118030038061347041609896345501586850719369538082331805179852413303723692686055191963323028712891289144610721284054474442963419311651027701619648396449749524625352845162077749679944718091813637652806126345713234870287832278906083303127923940541087457357130710136752045877624683798677919074699613531366793262968244204233980821904670137299189082080043356316395081822615846622555544187443687519483769112204868488411987157380202019827078671406111435627336419661307805859867456205410595390377519595076442720931461231348735083759971974145871377008539175065587208204587202146513671094029310422228810062000122790120846211334816444528135418173409833567093445481483842650337311540321726797537452456682867677914047458969628422631534292572737991128408076963602629081813125106696446102045287514419698537430529388413370980827604863634168854149255683212591099523344850551334979301732148931450669823571665602286893060912331261829736014061261780536154171540118397821336287544683819627271039036362965001594592924784030435387801729750435223860438331881007661116028844821761397842979740013156673547368204559586005001856827820622457069091151816083835163254543012038461053805176501098347107311993473616219274037547871934924780713961320323299011803013026490369939559715431675062928623168731306938913160969177161698695153380761966573754704795981308357388236589562508835220549711928271738948529058778071650646863942845704051214052425945738074052991486690323439115872203307910821710972832431970298266214331256501107262335673101236038460818603697899209060474019150813417226891003667902428360810520237316416236792272812893085012098273273530036705148235457931662516513616876713714418595621009405851286024308519852730561936097327416397478521674378792877428256029854809817606676781119766856268873711051263548736032566033115454159491099259330360024653841506533731584863343460244682831222518370080505051213309145347386067222442664148969300524512679267226919460512027228187343154254003328078063722362353212741462520044630248201485458561306549550218957177899103482667318026427212329810905365562439665967938933677444853279361682120893614816992818987393141743056379626192379074218699186040595824671768990229542030483940826301644895851657810424781424227819072944759316997029798678579584456174117815732106776477321585191673808768979311507427782784496398859931317013893970964530407851782315476665651619402200686076054691526468203595458218029842012554629808542609705877416878805819490774950131750189684380271178324266963798054393509947802790313996711294617911971771160575173295313478706265542600684560422922992798494745307024766470436575367353012342785616010642721214447879059586895696546483647171597543703555679562450893742936280694689072099731841324498106369163264563724492089235127434982622751287519867708511891435097961234547932374814482687770772661380076707451233420696666671177305377264831202018204491765796873712953007299197474944150644050175812957991035022596140400601664420296095230501535610923632400544004529013504872184468897008327629171957245062145780613717252378276393771223760491775807134264651404818106621770017126247077597526923649123742884692814982865242075151811243116787746904609394821304962490987147527885940852744426122424381919695801535939418217362361885109511927076676890745528006005298050520667758262958105471900982768557654092887248014422456156285654472811448732459896944537546757936527429799669607635632923925774474086659179704013294413682468810649622041514792505905570655911131860449709773538432021279640418588147037409668584535452245916860386777219381867565486807500932550395272456173869950884797273633543823975823542642570699822959973754226165556409952183459018653389254747269514904052474078166451551715619131010053698142778325206667661653987088777901907202241035057107715634949046788913381362563706131171675914237885361220478572925846696462349299386744070080820434114841358600694373216030874113802496986111654633482803081223994116333906416332318292065209943502294283243283817194538606731887535511210113482994152194578597573100513914938757905834429822126486723248066712933366795426803863844616014265385572396506609469909283898090360800852503272131889616569637610896177673337965154293207562114977696843686901116137055247922853111250526391422990756315893312716854695271813566364152338145164560305389252263545773620672578695049328314052573872181036347642375383188038163293263510477271753670268390286429495414236326592239336756339484948652854369160684753303716033780769775361435191326038508315858743514050162374845298188405269493912815660047785638893572518765807621784790226877515235400894144319356779424959486899766963045369878273394553364377697723984690088207506645312919293357734829361202861121376582014968768168876082145410751668194612031076507790233121655607267493627691430881481079765884498602557012076327716199827962680593156630525440224507260706877869789534865276874025559976256696877414712348516360688819015023301797806715910527944792759303190619822453805385446538858916832819112284945800583481868700952852538961076131310370147249666260916512058419636744899243591729781892949436495553509997338850892341007231252033223924733326936970340678235696721901094844353158973785076377897334669194480922839659018493215077472584539116016154782307990091106242599462567987026332056539593926185907932761227449700464539349007442897646366259697928678744066894900033025691107632068918892042217299496935379361473809363193186943039625990513425459196896392347500860707502941028471721562131082239675649382938390003853071851013310181691628432833248372742986696275598625498166473986692429287628649893652389294080998819645661668507445407618323020262079178612115388377956918188089014017184171091041555078976977582886885303206825126746643965753143306484045727893986828344902258922711863167179514073413766444639822034540004544687877137370719578687513323567214412463680914292507205054711407586327523205378935561090128555592283073482465088082152514276252671892704892748178768675560088163117521080603804258602999986566794861209828909396824312349266043022437281812016168802419871320332632527401199939541922172344722678088343161287883600527298000087581267365122737656444533128800095927500955609560129753078836947934355045017552949560064446065933210923482404480571023048686556737333808434285606440917821117790348769050789696471097994429451686534423915217908896085816063954196792806510125546481643324585936815204703287505526021158360156144355036130803712386374437976983791054566843788470998400487240783220357242108085547311736702310884821900386579350147669552405066909413164281274152557865588548368954380990917999738803177841543662555030267779498859906064741987540406063361755334111713700838265096675288239586235135208790441894161594928391740655906490729197359981572335120942484548995620384820244035542405275823046549946803509053542020352128696665975086020586280042083455209750730551718500758680752472176539033514278426731105695436398519637684390497875774814151995126574718987152466016956160917148901057420083308349329513865922782234194703081353713901660628126531533755179486148929555907345576228810740411635874761714314921761185273377748101488689559353517102457983861040484228972860265305729566040258426467793526065878800506506695690710796886076367697932945603269500372996498717968984700029260052188815997580224965902531436562748542806129151699307422425600180606722881306910755542396506048549255527142149948760818660836478262580174834059428624634240986741953737291454827396151253406619569162879956184107804506032978661540235909971648424749017093189308666820105013374108182624804984993805342055554348464925141013325749349974761147076621986259911363584457499427370772634094396125870765505044820868036808392707699738375901622633328012687719927858280367299056638645802782365373759917055279637066308251917687703274574819472070666783929068010059442342106164994849907719607688782862333788777335537658995327303932263208317852342051696473823227812446322383274539080858439768897402932125570684433738933843665726187004091625033473987660015163496948516218938002083170982717456555923618953496456912380355596199619220093281160534965001009838072980135121343166886309316630221263312986769304201524179407481770413078588893204680353979040918272027695784597865398934408493901609575811281525991096087838621995258552686595452053775141095889008092927639814833484283628411668877226639563476614786216744880260906456884273290133440238524612917100729803495377788923413787920542415796089714060545070901392962474876524021116102537811740276187357390629062314570836214525280719814278139619834938546021821366084152123109334188175197550213272512610908294779878180025744743730201846317212488500908620793635276688281784342116270935160793546263649336081434720017312566804161270992711488895063445548904966542879228392609064219496042031035232433472096496275355238635027809715455743735123247270960128825481328982906750767595886834775636668044821795209957216248364255335820943496195535171496761237569878648571874099056584172655248270155129806828279646043307984514103908808181113147882144940349355188204620556221896447977105830043973740938955772932987228992815400572940016083508708331426412692563560213184077996447107367248985129479515568659640104461635085327618264174126870353311583479092966003210667272309579355517896639592307409162011743112301545514557644875263784696466774300883128047667117504975426222097283328050595005696927976416160391099088878354341699957179435157728226697287834223494998781941672524918504178586000318518948302306719692310980103533612432017972307529955314838447768053002328913496164604386505203023020117729142078035558035142915258155875993284865423270258824908856254363916511787786176223247275266881000918045001921181840277438159426743329505479973619708920568754483976776374711497136358214879587180339931722770002326076318985871058992470907278485481872202359856772141415686894850486760828804327148617166027462790753231651681113661116166586616729302162060691117596881797771904731003436306193384158821118444277169087695718714009322056919633125753923431813457357622524320755328300964390348707620539904115723608360696618926662063725112693393880443510704336905135622518800801252686933433415785659819894203520064543751032990482542089552519707362141496517152132108978336588216005050489972338403592000185995762313283496770617086397400273360327591448288349896828067824831185057396189600559688532881863371060535986315861824673305837658190753996407585877412408182080217854880942469121029722408988469530690358519659845884842045319786781519901368308105550668620346188949376307615363898761660144143540827170492885611971164216273442181807904224774317473900424695223957543581467603519387454688861736443937122949127964794603039928920713150936646693896708558800789588384985913334035958936278886036744743200618204917667007968530575493771480371598790792796072853501925175223664687877184885529693509047841693745453776845643167669603626519058251922132416934937702402488121713275196402293853862056936573109568060457211640276455463771786898397792362962609473420972439968905183852776447015273624400781497793606769338485862736562811083380948689115937105222015047691614243932269531156977935888317519227649216558765017286660215731348269407100433726646964064080951123605363588218128105644622167684660191701898867785745187012897298328035703772119285849036897081837172476316712577404802345214143183633806178008949646148498354880844599866061101115913310060987404171334169168756121953114666951769843895841041141117960995583334494437994523595371432521552594551070865100103488469766754961242717268676099042518445427764838236058009957116429644131648824501337126617346701817503224107379207962872480781894456217730492667662857704529147570472262876871433027352067273894603464513282457447444070122471066607922220837848123960745581228620099783921092773196377341912990178530308094011270023249301163097639235089709423086896752173435347486316345775408054618274257256650616455040765437626746589836955319547319540031128827138099495248491210007619910663754517299132226664166883603279977805868599105957357299947513127622803300091773733367152590528236222271916178633035875791460284510365992596607568466743070530797407477416454897340552904897412282695042844759767379798312252015322153470115247148716162150816307289567291660049470897090763510883832881386567636148234500679382771601928285996136099794294680187953035597807085330683880422371054975988273225889051856359865287544942870795251917103703326082407066556130749619132620151326683320008558799762398847338665278730872450265005875680189728164498233589495329730991150925735333924189043614457703195025828805712357585566952180893753335931795025211321309317150880622641773072693822973167598038868406513291935523283031085391794589172648346204228989826794454666602878545001421954750847674272648783206126313751838086110475610253279118229502443645778077280330991225175073109272793286311600405190792183905082263250202026648640913047368178935258010825422912561867301943917605642806773172219442045449032902281022676950960518942807441429222299799220287927664818031449968327739525069389440992406169321265220674290326877799654631367749966737732574925654097215585181972483522220083562337186009706656229267003714248668553342925351198405171369324085405529649552250181596453221799684117842604308952543210418772766720002400979106102176063472680892993335249974052778326580677798344555438662521155534824786478052823119040421456295146684367924551508639525034809075515536422838777164407974696231480532053629761009452112562868798789023567826197287935950233976270976607964689302345750320927429156654026573379660958304418748435468182117661672007136976859311977552127511710527545842739687262044976266954976259491042141030880509567701266223514055786076166026710788067917926097320678543313956762647711720522147821324941430561638054786501801586438809870024432537503007355990319971709467813779142801924085175496746797496794108109971368117300522265148782568953587292572436605504233756370045355452418831695864073972493854536251083388928716059322027477498703463662694913804381204516308479235356627260189656679555421524143951073223038817792279385681327012134949296422755726848449653537640977914901028543971261054383582049198597924208053911861951970555975004742732807042926523330010044516104194937492903136639307903321800434952884736250798714765945111076930946001033186988815611997720088290467143462852058730469057229421592003004023320406675982739243458900658303023524582579896926572856488183063368644735167829488386005445661678079739890489969129667609024281696367385443782262014711049032099707049313286947046592521647997002467219955045847050391842007938756488211595958096403689572562516795367837381315526584721143693900713467486967967739522407674121053085734404194456401113869049163610380245531674513181725477964135556891714362209758708746878698587609149034348808517166064760821431885878687450330634654676572269001128342636299170666548030426549786491537348325922672845678140110426141123727906733957521709876962116538803953560055004819411114042319152717406995959654777809001105144586158845198794853174374269360924916576946299691975940116364137358117061842127328200556487085433053569852227091933553965179722078306252764099945110934682594468432932877580447279123504967551642484057901064068098122756420849060380677404722801012533904884128109238021045273049520774518005487977057330189370233443636306008588740488802796708792935043025411005798117962778994039841248854581067796293610708370854512705192333691667082870409490983334358660321438726833206871645411802478764850324918323115896888501613322306318809915750083061762681790668574133349522966896293626198351289045418174506932331750782450436213559166665861797403319552891282023264751065570558446240765379939826624218933537798797268774142211407594437429366439703471077869015585768829931160824081660403074791047345475359580298314254483259195925128068703527838641227202794863217013701589001524756169835887609730075057922683122963470245004966063312617864016051940843273208822365782635268644846807410527912533692695602921719729117094766645227962480669384712716933676744472297881766063110895179492294579359384887504348952229854637379799418915397895623069668997778236093116814422558063160188919669523969024890150680815206985169323093006679195314836898194680051900295779711843043759698321177831797703483421682752034091423091048175079553684061768571331256982920754868042706091098070679579943674772037022474938099890987505829768016896664376948353492430819306382561805874840339789824086828454669617843396015282872457858365222111214966142693205180840991212365369721726602072039215879771753502865797554316185520681402508265177125328420000220356648821986296646250891469351178834491390529958917605434369186649017086754733177403575525490511223984509342618640300251259704568613409810559257854900772679211385999852073581267365982155769313389427031987479958226626413545247469522080263911647618291006775027921895047890804072784323817807174614802991184699147635694749486147764866014175862377960983351143727979023983421179877600762375528480812538730674535073676758340306599551873133972456640851922294605613202155700978331239578942954460191331680803185489299149957344116183209811097275051829790383007207888110452100667224601006975740707363760587913597008731059181385278348565654909312720647963760149277946878778138696757805077097717345788183188258836526354043606465943831574699949011527212637819467991538867961592199482922478455696400971155505002190596061390139904047040565324258540391169627090011696279737801848051225355088303722152961080824900480168125572927446134320200199776081604082115563911536239796845720835348947821912947781920736181837828014821211936851534002107554142899578669495593711328219504019287387658572184098640211847545654213209669713476818153295441071388590773889427642405547948215144635994323261548413663411843059659461490303156717441589019342414088909902713064141626570829495206240370588721160046928231212639229158417659175356340929820288686371194211319201106770234861631968026896408591837247116896402069012471217731968405013070497995195179917940232513915842313236926334113693878260680034625165455614538072931855259848992747575543652614712276385063527757213281737738043837428273284159735018898597571920952384711107713129287245142395306031343713562003654170941724774399019491398845332814400508613029345904414193611726898297735479376637740599499788035775048847253665996985490550489066216079118792537863751431917395895258293606946556616325877557342711554768176141557536263413769235230529792315568545858650496256060203780454816294189756321350936420662296003247907722716650328031430077304261328020005801086186748469541633209908803478785174962154363827126498640549063678309353227217944272251902770272011545790244961984407319075884955946997470261436021727208276764380404631740630873668765404151969777854985523092425431072950680691151660491741717738326490253280524933438347443895606308851839847351813229819511129246991618329887190452264921439396604991430266273969722961401394036997727894916654987969888476021385868762176445539116053673313226557115188986977243186893360078308724070360948756113539153592135892679743746682618162371628616431884708188971675942855991133293371989460346341484798518954781914870068173924878661784581609420812865311732590766625136155941426735428690950676144466126371707901578335027903882573554739628954239083717438869211392090655969519841792924481423025100881002261169926886407155128072121458144215106177522410469065573189259261981666215815349056546615268569089345665569623040046267099935503856490793627024401650931788497818525610145248621568103238367282266878374725514008243579488699957496071220169808843966673936323237292455706413542913145966498108155534411222823637324372801529022377920207501617379355696633977208743006915046097059596291301871266566214380111129880337593814022167802319392412924838660266830845515506971195916722359289078000597443320572393115644302763158235446265382898373693487720416382208645453446363896416177267320779802884780191402353859013780411310244540394390768575816719968362273600607161843169155762849959672772573966551228551123565678675040931362903642050984037166867953267129711763037147043477586575275344329878156762527683103992599965284169927537042808084653243217516063102211162064965866561942504970169988575903152069243907218378634626716763336766921904158414629061015165470685009252071226251377633385902512610281725662501187423998537845465208355888942572499562443853156590114061535233624983757894349027713253029007212396832369508188282529902875962926549027826008020071983726713622641205967870752893078924096731491604148441717579880447347453103517159183475239851038900041354852885561451792869260839233177313743657626226430551905257797576891096174575108340381227711099090899768102974301453308299308155744229695030148986488035039833181663105199353421353801685847704675040136159699944415601080217761768383385408709925619169949373871939294213770863586161950076356499948599973175239255085514891758958679707047593338649026897090315107256412452611143072381054015701669609945767356172086862745906609963054839721735766285132102081131539600129816187163868266680688285944306979956995816336867916867355924172428254942468984886460019087143794200338397903822269356379564379788422387574299443030147800645407918181209627316673249084714760841267570006946965048131663811315100128620260433174663603951960790603064035343209711010793517746130450044025558184665056391398637555573814801065987801389133481517839982191114510192276965359024794224061699376108415149602962471149837607042837798283633700891191634526468812297386262464783753426173596638391679932369389845481244073649458587237016934814843522985533004065188281123240668611558008701038153949310435873261268443365903645907482149978139152797656088749021419931796896140245451930599279517258593485554064264550433322308217506096657415081714765743398895734036215369250987582483240884708081089635038174108546074439964655748217180088484909472666582930195460467507127504596675582369002129411845116135888774141774179477716882992091219960935482229844015366554768418920967306287305084449264389315350681248571295438923332012197380554840709802934795246160201293595492325351535277217866445910592470329594853997880392864150294784184504965364840064146544539995436232704478776982064040311265935857239073444391356370113239105510213616878315320240697447278308752147142345222349755403658102131046076789458009140144504725222983076486525639081650677769651718701059674315209627592351054595648667716158004176430749345175958552004207927939622840056479419316661118926155295663114044995831587146431006413068766987152809700439119376772096678737178169228627339301531543163154500053659761051869597170619642365835534283806457812368489200451449659806666327131982821394245330533042280781464543750562809789564305739419185347500730473566888691223030327820212449574496907798548285465109586634437289585207241562648448831626416214065814319780523140363239823591031764415421612071208445886759591438819820587033608437174304216686439918374944428901253132664000092665079678904242177917552068251813751556822958547338313693414810401471374872700542166507973050425921339641239149508868079389114432639703018062098687241790706476813624246239862548689175798201921678841317162781036320002760423496096986872590994474234790029044089425288129666338487714348810996863882772469675016270162297273701378885791296961748870047869952658055274270015012220290121009073165814319407238513431388378201185132574104782572024246873523921238605195986994790698002662526408580603780874193277886130696021263360940517787702013867794158545408896845960409507747144917517648145654974638172462756950130886850350963741763037154106265090862797791896433043902941908305103648190312782762302713725504369556381296703390785621657550591976942773653012485940526289712536815981182558637922040693213669883330433287532132954328076205463148982822267910923374635147853900923809105636017340266036978769469603081934133277857973753872452620950308841804745190658632223209084473970526389545835855541789561447095028589535413215982857804352095954172962406110590994943480433476851542707762840214384467915839315546341744600964951265307265114137629048352653820187656124261841225337998524940945119222677379997985378641342222804428557142873961075703367802202547377384499318530986252892034850594194791218461897067813910895037491628767047583801519918010244097263329945507343013198745489749997714932249504340513392154395651152662846442852506733609043356802697841736712851077224075672484872364641019559539226148120374798940012398795253834994288027795195075620840444818794512530398466181119880899387885897202902192568564319132639224252321875223597164271408996962549018680506197817302979633052956104998383503846261064261172729293569662808451497178980952374984636629415471239693510033154861128490985945174386885571131616103315587916260481369699255029459907653601302872963112008291146533255350224719937391091358860793019498722622953569652331032744375517991003366155089246269647538878255687760903338855980861766943158843075173171964444887534322006906785048641098462472400470327696143099688593174260286251737480746001758991522264609882538428026200024059865538354733809245047728012620178818078090483538754982936610590378469498334125287848304921672367225352641284852864215848097696031937095347921302520719433265623407605258248973056542113503973963152475252629006338818746146567975565798475412500968486904544752197869224760518549216077314587237720762938404205438257114521050107631243450681371449136096642840520603525421991375536442898780648601786034192641083789268957668442138197816977305352634481839981053242403360870509176854923789427924608340546053120031449234995078108165276316286121336097494062604081417586389764744053558855574954458899535484878702727318923090528082540907671655416692525505730948895083131796164104249608085559725740906695172687633433181666316417822492007920595178881958985933256830804922713678327366947398306920127899219136019118158252714512292153494935645300087267220353449992537407040862121504158337321695737392880367422210169304695055160385485877979342569272082553710723634797618321136551391382063263098765225319267212645426708591059028677690688343556514371696584590597412055250025728182262559900986609712106820364438435666322010954958033958094343855025371884308715459420107762339499073680083883637520049589352596455825697541445543869499447928364739447801138400235733870314842756987973333242915446337051291671398639026202487575389631691967785043957807585906792290610402440859605873780916738824074364050505411570999147457818503077364371234544078486122706147264117022660711213963567257415129808098401612837463913536596448123837558908570671632921186479639917972543298326718683096880707045885593891719980938127063109898676447113657943086755801311425909534422466460993083204098497299627572585187543735688492033764133563726037870874005970806213114723201625411135223799307484256574641964533735175820524833360094032181246453519059542694831880510956887815065735729713850906559798245849861422389358071571791285484751542601287518017351784572532690954159169754387585248603338489499588169878530282160275914717140391661138357870686583638350962532975413826018202198849210315166947564790750962859357317808575970977607059761669421533824267086338349354744742291350592211308246615489822691689259418772440909481977058943379566910733968214670169531828603468960212183027394735453856307058654355207798526950716419270080751738332876446235618651080369645496791515307011041073442346525712163728103858557570308066359834863118941229560391630475296711546852848492682995734648511854050664529595057935059315103387329150566601280339177830873926033534964805115088304750434549956076251903516223517836952489499972296388513038507643826328762009814357220439534419150211011341479243993682202835604251120346018994055163910393681622525313316569859357066812958603560025585707699487117655637307480148438373980038843497023403036709294439540847996100792491582155915698283640133610024562948692889331105453749915706808469880376046632404975936254694479941548269146046449955401878491257369307506746963399864391882783770190917791833284481179469794062040440967370595404520241876494174441878969554077417456966070428950175861183015136189637723620937166104162920390669752426377156232412026590275458519678391097731701124111599004673278273247188329000471610704914237463818264334939432039732289894294753100708311029568072173786301938534430436657071305495394626793466705828060955264648014139022400514193487133377149663140754280310226603447255893549278089579928358141708483121317961699680414233656611863646393034283953316630646007167135650066484971513734040911470753225668866999457155820964498750852563538307223818558831100339453880307178244820115469064787829496474192655132347147415517918850261031248721233643668039106768741400972460094674368543725476988427241155354978259268377806375904992069343786492486159559566107775451859043624834518089839665587356024452907735117887064397310701929534556173832774414027290841442051466385137610905951507753143944161454682540117389176862167345180666725019913995288539209067661103618641215230988838980750284844574284752866666244339737238645830565398068450810975190668221160993276330674597816269190308027386218952688983900763495496900726240339279216632989611690666742465891166957479775654328736965364086620460290261985377122254382691213265499113133094258792203746865879238268307636172282251640406516659307311259397046129262066498599733919582909664691414153179859114863283400014115830859769819452979018484577460644114298452181874347792820541171307721443900060182717320639594559999332159074391109455042243375618447490766576657151502637029613495924851152948314800727337072209148914670278162175247718528582825277190871398565921100116689173261409588079526433747464912298618102223386228684114258825684593950379935344356609603898384750861626620109906922845764815856666256069346913621901454649605112160717521780460863114698186500736871974811216933510339654419260646731938356922275986056080102700909065498177680003580005927562942605983570597985842953756531289996278332734881511811889281446321094093824137853807707345483514964999885614548814870163987506236773542778007490844647735238504698491997724233156150587721717657194837219056742583446592892350555992164601686566239426126785093072434688375646773272287021603172022310015599630314144604066172376224619792184038905105214109625402956930243351069306407529157765328792122173912298817249051698413755299380781761285423656477107583984906589642135906455584056967482122505503535654277896607221506128266713073002155239129204355927297038322408731582282078563551976852476832639797383638171763834507427198013546902897561400770397961512322012462518859857359299766032462668080257706811931958509306105053228988676391293260943992911186926531703573633138125918537512759297897774649681095142538832852320577824816695537802800070667462514570290845645508377139559324646705640498060927496577707068329143537477552766222731574496556431333211080714021694250973456329023465559572261344237490651115092370776582179782724534704367535669248060065974347631184069037208275599509985098018066905523520941383150628236892721207364395109533217391574203916194605326757491113707911156376522423692014879644228876096707268422461855565677478406950594143998262497990283718425366809597880446951690472885505974348979779311139557718822154296304624272429360468255511133730894507381904311918678786804575376008504431397532519577215505853981707793991056163897899655096150584401817874458449208707367189201576338389557131593969662046957707117385919206441663246610839013094477974966856615522970308589975339530568760688294236004258097000341335370821855660374418428309936641063846348901520531382692189089251138745939189417805443001851678112446147408932517078841903558556187442361483447007355153545105083454578412633501411668828557696012361675279310145858289172605386518328486167181183404624991722467079939284027291697365893369601668872200565629691145660152390016447148550519899411651212047419712425917132019815281880170117743541860048655078485436099423806113189929123829954772663234739517992664732216895614871608965197076045250718427533167695502967465053988611043588174728224106168112088029449464442343762314365759837681389077473860811033807542991216613298256506532624441833316235746804325520847073438700971636996664242059880173788231429210361875265649003397594231288848453564060475155728888125552650152682690706720165358423063268031319547637982732268499304659093685055282944596391217449134530737628086579794366783620628244695811986566529687726586358298279128748805950142252749597157380027037860524521265835569762081989922880805669625440821298348002479026603262390210901113514331835015941633111856280878143535054792569039518977110373990213363851305079765816537506598870893963879131708693660922434572854378870885053342458566649383372890508287813848066981688874487852929408259601485141999802729756679782537807035477258999403081148403061883386785043682325871337519976524952833032703887724735711767624011520034987737770472934110703959056994041367745154442918266046365518433459825606741007066300871187059883725125054048506233016460892565525328256550830797549481373037381302234965455888889798603070717890334756473154078780909701554453520989362433909015023550793017964962158492376724177831171999989301228604498893089312659724907043780877853965015266732838569223526155861153876892479654573334838610738654755283207794945883062980151470853525058741476731608850221893638256014399179903216555097930274719181865749490838231018403110490178463606504528661842183284475518756720449901977981376254095130150366420413810098044329114076672289019101907008942941014919511854558743711792707281377755982170534401964262558025801159626138600004980186307462822515563903051715134652149969493642353161908452519918275873302050790304171839507831381682775857814734025366255747084676572820549929775045985047538561661491320710648639955477498481617604821710106439083389184189894206655625000003922033962169104268949478613083905341536210779551758129542297104498329478510434388616933770649330603751380408969469284032841945677168463373421026062163846915422979454851865511463985133261791255896809460393039640310954197633065064706265577497615554422958524017257304095053700113425035683391063753923882867735429962001475692846111457053970814935486737247195023043284257183408455251637997995659325386148102731598821173088863440441295709546494582109453167188500558958800896471737568133565565399218663190760096114913071976145691602989703384841794903741005647433257977206369575297934023507484141330664691802461998284376013855344054393346987230252151021693995488824806628605844081871904527107250508833417729181548947616407970848880492984177618959521548341726019825877555033105015031801770899278436894307089613581063982313509582383836154750341285221289099415987411546838892521216915370643337214553545093780729422494285044885895884433906686394606063126994843233459521140601725610710594500827780901813729021968808067993771230688183225778496948048953207045593700613652225973335714397116449490518680028864096219527346712753895613271095827059278200220896182389002743731220412192558893894429769372602243565053841408744182809185227408143781150253297676140337557908194574113213113392305575533143944958290453749850128682296798143896587914878650588811432565477985228435780140040690611066546402338165125701720885046851641077357679581484987128581883559738400955851847585114906752018616680030228784265021489939872622534534590974527201508392696925527207477010642265412799163846793985938370669415043621935376325856414234050325852095372731828247461123339619760959607223976644052680211392916173251157099720846567825923978708834843836340814837002949641520455936555487017575510727214170753250758147977926481117869220437688886601524200958807026717593824071927439942915780310133236373590611610228754698287924220699249372080075812409295886232199726211852069726343264386174925419703860080703298479443938803828569184344679475964528438832439984988895616641429158910493239033787990674487884033439222707384223294410129712965354999001414892495387010231850102629102586326299079519086804425561738431500669421634451500203539716127640565541956772760503628143527674558949724829431985576241184144556111910030779965107752337559535285180754116816626062986106312361621590716997264212216726912635594978538617114035437469855984842439176142427077100964015141698957471876053761596240324379639130009889048159195828617872666315141706676103907373234904814773734904953399317206751653885863920126476129744907392156825809445169811561756898638447807622965452757459647711552684352236960349916474002934213259642165964124683345473887988173349831040359229286014612009546001325612452461976224846249524821395155299175832334074370721594186345860606254345622969633289572362169239007103211353919647294217350198475971838956564988227065806569791873932110772193563793177002221669408558477512451175225608619787758595056705036227904996357804445560303504028264470734120987847424718755380879965511430281988800645180946080528688732387362941989539407372444171161957742731505595546802236059983637967724005278222563588566562039413743394626337572691853483923884754966714990756746044266820474586452855510300603002204587791664178104376869930830301104980178457500777990048344429334204322802865486199963876488555104793560958465551119112801612216660461429656114796116550537024982442689254776077761080877544015600493815780155286717786076062534132352630453318567791569527334044390968900921490620270851385302980259496773232118395085414096209051582126068891902616312998144957822960061965645813246078817798154230674901679368334588207996293222862766506508678519858683356961098424127598594035552010805125583373713181917143863760952882741405327331865039590748760451388064139091392825042579566784000198199798240353067346560307458450757379762354039465632938134959661207464711427511032641927504301292385639939116256390517069282911698279254710029983092792883442687267126272728135155076916371555945453101738717547118206751098279616469064910427159009238382687655481576287425578043981500273248306203196426672065678992445868921578475134937469218911171601708119010707064811395968573250541869091789159079870027419023774792014428599399181131838590639726938635064793423306506288535712791861008252408866518447895417019769058846336703599918155606898788807153310766641175324922679101336338465971107360071600374666086676227942746656414837977122921227280498771155782061660086817434069506428156263418733593187221443154727073657114531794859171460536378320752385335472950084721883815850823075052675628415061393202257338316248386369239891501442270292709420109548076254291768895893272337787657666810258665003348680070057139588429223426439681114792665140983546807310210519091444888240520752008211421003612514200752975725492550676626702275104993076153028737261515436232965890885346362484737075519016565398970238274476975620577522436119945458452863039754843992549423499981105380372745686480964120939420732515997637277823005322886047808471410733431930530247420242384586102108581059425129064510139826575577569665348343356947602747338004569490219877831986145357650515473698541586430784371973533950281885624154375610606398190095933127670655082370375488940754980622737719334756029950205859639754528016516535963663724187098407693182717098930581375419366925410450361056964532194715047970420914100316772224134868080992234583483591993855920684323013212052239088751694968836401891750838852032550350998736636964816652953586998593130194671953888986670947431992486672471395175048321657735803032144511129091413313583674768309306788273947508518390118947662792910664909169943362156045030007553894690256303514780717297544087343238182724907258769668717769178203224176801046208838354142471802383689906551689702836539357400679642245151120332276428384330081093279917990537233446021288431613037564130746719814137410505493166445589787054573554637518768924207241952098392274601093951343233229849514686605324102751599437389096199053168985000460938412430230484372570658173797477574253821849860732362389444344976048693395552558468017739200262589659112983980527059528772087962070697264259256259182721413582413815671601909580304714154015722777869061141792650310550144502222606533112256055218295624668026068848415932146738346264588296808996323631480869704603307072749213968199955910167999528261698433974754067777254172657861658183822078874135023454029029854642881960246910408529755625941147855529527389708726007477735556491950852143813386643613559887313692394945931508188833829164610451760175889149218387665505856924949451962281791499712469753110256209939912464150206614592549742014214914047726437710089914665818314240669907394771853878881119501386743870495121437387914625369652445885807900973848442559569956314217457675780994516459045140323902573309301042625529367277402730288491752617311796316802618350336639211851599342042855178896503192065563889353657824704938324668401919910576363283115592389690549622433515319299416595068720078619712812872117031086763656928233627057399240185436487176787576129677662554658512476115889778964957263946721656891663459722652826122171717155989856597892107174312042529312584332697729527589018351929148342901632575021635712209481650866884013663640953410746224148960199529740938438003040723852478547796018539390269781343329811176755155687968568413264436903043824980547857916342838068422657860247065996546939793636278324473717089506550268988753947344561981455184618789073165208697680479563196749261232300587118264018105958558457844009127153421407024922117119511868776637116771271197184551964438796698192822079191627551087040443629110848266711848902669843398523175351910796703473870800720169760303621067936265976661377555026330268507104235962733338966592973408686177279956564795030257903329078501513098335406726053375011600201719825462238474745424244898710167221846080875535065386163756551977092902143712830808715539106138569681365120916339552409978400563877284701785784482979415445745855238775826153363891907290719267809021834802620630221169231751014827050317824925809993014821810268268963119429023606743509873977104269584642320249358405978956974816227293576268890964015738416726634281669082428825768187915245849384446522523341077710508653375986169536958564549707567812278179064002425013169355138862364290462715552441664839464785059754352064111387582515077720027477505976190965865834016120990251256711461769829526491038272401436444895260543484275213727769773363446519040988463421679020278230804979976837936643965665326624832540832601153243776229793405597670919039916651861279355583099767364879892935658375864124175845855950926343647879717175354167075534474783258238478811515380280182120998071875767710843504795336017308986159275293827293829177185269851707705153964984779213618888001478494173089500747892546347994770210407726306863861531143623907226633088346544926192615246644287270335729933526247948208081790456904956158110901732442056471744906451585403585861804057955949766353548206670783722315126832960399843901559071389462659849320106742063662734768954242513246668567505824542011403208510064018140812961404734263600673022041865334612251055312601217191679900941582214253502785919342527688001664009800912129388001875771330392719611837072582457795889744912139993126636263021888375076785628811116711016376632439738836508224180908918362707339685121625551452814948874989630576296139285096382089350991218974221488236948344000758781373528146739347166885998384984904127482195600051333369716880518683396281593966077513725691862525090353364522045947418789734654435617677512574084578132446584475883048732146350311359229860414658109431260153447023008092981329990555361216273167907842051317243676498281995039095049581911951882792288678818781635779426125026396490078072216221646889793132236047210219849887792867776126327099760994103745323190622818628059229918094676212313308771029840802910708439043285505717863106679599765197002867105770508422379308324157489144196908037099168307884545782742489043763442243391707008167512405261674033699493914489200073943925933574754641598222679739333057962531278267941955515206047403048762262329552810960183068462420775299997921205325404467864075726500109511339026163508084421955154325544648500441491103574140379396337866411342099262715005518740856202243528611241880147324290462296099881704177973903269428777489531427261204906341591150129298958404768848566572306550103357631997236273725120736921200680668251396268638050647331934863382511218273097633783411021379350973923102346859605041655657664467824586989939245578017158107180516281294175292867827946431473787973690186028488868016902849773201910152917221703684934995386493538890883792858358256708295737145059132150421264337233003580276989109266658319935615903544313609470572739738729386708614039305714539876909918875702041869414225361369939600200737000862714660128580031766186179555386821465991221055165284196817220197604169048993147201284784446936699792395673245338632156510870853507534906138736038177071468704850156662708586817769213854398593713551143997271705816080648187415477025369502219821536266628213498341252486363253968850121896388973241608564580079211634639914028941167842642200084933208141320652510446411848862137799359616226335462338530336491254630564142616922255088278058707614597419609352212989485166172805240916117519697434519254158006051931989711015083352786793109923049423784662143507825604477328909294928297635073142791954597923100586412721232210853366842844486710019415315518179497278816532364511932300212133540268109152952549555375423046227900415883906625126269507192961412221210261556668966986226663212492727841812933897219425348297330001287407652019559807117445538144266668000927627762714903247827941064230525496448585773685636955077541328779589352064118428068754066748870139141331813548610290518855352589564022284037629052202341538824354922977594861114771153536730202567355253334552490967990327194760748567134833292536231214460008063816405838746404474022404661231104910158694528138963916273404274324023204160495757188415772111347169888711107694603082232922499890247993485451548751466950090308749962029907877448090403717400870257040361791797503304913119447069317959303653293210054837361981827224376618541287301516842279075762277247577919985724692764277546494110387518942750504083682864654901342776519446942790116606120204296862772554462740349802165060948200050969006903112331735201542690530085904123171990762577895272055060053498004048089599248555586275632158772436579116088107947744884813425410062666199077673698993600177045906002420855906296393326881691561874859435919658614432350285101479476853186251942159976933709223361680209156373896707838278146650229118744101790501460464756348712057321366896599315043990850962505517315798239982116148553523512340419833564997063524879645054593851000258238391991066034039377187751670782378308110395502807687395130493499339443055674544850729755645562708199504925634385169969851654840079910896809000959237474392480081359323186826413831590730217555873646723591245429067897376875444180879655573494740052779393062830209726474788392969764066882478965822286165215786888374538894134552609240260068832893422616086293620348581665288081091903501453566454984095196292883820678273972040306207106176944397268757686061277424019739190797492751099895510683551142601134211785476363460339658832322996868022419574437129983958397959052111115865673462806136682337125554675191577648464619048945927094325215748219630095412304005451112756897461434402814094839205963777738755254975872809345020519790637871511047659783531042844178392830909147322538960998467444037237111487397991860658422675730320484589755923753543911055084970333368981601127287124094489834626354769610873292369366664940153336790710294461863261014348658051985075225002987223354032088977435126110476453369291109540954559197404369900878476288276326071951063815919578937008447685957718321826357478458706324599545510056119452338060632613249693048720116818461579759475359985311988608420845891012513086835284331579912843704807387309636927064561143188825144891574133779985191298620600730258317500068659616040586212212023340805660548162427035163227746505907192070931047673135787219331081207194542328127226889588287172155831493265557266863589935142846554188034969012070462727454033332276623885122791877992996951104601394098943864397201267315559538348212443207961665040283099534477671775765453548723964637313077989393191388102413477580670363268551311411210045601593247008433452683046559029780812621068033810461082045940944074749389935372842300573097464230708720635656381272379103783967404672458203289866649589206906776628055626725075262835719013401880982330190184703340214147864718684696121300962363888717081370164898453042987335183411961608047297488464297983531050260946097374169276669026991533571023256189418319322074444321611172573130788498801338556159549081028547215298059724037901447911603315405634479083506372471828413548181030014163596697028582725086868431653843785447330564243431685001740092645650183285290348679034530773402797892644232361202681468228374439042710633499465144110792148031252824753493246364053911740703346662860148550068972438675118476203052397785128786268940132592031014646165623552842930862679120040398418956442149115529254950808899265579572220812320601581993569551099627932509984622343604815838489950457258150742517589992742361828698063677752335101333216488964218599134418868235516533824637800664062727084789066077247008766610971873941239329880336003062661922494656523433755926780665995005369726984396653902762232139018114204907000856020216514240132222333156015884238257187101271456475043348630981481972725975304012025036697190262804044419265735250578270605385877227820329536675730464919940834863597209710344862233820143536375467923179617207003446875389340328035539530065547716631836125051998946460233770063934811721946965069336654840552160626842036797967898333312784980502779331017211793783654471549123176768769914381005082299923361843263777365039992848003206912909310876248137777420144035373301448325624439847804209850550402055678829885168571488604245986676837871863006272692428409805584089374492655733053019981617685187876481466195714659198472103823224623192298883743576124099129848218868565549450971454460714600694421904559250497580983931625649679225231543951172503407955597043409139208688067437251097286585999058499555747291149500122990137528181878601771630273789663126637238398103850959776114906990721801451175259426419050164124328676237928463528351098879728482650294722413691741239749097995886762556859598798109411763320993271827733821777199499864419154578399207613900660613470368726377264666602147902174123871799918702767853443404985247017377512889535391070281277703436634121417156456745364332128162256935103924743461621992151029877374977374194079106886006263082229540561792155277817886998080127300523085225461571311571349857445747439551529825065772769179191399281021664164505780519709739880474046922969915737192511413152266167794220536527614215416158797479708515153832923363365099171406347613098655832119737051853280895735831159049803359577098639206750323918655895679696137318748159466523006974814439754214018259732882196860816992719771384654327458020062772050440920777559592290131434818094048104407239354384433394758936836085390341222985964781181433233418562684907646521468094596776724326983646808629479949394159713572813447444852665671561645905187268155766835276973640253112876388400130250561250775932969041008332702060192186652402970800271905894807164165493769695922390049261368475499373294958059556049062607549319791191613574860047439907670610298075790721016888826525900210684249749707835944976657061562318983584674310725303433513475239975310176237366058220429146396092833828836630608310842484255858040162027911051285046076137138760692465036688043212356583184080900154442515708975447342719037062168526594120088292834934272184945298277924452233005393976739933074482043223673022102684296051554572783303494338676519522067762716818893208422747481608822468573811195711486403830624742567751922858059337736538905688808210255418265056229965601155350527310338207066397859207801474144834690834684362677199908437833278087374722492740883703446835022447873723399733738420660501114210902638566975583705292097902227757405099958797119994489314778904571196205206553845555614555623744763941563125307922582561935575984738775209010658089783191611854021366963195266667898318118328599274102246086714078421249653081350068899654544544534052087329409968603107886456121114251626144406958320932009528341615681247054168627183899086091107706152590839779918855314019130483348502589746697652827233554586158881192759788369706774857945547763754335701562267657712542138321471612806688586758275546475732910114701672191236582567369114441485180097169148670732815023773154942510932574189109671634342020840131082597232742180148547357936537442602487188650623370872255962175054960859907411262962129988190630351548070726562066956373541057464916676181299523078727727450860002973787440167355413138214076488226682382536555662707072192967420209216200219643982493262961906602873991059743657683600693390773959178152143770004193020185603639002131646164235489365077551326807641567056296859554566822867076317811401454024907168478108212280734330850391633643812864752325112095760055441159864815586581471742374486953362282675704016362235051576777594571379110516805674907240869468109759882478180400649573236685151809157856254420707949355987599067803785592962797275909465635009096273600450743576572634884114979687522307005112454562788667715528043546506568743729277515512656818475340501168000201227743307301671041442397838403803247322168579859579767269725083929013963834785135395015910961105388490313880061674597262793675303323837210281778116580015915066418313959042444403514379546673916942870300908406703366390654892509834878532440735487005823865278032137770302588660267999623917535738614336224921254063775564606204439783809221332313353060013157631958088293847983616946622944543155220336414376364635066966709523452317215024959625020252813034589493511597578326808971125230869004258455414292384508652196677654260882932996088385769376329692383356713175269419146051595295040481511163173407328771589248881698176725401113806072824376861935319547132223511711040916540982186897277840151852700532158746174645962296852855053364724826799871824833601300306823702637080911812320849938426886783493123301039620738189605354284631507881184804114531861926181108845054051648299075738320356378842959476569738553209916601714902456771183357151454996831038461070494524538573513913735576361879259165153095638170931364035083416345189826885981195465009021621280313099115834057229551088495356076754024737506882737642018997572703230364887874827573784273285850755842125276405047634642643708200169707593233764286263747379441106844729963394168077386051930622313272426593703736259948227479914025016468869885426181421839807633956916275270534351231227991405650774898518422458403990225361956661218993900437650322317472931071878751680330733458166903133691988400168008328716693286439463562193654485317770092483666736636901665831724167387315771275921819354961852387402681537535276808263738941616105529569800698204386061721723356252977759216781702245377213765850001449640776166569573337321709371981674390687346258753354286760966093828734831255314731368172774787993837437412425685706044531850416931409594467152801870875946337937988625208233330301889226641334479139090030115409897943831205921569190597721767860090556429366254851537677175013367844013621730407402602476332658014847400248660517767385313098420961658091005229894298376537496104130083553843919854139394585566992182184383763166765892711121855871130520820846014716776688528829368556512639514006346604389461346657200850435906440100292201474094841406456313653491220682136017482832932095134800805280044971236797840763718804477101314644418227155853019559956028951192613951068941031900034751568918000915494431786255157502147824558037573674868054529752892016834589913229223715684923034594957419902259231534133881753130892288599460018993853348502066449822759597677798747572552472268031692135487494113160883981189708896832958817016588202479719277399322277914817873105931976718555355359946869247982875904458766293165667018253188972257599826284232831176065464899893588461694673715122530889105450382888566670962778677197847457563260184841259648352874198254224788783188991054445862490432007605674698317791609936835816903247218264949614307254611297619601273933796288744542300753833427512322084453534614963286711816529706674699961239956299620122152133815396954324476722645134160948556952350088702147323607372401035929401335725583253643714922671824325859851666751109169398431846730881884334482142964757481198599257790191369979412278695135176035763529212287184339298699596192174354624542630024565955018730678940499796238260410089397028779188491781209123057809198003169023928550862507077961174487115726207043755681769308200146187796043101395467299079581388727623450084877662271264425384200170654412527750322908389438682057673654020032581437173592676692475343517262359073880825848932467907689486907671062315641113762053092323617787240978134538442986224714479582485736983636090193925373681442976869555929982924534986562008998063256380940557877685237470707289316631751102441791094062060385208421618765859201069676619558065578229859555489842955077830593994065132119435646407694308226463938502096064539232215705238004336387870650017427161843296283888292779077756701405705254165236601347001430738582167644592474854969196907728675852041076030927609692294146612702422105510202257722159271692411809615441857974627674841979060025858379505064585006620043190179471304453391319851492685779608450847331949408943444599443341625196829804551037514083665530573296864984064639752237955418914648474038037672561461562414809215569220946838837032528885260379886384371291598771583061994447590456371250700298634768471017502368338583891974351805304403021349141460220432432990412924480538274913914093773422905216113709713060604812159335149132009567544763281135238428603156233925420384338721526893818655354310451282549940661365525001574629342012771301677252690017139875787683870478483919728060950902347875392137555429519746331324171444243500120620213588494486756816864317743718877377997833518351886267088885497886253969333675819262864610313110879439078164629899542647992317498087626453651759020876761161984168261904127791271583145005644287143010744807966755364502764315381992383799594629195756985591543882403345986538647493765354358081335768272891727509186905224192757075639604760967081011773986870736734589662708720637493449553352325162044204722486379461345077990309071858729908544806517480293113080598263979996843522081601265395571750350359913593263150008032823327350190143078290038106331119703636897951537002694479035753287451523555654964931741345828638571124741683280354888946910663307107669093063637253460482077807572143439047602952870745311042201503810323859021779536422736956095833660267421280009852199472269261983125466655032460032501378706423096189023678263190548396571236924014417265743314020475313845789883188013592938240992594629610383081302594617519828500395991543059220028579410893745480397865108662637973988511407186186860507904665201268009634745519729106178120215542008838608705767907229696139656444218765409613614966654925963525831798400743429881908461491405177267111553802176723503067821843336520284158906349218047967804614926067134235790263201978832708886898588359915901406080717371381753546670823984070718109683974963562807227629431177982825836938974945394728803759304427464202277850155623489625430894635313096602074698108282501091014152481949377726544655285290187437204535218297329083322055386703448577925657596520381270156192330557529941796264802173645580453620837976870184754812873941330337011275359760882656611640895737057426422090846038402870092340401101535445866295803482320020784358212642972220428883533514005267275646017317461183432984432645898250348424244121810683386956121048505397196084178122269476982702366754191837069109262051841992619254232410082141853149985438532967522559683793458436291626989867425290182564992493804164509833283211565477394741675820394658676100438690928482634408358260517389537361171031899632567224957985029034895167294150360143822917967821625967878048966591256468664189723248526216550909397803503439233358888639091287548516212907821869045220095755774579251825449755351961328270721995649385697626557995986379431129371833653933309762589196022455458289277480264025492822477516771606898192587378881030311359160311929329753854087058018552981469556683373302669613647423240413014050813663500404120203942193003084861514113066098889727107282041791371127918067991886064886451512677575256410038929967985437420458396307287832193129750765935751672276831778769222674012458683418624960606691409606851554439643517109352301190998570847898585622330751875946984318997870337222483514590261651691989699258687505246445656032887650319074904956174623839286112671995231667978958341993746526429211339229562963652798170513125357039006523112313222385137450865418866583152482006772088220256056646217282867870567681257906056283646201910609193030934851330641774670186626912527971621031903643205644956882272937106594848822520624832069898132130869545800003415516983961621521637295313244410057463111117306136331095719280526202384203902278755341484866745874014917242732455587047977445746867605678630486894264910673885851155043014494846809247077721996414859482579455070324004129766380409213758318230870410113141103535172216612277132022460559825227200149048438257863766081699824916867290585167159150645910806914293115444553340542219956021328308646855587910372818568360576150052224493855355249923821191146231544275716175003559173677073572176755914343529823398880022252796352517151702154329530537016337950013113893950475847998647149931070147622580940898784010178526983826824072266134815805811590806204124083184660713099937121911970511636373153727029925757903896839911680329638997419762182739163734051790551902094793011657985406098492417528555488469016710649818595222215054790832026417016844631360909238106924620436882479164151426162971404074378589215116588463194424933319945431060971317521575110332983612353235790537188310741426645010425550705816364129299538229612334313426007727549397782337516646591032030121358839342498780707704137240512321240168194537266241194297613140699507005025187319626196445141863766838472966699807233030308413392205489344145705446562226818027877696646904771114843467470081124353345002908516191818199084279772644449931898922672235840974802996458619466911363225732812883072670937654058295637110687160685945537172513616068043024641514650656143339529740145753721607638212453212533731329954345698545938810142985382414209899333676470928123368016010014719737884039178147833709782190411520694448617631052551133096111562639528913868905339096451112778113548699672346752235291542895866518684218392931667570681316001283187439052869315543636543774722078826388008577639300882980968014000703913402977544457812016346324709635646930580167458686686284577096532144464162309019671795470003065329834617557500369966570706264738058598712446206692628430099114618677918822579257942851043241062309269060274602285144562701365638954404678931021219212075428334708572864922114465461168542053839368491930435865759179452673328625457021021336692314086093934916005963551999112213883429331907321209964808496133449994550498425523869222015445925046762956222023110349405542618115521989933915469869881040329736654710712944592897592651179460825524295933744676736592736641799308096613323256890701080983721163070084482491354452665869633286358470831925092565895154658732164007292348865542733943713330954440678310829707800866039223009779818178428575680452316412326870118603289066657523269950959590938722653337050391319282527918815934031903664756402431132260832553451502362216500371090521688135496391165199909152886618725747562291451272982889036120950572845926773247830650104467521143390102923355399748842939664223486689489146583172485946251726665318484276423043952561982522246961846171474507919066774101561711709813287758892956443090997543720307566337249564997403424037498639128018238127811660299595474705261274318694787485938011586440320794454060621360562201138566698025870393804480819507713630471020541783685021160645630260955915326264626962706438094422093607950776554411288843849703194332655392929693073377441601531282602398417616375423691267544399625991862174477841639006321969578290216114267046378291341193745302844263794121431024963737169149826989291320216121069142791616404854224105573524123510485861317837211197164163306745541352571637734745842699543395746299867468854098036151237063186858922271920572865579864514066869241921526473542746553962158645275803855733154812213582697470236282396271038881021458778937121936705065203576237901604621217550214973661077321880889408388619347966962336703721109373970630155256445897762943477502530498464435156910533730935042491098866956969302434092694849777894186326442222800156618068544497626493920612327343491042361052300975627566274467748266322150441227755134851136746382924472030942609701191563141577503809211427219315202025505203271402834130764281801486483808994597254390038726451669977082261114858478869080253188292507611753158309775287240894005472864928014642255597702172440556639888974044187462558154043447453115332616474707731855301005523538804702992464312981739880815710575568681045024479513455313403435658777964951604887024506312629096836671981877792599804737892656526754382614092331561060990364939632349517195894650712682590904804359305894474613611764763555873324859399666684817142699056917415837277549381500938989928977222324436855310611739654647986177522551625499740881676616440060189750592566831555170550882668549980954038559946955840756422236458664895576175376954554059683344251911520834392213301162473553332634817740006012578311612622452014812799514511730309150751683937745527005882604212854694140841475471960797290328464597286448012450925865814764707904644286353476651151545065496837949282631770916765185861406001281034458404736805801967884005789693546157092545975292396836359549961387515886207009275444298707434277930866592029116486891183141436579361815356167731062052497946495541329683835190046280181475639988399223289726649284483004124221322925257625078218284525074016585829615758071093476840526553255173187893515369087944629834597736341724577550832953961181668472986512711645080549374993291737042029460895776532796600619722937932631889630242057421697320958347273236723511279758587298180949282803099116142168814459335628470288365272789674179698925210077644463955940887007350719328292177986475185406385152485442027960622678065433984374023504336056005366878187485596942573048027616970095763631622692374848312947542454267310943403775993630457892746732335575943453722913989481048499431091751063966453976043461883302374096237065229605040403008188536930712861858383186512490530213632682543053900480672096719697979161543708300409588716011006229721909238236148995083531554847394110013336044929676402035513971275015481823399334779749985782753078642017192006558205898203590855486623381677597125598487778682606179145350862644242798499970999275893687271566415368730110602398361869200810271432038203286264580492967939736949565654997805048197737893978491017749018055294601380816038174953859003598980337670039916553314711009746727394040097018736116241207847160042192942580837062666713032861031844802030501277217825655873527698576802088925647362904985243923431356220722327900469818366118049244698548962255697818079124133109737440891350031933987245853044844191746579653367248591569817306506901947026941571917153550569679742235359308540293015227678696713813421137289244046113862883059315592422626754978469265472118701886021456083217733844482242992022756602405408217683886112374345380679027119986104234029887168598784838524010322798567638730027306854403499701951664932000337660270618055072560283905976047074232613202248350809415116009798462175089901702284684275927553796226018203827277769202735335337228296248090107044821123201174936987628568382670833383918039510234431548558363953371253490644586522257148463126210918427879976618595188640495864617751211962273962688792841803669998900219450127649890435208716038603243909474841567500256475315775572636399609947507121497431971762919586033179628955442508050707311461778596325537756918985398925735562786200986949332050147075541073742859538740004023253957833650065723017998009466285808264092914126763485781489094379548417077537433965522301664763274895612048020073085463680889827272712162826458646453399890233506026120670618192641164322439817211005901899604972909719906103261404189925559157498512290654564677026439320531862380896058355712114367828817608235453216462748934994304094506559701472317052131432039086685549724150098060943015675818175224265224721050697445747994446404921560845847240689233008647201234256035199008297650374131390691378057341225854934122747621890839769490574273895739075585552024045505112670320323862460397509806896259615870744188410545826111686218979825422648599904068465226271560826229626818328794616668870314388939361659599305401203715209140984413628338184158323269652618123776254925653850544786050715434012053156805676501260977508481009780478170203817587956373507490099965186801996586392390998768847474631672674530268091935728699049530905646205315792987525113566728113599187027537995586639096137397726291678433677855811217867982445205563123800950685329446470341927337310218624732276235472795791121763614151379800493217854294388080515284699643423653316782502045928330586621194880637288455953823365496510124030137795032944067093431982188028265015595424547389978021354516238416761848290835137979289580821128111829426872589215237919813065525542309606842252484218522404474204410797874884962414552288990647580310234652841807292585775082994313510355560073057922517383336041001237521105167346804211381552891200619985375391460225671602360173799774283373779632813253205286177216618369851909024296858378639452014395963668984499039268321902019646230125690323588313938334759129438657869394634501932408452827908399798810282355548647354537967203481915358794999901217349655392652530747527673873876355226432292184455754598540420583533722810129479002364297707950958623252658502920355237003359301860889669671053632285977445177785111553813534942752037257448305896007356096603152509594515052719451339032563432271307832382717160333737555634980095452825521681105974951881084004359327346006022532558117500198850784395325731216288547195317436553867654297063095594220182993553050257177714287056411229925738217471376199605126826280319862865186316266192488443563580165644155722689884432524401506139456223255122056904919591251779412323929477232621237559103167101030846399350590230112370257258375505376955291134471724947806512721737588350526844827988632646768018049748921622720609211124237958500581425724859685580351559929251810107271038539137940992996555297952498576246130958141386079017846304442111609345123371230033603408591632957051376839334520566351977939172333847123985449307371850799063393165659548828541006903535040229710161369567863230920536754394055660542705965668857505395060546219753767197334532728444806919450066781703936748807760229978000688651946646979109574366590476424105614941984742203928494403195583493317448907357848167811990631052251717400476118070401972400069449535484308677665931208681742631735487142534100918303115292349087975312950680627307036109600371170131391819082859758756214240018683660962937451208883746851501215561426769202584866308601965672690960392792495491832392955614056446951949492691784173818519510750609971650456421455845558659085229488300603291152668692202831606538675272062138382078947315991636121170772861069155747044405008840309999446592970487698137053835052454527854988605210009899154318954871572437277843664505468067480637633928772191053944840328942363974127114664052370231350832357734393928431663290340923779033987547952051803545465937826868664081290243151862034010704445870585503182702407556719323129564959566814561068427215880239846113666499786598365260357754418800530879858093244246055551603116528555375652334599542003606826957320165870607038818539323415275087009384653330678551071219982309233081356879595718143604109599973063967822215564506190869562779132927744236623918448736353880651436630435114091281762913073052819367500329551650743016506134756892003828994968484254030479801269392524143187636543197052215742456131375530869407683823908497673120742493618863939567326096959793246092131308742927454972113560886988991686287401481677391960207628652745989891207309199446860279783605863319600337197511108752680954310488756555272285677954406014767636084620836126163161969613672581744063946641005061665201527888328819927149623478954452705397017402477587168352257546447535582538404175464641802710661202022401945478811304019146109665431883681547477484290938109382739694195616475645749530281346004772777720879894734306091310654157940101572086379205238533456640185544161265502608502400146834221219646047902224169885490859360086073387211869823211017454364413988538892489324660400827403965263450953183022083820855297474035731719672978542584437226734092198494312252749950935303219589433939285987456303193701694049774703539447240963944779508567360038621414829591432057995762878393403291062455105440448636154774804066100705943574079922740374120892341901006026446331141358869596193475531975549841437859642105821504267320097573556648058776443958151175393727278863056125011484756306449140626386596314078873449977067340705325738062330944332408122705233868722801435751991257359714029981598702982352261859354551556478451101313324695383988093725562528760890026165015052480792699022346407668556410112763595107854377306023957582200711720933316185449736121108510449944493109643424185099474224446773471824100116511689584498592983164210356771877066412035127647324047650566856651470539504478797970478563660475129959264608234977870920060772149814470380698912685704447688083455876263777665778938638807459521122613703106754845819485661449157704102429600329007041777591913212945500514885871249660294136369863168390705108492053702134117483398098350394875833566096071238828671279848381360031385697600703323070306934645624513744480937943004788150604115176095070590176345797561915389996609147991480426178615888563031021540125334871681697239898150414739674304018793878476149852612758627876792085296373000694687634666892773112247393354907978155929377718363509216716667609499059419896265296940354125648456983749544867403032804142756474275295200027938087769582407875661117812364261585885392753411937838366591669182226179699679600019602661636202589517224573409023401375512480466046274746517973450743015871104723041513600308355428716706743747175164293433785183093987574700900412253182250073670505783554945970885621048324671342746590020988765879220482356324813647384698818918943985527606609288242640436777978239541759331453485687865062996307059137634021927640025118523204344164060722328679726901559267248303884820380969373311994172424016416958064534703949913066659304654154074703630322904280566909027706265622153063111308654266789870278420335664067820682367834425303663605183644466517354815581373983338855277575104599956103252941590110657820760802453486371309620450743952517567694170423601149067697541880903211158009062572070911952920731140575331076619447072462598224105048278408030066415315876345368095016134537900777869618314654549594338266048019070288437427966671394464981282297508086274207068697048852596622581851688042138321592860995943563803514085817843516333624179410325130695569982144745421843022622823098013290944671906112009768236156104682540264766734780169541700136710984644211414624890180816447916106132381998949023685096624000068525972304051125691708638857310852258384182267601768620899016961424714729609107619373114694696580578067238174047621769885805467870737129387931138698050078634366890542456470477109293337506161202589300871939500261692631877521947461857132575043755673934969512128404745109338471931740367465552589675392410025943575406011083752960255599572691380580741984917491793239785358992144520238399801411377893273285765595541978676291593804431555926667850661647362543356641770629842995931152458630346589946696901013966032347314744467514611268134145619669604977815209422741672086890149205571239122948763297585450860769558097834046826590805132784028231985897937750895159286919105062726012596668490218723300007341021868892072857153374873768915618050012738913794439531070563907458222515946661758025243882933608019376602476529645350067537532583031221749348790107871267177462500714935251192228523022149031651957399852848317537054656998352491394712301546902595372923291675894924452701838691816530369514837825297895356680539627388192545681841107491831925828739680756735965638639507545526812485771342177054455674057456619567121559264715466057899822957995039656880388968281178182768257597869701151587333808110707023961400207493299205709843356375904151927376366396522682859868601563193654322971971447482895281839739384305958861343752558810370292069051754326039443698758963512558287225145126674276774236477427527372859374698707413657209093786933460086836297778742639958734327462801606144516294536848887008517230047602814164193894745775892349662269179635074341751274754483092603987930972540920274555275067563126804756724113157775517895713584988045606751614906892264189870134448252981178632217783359081899293112745503830283648673252440334010587370345804616469120770934016441775750312874487161228735899836574922259128941255285581710925440199583121968896852533695942294875920955389568654585728513045418720658197926700287671332230455964359121166069424354447683205289052952259911191963984606269726112601136145339303261396005532826314134890006261406729011354086651719559835959452823436901228079287521029216446877251633562569258473301202822715965008189736737267371892339443030974642902479552398642114975351873730477865571223901462452538021059458147837795253549276287431780992303865778041096675714195668686551307645740492664386572706601163867423472832599124783915562620462395927847511559259164626220821994811449775363027425102258370775396527486514735153982469084217408584543052492198779706073942668293730687211897090899665806322028437474870209066410942348719516634122358315137707419886528799119373684844589060036162275978690075619884180759624366386846823309546810116929963673362823513180793006970116630934976909425578948102077854964057384831429871092246086464162539386359238416634558149045597981903854305593505654407712324459397840572078176250314119822039650400280000983153983556605419752989395542845779725212101703668360254613343910381697325774166009037443877013446655194224492323010520879721955898521295861147705953081928461615926832312365334255027859766390769750332346012252369585159476258203621861410296065976307980240236333073144843804174293925847039809484847600931750246780344344887670370977844851603234260430470755793152600886666588801417119121150612639259722593575135884696418578469864045089050213017226603463850090490831879832111588421038839172873797686961791273816396840438074477796122479853898199709305326243079270665017549555145439043489587101740085148971877731418161955877434721696262936650196151964730768104192472248064721803485805044725979559563945194710474095712814482214772060410644634583899819059411874540761509470866208036573295273690978707825772953861476351647989332222083637931570430619202164914002630639500351376291682678342200040454994677811651289970281192999155936991398583848805134807718957916637041894157482417727605509663013364003345819981481848758129350194690616118593797798649164725752570702130723504625062155847340240203367889531426190685875354780913363910919653310491636186277302032650740009897035982171106030246733711742601458581626032426296291944617990548890966604281269880651771297758596452045811127600080460963330460197115692935858120987841190923914652825081264570257283507490316554843295545589090213109111965831714867723811951594979603747652525258578759752690456877922715258408688181612425714722686605120046740863203596328755057250195975172025068524334687175420464476798829897265462109437360453969658879697824874657248747989976746187783256101961011451422159744860695109141286545899924441701827395012026809883999696485784508938800401949312483452559363444583668112280392642417733629560379984160472781108311724315110295544459865713792150512293330632506576156355441686791961770258432011503183920777603070048308819641553689334496910836081096932233721751293161066057513772124007105230695156466636940760476647936412310629510923153536215240744038679893881657958361344656454207721295166080900737833827876430778229678363629511973165225769837041468969182437567825303283075754101059855715261273600262724595616797409398900059574362916976320287614133311067381812198577757812963516698184630624093496802051905352299202660790445876263453348337315681158893928673834161566467021346125278925136151861021384288244716323466726709364350408628028268514510975544884576520317086402751488465133722580787544634555258868254175123380012658493306994312515919034664244950283040262308005774848445206778216419837172277257674780221652949074549093666142045310912864600050537697870120909037296724687423260464725235885791436560153771211650619619174664273189342599902509141614997926348856554715560014832344563250430751851122785076905139639559710451692547116404353389390076178362242200762726926850078706676011842559689701230364670788233967392407490647569028564649771097765648427327605128247003970962274370533485364362385286923352772343815296912121924218278428169255276660828350533578417254197042111701700987968892880157433427346929294415466502906505769734272036517719485732831459419344455489517474587498624440420725912803899041240804537102392604434632879915285115390339864828203090958463589601071779174009203816817003032824077461375635552517096911555820810953126176768240782743042732414416464837203294558199300149617631159649233887028367365322215953633628567542869945256116023077681177944332141122875361209632004707685446114106283366565840795852398972142996737487643299188412465075553616882427479425127093795222936204163791801276029628145074539788728921481038043497700757224444587488024347383694141513904096245457184055250688226728776169802749693066307110913465379004821922368924866196139081701882068268806357309306903463574137391401096693187081919935759588254523099734665877413059171693959017899007890698371742845139783145600272847952229150452570032557540961921423363212483152987338628462985462946235836412049521414630004233441833729633964270800509013783769338498639912904444016647472445120187527582577165582694835207121746397795608946059076837285538804746328120251574930587423760725738420931954540257683542887014123935200033340757622873151287633115436474087593881551554711707576310579142872789949744454472834947175669902308062710242503035607643596287036681424890829548444233084544930675167983390586997435558203907308072436587183854879547521689361955346264182352531446194441890887153422318757038932015803199589583836513441001012704384508521299263315292145777428021323945220825825540064911921411953917169023963164670810878180230031042286478220369635821656774563922155734651217581972255158370136646034949893964839386899168817053858948054347579029403973708662908175116981348785988182523827270722944899367743869452574231306295321025303039504974459676842828761951399881413092330418918155888263227126274684319270939746839875281695536757506932105873151543083140535765149831568812663305089511070108743840310203077665026250408656244521628404487189748193260224058530170512104289634762900952481545508716734716340431600924235344186436416918840895925053519037684582596392958360552069436491246115533794569145099433228904494026736695760818579432889875578252840810886125929711325744921822774099434621475680267149018980380209622992775400419247770690648265107494884299862965354393560505725328937908824933990240587980914052423617571015695356455994975822193511941913496277531981701422451857450490014958219503783756953283924452514560979858490137251596198873923457502343648016290532615083371849746605648821385796234508049802336355215549357267980902816939896840899952198033949749293957462257183806427173554351647837982407160645750036799536674582488768199652612911662943769168196341657753431437155328263084043635828566511950171985257718595779765450885194574846993173000951836124651675356296456577019059999908635353014259575389770888889278283099628084383432688718783957772565254149113987566420202119411767435456232384899657523577924033091631092471395005637617694133989033080339530100897237147379883296388529250237127906003066962951024814857855810795237475520000328223053621802377618145705476623219099113682566841483594167906761790778185006053413074695231848895483460910968239264138716760367548893523008811269151644941850576176797141131335458753894053120664997361232955045754770485340474695917315233157363539282219563329774827349175314485760836996961790981775952314587256143592627831955402336763247723024219676124953280135386649209841039255351548398670034627246700956814164390654742208395466452441036912762523631183093351386277946251228228867146165024509505269642900246033370081638623606896824548436782790608079235032978048513502156229015673100525238558447894680838566439765548754656148166637262036472553902161741269140133208196494673248254635670102541907756023789613679804178957002733866531649724564634938227628376743064483032219110279508311151550207099718045565579370735955663643424966382037514943559335813826889150613447178748471687219382683977479696524587802974432574697850003300364287889722314539684446537264579397596794829487075678109186708439403399455500262159737634934410770999106903660244544908197453229318131032142659979102946670792914151790484891560037370669653074370457176998745991659434225811655391076796549251366192687921043790347581807668867613225632687157456060640698625651687928832161196646410006895724399432407855361146838129492513546391108421998653861933745765636710626972145782145833823402422655468330356892265496501794470988529571828822580347890470451530322509437917096304840871930906479917070550466506996552248179308441983256923694627903445659530756334716147011372887390633856409472208159761384734822148957813835822750770319614525368241524459270182107049089734974306083445662558562427496061035614924456254433379875509284150045062745636966601122576715078084463431461466048492232861543139486343036095106483158097182987089712485670499015109188680346084683273248684961125301449826703211739593243435812538692478345684069116918594969802351289852178854309110086697664332739050908081778609709323011210780933771050178992226709372608660952743465441978922576879989116615220490843623862234589832852455402456401135342839562081783966178195156382932854654706241135195261539395652063320372256337261110789011465297516989739881706448529709986047593792613912318873365859215187656823222539688000694259567886499899831283898491238559376893757009308160902412776513711926133886257261082235222643850451478143990177542177923423428490767685626389211308753080422053484909780579393473966312168979872546318340361915892717657862893667086661433791155770377890391346893835571831690662893764970862283945925635910584297843439616991378248171470972245106931781875084992793086821877076201257849998153575884353524898511081041727323650724113241395870037348554021470864631125422052366694196765737970687751062998455429274945236167155414979547979227314365151766668585088551285548793506816417086832258541968915420752320023157319192899669025409583986442245717898884173242136228000914431592458065353291015114046665062236651583233076520236670746177321987233741244830647795508048260278194874242192282576082430942205092037704257186291119292808242327172514674815265210188448039447107245666212285985456945726626123065539074188346902452009712178929808328217539955764882612975744319301455069956207554340647644527506045859417865139456014417593172829733480920983290400619201674898000396556935190378493039950440866085340596652601054839098009629963471321841700684550248363358952465682714093429572250735444999428307913194609322153976006146615772137804839849678093404003208123891017567123403334747218411035987629055463302861452919141451643390165892356052632222211122922635942938708083140534446421232209118393896562350192124112786152861022742612327741971113909168830908324708254271822049071319551165149254017803899037378000581112761674077289238784590551679378602910007016636078407577220910961175006542702193959264671386258574530878413142209847002747385876844623152562227188273475430993859662836889945781777220138311140996965597646284493607566699420588265053038742159262235341949239413859900221403065874778307615061676983244929828219763694630178377796253171186695146264482513906635190389019993245766670248786114609048698638780153785634979306570499088742572072719467009177673339986845494724017644400459301701367115236557813947950038318835490642478511165485427879471132848421248725159879631596214382660432266781750397534113343518730329977266806183088321120534749118220813523942990110472048283542819411043093461916812039537259345258371465927947091388239049143443377950325092693274921201069053635326732778788664350326142921414863809681239308408363401807983826042151797545745875592231493198607963384279124885723073702329809602446509813449358450208875407833316918096697208919258480613463945658450464642645782610924203165256847227765728592321720201209253884462560479295435755956549569172303081783008698957125259622537594967717400448031432881447257011921077606455449127132179080726547286685626177498169079379075800685798885607912211173096181155817779732738562845825747491830311684242963114419682082362454166809273046091665134970902115895907600790942812725393848423346034315515606700236448795647703212308106772138256777063805853255531714962933796072881602403032947071810225872498046635190090128255047490647529019745547666390320118775205658902365942844482274354850739572505550464482997988772505770371693783043148444197277929739312223619168450105511836210792066887247818879290029969533071185295078249816690355529941934167509696150232121354836955570223502548985487785399778532965698457718859398823438852907446781366960573215412425792648380062295552667441195666930001035708007774200711852358416761791151196736603632939399418828836017178700533901626278684933074717472934136403291350345130588328689551988426117312923921655234071455347679839845475288915890740822839550670104798705074256164257812510685422669701980618895271611739347005328442604348555976338703241107234073417256579249104740850455066694166403658446545205704268369973733753354023028534566065837641337964709384172198566912809593752891796353331086427488121115185697000075063784457872863892505195552986381325047984694476600874277909423080337918462168949068079131146820952163371207820791939352400714157395799809484117833104231988042957525763640623473925415972750924300128474571645372347926417436324577076732999668194145883953785243470494568495192987071913274879739573306390778826621974806700958976844964906292571429914417464509951430923566674804023278588605967783609491663422082396039690944614632504136239192558456835353646811994394448886998831411447287343455325042459843505984375352147986040624509625817680900565022924498161989189771239802988339905973368646432039301698937545244410962734204577078493761299133085441261898907895482702067722747845544677235480932905307223843522165570770985523443187602682489626963710360877117643103208400025419293215450099987234674601150391331109481350052989904250263272345761102423276470369271983628158893064070429175240869161623290026618192117243664735126978184737096853464981417707013580073486309002666581463296607844670689063132094258121475980861729307450941077106698884850232006439611626794466097699553898243555787882057150062035608172104985078674546825683615925120468820020719043333590185246921336435000588051431861377507368241902857972509484132400771240607337641243041959733428775434158068791871362115028872641456101737482069138165931880716114825070198435602167744965211490702584323419723467006125434690195941959785769720450094517159773763094840367558387671739664213654207412387063490148365509174352952435078367978828787480196496864673427095988868396084687398843150691016595655100776141782931991749604616114451509975366292543208887750831769542561467070715038682163197052414502855182264373464352287155034029557541677607098104427721422541086027420767671933828186786582105964367340733715314887664192979200596435417897519487863901327817651093244661054796798395930310011144526795355975859319673063114018613896647150278221109706786919722406360543799056776877281573797166414767371689518669051789028307031558882182001243786703225141989565118409544655084188087431290007060946536985867468142918644699818119447650869920983768194602409414432823001125461488753745103984459162890038566862610683008986366496805507693079767982457846833645458341180548889562263207859423274794861399379442280433701283239663712627998916828158321555620665309576032036227171661277607416496310124917646894976532850993695135848047673656171057234080119184735666743210106061941573168221912186374006879280958262379307508203119312639952598784128664787006800869073973663263641926765952913390811797345800829230352460754576162155605409542853630245919159129837765416907602800548112318535590814030716677460597200963047357932374451500287882692519733969898059113184551432236258127689501566701639917826095288359281818988502175185579413699636518993398313213837355321441463712920647503202554523167762883078001474355911321984552375795520018869654919978704475159068120016377917989924958784563433091392694195727337081264135346363248210280984785818409540738031500686729540487749044334365260936460225455682736925211171372156246474785971646439708869581122466803809482301468620267464943451977992943252628207069580039577926563336070393625515572647931009668344310453018760000629424676386635391825736005015572008648074430159950561255163296094329384328080508093882335110672596879355225928659758471419173996493551337453694497210538285763978144185842667837394438718562638848309697590290832805032074955456159233432422156807607655692751197346970770392088838208117628654099838249817183892992174643723453540907013121002005644183631577344188186649026907628872548381652393718419549641982854176642199170374161466235763400110895436980221643506078065322817487632664334259881599550452730153516497637527854511498897246873442417813814086922431614643974974247183002411386387131043541963117335798237608371762573260424759571109122031572287704028945192248406789329710194020690458836500041899059827122186620878488664657381606690655828752017344632788371729758217438769072465739501885481698441512144234271833967093307441075863756692381731132934241689001030308549462613289200647570086188048202828918996006958107324339533227236749507932616970860285917607069211048769697694302317600946372977088014082277538129191595172507017612144072661482720882952853596833771583851914551038039212508257274845608728759280343213277074128209091262051779953667687540542282657460638302116973337123361666841832208879455768743653316456120941043434559954967049381701626802200680561613592334112703765567579265550322465474356002740961587292104353007908903305948831827683239653088653688379087851920215526868730078630145943906638060222104439237265810160150364100160092400215451837931388474916479857048627955596489857250647679050311088879273573967623098844690961257590080970997452750417776967428559513799705105181142697814703920626472161655136638406579230205771158401766384309380858431886787439667155354031155510106034552851906566061564833013957960823347058673818696295589057039529617654976109774414648109557062694351202024567892216959960283464564751563089569419457068974046446374421773424401713199298724704959369837781239989815361476475669161868261984455394549489512969598605877558482517357413641458148000853347108823389357259315294079713995367751769670700920381353342454193853382264987159056226833703530030039205170310008467828186435678857514264097348902136566156037589353420672322160092551312158818126032791677180562667863269200065512495543727861476389107535462523650530688809797851915531175655829112594595595365776389575183697101003765060845907561836222409164103191071813230082291540530403100323687647120214097475783046782952886834657717034799045850797786350179595808366919452667777653614258757431044232318784588846051418404904254964543952171660558682965965847778048368172114931682601482612421980747581993347624348695175797796749782331542424403389312431514907810289296953560469743502044203180128369664352304171096253276996281139947290611755224195936156695992059957356406320308028877953641629518727247087607967742257797879158922320880440133941280724117912689889374616831818722717902836647032695039639507876565358241805716874619515228340291804490336924091493163137973344725180940737611364910141785497316594384616716739163843231160915852228327054382650437812272147569915825703461062549800329896111042872962973164748375184252549869854752831124089582215898430929233123802334306905293117044629855752157152832910151193702630533200293148674390914557802987806207476401814802399573483203125939683796990323447769775898815102949085826970205619808266251791575455243581393139767938440068372537280751674108451784067521325536078958203930127010061474958640328632862893531686041770991835778979042413577270628408847139676490808855321109238257606304743060766776272989625426359383427742476267374679691704237531821312371443876146411617131727052403032398140495934903654436044287143965183912842356693268848994282327625877369399813995330124535453922094750141477605588445667648509352209284939521081259008154488333320491526828697474073981832474678614066804048886327693425272617586201039584676813054976600280255356635035191751651213047583357110577681837186961624779879026052251213259596727822405536168403112423639059390162113065502009207356980742663475733406134004348526212892739121323130502334481837434997070062265178191805880889670041082109723974862663119494506563838305087320243557812212091099026943432588962490464943053477717958040342276690592356643964514897267425222408607724629664637995909894460140489914619810890670202033268867649803313937234301827536966646068992025707597053138433415215300021456076229772699584352209546277739823875795265424084718228566171644140824926115181353275419104814536207166836219818914925317000731406119494343130519065332811992869155913811579199383035225331056724994173079142039210499069686556042849988708407964850560546022062237320473812841909852266219200521183434960162110150182194128433325443659264421552135052629657913279430068772729068669217889487512896015531932283190734247533884796451457837010078049714904014763075072077458901127786184750781322377327562218515340968111759261146960567000984887844036996765944648938192924160783784433435717653441247529723668555910291716314245946413637296675211745427614022820089028652453080412461387576815823292464710664268401296309138661376085985461397542949751498281157179124645430477777046155989737949622173013291494971606454137153695870230549711071641012900449436935789669799469514591250855646414838102179287411960075560930070687736569806682936230747322319040524280957998906238806288317570836590580554817441306907326728417905785127371484567379958200285345583213229219082152776715624059777905876533004731797161449748834621576709807264866151575244560640080615123274846081426402265475403475586465110660529034459887093151589745306320456934529818118400184520169244136139888575521961843210513579054151492282146735537247010258137194636200206045812640022978174296993377903050202035223337360337395323517263795444236877288397471410699001863003108593965097379316543647700761361975700890358452475062770545481073288597708339622948059314742395477685000090573593550613459213762771181701066795838471362070590380486038991512641121745074040649291203622348800318619649420419113406716753876353369812527245077958117284072896448455367670722226897809740823930831728900950209902574601890418663820127749504736686042271377530916259401580683516234242494022472106856085976783098863425938530948155757392148858427376891206664693550332617235464224716399149971071628075154880699196930724678846855126666374970919363631942041212056868086276183098928969310199733491144009178502665618753300861146437452102130404993639370409792138297910664440733165232940017051579596355346997289096985281120389956181435416972163698688920106549378586505916685589061400218016609050081054115214499881672331818971014279827709573386972841679862323551141983790918123364034637133671139474551483799296368369803699956088861182058487460575660728451185951021646239039123998127317972526505498433694265379579465436680042489099209658471132728278330212748543919411661804348209010469970085843517096616019808862119440835791484852551193870245780397357538442212880541317835512273749449252350486720352943001460473404790975055982271894779280846603543811780299024287371807339187250134236242406361470040905570845029648478449459575066754694198099337778022905196583639955461417072964045325914917646327094587522275299423112702729216662969820509909635225341812475664953657215841542962947699679196915004305661802439990193288396893377169064574947949342417327885889491865626013802588441644334778410979915981484933379605634353393953551225755911472650551870125208089422156521751239321049558312737209429593791988811361790671285903230941715941768002153843979786082878502734722264310409236336878899202083686764304935496298380481697963161369608204527531919042004728877023724680316441931681385748482016731495070092879514473970408384027423556212511311742915839541007661277528032979096334716016434360352745382561606460755651480132508038991307159119400953346785758130169392061553241242400037892442616885455533617737435013782700251759704130667986365362188824114059409762991159242390421515199168622583978855261444961116001541100874749464035930194064581314239535390459477678898146342024224119697112594676471577806415006844689088708535432912326422445850290795301238953406166092324559158584784314984760596213435471916447210839471966366072519063720646768624928301234840055438783546039395505584209026888980437409377656120081618303594093546658345100201935676059230796157532119171946689654629768358428123493634116102275069229109763831361732991875818336675706133860940206792483995481728476545351275768321814235990077299772409991733710922347215777287288099768538923171188036680154605602408717674074803056506197409734290925614659356753702912694899045302142421426097587100265313423977190198225957006845480078566700178187649955070639152703163476143157898964669269470889992648211968179546659684696896707196188773398967099198785838034308520196024510684320772673730454572795807536399306374614454686061171526620906640573526887650308422222510813645807886529660328667170948851856193378895564468044322090997655797971506079655022923919529849454521257554732259862937615535947139128781202282108636096845886707753819468650269804012563558950547487740013583452441684119944697769748339844641659190812658061390661589686581831436293541027929192842337732127435267751208919711726854699981297211837317950007737896152329755900180560740619264140420139348736843014773359304076490213622016893592649269585625404604657742025717255124344057189027279983424155669361237735090681793982024538884307046998510108230092180273506191439515583602658770312201449088112590898813059475332884786932990721196896625050819780097552679185147401366649776702794419387032266176727197309235075801538107961976488048066647786871892827280440272520827117176223220029290643256184130668821020994538963904619386525755813884524427477357493064608598592712431298599840004600258040551901813934753986847774132447975050720107479388921829925150125019425644418368670010698471274203573480018491663037482019703218961339578721663941533808604009012324078091593692226612895962838143995687950978420416833728954131195793708513403988936401176496338169880089297606395726132925298748033323977303655138791327386198916145781096771405758587712928176220270965967448936374318620017648040623879530009301950068349601509472785348607200910238515011712058281227521975125510660204261004862526800311960669071376538166289427645397457373975567972020506604300826731056821250048404583971271029554094704819067319495384473697793897140749289477275461686714656840351237509609120049590388168934888344782212399221797472841662576633300999985101349700955335018548412621801254215615857667511842906335232630317012138322625192317624523554086846426096038238643603270311485530054170002855213178821917598614352293697724434347202143600533296026897953844782111870992084429024299606349763154902060215821549370831959627655925787339232651140885597435816532337468315117070726290345763418685873369706120252266923121115447425125104953938592179298683878283173561427188074079496976599586911580127794591148143684022396677251175343269191130936858492165298752907766264871478245406028947353968738491431975437219458073627737375195075327126735698248807356352365044073453246445228900165580805211082525921529211444608238971537857609378075207183913598214507348744857651338227471956064228581790686479927709873793234308221029515147431192731960700790732548301339200859756474688219636641546868495478558857072497684002686657773181957216749583331445419976060206043135966883993847105529037511450363672483487066058697520225923801619254573330845415045015474288222677084957544077153317760494660561718309126391162680174431423829644654497251838834004529636324586584331147450483682204360004898511396416265489284272053393285205749421262041237674024502536953787960322340200279852771013658521909668520446908246982034269572373679613251680685643649831780610664517150724950129224374838472541046238794752033953903410350968957268900045279796329948957313638883683825498865299139353439898971446917590215248032217937926870639714295945571156112566475321937084309163169649738140713727151104702117627323086764176332996332416036126710313079958038178273813274470121047748947098514922714281269127532341355142946139408355122305708690066685882696110071121188287168652701093656443886787197927679776602913274867116272445110967900272368754347483725235978393856967226356164219149276994365633549770930731710163302161083914559910589594053910330839154797241796591575609859345412248817702125064854166910110332815985747907885419000453837836747321603151742596438167435383252314526067658097764300778337588995498054374746738285038024070524384810541756879902767567076034349812100154526932300946717231994200378301818066812425593976991593139948766575243915240171348046412059442152442837406259554844275471867817484822504435855505233761948542227974211601373937426113465183394529266587701629072577536826342832602219263272936982258107771162388598982949720967796297390040946068232766864403074126868879300315135298400226033572515508201227349168927482303243786829728839084374923550204633552725076971198266887483530951036445557758759861641933368080267561688631690028478842987134102323017872511857119888178138102634994644242745313069099384957222197878186370113166972622310470544237001306582744625074038928263384373675381271944019716746927032875285466505219636648798084995013662472055064704212937579826804724718753547576352297762367832938038444909912392491077651380073656971717953707411721938387995149036369306205208160797566999391593766532758988118258178274293217239109107508123276749291830889576064356535573828178303217389362820479507982810162338359991229560903909222595848991490773454159927468303174602232898445522657611863945097265981425930165376088999600176686693657639109459666430334654466503775681182561549848444356221738659793818015748496480301756325737272079413603308430773722896253013297161221112019083264539904925814261251543085549557906839545484024806582343479685624858189617463176216075481036386050776942196292599303929805792375756591400969282407967589451701425027108108894389067011502927307101079010131846996324488938140777129791761004084614922311840738760513924354628931666824078845895483531682483136494992074568840538984149653773341933164752491576429374549986149599892405396909678925401368454330154252338953390278495630934305047109225528059050948267128043626380604065861177807643448045380759525262437790112817133482705239438299596232154562444844599946186281523313564289194508457442445009915355346528564261859477261308014482546868515345597588300693341392562429796344627776725166110533181782419197848747538091370932559516918955882513248689922586607909936116514415166932399605061101855621136610592148143552090951983569759788691310285123125184550698103337746018990627949279009284641670350177245044847927681920094262941443219987517475508261236688438802433366823476955714551820037408167103145505492911838882831815685602932911896704508770448686564716439028845286179432074806700202516082914079651259423030723182421878772613322381318220986723081987122034019846035822977618955665004176623246214226451938166137814638945924087919461414486130573944245151628242916884781538041652704613902787093918409729965052046470587610914566168511598948569524819317828600716190028822569149676145723603308348654318269850856137674277906744544866398648366977151255902640719226810502646072008203400784718476093822770412054919108123689604951958050281497593585419652758118360855443684460177182853536564447955665755154373352553396703975313895763473022980208320600076518659988450695799026979090407911744465642924279897951672533347805094738419020170281646086236711822644183799687426647417311583930211344962254684066108291970176497822582532225891538027462333604119673957410501823194662986358165632857526915816386223654061754490033283945389644629508811223840497819643059404281727124326939318806166656176917425014513414379449686764467303391374167709563053169454539573734261983914207132541018735303627128147868601104057744398085297163832357373680659896296387913666983943671729165910457647169633992502826192533050634695158069568338732403340313396463187780656116606788703231149369859196957826203087148730757304657055854246205804610382427786843977041576091987136583143170793123638687229476490026836976477492976256485514170050232774516929099236818059164522041624260732995660357559841386305977337169513018727256349632489734110608006360074281118698520459225173682261162090038394547004936742499620877007476478947181143997678659085401003587290130990336477703525533677218908277823435566834551354179448031948290497288843974048882599413042052039738825325941229646663053270161462186658710565334665135742189780955113813794770383391789620659234922818533285452001081135266296415312452159266427115552993951597577069273286166569884203002132113002137649380097732346172401549824762878263747720558213866501619243894005945322352961982224346254943540519027538237255586842830445765034412052049506707912293520550266820101513442198480770202859984721878832358544409074101312739682437022773171755590947124034266451935114055486055488631961148418891270305200886036012481282413512868859666774218287719484632639854108313028473935872744967967094279614644445309381966337931100265557896293002123453954354031069740691335107262377672683085035241227210084251013266564078532042222222627389215391252967992553984246314728424041927691148582233279981707528301093283436917672396928290362135744954969958886229300108931349613980948930861499758804110138100065915356710996858619867528933201452539194861513713254034585152790455681706613713775206487180447738984602746868021237352547469238386046240985246624633977724363371635603695991391251896006411715810680191080202055992131697242928643897176280721267208294528893246573426590835279472130167692070924564270771008876909508234265467705105344897694698224867790849635076166426887135642645326601890626922883384052365400845809488041984006684293450947451511854293119972414775038020063597807028707770279819995799061585789016110761841544619143221330435323750447845583787280796534298947598121162708210829858286342561041102747458827689333987320099615661858465358727319975156658829594663723546028151955561094753850294509175317862574597841037214629102220244204550694326087504083145968916938448362485633330928097338252577993127139566502772829525101617355621985657705708294967712758666640955788122073191213322005148977949769342685755772645376093560839653583939807778250622516536980245525894908960290970793534756228350024590663297151768429540586113941625333123869344981752769357962060759836666417811728388030732404064949070853126032722934821522806860256110609325877393867300792237609685950344253977764751338314610993917751578559181766787309548157650108357298688782053823448493185757419049409783050959876031771873464385031103455777563588319585437609990364453194240125427292335252106157339244600103942010312604638273376359856896477239112858661899685761743396906343877491713262879101885910275857385876367667845757681023571596617113835430407060332469594935646142491586304572529019494750048450485901036989049353775071251451699939315975609546283052315455541781785850347480092320838957741263431838179740321745878711128239796292602283760497951282156893896619312136361909363165236369247405918687966565971292212158442183496691508979634036276705523573507275071575378710403854825231904796819386151169649777821688606674705809839711849508361479738584626398582715323496357915865263614385155314094735361931195188913335707603916482803953572522925469531481933834518703485882854018287568888037885239920495716955622387803539057770638553328979732745929206951931607090394456802495330180365318555325371996665716968405612897595173132135076240333753335767087774506021693909169115421224627996977229100453970132289363548361926732798695188198860576423755661142413505274802983479656083108773070144511737157747466244420965900576467205116438564994368302975761185031548651267406991053071226699317972403556701779610586925476576295418854726599814057551285851948035305715444247753133804049402869098197999330872873491192005576021280327597276690086734301452528128654150469186199331419973849176752495259617763918690768253990570821068492917652438065675698158857281048702297171928857754464723652309350273761550846297083443200679041609280417361764637386206580633855647066354412476389850696170487814924302268047666845049782423710931011473186837839287251235210503073856090479736226998693405601693245845330976418059649311880710251598186847797178731459552561699132425773183782190236909111165973024760263816579585520184891511736509186645757120729580234640169030306786703174821999516052725120112548777703192267435483274115124065916424622497980855003879097048069919732803564749887356800802988241568742401569673884575226034767668901517691068649012765558124490018913911245478774852215522721150447235350390634395447945935221094817301097965224616748454031037507692435117624632870479556282051238637639266383497169194727273116952191176828213557647355700970730161487944831806042222509428264372883653969934945229702282840863613110360876828523223804505256918373876660612410110334163918656074252311685601626187618779210238641668010384592825238237741616205855879090970613863157630065995504758123594452982221063816171012232251309641536304995381051970666138892268493652565812631539785652251487932955585869705820841950469432058897827859882018156239886868639091873607425677982578712764252064724170829828049919770200466075851174773637707187982604456692594631322863981057165110659249518361800693870699897890487537604247469566569107087174198472865140041557079403863689751767205156334826549105831898645368716808600546361378497157373210661773916378661572690359722672029166250346373526856231596434811194042262079005307835271223068547428525224329484175823086190111992866718110135423146103764767716034994786413081939672201898394499255295475076806835376355641026486974328182800160957257369458533780482745161229530671235652409728000697152304294390155837853961433258383294055074861561607104129833555881503685817831474006783957692004659828018141377600602011982096838835012520886717318027150699113709632222108456756645774882715332204284916346728373309759789101109343515247083715360835950806551138549740869609722851466562236023959847924856566616722513313214515029200942931837132913235648719928841514238277718502682413520672103383297127717196131226597200313415408012670608675087219952879574604553445444759934690600444266585849609380870493645326917971255423336005136607950553499361354834455175524000685112148687647619800847794011530810848711460542348812043165019794335226084060268015301328445352647020238318301577126185676459218708311514429863228245384594048429745833650443734065687081747135686525784780346860395009578397788906125116058725172570278668728773401996245642115596668964938368301510783068301564384358515852791160551616752168930266647355940455585743218946343197878898719711311828336337527661487226377495411617192257994369387845178848733309791400061876071020506796603304016942203039381288928929522735165999010693834389648510969911015447276806196542968784241480311536220946792724269824108944290947423462195133467486127199708597553940249962111761879872334151126674286814377030461343953903446905264313017877646642139669908660415525312325376706018904137905487029636266001885863731697416227861931446551373437832230115320042094937619888884878652570849365815709688135219876097133385084079322641614055134319153346975987731371841992748684571161465543188682995027709037971240395890080651492789404944692239270425209624804434720997326272870761607849735894552985333920268786018426916351574768832780395063599191049502538474023870648051258671558270684180666039994288674674742385552478247581983509237715209935293146437261753163577338890003059529563917525817440546818209999743896280414957210937607169430961308379015076083620076309175262708837923533775256561141936343624318921765215702273323815197426710697944785053010164743853237326854491062279154301253008930442366584254482911188179729009833782976300011382713440839702982960523136633059088742308529072769756943037222266254054192895212253481325890504493452114023143455191664840893274341817611133142772176698356977324947302250165529039859665807048688112317856330646645213895849909353467072353741877857647990570771811588214517940823781402334803619742760162396679639280973117430412992075550579429603816430338425233794764257601873926615075899383337719499156192540514695225757779973646897466074494019443894351692789169144236183640439973085027228295769599926284977509500770412623143956582082570425755828484543744505676479225182217208032604378690669755297556134323411130643287898330833871352546775564271638805819041919988610654867543762114605949850359325792329992035327740799648087106088958349418323616245814959263541654915650018014371104017751863901447118970192128789125402311511581094899493932815160531257277724700213364212917363355489493610244465090921055897659604352042981221252937029211253172121524094994801684433309554655299962086268400327402439639534370320636632331413380910190949355769156903791767940733416697600898088259363987374219508420072635620948844579461967895227085087270375628314304561832838787322164768527410491212980977675046703053943966709546239823724811452587301982358563319453795890340616033014332712545816749032897833446838668019795208822072638713978728954670100446895676482623821009427804400681514897836950479375701804929506056726856267270952169306914555466841197374970748440508280731725354112030129136144831264342414660575076121756880536564424454750513959151738800656937581126443621116201462086369519394959370335839539410634936351255763127279833676471692533982499914837700768273331545004388671553412875690272859834833177932048594524881692618687133771073059910381782415308648371173646625759696626306481888129459553373188659641943030436282834423044662551362515086214348456274760358792798387894091213967267139497138244747547693484572755769445179555478613301651667085577975217315200254394556583105308447972616972766001944967491969801153265667881402954330968665795857884083682889391186372092039164283558267143441675243885628845867197160069349304226992548362306674350745403438563523157930650066350654529072365593566870063905825445341352706055126262684972212187995654849640367683851120197450780892076820182066830044281703332324673049508967654726197960335985533103829208542113056869573471792879531668687471489134827709755035652193549063186639373623511211146113606422109784177435892345015370995701431482710712703741872915693395649962968501747015087302409379070141383051046674104186405256243028072652722120399747067818360548227742572162920510473902477246125945087210739807564469399203968768771688590823525049292267453545450005744143495402390679169829591798814448889769020565838029936912319132993146849957601842332345792092703916932919604545505025904057828041071510358626895992590673499748444547504429043117759268011352100763381345323590490185830572070730945751087354346713728284157410022167442611648465102014918058672949179614425524313368847384518036615350042199436380091947660309904414736931700591490625257984321287300038225360569986866669191288079854956128140630932187678294079313045872796660581361491758100959415120904852968316381176602050952188449808122538090599537408269595887636643270140458390061064574614954918613279486082580671548567853813267538594964046125767032956584576111164682654125884086585096449367884417604197750281122183047340028571050405743048378784619951082763459117190066680453533941696831198678021008523881261326270164620470665036087461485907607349223355395301233488432712091481828673991236043236906589335502375971808829854351936078390463575975259301685002203280101370706548828146228378065022428338254889825997458525461445649885774849411868114081833325663545547582277598802748007429674544580932259821192181810628585337539066062963030887554874972042709314685183601026426931978287104236161093077022910213321373994156413042772221812886367506312546681497333740389021143819736586345799075605398550432633873604203929496828296691227820676176351013951232735300275752348797113955783675691148767146795063393184517670742498607923671460223462904429333518657730400226712632053097593903207898920053230185902603672618592470188750858917327120989137493959533982107639416906240633415601922257612660410844131142999111876549647848073101768831440273753763179889572051879411537785936934114821099871620294185377849552762604967457992460373362451314966066248935713094743800721121342685660703969454866678878944946776676385780862688584848452084869422961093030390383615641029112711051485241672271374302766483018641607305080492927689034924782756225861028944999135937964393415683793983293230994015058249864790334559336527673905946846093138604501852480294704036133503787176499901828652835844529865712390372483410558865692246301976080254110131816715715823148880672928721612183027864423580848144024428598027098080080610224717420955353336270267079997445993529851678881517098841383581449035078279036661180254395565408957163199913379175967930755322996226430689149267855750410704422914287463362106736453494817365931231555375535683989871376146274079583409912501716526506733866275365835164516798938612066006313023899934027563456650033428781515524039708526974312670788708560754740579733867535460205560132626322173890878807623944784777635913669535058333294731700331990295061594215816766843430758275001929742603321110048197372629763507655471279370597541545956692455898984929698570909547259006582920691527293678364673064286262357607536648382523009138317999754031415441900820930882344911308554070818857353393117886290064708020456516024194036202063281159290786323788873359351449559701718464459819174640837133612812467635209539077118233948329894997312340907057521531725754383209703229890180779183184708787614016113115143752801782480817841915225356215831020932350524904207663226904159710196418414150566091475809614721833941678462716506952833055166510924425680220351222200730745333148641296471758301434037046997518240453258995655248263388496697534155270835979884368036296329553080663077822760863464919607452736117740610174343744496477360453398493745529252623957995327291144186137594126063453029382912036038754650911048342556408415250099070361170889072600362711255897228955564609930059652815100021419432760724701078611024922864906963405743128339767021433695747086813345889087852104177757673587086888084868913170361816106826221499723398918111355129026019508305702654040250209464078048100222041915989553558186460506168027894145877879863565665677271672081321573232438134299090611078970968676956061831417638370027762664127391834645233868493554005117708562563813496129540014335536195809932120072509055596397071288389268581930948177577071827946614045515505300080150458776901237993338847746427862350951932361032939528609810273171480917395709030079045145527535718876074559508038560213503810054507063052411703401986303905114525413143490993592026800890985067393998494980883926101046535580250077867599415298503649200334811450229414680934086395194638290900548114100042535991323913846026655018561276637368372259947807268047208196330725447649051306150607087494913395733630235006936074609066545837367278571360452717010269576346325905431580072231035980351554085572035729379246361384766225637501964589466251341662552969666531721544857083375168880143603243965684384624444230019256938912048701690902387987844100892978976651445574334604653835447586296459576304077808531233093131578345255628757174944134595525004726485038342489321302341952529509531150553664937580224964902972964211066488546334606420604607772018047019682091576582997992788766011335564375363644171263841705468121345177678997288701197403190031215543616605855950078136177505489804954559549085017604541071223050423695726137188216315352153303319085645808774545699005165230744262650365840347183069000412372443980366459230169010014406785689261583486924978969880261340988528963839817188785984538591168733754933462822839447540552141874459674974008519181279785145896272624854817725691468258754345609084361463563736492955834409328170046107635362943881139304588661546002844114215878108156323114453212121728013568422534917031398022107436016717162518227177183046454522286384590425267687751696625666399874024762997821928110475131259077331835854002757156921669413153171800130166222566028137160225962008563783037195060176527440916612648322667038369019525830040109262820339151379316022893785345000031556026159723205652342775096335411454354067630137019454590782723370342900106554276263794228535850909941838488774035542150974575632081581540935942541555826353556922298492910364689904103562290349425443435284007920786604160440316100781809878778926705417659132377664697675571929450507493488314567530453547364712201307565771168471975982198263296169783783673063307139373435613111732765147051912442845897440167872375112811289550534135133852736870232742971978780938784454908849189334631696543619125058436160355890437814669375073161627696048781432756517762303186326835583282626260526819286030611248482600009965289348856626917687101779231264361942986410089822159024577633088133300734088930297901540246000404680693850163211148584202541227122023043799145509249107619676312812250063644044877229631095060899588230903976400733111119902929829342598760069262568435466589115799523565369092685372834090928965442503578054080386559993047156486999647388994953711943517405996385871955615544516974126927863789291743485875137397372016783574440720879939652121870782259419013600551891959340993645035673060745081017306471367525031870933270289888939288418840188683190709700823926551632103263878164669882121013321011751570787090230237123751004595972344514917965751145395148807385344885647234624328688110549420804521381007114736959157327303373483072590566982694386038480260550256530181422920124256256021708661741997627583913972532330716089548023024442319551931032172046702247744437808811169355359570711673426606476652324538817458656891475251318985671380460150322472532049967459407339479782572280325497306419834203698868888030976829366620251026060243105428401695975029416157739574474948265455738721750971052975512945871941781698616572190129887589674571586590189124846444707079988864816577350131016027485303305916399914702253174335596385426379793736409261406765497658524242053119187931666247709677916258994212861428110994788041870154461219344410016619009198107818807418519865707037677185158486137360299058975455707763101368814186738274935576301544514083106787440075030901782887090527719861777753625323809587875728767864308580360652229567889714763152121001016938261608977612985663328109437700227763144854617616204048126062395958136860032587637415669472520343017641157566731554734824085969379476736175101134813417236205705050991327251308610614869143638622729850621230728478505732272807544927920476106382355337211434243089542584292261962426816048722010584075425318251541632136354056079977859948335182401084816691328869736107801080143565814167081701889029237162718638976594561093202050375686857090608845113783129209786737398545559627088742887793460937998000858783099452151707704614827619036295974261177364871339913946898440126806891735431054247831430903381530276623540063090296381134407741348194501494608940545572553039582464011976048659895179556286626205688496303470434258994602266533540872560822016163372798963771615291578151011776880867837995172098113626731251327426058910971088973571271882311002422692295210938604127585705855728043038269491493151293022707245717484568854459349914200197637222962535435481521889991200567780934393647355318029661949648869399004033745577928335344529319069961424010057447839166526424597682787144213166066797862800844320606191145941453440137774016340158334430918444592190337925461083536068808272010691930589708649867949280806860841944648034656267811147906525744225170100523292696935587438795891458367630994846063032984574151822474899593446196455006678845956380843454398434036877921130776042992641751809076311283007536068508247801190172363945563051008238017890351902095268817040968006567820911666295064934248017022085606654319887909715337276878406166232517435077334377312365446828967007295619999890857142638387170273198787101419658728856464355127936464080482809024978783313222923215039534194513440326057248553497960756179685920997734780028824494120130008816746921949643997730839875988193083522715825838122644853483687811613193359350999837630554154328616972964651104959165598207044373633350661028310426185455196072038517284436709946883909038399662988355012096537059447220531247035867787820752218090105834327413572606493360591685276178548834220345294355916040960276403413672849650947353266445365386078394751546354083708854425926579449399567868735468300415197455958557393874516787759674297597714116606697158587484659249016450363401514869779656514780234641942011692720953165094925265684450548643747938899800308671930045384353775754048378406956238048012202595888297210631844492036146934711459951112072141797687236295535258761516294503603794322645589359359970039208146683165634429961291724864206203249619149918001451708551186637030780258182204635397527959828512584146999506538492687243187129040259208948912470270712932359148774248694407264785875918770503318724268421089806107462320113532776569898689901422529486865905399788110327893948782377890847800800991516337750519727383538949861322053180200002331932691051527256280456033159643554609136833388236753704550459731303270319170499579599939491170403699483896528422905621943389439627667713280633494392741627937944343715188264490152349515915709797430747110080373880657157141937209175771481917510077637341750009718194624737356723396047721955546015698684414558572747592936130090909118324537129592093915107484735421149502432012263251071017929892946318503075936691228565012672131985599903953545055884959403567795079304494186862520504338098885902445564051796950987546995602247649942683427631287137712840911908972066926629308233861458175236881454240831559600160699736434527618663549767851569867012100829772089069077743999355393105842290046484673777665957684125795371987468710687171988202522701570342961641048672927072648454347269464834223463514282491073232029775606170400942928455387336347219576813145247707081419546174353410637603933902764472426387773028508074576267797961335722002002587910578217328634325397674223395062510643348986349614864286019621582571897606418690559557754040905709084668302392929656454823642665375832096825534486756184228002487334000643355830726913883598681548434460473309534764182800267625671883754553290406229790047268806025172853756536462310647787116955791668046089890768989052899732349527532694937967916464094984020005831531163997737569243399997571053906260037102176199387258534296060752731954055691794887350198834871676760687326388565675899200745548600304717209019132427235537326599040297222224524649239856235548840502176234550260749144199697416216597687323685450180366574882471542904802017116697263409739736474709441677367238228598261914348641941190438776592053098499559683289727162847259071100432390248220758482705271328161455698724764082349104707383047604780282197709072485929305215575331439091211976647647101107517157067785331942508240652925958814760460076384202742097661625347264158418981464324816974497239962865653384064117782558532664653393694011931832703914734548159041852212787751997446894735855281644700359661363906734659607559013543573694977812336947757706385822864957627365847278498179994046465153157330831301618491141825489791957748097310835605420814523522813388301881913657562922212047137440582225011528997446730820286828193843955898345503178357818418646134282747481063758337579825091177562151596413760342174327117488358131902577768409738758971436151197566817205014673403764505441120506787802120979680211862623771329591106506203772904184477199280008102816720192189723688318353296930538055525333375993616873125315235768849162667428486421228300741668308212378983352470695484173724868567436052298453787232428660564879610932057575228632187864675713538844363906436044138935987817959059814075349222367369949659954487562677438014814028170931844640501054905593932566422093889426030354599339427175221666567175744944820512906837287899848775862293638033795999929535286997201705037742221528528894127326910867434195747322853209150360256211799879130454461103672300906081177203619689589700660033385513774425824058519199746464434380582632546539687919793743866858248009559649894127663443539776615356493851178212470022550872208352194316278653829806809784810218707701304162860064241443656255392243066012280421713338484319382026247660386121765723903840946995578588927589159023840793400617656743628132330792880077331903423719205115564318854732429354918327311400465639658260792801655573880680555651678588723001442376433784157656837953602078144238249344794803790688315741641606758576966625098470178552032859343002668941743586691333353986202135917717304765215979357698344378113984043975447405040350622333380393213222398331999565582919821943275372103666853139951369362368797648906825211051168418779439790369897599676392726284706701596787371338690393627561622789749525397613989260621981787789548412109593949512003804448476053508270494747770718981814766380347886501054679682402284508668811169310916859829560382799222051733451504428570013711295696549980266133723674287921511051100456609198334345825385731520484430746137641654470173564898058441525682179925149777137394965611714905101509190239251125322500313720091158281685175083523099433579012493039354505175840436077358329038848410225522552799674573668314739630039260299440895031228270032437679591688592597058228000739053065530145595185471637188632208383437225397317633409039717788739330199494229259093615175241422974910679573746566292422141409398669596520938444193863630615079974457185143626133201327438365929284119166551917767961514432668512486014070410049542622472824277605997009073323259498098343762210037824187642568530355157260858452411910832000310753253141053131326339288531604541830246518914407980044917622213944261380887732771794493598237192899057549424574099202006964153315317235372737408312952961596675694813989642283877856643412463134174359263388378611350186084526053288958184404944297432121266966541502284160159591214927101389951631765631433111353652736142607780889930443925836712005531497775968239177737359184861340506022715713387443438499250892610376853696984634439557440223713841530734534312101193105823198614472797976790456086732315540120038349883969549813272816295030360981809016983358570230899714224906764313787144374614095246376815568889159938724400024124203632373610189662608138832982584646590765119598796341114381730406091715893641555207508740523836926017140922392374272022681643776630532510002815221059949724830863739295900807262045451636997345170271726963236482611488811926885225536801632182845964876243227355079465778949817771358122623293758356925659939365735623140097954295878752470749832115653938642726017936652586091996647994376695658931057504446937868991797322274216236444058660975354680664548269167927958868657064817161299918554491203482783263577410473264071294728749544632584712796038799415330569549234567573477457830562481159336430793018595079306441466289760594952473959962145588280569732597717440105096911514101136333174521161118903054251660469626143926890822176579898771204706296429894825465045037946973367721006694957902742409892580959900986679375091092769684593146835453319713290667347044709165093647722324370217847051242184258222702583203392519420428835909156174144868432619771737414539229122678807817888895110164289472983228130003296362497229870610028637395472685193772373428783669236099330382224103441330523135072517389878158956777110227975676394791187075953953926494294996691935875307512214978037954222102346130987370498682291395733925019680037582597471353676529007563492812299289040298692244242330332911687578061428739050685456493288120920164428428138559064090055709962108062799362645015951073705536009479089627009397435200578282360761414804411640382979208655941489355248209400616278746923164623838723030785507714559561537836212666589799189176742098595603283314204802773620613781316406001432333080746873508464125263242669172736750856825320696003267700727666175891862097861217989329382945082251252875464094920903263322640560875166586086575359830744375882870038380487637925742307705673805069818979181545021306773372199023640991854655417210258165022769345654747043538807948114288107434945437370100257157857070169919789060558255197049152906752617045227305048879188767895453943607884052075642187020144619888167951663558113436188919430318229488477974141540850762440697569259412390124037536307488446580340577710687484999004067725022009423806759669864249377006166501290398869936396443533028824026914672085817279519991151468416141268329142389695278297406733618958002976273924442452259196416217337330696598131389774304739334724969394667038969084441120788465429684995491148102001705751285601861532989283560732159794391715035259943093921482325138720491842240730817191884703979403597615919901382447833628500812286794061293733865834572536884203818080176136441351570864501243659583893099742687262577032413518855257195096678501545760775402093171742152187871223659349420888242506823298275354245954496842720114596298339985835682141296222933798161854792733450394658737217152783971688161310145149830867020094682896770761154949490543493535886243611723429279200718861016565411025507202821815984143526348180170038195866282444811957860158962420372001284922782421938843243976416699171230146519240710293274297638801074989542597911030956879718617179169597114962863306685732624091128101285474593346954559007674760718569253944846356556362527115042025593341252346789964376556852143868173383389112672900654592927086712317711918463023248192445416139901897112937739889375583888747715671482525941317701472726960526572026282686741673935394264443035316410475344964664112495482716875828813031251592763512327425392550091216406406203643317075104272711362429868966321969284535506536278245360275701198037068905034621630167852676433370412324099883003704904351136966256463991908894632915997766631130856292641801947190048498144011053874432915775272538439619912608758179994302699903723108076504568137074236675437914786504993668006043945018859217801035198329845743467794542316345818929136087049931146718813829851618606553802957805701178287546957677378999181159848960328147249973493299439476651264505291130729018158115075412434177320944697236666853507670761013333183158346900673776197034259524838401731442423627418726172881423192485617359223434027277193003344504305749035229307786053582894488162634003900476063398140915073356715216006840402619893709337797900334434922640919961473998330368513116100056081266914304954142717062600152657054800558548977300967374619682215807829830599397290897846654398489330157234010904388603772547729646268654223743205053379285738808180668660700417597446566003381539617283166885295551721777493269378722355572480705764980349866209957129353076014031766337418768369720522169124356639417987728013260581996603284192467982794793396453741371586232506444721315055911468433945256463561448878753463992165816039911455479891097641180584032345381000011463922866745549028001653387360206630561481140515439924279999102488902127638559831930173312484791727988322601893687867391030309983688914036851922907161346569465295460124543369605824579559407864924708260215785741963688003523691702287213106095860347190251332613485026743438027837961419986156705620436629632849127189250478720039864860876001771304691631640136449161965789131678920269137308957387031266769662989475098920335668869028773822993943590824549593146289925494797914223272158751777759891410637802817823291108854882802684919467420571621602838711371696472535269244938303643707423869803900703215371086988261462472096889013192051907094505175501521062708075457541515437735288362274365645033110450912011431903518624741040083295651867080505036391072308806998446658410245952840628371284661409309699104364032611020647061469665877104198754809946835715839192936924460359846490653632977735567832063366972466921752453721167164216633970710501179491717639819931751843544773017554732310000592455259484906018806591496907678311297604735059757097632673541663105733163454182608419791243754585366762658914110465437294497707711930443198238976286415913716933822127343869490212666140924719599797713357027950886742877682596742033548430986521019570572628673631504476531357785031556404214776773399940952102056462823094643279214849537714846447790634681415942469109286008234586923891511366850526754615652307770747797739667477757487010260805451044531177031206541447315019156291811296224236888240562377704983778267525138313422276311386890528806052338342930953235759571807377255742712806456674934724692095015769668406666359690174488167246779158871517535073078298830284036076544537273681089459253429530659497760665599137428285699468386828012235172872679677183120704108254825027888760636154552493806666098772766036528512807651123790074058290201098493361193655212972360730205121610276473971341065871848476623225435930144934966318754813569377794148640578786664714069516134605331002097775337555987587315861884158629515602307986080745761146976288140988963705248692008239594281216971192942233557363718037566470590964726529311767474866884479370411599789529855515799164285497172677789484823984519299195892312676639061630478856893635037807191542491495747364028065881410066483722425205808624200481451756303059279904467708547063478948050753469021699026300216331405549396379739184822005695752924747220472488035388813455063890170428740698881687855134314716692016773681809364538347726114765170100339435078048468670096642454663043435462470837211738320657110077690370910338203825483372476522910262638502259884061966654759966501755516203539434596747674989406461808448781798440199865435774652978410854053326866229017298337096086197692778125620254534191548527444675999812654823989340231210109222665178804864726763238304057815446369153216084399307887309005934771600861728381567609696313422325657152364012543317227792554073882011615044940013636034321534019225463632935272314835955408217625761503331714320999140384445596318584768221665273190693879225854850865800936068901119670997178345091148950809193592390711276796444784763909182172479461955286933800578512931804104233156339594012077591793933587477038230496484074010759514950548596762854775713859680251065200986662196438558004985225386509014127115664144406088242272432280683207258602424180012373432505487909723802703559001482200251348663001554830492464720893800425322413320981090848004562041383580755028887815320726586564357318593686629540084023627495007170760207837030691535975238477234981402661466585611694787017280730785660169014789805169615638732686936255792963545414307460341195674656295283389775382905705488615897438574892314438914588644452601510161259437935906015941554255894301413948895922036628568280761002182771703453328688115064537872192758604649759485558876566036207430289574810620601301588318874904631894164270175644957550091744479902119036766001036996907438517358776824316747076561314501136503826162716556683352393095939913698164757203183987798492808424953135789525120060230153406512249513999892989097566085970166468842256830715168423551129080874986100561122483369871208185289149847177762867121339785197520271131642232245792364189995580551267536837633230413729895820993967150106493096095650610984272031011804174573344025866204452343259707986091583562668617951333981541132304693989799891567046392619827288025298200197290047165685199218200404938679155498459318088190773073801314939378726308739042367903716114144234955183608326081408106896286415937390024334329067454434314616464650947028738692178952149998500436059481273960541724877693221585693761372109709448314516691041299293656560062903980414748496303781861240758506294121465452458037107498023585197065137370508407561185697617068173578030925667667483151255505934731865979844653621916077018042766569377792163351751283579830765760233108866899709400610110520690067130394370837456501563405156454257186360871131505148559889169978987421001377944083177676340756060738335430531850250721287006877869943698491597255768031286887333109063220804069486575130178421856397792648075575592887493815436751889562731752641755376532843601085619257222039395307504489600393300541061666933220464737461407329098194029284921061247062744512136627158281114810906606474541935259025412733595882010358910897439252579776349975988009918530967867251982419058606867011608414359070777868331480909978032648394617481164218024562244568290073969990393797642209421761089423913592033644854997993979339244812634247280173145341193307077051650589194172820893274662272149179443120661869354976962173299610717174780219673183619934683069034673589869797286899132917212133269608967789591810932763321681976532565368918103296942524439730791775151868936925522686624076112316446567585171869224054770692209415820143517509038841623992072982393425596625529213704414462183915594529835984613936248205232617622526511334406816074899439339125149445325145681648888875316906882850240567294184633155299332211424460921086473294212771792042198427607784813681935476258072849322246964175921470212103832676650025760360528961869181712864073281745773276247648873899112358484037927712558604943184721073234146150556706788153475607436329051105310205442112462577365265668697082598736959126357146843419235920021042379413712143813617485041352358125374957706409734057794899230301734797169173087928776789943017818794438450715020460457874506764085880129853103511808122778001831367240447124484772214941102143856141289147745938556652226498891715851907433592731857935804997437859073714022405461474093782986081863808137057951942560253064717404585906769391707689453068872344902278644744660266838399449060334282487379749648177487833588660399905559020764047477830132608727204601979980566785379647119946201411760137213451334534259477120782345289243370634385559655609574299767770231615376178648484134900137736066707608034218319002830932625142988790342018685807714905798619578878859941237262110694414068589298444505865817150755202320313566032079416495631251275655436102418621901995213028254663887500839304674568418212303353966475910481630382966605142906818976178410059821534018554809852565891985552311538042250807936142691993667209661915093630916208954926031465446881455883782530485510019859540169337290591923053356836503460039019900701290154792882637931656208913117391491662969481358955659965638048960241530893996608224971742773983515958279802863013608846904374579468324325718389886894473916920795548102667067124578107621843799276773220808176559351345343426068938917147192024146069239196163506520637991796082913481998000636282216213853757324312052835788579077648973156513090683576200259490591658045556483868525047245941349198138756121090632172747561262417215649087734332211007720925921672004139152000710021852571029483952369143600174750145809854193807703170222511103248925847535205515410232348510879069523297034262057057539039445035064150295425200250856759030648087514955056090825969336649981756082357369469465562392944681392015976628182749012786918126809937654267022398435166723011480253882371245557217842605929796090034973033731162934919640660622201511014162024279774976350006097131287220807276603964948913435709178262032573637476149527721701831012077849330842103094203538476056695282096793881790158008285710384873607286871405553367061603953104920510913156635126377542895527252772487870544902913409565592555970566485354365914094351206873865332205357632278454944093093285720042121001922190395840057514286703415305330744785035767365400227016386183912648669223080899848070061379645826203597904785196815081749612090027935461669772610445005055861583934098864685065105789182728816290072091040278176746480417920798311568886473639463474078727628424751474774720031679838444228980569867628655222980483491846102586350331770252888719422651040268185236541154346439423987375835440578409715106158093438825270407837963679266358842623609020541321882146365257285686252423542021800915733383912645861325235518187681606094970692416787828708689706464697066111586883387253189428762714707056477345870865108471424231547549129821015114559829802200301353463683179766567741061118559705516348837826244055072751245986418367283295190810616021060501162438761093920159506776478224800354282660265383347480650835117556551584486988984717184571308292685267682540010440398416354256575037945805953060925784142582916850204030868424349911970637241765872581556369716901318625097400640291951842981320269921966374191741390829608741435686530086716438665388989589129111464239353777584373270729080738192284487798927532027895451813471554889439998777838427862938251094027038509813297607642005776961169391862730503751996348871495643617515965746801328532934255896548159675990578777581552424308230504285915983982532037281997240551494944972927690258404115487487101525269635131436795549995221439707328840872746544557310397035009913476753646589091677293103420869637836235741131127522421666026434825981267804268954461605954564606986084712628168485315477561846267602682768225471584503220124354030236189429948620023981520996307913539851400180390998131593213880997239186875699796916575642932276808508441916210226155392198234127333231494607759214081815201802042895483117127320663180567187375631786166680182030810385778114732004745050924568008579208501115049324001002990326301363813500953042280626443185199536167932677398318508775935871671909333338511464342954365618539899480928900083601324272007093281366344727888320381053372804451256756767693009803959384560193364729496779276160502526499665102484618136099880719435242577272928710522311870205168437684333261476003656638601819388104035208799985263383276358996839856635700121358680856179035609945228436506089222312785422231290781297381969416841515570130683645530661386568449202675320445187912011335668300221107971165972486852870511039425199240340119048990296584706060211681071337372764797382265869989539603542404221446000900416798724516825206169932169695329606876944374574538200142643495860647162854704347843436011799302685224933642042487636069895969644449454687955025713763006319212784259844201626652452240594672326962987435011096246455912945334402014767197698035122534900568600480579513938561824295217765782321749320859624991172898167471620761829085412637693316581465470649767590705345561285427552632494924400003444879424245550765755207205400049184081867287766697856044951546388930191394416186459064580509791730093086568502973446125906802733220254950306209159592221800811877161966574275977494735757393134340498067640643326673491092964417207631647825077920363809239231634529665135693466589118573773479906508510540728935202028802797602088330206296113331996308257211395636988916379485205228286989219220353625351166795490110175063343892556039558516901614764612864515696344280827050344206387716095688752859062805894908691618644639755033135476880816232475750669278881116050492146228772804045619865701611941407852112643002042559024335089764658841698301146077765799841720999572381813808809075896971160287900576093635780329110866974308865390077052794548071320544995395346778669012216360860211839066991631227313117637927696478740225182902857387571864418091901238828660478147670815655317917200803599107636472273404796590823647626807318286252920364330576719661156225492580627433653504052892137041169181377309695177850764219469841839757760641092027538739179376202418611346332047461167377698917636187404531780931604049268082527362916669899060972041545924809194330781602692365488493555876685367583103995328662026205827992114677056818409637923453386949881030127217910928924403222930730066409461843944241060418536396419588052520372042318119289860811177856804090771566825598448365356476721090616033945422292689927200716976114958623176146594816097231934086823258297334982246070728085419401613583193183998519935082091580600095907266401170778088291228211894234521677352925050482674887230257643763879338830500809882921184603883562839677029901465202752050684561443092152026634253671633064979197958867992473760435035965121207909543141823337885937625759781330279673170071670618831016616768872386761965146743588399592916400037026345051861963406016499265521646700376972044825120361873576533100371038189896551529942525008638168898557356196368406006742647502761752212582569907442097482168247240993419737640699092818252334031064773303695317334718485158401130881805342599041731049969147178853029016037429976418926679356978851353705765499762252152902848254701135109820431732600356451557772958872785046104599581513504224349854989332709538531013562438218454000806517373194200571610881058452280035191389214886577453930986983026815294323786470677414775641280937303973201871578057094140649615331412578713043830621993260302654226129285447159789770011514632042716658041694030780329472627178014232438565163156221673617534131845221432354852921283756796047707507022049036952288177045355082394017736309873046642735701563817619230753712248007948432318926670566550131247378575412514559807230498502496871469194119266523984290761156201615830383761315036732634937183669740180928446116768124088687562730265981663117872674491187899240389341504839470169910501669881837408643645379801917427925089083311658121947556261620112431461728972040857832138306903727753010570475216364771198164692500369023795009440731240786024450953120482292383001165375001966098528841392501690172058742717311878323265560035259919002563637378044268807646058373348315091224731688947671184803558897882180813923120846660805050858413049708286926643986307274270181827801322415196575144085514071128041544646832725125049388365650144006524244672804989087428741197967385724813868795740661900783474032425592385580115957525424958757909205364408199278015277358382603893268482797946939891075035831317733105549633603114707574086504666596805812039997895728587423436042354807101851631322987526983002780179527647356438406090318720257872770155357124129112850398078998708706791132505617764741464061095684307185770742451357814515282951546356678568790234004565071544929681372479422340082964883508732426289085222209042133453470005783441974323329285471513753703015933520200679557340173433013266106505270526844527266836944729321478816270183453101164075010163379598864612309152942045492983632425890488570478922441675066809459525333114215685753004195052983965091639803449413464724695636905635270392199208356324563516015286740474772855178993054882019784951716931482515271682963855218944016794409125469845107301064573609378765586390918433938729405630636133530150887243501297853472775948458139598795971444629042844839652590447746317367814132376066298484297048086623626172666197047671684759072701394808850434648999974502355240586535074665571081185301108574353874446998501175124331370395990375903116339447603106680614105629844325367355732917903998000194054013880535103663329739386317266566037041543502840304095354618108729013863110223653985598837836340046427163092892361103271160925978836117478142481054960099970329960686856323846624346925516853883262016690701937055199767433831149055712289576300793001634072462078303492849739670881414338290119058938620151047545918830610698456356378402888818414653424842302591559436309670326586373430178546852216061701385893893257371671962114644151191231272064598399004907959619999201699432058653266077086933375955760935381715071570309459405173949825875259600840308616533053920714502602558811243921591084704831153751898482321684169829667071023209009009429478538094685878848005503417901531107380667631826263649737707145011222768974333546582262384719606153717949610009190369915016991737775087106796856996214590145813812311307077471506519417912980764764350954770107293707212276253280564305913928008172276619495662241146951114954068307329135534698430982664926538824191526955120536822430803703229781474016310857226528102817928312837095559035485659670611348130380413717147446586110794659895931854176322589299337215594769812420515065114206521564708867676384268150704596847691711078249565805763270756075308169674673646381979319727121861550678707380319322367939094109543584944214578807510376537848308723869595203167752161232662997790194192464966078986633814532422465910112280057112421928691144315149489545851533411902871449050447740119088808629523873507488055068435658438126448777167938624202404840492140323299636215550151402519298491709655674188659744674382110754849720237937853726466484660993365049346839946519081715220715356398226945891592905267249368111932474478808188716631811939174105491845021411100605029446293513593448627719033008478262578624209032364405292445289115552858144436824299165369116328310759630464477500725674222544439708652266299669744352199405725335628253386532734449198249446281822900873470337908008989749293337411895082100047937951167520477897747765512961473759351446450116044086615051215543140344172813163217315047559871363258304677775043885418547044617689180956136695307313892275851283388210845314763818857509755956595140937932315019244657004801418522420090080766328192179041253585883552308478219345476003644872442880607782172799281354986418225467078144483384773692660311657351329688732098333152389929136690611550571960704080502271673133441883501319084455657593742534716435211239261036801996239192323375249105069877186215716135134888125363157601997437196774100426191353764778732764981710218862964433421005560450361554181601946687203522842938092452806848235228099528211199014300844162322728526202398419375755979621555976979217519785096201139392889959930980258953405370964943619282689772821826843039752128320572295986658771543751076836810909620978491603003860710990465449661622946751803836657074668494331663858277516890675702814727909435561424853734979305560106697451375228022763786611192541043538464005181471527368085725921985016065896431142374589812605457171408421370028531391223451218890748490056886329431054709632976881978788096830358935770903136909294826254790485771942410032577919467833844351518979991614770273083526486142127518860403201005501577046694161783654813293432659800111801872356836761395138464502535755340682045841815197159780986777021319460052610990367505089304861709549027380584523064519648909766738912360063853177862081460225515152631122461042320788393715455757089286056986908589049028250163222741100400367440650050638128149968906907592042795329534434670549659282719308917358405427291088212909647563623918910695461334203823061015479844340107895517871158514111773077130411640013112324221634051122465023163409700438859390099101830845316911859801487176656612013340692175840877424042897843490784006680625439227173137802902183239519993331514514766410529724904183442352796821832750940707669274464772766303899310560632976645489497767285384379423444926908950300211003994124185911761381984900150982041190523581900657813635622112361050258841384816095660596401898840055055339445371809298924308954343275671649137649958164896366475371116393316766049996847928664139800522939664449484243855864213063382276631732613432029673895506603240641540842726605782241952183842422073906325135958433886881706839386210138721321281925775847473917688393992474060185423810179296834938393249426296584937366722421295087440747796095479326646283330417292900458569083189370570725633652446698406838407803801861020398018712786870037554755823024691120371141402305972744193718389778938329733402304153054640031929362649719238607307292851118101976715365868549426834933426139835201126259740312358651724885078315628113957014772006258582319491730851321208723224554720634871382741079365482967141544449503713317537032871364706238166935953493215729830857477412373887664018471313210503295019086216248282858183671143219371022534913030139982985395178202459803215426761164840599703633868851013984666474504517763535546885939247574064797738289275013410066663783604677230684987649589177590357624838382431976995617334708547965975068154013687492279336419881910850512521942689163713133963374443205211465020366918156927949572885599521427697466481696880255641263985890209824180907298943443791647663126274626883262657546261561679341821894443783896863839656022666892572376413995302466374446819510566554396170833008416032450190565904861099684494743270361667156654277201897748757817108498825573973833611307967923033477818470259240608071079230584314156073729008427372824093796183077592799579097776441846856417746707108770701042997608202509338950621508222916863725781456320131104077907870468132984205978870382412749086546907340739165636340870101641810442338090657520667314258702545202269351029993097735400717944005861095517166955346734809744568033320508918559965478303274867753069282388535770871068244957788096464069609993929369209644620981280544062046697192556996916856689118581687131871814754917003303210889687994267022689950539098613720916421565478342645809024180993218581730927043739790773073980974593978580100421548658358836668211740207626105791697554399731261618075890742008724362942669751927092045721334218382756241700121757405973848649384830621001274432027079635301374329483958910856798190654719483841372956301174772661881132246730686330141400591158184473128643871748857511516635882310107725883321193763476841355469583860733310289523996151743086188220304947274513080234195981465100105969303271140442067522554141523284098629921561431915094313571190700543000103605712682640247392468500177446801008011108319629440724725817826851222275551538651262562448005570740576525895589530289175489288406032223662428954729311264098811075810492898583402557673777534096753395353561059829623240387185881191251339695569070561238127799965261435748994295578466875875300647781530079849280703345407767291317247758864260854544188286290978095262580875750640698485055886986713023308013398011124618869534367545258399438963787757559412462159676278667322433317715778546175959232899214104075668339275940067411711662354753923073350858164792247525079275833828961791568169837093616493566082228502002467084603767802268668354295936422420858588944651274305265702888124804323280006766086402240354936588695073253830982561055277120406584783015130690117610999969455437112087888368299286505339049380585144873834023105097537460465219055494535932228361306337071149883148948665527346987212978819143103828937798593551435721150645276052808631974178431706796620862561713286863148222339824123205445831927071847658370367372371934660409539975536636585929930568064606780402016555193788973410006523225842332479785872361520912180030306292981747582328445584351932858904751418668296776482453313179254902782358935146158197661501749293640596641490936559426527743508138324904885917236380496970759054828674678965868458864594112093281506221474856474591084789137275440175244619650146865718955441433745053665440405059026562038776353949307075413454849090527491640422575853611396263984118108682804066991710018246324797207900200468016197287153832171941242776846541267123719488174159380554677549711226536024005180002626123998339239520405005275242753119249766333988594458316737640030665838793123794049082249399380831329491514243253588701091817365542462263886659873631894894860277474184065120679143966819299642506612009959109722183333632650995042207082229838680086259692215621956066214132558721211152045948111401645677548152582546664441958267244342035193106403327632475366747559375985156873327304265680347325335634382417896412175128021110149764290469623135267424568629481991165141788652600425699950676835371581244567605866700723874999110348390055155328531432457087971914968754595914603325574499720379311659770751557904988281602464463938734268316840307317928043605047970145278604182649094491659414207082767332633297173429225232293992179307243536544189988867903813398540455419225155632473131549640207500037952583065393583653633436092316961303671639906300964997232990961519398671372826500393192383456919602577763237733418895379536499013066781192324332132193853480402763227002227817084136480017705377955579491111925605611996481377400372967735870077535286896203987819093686035717068104580703806532528971293026036469443883676889064069019470705831897136658504986071287527322154692283326018558916459581405565043450676790366483251373047436345098181717996039839245957147189936451627649466343672791221169195830776875031566379180905835214529750917369325316482427750550597289746369008588683208731942811207251362709245168662273543567317558008327489900551887436642861138440808617207701627118527193687230049053987884083559463026153862752152151235581007289827071858895359681928854977631728476113010982262198662272417696783139245160338181737120937355526693538591741173754670819726965679272795300750047159793012326141818238731174778350928543876997778316109778627751166270385439444685398129405943346288658192372421017385771779810125613095344105762190342685099456433430620171177350449600482464722837795950345361939734143156263759348292475822106304632264472927713433150256466684515877338549576454412605861326005265521849190225890809198058607231242732086830142451215681322742129814233970557829387520830116410810803261400611775515399013568960284317607787591577717000728021552001875161452925672907334668339753121978653909669224144749364111837821283329711893918061005784361553462436246914642055723495444461076709744447656422147777145309140789586723601151179609405480984513962716706502829652732051191930278893522617299545950519513786267808785386949699625644599929026806333110181194856677082206582643974132923150934836360358650373486691660167613442284473844461733189208588287302060429222078942975204370226817084262379753319592430620041025049790163922805555273549519261161054911820719449616440573676435082241525700400544578567298541209013571249774524087332829076596199240918038687019107092450452559870412537978523857351205488876371035261949973468454137185285039408252901517634647879849589874075268037503013393544358211129443317064137480827302772827305893315479591570441323287524436816803024284077582478518357365690844218463982526551282163538779300060303123844852910964613153846163825785344478216862192698081268277122097770998971543155833880132610100236934040662394891647695671438635348270778985164057272311706122785218802346077936791815858775923465375395773523786485255169396249925164862555899182325683709619461815097040358843454082975160832183550692639598901365025733478816668169702329404213636348250295489134216955658800295517473407954884011892453161232502475854760985495469828784181240113253010062702077878032322006400369780524974347722729667975722881447396528370385895308163943073599293462861860626261455143042303113123722529741016454654073231210832019073299279181737157613118274109529276655286438854259784694247749777838539982107877869128606444296698953391468730968287117488782849612778530476933671316361284704680319243743224775517231854502624805368988920613769369478655808005432067098088158168488064434909589241437837926009011964891127234877455509881577744834867471927691739525735482302480374299860492547963850358789700879775336039466482782092418603216212999915082525577097888673568502391996666701207994228134626595725785680603473254868207554434616930861108496461144356284244408683881626996920845399161741871359661505595347764369251579099637418340660562014672093705610646635201906217287609597318837201706392175215093820341535999404556911253066225986219880581070016416283421521372943707970375159918050890729528585297822517573895670215283043013017893412869576795532756461834537382090004771191202443431318418510309282863945576987486995014277345731065439892651492365041931782374963663591661362163517385309612762085872917657722620488400430474138732977280881939637185746107564901500120950861283906114829038936956063898497902529878738565169232333378034140264516883506827407208352180228022544197041228761462281937959660421383157757036267457760550798957286058990969143662378456833400356443788335034999136564493883354646953903545117581479503773197804273598327596204906112689850025393275724975475926286479973503065578538699961891217012074365997025026527154708028806432718441996110278240447987390483700765940388227230855861480125929699100060801187261666882024147201642782995822812034390091924531389140550643102512503672113202624125746731869195745938451019512242947705435079914238874748066383664153220487553936627781340965366626107736924927742938088344446437276729110638974332643975501321572125411416518327264821650528789027196058410601668805373337339850415398625741397654953662725055365658649611321602188989103590278072300805938061066332165781607913740396926115727031505594952553357359988764521255141313982495558496944003284681169839965514265669992941723129123148000836889086286540708051649152962875290423735895791979111992773617393521625880414875734955897482053794929943081768670260978079016821218335856150316168930833357382838491665947410598517550624961868993516479774698963496480814951465748269716487215449368790034391718859298374439096419277445699327247000759828524610964911722383253394209072751835154916513800077285589715623154060219067333534493179293795991134102979141363302070351524060258353956129821385877058014176921825253304197908633583740465059672902512324973118487299736453910638386627150961498713869922906977703564772070368115419661969820902643366512035494981576044787383292647632950878235361510120583579320879498622822758583954568920325185759036699128780756589849300514014095877419122520930316503265320074563462237196151048435134506187097432197288953107238135177901169540740506737111646368051061710932652507040259302127432585844628952821427659971483028088345640726958523512764105844280636931731828201205156058568608883636854740944332834128980214470465114383540844686536184878546216706417627860503276277784986274627727412093107630108787083459069753131855907766177543773879962828963469513599412677767155422231245082484712629377389962914245442634993187236405398213513366448202325180911903976581494984072292600765669320913870415238781494384908417479179714287064232203847805584965827126126821201929096670157621923555865556473651359556348743353496326263318044720011199855659655285086557962336354551086015238624442166835794641084593045887638469397347074835621424866543371215683290801369875426704967087032071362161828477367976349068204641670065216716547335579510060617935218176871785221401114184452784693643510739429867781600467310822504960925964097987835415963205657234911212069982884124816447820263921846549633456174249897748355768006496227203599029677917970790928370220916074298919788442784186649913471331294597393202489129410559798061299236997595373135276145517992179898452780688010179145846759985353102671672172257752170621850373873048230051389520776550058701854365815730942925738006053465516261883740211330988296696530552007120227629635061736388328886389841846057821273086840033695051739022249925376203570488360278563852515483928882337886288186050924548988090842865926810975096217114679100591386224565674351384859439340041069098029095009265376366807872634153094739112761476610134513957867194291161503554453222245834436568941731353623663667998544405395824959658300760379115094285367236907773840178530707697109585578172850293627030086676944350448588493509673688672578030970664178639287533975969687932175979024766632536903280833702199093294930059865839925698973939649780637349712198894773513825883531440000713501959485094481051267933840825032152761881455674395992492210870133278805563764785890693329870431363191760744845845035122201191459072756323391659122408499080695083667665067271598605438670422700504245923493299716595144889454045590693500172349484532661361495561470448499798648865699437808366730026894444214440526439021724865102930337098546646241022880181660129694928230753228587430693430909830568536102344877810144794918349324256929714905886173339323456015631050335341019876085293290276871132892833904914753479901850341390355364085347954397479356749573973945184496230260416592332885872576060937728904364669527544152683404155735699272907176163747828543603422768787742870941241349843504153471049832509890256936928183776879221832195707602483717329030290752716655311084831016049165757222196732829412320240301028011109738167765557182667199200151357423700974303207657283572993337026992445421262231692469038202094971569481935257983821620545307240188311806318839343125848330385191385884537221090490797715263530602176611782585730906725435062295603666001591278652311109846806751056056650720895119252154342687032715140851941428976511647378030379246150959956565035928214149123387997208546219631293736348313713313944368089124128130433832881473200450686414712896821352299935082470754971776767227978754154846192314125119314605296122480182997831699860140975207322167423915401378450023643121944788762159272578183370277678110530121332246091655101597693708235400055189712174467094346799297536625853889717123805522306683550961251873161553033961129714477603801874259381272238437095396440603490350964926749657548035528354754044448374850571937667937079776503768427309284210327098305216000879273859522040828859625855593138929547824439735183206791417338431039399863972062590044774292764895901704547744240833777217988844876538366183912706466663541520491439064300817114973111449061982385635588829193947157507096710796020517999417360154453045934531492092019695388894974274162732816563874354789554159480589650281078515341892517366116881276398792315648434472069510513999831605536170976309367760971417564735164726168091912822088487064655567921095925523063170726132130739389815541081445966057772538082941086671484649696985810321515627908160543945034766310084431807457304383719933237410507102717958941915358734047164581238186460500262391787321738800522995232705666700094667418533099781419669106413430065142958942652773920078204578504474100669560074326870107404690249963291466275605841138543442842940658280253995844709507366790668849370432932857883714505421409235788663692120034609668453266681006016920780509567057487983209005784926255598366692320396332335783973623569709829215825517565641757065757546661252092880260532214105751282143601074433760300362863247396759861775682547810324136190483963088358171484565778904220784031966064514264804904147217671563200387710146879937857144973106903660867569460628323557952169631827554245095122160254483841020432625370320224774342729293647995151832630368318486966513139612229961907390839873581263176640066141241411410797826117099505870170851343929538095427659040828107028571187913886932117223435534230284881573182642339598221050909973128948460216638442314748344447076580855406978893693078413853821829299053782324580994117225927232771580619044872159275752251372083029177916230612121952072071924799591945917975658986371873886179674857341059499805309755591571084950225772374040181785220318051828422326354832385927769580485679936187453839139432396257062982088253457681790360527876031530963417671086261764711053443934539417431342137930666908943410819349655206184501662369734582809081604487536621726106888776512288326433839298559428935471104505659386052854693756884784188383503816337856925305679106298988825359957535513803873463006756959946819203254335030298894885832667935341812262348716386502820946046417925479018837361304463173498183099560174957002731290909684942107255967578637143430312304473729549958247726901420539342223810142572813050179251437630959064727056629753437754003420426445173857159362657514627177394717896549592975992978632598988149033522556915344368440121152995712225793216349977681043153792683856103055288634058750428385000984777777761872358052323119391919883627471895697416641098168469398483403404575279025362466470841060966173581447368193435207904695901675859781461482294302987388512477798140567812853852802944079953534678357144023923616690642355149975683226034156433530182920487405675079472361702073757243707026119366518673125029416709997270178869347534537702654479838094691474661872725217531839223623066299715313803459250445925222881977705933570655675789200441845090535199677712137080268922238085484551983398270011683007539278180385705886251544154506244830720967329342650283636114537896442814821397108896197016673596970000955336388135250057491024196197554268714886579369992916140073562552120659356724815808612732643126635468355269377142153120067426852843022337284409971173636048730891837213172904875026179153362544057509586081957859890002916170509477226472590468789356467003384353028750100849731179491846156825935475828086205280895262137464364752791572636563687857678192798916650911445466878670679936595989969646840723081603695991005969509577516037344938843631229390481741924094495064464344817318945328904044606468569164523593065781711462823682035397871046563476559862694204323356768202397800238535199674293139387450569334586813000637442741487268791657701818073444509136846601337354649794108141502448248285529038432213906496917492056703195734827047780832716181252177464649663236730566000132945521345307571366211044428178329270885275318247665879222165445514444987823424313307816808779120842114355674036326489002524485172617462178265007605012769946514315727729800498251539866011244725481218029114580102880012183267245271275604923915071548542894137201409092497323963412202364845128227165615246903304011213062804333981506268483226813837727302495421116428528740099247918695447779270951199203319531278174575315619768562158120322027665272866873134914948063053243750056923197177700940243041712850131209819942013878653199008512757377496993056696597111819070355787328062930681905532998760478486880902873364970178138488621318518993662767611921533097426048231590493886648591931992058954882645272120912771721033731956670172277463346528359597321666195230062120178149129711606881025327550055367280305386553688895551161147167119907462166056891760307277866470397271386981140155602328474632895460975517636898535481225005448288431429968032882558498568328847368241114047111110952175751806184017739662514884396721278774755031895919392023565607473695593664455761580088033418301631187006783831739313664411465874001353174511230811385031381527437266810823307317840958734485680698634713206266118732444194727192100420746562068353056160908805662337252228501190825920267960763749499906840287480940365939506342051997985007842897426302058482453352546154483382032020145948854949036685550555411949026628446500882005428999251758166691902608971157760979493710055953943179931058189561933073902078634531648002781164253222061431299029045026545823544365231417237825795410551169115286112428128530629989884875585293614267960737677864343565770461302217577387333373354050045066497181027982679871579797544086708008173792876337857240524007202300913060885533935505073963003636012326066787824911862774597250778917252035272998650547603812804040680210871864933320011165024090403614266336011778698722540491561984411636491017718339954352438810859297571538406296652901769071977922116070267292240642317067255671958610701597608844766604995158184236943671444228288213960559101301096502654567633692349205680558965909705750927144243834294228126703269068063263716033081709884195455340989680739591962435166133458577864745710320816877054620264887067490619611249624468195416161659771003068578403367218930904343945543911052317971916283315855359978131033020853998047132191121489761031882448395322804732006973096154548041388076756660566726524687769108012386227679419295154820938325257643061123425555452770737687727417604967507725458880503514224956151348090629334024122637572327778582314216707706701257635590002093684620987667207293674274991953178277572388260829359257829795652083354665813176767819353645574835760729594899357103790381230199929618172434386861560499365938087415963679163865908755792161031431725784047268989241407516911216120338645922394240429348618761026682029826077122463508215014981224184736131151321175117271867623702197614307791567827108217428976860947398788438737818061306227897693136300406945023214763523100763705863222134463078378283903270273960361164717566370222712596384625112929520162823543892624456173407599659580594454620373746276118798438316983272924570795303926156270825355696071115603643391581423413729675808481794198927175299618714995981653061685402731852131625897932580096492338133497453275215452381018067217525715607736659651577441574560222122860500791947978641378860274506108025975045748610524175747275424944464183528639053131482894253639358694806363703751386525213694936108095347945862147936133623205621392816791056226109399398044592376517512710912454762115851279020979101145582750755412987080216429646014920332035275891956340115037982382936479420064493750087832623962735874328590666369544223100440459960473546503751422088730868591387065697576600110598627882335746902007810631133548409965145911613249702286112904193577487834163694941207309582867264210798161853032734167991103064121825332517608836985429251102054601353130167883402095648893372957374047259667290549636585503395281203313336236868623586822092226156377454480116244611640083357988700196911544768865165791086324858237462177497419776357116588894212332146983511575635241499372853359000337959661549273575425124942848261316888536219019685119699614028155980274889725242281877133549219888256228741318651925334198527287873278048887009661831700888032349020971901780661478787531716900539746092584055878772132088736259942984008568152231610126843856945743942033598248114511397638240503874805011914709326017658164939400026633766179358512767688474265570266125028711949894945825845174416523453819265364387589072016978585511456240747954825635369894040750888550302502232811215802283157306029524074604850732105677810291123781282364038565615058984333823584001121997322131569675734774119721515569650294378293168282636642738838560818286552653956136067761512915916513603555040625161288882060134294205606188634607324596851572413393372971881512033373869779055328177120823550635154328338016223187872081437123643571927381628559401815066987874984087402146895047207484645311624669020924989936865447861257745674601204044371041452754688355765253805931500307246466032348012572703472160950522786220036730503410035170959103750964083714193513517651645629863418726089017358072020725567673405016896865690882733127621390614860433096702676097510552582011251368680319498082072133366463627425822499008396000126856349946428116999854790729197980492452664566620299752407843326805312902971005863865334586846368949576500669652136660137526185356038480621609204839518978613951050890876196141700035413704568233283827455898628354480318241730955829995032948322586419507783661466907447614087764144039486875113241692542629269327391110969422979917817103826728236453994298650654164496766023347664093907398563449984472899862334646490444520305720933940227964317761406103983363183722902272545984670760324865571090208057753344805154226576140878112182141085747467852942635072862167966175269555999020389132694600191774449173323641861471889564381723779366986012072586014825647475988225009892032869204290383318119854652293592979516013763789965096961590243409871874336020981029543986372223002195031298906813168173236242195071862705220786551810803730573177894389384253058639315328217780542561481893023597654261745692268889943308617738464229735836981068841705526946907213078190919236521685370448521014701688511704751780010978877453371727008263305224849491645559833541816108102141644083720460531037458380473503461324604815351040936584217872999276131072564031230624677653185521638528683329213643573958520542992919904472812896844114270428809908780957898437948843008392257814159553421998637008934435014740161935957633761054190438694681854798551776465581480278523225263556995615447294697959476796652355439803197338503930837505071325210148979642447214722637376644053786715795698056476641704958062948487446624187235380695628540689813981729311414022788572341337777969011080973572138195226585575465726978267723640906130712861955648134269540897679237028334409046883002305509844697996502042702715393296455418823858035264610223107727182231937581296553895513590324782596840094250743556126500678081301223204556854445265898022862146131336171708139713732891209751821371212929993735825270445109735230398787926101369767567344687795692976885283798827826770171944656778782942956345798509143762389564555920136133053149067968268499737292670012523307610387181314624635390358139631622184305533189369563724707514864855620511354216278402981471548107400696572600317557014913921422061522644248708109199253464436755456879697238639990398252876917328121223968015480750255324873143261483052588735643054466385282973705698624427492291364291020691865016962304562331126092756696277318991790581057877098621535782141719643280165628911498714746697097714133780477745308319334972207927405552703452111733620782898670716325901336455313151371974244620225442341578900247189548668886938405975226429955691137390913298994516498776231884885296936033261934262697876703545615940907815008509599714472340544099493527081209823279625540097643910509407611088332148639970587353560411616858867651079340013047450423504527294117438088666021048786989385707091025964355324846903217108876152212736851787210785246145101622912303831525979412775380394924804874948635017429296101847669280254554756230979974615105619155309168262426683229407343756797142210673770912407135381032064712571876774240270725886865884268228642113330738046472487990024454560541529174783383087191400116384272623219333011455208023418082303852077639503180599100929607392797564940679926562422000094999051337786269988726639657074252810346888110078766473062434726943046080059020284685003254733517437282536359722642999755817089866407584493799694107695198201550921895280778441138622380329151468576192645470483717281116138527352204265414695100629121996776363870664838917237150470454020394546234207890422959818342604260272905991531615994236615686464236246149980376908390986941745939511102851285098412790381046600769318645026350960004176030404366596227078126152852747633897129090350347113523422206113484041367383116489137306562255987289354381235334418049396036363740961771251428974140963581458622358610229362260518812526657277123283522319314334396448269677077986779444804638867096715883944638003496668034978248879121651622413902584194352582175270901049737270517208221823815354006622259964547527744112630097062271143611768501831069818444289730382593248242057704529388502618926600946161256558081508182551506056806986334132015340820767878605452648258822006168177156834673680957521874641027061489325562558571657387132687637389690556437321545608999721833823198854363183331760700817084874875831504148994286096264715771677678995355679624472494342341670910135566338995193865311541145028644256559881304579281686720458880528784698181481856476655189551081304967716488517486792843486428161510799931700399073402824256455192464079066079269216683710859149362622460356228747093026893564655538681062043454203622902218366816612143014635920378537183562455541434742693905112406356777387729831169394248476518800872835095449475648404655892783294712991639123000830348870599669432380163745918671990829913803099463049725409287973054264983385798629363106700807218051305016667530966420629818478494233858992010486802010266601948975965213693431491031651515395774263996913837192112953170983827267752147787084827995038528459417191541233052808742064455689298454534491107595949718876442614898072238034739875033550546472268936336120494578371356064494330153685169727897344677665460997544529056268210859574387737637026992142109047179210017689723243907104097998454081055755651228911852795947760974724844029435377917269955441034942927850613661503261449146223436255700576835071886338436794618081055429252928539185770106468549475604147811920283519063524769534764774992549588694285881132677943613780017425827150140184249179707890029898577855576784059851391224837777907219969484703320950814279499564782497031056471494363282243700281355005480921336639381516128474700407394105435992495933119001241383241035543180367843954520103201540244262452563610493840061994849751522033256989515908430862926992485570354757226796411560255092380094541190226631032477637777777528060222117724647705280778779681635776343609989358696700390556173816581025833726915481880925106260521374042057770367908819367981322888221499557267972504233285382171705733109441440938935024905177865244521960314083267353939421474774810991368894570247894787859091876154181807169200647346293811321116001364953385655845621745039493363929066576544265028643536788052104209863793204527509558347652399261657418578514660490919643211995126016570694651162815999697604316946113811472493129003095197707641171924414395026890260495949439031578542617954885140022661728786027483608001735767140641952580923428786051761548534259302915613607804965505954664980136872131083217401037424318248307721339951270848555242518815850265236588412723157706989908327630444187029151268130256098383156470558102472061971121368003686207536483686667300396679651263182612356409630592066689251806106364209447487862643484508428268911564182199969784804627713363229711066561200167545593732908139964944558085132768731261277363029655150920875376587503460693828950381553395577010671649573950433164759347402612312044813189121938104323202629708194763980931929654777411667652311445867282906769983728560170256771381100146267209948134296066491004362122052486948935263373706970964653296532390025315379231917928005337909624192855943235025402006694510317521403633940636943548136199015185329967240185701660228122232985865076852720985029730221598902802123462781636551445362754656348614750632670086843596137760330877029909157478026210289067395436422435353768272967818319882420687444841530732924289005934424053639409650747705204708215873894658786281854195465406799265495516924594328491558495690954392794641243246651806409894027448282639744606146971993348239004446600695559536509789664615215792485221632038401142859101265031663963744840691352984842869542294621307304056867883108746404833155410232561599132624591484024163277235153606488822918654682402561761245285167104184640984543977226847961269528043493345572351661990247087710458762650215565940974559589479147042593947473974645876220629985765652301100065422023459051547712761100695920072918581221009669055856205341976985127053487280484847271057294608382915004233403275536997230428767506022097839578523269532007093101974585339746988770005543464759411602172922883351681548418093999728853029592314067533902102514542238972127079560210923622382514349188406218471086944329262202174096271027693571751821015595888490002737083731982745909381898983445590301389785944475684627593588256441626754156985961402730373654091773234869199264266562032834028580716936827889958885846969021084711435473475495060620077018206564827194336451172217674367158048392958326835257888599258870821361593140376462726531395809895100861468093243092481024530526750044893941901844478563005645944721179832205973867355113485838282925056091136458765584088537380895727567932469364393542931681064143609846818505858916834802430025590817736966775302427973338951677500733950228023067899560471615914663446119054684527933409487413261313426742207410950187473998350102304242530636949437328457143396338755845888104895515196329703077087597125172666939288269762024762669926408124858252642416363809443603355883945111298651802620606539966355727710225764882110710422119294606179571590393086224002996982613112960044164393569495885235160510757004073255385792238777647233588922374279475200681201874036952316298457649729386437315301960318325843948743985111350265761553858479381773774429034936445719455526566447750984658192840062379701464524937137237612049634115354549536612653164687673130809982024734874155280553044100585744601153824335045782921496425298130962268776060914659262676786872922784900798434460342171561353824688814268242337805299509669893831655261843617976640556664982787684720631144386264785428850150188566322269636709596641942536202806398568579639971474775674602505085339342298362751078636765429074842341532847962131205104799247518322779076320621480663350362099136374413536880028553971891492752549542561868814798411617796236037146705626444958653451962975430238851444332420389278660573817553657442327894793290824348754913762786840125832912839571896369434725142512312475687463557030699162470911092540591096374778698078296436643253738597254747226623550578103679706849049836861388153329318113188715479749848923946137410957104279881452356095710508753179555626614479696237146744448074667709927474560635387143441470565632578176006476136141737427157514174220066834425756269795299521726623600257903625438018927256783636288426620073389880236322850708578155604418301713485187718080243602983507659163919609583760825360068991338019264075743203352686262212188270471138654012600080996534608502969003710930150974995797326099529378418264099965428842874694580572971331707993942826853540652249455231720400147060789614392986044123488535879340900611391198466789674978548727767459795248803899584618218129372459748997395777162217336056591023174599265789840038870314250049169604874978198631048335647340920448749521173283616188643528310805600936038685741921166449379471567255566457163787651782114490080651025860047581643768139395260266885017102271503721453153919589675569110909715766942525250685140288225740702480096786828356960477846362808705030809805371899581519312486551242733335889835631924274924096156908034799185539860521458737428959224667599406000836595780109419146150199091527279168033623122898004539937084226289626983063064320738010885834578916344941821945787972286527872536615522825918634898074342380709740165837017491682775804799463502617186005132357735149125951337832961740008156232230125951552857647972997896907797432165684640866083197660725764820470679314149810389332718810298049186568289909306315130242764800261413885931152421900281163564669505612317618299881073997735193680865690642906690707909375883873557015695464684924792230245513331374772482651365379615977219500775225848274580063006015642210629845241328767392345017937260059510513318619676284194913348099229686930810144739913569433635386965629828177459121264404240476592825614387041914236100561197373764145737489448953465502839593995623148003221807206558074740605782318220846894864780357661433384834641230184304280392427681035072785146736847049966807311852803459586194066397767211091354078113543390263992671203439356086121869248382283698197971167454565837574056604193917038264917089979750583204006914684306710008166795718835970396737734940653728387250596003423379884489648105020548379312321230570104022621666643069817972145767754720568934768004390060085245422387894583030677776179362454585444116890602441955299739565529250076259368391606543639042633018101767176138423802576688650696734582783013878452782271884145415568886195465908404102272541098328416330153792882088551831646417054871449796915471258534689919141518128399818037463896578093882972080035896041818248301961377266022337542868513325125305385228379629395637002738426995249479584325510248140685355586340388239366488662311979426846792338026865971821381154023510411321418553940845337716327673720768958994286719834457878122030656728518115751604855681887323085742985827959089734068244523368444568536497245562479302063695898071197946698350926186962805568314531902332612840236988083507669044036033580564407001383830394191381863419393115918836140415854918228854730570911462516331947225597919140920408227624730803658500588286910902195699848968386628331239848767235120134605953801085332036624326366092328526203123574198838398137514487299779019606760304173831074885744233337749671937506818800134066433178166515873022898449089808796490185430311388566848605733252342323674317740302498367943585885088592665361817355335197335741212561177780582482052918036957373513914706717378393993692182326885717603970049429036979061931487933568172621807078341309719512750418425226476113929027071803067836720645485933770178843386880432288579458262611890295957112223271576646394797174686729596510079484542499024400988220979727017801799245191742809694442266515087178550931167336391830350037606295939332866027691661577129479692242835324911237661339039476983124661751946801158869031237235584979716669221957387959122392540076727788637964667511611932317968411907768848533199183894861749218860150351220089949101150381075740219432641375805659362171615760534290332948103372656713367280174396835193970970840986997658805381072592402948126922668609860127446897801330962329456056228769048287724596548218890553663485633337403475281738527654775265965374638383154743580540844349345804267380614456620126541841730594548286506024823774736635312549704766692751392936220726575128494473838169206859045279519148871894633841862166066032089095694821866788891404174653093162777108289252698996023835194197882851615582400145654667810321760109681424933639366964509917616501096624845670555603801114161171030179491947695423605432516218909475568623571542548857702719881158949018076078360427802756921757208406134186426480023910861156997038974845975204672472583187415764658660509075677229722776113807084721596793572272400611808159105811712685556446748865390915020754451306167675494971129283870680516406278378889461632681502354841309424896851001318514063484037215133774191120411376267801265337177546394908693302085511505309151062262395208222826862857471786815545739006451313183129462635488440221297772778357792715058546757708350991335461805874105132924240987304411932052036454227935365443347746192210905361104632886663747476707972785730518021465655721814354608503226813654158066124900904046873096639643005789813422856903834267754019956021244004704827512978694872087976668025476283052977223735777023006277566213932575884238791535492380104599317513670211664001734333287032281405595808854071402053271959851789466485209508287613410478464709939150064160397854222186063504332732847478737830010891243609250662422161924578073811708541065678992444299307271428508041466517095070043737322312729287223574196496076598398117160269362983310196776936552865189041976073677391512945335640575877152549826632620794361534267684904286364809014830242393249580579034202981313872902051285645441286313754310471845994846729854522074098563310249347874808113564269774965181388014308491046722378924371705375914274474894518736504592290111251117410070011512381187417486455854132760101724612578580256281725005395195220403127728129934529039789039867215840937199419606063836048158017526765437147649849969870747923052555645447115199594364064410408956445213400596161485645473786540518531893203423124393963202575871081850085374458882587793897184273867577621244009957523048587786606231939237773168123481012440163563774002397833752077642403535099401889204335709902772620727807637193757294296924342853399424004354654346581289642007667880118307096971696301797774923608992569013486466406313185457065580355322808875573750019675991973530267460034512139538128415679749505237615821149719428413869171353593486733191954386958126258025962224352372759767960741276028115007168227822062551957760104575033402422078189304562455368179290196643607112585053259983512380922068863933175467841343488836134286685846421726988231822422699128219168396784439054392276924064486838785401514067584128468087926828997534842503994620958358547858404750773107060376890081638604129610506381219486622914724818382980177895945418563827477609452129917772538438837778487221381771646067465810532754645220861096760145120908633192869957890907112703378493101778223049413817586884396571371543852337258279875226708998209407684426234100551538837739860268680851913473908293203266143143602249266093869839432194655655143845712906010895821802420735189753841791401502099202577827000484804716054433646627951135182373546030136807561946757969105785922516672861811860823485461427406360972780427638279539707044770982255952358707780823916233367028495408501962971026879454731957801731554941016804879285945544403449773930414598239222789645362503168077225888475013266419613640614285662063740450874761625236698854302894870209267880124963031720282571483171252569499607461088202341600180669455130530310728698426717449705274613699171851088365772968353414063964447693471588320024376740900049921936313713041737466290804689324691293442276719417539767380013272117269481900591367624325477995628961765372373766751560796701142915407150600396638765557717112358814606847617074627316418067491487220703817922231855530525660426110914388565537977078866602875089513158793327818582848611951604336334556222573852189456090086597484162671194799863072021489870696146782404176676720872433869189975798364837325431154759249171328728423378546380882361548946384044696586192980208971591682566733168261593484972153990058018686817995671604067354646716042545871859142070685973609722072982084918980999568393628083112966167395516676054984167710392870179209777778967461952110283348306652094100426587871729686239500857644408786312148299708224304715695167100184049418802367372614689857440825679912501253011581147186646845178545416105922817265680704443029105180543448245428880264252790927287764556959596304082114044694690704672753237582539716027053385984505291205728070311288919591993047214894700708326564984304152399173244815997490994540924900117509491551776716240262897212367457679582311121505873951443498391529184638613379445439545801351370662943145364161881326753566460782203247023159728711638848914340593913374619364787024141963405294562614425824093197619512281336451439441011837926529143938278499876593554175851436255579599329564276259084314433880172268287195863869265847318596355409706873221559821661989727000316244821509208263325955196148807018835513123248873965766239351910867110251268354123875522492750885614625769971633689879092163210359961302379318548253428628877001661079937913742068396177410277489114829402461666041252655035389584244286259280445733471787200774101355343175479687009715478344982861726789000388870957348364793887838556484270230734775344163146748765467800839678450585180745285945630824434244848850455890441690435566961986550145705827231057143363437719965885476988109814874724460268228126925089974764754234456545917561404097459577288594884817610753542099886016884401213919060540541594422595547909422852095800699433891416947884219699558587533381999881463765770430408633335957216835802166223966774614588816026592040400268978139495919101363006800269080663931769478361080233469025897437457642673568536367948934362668480231904399574866514734238540374923655728262101624510259452906112187292915775422231317990104591219106909648698161903137248102976425450586141387727097800899593968257250854889388527455191512128107735053288601882505533922360093429810096741260206099177606468089762975325416537259695488601393796764307960295619593389264340081874627860202761165226062536397627441073602813052993709333624695053834741685772104180294205455913451557033730420339142721127404757062565055732870907190162941842127564645465746816505649336319588751744860344856179856457576108332991359705067648160883381315039775493582626921388585787255931068182136566156388683859881428359224633486985553482928187776700432104365996199364159380063086689128818489211310070129467593249751586343821595700693918000415081134157372983339192407216725521044002625283575612124629226085035477175551599135851440590403716788129462766861247444434580399875379253169069647213781785085115002988326598918251189765373604282224249322792291133179452259953944974273933184457812535902989185420450608423988099989122560089373394887278638356080035575932915578830882303646545484394565783620303401366220815633044271334157801716808402932338011459133728243022255033443898719506617843640031728611789556430704993685130436208847774984385129879049502484261926280639590362804166115831270636402848519610486544366340947593041935102551675494686813900942838054015075235218976923565950851945212915690995027019670111181531331734847194960414255346884505856926640026348731233533579700633736796092857790455433422854481695248247469895956989685767936187509168795494402921842465252971539730954924726101396345227009143418765036498124197447844845433695367672143146973091493080065116829322744456381118461995298704766007824230830917697350100285048733032605375850513422351744496382756200944075185487275577055469618766129175794277092400003454482212055379150332179906619381520684623258686278755141818985897542705169473479538914578985379146822405478725525814760206369255770036933793257245185274351774578997735877324863450271529123269582892404659507936515920687692967088288343903267220577455239304906500271455871530621692731482541018638910730340197485651079386510411449589991887524614009734775457960828661712577892344970782962340741198967996404536012660255896921646668273603009686531478225317084653298065951029023779294259133742459633065762460255501243526401283969597567057682060582687613044957720039176623586218752561220807501272644212538987916276378726340652097606204336818718070222671443092367261072306743308508915408452329093646131467055871637548492041356115157711020290635020557090003836066855497230619058300577660011141127227534736682479119203734100917174163283599174136090323529755369370118822813807685782153322436886955081205551996787541536882494397994139541532789818167640889071117084428417446397956645164898890052024083432228121067969790995568985182880493079097549490714165580406836143557025592848584879824576660945033039918024721482081987610768396228862057209687896320403417886498724244591186506419025667545032303020765287338514391902495889875496350188769778575328249081448527364201391838428198566753953055928532777382887829153012222542280635960045118783941184427264257198723843758192190587996316618955600615124851414924648963379645704664398361219276891766007046445254167127600887071818987967138399436955911245020252990839725847319927638002147472929533669900790094137835741874737292966313659699212804607833084543811495839466233757436690754957367870518508753516096189711789943736320418969077800156689581407992608682526732806221531000641641342639171584874328473464740817683587538584926192544298973685309147812568144085855703448728006967428886629173166500308109362600590243813981727218402067287795015552605049510132150258747020067097710040012628105278139050210355761392884781539881376424748186700756633627436715653483563001993097806532176976109955088226927939643170707014772703403087235382422307539420049200961056801337261747095937822920515524517106480976906623001666945592263192345380807041969279432528726026576781743607855064452317253257237251185058289193068985705248964698760171284555247925860002613892980709177660119476674132850094550110433710622947632382639889448971706238214149555190641934860900600405556866859942654320824516548532942741283503818916524466479853192810427468667442227593343046649280153902512201085538570090388503138850669630818224399057649248304509060403253474170655675439813438289938987714186079897273487946585909569209978394114949406206026465128107549753200953842642341424133408131498737426160619146718525624243726647710340369553095445262129033847870854097617478467603506977227510023346362407679753449805041326267880758273448035859882194418802504434810006894669739011229469539909915832541042313549297159814902972867098939164927845148981506352230357358811766321465203906873227705799332343363797325367715503586115107488294329854659746946713036065981885171398735509162767370503565449331829785770965872625914946596899062320068612291749882561146081492256887110892580618958716670028041075844529794327635487879387695588933709959931728227438376990786667477069890328394545540832254542009246151199913395197399126002924883037193180374227559014034118426363196671987804520293706931706002126949386510531246451094745285340238254408309247499127271540972560993023311307341378479985633843711845450596937873487934794294531779551208225424172974925346358569155466925723601494914936655369416187365680586387146175532406624983655353062611904093726138920134483565834833943484264918199952616594868569208629967859691393647707099228263665240740774570504474336149024226738234511375170901778064262332650101549550725673124878469414798763866469694828242862844124153156545532945293725345833255173455297933185984006486013397049934250300483973072059756490745569846672834525907726551941402017691906610849337553973906731662383122357056284712091521708404251875088330682879368688647346750040035619968475492517739914864069362967728452144561208648985139289435452279512928551421079084560706940956821019690277965646032306970236100305858188260374575826547996404382842236110382860107650735918086666991161830908687073244416305251233035745954201534948829283460572448161845472336742938023202320801761187203710922806185118355137358128992091022922037143641909954750992887394293208719539856152737010751571644581192486908162922185770092593893269681511005037973061816852889558170209181475728999804009352983674917362567542323007301811064031824958176420789767130110335023287350128478645438680096086103818013561259804964630547982618065332357243744994666661431054580011643834435344376876489646095338952365595580562976519739700553024974162414146044061587473277463027838443943482259613572551678145962732415704724912509176531419270807100495118048038099794260263469465396264818610371087891439961817972978002948806381895636640587708120257326521782220878261876664046864638534419280359052107586952913998556910606310455852951856686533943751311130771509705991236411142067242904215303709942713567792861932921327424851581363293420241701303800227340769759005752524269714105566690659836653478497748608581936524753474808472490794406985893855976742339572364068429045051757447110855705302427175996661895461542613060813042477337474772200837524593154967102027994489654542409655345742703404460243472835917453892581836874884952921803264345257275659668708733942295353212505427338566998609981301052399628285203154652421266162196228435958103102609249174924611912542010225456986446039711744937526094935867208541281363447260417265783698926666271132538028556141339166626563591503937698552737073065795313165045259704849588194406162945389148217745783166887663083987978915816160017301463467964249460590560205180155950798667128831104713048549361192086824711408070548953478886631902749898147082551149583120080769376905935897888867524101214129739671670554172083327748369170277573373915484982448338663072373396451271240499338262132382832558276065580521387046833725247289433814902194284626090199892784197139071997530879395091269757817801482288851328862525859186874793846240999366276570428602156520738862070947736326233966274961443508009978915049135877303674806450943947719652238701560689222734292678387141376852503751994797038408396223257806201812824652921618231286331531618441089088796878388796308425357885026157627568858076743227250379940577927223413686987895952205102905722891171840825149619300600968906310621743917752435228103412228604547789535466791054647945267923934520909702385230268932154206478780085346203101141393337284965713011843065870682902163534840953876884989446026981642983703250538717496027024893330158600885029477379876108122141121689596960836202252428558772837873887773586995990061470715073084431119150573441894616359607332858827359095742383538109224290149077959855004812011166124696408625675088241964573639902458675883164001062404740781074656131660634869270481913533681554772554089326511601753755292483333278771579494474049548878783996169765459600289675142397194131929649115226927908660349683290500666046094756551101794312165487987614301075684861913488100415972651015948832429063748043131848419862776078439265192947970718159941738831213344689398910503612908362228361016641501152477669635303484671686720315619511453989988276622000881868442743984834147447698079467930525932417428291651320723209267987626126576371082046547538638791962742983139487311247857569100241806960886183654198106843881775939824193200749516825206634400757452153240103499160903448248470904008926171695687481290223745993531415748106815666878567215617015235650724939450859322715840717065676946376999396522142674068878108502064967162471809494498360033039327124784210830777142943244139637286127838706094247938725265357754678460910574080096001561597162709162802959135874923546197149826323336639853041854399185854944074767448342217573413258283218054475939220137565312540598081527078617261047601642122662773510688108574639874435798952895475954822216390129566621932565824700561354521438155476104108954885213058211448157598451905334030298960089133077277558829662570245873867523770739571016827559818111500513452684746808579114865543886011918645909145522607336061054614866929048303899352312361374122251296817316508233512483976860637314397656057358091333408723686856444982503355380385133575108481518385796542331508148300456008885100353263353721571051001595299435557417500801634117083410397564254178687408878455914907198458026604174826086462611847420581639243058021053970846294008988728153031080744013294444210288240355637254515015852365877665830923388484865274101598984663676982466707728957849174611101117587824076308751487982139161549007503921028144920546980412471817188096373282858828982001848654246127089031151388291641349878023503809808559129848628870200163553896115131399561329797573299503698254172941595265007405503523542358858484506329637542241610042059369401424239976520065299814014951722155526292203889527286439477333635235135004601744648045994717586427063705332745758327943269246885400719591723969746814640127025991427429246387690535033857019620195794130892880544949625954303674801748761072965463511811375792810579505013387260973898501728958346564060266782136683517845321853317296432556091602259253733907903010327828744791766799150732751404875904766714909870894020823632505614016159590997660517550300280573020907557592138463300228173538663499174251940096717730172322942319880548105633465329253869260960789128172522098932392164460778792816839518972087774152047338626363112117437448428564820567716172414039363920747611089758975536895552802662703191298027046123553349752863387282922337429112255787202196288633703631815857958194534913369829195147619475713473268565363807534144748640064868411048773936332876537411741448322518068067422052711341258570566487954810772674408298715401870751996281856877647868657908229147552933628205772871700917570706062777932184921892485462736493212068879514060707871025611889683187664550893389239969081422071725742146276700319086209442197041648179113824383349555358908834086256822796902228940626676517810488866497566296733052027069943435911036806073001118125113109324226726984277204769818255950321444874437916130463600512242606831004708844720382676919864993568640775948451129962258974837186834455851604701463653650714135773798241126153011731537274242966394685810286454833501810740366778758013785982105349437545949225231131205618493123119750505306893708117084835374657581258390858066180752445104816943714918529730642373878588592068554014163336455222011023091108743768591766518908201030102098316381212863560683397985694983805049732649278332043952225606456156962860183697317534903074414182702950332797766207836875587372684087254972991835596346452551033708124214846360956927171525015766969126301575809073205823430154960451744545349151352006609401735685630101874532357175151015262987641863264634522478235270711029852116733911531587937454481737525323635118686196353664700280928000832241505201261805108185740870739764221839874946085605747527308894067382902267442312640215577303319253817243397644677860284162624795390854483277074117685833615001446904968727479162039429915341021279794180612513946074948348733478847500065838602078730805759049873381280212600132964627511799547418326841262658229423566211301272669527560016520240048201120927674606986517498105150708639114302221681825815651398831256045709175088829006312325907082900295561610624859758801526061507447707570883527530189036233617776465304787958895019520501265559563410322207591532400914447212308450970506483183730188093062305015303344191825146128467131617029437272903469851527517360374225992847531966929306283737822145664436818911236010226425679233123988144346574640017707512088623161589084069403930637572632903539259689212162241787676524411594932364925103495005247128114979865965009697074017672250866074212573121146944311308096867695304452119210274863389484135097770804306707872238609129246308356393097035535212432103263012318386569689802554279884223151673315544195571941646923143417361623432737361504618891330231614602873500176558646283586348923770881986335151623129512558985079551542592137461697475489990555300058009054454811825455087195780569300066557834255902604122889900380440471674338859118634456563154442940230572999433277610992136026227890960932777134434347442791637471978392186863760366235281600709360234220208657018377884250148025655056558326971118450790501100311720448366493836853332684161505252575379714121247806151251618743332685226121954128766315683305980630723178936293867991147762891010335143531061310772933852733688623704849931099566073838407367347113689448393165809318905482569409684914630972380906546847096068517564572174145672421236404001238299017946082899497776988158465408792629885016166380184849880462784049216245502392136553092529373766134632896385147273541487908535493535563124656289088560855398847679110409590587974638577513894877041742475679730614023706233266711872363519204097870762597025155742416477370942072394340336490331499062660512918073308563099989179001647735926327818316884202560118927447574610204788775728679667769597132640473039082105139250461553239404330247191385299648222923812819906042164761257632972709944092892167219218909463675997594186639693405442876989213625258891168891728291897385430081151592559242360973164412223289856776591895154426522054880181489449405160138446141227511320624257083260453081457181996081127250381132613917687086601784810141583086868055583476447047571995245579681974574729785206482372684433979997779195765994444768474905269765473088221194397099295014375176109810163463350617497563049163205281159093304099390443606606717329690991916480593838326572982210767151487817640012350718468980596232183695263142633013218322038743627608917432396881660882642539314625936795679893138777506696570287193595569026642158378955552895381538803309736172867558829502497746562757836525500920528759651876086432209986055211710136782936978245852077292706891072112375694427906937241779795340493713049334706197809602165766413544224043828868897044186843918445339074858831483746207190272475278357021909972302716006296260616304152761276696832341668256142654577341350615855292473263558826728148071146970735336020719042001388986491899013355400020363456853348327768248590853492605342751909905084053956988384917285553310730743120548668089196707108595049906524481249291941859075584713616114741277640714339718528265601963276408197257741102501066352212275079589668670009976570094472555768337004880628746210720198371661431760535344739197860061204599644873199810362781396180289753427102333368665682461571905560113681690057516269630363448137399209228038115529505578536172505123303577214242753765214155060205561836718541178978739448013512576477510293963970850277914236418055815722742756209452856009968193493499524552501501675459098035343648139824211006164490220441639239618763083122012198673127433026772873996536726679196560899664113133943323187104541259185090768840549261696489990761277229171248813010095392956486274132781271176384589216965178752161526600310379930313319632950813696400201783066913511603581208845584189769171331438028029065563733750350716591080720407370938015730093644552676694474994725406173354880273528028772764952331363201632361806402977420335909678852909415271772541432613043352343204363496946615466823991879340699123738127828277089445502514641345269856311720187865365986475782376199536685083085466518619795622989827240816361902978009936908493488751768174439453141531336029378784662675432828585619333516064594128106247082931843740689216778194079159841727785885875440777721698776135233613071487444779438274790513872960526841473272022220439572174027773492588361718662892532569823230117271975794544473772480353388233099337745478330977227158291596217993776341246926553773219635905752937767535545861525055672823446419151575113244056495991551610829047832380067747894964257458870211196153569176320913185140032898783883079244122795988991648637484722849450120879787863407736810676455471929868059341894882071673864217339008962903909226665805671066240670114578341747283218719190532076089227823862895534495896724502376181403643021512831523748443776262279269500829456567238586733855313446844834663116020216250949392874836445126564317228301301043185226487581914814397764558539693429814543036651586946826348934297482990473898922117478327260923609962010119159431147251831615143114256063712846501256030230355012140186740840050474941815495547883648053883676059870871855641306982328206413942622285504557970264246422975240024517978011652252389773215498695649894072932391480274725963486407200980729392204218912576282287843906926500511102228724210329193812913413409733947202679119291850085188941682482564815122891044003515621401588573938141257612460453948181834118956313823650120457482073166655390863503741737937002596015578628882628963590227559002049284658614201221946502440532852482645699473129296723406836434588258421096617246797741006501994583059354303784768716154720888196104835221719823532732169890949415535350377207681337532694481550710533519406294742047008289836751800125799866184134866154312714629801593010343155539899882616560758070747024351610109522035230018704146017080522213371551550752793789387054685069471026029570417244448784165479673930407770790168197939480089283344880764372785868054845930081690253918357866521130377431854905820386187024309953312536765712038751357060561923464361926821839968973963533785216874407497922242803901699439905807082921585437965894252444364582278562332684005936650518622900374567303266368199325648752172518383709833566924210962831384786419847128235462329579713340519358932272295568054917357822426410005253006916789052257841041477887707965131724482508363774532899836693468702251429675738749934472642668983644546342402467437782177531696225760939794675618251400460981620697321098288306152529154912720336498144029294667764443403309945545976867974711743161557779248312643782636079894174478138347670498599143991186890273048970063962600026853226513434407907127784689619399823316361181904114947778667249835261163279391246948439282541413214597114332449324369178036190844368977685083500645879545802708738979064519440424247066093080012202456326831840880520538272264856871715465067214833081477508718690678812195499834298373430523781144217114259436606534872184836580808935158539497568464497471432891293647773230221569052756710198178430128973300392052038292780154225667468533815254463325870220476568502015492723734261106201591232023547014615698457099502841429876768936339246981608615061186902480707051341177902922428057284764473735263689516387053645078335238978617268285467743475370384507722686985003456151930593110159850274830953658837548595564524149999410987760028861269720157822352927799613770752646705310893159740751561423932078117468155571164384291148535166996289325891880099630959052695039472426039412970183237729852178067062772639672492557671224909369286911059814200255468521032671408120449121963591949423589657989620793285064921623529732520523252128235473707525347374207295019455064238878666398928351281087094346112171606527881941789757627733990371050505623082181577816920672579499569266498618086848740293187643018230365365030994306031263105384079189953941904212511924790961831694882757366246292029479315907530281219863399639766868823903444312972338812128441216710084874314072149115506012024113171860833826305471368026371854482981538111299470244175608504823139976763958157921661443956798610943949736595532081792605057938350943116528079404589581219544089854077169410867862080489495772130323513930218646802856657998464789593854241136246631412225128970053878849415985629782308109581936661660962730713835660848477765538283849478996502039650513836847252895181182043567757315289993419550979833300189756169263135417763458864716537393600962211802948934268842223454371172780705581344214028494915596482902872712272904610676039312491534560143747895398039035656346605408552090462444047725132055135668614126443610525786788658533628175750743504607647222172460532099346928359893503915706074418851336019706531757624744379778786211661665534899792268035011270975810477197263408670008638640189926212800991886456183384680631532659939751648660708139189853535420589211030235677451290625331457345532677682010320071152211151243314959121481918245818284385671014641928726007596590611526911902359909596506953729318510550862736721917957753913864763371077008665504270275861965520916032579544490754488971063636388103578293791078546145032034657156795463512767503698484110056399516596234149842190811791522929301048194361427283927314485050361667737494218274220373669950172001097991420490093555182535809461317823859867192598900210449240315200395963457657630214103185396723244492406322278993620880581337814567746674985684902732807177683583430009763241440879254709601439306486265363639766457154643280350041402216568050899866334515575182401610833695660704261140112169339871051080286068520248838291838823882695976837504409008114775258891792572481963793891298447716899335606104216099452179934738215215804556541376201361898281151628764431389649453017739569830665903596559807187198716897499741486783209453834358436483105258907596185226865926013952428096761629977284789077915111264603365571500362912243465003346423866391845505068657533019664918715898527020721614522068719815478797711301693672067647909319757087910678987699268902762905074898849685430380531110465831975208292391918574703453884790672686833774653599931423990527293240975297520968861465211690887738803063137463625129188806576693351985943923807995047554457550439857847116080227082899841324234476316152375335408549563381740367110486272916206769405798393863895804166905996540166824683549458419291941649445182387831462594680455475820647052603830644992268059089515330459963815442233033597349427265812124208268213166654062793599794690554803526593535194654122621141377632030642606375817083123041861119929465323478790151387051244755500378535726262397413197843588426832716559092773189627442532297974040506125358413972891265653582498449659283058056312903146011562356106692779846903096677865402416387492638497913973016821424406784146592264878170365812137253536791942498644440624461134950411269428943396434085323164026048916679515965796361899050682396826460846485168437551830488362841172034413091892919419759125649203439158064300150789159859707621397064109374016523538819476302162095360728952003936907159625122600287119611327552040834636988798736419991226086076727034628291177884238622967147857069972349273490334448252226655337252487923414739303557170019577268716354224957127561950971676676051588627887467904341070681623700386507916294611918790091668981734289382653838986760376658025969203110820988965563739508162513217330612469142454017554284058412988463846687758018292798160135735043855974920487124623222882786400960537998127973940686920450493809297797122930955262725621415657212252225681178971249707893483702246404648809370230949130192235222490602875208876546327150227681138406138516992970141502710812495830141968397684397069158592950140699302455421164966709348966645200137296680506346693672824325826893207333310986763620244857876573679276398583197133806243845906077108220771070494532124390202083007289127522635568516632268015633836403143885694109248831095578123425648628897820946648192141350295134843097323940977750195419930760773676664993699367995447425867468226319274874658255460485765965505181781514514692648641527744618172437053999541088675797602493439193235256709216830340964092855276669880289937702815880844291912859052125062041162010334030833980981819492732280026518648375366781012600514580236297530537537921093132988426752100331749544199600834194445464221059281158800012003733790821249307338739064430627504551196676808953999458370361230517130963315705619052563424837917234483780410631204186821960952870465097805581345773944281642676180734135060722379038438332764744769967693056990052623485090662004362608509237543982711733548105289312379664918172645346501785006357173257135557539787833203105980150823898792445493200325450191657321692043387275024732479399026302852106508167554885888462319382286805536057700406025359729985928486851934135327601459541441486731155122599341765254997862577586837040903018342760987511160408002074436236235046000482285440986831292228402899989464161190912295121589569120523031238198950547537175616751854090234675830239630109181189782339982662158863477965441942708044985419685347875747470041301249615761461357697355746167416572977089937613075043610006329087767800616293240692642803194262158516080949644675732015916501951789525573421734647493264449393387269125603987062315776901756866987511915562110983470535789028558373778946298489628073472916878377577349675265702570046680238117300114596067138596291588885584729193022471376817544748709290549596619281210268817798709420272482063467947666613029240772647132841798322547078870407990648603674363844366305793096156290487462975489887884180594587826304957194829459372056714809200045297008468079395361797034556993582465092618461122470968835180257241301810402948526245081674282050607655646225717570216305925042216326318872943549734463792677291399669863469783616198737248745526716001160436842222986885906180602126697637078882246930900325893434147323636417665760421343196712184277598878045535495940843968156593388474169594212991005673607060730331030308841620603122141435177766606455480942311254543368041668831735857145515093883747145180349585399705769358529720781496979637595186362297195379883939381917096568599352282055761440008387981818807984791392972368358529325314343776460802503583460498834236030113573287665227144684707722080559609181083293075502867838861707418970510014030287509508388615452354318895637208526250835757205304789836313838924888340281209708588903792326236599031803637585046586171782234462460459544090629704712688188386837390287136282658359731261574289406953312811830494992625813259346820585823846435873196840132337271327640165468566451450658296802078481891670670999517108527489930590519302776988025124513423258710566726887722057238964076516267386640035158906656915368367462601256079107874619561627053287722324641850048083078436984655236486918963714310920049883074346299821218918427374552995278358406792431760962110213202487868363634349342704733309971654443874061333972072127270195957150375038941316980352094741366520334740677900910894479743708826193058970226582200582816827788075335218389333703825241616162014164300496012766250700509922275580226585813850177046497880741740763608104009249238122655187969116021753838958166584891055991081766602129116340534463800654261468600828551468496366319450038180351387016384871908461990548726941548556723591539092658843422061644805935978254819246288582687597211158579821785304884600421615456213326697495045379084954293092226475980458177579247058437451464951778089756922326565351125084749402816039821433662411393842492103489377138302319630374381408760046466539975211628142785433162505829376958339993892344704768775962719488861606433017444991972427305666846366427291881216938235484496861911501532585666151632692226025070074814304037699879117590197170032174559387551319811949565492630346698250418239400989163047825480845741633976101418718831431344661595753222642601703584463040425325867463830493744571619618184808011635249168799215469982971597575227218612676401126778452784650517826875452953630066774086259779101622334487480458901854670096123550464244801522631808161159314244424582856423733629738250506644449133713613167149446305086379133350530172759400623435136451203177482290713649526772043258040565030167474211290450734306784367463801770189019167908932582578367402995382777288250128179853080508612658569110338707027085924535831831913404820703392028630426473168987649696299860952608396430877920063526076415752112268039616943493670018932909396831832003913702723149669709678793950714879431985857732913198851259345957283606675525965130687533115731422685122973628294834836441952014003498111864921164173325015309556916318782783395125760483934448101478252663001598732181005016797013514743677639951549290654475994462164727417582401014595099614512130432020139275991971575522433249587316978986388216579677104093988555986764206953110980001750581105862348517857584750647766412165076742263375053549209206466018424304741095912820750619206945741746303817740284900573149540948776524253283222813985020703330124148668965842822484299294813045375819795434403468429130838311744169892904752427036620929179847078006880484564093704568618083321068313953617659874772896251557838764146165417614717676516027992989681563094124628413865519303640704410070854903697095266562550296191978599653103992802716804260688087079978789110263840635476567504946829758326360807626358160178025621926503126046595781383618501826841536502494459614254337841427894304044989729092617084993608132891045775731823050607978077495169601575100140805789301522609308023651453515782299071066509739411983543636011906683234620873510172108737911091534466432444722671687953144263115386622346896900495993508010070150417432932065244440018451263656350097394110234825111811514552138976548071192667607588602664627836283842981175477085755193461478220954404226709307440907607145127937370298967650867177664261728738876304138305057616951134066743341807026959572565438531936024502169959257695621142498927528801653539729706426428784759453431636376111292759397688282754028111130237979510654316414204470442548115401313189279725146744312278655357615664781261475109012047366868378492161957318135206474174317151088256453663741350588001438373555251207474237032258377793064843705796565062524576471395263646582207609846668574562487361292266112609425236727305801327626758234760901427243593488845583918262665685781612768951931311462577697703155055880548074618636580328800363607108203405760269834201651621419730666653616466016358362337169069480612753322988344503273710314818651847244332342052631950742342822752423949593374733374770517688498140180318280383644248636254927694226680837432082984045359013460468248158327574956972442134949944490980805269515289690259045106122982685591436741046170203669319557948765564773568789995286962174655497819123338612392600020927048795481127612620469235398657436518148717325262994999406787377691955611853515493897971515537731695319581375048027492322864562903893238847153741205103613386411280797244064753644451881692610085924525446470490487251333789167980351585935773488646317996544064669878624094133205723650997037392527569371263096634446523235532345071474751034903663345627790819095765047828034065758497345642961068452448919642146862039763360029875996540169521495270603174448859551586251995242728372412008545846042715864729774733273614795835016940453948451984996659412085324694946573132441609787901008642562104445144948643975513789130232851020472552569457128820322823438504242059375560973979495810076447180863723282189347643908111980136679339694265137910262131036487573249565619640221714516810221683957206665520261239408578803605018656680980060361388246128559983425912157003323237487789505466161607729052560476384420773086140582791380193196566255455120149452558761162027526845165209192080843232667163827573724397186779339457594474508332377914168587770733816277296405105225481603401896341956347387807032686742576223663039263370653430155056390130930419852122907343319177699968691065134685925964043632483679424572300482285778845000666555676711425101675061432793359410638178436507940251493951451010807874730896290093666653559022420614001918420555477618111576674100007898600353786266316733584091625909883174722529699211540428859791647207786358145509866629111645326700653116141602946141316224890607647965384440855728054828107667265373013868323896181599813004838960362530249575053115595754224042007690758361217702508058231772745256787117076258035928938434152783489384283114289144541420568452221197265606588896506226723261218517258595052425012826445111133368992267281967862630511599734977331269801433586967155607495401843580748414923759678556344156310296052674441311892177099944745966994168301898933331655491757268328102051871808957378204478181419749741956379228057143745103771589783836768101732931232476467275260151420543403829721471596136056219304630750152848115671081370379335939639138108402155791710405875141412095768017322621033034350103200644729516953619580183367184723550074396049651045602380685939311198871662102398398775784268914175086971746456636325773190431072859845824536194765876269971259348669812029590941056362780734249795538255161833878812421126273358357282218759164845894783233520837157948111911287169228412451296800283024234171584876288309838948565101686225205487902069048588272312919412917614845948727280060527902267412420852816777891887065430064113248850511743799484769323077809874563102821288892840055838532457304961574230267806008761519794427957539087007972205078200163001742049060445459590940653127919894979467200694177141696779775261537574831715828000063034967203179323447035110647705961348451061193367901802635884733326242871006497725434667929549364522827021626328599150918433388083766702296313932773098460988662481077701126256517347894730934816829912169326671271569128458498702053786758931263498443449763247932324505048443699522957677152224978221107377994106049466508610580396254303710772395051511700980245858471733238417649701129333979660074517935243525473154830852373028271683161987129950669349669339879733763188865996564819234115491914170382372788684442868276695468293682681015979483567574363377830537522499198292423498717078313995795917682126922424828731886607098709680575163201444987341182865327132882111513834761283952170704128922448593772197935759697211356674134756526368433577657589873518133712854010903747488475981062880605361072122255743141472242915081216635457450527340219911951839039571298966163676353347234221420667521900786101011315534178776640422462929227276984996410764681885587873938564727437513717263324849679789355704953969516781986345213073454299118785005233702341389712672022377023605408601925621841068099871679809358272212354931878679241652399725150160590411178506635802958083126700489178409481489516767266005799247523629731467595443541286276213925527676873582716847515343856961735736866291114443585625589806106329966848772263798284621563666183043310011876090816661158194440613388227316739305136630659563767032005370928055671062327928382979999677537950780916323779958895223838360694153588619299400748945669197424732159564189911624923829121153571177381931097727581304060678826263894618140096603320926219080447768974224415481787636346961127322361427645027970809702021178976268520008896414424038793185584001238535452038343828980276627277526013855383614915841733925355574040067685687255309630260014398808349068072255866983018106942034131831197552856988514479202632790901662156284270370966900458971222662474458211351110063555709592761089815417978652241507482980686349653169775240409097441278866006426482455082323278452129025705498037386398900217752774127633807818536268802319496073780326706584747299786256799948147623350920043902709379023854423961954791254177654175828079800449916973791064007146656945160351616320191670768301701748191122101684127066044131727237033576361852691930083318263949382211821199960950161030945585469485162183666364160326014651748755490239797117444584340209476431784875868545936693251801958998245887936061319793421075576999048780996117559978874278250492440721150678421496796201263511579426198618575462061967339875249709152988511476425498950248900556839908997434406772276087467741650492568383340745235079224060790436776519782248724182975842737063074057955319616620609132016342744918859296090417187926909254800628502944590600883703901538277867066085488685386361288058349019747513776164386692997305915007082685603286202266149918320742674772453696000016952251346825659089320477091312089443669549740857729677110798772069294831145615107700968014422259424776732228007827957133170175972558019850104598141965157690242086074088640894432187126495066913005612140654569230861434743994888146989063844005423473229352644385492799397605285613743676052281556619735795050974271783739937614303682206405619426093046815852041455814848316269060375809390205089741982255405519814665680244512100657463037104746286157547556928515826743257777459882203977667946618411145074753989828920217272199969082899082690558282700959697496908888801476884515269150510608786817637076641376579250230348448346000355869287891894271028177734110899729021328247545258997725808477412552378455266082282496732503087776918719061167904456067037322261839038037421608520140465807398047362252606353777590148409423714391462550745455204082449420010562682455757274589138678560870742916866049984631638572424080422957880651095129900450801841490271930286151045832342743482756855531408877521715070789966047272831588736416978143797725785009415686665681384020347717321782472634285072349513598460418224614701595668394919470318256328583454348689108503201392970792784317181948863043157769780808737805949848435619416692008912605227703177174216090990446547457446384113780781010683600747944108170471930636820245621089475329155308124977868414153689974377910928740657622527004834651842143746362001765465584751523144150850987488038040100047490946553046926563709101817303944971407474086504012997660613158124190560427007282539171322164914377709781777768523642772956230253490117343021085782437222658502683446177938534603547214832427142673692425891093999192454093855988671476538680536122343354098460680979770059035467844655017480653343071888918528214026677188876548192350580499951125349452169122135644610684318325309868707395300001493664779013830919525621409769139659834808684319707821866081590075975970333188791881944517309311778338708800993095932447870183582353655401216483065875812025475104262417004236348721270453702438077527316505600533699977785891751696947479650608971669914540876181759748856254780899772652190510832588168017468255037809683505659470656371799343739794261287380532958504247820163102663770600039755153815006385236212988600460480758284349548821232221380532997792969255982242152887492641048210573936334919525576730057106809994798498223486350796773763215859247971377859598987382970103572255400323613396414096147294903942961005814502694087106237322102084500780470272583314834126088611876267603797079538848500325502295516095979479754367891356051533801789388317855425479985476256972740590139084752572284725404681546452754205407886496083433114676413218296654903399054288562734897927874966612583873292183674777445108788672264419520063603312808147113605705178590656877642724881859200781708164003694492957813592935393910906721412235667319493202897404642051630308239162918537767668627828087007786959351651679139499114666079857087681951521852470210624198560005370170921402047499060830211466684740674014525255284180902957392934780741967574063157455832399900259828639676809324116126099693503939608493183077354768925211018414765349513553568559449929599596801598947496879517195705470120909443393026038488702886559110914452386602445555050031411144360702650566905485486475743493277905160972246880220848938865643318595405704072322315083857601768606262734277414980079209930678181179191747370818331086677145358600681188379593020746157690437202088370341187174899071398305715899525229877250640696808964038771207297817859034189223760481438783537443218361994199320015454515699376893556763047275446080229709964427922610359206156606532384595336174649917924179600647036062963296136147509566377712175123975965989233967439416952298182488073111662978419152814629281942422358028550258703711697003230249850269269769841258279141873380916846013323706129600955309046046200925768899962415030565371957353286410886780446089859347262439617602038620920406368483887446075144164039547564357762603232393948558052084529896050201974525030848898252767485039685451184707244167316070825183032741756453628506568387804200114597124372868297859843410190685547532754018913921803344841630454028095533347802672209618177530850693557015265470293038947495198598194756611679473563102827447389387806661283296297948475102947286683746093798309784986077453443331923702008687852462496806670373470410180252421947074537945361051780953295192211017859799591651528733411176721441588488833277304743652388969696293287243433562052326997538338320316457353871498184714660490862610328165849621483526288512161935606647169581072619025583903587551324733690217590472549956654213958515649998019148965612098708019429580659585967283374679380402468054557097695172752464024785234754049860212385268037732761270022049115286752765198869173438169695234485078402136225490481517116874994666050732606763240365060193922556586749989242260327065098187497657926656340392572989468897054754313093589948867204256206839843663924098425704022435033647157387792591426087100153137143721686683624870654188820969218327525364819376160416151058042707580046975448727283498060951070117925536383327014179161084010651732674613725380277671843023580413716959669280953469177909252822968470868794187526710333854316014422951665844119692795141888110205424204821338827394320013526069790269237650585403779321859820756959336806251709392746936513168273968855326825364745290725185678951505103322218607167405542261805899542136918846262200087953119015997577409722505259600472402510082183510202605237274198512669135141672000829650196979507748654666417306953153839816141740624651872188804021537213284687341122247953791043398118777897849269594610664631827313126442218076267144104711848610661885688617722312584018860224001806924811028961830159331241534740248715197751125454622009489458260521521233072287342925139150302143759239545696591569155711042781087659828741006720594376545096913403940909271914086897585360016047670839666763421927047291923570664446696561697094073929154117021234264865759113826436305471540995972903450600731232305779888064900572143066070680241895247405439781197527170016760525369345144640157438173786319624478714941622015535739346557725295025946147549338673437395206980416953811858355525873322246855485783864694948328269590028425031933357841220800961536157303747725309506743420790956034319657362348722885652848128240836093055696770491977217070469325955339624074292402308554262799622312117447630322504764287558318365693074421583148527938038288982636041685786604280790086254206354182624446436586134228428449358682216234768294304048875699659164260912652514160409818070508462115682500545922072441129865438611465298727785106461233224001692320530438514137288998548233665348893018108554161325527450418517728124572938166473424581258824821239560385752723530932356661187346436149618766454409453860928427538634921724000550322948186856684998801768928242875866345797120984606651816718672950314246219501122014692936178531787146720392562408273020849026408147644296498910287774545800630974624136227056568941997937102798501114089399816788276699940645851607900618511703486470590039624370349334672994873454027672165909701217916313345414644971100771013131949311281180928527227069848506347636846726905806350603829580869438679663729265146559476810518471167685826366784137213971069551599803466642961139388413731386751090353040641757757280224130354603125614599395633621883904032675384414893953348711375499671341028588729775739067739548079673890650075602532597164527634757638486782865456284217656869128942563600852528670962820602980034892989225932260112670352615123729413382037193957666611278769518787913295238413838472693865663774275680093827580088330991174612618574587086216261932552733564898990434348215818939825352782214879531263818765308935714307732709722551786707154399782257912606981803330779321832928974534019546687031911402942124818694305118246139966178812478986617802958812585057510819081567837308565321860077417252617156943966581856900825095182947236185152594044552836964384722314325890794598162628413185749894877341765585967372482323035002450095834580884481839566945054322411602695129511935981129710032979210536757768847488663562394607306135515070475551584158422853200980837602924825987963818011239817790995800223362159313418210945798405499276577918214806611361075083558913625291435434711141115818863536645111998755916994740449541295377470977777456816232521098274801506820566068692664131928099375147019079712220502718550014864830991754211919375255992886348736665604104527677678028047786680032049716219060262352978675253871697937523548237620057726749870730518367783872849751729496665503524369068781360154879966357481587433380325123727128283134649562035647982133056987953131595660945220069618746172185583985901482293332575796068841075802203607270829381176782178391912639791898801524797985436634077903311915907267805400999537957904488440429088458103870695487917249885582176570883783500121560909592200209272539808653571202647218881489658588864658068825177133287508924162768363048859177229878286312783321737231346098648334533188218914104166555313647306387835649732359793974972604347695688196585577566893047057879762711927383107438595518194950956642889690251107713358287447316320224689276971736786925034119881618375337508892916726429782663508910933005234406389394688563891608104057489353258116217214365274921231618329998546074676546361047348199700294625447057352494524121165122898822003499861973582484898375192055017853863156599419764961473300614859353363389444633271610740136464232698526171482704167274140880360357012244028488086372037476432203320873387308364286004707438225609323587579979143297182279290113092079631152334391554405680486743523883785699970922211330263853213030201146581905354888395666278790513875035157643134318101262784710207356074683870400235623165265049757883828185929873556791128125934489474242370175908210939125216643196210472778484077710528718552080372299996492341947479190826582313022510450650327931523602298339743485614007505190424905505682710972976186930615686532371896855603269373361730225089145282912203597390445192111202493090052953735189396967056164971798928700567329901565304509120934317067029872219981531233765577507621968535014564858262640680390395063975786366538881186831907997300672482838846895708303888940605677232569083308959212987836285878929652960714185269827148442565636471546144740793749325823343233014989493667947027692280638163016907846441775531806146492869530624393376568366798196250727130715762026451009562280486496032297502454461179603813062558456834770271256527015302479935872635261097015557383306872377260045120831253692756610204724425644622987996760931184096972357566922978018574492574707440326879484324034066802135728019525427139280440633701336772463287431610925395624357407918301090123113398995808324107591501091580565005599001738466266510950933966357167048286710626691366036988057016315086670824599088084960318790653518962560257522094397099823864944686263959323965408318432902739450541008376960440240517130892160148465859251083997221666095751370823506863170713247138302096334228041153347689310216600617341014101859021626353432376333674918383794480479694160661429933773655615150258496156862993878311644835690567495583562209644043018959245315469219150535815241750124773666884171238760499953322063316009962346379544094027782969509646819990840877087885203509032037306323743417956351740889339429915274264659029986807437448105280821961346309732201096116021935596650522566441018170476174762026013469253466255202550738989047608831041316810381785915382739520363916830331942406673171402096028905235322321206008153385358495392357538664225704154730610166115141499033212568467567548185377267048784438425636394031828591394125463019946912381539599140414010066704483232265464563760075626859865801744007947911288095917816214125563833362218768991686637595899907983458313164224644359052724566447541185138866034493091694098196847511283298792055816228888961666047507868943268202021379829860947709182508072862376321137463014392180662844129586544582175859915507455157479831879539411594955098037698303591800208088865399816462487039556537040181947279455503007468403558780315248354630923548948036767276154527329738071608202381763518192431710572365479309943225829300206716751768485160503581749511332235407127546017097810978319406646922360847502161056071127110669477446150494232323573557507066778080195460779273474039323693968223060903421162907589444939438813828018488771220527814113054501682460206946077503279626666956366714660118228572162362343659583499605509695365013301660231598182899596470370775393881760960964230161295638085606347972136258385501875269214915080096211619678732780447384644797237812926539936737491317907397885220180100279398714806321347786561691960992643971544827570615475776419308014339917359837291645395388747424421191029270657058590588902695371303026767064216843028415566955253907688936920929369193874101073619896351796641481248744760390737038163626283004001991040676579027729978462529580829120273158695346171667167317927890421644185403205060491058668334401688620210330644177038448555459129365923639003389274553854923408703955803375016467484868055367464886160800259375556464248806631333268521373179693442261343012112621926658432644305004689022661962053298811389257272724356714308597817741453762724685604139505015008897996398049318309863810636808576945334243987816742242457907854475897417633602307817760466199034270975712177506974667149144634716104095870299765743512329298274404209207549917752004488701107706387405814785645666489646864354572891692214350187318527912218840446707315573024209699726960614332910089210321449829974366062063512505656882607019988641937149829707070867729362680207711431154252943383640441125653624653996225063248064629519040447509780216553007543425922063603409938098157685555007562364952710997064105850987434378748913326178140059106767350381092167752594934883218034485392776279719982365857155256748375331816114040873022949777266729598166464439145405062423669713226183883678354731267562250556917070903697210108590241742725491276371953443965419947377412657801109555482480156384835133097090895273494349586904253066520123371559033675640699056291552068301696716575449777042431923800923787541245117977137341029989784503760404020805190556784090062284775744108910210237295835905696536621693311808285509373944793207925279278918250911188304252010769507284818436525295677532471448044503436979957853434623115630911600492479038654406396474315861815951881579643993219331180459064414105930837339380900542501317949362002355410718647498533228909685914973037462275817978032708428721283416314325127956228234158806350469330439275137413580654125957297091924968199401260150455101788046677188975438194311547089081729476485438715824550594035586750022776022335541202924842251989087439877909811088884943257063434670349117232827158392837936639517341603662574125395886654706715506517869206632338219406176461252526645669740291340354373899935596307439463764078149231825449420926218647161447951020489512168671149797245423431001016265771076924646328380277886226292091234452398584188940214819682284171008348794941610000993043143068316536072369199550511571466861142223565578304428254010727670024789634224044350646947954952797527561492412501215742567280550767631593764317145081013428745812840941610064330800582147960300398349286956301894569960926382234675625348437689013739554685816424847470844739926347899065895212473852466871246766346153496046379200402371354775973742939924762170256783828982976231370549583835785931644896066922938777328418753676682055707674394555108434953650327348602155151626859793426651663273921688742000683573937852721260587629493306183770057620526597691275337223185285910508220971797106369778538068078727578621508802836532478084101847997230547402958920333300266049476077157849798192910595667948415925139145960975232662712770676931253836159208648337555194303766948388839340892554677434637260229145957087522439540342514495978246868849402208497909518333451922127463385316077074177634635991495070638687818275180031695836122235773768766183628953856382513632496365031871449000616100480314738283901215862719532586023893511044047247027710537334093857578115462899179162156681598752763440086709508220886428945460344494848772538487918289254774735492189323637375216963564792917029830971280368688443768364255326724346587883534133467409188937051495906044381983218955220851870610527338506280595150746311598687187891971758666678132784766869428236427881273498546422934110959625276330143936881134253528039895124391181548173029630172561345975049285520550796971403477627461379155063334602822320252423536075174006238765960552210123206125295046682498265871371446903515152282193835573147442878790506341485975203847104398751274914632653521830691553901464382647752560231082754971250736255823772659562894371300196399072955756871606204566681754756088359779085876232678141100813883308519400143490829284423375059108491242513143535618726088666092472838028546971183131519333223096368838006170328636448681613227529748373382400833433034350811079084134655212004971816899037603278477076956184050858132245234832748066422169702464388947076143261106022925140771682747352642939065894603805895645888207154453469427591195752305483082946723983450821121352754672139466640477405263751710543590924445957471405487694756425575719042419474336833458177839751136932071863789865738050960934677635544269158421131260836565522825968508054573578218135833234849532973485488804606614015637883017726707683795909930703008812855756077730654739259272429469655078695168367878858494436742206483061922421811852102570309217771775524876222301426400649805947216727268542425317179772160327692196323460736758832032805922030224002865881137150099924108535956164518328423382200514772593900442894131008017583409060286076448707317970035377077205957458226369901671984059969760086425936914980336466573102020958704335639743705850346913156519953866259462303692719485242244424438443783523829727468729624707155116373401863638505648733784056334494969521278063321804675006344754620663051700021923895404202158158585281114148655681278253240644683274324301681179872010848570529191982405116066015875805453427015030299260921748720348624244648242497642881398767672901347158029129684530269099411238530505310832715601009738613367730546739862697986697761462867559740067473921372314514583995705471346908714357323546950968971401974189516354015412527528779993567057777578914823338064923127608977798707154152187375499046732314780337199130109731936435856120587749352935100055755929595934691860716835232839431478371747945430838019604993600512216851650415055253065976767842931341987016583281868671709511392313096043725172055678946866371902567521639946126316529447127874591099438684793608828920415445944276428891501724541146449632343591223450673174764144669828159023700095040882192861950337390920311399088933346415850775463399138494998541106603674181551612776675679703891567161651514384196743113990878010376250644410661438739024674299466010897233651110425177889779578056226724009271443725335958368124454095210094479996093561041002323913966199910887917197310119547789496862657890618507176341146986039459123282335874146718717189231417124248952662495702620877188520275085113142498821640806993575176820974207930633239182349694905162174929002182691958419999286215827086218473789449042820954857915903020213275183826106657770941407088945704346712319220791883813218053925483261890362209480380492250995102173986386225401029259058375611963760678970393578363211850986981453820964218353746663899352849862479845825996050426150786705210344558578950722857486704358934074504090974367917968491807829391934548326844000669691919869111097310519110765973238134417701800944313541404354275962289339253575163435886973568240066363392838239083985508367219320367998223190871656002984065504414804108771605129703894392720459296972049497223305583639199506408387053131310146835863063617760396661041954101140345457973642610587754192917128448269569504264758129601516612278049684842338012795405417959411439637856437374072287702520954314758556345504416891616486712274778921487607628914543079182971926789017472897037572590449401533319536971891224767836582995629737612768734008133836644503433982743865581661213293208531060949188418839655857287948746322056978280438361339310473727053609416988793510955946472424481161089221645787494837511141729830037952416376809200495157964409850964017521727887277737605985227397727634876252386499170946727181262368763295685428895068176514310583641028546834741646080716072298576380705474508146546378045658739678105346320130639663433232322634018215322682388520715280431770859677059825159031259474448107795112502140425750634769441000916925852214229483062065443570994691557122007929719727310671723806813210032404334532519092303232674821569845815635006078338265246160526906563438134357721621121899809364967457844760434987439250374812086151640601951728030516206398403255340966444751466438033161142660370058090871443791879104108553807417443767248383450714431497335586988699953803060715961319987111791643703356206618476496018418751809060422841172626711739462222332878826605677705630805687599735961418879986793027128026783848617599062447899358136799574928587598035651527849412253285251557006164444354535542995568724521709409649380709863624267992493556084580820222950787226212767799288523117331952881751859672590473024401324131226468644874792831121409111838454775490120233768021255738162518141317070857997378179218970237463211126868312855886803283338170403681390844804266950282580844610447403547933845616236393201762235864567414588805576369023943216141414702071791344231630036172125413060724117601832426988859871757204252221512093765234932895584129511321006237038708963709915917567519730513377870599657269882853043394603846794069644376694456117929218812611834509939057974452495487710539237741981558513163644688202855241759714042891437797196617234955815287369092610975595007862713632671738165690806807738809232573420621582200268974211899909100170555670537755727486764735364832950215336685296392346377784770548891595462925595807209115062991724576222874972858770990570175088773782958484690720173534415662753417556865110658259638762938451407451007141716493113147576668761733874399127121415078205713129634584304947113221268315394184115835409379045399373333403033610589563107726617636947559903505511675590883742933097590955173000881367352292759557132774862788320828784910701224916785442761304993298119779787782061250089706462919568590594136574664138650403865998095366235492963179013219614113239931990938830117445225288463515495586931045997475733306576868641614404755260464286445506379978061668562395818980284849647008519170598127303883698886818728450776896322235465333896605692165577385224736503321781651075494328656390721649075230973449229862361259953626534111581432098813234972569435024122110131380525570157324160806286009972175962494567085774696793654055279264183694319222498329013825417957473608929006567672183925778094743263711123634611132259078477524531201319168777658068007442918362876202479527487634785684521591760310157534489076805253323811407931356282251946177232046804107889259443486914845062241410279881377877264702015387915495909560374773051208691855627935758918744122678706181936390059940994535559708562244033409372132884567346608713103772113789549496207085536075352101875400738739025789852540427515012990357772494880679282517607752920797285018168770153806340922471333581858345262686359292317319743152354221990618022807956078364152292889976649620617583208059819432993412306292781815259027064949669855355209016003890023911331810646912104791369249955274825520079839298511825269539361773921867808495701455264758661080519526170385426716914102314844973398815809050855886141078475018939464306492989408326629817523318474931803644601766118033268674899339022266420922276177075401012554675350493175381224206699075075731772650301926508465020044506044335050621216530841934541160417684953838613733440743796068143766430076168705635492287611750948835613345090618960602094712787293594548741647836443373965262320890170144818249276694465153695789333666236722635444776431709816342822906891058672070484894652235492456270053381710494972238734773490279097456791014163986675679445462886873399570833378792720884484688999296982478131458572844544175537507336746367718424900158081117215027969137342522178514237418291029141414208477992664063556480164521269080416081333672205561241913490570458996984492117465977871390059071442887473463911572736110133844266912222977933885487583824547558708244683794872088436099182403727257987862653518658371874855449496729484857171943103295791781345478481108733941286985623121328848167879863614872932527282708065552038731852359107028743753108082511880411389830368320962857183388489929475047882944329320224894786220872868923908704676951597729711832064626967610698279411587125861659650355718477809081384728309324422227067006842151276303833169569673824432162254050530289111687586884446010714028456580936514414614778714983017762501137520644936052706831426733086342044849821466753739884256697498720005083142971358724318105481006771856988676332640270605543982207460994091925253537047143814954339273378829545192006212700517088703155354990569263608564170283283514504981135866456452999659713018879158909617575330834493313272450332454618443759560360146102553842340758645310862856564703684289378328158874864297195896543150132859270045211972083308102001449582524850792371326842186864506556770191386982006631612264252483936587155834083937858586626227081867692747289285415743272317099357981120613461071272518784589939859824577774469034451341600038232191564777818812167483373253536022899141578796851308961656982105154703505202037115582611442115369322136317872124859038553734041291811510159911000999799638288511972180776409721950904580322412972947052598487491111078617857640026894516132706377093726872389193967721880454617311663581068126183652640284084122222067547839085313670233030295342804576846118404379456211035723540835526395808555110636094329270866754798170869666078047859542796477556870787008762279536647076524995605436706676685130393801719750207633230334457604679391174919640661397269456011607387262349442492002819454830522756926294032585110970421136087460328158861316747487476905454312481087616721515616076540967515740587357927595570524157702599110905761736333533987245622676056190180100031019931334114363641306683857256735098992126307049130486250571791253135739375234981948297813063028862128828102774299130436598384051418050431426112828844056843965611435420691434967313119147437943280952899812123330120671016562491453492161710203407369579182632725240320508058521890933634743646952456092222905615111858578821641321888030258923585685870851348053318619580918036769679437196476575767797040584625644696914267338732247619508947793703908915690020479580735909472642157803172009587389086090870050119230061772581279267450519211873830650870043407294709863437882047995793651313342024976117379250104830671268250164883663452333244792951257190390643020687680858909254143925310392312398444871601008945805007371123310898984684755558950837206595168341022233325840810468796395193060319540306568697938309568815840419331436312741813358680668188259435586443905858937183040231455498951104998954212686306369483196471666769952972116334995814986162116699536123825783339116937369013252198869285748353292514012672426606839046922198910761909012599811083056698377511907090779307910171815228181211274852744744228271114447480838479941399871823767853850241864909377891993008793360402001178815222449318045610631588672718325316587119908637012081632147774723788465577528266169432985805066807449548613335076276033750407715680939141598561913072343412656205522788680788935469624177334190377339875297984494898405371783073956599387422049853590287020052574559616875491505122848213663138387158520986701289126659231223650223235678813777271571613130776235893108605921853678144648719488445957392802898889508463176897732749669585442127402988875022959619630960608838233887204346082338751912462611893979953389289204505122825787234790985523723323085037979117992958430267697201610147917386454916028064962451264415673341049439209263850862197109232963606767533998062352869110939714230010995266725131792340757126581927886238942709937193558218610585503339984202681724997296363250903501646097121017579847316478954201065769853905743913626406935823828628849713304674435892922970827881659383067486159810354108821549136547534563350637460247062021837624410410296936585881432691765052933510688195631760992258661308848547041377850004627681441212982591636773568986228808684106387179661441785696929179619612041123865328463905221370695438283920915501504206788758439501348003936121889441835189521739520036415673374272698258930769772011994617629933030772115475479588010609257665331947453426243582164450186910952009641649872068036284333199571964688138146266074201956513016040426649022645269581316902551968668364247592330426043248181622454183861469822469925965565822834234593057905176442457620028876109469248153343598997968364100675197314474042597759261860166098790248391923450458351567768197924571474623644330097564431653913011396769863880903854781334028921978734654792434535763899973211413720989482089668594834049500445921666262327786987128068957795426177852340328998696558596405429355982928758486176524397268855990568821136823807088657041526475396097598311574290913291038419383896412842769767192078527015774754192493366408325901743374777489110375688094598519790413572644925133191426870920748111668007572197842668687104051084955184342978481656217757862082880788723799491301907969979873309650990959938076893962693669155142299277957232000128887780878677767045279758583858172705982903374043614783405505266124368466793826502799088200529026253937670157100479596364089926617906900564497381491148844536624520131336985388581321751545161526375006519893931559503473553886458106239136659308637613238453932300241608929823224729959945822768094309928773555255791696376282669509005594017638218802931371372046439095683798225217581944615096988870285319848699218937381824659570048930566438209141534671285557588196451150704658034536063375298542298258756590049019297072198794903715211983732768131643455432327776941688621096301104919507902032044857818004212654924861765804135034882162713524716426510072594516199428486179750914741068900501524453172954117784303721067633480522798441328059160742900144626252876302613120751236470849384379932708938155677403311514965126451463437380808014459700254558328000795101760511253737101573198296518795942743461263494427365212374970464041766471962357431582441908513446788146404655284533805757803574452944887358355090402177013834329126330761325909770831194630159811783199592652203803315888658303506704429282955084383087346284445766137404914251524600046177285789985957716932565595598102250120825232513410961037426322390932001890802244546991116379894423526184797355472654523857136739370173899150858103291103020952701359462682019296808923852237853786964518863580714465464282421129677155655950613323136474635835399093352009775458992107462912606377470120095971191773276523730008955369864929059328348302293288751292947725264077112483495811394103098009630880591661951978389783778220797706148259827320376924635242335294875360514298023509073530405687954801077564880756331842910292975155895179677750983938960974906275447014687795776420958093886597725504905048215290724197239133267515748143694743987460070242085474289267726167186396436974549448134381376685443746294544336312396407939706082531525464929734816913726988303055767846160420009286167980197725891621657815673908701718822824564595551722995092294922766989789894306377039700599026512003919024752164799901291021151783710439505810183980965788702087398330697035540988548695108408321685473978660238621418791932735530992687760740855931598103332472149909409379031955779912797664913541023507982237205010222975590725004627259019068278791250105329450725976708473303288306910708339762261200461532747750964343637638130945406648754456756779541066144615239987529880641731333049525131549368955528312052596689950345135884156378942494536163238545452141108628664641875052148350258517061331041044811674421839695054763271410149174615516286679684993630415312822507474191575993383589070347920083983766926935603109279631840801277613031788836994921724667639522580378362500570451244839649626617916766315085285226203068531547981442974160774958422633149369800214248550051561150498171477487030529748957911921428976087141424237721372928441094336698155900432047049141326051677325878749794426567982892772873778161843530211207803907829082607225748726625820289380025747891490788381136781092484534887866189533994736531015826344476526304251254353790362749290766631671327546359097729356924333824070393928712410052449160167851884330595765859808644308657816821643385787545976299479891314737176393776256880876631637369482409786298051646745713474622653578340091885749791298003043794906294723299802044055630392937780156456197968826474590076172269750755552343629580687344618049999308029966070716304944890587900128803190886434596806103942221340722807802191212779233468729213003353806214549985668046799517023919480348853189934798359373944985416386213908991575835541690084320269856493134857851185482403039142000265026953699935506468553074005404116411221594186180636990152024182097126293160443027566198554583053461677018625936358136283781486200077341664772570032144579929824069780127241230362302647164619533839404092736621275561587407166400808180852202547769819868464614083754528274819853350276699034156845139180174765269635551497991640925963989994147497816853469084510713035530992986285258303172515973171923479430603243350944469284668476419671087650644198991022031329120639192296167336205592050657361703151659852518650733577264177343745701414994492325444489913454371949315355238428214527495608213354743764343491451517008640529209799056110885092410317777299591909202292498167024404034884661115297592389576903030839929050676072857864175607829024054590508862818427345754743792929531996277840349372591800730068526730518688442348417759501331588894921381823001833144119543018414521981125002776565153426374787435015860194516713821460754879336536961300112163472792885317516924962859295500585812101462393069243214884021573695076726915587527059759968435042720326910490729460324528082471781028010956079721294257580851170747384114854767696800042208214752441298703010963733124502038082904324122190710926724590474857345294626688216279653731354172403199238785909776644463882032863108499431140304602219791639037362026245980944935197736116057463192540751927821898489005725019807013003372473530725159893321399485242783697998281493907632034942992443328292078777531533995388842774010160163501063478472567775555570757822728800592800931921943491919469880221544673519950672317405371560254605956638970081475120498106233210894641279058640412767401757283176566705525336821622526277684359625916183758434919369105214506917824684684731847891786682125604782196223927758989133508704069694162927624705429951500746372296658503334481858694022706786104725989733059344040552899595587062706513243242138551782052632000551992964030140334636673675337120245902027139425350502321494178228582279900631649940078742322698662327646712353691161609847957505096374552687571181190329106003528534557783425105953381898013164957716567663736176304737805152868808470933330371715418583095401017190517687781791651365434815553085665486536531871586269029244334160173190511773524825996687528044834404019355628413946510934809500976454205214073929488613328710563480098986067128833967473376495860225681640034451186477609652124788645085882862086136637086981885405928748531692114186507876710286301513121186997494073356641064849292548483341877404574998913965666733842467927572390938740614009363914298405965192555716871260804010597907310267014534290807341433576276914414505655599189221870110863089507280878967708014971717460513801892126703073170926242519855560342588841713335995190710421360967719956051062479830671699452459869895426286707740940408091395530879437041672646563484022513205273734542754303693020316668175467631465569231098206749084193354899487520888279889032307737317022771815696611786035053381421583060503460503577730602916524580064822737847149573974346103137630061659852664774128624081731346815582373216450214774618570737970349928978120891231182568770461986120518864739682449672034063068989234654651376457966657039205699294515691485674500976025280758400401612112476948435894650417630245624397009539529862518470204971880452031405150074299309904739932445415700129991483825275557897540311276998118459634212920527144482724195357381213322173220614714689609811516037497521630209548441127159433254593319467210135537535941572524129453813632312410357461782244543983051642192145142137552311405953712109513691645626543441899907854868479625898679990924097350480756908175883436158783327711186024417691346316812743551493998056489339737503014485265356413613000847281343933987827478488884586128393598908779052210526939274431438209126889542324808172370447223941145371163718487313177010205503272925479611243483323778972146582433757301282176224416638639924636713864787462780810392497739499450862922495278213033998971006244970254098137746518763347576005515306427600721296546154636101885204307707105873946467055890183040963874288286941135742630945038495899759335888795294126762041310848431126006961386207970591006496733061235991511834745695515753917923897978735287121827364276572875304315429533972073990461252179841395453897397718688963655173522201693708329158904857364835075240009057659595852674540671396649101777561966299786791210100143280224876344127288489392773366580670163188695088491772448656873569888584042600366800121518953190601734156905342552889442390681511024457743874167688579973837361718153317845004860640084550560769963382730035691054260228352165132251941297435147708904256931760403261364155507825903359762264695401084373878912173112177686899781835977942017584179392042768543286310580536271924117300027751467489690861458904756271169886965864893930487048977004059431366170455498395606170342319701053909024526977025786343433484528122097330103895326942857848975131343813641468550883809963902700732224442647751921567473166325866820627057266742212231836922179588246277336809956097745923235213675561013207908758560528181630513985659447084040976060077716185397690739376174585261239767818376783274398044406332962436564032835144505863398515591273963664274431405703271176758669788178686676086503746351809460683278874080530739575036655731809545618737116392902527120506556260982599797376007151089953925344394781363532248828924764214818561948916273332757270939353405771435629059060479810872543941932566695748447425081653014076374361819182912721849860799530232269323067164496786656395181584690331126563418586690576390633988742417013542137398565784779057560049074363645873591050710764415937218146104902668182356943989691874433274317139203021822308788769501409865427213489926643386976596351906820209029708575606882056896868086788744396458942713433318828209551139131668870069542253660097633450060451281151592450861167563887389317146094520649325696090629687017259326696911857396239663072568442947318320234032207224130389625051307774685401183758302474650585890039639524674040394426176565785707409579499214576836694555504568370740040561814798648984939365797579647522398746627245603169642349301590034667967656997465993342379398273371617082261477587770339680902370154825233552173486488152840919222779456063452777746229144776156907272034234220953168551170459968675876474327182600614026149347562544360149649828034367393571716351812908832829234399469878386978923085992308797876937297166579619367888547906612991912585736626530262479349751887864594518750440437097696770403865004228561259556097361144686276537306417573979082331796592578189226948945069742767320994855831123774453731607247986853083388460412171272601556388017619678442504346458614665261407344904224047469969705248304903842625883922146793025543432141745412250520663473198292284864091697926831323375824617707590806527864394352556082516644951740109993235721405856935216196818469630611209385480063124208510706494179621715077797341981051346466050489549320839183562509738683765097635018801509456100241475269214419956349522686196016940264153799166761947294162520435577227047396893820661301609495901083289236347981429714178227836280324036565150348228939976525215732357546259414725937840465424732202735817090928831509372034892687540177434697434938980339171582802536006063332033444867568601042335946469520547369388589768865230224091990611839327745472516895025432817300588316217109875332085194880998712925110355061344007635344390337944152142700079369555996023662186862316434443732389678365442889761948937386721955182906563943243436101984649056812121445917914164687169480622412486559941894877214640039030953851394389914087406282192783115457405685315004162687030169409990700483973379720581209208174422686287341317422235423236749591240405217759885789364926362917683797885211358661139874293161896446019543982804875941990096828186341520895583324381921544742385104805586286482586816996379497665130492333504251639749731842286281438918243706603495315672873971575166292832008653222055576095600042527441744527076048158911664331403888435992257324056263796649111345017863658749214641559427930734892287655359982383350702456582786902768649030543858221137649371812010536041576266232149586982530905639310743212195958595189325329860313166956883030026910139016959579552079630425891561376109332737393496360298314566613487312032593532321451068773119985758959295361337860425204233934235867896053824837631385800445885767338943555374143356967573519778304323784118062050181335331668270394020175269607026079741739174330237844241562665480295171405985099699381620938231790024587788146186120272317694067804823624516752998988628125857075839569616466061591596121196110775821457333428399641553262086044859482977191142713869540002833931334407309038850852268076734012053874743106695225482338040948090591779634528114751017819127954691537869614503273822442396072293923008708517071553043970290335390641339411802520934738031448728901447817837780462455262015918898847858275499731928764224176614939688240784587617918962265730701730809894054665713079430621224999744103921108965313956685426905098973289414635043532812548736630750392035313771110212467068943869337351635164661491921856288798690716790939678903413219390572431212509487683407327044344489716299849173974969089479108444594522437313897733771886155386564085242278331564287415902823147095520299336062793955313233362308110314325688929393418685408916957569959270333951295846362648624245496598245519032820077273872901975382961742852190181567460147178325327720381564662524403424728385282943150715499929635697892168472641756515885363764846150081037274359371937371967082761492258608046568605505636569440260134773748291653889257800720195057198118197540961068792473138096283606036072817410130090024064854637143021198696234793533929191313037881703116617848541879112645559029603722372177847229536953491972329968380048427175566768398475770364026114813537756769296624705783788469841665796714146258420238016421177532776512004481292877966070480603484349195796526059352945375522121237847718449190097878335970697973735936022763027210412297383266889466236882985481398045168927810537734693855780546943517692424637257851449926889367872596469125969362259561248583806664453034141911362183108971643357370942668636982974034347701805585976387242991854454649971803539129056840945387079734319071412881209614622111378255554153066428451651956983519871402471847260636617375235166421541144515625401726513856444533318607822091897532304020956096967957341758076788566395000024609511398753944143061905969077157604911697835275192239865453570593679899328631118446381426408595582240942937822035751404133072984124823910163350282760522619109475637618878745121614480047164915436094512316733761350171573943337410537993051710037344936354536201092804467367373642139409055279401650992478139062250901811149309000048633332914407021711337605315083022030275367874076860872481698855831122438426311579649044789078274769774031317156139618685497246577436867763077023107511466584186737599334260800685676011013185454071858336691621340571190961387878458520355139727694520795279007131413272647673674873109267047817230482340298015034307941483598967606725708910820894053372227990616276560593513113726318715850796058450024622990522163695921511678484339037922646447688179118872811760625353240575123219826202388910916217183701618706052248972664048057770534471276751794320150943277291999778863582297316871239821471677476532150314624987374831037281397229782577797635334435326349582097526586073960446054946695439721212991568522805153062996206910570877286309557407352307542496428088102532871261548509003803553786332564619425587079467144710421713919655361931828272483772128412859139349909119180756144369115843025299733655831349779519512857885560554335326355365572414937015388517714600477216692163444986234182112817052635761602656689956299019135714771883270738130828232719983810341824339495432161310137288546467086567147920630939036997959927304950373912173642484097354673599482309520419070390078305819990238797182113997393263810040414278826396697108690006265932732727455970781497136205753967809526720418042765956893342243561002673643119818339242431590575086618393715218468316085437145940059833678411422561367629804567010030284153218070427722997663589903489757411171464593364051299869034168872920677265496314971105571709178664595065787100230147174597732799816521796180300179407288173604419431195264181135768232872825552919231835490863860229539657671081060206374959514213570107370295561004393939902600930812088654898047594187544749351961883003264574343625095104921201089614437039738163475707459488913532139331001901999490506588972941344467712487527950495446276499211487673170484843194688510250483898606339828538679835619446189785333476654069602417927250215833637711335942052086683731602510374301367234412540669507798911414530815626041676712220624008463726915597758985647646926668176098476473508038912086933032166931207152359065529951885971532804693167753988349214516496115537695962669015141370191590154987967290020101253425485436594167879773535391771291532542236311604353816111194341694036942663722468851411623384063339719822547689924295604205484483342000000748539707052903234422567240649817165486018026474043700965222438970659511264125110615494838469371200649003682930318519477326305748143914638434356184773813775501611325328779829399703183668280793572268260370689909802893940061479142707339441082506492465255412974396642256184080398495269289745774895685275611581224851292621920502421110989057212608044904326055162049629922970997725821163912812002399950360934741709213832337229236624871268575257037924440124437532110628183901364814080440500793399926625771316081538404170091052656102906123953626889144437155649168500295169275177132312399860445417702400482967611727981416931880135886466013942095419335303034582874381016305042557151459566900236767046662543557970919511919568926922386533767743785424237164741638585425880233944904009374719956893928315585783934534309750970404735034469120837052689416675716257846418656984837633195315492404130842640566952503461553406641837896277258102287131833020491743950933614611035619789770241025696523089499387462225104241608334218931748825711350161601196965022131110240889642286584541324648176716664010477081764441064574320507848080682818777674911694658790143119591585945028002428929335361266847524976248469875941510330369904639989679208038857314016250879283099757527390607760212861777493108631735548335541104548763642131426959627138180914357843129426946419864660671462078892296341827644029455201601619189596471802637333673422435826051762503781348443402050583503783559828410089043881148482593161718332643976090779108282160035893851173553811604703231398408780440284178317836677209639725976104083309802019211983751875238008941463941457808564786506260906092885466029369298018204448207137588464647073697848051825233023960696522149114099014056086907774847127508296107337232034318783824107430762098758064741975587667052023375600518377028701326371408292589340626263329372797753812597280952681533853733158680853985332349746769759756177156914589590062221691234087638164275051915612740893029268053701606373044371601348674838925897256540745355612712139669555438302056066614268559942596535866655958962232298981479374896276008106054233616452310292275607964066923959432762737823762327142207796931108353655112352758877293529389582506288060690741540634278529369142069712139714070329928659475974595323474308299724133447173926522401165190848078572644193516900569238082444641720885747378258866941855962737732583527046426082610955817060434039626855777588521457126437852091222333314680667902062755718812458056964576640510016089812133926853388541670181389992887422447089671342305433566557923118753616473543603922618262973297788725574944141864440452346022974773082183069724716976261247975123370257873889753579482648537056948903665118567514936080398813976162644138104442649667823826195852594449151907323119892331389719591352042364309262264920738130563342478158369734890701904250532780671570288902721995551513034174906095751662712989354893702757174805438176754818166447991675575197777307347106842791584940642701633685362811001440261056036321876668313176954646868022111583895976798815939403531616550380689747819853538934702961300722307829344849951027529840436318024686242466297411418409105079832001380688446191726041811532810040638590716403091156675916388872993624165330578259006644752044125941410022024839808276102867551269750561893014897665189567212666892402504085181380378223361423748598488772780381775824269558683058721108901550363249508293408117403085431277614743451898612306721243459125843261262040770372979466495374014089378246039787681153139830114407792006862429481838545058261507326408975609198882622658853630260270311119320693081268269123968895621833105639800920084133253814110050675171662283726189542016735692148429116688075197078100747183204194105579317663693831137255595584840211402311279667844634441322051904704486085345594532881540054273544259586968571794397939501494784680604522559252043569738203978775321158649122906508695735285054788142443544985921425358886293549876091119193193704553325977609944309137523178156542657631045806965162157559333282529592016864586799768859890784078285989913254175448209378978175702920399722020902265270110396011141939491395201901072801910342431549120900499313589700970745928847802987763667763387130320779466130790457074527140130329426374378901612327751954853226463629147526938731325213412877971906607288331711831266111609151164772224132507974238739232711293392191345859764979463255942614942219104502500360457962587934936195506996424521592537902946712530503648954736788767727350435433767268959641573122126579032290971849500397554473268970021119445514584414905999186358132781902817912963800306645022920403569839333758111580843847310971757593643791439416038880043873219741502858226233676781354068709097808276119784590885878295524975388786319482123910479903304384590334955511333635847385415451733917267693826477957745579564265751736756450040046922072238129748596072945848793553639719511992596739325035833997803489409078716401773811303046135155106376397837520742921554357585805705020899947096765944655529610100444744515676547639046297424414053043035566332437130654584363216277858590549526936775014920154276587481858968012604509131319259934021393915263260357910142798367740633482446237956362758546157616585028548880405865599071914200255722990316539417193315306505525776447589315945362567862839004272121437928657237369885881333536097974748848104427349721775396685655288991532051085057810273519718864136939814646188958932598853977988284063090366224758810283485699646786383915160165673713833393460294294721737183698509187594752987419159412741554244155051068057299348451544330354728553726208720916736642548672065086388084227778925890811947961752805855564791050486188389513470729486527212182828702008074237517646647050352912216049665309082665940524175936836251943309438855425935684293967840511585095618386114099079498946436579580772693262658277185197509323656168119331785251081707161843651600682093236497315651893730449877857684750614122578446372764435804581717195325345950863326770498768081377449023760481157082521546716286355704878293695471510457568231190849023850008397355836030851711010773741217270601623296185086391317600555532977442653166234650852997103395043082084301745069846063621427069182500338413105875010042001456744727192390740305203390061965779651786511767998611318319720955087955721368888688562611471330713704981394871874610793948584127034656594058152448203831702218782245076124855996829620063506741809097896561569555336190718954041236080831695977911200094161141556113942264557985357567042902887930409253429909170983908315366632581392466183893298659595274997587580857352937411706079058777203666090890099990341396649567647929242344121975653993448516489405897612217009202214147930205516310143497293926810711611986218537188332013088123910628162246147994194866232284542208951371281648910332469125812548015107918950001785541290567907347749909328939743511181990589910412235694167596233163752696275203128044233731599987766135491983636281104034593942461075534713091518043247708192497565759274713882718930676801625240678209234266215755158840175379087386984511540684355435216350175517193523127543115683245638201194931213757940429928208130329977034088335087850021100005685301580724415643438128908677636253333819261357335860703062049939917838936297209423533591060504628715823694976318029514260199299407679815044805318508870386775486900236340399318919211185493542598764196960350457312379104914678832553792442923805026011965485727960738022663103878107574154354438322353866391136839607275238133299694284276858981181256250061264764520712772237717254640131139662536587972981248593920793999286817849216505058078493514059711062850214518637398352900616320692238038161721395133057804241289829099162229687107821887124010257814247459527711633776268942552311615331046328436804293053832968415610418890632202806553285945096481353000607265403108063509493116573551991060172988954023919800762469078642559156756292519332044896128652508078545311882028032679875672921379170818238562656752416860345933276423669545028722168924714005895002049107102774604072881185634475606504533603599310230003090454792435869049918577476201178794564728085699104159670410694782414750059128285021667277181168974915992555449330614810965389165703696544006419706294316373479751524875682223295677734447919136285705478723424457893515311947460419276163928110432037303593862502666139955108827661415213180492364180276283003442397441928560127195003203125248922148784617080233825837311714319269876045031980361129067977737094899884347712098411289600462253501107262611094381521920534709401487384192757706954623819666230104835084074348531114737012910851377402083471466092949800722799636333969712734378304783764786228327385584206419568894654234985459518724742929751856585858712760627343944610024967385300750059123524031896844123765372266880018019266872380619616168436991296404202927300634376039684183058179874707710676826796373765038831913763176302502392805654047250884574111770606345602316157169948808411134522708955947252334859910002973242515994680494972127995066247956166810358279468638707079393366177760170878453201703611761231458922375381367842840974608613764499635880062592100313826436331512631874614073377846365928786842029158677302788928413367394938982253970487853851259967387057307079452438603786544258608071197236005768750722265273020456232949873162840264027191679304232851962478600976224215931107059554521431726637577941810075820037173209939939028418303937525205078205565911936340816272222428922579159378935065423462532661256122884189169649631066028920488951796899439595462720709699946001389979373300635979727544838766477937949630822761414730355212394196239757773427006298342324170621329013289410482883520601057558347325175304473004263157481132713390181057876599743734051626671563561214128697144352120670403524691787538541747280665944914906954974092756242752014159042306901763873931206731327010586420512956665753409322723476061766590805648657053437576554963700579193274066730084004537128364741775763579445446370296417569763837460584546459864700291257968901378474327361381265892586610941803979140723396565513458564072556778583235745123409324523275925975956115924369194356052628886799100465843923253611561968530078920486468377563825928904337004736128610201961373001110367293244696660400603016749320939866760531819045292292387509086504772954249369483632896125047497880156201624599083602267169317523052957653274891207188898437319985774246813166733301168545529835809226443993659088826471534222234918716910106265143184498136344646397963624949735434022144267217981117997105854706195038347996963466863470071875423940841289135684753068186340918635584986312445126839769706656782534621451509557845787807010288923597465273682696497331621616551690633804598990145764453330930656625351993412181552836646890438312726558025444015815789290598786128752873941280387443512302913858458089782453076980534583740427659337976639960161636394569534667482682279094360912991485219322472544153767683856738307605516349440739597212504777207481187375712881264691148525476676203797734563904551614720030877698950170000656720820880223742352342751291909103152118861091202274313825470153863512876887013993163314029077029551735064075421899378616797999690637872663080206618088519465796508618185338227290636293399043043774585780331985504632432397332460888310996975686964367620267137876939023581073041674586562845930055560083638208966654984504750180244626984542896446406070394438638255999962968951375714015946001979420990570557893213373356032098066141494794715837383316730823672957069450538197228441384415102951471758981199587507007602751561056499022160602137761598681883453356662172440356162184699343437101798562133210537546342809523087582312998224608549518736203877549710118633260266397192151088175610640025084016818165353734281447822025617945182188412894215450712773260990854255060881338525469949346274035847486548820015172800079914581076107770121183145215969945422519862498180276594306133642431106851001986146104575005098950267099478681531505023557789009613673144679273415536224769563430827756957894139595831502463391015416536026691362828266365422273015157366130276318619404298485407665707768826644922714729925208876742754176491908720370311448052065278344316465773202789993936069364136899628605482340517220407790892465285661769897513019544605282024494459177274076841068389358178986495222514453484163152963607593480481506458878470554604251821037953839417123340312290752199082450437744076382615527453592803391777696922422286208662600952197331742838371175285305967829846325743024875195773608018871803798363435486787316836672406334043710720703043085401428034804186842248344544935884163630936777446648954943374011501908594522564774232801157905489012428759318202378365394424091850800069002715389066877562554733955165537074359455795294313227744905913172266828378609767720673085706786001935195326070892558221389067624550156272322069510547876855173649904306992575776464590563775738456686300102260322068018033714441144299627339523634838263087491867007968233192474129968317557747141752024170584943145736411355597293861154420554869151766013170678703480670228110076011071611983422793063444473360443879992048927039916127400093734397123053639740987384557341593232056820562817440587773227543736559209761414496781754409523595038654367362266122322502859479207779438419105081500624675715918694817056180669979019424466590259825927426687424400294916614602642727310610244827147404505296512209757465091691816911291121338785150253065919116383027538586938997501236995777459623988246068749825410118873828075781517098733513222843917176904574400331005415686202022950235219862249114477885688945957907654447628344479298168569846641469210365655612132186857838185109441184173032083433052934781494713918600553943681560407740635650010334553981353532444376068089989527690457422727620196980158961874044053597816070421831059535371997025278390215700634665584776642261168020411160826460214712347905069241703222514384721302619343344075255532193657863189123289956195393413438701079009515887146432472757040505681437998218290412743891396957815324813087815446945152382893386929009758551416306751506963709369472734057570193670667941177096885767768634005380815926220212404298216131725085236593475110883247788081065944181942661631044856257651416564602311349893015867067026514833426004486068921174359825923627166175575973245928262890393688665607965765123436142036689651908519648475587809854680075790589318309626666600383250935375775939187515905473145041332927079736752694874961539521194632670336440891482245918597774613388322088602101886562290087536330182698284933710361775827854797230057760903606117704991843669442529016893835802661260097376131457638368880648556206992938606167265117497103804714999312377506231400682281811844096769645006317768351031034905093739882114330407508974181731829290642058423648125371857817790970217566953616737068531552303552958332774650513054242525702055436153748322487527781786684458422964293297901218305366702258818740347189564199743066704374297874197144765303609496603800955746263537741753721764503640564677283463739038910083483969782201045997031046484899800686896347823369454870220601309576069756636818677567892382206239051141412583458667697422614176245136097109539179991251871225649599528431687548510448227502839580474802140155774709514257647527979881022343260543041797767381531507543415202386607312710536634038917959133129906971482648498679251098895368217447213804881471204915705615529738698338864398433527012304271788092031935184712714301166877837875641148847343354675912524734808756808483432719186213395899446978542765546079602490826025290095271233685410331384266243842354851935967211999377891165335343285822009769849575280848213867621858690006112052222137719396756902841896380749662014059838298968274082012229002953158826942030961491730543407868642213877249888528143041996068385027421189555937311460991682811101107957477603454036784569683621603149569881628536185192200041864266584425710065537101421032705077844793900454006439177416675078411703041930579585115482554022728480969296674601093002186039564123494285348197557882275179781425009731806415686479895722899411820874246618364131492725762268070383642014012158623915287101982063318047942733703767900137074119476856852081917264962356051325668841611834042362066550053602432084204400494074779015996330869701735666991418943179834146694958886968594032358979508304466390875345002699269086495343342103736729113069765744197225111216875559605618476395719018135340762869453455596041184616427640643859328468722663188947970886094320278372585757598523902805959848995384078410251630139259220963233360960288809957457744496596258953114712760952400019559390128875311311919669973675653100078666848650397245770114467965371501897578599410376719536309219473823848323467131230494067732333046518563568250474208172378464464527172481262951712687476926169250469440410233794587603962313694714806157177063751852094471330282567298186664787512322721986078538453093443266493025401958488230745439288235687138971090687713729851943054802786626897675890044438395249883618706518081590784820536027884300068162809839277520130920220028417636700932939647257845336359617729516185606351725412089133660232931433516698287026689663552128289315309977696140155242829635975040290870171506229395214835742905255928050296225052195956995997979468814010987830558381654912703704786763636725516357412011347977542964629219514447246863454184216031853937973411615607969418097163655898890310802790503497234975125044342392083636987469272924172386949278675946832836744635648417327377464577609927092822727559015855722647015464727635443235397268710488513150536248533494688523168221159031540965848588962702614493531203077276129128226066644728316091177002624284757217089368625688187092156618426099717479714584000071609424428950251128537588684176636538514017025643900465167202230591394384135983329107061494616866187563543349733709187713833461553275337792490577144692059346689129028202988148405627261756926867211307077974099782603184711883709487601420763117152007901786952084902250466392900210921425480205565720848826670344937128887212340901262651524756557339052407678603770527905827600293896864065717929757229244956618231665142000660819956813022985029823619683544806727348301825890756552518178910566706991097039394053330277503051244497215077906824818539284760462805052443487517611881267487762846227895597701058645060480569877391564863652214479430064718050987276716466536704785402457148626837437292195049936882074089330031925790631893309883849806949173215141042004268474621469393263472312680742929126955891358132524004151092429204215780931382882728427177448447719040314694152639509478216829317600730518309133953768293075512676244452721429445723061173990231796910332592242600328556913146963289236992033339798220775407687867420950623096194767935803522175713667976948647606201550449176830267798417569938666068052907105485242379265167784404058912621420212391238245824525287853232417804061243916523560196737209637300474312188372712171919624763032608578621813174621692604214173346403412741531733512953610378500318251905951291567393983161998877919951424265747735744669396375503005829142041522863885669718218933006137145086255577831594702049347244719538744610462677840574376097831487452562479033144138657919482680740851632177805072217203633941444824174097728975505125053598371621231705762829142030338193715745084728040646920308119848830615523718355104093415529621644662816534576144636832677334916802125674708645345092524506578295023792491811257830494341581514469601731678281106577355279088377652083612884136406560790964204792838233893724010896153136294317389127432133008607567263657017318077673127313691540715963245185096608001251000474452873934362129029254039360527934055346359871404715151204954928950004725222667302986851465735966563308979033744997042870951039628413670914565197754842081743394324591574170965080347140639821880189969289407998673244245605738978145015064895953077225202034838333226728398523690026189776111100139237169358113892921934336283123930622653418727141777182277037584528697377570800693617760920915555657257431536097559437435859782075089153160263513495678674541289570658201012930240988002982713008492184497315470592954197494167479776817500780429663824684071048539909184354128786871149627739608029971046357299307521556668201324646852139096868784124500741604022255480011094143928299359011608786276055151312607933047654918551120347900849241667236957255545721080377701199492149674197519709184026984242198307717215584970640351853082801251646303254606772098206522535020987485245446621397064227664815577393116329611643530437435447194364138207187419144390345533533631253023457326268637067200882288111811896273080978496589451172284710958106597500597991365487537974580817159483044954314901374412798190833401074256095316018721889963303481188934365995197298691489720451131713831046188848372349520776220414636057131477566711788161780753341001316665601967671114897740977815412093894385617455461282130396456451009102797116847824707325648873213641405851256081741224868441256159081920772985796322906182010418778174665410208649858149361857167442160742603122571472769408769585385762295557563269365603123369938980579238164985451375192265761218817864599818717746930132240625937454986838213514290318200758903562171413720685136416944680108875088457561002245551595908801490161759371780184745102332959762050316524164792541377707608040206459964162275883093696213285708624225118001830852690232375780471328047941215982524208179179341925770406580566677112061496368579909021191626890791145105803927950214555870306252893888277315698203851629990145180535806034840671573979526528952636314941627876825045493899292344646378835831611354086520477275646930863590384152257748098523286148783149611014521762953148431379888934024918082648398110471755780801937321543030220264738784501225602296808615014729451510373515880609455740286608599766934336270279288529721978650741899917267618750549507621818242717740374514187119787270589715865663969089154398151258386322224612109372918303972152059846262918561814687953073720850712613616183161798568126553593613004884837964117912684949808211838093557424663494015684020255041343726703541588934919204977123724261009298448461217102698008020487970059630515333468464388943065625530363453987279152590731888979282488668176218526095924868975271336698903846610463616587835315517281911152403172837814130157744032658546665789450201005867971050354722054942055653211458775334322450119468368650296924875774019377530479724612978835946225120012343054825787868401999099266709865504353794832023668574355351829689105636902439835486636940057304927073248210025605121775741107232261151510673209590775076204047223487001264369364862009560490873733374278932789401165035623750135230268621722314635952755196300454812111702743778480288688502690442208618143924639606327562799084203825838270863959567079393472040665036570706029312513119546383816977355560077911872289429644546192941446283767707923467010033737232058781220600539678123995359787382298196712904626016340116036217922157258004104120176899105636314717174644374214788326269786400419887011412071679060216739337388514813199644500371856730252162773183359054922001971151966767641861889239944618773587731687094196322515251210151583215073764877221368222266388041571574189150555264089148900304200519430631873250021969098016244979439693635923721200901677296555017244452907305614697618432009526831262997529336980614903650848792364224091661222916180083872858843221176264556903724738584722046864607766757922953254131195940650685636171231196532486644290738442849684817342057249573914416060700701956998194859945940501873488748212873322170664726186487902179652321147868246506422815142338767476656177670793509089795306599769630324624908589592474738545403730776828998043844458417157958622607860222574617445687347739366721131890743657321131932073207150219392821520445080165402501681729167775420561045301120655133909459931697095195971178620728505969340923327792822327416754367723085636726631579444743114537411640657844766569494901710347594520090331932635781916440138973969500438543290234914804633719373838015219533740163042627425138329956826976150812283947261509794654364198366773782379295118006968318548459478685981430344949378671625537915018981925706703790930223137152173243416071319435362985533453277429501924161571482593237118036380069663519663987167000726502233569331736256043600722218347953758662041259360930526489432659417371930645659980128626582524297789317506227723167394534889555413549339120992402678149136260309708229629645141061196696493326464942522855776488232579044063265892792349229832458078204259782468754214905954592410784071848464379744381044270002740574045617391305454447958885218832793550151660342746809181885989530487914132098586837866307105132718666276213836194871208205405785253626284474340688517983502662115189071412858979921988359648812055972042546286322697075764748833511246731303828764980936067133854762006478611357066789153140133776676582088156395113601871477011580898856567271379805646010917919881295334855482737088319844451521078133467456795017505900085184335604115870930995335758470085337750827095929212840938390025512014406399317597226499414642234076819030597117433191304235100363030148065672605159361032272891317482187749555359313852255704193258067898669705341442525286645954490613158943861230606351690254265856844404121402212463751453289757947147746634740696734394366584653521842450557325771005998459473434491575696561284332475688614391212336038450682647625776160597573485004686880036114041733724014538252087665093545044192661448540726806998692318639365470864263685250456771227593445427776240243287694658331788075158682624096131618003770389520812395265304552806482134396817557370597838871041644845565611735001707841924172628986914450122109714278674326725258468805899171981065682811435759364292229938253643856871375983938476830608124301270517964876241262584230617088037738521906895658048282929643951223974981317367361185904536400276753512467054107336867215103613800023732631186626322620306985345885573797935549730687627524716034095025045043996380744048025095645356556047183843698753876816070264627550993438674741613827095693630696473818663857379841947237169862117771099087325055999528308573253575100092732690288518982745851196239102377893841065174994224947127788145265753737772712817869008129299808282168185735299035072944806464564694592105576394654505451383380003501582042656440740511871222598517515373858977543546891325319081539755401222024951265066517415451713696598009805144137231124513308555685489808197962652668218031300404226697434051372262488883237341341335234874981398299231765354855193889859464874611747642571271334106707085331063337812427743570227664085100363332037792603811435631341152274607623785327615192741447881612671827501137004049586265656759770754256985682758478897457073970826997456895145889396137514952141182909667548770835280497425720956266838430065112291427682400175543805734205712682629596530092357444999055508998863547876850422342496830652117252336284719873188337892600205217288062133131542871599402343706015929588655289458592897709518871821959317425771081769229111046163857363085184851168660812383327755547671622426038559554449279137371329936679751307462216540434465817827399413384128620274171649370587860429112738105100268694118229292913018777138331949851082755146758016494137533969252193554315696243054209525650966868644346206101342639617168784117707124520097459076387979565977776864761416192839834309005858062620099327278089112394773969077478176575606514100531397734832432773414532004108537660751604531513344713379090907551302819880318496120998266268015624230064254444289542138684097439157496092235991072382099242084323669823771285562155555330297977572913376098882265340712468959923568724580197328393817705264018774025757473176608818899565517760943268048870562429882973626594707507398340809583063730627544965180318969209125280299014783929711693858987448265663709361646063694229651389026972504689762491517761517200771715731048027993442275400929017220043641384223039950190044148750648759144560608217944853635981370935023198621417885972969118020647579444084716526834413674609706993208392892191959597627857415860748517010159100318317878028962720691398428114297013718014386762880639061116369696855571933928626102624979360039406387313145510794425609920852957761029250471147482204953114438777052676336323553743969380566469869210293645746697796687972721236544877037135658509137466216542817127765874055390557619129682523070195105307093521801285173858305901377436248006044674562372759115905183512774386072602325118513350559138127748445750462630835961585001109278640689735578548625721915256512157358397957132169569083690690286848005669132659700683918600328560191703064672668032165312291593983323346411231882142221169343800738001975683044888897068833642125665025652785370588144056833113365033958430559379494020285205581336208327287488820594956768397793388658300819253767267269184353235108615619487586437219049501067061281982457898409236445797235500779641705056679927206371827603398298642410290828261195014221886779386739216323886232494570488617892781413446664079652435946488408195778539043608674125632301996189447496589277401723439737829011624959061231282237938384945269838086297969546523306300296974660494111209289513667508663370130172236205290447704677593338492289640423042605471837576537517660408422795473969698651129588569153519823479111351947223487569870242896048502831321146262788175097391254739667205024167646954720844986542803849279869686213026112820193322443230134200975903697593162466826726758131191773703480311505351993516531418388233073160097359286135557106927431763346345083257348203392238727970803885567551979130482531474504725045208394479868589484391198257775987259165011426451170492188202528884020077235135692558397596985997742922859137290524541829491484218358280188539208345277743258416768650143493389198445696481891705375157435539804072016375870440835106199779637385630109326750644023141842867199553236393231836647673032505338770561510897133994575250550999343351622683729292726046549573755808010506174990622371318761629547128612066573549505899344918483996229353328074694866966910850549979321694492040787846353950222834805222564353252427361991577191918236136516731005507954272643907286586292622795242737668514319031542188796374089168443096726656919248332456529185211231619881288855119460884716483016311506916969469751361940953143388945774792763241427462332714654257972564988842759126918799948057047104617306097587030082835760995429553399776830394466147987698218004392239957641340117488871215251194562302458138632907559937062639094214336320700182647949142605923200238619259834383960870530501186694031537644127326075261139064392610999777608666818261539459328690555683061499776816236355763932174965920747914735274737867332861397013780440194927307401395005019924159871914872973497173587258919131838848832852893194659791153085786236637075343518336943700600990245009361443564439342532328156890429207966919918811751884105211224514851482025523386011237569978560533439628624773211543484810229991763401948545619663272401519338816902999754356004365125747111962293291622356298801117017335610472627852149808986325024417264914501789002201274506043916416965651042898929488215812360531732139147612325151251758476792666821135149289460644504786323497998410467465715960422845825539788429993174170526620577052804299284717551112078610973592417533433794069428291691285588827651681473497470250397103693679965367134596284035998174612044005825971970934414913262250286494004107059676416031396922085368456805447927598887286507873275929662814323625769824623948777373897051581903664649848050839037009634346324363549121541969195108329916819569634048723151495541948336277939515764198908797081210984371913868352613218704378243402750963906308215243106495806252628113929073711436807786728908594263609111530620856869577986607427703700799339242565876460800084933326359995651254792918205432062724099223280019427457986167669575922841657561332226050688209960991522734189007227985626271737901935884526738730743041346798462441929739456872508492544797368255181962394269942919488380635047790763126624775293482493791906619003272304928056896976068239860478088849254071351962223890726921318039233911722843858760097761904470866181632031948083972308395109073302603235168471446188903197056578118496830489677045263709780245900873782253331122187992664478085995960274145629532865492109704043967120699271612941044803925093648594845618956167691840146652564417783464096557652801974174687048354740490617579502111325740871087444837308772783737500364502422527531565819576411495118234787065237849959409873194758760162661571648469113596923163753546733828509887865481396418711055065942149382546469245254074407119519066125766181799625656568874185364168226222812176789586743494059219282228240764691868747059789447114240150915277598594639484679020303162193795690775725197203807987037593600419472939652388892158851792906973280677816199673899039908904051094881182681113786712597341121190637675214550567280409628131862681502960139749363507867758281290395444816057778308685495508531548366712011766269809379377809035023434653048522743046317292503096212860307364866824859188399225629348386880235213146486286657040823712036465674790393584370550553754014346157364923360786226188381502709208221243434817361876206956176437450175044030091972289180862264376090106032590336442846931615606046837212649726382082166745539824243511256342643764325668243959520696015319895668461454049159886112104013905634835215149437910014058188173147215942989180545824516726220722905140495157613364137993532502349571566531011683811121579640592756935538265301209514188652238722561476531087898017631152270588533661090962880272672216158781928967310179038587351167939318908530155340403694671305166389785351839892736627682892216475006076218104539855332866721656215494527453398371653642178980955326303898264506109612375583839149112746263782493018241159549243457508474032034056633377863411074961642216025296176204394075412515730668070385042987841211218444966227838276861119924964736686639681891415061549201175737971238404872030927688824888689287815500002214345298623127244448822904170543961852811776935523374293988057634042529658790480560551371894630778164439932327987064301724057140599086702067675186879790351383649946781434241726223460832785420442422179511025777633909151236586703022770061678128481334360392355910657253832278153219205760060526693876925263377074295377656548860943652883316812810852472473271525715746739063839754099799962860660929510879479539751897967880674939768498658923437999196876046360458978750063603000252221681358286601113506445125983927393036391749755815476509823794344305546048510473966007018558222307980404941867552569926035920661476620583263886393606891287155018219260370036283464077779706702916320212188602611354859632161233097499491226661581606538831299299294377638443002344861551897841944781786044999977010286606255264353618703901487578461879854905216835812277915846127023331877353641776450475457726106999833071576310110939483172502067835476773756329385483569269953501820428729810096382496142064285691727806620776912743483884826200807761746690130050943721945297007578164777592642952054723999697897482014579327275268546622186234407484324744014552656578420849172583565719729153003824398215106293976371998739197241361305085523194258869579264359598916262307265397740350826312772284891009309372862316532041783155384308734419941547268888233106811364161699557029882352580385910322486019245734701842582610709375315820470778276344166618813733903442742694311375614595861271010816573135731164758265175820705225262359751780815071624502682688325568954375971306490079974344585359595913960485068700182325276267953410771026797710231740450174377510276886004182387193709163259150592464377868537987536028850015050526360296241060879253117979673887831549168139044977162180711313167445758644227037666398436152328076937910450373293947813294627733130522109455443393424749500923300992774694269789614785291784759316157489476071992175055114377001444051072629124591059328871059957013843530218616572772010160913021567096746705283168970106132572173140453809097703357757380082749962317084853613365176779803726225520270174321432343569344125075096826850764926033711822726901749235593540657064584324851765284746944010251111979448576320697476839838230485772718023489875949434611737722230329180941079903630239364344456611036196254623579454137492421450627326946882818357523242543471394753020545441197843781781218181594077758714413390505216137642848842842241752397251217851076668865071490653670825231714193741514309544308881610230740638649639829623153882603496393655172491320977705538584638889426796882306909170744642516820715285717524289489333206500924169259594555945921685453316746352851799085980084689858807885889872127779724697136074872868147403469016109852915040222850681180666912140957476845667877799930738890714233988192120846477446223678172389199230558079235219441414138801812893177971944173990137638726509250550470792987355552907801501250949244748119764811596247549929694460286595650474330330435899768676386541776580279414361239067921199073631615752473320302194191731502030244824102535856681562791249535932331046652026835233175904739059989749417073207326717606634338273847054058481179774108513748789776266315859095516779840859365460015150076081461612796277537113705804195003453037118069382275154037046321935995034057943564542597770017854393587003812911968791471300342779530633433963425043241343513970823206265799811304333975274365256805485145398142832387636430727609910723560021073432163935087747992636764955789659295322726159723614520859422475447562893575478828385266561773718033504471747226624324464694773404001464222193144559051078540773342010751414382904071946094959835318226296659568130837705448077713517629542877138490245066640432078200745792479293243096587202838967507153821856120439462546684214985210052249799760572911487055054223872822983239218358387090491915919658038821704391563794259381497335576920338789918167832450364372882212172913352845169648832732532762700089429091254105440557317171945848164337176361443764273078592044769635118709423327899771128628687222892376397781534141472459559768271861950015093945777452136092111789708410478619279566348203140028773794726624391878498711834258012077870105091047554925707095197241824793226014297283256479941942467953605779188855423528498489326539880449168617012386400766181177606813143467975055023084074859676129923506029219260040287753698820102627029743386777692519719062275846444917820732842303470373877693285908187193606251837665515998033323350130842611632204265853560555467416951474952645392569170288575324219989540947701650482606461780158968998816816641566039038527945223976682539353727597539176689859377534171523894387619715171849300227555176136679584757985216991928029756761469725233014712200682190560711184268575825110884779681622688362848446033267885928277107454496218808108729910217597613512290681017534610779638217535383663450752319153679532384919780878849771048679206872189336730090994425463003980375509499124425697903773050981387836176225048360344086299952266777143994633286364900201890371516053133931060727102731529341987057644908484745083042569991048500319903005383516772357293953710512642064073886337439711103764315613181194900038306677793932493398368857336215907689356114835540700308647126846128363617184351416389889230378242970160603800815149582790185563340710112325122875823475694250165897790730133541847358248319857261995880410314415061701530156237214555310904030662614153548773033645914600284958259278566748478947032789009488766910950046574877017514932564499916171921218405865133816260535429057591607166374220704558345147118067241264160279671278010123028794691832309254278443668163098487399326817233604879894856068862284779415589571773479759408226450583722293727504124563489849488760507347697820223861894798985842680247033322393626452129940520685062287204903698874994500380589094651152870772980144637725672915494497959597797311885149900944506922352218887563294243319923281190853937646312658656062335335784537209417959642130505680165419129348653601014618734750120031053541427142817492731757013055718717279044693333612041872603952304555702447673417046089985444986199275716856032065948581950500879713404291869112630736083853801921503556892498130424454019406168463618999919114249811376048373158507664088587539291047323560010397174214358056835116247281854782025863591883327122653686423957804432540705553081005969239153677103160774770567924109493257132214792943206034834870693372728021320180516349109809395846777740953814964056832482083925826526392434756930740487746732929698363889430254045678836581990562397211190379408969572542351209300948196256553049308231449612993688660722160228155562246679432171990253341311984200819874131867633987937564668213551740627577847277248876757179740854407132179339171078848980209261024697400197412350454548589416505062933960649235180058247004929318813569636089384542816528306057336484647386706259175887646481099063369622213241345651446477007266616670077620672316503803416626463341441204385080680667463503934664421075098534709716950603604051494410443706014839714325684003003389302470859697678412152912402248726594892804752528573862995988070823523407389300586467815282513476245324072318390400519350146039233647973738007659907097105324037258120153690845768231324181777755924377456293732880574192782011347351525950047767516465779794830433753832833478850407602912800048511480945822118595685438513880650911281989416496440681656788943645497318185486371586265245231452141811212641307846680885872340946581881477050667287033986019443170699912309309730949445534461659479994607671341082454066871404575908086083309894780013841848087797891057415735333688653158310397462427085625713083252111418491203810208664362203971102795356641444944135935487191246541839370317929637074014822624177476800792566493744554433952468553401858558004052326149580313601469946090456640096977311688926517292094236064657871015713031017498512339100930502731294460750274936467022412754157765575339619216402497516881361158332131321783450498525381530657964888896490081792529198831612687028346780864153944983183411648080575538943779730103752837937558041668187953414339379522451878941983229429062993911902338287087132114810226871323364876098547117778137492157358850983795849213530402216072361612650433428609062931121205210557226023256395357036059232747383156715502451127262403809897846029287853971079500679132292420742391314121757529033512389768777260962862384225701642056355901591629053400532749128537780149067080676453613488255137056740923680622422030885612302006216874878898734760779621682679090482089433026729606916978045484454225053681206004101636680974517773212967164596020784336993121647159918213923554009907195506234736003556337624183651498145054283818706686446307796588423534892678348069131862026954821221418057722766465914032647534651575812487535896994020310963954493217170780451946922981011911251003561398233155626980314610171015036545482993567323579782951588148963715533215841357690246662074994699177861938127760237963643589480415863428709611727800983890726508743819720433462045177584453913192009015623772138591310076706365719456658893850823549538184561361559028678993567515020645217377918769879162853908073495270816307405358943952129294371875207154883630994293394818223893777463036289928025428536921147946632809391902888896783583662247812935683720357612050600314286308898831175248557516216472143209081842658296230009527654938512239204999753881199884226422673470455526118960421602582194417438711087718224954562504661252310986710014916694298335168895779923081053353195329432809261269836299072260387647064196595250943852625673950033473041812027943054534049328346822834753536383049290892793406569667570484278556770253308161270047067691802475010271454913971522924086337692846220563503212365752378519574495995023809728296155529424859002812014660577412048029344223034183618697910825987942678508322629503014422525748507126750668070134613466210845230896575005918716273230499007011862733045608429431781621474277861278730383421721898069872983944028967851836882494285664716402253324366058200316584767144540912543036993879775315586042868131774916288223578643869596015099516516556369817545584057863531985443254910065887081716944845037125131460937821375787068672852612787084005724502661972953441187082456896961574279983364970160286392023803852123235981715694745857501626038379039839474450782125938056837488408096526775098844991207360862094659950806843283401511644791220337075181615113238567676139912049963352306147246397951394402563067850028267391926480525424190187547832777007874374626808492094038305579187170580445939765723331322924403948063232971267917520411913556901027080893800611010263162205124245085754936745564072216195698845530270095325638573679041158953444814909535134094919103443085638814594616528382935514310662728284235440647409907287034836122112367454807399731897493205581336693810293631539213344713553547475343995284469151473927424722393558616805520394441768898098128976833115491897392155863607054450321472728460752307281926289305681482528888377039087075608883837392905509698381595052425043472499683099912537085932494400463819348800481782399248070668162149425759803189549832260241633498953564263866159531976094280755670660123955423289595088126523590736146163619513598257228063156478778719425996803105852797773437791286043106695422885476905237668445886127563423120514707195867115778440467117133671238631043812608910044687171773778275752990120157069567308496334947731634028550273662612866602385536647560326539804813828722285514883991649606749630236064723501613637797302197214026313809673922523800285759251208977397265972356620645484839407232142605483481151860461940870331706393526378531520315434690507451954692483525474828284270353048108358479866060835219048658691908832946264476196495473244444241544248436879505283117422849812372339699451553549371932954520015596430365026793971600919847523338897135111350280554350088215465509121442780781617248324854462131235440477611825491360827852796844882378295032081902888057317782406307056764202301477042444756566757009891423865929132889554785401225764493967058302511016761512259262119228446779945305690146911702097656343753395845219695767459349668133749544414652215329351755060925806200263918693015484964420314382432895461000689768082950255147341475981595151656784519149564506050747373601698952381874446250224545156111417366916785952703703787122301259517971988892611030884141655079513910694523480232012729196373497146095743447655403153173803165593586035931139061225641506006054009044586400383904486032239640077222968868700465839082696832092433735410096299836198352346993889301062556625699152188761274876663942468890138268748005712619448315914208159271386385813972713301078902061026902807908284711461620347256568883476164711548766663908731257179854714306989792536363833230288649691370986343925423521459958305545241072416484528007988814803269061282639597045215963118213561727388993663675686512779055331813129095017751990156053366250726944816437833076140298343302349834573555160200461666722518203613584814505659887649195527123511018951451245824117269758178792617382252969330895877443656574190416489691435185679851178016395378698305474328755662243814539142601892501575886569210032337107628695738528794187525074608621791857607938989338544585405834431813086851456846994786832925903258963855990395498716286095916777094507854525808361754685638470271468388882148570688954920935461751218559855749456756873414178244885068206110690579702527178756027981346197637618288224555262683880439387192533855023201962624057797127969486126450702969972300672902861706235411542014509630108667683876087423163187688863946766568092085817487562568270209377376177846257490622106526151284109429214416517336738420317926636946422129996573531197436710158917209050054700382202639666824879560192437136178169391916829465470210288398761269051211182346410839568200795841209300848815520120944239400707505681525165127649647909005614142483474734425706826324134522090210482196131245826167295280138528208712377577949685996703707300980317994881111155921122565845984667168757709496732945068501293258567824423429560408827603572941056071759629839816620456298017733520862989113650245277694577624034074068344681463345284216704576727453142655407727031908729779781045906009925025291063760134039604906901808169971772631285160165718853799421917102620332444204611636174757603254717017242704319878564216671207390517642197121722677627876632079866140142242917465228905758542664159349025216630567433609553369612773738245549890514329042356358527862307821086481490511077557441821562476035270024623595921067273983104142906029387880851650020169814948989779793735732389544764741293598756669394563689337390174710642026853918613323583336994005450080148458398353102312364705365311289504776542572387159972087631436618422387781223144800431050404288386967707612757979802372624213498118773324917027699319134421561525343929725097402697122763580312887606702064792949392849924979882794598265499005801213164441621625044518196019519380218630740802525003211026509057568287129605067688403452332840529143863926164451137506677863589178744098772298159191502520523849278708453548003753796256994962238522241703834045128775895752187903650453828458709232715601497372893449031088289557091453371269070658737027549135362774483793744455864785406323538658604758118996769875404620442159949487072452029308563786503781444734206723768860797313166825645847129962886266806132670127273712227077214151285598653948262796354659138839365460702888661858185789696835526713691886255017048112726940416216082177560126585331788074899766504753966913797148988896665275578480503974129236444491531712053923426824845946938891735559072816587539026515915573558949034078779489605680051117786383530060189485110845668672636755571113787056704375970772446391711324571153379532633363065144195911356526160152298718132301272782256116367093178177574369691622447154676328981860961069696408817870518323795929562163905713206974262469108185056797872275923529458234429173190804943148738240822844305006670503848007691769185970569039523707156120513374137681771064455533600322985249896319360107431190073433856863971171458827805477777868090169605141174982210455631532500574077319305681628911826048069821924182143871431906758912523807505640834194039394960674662423945826935907595201741464984264277669312372627201043960047749978716395985291680594867193623223021942491648685745233639571311860596731349990792516441193702337095112788824832228799993259090721303316041859530173046149747288373068925380629625662076295043942557394015202508190590562337141023281949815962358419976335265197396368888107450623932769350864496846266907163881510321331705385786648311774504665167675855597482326225198214381692235130811529587204111591908405026066367007859908830765963483903971434573782621237794228820043199957961755157707638115937964933474296901477969574166136440608695037426414243480881164793242343348928869268591030836165300182132328338401651682751709320380446072792286180023492884299574490140698979592883184823102515103582601077912326767171652459537890848478618444748754375151236547927067338923438049257880375617529842877910088230444659852890166420329086268047542855540019275815210904554498559339229902840570447761687096673408366698188188068892263509368082015881517590554940018143270524477581125828911732061668513925806760817703514635395021859665886098632789180290669872495634079352695530224329007120877780658652759339702724752055917029928797852350002899101549659167503673441052946935800337861086251888802830511539109192380067295648393350276419065129854461898490998376406592042914742471799038987024872946047311963203483968376486684532754383881201431290499505046705127033608739821761618165223886591140155710512057115676108338831373253286377652487483607143397454848906900535053756321756399779731116554395735318561131334527977728302871148231413087301612220236766469661852388865677918748280178496211838736498529556779042767540527563367100349946515077340168928475447993718079034745316534809909749193251155610576203016095979925158501956315720564225469651525273095744935132050678321069947918663864696143831511154894784162610510881192958377845154237128136578983006686044094019658288992447434088684699436391241008846262645785892531388669384314933264127142641170706868644755054008822884796456038426505497576870251023278608042526588532246518515612486338824689510340405297767020902061817281530260399984459049952315051109995274446289930810516288941283324838644212315882415703900163179015337469797167125262928071366604513494419144214961674743566744154221045145805483505917052833557302642707055797656806327883827857338909514940201719283485645268250438757658903796925199267839075096827820109539598865227008220031765567289267299830961596927214382490763072064729866068602589443920020809743740415643916544094060283805126653666582696870800177271713729696415332295240426374567547564788807836237161731853038079518144023951629882686885401237218347441088599611075382186433287441557880484690371859202668587461537205571388393694727355121770138414592743847664733694011964708638129396452191505871617427788417743535489258107594345641241131993478929021488642842986038029704804310853997242700602084927674658058124352623056959912000548981239199822472875599990431267631286666476900516880195667108687336596154853551985159709082383922335124237946201415784616737300659128572592374164415548498633460395557465271854222624132316424894306958955989158840516857760824230099327284086855701005780390722365161413600498519221293930664471681005496880193605803983471800918150909264387455115322610424579212648616376281277684035608653047856090691974181716891474002684774175086081352010227392971337159413078788363001270683630514131667179077511026515044006585156556036985724712373373624550935525257649000493897107630728932740856803451503085329208312890607693410755712386654072079023779841186442380304950687642754556808261069511283142554401458221904160742218209250017348409414902850547661225241104262020547693155766549349857953248423513581095558771479248731713371736646206630714849138299445362887971649907387676853622666353608825147543995284167592258568893271870784393913081342318147201729092042543870728165824608501393769822040815923188766845578385191865671000675501244945101518075037985069973688377792004144508913894227521452086751811764789249634850398539735541653239210392958631164740261779498647772289566081853133356700899125621003634523366655045842919661857144182959426843142186701495545467642673675117305946456392893958523117279711802448112044523194140459143048287066277255820223505341751394089595112475639048162032105464881333719283428163010529448694426306244215980593271851918724779359101853034312535852918356426431246813774239942594925276027135649860675059864092651616131348326274617521983668540478660382418664355391163264394063126779147772962225192370744282704666692926032990192883805424594251493781222754724363450425686715856615150467929296090110480742929113359911169088547583111669390993436749682830104686979394987087970464771094313370662668697245931273628698548227139549962349466524758067307301409840847287039795386883842313286282690834478731099399794136304747271351773623397464598086975386879286249059363045928705251901560949194727864954705793646190016312969850144971151963347451573925452842600271098544835216109095243192727635146679958539635680566565437592808929976794408509174641899213047428580308281855401275486049130781864830833891083102495887040903799215966036059604144987581512211355328472881023537926004132919133874267325189319737888898795131096909679290545482266530715954205920273830585224760130317134876268902756604818294114521939339843992075926422639689191473570537096337592537143263036821926759859260743724605170300435947165428298588216455416131996199390758286046452027185834711404260794686813706422884974036905355219956138955979543949692793471692454070010375365268728530852247147790970768233939980228872698772985496034319692492551340371674792839134261066119084603043275416828462455030058495267393056528283828577813096595195036098515737557683408958715413539904647646569189248496469008235547350747514708822018153130467348601887686419959990468354927377991006674197468136475567223307013022265744967312859094579382737637023055127463952451916820214614366780408861466331573526233412349197581936333829615583710189889456717222214360452632712057495830124295364060504727185331813894366622887993715010345454828850447632512172781096774602949095441139410170145553553169307481550126841486918888092446982017701872574277543229029671595172216192357497494294030268537124318002087068884739256639898459832359973144125845553236850990669660832019686250952866165349952440051576562362406213167278764361494751455763247944047763546502780759678361353537814563238076031504446990715355858620086010390645398110365971951633416233586206477046781468975728984947168824965856610152620209727677875958661126373801641235234581606413417911739818841226719210690791920494298691162724441506241230691981596529543925674812137072511222828948792898997715985030306132994384946459790839307591244947061172704953031878435179036186533182043881125873930105338618169161276020081861167447342043760516790090449463576079689127532668109179710210676494501407926213648432770856036143735446217789965049589401625598271956373918090985964161162543017424602442411409799728404982699179478560279297834570374476642125295202236186109903436841776197464842813265381558999268767445600791988116880801173408856659225666392407852275651487319374577453960873876246291196177285732505194889053315624832616574041879058192463755437867138168575242395405913225334802482119029474689641987512305588994175984855005338416721355437027575434286406601204338581168664124685152677348260767826415769879775284293490347025977807666577783845058046389917318481915055134207515913157555924293534181510316265609861568462562993630935837045192855994543081100233416859339964015583401461072437984489305444715566416288067644085649999411493530327833130964141947706416336054840915951581167720422377525743717757066163341451504846990975028118033023509145210501926756993113738709876519053591247246242461941340886624445005215535276299344156854406755354642442996407164509895584855985955044440049894719174976615371376263427300170319956557172663398986992805721989037960179332879020256136769768935884691808106545585072887281274666148706255640895510995905478845898588786301576163258980135304340955034403544894370900073792587114110841725544487923790752798279435171311762510853682846365649328807050720531574233801295211694832133847820869672818105162721943524780196914858005245711681764455895795252365832398455685965613227664113185027551323693613112282259498052608707216912660078774144347724540495202377450368809712090316251681646341846166524076409964702246717443921371648526932639945605510464539029018686659187753167640344536146261334852573738961525594936855646302383832548841426823478045010254077149449590220479392087332473990162690564112693648915553278311812153833950862031771327993306352957084565566447654011387990290824855426825288932330776393061667257590152323990664122922443935740950771512867296858584234914000900815271697478445616830844761710816909959801176827130292818902575036345885997497324061293849381761616714540363074133199922531067278785157205272311545564073203806161644039162142739665990632982771102153177932517163264590210227923457623295452759790776522265139855076603550253437307355637764392475981002978426675976649386092666166065852496083099504857623434764676254416683410972160656049068247339882423384298693061121827264464164465158404268616456354870380781658488584798796247574081798623926102593453471211538465794679386509347556492216155030512490962450180906618947724553376942761699634172346187754908059242083384807677487401566915913353749090108387100956270153267372767290635662849111873517474562087631550459450989950412489026765621866329734555102662044278505044425295930597837736621901257786381881194223278802831209675741823297438905699992190500993344506266922350752613072856980061456090894759414823130184574768700249108978012581052183816333720868889973977517869538531979868999369274026874666508717387307520389726574930232467290935134178861884708163989961381117391333802472136481854412655942655965777054995355753782011327142465051903379794299768073377780229636460107495051536527963522517559943142870213359606151494982933195001791606769912830592297514043314479240333329045645826454031857624311484922604675038391349891454150092214552265757072285951945283059731609656061636046947319328837218834021938141022138175467044308058140525345800143982247566069240018865239199755842426364618234255295928629651867402895783011507115423486281552647188089239836917721688353560416273657361035033010889137169939972285932805057579440464824943598818558417461435749005143715929491671712999656978111031225722360527410074268610872778913185163785095478771955205219830360275324837026447318175294988333591168286221599581025162272946120664792024949546776223434927425391722948385485409256232025264572701908210336969095556770570608332860735288578167414547158746490469913602998564972842787384489499981140087118353879580979978240230551494068020970024437706040419979981638714880251683679556895847507624856273774390540114897280228131609137612385599303182122781904275251454347103284752697322101030201849126697640091033123296563639424940303472862175971425969530477819893410357796461687952003137471145156370530507264035802648866807398550706911491309737864029251584280684697031287011786466286253330630798874260879581086973478575479988679870417439372328913881206807988573369099375984568947542898079629147092772196868238751076475452669705774220334510542974825584456523033440711756075016166254372663563500644163487915968634058719688734330190489326131777497110716911352315883221841373228736407870995119295510019242629281119185623124484462970280669666149640254602317433838630260380231970708830596927490641755871890638373598478125353122198474633543210690746403325723185810980070139812975625189099836798814075502320107763574630331275339014213963466202430104341492314831963600665453251173246054662181218789693767978663879537098363190704566748919768996387461787404454264309027409709225736123012227044179674036810097288213230144668939345022799406050992372294343619232926236719397371456344355029918998950176906897084286644794174845852285302151521303287932996382449120211063299395742082580247155536326599450447960998281023580345573143484440202976860744034842363006621749164762135803538397329508175779491407046225021901163892449381599533858060830073660097272716585052708397054960024363777187188473293831472013607454936770149413498480647734070864719690523250167229256169387719202630792239983151071654772766737824128145081463559415651537531632157523764547574601000799598141505302950164033809791775536117144678211601132078556967302512212459984972984346627728877939763595304403722500805422602795644756179623405675644743753524559795915701634197350562483602827820770981301476308626156015156211144847034335706116814259913361993703596064683926955908814829618460968497764281803445902955146168863665405993812484395767400781693657976466403777584331833404608308002665030064118736230233096841489599745861682594881115680787854647763187903173597030020773289679809125404848859696953018312365517581553699339569468956779472435875381788144749584010506962871674336252585950600905515454089125087104596729248673621281434108258497087494341351297692053109743586069035763645915692024633705751423402706378805733277668352335950170044791679453974606856949602600481736242278693187136226599943215598923769070414405879737579481857382266428176657895854134921457138081981694761753797083143865058167522703763702047653492688990834734457602612627137652240901311648403854191479368861262224728255292633782220832712654138294863976250730126054000899106483256502073377356393594070777508243122990123037632761765255431407378541485316489118283429203567589392984187601597722406476762373816812920414265128891307180459046816157041569395690795242487957291019026048475936718135581015909962745812732713304864340510982894997815220307621995169593533843481538559121056180765828459019195921309944020404894567924791094185420929194988082902109123942631106383296530920734842524780765097728111623156055007379762142828892081392387305734052950941593906386263065627486598525066494446553836854571211519706635623165284224961114231208613343713496827947682415805879409469423980209232428385307614358175378806822880136597011631294892281201771838157378955210321295243533651584011661231384943879373310667804565873922932785697257532577266835164589719982162043468124043895314959497886805741337662448577258277803924028856447259432508427966646146319071283787047637815153066273329891347972176211703765271206843576350815957525801865405986104884100781404473585493297014276404096961166656809200553922123750105956349197412987634081768632085159522137704195245226271386082824606847847997958530164018206296844955901140625095721251674732505739924685873380925552148291342551850889122203035137441605471363377309998173626379584622311408074966259638770719776987299128899805798946462635290289127353763725953066036249238792400035899759131277959880394587008040552660693730537842661695918867421154757912110892024691028677562695233804138012387191300512705517490708467227231996370021759404252166461749613572427588303462899821004760460985960596021463421708855214120620738976740638470820787989441482927722137759495508769583628939478388713024244714691455673206995850709196014052746548303268962435490140115972347754066193534622460144201369058244110819666007501937707095556063397655690953889712214823071568076792123796158548199862085367298519689798731123154244236931669488056171969076953816068323371681940035042915050100464328468536161183012851552014944093795792803791216202388357438796575051902258115805939832826223375071719584159720341176518571532810329418520128243323634159927473367806930893980712752332187637744050123801648244170949312933998013488211003994288412168904126107931800359105196636190933438264024583706972663022229874900034513809745128467567800034815226893295970908635861146380837756007665562625157946686408071422389677961528453361775679957432635927237625670183706111210166834697732881988377740967217877272418001560579595439134008978916721613366875297862042752490160376280711388295833790789860538721106652484263813533117540134924672555195737999216715521531826859031155486477248509231809752030789231678002480146316325539146214400038894904245752974594789395099079284969440892357929795076959101482553370360953095672002285159457811899299898440278295244219985560251539995298351578696175117586040929413275880408464803797340388917351021761477152538414024356459685285703061624068200217008818431489261308322523294657528121375211346592768946320576892529407303632394922121262560439721288314146943774786613316118405192530473504099934094986830293115966545524055770686961104723829278727438479272009280042780438947240654801847076709098770636385245982797371482160658988160436217762333944952566137379974377647599235132831658822169346789470579691683797811117555660806344210927732177495008946960934235549631642391132809624523433074056674690353948969134162007712542135420169045334938864197764069743981857414349208596771845362589155840995296981372827663118776155881495682879826173175212996718463757153334621169808891016855477228907474409985371628802479824675830371296922258322894383466598224935190091427172388830237965413842070490136124532587019299534355977629892131725553267272936736062653152899443131872957918259397042853231880976467872019809735670554353676674516359684344949182571797451498298816216541885545264255951046159963630126435296273754345754294194648125364177706308424569459104876282674742034681085895222573536538690225146366309620285395667848759019494836802099217774023612136347131697428751955805005768636513217694875596160034602335290195497112764332416544581953079495036608914126103978572894340668696151703604966778549431418298265549573283807588866035548021369345352040333867166735313572525643505581347237263165396753724674976536753801542039479501654099769995601155137159209117857623892596785821797104620126447385480778234317684712137451530556149348654359018043525448442101400137810311705388527723757976508772519903278318644512517344265849342174889419244141916868339137272087730906916531189890666874612023260707937018869109883923228003722825791786746474638322677047242976912931022985909950452699979186656144731142915245212236263018881415721266563926824358383264169693434754293928782794579223716810391781904835009797517251844041044939192835036369632281510328466518623535095684740776391595630872533271990195974299982786693400393570021575506086530645501077641536977615617888571924923629275709789009347344608505770171599999143732444799458935957097873915924235695280027928588911988902783531596801597724830029088869986670938802387760220866249095918304049399690226712812635379515134028904246955147103410329936239325341615860092277134913336220774009460695566264250016860231594593661019852582112622933206489848956852505514268874862211001934967644490474787593285017193120839372891054761266444698994334338761237490161845723791419670454840051499927568736644026151928923647207708061174936807830127320378295376973183208965313523501057807869521186586751114233336788473038117619503282318259346113738951266994641367170556755220626394325978299404092766110092055149152111709310373864405916583986536715782039237930933848672572037007083717889059244700420514706371407464669206801099461417560438414840972003089508895285393689955012179791460064386208826010203523049760595249071723618004072357445352539443253349242492580052788032798744601607581361233423610834028107435460905888664623614675127294375576068894888379366526128993466742508109473484774301866552579736626131636040854069876554255526304504249327842716630442742174204773567166675817830621277214506292404271980082634783998734927954701240037621247158390555100744227005785576844822395897815755422106404898546294654579098055902837205444868756945246645041011139218633795645073684586134276981402878883881073390770095196071900342548975379388509526493358332833887204156357592833390783074318721753467240152359527160093557741435117873944806020878651198085691935218594471964179448504575189903630463365754168274825308666460905134418558154011504601159473060529391862501184801765446067548790909518051134956186377218720401340096737114210547806399950075892102701766486869515696306601739488592326913768623336892584592645288537055166969696504629134937851760995044543439380648835074218403309129894414337457218321698175534792401177598590438856529378146109495825838784104818261848135628655582815084851057426520807842207007962600838230021773784271098968078816007682208111171079611545889104559668232544114065242292033844917995704729301635649398102649922247685401263658092924845438816398603554679164281039854071554127257712228366961219687809714993519779488960319082320854101131720842243868997618816933754466981063921931715969218876537902533494911693045909769835111619755916543124136540150823643969563426346430461592435117348574743447165179117072976881670888843378020505997626838226807923584599707758755427726130791061020343431279522834087087592203438431098152894255641780532752547818617042582352738608462475089815885027816249959652405773441760657648147292132001788256904871406043919880473655266177613723992430462723902146424370219995889540266555631876847758765700437500531964129438587653539656134201168365292579277229660153373969537018654308267719302488509961858884839686723478402187850796483873544714797228845923696536926014799722919896802879111499268815283560819117695810471038376301643901966679339815658022666579466072863901997532696915284612451765998336204884899940483173592105764852157698097633882305423976522448054442812247802472188863067034048557241903332548945448592536468175188803877661480382827492532650663771607440027215163323855061692876802464346317912294420510470463801571247871771549962311960629965184977159148491450511784772807218613118646860445378219278678206072888736779634519514233789294434853306833774187465676768264784706472107873847205434469439712841375743686849633182305253030995738620341139140036434422786598990226636821887546760493575449595374141798999286383546988814291671381391178956485260997795654766437796334376757446816883374122559242038289263643843564575697266961758893147453567483685666578831857561751063872166532219902788340505236476766281852380364082274476827102527879781111988122748317588685991602166215266242341341274333154658586493667720217330149938585372044476449661022121877518215907311637750346363747074188607360470965884937943265032397349615481921123971688098831226237520552819229610736591181981481776831564108038705513162273124475743780855841486099690427317933476885346161312979415919832320128699538663826747368294562475667785368736535394683208269203357047989811191146282565010130100649702618065305202500781388477400986022252514825243428578423512595681295894394589666051545654296794139935262602531866041869567979807680642821908203044178775531903533549037062816460660992936603248179253215823810985059416946146423370853364327550968918777036681076665588492200634649831821390145363602204649522663623390025054581109022422772119337018940050467497762877742882848960056516659422366293278919168870117235366792718520910914481063091094487862286732296407662004793416596751357030097128287825944188506878146526506101049671803943554895030715986372801753137691658819179181932348395044193878254740420928901641002714017214601084304226331172033109075705904007132688634789189694411441050247354762945887303829526637612574524710854724030356403258879346046853978996859105998196827476932274148211354381853091845905019651413804798976622159011719965498875725816523881056055221702507288698937878557489742331061339101583521809619276156674606521564852761440848651322182733330191552298294243642627329228539401110479929699926252306910065043114548227038711579246455498679704566509437851631640799154000430911118329770949308394579317086795049581662774208854075067289030083624679248025585243726812960379003424227862002448210629286046974793706750440663523665540059243179864204984770344834793339892172355423940213521494973263138773186452980853627738123836177966772959774183356360712063231065771915825492438503564966095348771076989079860157194127751791515270743588155527241759480111373978759032220582246952335944284480395943711116766968450542744144985183747056370253024672455719556402388888426076893983709263189358038811709166812460777930583521051558593823310497314077764898265742992771725906316148663292281053948020102254961688391121822016854139457365352250798276772494934405318856846655314589245199810349783268612946165846346597159538238146032780340956094648968765467183319641252359811619047715907712424018041227474497620609890263339101445805939650702940231007361128443455515862653458944478514407180239941764294128163215037847650146823074156943290474120618385767824811926325097846382758191829892303618035855525144667272616537370512485724899487625932180474450609497559810037227052366828470421251770855745457710121822307305787909072795754125390747772890004611809089294469350978017919921616951174753160055765932747520413057624524722770631910387461291201106682935914800676522202881209399586161777341459524310887657502370728737950708853887676926561412008585237632707468005328016493383717398628138846912985278674047166263892184827537253021073241969187185269709584567287228361019555281239030283527167592202967593533239926952834605166077203576264232691817853256312273936123106042205211233423193604934853307654621943566027305992167802306913323592717150047353234566068713898586853749816873360367846167547062035063233933098957467492727414252142835459761918084992925126307908237137694758516079583712951875046431815482397427927359927129289550450340299055129393587063368911858506679239109829722111616143541067254262586374123819500493342810907331193127037449531121709603473570634944902660182463770099722158360525435886586528090881152125394377135003658157377479064068369801049759242099392035100020759276137075014390636217588996690836498677346220113776190775405812538294655696287857088467375183444067478878990641472478437821120846607107764982366302071621398192918045036138228975908360474442716665342254776772862238806205006827450549383816142567156602781383249462492394130571739385409982872718080251044362625200708941363640928602979842472308870882971859820305856302964361620206214517129934890610635871833357455624530290089242096372411111311766194525170726629463356518979913389099727707109197370434617542702178784088699780119954397838448797977021155885532348790331362563618441263545975582229078565928155817269813753668510870087192520701546421799410700733269191115956140560803412953182863225669500696588374722246851666967471734832229119948701498852967242240261996945545044051861919420763543394411339138685365567729322062681128910679798560764664828257143600393604613336707456395145706631309719372405446137914118099631029679982772317195810723510743430930955343795881331420029325413664304517017416684792710993566971214841975653273427877236303939120551237540708230241025598513939434644542167094313529717120723076429468869465391703628577903116306638091579597894186336654299977620300316400508394369546158225612131009450478171842836992194277395165469535275261301391695769353707445620019316657004042575598841877314298374277864525191175185278700902151011130908769234948266540735031300732900429753040471780743879622920999642169976665732275813512419635933947442847052661427540831044425096055488819389065567005816289915791831249813163030212435864216686801515414314136517511035049103189585907702273178577222115506230606459516789687073714267300900987172392915834380179763469530084152883248316177934691396601864678389985069811760827293217514158619789731235847288940204966725941081543326739759255495023473627048774852128555826148209286881249707103165450863747326746973716791462261386703308521975469336936722369347071391316800715275221614347737069564475113934096762895165754414066544438277718393206074226669251632174777637615589563279472982099402539205451609523623975158370040073860062136847086716868398381273366378028632178688591328484485592780278887905817865967873976205535155114942034167718057342238572641173127836120953996390588132312853023524445242056685857127003308503692306630826201415557355863856961887371202486939945914592754382519774694076959169780481925795560385395844617542567351904600915518216212790258988614594769511538646374089992998726974837402080335794935107431704074422611731926026191257696791587835306599560817831732608740223263026969052531456288773064507810449362228117564361513621878694922107157471765042497613423441626178407584251907242834026167072174327310688192590843800653625967267396710542646404977870038881054307747078456496997698304416397909908616663886686167858090183496938173368300686946406373433414702479073352334399091152270739748421157851580662439030810980781717579467981911536868449483292958030202169501156551383006372038841638581111179175486879099437688754916355554503716336156860281285891313016910235041930287655739954060209857368094880875087326679111850103400338665853806327273053771570874993120048032925361929895544328550453095874505558926860922497755119167019823622185342823871096200406308023897579452129812035953898393665084459741016806250452383829693926718918239710224241462461819536029004120444291583610713799919373122637467156895132954765696313380243689347199584579003961738747668325297545124779581714854197455900916961641278725315445095548388225159369044437805913712068378471497911345233069673850823373864324450369171499044351041303107054218603087599887156690027053233703459200945424992877405383720386582290499389520862538047481679877663671417947365469857103716191239407845452422814706620104075208521125166168657581743554896649844096716421253823198586328664970780462182816202272099422440365425516303264557747272772988188392943178393392511675239500062915481719551476812098684467515600282660024484066397142644085475448998987795047781666117886111344457962555754455257087337260708467949908683095473166569640796739857802864666346491570260611086864945432547439903089166775173372292959218319469875224278647517152361639786677251759771678470751066768090787596030796193584067075203841060377838480345283868743014000352219450044966757231885968081403325611512275813447461963908407348177125229148191682510929726230566020596882472240747881052033486344862897283573600252984305874359203951902993222182219115822811513118587618890175967766663882029653732991352983785230829910413691783344170147931788948616542959697555786953752946652917299721434864676598779475252914319152384397212766850695422459814728223706727013920894886465029039287372827248461970868248626742053379403335640124504964961330180450678968947118293284133558498148651632682833578450561226096137773366795948853487043481587857571509926742210883730150201950122185965637648975388323710957586287832637205964044474386607039593532671830211195332297631448916227333439993342954066849182396984710442939354428661322869453351198882696324413151337620744689091397830010262755491326682473544223908080797387641585427386595437084175022686258690223351820942298065970745206260818136380384054085587118170989177909983658214861098940194228369805857587361981845830700422039117230888941792886420040553874321859019970320078393614313656174565948957014499740309563679239316287390478659630393447713016752979929182959635564261917638980765914208601686178226467448441189085859927662961622887891010915771521761323955012524748596623404169135340771889992773547172787236165646492424479607407083539233153027829388772358118060765231500017045112016159037109791314424324108435386282741496236783275095719628672176288168977704277792543104896006384119053609672311754393997240706279396888621668670161175241718023791575069075123823576294770414487281664143448262540889528945893628020278371708940497415861567488416726375574615139326522262180552442318933762456143319123251421546314234803258201330501406980149493013079352899436835914812298069627653235926764408857472775644457926648801307212677110145556892590206326882705887873757107387175079500090942270923735944208938284799262545864537174613399443286286133793808489183600621164710830796220753485829487553472872494732744510461573236628056151486519962596598937254733048780505460022013640043526334215255352621031941904356209416501840754182896789687750707919019471356607204629653211001033565384135215506369854367773849440654042906029692811905987517741850102873877841173518222758171606011066859579324422071121748980565895278190841478411182867967396265897062251527966716017750586159745463595873098709957867963370550581451496917512774547466164102376179667062759736932927286284146818952365691423783213186055025574647660539553571716790745524745877073493388444869756814712284206085741511408654382070527468750579103395921393280181762788143463176727979887074381765423103723969604617559308107014373187397200753075214976939967576742509449563164951921635791052584205330877641447755691233638282804423680189885260423489483794378380281112133399602442664557488513955031089320331663550522242880291038176317895166716258279825264349330039258200788550036748847607598540867006656850014361498446959006121531304019582827754592933183929785526145263117262773670150071503409361139307970824984452994545361968210212857793083070495651868261961744226302965772005264199219960140710958688492632580725399760161061999580811743811789954750911528518156343094662505539845609078823370222722023626890971002977518026821180731246141228199041443892042601457359997849948809791196061169855138775119809873555132892676067411874567399409909003170039967974876532979848173965148449651807149286070439239251763197104813678729124120685303649602899443856644538245037064514649416026232222552856330115266176695792733043882252756699249564270769113405725885830160551206121576897762599925769866213575036263748959975543076018404904319026478474904466830787971032450228961051813447120200518857589313668508110831462952689862091501720250063077148971386691360845968924736587419341586350161693563413642811344274393788631962113905217474619809367650265542089695761892842403465954255655182626237167608329132233947741657083794757634071832635643704207547944367315403612050462339855145601444694028571213463805092777350024780102369920769102354386109682519902434201468347537385035802438937458700497132047529673516619997575616260471172709590417097182055602345848259750916528038992422791201802406911960574153457679429756111049985219275283757459483949659784060512214209525929910491373440976280970171317255989725514697180539436710733704882370950682026079768579046424758355316334102162752678766002860206699070576420767034181149869952356340145021331529888162035111887986870042927618737059114255325530979834314553239373675280351915487187351089139969012780750658290427986540121836130353103997294657666209422865132127817665152596117212293511833274790418604446959741463343964277234413730479856841286404451776098885856987471484382914017060675406355730293202441317854628584460914828341147176872266100848524246715029059376301771269765068221125956780308715028645183317332665953417943057670999180870000093171927847228880716946066857057700770661061550996440780829941770131098407866848215754978248639952556490063856228698298967238854890140815508495020733242879434760610273347844069713708300854046567690821218533846801714992807699176521178414415741481144606389932343025667862880319089107621094868556252451377373498638339865282195665166097594815714782556453201043478624231526588360947313025618709795668555887284005909111301528658536757594160851190693296626612185444315047452153709481447377683323963279372520660259371913969591598030509409669522741713418777129656917921149989935649793453765921557290369628516631913267521503136613881147558640161275181871471274556466530035104870011819277305297765205487682685296085645788417342285735062437530852539733762765172226716786719072675349365674722079575373685069077347211767978174174697842395213448245321755446258863731776259926445572554324684235894928482017954995474508588508798578121098814912609737711909621888107875856850189840963532599083133414401864791875006206121253372538807027470879871565822816440166921004025021909845413342796268399735830882222072684108648192751887856936390585890095008515183728953920575039174305673619361525331955272725157488310970729454988507632805490835593970083403478734408641695474046186200529345907359920486142038591680108584369404235748382349302921376548997012384253279738972402622909207248709720881460660939242237364691970814889979262598525865391448078371417103078372196243665694323467863606165346969744419260918173491571536536252394246739221438325201113799447741620987565198985643812330021483827711620137239346742385725473605367107329877995669786006766908524666563880348422548367923707886064346301440571889685352389495566731758141323768509168978478501060240052713279781552254790048102437745253301122960726442523147354393789404982479151159020780641349516139539155591711034537892121422476071727963995019011913896891501542831555221194293544725322609943490702711880691460724784923436799126664962332184182270152149104999521790927855154353413861257828522578382334341791591728851043121252419211867465930242804163797490772148847503268286893579742923151861337102057689715796282125724765934895609333872685797692475904799863306627541371444203067983048690902854949815221676643105033049755419988552563455052594100070716598578916760473090021957543764583650448354749239559433780105879347423568153160908203896692395497369210734246671402662104911175078108741098491386714360883519247913746382338469178446979529136593509868104374099075592560734756701004137201819763242482665912457802043337504035446779331824169268064688532298121952412496758799099851313873326660549038178358752963586384626921752686326671496651693034603769115089387489677032441654993891470966082408111495880193707986158512538020202870650719304286505974711791566126945108828831542766767270619431208106344988773136226002931517515835317457309432771862676028575017126835102419058437512735503660667210564518884594147211515126574428463371026390251092562660387467880393964669852975709268130505307454670637411628673182234903014342222810849149677451115001761401576514313481730852314216841385525822547634780301713425875867432230473147941775107174855082701610147434195310380432690551309222217738494616707424179946576681129536446398197145042278225488426009678693167276612144322869407506709227226377338020078484316587844170167964308220029616719610635966028201114933240693510930036305504418481034419209646869823289103108531435369878073828529913962664594555268802845376622828971670935450133477789894128950556725859690411631190524369202430671220240728737580134278341945275553117152209493310069708697605472907154433848186974302584876148686626598997231918855686111804972210592527444464041524579687568135435276918534181537843979331883249233956829095048628972155211972207891028614980585002521309689144809479333299289843618838600450691984868405245988209780772222744230718495008337286270082875383503916150083077236521366317492369870137648690560902439271311315718279183881851831440171979167085245132627829093290165442419926365905163000092901775129212963364700592667673347452362266407698538395165952366090287329749333519432143959092326661660649301312780286274275507909338348662193270440828243702882448262942706122970773712627812304394266039930509238080103580533857420457643098304469752329207895560507833282416443401927411811649839215452869527726454652256734786839894243576791177417970283956950828201790805964993222769945686338833211987295792393907661756544068089216781496082889853138601851820091691805825381794387427312285540923458295879799172122053274273370465633759240428307650889597953249696123710060793856227305119596193927756392833881236316393510304753664349961043288368619376475476588779937629030888488256383585439895739246101893906340905632290590867378052447062751407278967419856935557809600495010225295807393538573148607740461595650363919433951069546732736706225130750562845597093949323124849955169685279755394981635601363665931082405223242205911956097452480353277843757324025374440387146382737079671633906319218924166517799557305981885056458515098844218747269195070589154387826891187484903851141755855310668962599696470732625986814394025502037865916593144225456512762206954273301378912198698967390573509829480706922730035805381168518705384344821626782561447988884205068469449281441349444550265860651215415064814280079627541897821939376246523932282695749893718447920432268747330953422718063709559500018197615432890444808236768297669079442945479174957847148980773240532093593793840646797424006213367949810906734810967584295106764822792815171056257934509729172994588956587320719980450351851310037723111011366042031774590915761300396299912296442270148135751060490181683763305748022690869740498591862724018166922137471806266524473479216469659821878076923912554792176707610973195244239333019530301675384978232196045380010379086176543029019468264723320540605292080750301195877682205741939068446044583884756765763765024002047181528703292254202360097382459347909366839805894505725669799360135545535820348276866051537718584568963811307228263055977830312302747144230261469628804544852713294926505673884629689712216139803712722907292207004966241981626983418475031587533231394364768377620438146041221321795868661043602693802034937124856871613203106842771506374407371049892491275454154345052916733494077879357312037030800711038561602807198553357972392665903383104730076273348260933431593721905340251650602821448606049115122666195728907984256010191064529761502273304167335592717841675922154868650311673725743869703494343489203865924804455368260851278492762695364392220388396870330109728686221449136479785523602073581736162280591943082665121481867028315442466124824185976031924404272531020794482720721551062672736598178291646289808412076978562883264190177153783864782297172421630300894216465826318759869735118684992782393396657423636752229258051926790093485754237121694310969402253663585767411219808359595174238506777761803306736421011182236887384319624053220610316052873061523104435619504821278624609665392472326020114011988848010869570108797652146783936722787148181680348651343687349283371742565380603703161478979966340895143929201119866185801041847408416546471096257893173083842585485880575275589305512494502317370849713385986844163657989139839463306860351829824761290509525461722684802537577608496348220939156004794526314778980743102854118195140762942259833808605362526566422375788114783933467001329697955153135068861252060608247609559677229111204501979773149798300721530961386458979960522916933459770344737192045519554646339901850351652285955096771025793865388464309712036807300494056956750369994180961592252853751479162056974351731169593331547511062306717840056227714132973708035791615539439026552225197576918908950308217926821092682769119505172183144227850237601052311158006930134465243957182586222431806425270966737620464529432133053320392364110465982175958922785075941646312717556813604909884102081034916301307089656643898521723001117792463737978584293252918150450286501583207983916041254767702221831951585371744158474107203552594151792916750693738309443731097762002067329974262177312698270812712965455470592231985309983237963937572031688778886135617512712663145157666777788251512970363826276466694382481378463933485108526272994491877145018187570016883616864408157231076090056841711782804748479914867481901489716928410720764826296282255736424444326026788535218675447014373995832237899487844516748732650082430121931680501059640953348842295207241337036833157501462935541214429826482984565414640215709614279383753841838232508801114783993473591849309867978840760412784550953606569542880830857809432112326454669872062113048406748174724495975184805419974938812025626399518289966903433071414090867036111459217937004181062132779347915362340848079815912572710312707076599070958410194251676252371625252776456585888965194866193704589665067486157709400621018413399344627217052585603466337847792068355916969414485542385174150138365435968839187016068243622518280082751700051069113305721265303821145730269072101308636391602451805445552257382809873290479286901499697965007349611157523884027462764673319871351839175326725861473388479697313752727249545599973869000069223416322746667685706588539570676664677950636807064461685738759787541256505567512933803080695794365014068361682814216889596460213019920030366285574391554634230384936118618644978368666539712590416424463322530272781251456828623667838535839910257871777518910396263465267975362839035703697674310230402615016572809375091270744383514775119183728326199120863576706132863434670803210979516308152976138363392951788578170396292815401243240134304874558667264480668703286940723386017248782220004727525704556234226169796782572310134692554797598967318521586537053897953228494474899941539344975228745472298704729217723101754354196270456100520299078194358293043222519006251443221669217621881209805636885776893305116205352421726676750533194327112569518236559008087986598746872791940936042672654516431331785941101692458980150692354095711696462748842452296455039428043364281953598725997297840663398078324291305941388250799830866951984184938769563839926043623423505862465886182893803901964245197205548906594261082229597165316982334309232543510277686593084543878301062814820577016842300827283581912715637442277272948848422629305897148813868936623264437114819173287067798212137744605424085669199836568815588696716325701628984869034149122729143217865534251213426619942115485359211836448458177140440207531525107627750862793892142418433458659429597266688978803648788646904035758479279961727961183120541628714222881902226381483244724402118913462766603215237444590333136301565765819191180348286693061363519200632767263203980337005908985874227216813716750213173124660860071569210901693054082917925173677992213960415289751504189525514808118495680563061086017559233369980620497867167667983193412093558550893405787023428014773692737800499374051432502183555137879479671682828034507683548091100726827743022274376069205377834169751686088426407333045541275013472217644964610087696153766181953836616310696808080250032784680810843851626440977987637646546404141206998253750458330466807419325951410472592812397760294340584917642638921857252725319448332372039685197792560801052456744275192219818765191537682492868439806800981792945496187412447744030818513307667831171854158960931803088507656496158853200638422222935924983723673496866387422863018195690749042281937849272480324407073629199143576645860842372928838103976798545084855186064386665415813357741419240815198284572585755218906241271610297140615041971147449520767470668357289556469588800460096996553067648475567537822874470638297759387111330015530870953675369907368230470239471827564888555006919351331242809308571254346013634643356949368711858056328637459390749098787951672334186415336884620805303284117975287969932865676977100183582636376177185649309317066562225857012239807857724966672447808240248739874170379337780778829988509111079743567211989529152641026683423146491188550351494423272084243836582643734255082699918893341594518015865248809590060412050103564182567387416022872482441067841793984300225913675451184618595326339608315315788678085766830614585405956381192276968797877942767968731550418880246600454080584691228463422095699227836261244102786762765575898903410856143591756864710993561047493799628094964826695456197958260852868105924501256347110221816089487067244290499691350061113913846821858644979528109301487082888866395290852714233288974035722047319150881338954929650277119929700334947411885152762764311319398426606106517870319532381157082239028307391373202824323557583660598326918788873561213031706927377816010923620756266922992064036813068463157538733330688522356377422517248759686105657882544134539700363704116234472145766589718781843228033586892760224171216499133642133601020433311708482779476062420573835578949511547720766027985849676172496390841691674841782737445303201154261696479174277226608038065160869331923581760182063759330279122422105508896431726157668310068754988660540438844860603991398493016988006671359596269448286856706277556401089652013193736692992514770434843475116853252684193722414738292801888523730278150124134955529464211244075977807752552537604018393751801198404378933488480795404669705130247563918981792946596455849348309117920140273856925250961327992679878651879516187125686082450104974084697807995717216644095405600892405778063094025306039074142163710314646914997780708589371155332801236341361583933013862277131738529380696392676417503137349305560191386582639566031459030763588881400541031283899754194673153891808059975532402555917811450799548203176461495612051941880391564823074989092208552581889398674764773013206973740735898255432417598337493355460696888067950210942477166594969227929980437204112091275827957607017408750660030715514086943086641696841205323329261351431899748648517843708535153942594336656051581785433526586918750968641298078280993354288133160065495606892473177344982832499891875826952438817636904134375145286034182144124041396195733216397972530398392422764556047793220978581771118296702045568145752270181082046000694964353134477297860787431011763741830096861397463493900353920004046529687511486976375503045578599938608745316817387159296976545784002025954405445728967501739837744457347267604318050087921702565613300925205337362504321181504265567938911586051230888854060614557488097933886699531489526211717786815476218547044396851291212314002324417623602695399599318221163858207523998192481723361955987558276633750351590973813682764471186520173430605625359181541584514545784383164856268415916849086334362848684497414386994698512549281890866736434040658660001615817590381208234977673944166599807148794228283937349635035615418171893714570535492743555219677578683251854504252740400056635825995701795746175747274630251063106063681832598416195232515414232498998437808046702346265787414012674634332943693151567491141836640372594560076887821654875020419935541358238438096386988237046549763188606722025286437652485490418621160551216967035391775411269761616160544239213182437855643836909106576056441346337731726079659968142563068409312444108652641054429299428444881554770017738834744100922661991855382634258137068408544503009319726683143122421795531303121503789392808541629966008416928791903604523223877715888903740016269576223567324844168257270020961295502206946379273712365401579488694880199897872998898450173649590099293853968918546320885393374091001253808115834809241730038193279642144492506192827344110092699978803509327848439991163206132908342386588211000496988651925212979175129684840133734599759503928686173187802072554748955485366320661322765160775752724912432986028978956274762504934886219594826412097858605591873790698616034029473384173194580350762654320389968493040319137613088961448626931081415656355570529511401770773275441747625931015128925440451715573947818454888677184980839471371025897563668906086081209874100053835449067389939220578322873869882327109238309598723308352522857875014031340060341887131571097414986660863232902308561599781886829538446807206919825033222654575538594269472338904036887812075724846724323100037613609360428402097144307218412315961353437959712593822948375171864196528245850628257237123649962038484053683747409627273794698044116959682635160208088419367369116377451675304491418927771202688202336652765238838904427986869767735737741192659577170388617975239036807918992559155812308559686356149839532849211696188283390213877048020516018598616242362477433609655097227699787314799473730065276702732547802606838146722763825941419650904231076058727658999172305995448104683807476187474097942622756685955172040365859800163200681522827520838117760029033357284439901716968270804309429509061079401638216863785589420009583449695848957705775209929147012540915304481952658203173966093271014223538984003723742847772439026276132554327729312028804677529715172120587078861767821086773813810566741424949580844607435592982392423622062383095041789155251372071757935579349298686064968848431657730703657661522817213241775859271340312875427778048328249590367940131551408077932744141586326030563451667007597692031522075675267961244185166421208623276903074031790379093688250064905615249112095727170668619410194889511799568449429115476677079500234704564151984354205157596516451634771036107146089672139155378709031850422171629568319485777099920877528996116401941690274074846065578400007091137690362315102761339842085659901528017509769205173128216798374216962359603997869935999183695587806676895397057364554551296197946083363663013012493931658637904419061707566272754174510053732380996378064254445041091790752837948094210740142903491999727911015076089611268734733949795111479453375105780990596193384163459746568649477315175529443726433868231950204445041566533192049692573835247268812294054869517426379702440606386430985145906969437348719706385585306416691204609647862485412085700451443904701356241321059518390341201274024797991625251939138447251571343779673117640600413019722154755416038695363668575942623663625034440086653742932334261255196397344046922247636388032992307854594810729895015962398802706482596201390675965867736655308713833999175687953177765475524623977045322117868747426901482905817663287722056880094695578514198587138752460763125754351864562106858679110773893370621505314073911007095645342075717574671019714823123264472845968595532811874192578531238488139722942777731357915252123040034269242946272606429340367287026420482277280388149707546038931120516715959924988779562458638448727519591492855905049036043965702627557202115427396811541290205554663249578052061123154426183827778469643087424747099034358422132263736008603814196390545696434160480569816889466796462787208400289838080780453554051488739061928300001272400629236045274694135033649505113753048407753166481054236227069274960090513515348288343195937956768389459067623649280455699322136938693810798855199273398273789816958541438134283050885793781029206736215553608760680984045015378309489195635889848605409685063991393735935142827054243047870330340873062122973635036099955826303624016757047132807533073419201986860826774708093892029550561130309776774633486877606552197900148752579880691576743003452504572321014189310478536341172819234305279484244499520317552585353045245031661616899491253663689927028688934599920074365757765325053928895632561848312643112438643192411584780829130450150524391272374716804327953999169177535335016181375046319810060869680436445690087201844357515212555529191922440387858046397687505524824105414757079531490550023025007058358541089806885133339226733979648103935230400252752502707235329946132159431562750044765954187511758448329765689778792369965725094964162325881715435372543603945444159692595754644264417647968843055981884970955625508704542243735713332469858291900982839900613362364421907014006007039723451312410389401258651456136455787772377583173831874188887534906521783044683821581079338240003392463365756374091289317572927492500079858146371602995355064507096877979737580469117716527193876326491276141031732899181056776628061973541667906948688742331619191700226961381965089371063802292470088747458722396850814516997330875641878275406407795072221552300718831533607108731045760080759604685352625469495705144533051724859196513270783952680408333297135229555359570979761581626541856703529848766067593938950171295804361290961363158467817311073508288045284953389453888724474211498611533895113636209179235958639869620901067221189870779079868109308342869069969434616726201304006690480408647130886104355029545505913744023839775030343382491794860630515935141575722755867510708559159409365467340077194365064522599973835709157232536893679958023297425990093331184767579869770087251319727737279028491116975033691687298445906797131977149020781965244203682994890896156931443798916680147075519150111684207785329325752835585251957023936144817974375146694281554562093414386432190848358725655565748388070819694456512379344260594966981458098178888632035185257570181643171207417119431694731273787741020582610871436543461184992396816073916584979060803503718919345399338435808022360137038586237376266435592255335243079670251963550201216401196678618073952695021416005320793354629090157311296342258072599834855829903889295069306808699921252042044425501051875535874419135842162462697413079140875311309444100180585595822174513947577093817840690258556817207658565797850584184484718767866154181942360205586963664216489047349166935221284758399438987222460927130910958350634814854955019136303377963115265112733322219026730765120238372561956465225951506190054293367197248764310928654654015220690393867768618230131139116185643418305654443684921107399616336016784279733401237706214709491550692237952947213000646721427034994606503298819255905923467542026731128353674597349044891172277551815091858270435344186552508011393254148428489474811017959298860249238998499492998103001144092941809056313596156026708297928516982861577347246890742634596185126668783827147777817983105317783468192139275183496844490646076921926373381766251117230757061851818982128903893825477683631261885045830894578515723460903172725256653415797175635811233692712713095057912274934355961043687180793944391658988556815896983279102448751380624265140144913176875994383009983167950872995440063830019164821462203527148458670193924716359595760754630795922777781727751088052706469908826539245761478086873453491469419544455097190356187838652547607512574537506078189032429759963010299358050069827845011279205520732660939562368956607457239077982336665782093441697286018296726408726157568093570350287797782978854047160050307116240717137898000856492512663918850492680656216537288810168948139891894492933376023385134663491572025930233988502558761628258620406730326974451865797740872082808775193598082487266747351956638039781027198711573704059076430946342641216125207728295813236189248906566193636758616347807205962791221266555634231122155286132165298215762912989197414656552112582622118868738478530292756794030142692371989596461830925114200343134948350638180423338717746113611335310614473246398609524245244986929131885076369869400702083592545795367062839131528474528505757747035007781918464523042459959742490397134017718168681913948826471212647260771215868307844636684986781174505483738351165079116101563259321898884569769367549460249114168991443155556128260296723062967632605631655037849671201167873458178364273039796316470015230258921635871614697316202439947857137221945651938107368809995718184984727111264615921983438937712862830640091347916475980130899229660269570639268464566719018031107964873137204743839644177556287414608363269148691102189064890680412072378934334898348547262425340006151516140715321829363810453373729432187519583457694182816150218257159386438952066825413687371662239862475025024414750315135377175011103684791479342344192501746657320006912168116242493375483803224404750851407148410449145022235932491277318270782435945001155689991546808724759689708953531574633099036311271970613214408842791566731727569642669205181384593031132723519121875694959434472165327931282993126195558950966867413980374967506681123317480710780809928057405747551816536589454440584774604338391697672530321101639680604362584721736507793716454151121337388089656036445375401674518109735996411217026079669595363535136040163062280676132916254538085631248738185525566615165615538341703344909102900636924525105928763242705406905945693657102886642571501764218876928241148549694788594925329918079332337875280468606598722271255064852506564653092253684335842621751240938646184945775613877348032675247385638452058377441852187505520075030652860669117237536026645335953663435883971758227704023282968207863369961842998340517985500802550255820925346546348875221217229232712429967049797381152201246087837012676919648490468284933761827847668062288496939298626657115770771017987791831590181165871296108732892488333680394691280262159395528558143674269213661051733290583153572282155050334869239138834145804789389730962322126484840343330938652504533396302126524493648445248527709783899182918271604765451304130903618187078920186622897273016442387025798209205496510255811948978285840286196705807046283100813174853840602908321110031080011402683023444169056745958272200572768538037830230951357519457553774430088038547308102373680647950471742157567710285076375953399795584316892014259480114990958401588626897996246714633752042877182514074001689325573664994337185164261744323340862169975434499017439281867666131052482809658266714251818993414852559897456627599143109413314621385459938111332300149101718989631257049347889693427388030741610238563177427044706406538091269625154333722918977612506535597720988590590559785620714512875506064742400659119741427071417665023492306827234589622267700312730497473470915888489243022856804607225965591159793708102633095467469987211563071028395520285198800587465449226111739702091050660875506756724035551840384016882502792841142761466262209783485889127229669221665476356612461218251788225998586153243413227603661616923679079679362359749511546730780833335817336864149009333203760131738278375466531952452148905059024508835197946312365843377872900777716062685534291167816772704442832384062436280735016023295675498132926104702417642519119310390314600235519605020393740864320236790536120364834131694209877698467152415763958884845246184899477169872139159567515397627508658699168738360680843035018427945679363816153984977725773734732191655197565830808124354461289922751645393662028847481429090399613692822038629893991358656206129941368297584507361764956308534851683561915626740408355173804735579651576345137206487947220565160743851212329184950675378961953956860398952215397428931220255864853640439339970610252470175756517843959242305317802189108066747332406233225664608777020902163993012014240988353763918915081367387781388034186281394732970944919131847221657672439630777631467530280882752811291936710910511367753009594204182969063289158030317122665643333458278430937738374245376804215553315661247965975216298202306267429432553089490298938657692566785499241626362455162148736126660340867115698541767909651690968237320765702008103202475103801431891755362327178328686176066365128186083591999819761342628525791331952947660549339701832735483622581574244015229749389061504420547259450517177203567279143902233831570697712443633103289101088252135682645833767391240022322431873642702959461730226685807835549903899738300066690106922366576638683255728013197831380749425003594442891183779048582828455797898693846770852014561346400234743237954471088134261146807218917925669160529543646532496143970083499865532419208965909512228707594937627966796505822548136556882823294145889234884848551843854269273059549057598770077120543012313596290875179370311665724148558634709810436008591772143154164557274325040369706044320409379455570002708846215350320590341055433367725124651856634880928667651807412367153363751716686178786994030102214141303829645912406287096077428593198807546199498145426853562169323529896831257578275451692737570488217819219840795653332213608982990533373043344484341872403706992617136974218365243575065246795024356028080429664295683781284128836102464613460673098167923843437394621802201584956850204167096409479342439360196704644951085155732690932760585579505472466826488152050574268087146942500781419537545707035149153762315151180823179061647641667712354743919945338860681650169385521592010419260166541257094198901684379117886906111824764110538867910474030610104821785003122879708665419772331995581403130920610502996494008145939775486480663341741953754976792415706485420357223049381625929403894752553445979841597575663558776846392198805594432945914516151549592760420268677543701571435576419219082597495030802656969315906076011971800868714616215520515248208014971168531397405262281256194814743558843625340176106593236120012116245318239082375329922966144649276126719025755787678722222090452483889422925670102727422331127712374166833505931462577985335203965326738906710699969238655520317014250311191169800091147444639338672472987360256040123874280593142037966822886309970246213530397069257417893065021220533014245350626514550239579266208156524632746272712300822231385431402155053788390998796010077292100908269595402975556305378079177967966817012451038727824105241065709425156592453854005676994983599871972497192657933594215051359426846387870538814603938624599935326898173119816575651121698312437515102346910864037997755570026739957144826341205451741647452592694726126698722794888007978614972458258761761466722056421057503982394728724063643233268544837191456911935124299067455978639273813326871527228061280971328073197959322254958135422191974663887648273593396021256775702737251736793270606126507729183788417795759217605730598205670868177766972547144468110090392201812579548332814359844454566404370766809853407190900092977113975342101732710048210852793245532983491818533454245368993753676942922488032099741091098290387582511866056405282514066163700116637857020378246132277057089929113388722599025161037861380318936924672738014751544275617622394745775110253799188370133157917685939106265991298542614646500267188296464183712444448575523521386604794395428682868989755737140163680506534878042906205985364256206014806434711127760943999011976425331013512069985943904055001605710378984928989470305471066803585925777486290159908396696005374583882893459610029267388980178721290056672818709115530974180635307948824525083230471420812668213430384312095486996626704126415291790088432410015758184043298744902264364741748789133179230433208108766406930098756511309497631360865759985856513755487191522517812908518848026152437962449396613481817008335635459990089022861793030029050352740526080569737021398340681129607467562837731256611920517926693157153789909097066525943872078447364982464660616699500999027631088341666835911692942169263570021087032180291650853977819630379084987189108717598234591857152579513204947387341031304173779810468306090103337319214547649328346039504727095191483641349510530516579817886352485372254158486439404915478049478441614980635636745722143081556353170283692577275812053913439156566112795287017856098567623134745160817857499478854920923591447225281211316296701099584833538680263073476177529347087782011549532679868471640191040646756995335419729405547432900550859299025655928837137037211819173775342144185820794298379515737197132201740470575915453275781156879295827941425749773517086286698315695615879065296765181022141429884824759711977189598200680193096136340056932834356745525713277468018382080625133669087552508691056960333981698513732995656270656418117490546128619329955370751649261697066994374579661334809215051121073597264681886603591159704192267714896424645695440258321858662290777320232696682588879273378145986238988276979256757685261566676932091022274720254297241164640449894901142216663676539700573318951674444431113859505491497167344151378325429711426585713904230312481870045531153972511222271022268336646652975718441959237226002904805789806724890552284085221309315291343661965002839450430182353725130861476226928490624535258293521910632615952232844097548748803893947822853684368662320113717010305369575875496020221398643008164198994635336108897945669892520875480922058354846089417315515507610053717712264985727749213125123679648052650604788997452807545032029186193072207745475661911610367221345825890006790936453588316361190110154167376153262191453671341535987501639029342339322106279061045789225226410700776976009015071086219476015349765495819491524785269468690343847083621089780713575561523036117423720828151415434093790950833130796265088880132787150529049053085511591983506301253968000545015463558190234957698659237519820944379710026731093834446359736109341256679346448126306040828657332450121437249637439877446223751453360759344117745623483081135931846762425715271880228459986140936729975523721809275548763097041234180728458710163476653315716430709789208940007999700225423550053319922481241750945574962845738378154912004513745872751715220105567251881067326840183229133792807805980850074529919405617668450904196158997193521770635418699157160100642195069335729216322214377836511480012894226263335908560986869268938607124276779692311499086992302680519181671785238789567062746135428908677288654840481987423675737635957008880992555129726884049748603193360398221871673766520573015208252561076623991609158536542000372146625247735004588894574795718662769883254737439478222079970594819268441362934416389143113200370622602058879490692701237370909359743781118771555198531739478847170957810226562884683588149562763924249112987555633676566140722105392616439269292865947356960190058471072149009685640560457082409081201970866362050785010342484092324645213078536102319586812617642252623542558975099530414144233520278081196898044568721848606889191095894388778510502670903851316928365653783127374643593244725750943140139526721136412218147512905343541682379412934920929796961185965803592486653002816001334429590266298845190115426168361982137284035194527211932730827960220517916674358383102614825542803126330585884571213303199846655557339235210570871426697606198719262473031061253522322396704235887399038089188186217873939144708300657113995975403092027951288617686882117029423737686330614986107825567785759982966420066326197185361066448458966289750141850432806534327033603832775579450172738121079430438577926287804275306112599971620887221008962124329586288069485470123551401533220612651815911335319504380197344531750672645372454036290124082068326284215643109732714120651268495828669945577721764664424957738880845904666981605518231923809579951968479198200655520914593379561552929228089568814598180000865134354648886603442884846657964926284034959484661801515660010916235264586528541395784043060646531439890548017823627298158303319343676799733372427137068462042497323306841120867402176840046698582211828230323856034956206773020692991511175087314357021287445859267345641777166806690811433004824570005443571535091748083204250139165395961027357310403658921737428049712155818418990521604861430848405558537785172882451507388966009335238656713589485447524420181153057515121780938534934468966745580943197585099051804038755832448878167440603796266142812018253584977661126105504976285802261791280757779109948138937075510080941379486515160452902435704222850484947599863144799960980103250953427970234058258141590448015598603542802438724631093013163456186248835388079741769240537685297026734772572256644305695650589547429229267033208973904178458562887834952246732381162332861292475017880861049810686302824621639668968453380116112940089702391597732905550856286382133106534746455305968163549037595545654009918897462971610339919808847726413025043535878976192850169136971640389718397676754029450916400184946816596501134567456869364290679802591155684117837372637117343064511693367305878801704023916884267625575343771539877632947924038982811429124626918379161739344666762626475683655029062540539794460359928109476571290226020594478272363660425615246092428077544669208002847874128713568345304736980355042520971618287212565277136875041351652548862776068287505969517931713668272147136316114537946515677706741562567255566725801224091324273607022048397233405499758108380516071122814376221316907605316448083554011956938510141880522988226481818725361956329304338755819553583153022616215893941746260854885921128900479037833611240046173410476970659654246059557193793592622580700449488556010127822651375975015222946449131993015254431208759866215882569243849321614419129518075024338199578895486791194697922402375714181316004274567351119229540545568863902865198589833873067954430268727398668077106390564570675057466871867630272418889544456887691913765734496489032937912641245429248858616360649979299763910995441154995704856731282190507901301099459770062472524790941286340552869386624029620822426273379921356702871349635706398684429961034424789794387983901037527807430208018689826480237153629570445486450487124779638324141942884536017969126878695843479206560292289958098104382503292834310825932881129960750003064594745509529807779970891930763810251986720923247676557704252177254275097788296068980096747887988083677498603769549667329358418306463593892594920649972425759024378152211075282996396111373121609869100850406124301836390331327739888531106644938723610339558282363525673487079235964639954279319758020035318923051332936337409904042497757252246313219589421578182339128448708735710478874166499771524353221297638932469741514860837885622108632791747662238778501721554687597604458749428322638047060260776762333501703427595231828714097125323464570107725539611196072697007669930766159275507026959731209358197950580071419933254530015570564528908055530605682603988172054110690896011938480677137941358198285230249503062261759088476448937656339136060199744316378923836035882177974302066962728698426265608116469589709264437141927872997890567148563716121768778740533857404610544068722478127325640700450079251048919310664131272892442497332837098349390662202824197658740951974747521228111681079074979369958007676127153186516425540422247739292422283196124470499281474779139844808171864738691507162768140989038275332333178918023849968878822139809278220927748759407546045912830572267326376767374698212873037846035065704949208781916730214825433384264775667657210332633065484603644243416400360604371552133733319333393551195997576987967315178108506510069401278830380021176224839967641144370181968783642176170540329779676417160430700854707359209140610710393569548401487793492045831519923867630683068156286616250886137534657718991379996922612565206860756152062605696548718575809208404483411874005321410296473613333140114265545636945831582696446245355409929860687612136077699139007398425132164246037450744074450699567287469913522999270321407100170699677447334155083020043243820096508524933512079016280920678751940226173046597330010000653670186152526184192775934582790786126391390078816217303815966996889912276631750264571461902901188407030543391535291327570933332180328860816843654430634488157734044741015555585143810946201758873549594614142495291021167342460628063240429497667723079531233410824698786437184104716314882919910482096133814507333198145318557091709901724527356737383972412117288003106846384152126237739570893319900951574006825860539356334339959502518150885895589457512172959364001630484513580262407377557644023768958723458529044935110814460478761796217973243517685051397479073520542994194577050694522841330823565658313429696850469060945824024315852217491070644749704206123020653542334327317383266278890590449041886859748304180642529608970720575910917352070454179205672983745578810727418446777188558338144934469968435358066374991869022748228975887042249466536888646943877652797560519125713108808155643546558895285838351941505419431003828430065655856926354186423676303044889173957158228905700301958647756115909827254225064655163562327153484114192868190507903669245533111700805433273633827281439952512133675671451255484986758655594116732104433659677780644231669166002729533222571760404549123015801457050054310449247572830172934902657653425812494669797571740970781303752142478794479133900976595256957702464971667013542947282107664423447640359464358060589397407073859799011577568030382079432205248391873492628292774629466249854356859591981244359495903094431980177783018864962913573871050864913779804429344699005501418867521010538134862474249566323783516667536678763762292562128340145724061336091157473153280495268051867838881418704465486279677715477286372374087528035590440578309846737052656278943672442115090765755040356520859936500664649092167134454978743725575257579662754789705807562135217187316585398300362792678049182633812667376527921986858203916250357281739177097889796364509131505519320385279717102312793662099592516730403936894312086598481644045418779788793644546619772380236278302239027499860314993403139518626098488259046761983266305007059021902053819643773159796260600790448433027437792862226747959248000128957333429846175414663699536323609124915528705535967085636028590356083186455437420048206264491261635641194883748624282323993178252286539780541038494757258727799648529197619462264387513724503954494039158391472583035377143575778365823440475633471675520062933393059416382193328252625308686637400030772820307342264964367986164992944111685271327972547608208175480572469790941836015801757544711378293960106503084750387796703244582714460407177813667680840787662047559791057727232647190622441520131064846248623782800366504607782210652408286455087219798996928725365822398530184719708020610229162025559739053680896379397614919806468261999882607720843532060773219838784996623544093375442756977043651954867004960511354220610786083976561154802925280105443538880597259559310090851481598258768428415378107605191433430360178452677100220308856311810922322721416623172190563951579270130223797523323587896316686480523137359812652131914777018137363726011052559440351916748563287878724995593049588098372749785399461938468354342928615696456535102067011257642164820108725314340233171806631825245630200555075101925433778303025431736590930326690552107539667420883062041987698496204274605879689762894327412091491413139317471137146923726161834249603802857683888209166824820209396012253269684449160604593934321277840277762372240779982113672763567178658662783671332372403178879285026461083684570293252947748590166054557206491767591931795426677994318146467904760920220148943722063739662209015637116857980748733426137932721677580345979025556966903335843455024186621913728726201946177988416199752178811649651918306073289277437912965097376320641049566838616653443823544275616965974540100816567140953934186602932274850114524401303694979895363067810340880501911894672510777957558095565804870437961794311169542905638660417233986042661640401852066458044255116555907862363042435717321801699733820805495160639426957008930744062966586381237863591915950658803182389136582518018642177806712541675852212952320906658071483446778181558345504655867077392823343304029134372134019427852629553808702210890387224006847599018761769021673779037450875980626069962832093126565766618421701593211625015035306361093058661065441507131193373881535064609022322868533984248063426850738267898904148875144098282108541078394512730146132297713407563260460651649538431799830909697557827104102561281727067200077296716615863764387013180391167905178532870523976329782510836927074933292767154604945932590825588788848129369493262704665813010522207038370492376826342294496462924719328986419246677854735096439613311945072374091696218449357363348020252351399192393105910964775920787801087944774392650871074283430514591558365851813827475164718758030716245425657796966790149064938726463808904639744819715197517965111554832154764212413192785472408289199520482558312914067734985857399375397883450620102320804910157644901731318661624275493955896255881111451781232347621898441711620728215104691042195652937891030139983545364457208691901812447192338651877868656621063976167879409258917769202486181846385083262800580619996890183718337824108694255959664856744800477089042140194141165844168822196948284035006373878662125920908273619363293422535480823804295264946283062380679732189480250189647261984549917504534786051562233346306870852750420814926048635607597805244850707051506429357388774166515265287160369182007432961231243133426814661439585519272594575621683922197758860856115530712927339519333378278688446978859418591919739286192704389344065826592447733824776109816116884752327026194199875152515689857471917308539779663527369480901324033941734137791553788238868388536263656306505748503853858672599600420511203130914308059697182992468580769932721709527764328644272308460276595663247855237978372077884920943824402266170113398101211727719282690965922004441420815623618812284556733764794398502224981142521862842741964863033985069931529024823173263590773950753248182388044446317332086565345901833029318831641560891394162037790785966926929291777834498898923186721245151985447241997559478965605730547714521664445745185827316758481594421145944423220230984107527619601785970482279449821825902175137370752616995049243282278085894036820986577511711512903529154239231629209875315455747419567741105957151891522097365624767983672009482062357838275099779861134939187256282874892690967003266480461385220585543097346567715202420972026048678521486319122959680821161968842419453629200150512079642406970126221657494709595641576382501928855418168960401222063323197525684744668344297666836661246426456729415410043688296059349450489027325743065868005088964785810071360428535685444860595728449355632445544513871953097996244727423698001133951511845092645755174499929863971121857389740266831547068154234603179624756267385715709271007382619943667260337571254337452047980151858246920413612609987581903835513658754562337066324320655898107781475894954367700404998149486350490239435100908437831114434254097057317251487080692391079034907018230191994560152458724519683914138140953548441664743761985840736068032978625565434289085319030614465918408602306153400594579666300185752464100146123921573657181973525425346516755725708203196777255449697136661567063313459958036387886364533708489621455397198616914928993581212372239811988588153471670777688912572317276049339246097445963341868793221815166633187955714372815114052396543691240478398660307340164787730236526091469980946847581232958484291759316591607654066833135166700974729962044620396756560844056710393605700085546236413952832035287927103037260495954312232699582299473644958356574259332857578663830563080669943373802794751017460415253222550258888104263894255263474254529239123727948243152083593644907456626438567735123837819551586223390303094623214397912157013384715465728752929850434156280611867185897388135018827611722632623243541144787336025412411094193568076608083087672837961589906096220232782495456657610101585171968511992837526672363100442048699544314628048416794890341942754417470897985881843539836172236249452933354127781766019615262819483515012776186694706838129570240152673591152002318126495021236884928008692725480783628002533878225493010354970644469010333365216344596565643943427121938224090966408824874064800661055972138128189346023041508365257324974045409823524643284721774313352390719920646386924192732963146022181860063668428258269501925301129992950618466275715965926304024463124443483037638870417303507724550322690741516895596417262590258926906175150596484175360670180328008644526597507538848249686435539075467517223293685951109360965506401900823848789184144152348736017574971508310865145081653539980960422563730873089164521581637331714333865452886721939526719642188276674516469839239257178591089230515134426745703708300267646235813234941038539262233052926987028960334031196851187474436971338454463366973951488903353095265052204013874780312015849559948222971572449974015080020605881466073875626746656957101191904423855062530820161096819510088127882623225871190840519912198000431425595275635908681587353705436013560867803391641902472650826746925752759471881165696248463894728375704921100583114346358283193294004534102664502891883250227507129005980820342259318907298877316714547368557299427937316961644060053172250946757664539901496298061844358052188687870405522553178864271397646001265804406023954340181495386843150505686636196225028767316200049784258666773659729108805746130399734943500702432124565815863644847829189719001952937923416141389784788769333261403329027633771623049525312596181625133058401682477467480138216790249799806231017176922396581143730530858146339316128932365023100706739970223009214664064945230443159432918251226397290633652287503397693112516880366288346226711934743287936860539080725805033805104144191752996314977579056697895223048662995832158538978598569503623543544189686826819035747126966604673157826142931834883369076339528090531879395851628277025927489605644568346323278166584146956378182579266269695684727785469078234902738048182697930419793650301441383808114939907823331778674751109116483824003361453992919561212736235409101406915362771575974470342324878787920530536539840682748427977338340523216574266973598305546713225831529944212276026187400624252522338687307524080081340957401504289477520685385613273471515146731088701900923662770979727583300505633119297590513432753717062626368713478884787501057249699469570212195763989248673103150332959955302845982705140667880276735148291499438756693763255418639073377954429777280917837210643384481422268069087592649733354699648986072827458176611999420479770032764891221097551398903661842135581815690778278823544899338258528779200298216915229654886346689372482629791818217167609638553051145069637615887849437884250337830570038890554644762437048201299457666138592122595591092831589876144731820301513741534515854020048070807670885504151346687518645032584036716671528908418690555042631055117085340589590944124869100479727142282593253652614541349901789787834544670720446983206921139170666490421332760600486792357762578382207538645664091287958482128266927113863691822581257265516964259480975504751348785120567983483209004215099690716189584850570395297591378990842942827305854075924129867510345941553337490656638787824521155171433559623624315402023755292993657642738596780317799518945260623252750109092183243866895043976171399347508410848162239447972116805020609349252266164946271804769025174977732948759010107721729048695353674825024746920094517463967981945557402956280927902895316357661089871882804000404749240613186044820591530515233858495650472301935400717655706925694667313241276822336929461518727309061478001222239000338608189690395765621183137382681247189377037357597697308937902376490940381350416067460111586638774720341531419197541131001618312878642609457721517156854964726045500933308799999656728603869436142183993977896526553102839579828293471554228937607451287862388775469637465786281989655611802014290696604952975057018849838672492518523536223353472779502079099829783943120303328263346839316002280888781616513438316233042040174149918968334804561365818622423329067946802330324322508840244643751385007631099433507773669461384222820946694057712574154031528523981208653201847670110128830337707305398298954045395882081384873769681336191422651701513116335395537910774782157691239569288023572222973581449410525935013933072182150380703668634616028231676096639790926651512586483979641326156303265713657481041366897855325030160044698295353084285022307869795736778587097634691140432405831905101046933422174609933082957031447424786586236129151491659108897527088803677208055607845057256397648533446837997014099028476325944729042039760178491828477251066938214063532711421767011691998409402057342806837952901774356393315862167355805539451654629756296720635662914488211171671438808521165496240893250537217194002322440560544590378132953067060768397885332016579147150310662916046829970021707305146634216226777007020770918574847658958341294574634818983747853365970333766060634833148802115444564211120252627975249516172752716790147109488475130632433742436436968562446014832851760789878514642536328036144185341018239597889584800355505655027339299407846420294239727706135804172774817855652712929962596002017705057767901348590740473167878231006834412332691709330308864781457290170227146525122611029851941892757142732909952845981418871721157873179266223286268194509759323865122269901826110882795785070670968954507738276449719949182419641612241922537897460324902361788543009350980104037943267980645497961037872794790874915335506349312306924648220517039654402191498179646062244252632615037232995499676155537867379591181320144135195161235011092134224410638315666115260442450710479069957515597414195869759859438680516615631215474459615985602020723748117335144582411804288223810832571057763909384303062640843505369327322288581433039356001710329947117974725654423776039707098453259168945223364705120666453858052060712460155496029530213402149734940673428350212569802840041193746050812915231349943887498308672737255210271265788236076016912053663795241379260432571105980940995512884065813514784229050615482831113168254346836757327888566991039124231115447857589986302945493734734645861577728333528629201755901330660922602366311712035431818204873771316986273740953298524627868937245272849886013293180172349339104771362582296882428382220194138103597153705217298663765333285256642890647351184890245239070896408402309174241703471886180710032538316828987376670927054831137988748138439449936441105868429819895598592578486696447468606336566378941074170058092463979584915339470556514763625772786162880479002528902811923496822700466868361977773159942835188842067045854410955989577615212702520403616118796892524495949682725030180906450635583502183136598935133131164741094807964235370337920011862119838527119084482709462600412567576493986629008491289746102970923405916904789157126198790430888701760425577461474551890672431843966255566478154681237991874833954828404814154746602994280361738366544718594226773877437772130011296148140765066080725150237173159145231081075999079807741151223035453516949588762490757350482806613427143241255505929076718125423818026785442083245818568186706981106903993793421681956232826523878629145677061671253951652137578596290915732228088655698882498735079889290409256092235266664845579117707275994935140041956128608884577850001606144035393065636174368577907268047690879208626547916039140284003524896385134099896113658064864985180159696165067364090724730114790520544637084688966497759983873933111508842519867610850893927785323920475085830284702982557418498447912890881674285116118595206962741277584247726414337422712434048257538714669354105150333769265655738939330558801481698112074401841390727082764333263386067972791580313554447846351361987656413805920625814528579228687376486360078981693507933481347222225254179156559363236651085249125202547309302484602963608168962516198828010491491375273024573300604475167867282997606794322222460836985321544250542200001084312170172477146444121646405984096328662482430245163706207511207156522234162845858584448802316974545636692896519777586656556248155793305866735553937637368584300696057059800358128415236296077856670006783121272427894833239175263296436575142653494545448103084947723200170807431870401896609821266642258919663222452645970120115597566827648825046592036238802043744635087045067230048536756630775166206185031827623416835437870181977441744197535225918573244405674895964088965659391301018965646325238031862944576582401320768366820798876896960313908196076603665850292370188768391586701700551240042225850648940840660536529983773257684509698045520887431984592095227347774508055240421029439244120119912780815881603528261750024303188561311656177138421116213211828824723082715391814862216398413322137159849460569106360223271403989917441948205163723489885019353770907090739815712878583041721708794868222720842717447216821146367035823909295765771814064058284559559641964876183947095227456877586818101451876073520428471082678483932589090655129038499295171417848358697847489912344529127547909324100531264939133431141108437245005504925409662688937152279842208665370668662142251752369627941339339078175114393980789559164550406423149502378624035946031170620137305453237209797399678509037909880904435108940036631654539475107290148735954817506519817852695804559099860797708181229669582706147143076056620510664414018737673188885414857422039937762731334545565098571463715963112582847501845269111217265844121835402426052917595731688289242297797809465058173101693491136990714004249259922752752094813961240295757427880927470853672271180037114644971441150120996400427177304814815349378258639522849429434514084031374581370149533875910085184912516255589448209580242241126348601022589701829815411110734016180181922554486566743241243996387504707589401734652747216109181200133594030383295392618855363477495364723694423894867999054498418148975733666622093653840923756712963281474830654473276513403235729118751326565609343103985904294673597096652796855305676766650739298161346211700613465164405714681211008415459912479100792131275881676338712060958350243127890804341804756018890311122558959155343477743185224875492286353822812583281098534322940159537445570102093948781792024564588052507268420159005031927300938426510449846613674389804426808194947422243300653499688396483078343383914388212234466482323981668563263046127697752830572976412552806059450555974500175809592311588275499879560227804324086737427287819602931982210325938816018818023342399376518571508769806021236327772425927707475306301380302741779968433892011897728956198272843688436466243422719856788918339248711313323290073380043037180592032081988500720149468098806893552354021609909184104836759622557105819757450967680535574120007759898965199326950449455776273332450486352918521311291149381893853310016123911619749407424575494847639956539408354899564652677145543943036275891064658631330396256213337977730205427307427477336358368363849809409375907972745374054732566028582857948337549825522917555257380849803548210581979117754349716722891866515108193829668639718595713757174648859044203768786485206384352155190853378658891050411955715799711091339964689718681640728213410592410428230330612934124233546104647998703736412231813950018713437477170510971252733153866429215728218533317497624762352984722680516120906558839490213810800082087315709484224211948032223628556609697067911709046084131503324698525788482181145862752639233918975651325880269178833107602609554080190587170126053591696375290734091931518860909039402512672499182227832188953658302292264106094263750597355582930197174153645052250233134127410123669465268011395481028049802245921043859817463240591710288740252124059199915735138651850526775237888444701214655263270558467539718817187083977896563345439921438508674861286876035632905343025670535354053677708609373923637585517564580784089968846097152778723323262066064636307942538166212554219488068415039060580735611946229126671222375432048493225834290375014282587649743979288991605076706961300147246407274387582868396058120568145988698602203718364901602956934636319913268065636646246643280570708480665370846328364424356694731895216089584813664359414969507464481285170114107226993386081168459647530002335777404728992278649634539997455781831376097095819915626183314732735405463270755762603586719606174907529089411865911268258227463416554641571451379789976285829118971311761637695532031991688036927595933399409558598884680925352522687317999485613156356683902530580617525557299716544680886918431157176566068874453835712853964735126814558844063559502967835835538079944074941928300017125755928179318971565975603929329430994901757266334909391325307047526764364197667364868057272907210534053035549686755110718433357148213646402389970961334615786331090767768466758188964393581753310315047730109734433615943180934845342972374971277548206993122839889766799456774354024384129520381194647960380113017846731122125161548396258907585094881538358771845202419376313472383402494555015089763816805993984160862836154346400405535197615692021277782424720492960478150199860789528303562403042483828679100527269493370840246330727401709458597843869929892824503856197485078890365936878621253835057798361719874356761052685559661545907183444898250502387895834269517004655918716449956353490249330857360916229146181662873948620048194281799023895304801016726058293080407213262559107763341064686072377035454822544598611960656153460989731849062251085344025844716689538266850586531249105978510894350689664062895049683991590668456855158611038706323374478997946365308274899258901098142516003184426520375621601104916626982205110608776777198747483850661823121328108965009702026314728982145820012120466065021780431706927091167752330002496042250784599715171467092186417169748873253214580947790151065961071029756264753043167638278400233939093362243964601641665486419878539905799984974105874878490405706442087149722274288441441784320678766741386611798584821329846279493536552661512479760893216070191173552337709636567926187318997430641103012331314894033812846395650436551254629852547539286868349744480253827100278010815959197056595085735559189063114174427238662586206216492689305499948874695685417139637565232728831231903678608675172819581846351685380480991731761336538726409142225655875787357725165013984234108875260273042016887762132546103460612184098974684200505190259905941855629223712145877971713670126341846244471255238807386605937228155578155600856611963196750762853583338648505723627118798841417028986110128340145908675306264189261596486994580965172186083259157322116647727522390376244936298629117968049472938840867984528482539083458341457456079909759086469438917231097665487035968813044534908418439879634285629463063051889680228912625329651634187058574835831003921633906761356811671865480425558432751487778378517962241041967921720141323761036244249610651423570834883859491972006365905681402732832001323212725693423531093552266337995420931560770638339508967046748306407291915151560178764240536939843582728354363950121355682935632471428235616759802057227237916753940698365740345930885923676556291358973078571439882187968681435393166815930957436818571602920457484955436445416618123235449974867665472964546497810355879105656960117229732411745555116646398117081366473209128290291814043896445657028970114474516947330815197990231868582663491643639130349714961468075514729984352505902049299067206028423518749642562743834437299187025599285626074969785647733611134336503091900819242488679436437754617603184841291070258582534163343638411753873348749706216150491851977398993338034596043012992774285549969900652378648239846131852966508427627648271693688328575195003403412540676105643970811589739532975211419920441682230940704755068969749934504726306528828952777517387474308890850823579400902165907147054821143692432851899055397146691788494979008145113637937897295425403713706016955842045693424108475044638527343403439783789157443842817454972850302714441737722248080408150936261964903146348573066623557420089838193113879931146880035208172335519162266496406482692743226928027451459936885409088923757655133177084380029809825293209904302976304103163232667355529268253508323402307766834152728923950070887327393006641035331099261324155955900248039185846522083974902229083058266157797433667995634876739836539722661910972626229870915912632887685329891939801945585837497930605622489198082271683087550354899266556403059038946536244797390776784484986630462403224583998747119686631868617646314162287711575356463785319500569870192467220185098461238733570560396785922974320013771581061416348907798906219338401469015465632692596158012918139051767657600571858749552265162793950536451453442217007343434988600106443174026109424734498072283566186281977316368580118220312805574190640748904597531792510987301133353713207874718377407174105570281054594341834213731803888256309359414450944700799897279634125443130055801151841325031343695103896338702000292910542405190266682431658885992166702344550758097117359225959243847750406066195480446940898110661179587681181730625193184792874361673219711271392427603265522094605173431385803957887880524549795760542030765125901607685524244745240363297361449609917316732489064884124768330092867594708940821183261129995574075932574100993543098959269545110400966306477500809949670744278072798907203995395667270651795923983472615845620964197559532494367734716077348433544796554246794860023209971480837053530153910907327573998960235294054300330501344274681130598733621794033770311840789653110052963285938805775096290366333254256400289123098491601168325104456003855803424720615240411989274220397968934332448093408336118628112460986084209478074719288476275387493329606901220645814576319373163168990791841315737635430808626325240001688069042090292123551722803553895059711757111116445391508798322158618344975153163480543542570530838424779414736892032295745462248406254620362224435540831417275352257027166916875833809832724690172917980167485976576197562192710466769500059901960741820817928225528901292803412279355835859967939046722181558009959672952265212850126810611173187607120442799032821513677116748608019054196865805622509699463641361070692407110298550980638065759453447853190552386692718174155956915527376035706359574236335100639248600367080194746200908987510846561034291388151452008223193496212020540650089298905341967211805932483436031430131555382895017911061210641827507112601671021803323955699461908327780275155754610717095358235070256078464225854004122641867204477455903545767243811120327073033670268853030527924987049667595347347357121209106691960575029868753600721080218251585120153052776488670167543480114366244833765278196818952394127709619128009023845020715102174310913167338115777536156140262611933131907372587586459526448400453358878345991021031751034657967561624353405161744173468226073665316009149463533680787373388315984899417578404520378076574576744648827681940236019467249807201535376344930344932341373397425218545410768942217407563758445263419881076200439002874256056159992646734590550333792725783115922511662169822159335523015672590469912735944120467916534780647585599442196320213584429567308680505695252542171777667411988474062480934217693738225570046883608131815340905649782835879379830878118697984461044790351706732463669769696382577942095459296907946295099855386080238958271333387383520819797311942326582443976521277233191907970434473484299687393966564250748659125509024382377506539142750680344847278693509052709088073295188143092994496111858214311536230548478875005059920321045025801608053445798473608414135106476589731344518263655015631663819026310118067705651301843580020168955923802801825871596646253482066702391282329908190209967913188018094488751396095615186897793059158814031271221812392692695119000798235298885510432721487959199734535026904210167038506428316591583103286025962737122103953144187066256192348470890777537731249210685468066848222062075360114410696665023662381497710739160548353841842735954781453219066525642423769892099511269377331878067047251047025808802309756491766157513316333514861522225880599545150933904773076586302804205624069254579207281020510102273846808103232117700053231196038807865838325609539920270797448304827769060000707787300309934152404886767681084694004827999905157998438988347344909178102125428484896306545991748248610553376421953393928366849580032878245845474925721131343715170565595541811777200521666391030735071462458219905206830867808794896793535564516495123950073525182583566916013245823572368052822348089284170578733267110014906198216496076600126241948601519243935797795394246325392182502924838111346499520856105717207870865016357011784170220322178114682917728267938417443956528688512561749900492475438189496525110679145780623857100277626329968846088542903493544453736397937143088483249033157934980860161929273851327007152418909395098235351905191199570033556828540683146354214544195797256272379338454479358927801829376031799361894549184769986315339849578695578911316618997347356076115892493513188275650371248617168362231656476651375260262337409319081077226516997681787408109976779092889973628830190619003789732037301875665035859325148246921167004937791194939492583807166842113305618188488069233104319784207657473457841882282715902077155511893664172881494610009796612786719635387107708962925702524244169607296113975117802516053227719870041105482686466284784383079212184910388032899808315785649116041551160603509035648235760540236897230078527432292708919234757952236741397901197852455065633503300039092529861502297542765625844090577181701941691044624174270793547780001637724580919944545845411157392304445167548675927837279567364404835934776471318095831907109764612397094377166078953641604154243257002231705282336157140871191444612128339282900936839038906299402388474965962511859486304746049522562858511826361198118714405601210859774714101550186326497489369757473292540850859336627590439722396132665845161695958720125843350679036096301090578333037361697090446405054823759882171535781581040118345816653132147894857876676765469459071476623651855799511700815358813138524464321697226797228303436257546487828012727577607052897727004591983952744440067909872569537195582568895213728723760665251005208068912973928371684383627528784702371209414268504245833369572014880450815891010529746827970571945509010921426927046502438058528531178236650518664705522831188409673565982539697426006243458361983062351616592005998149451377662964459587187313268315601888606364204518319949693936867731718513672589337628542373031688100688890229741014693187090651600736415799288011539257016770034889808814991081939336207284724561957409857880274794086476505026195340745664868071967836142434388362442363700636272550763529273717430803120775028616165514700089680759583827958350669456509805786782765711161691351681793527572166075339826347035730068350868830144513472174380084288268671002848475074017191290647437662027920239485431466795267923882035491662193262195002366786999950586125627819225273243833508509229737296453213697136073676495856176490929842541319880181505854448816790787219583980447015664380018141890701713917207589007927607682984028510884654335828431333913933939565107542881489602541463876121731312526516523972527868902225026990065755195330263392965250478586239453527745227007235201070949622579567497867988755258290465798852615236100261558776996618968046820435162096814367158321734334873117667725089200408216065545553792467665178681647131956767172991680927359659650207893448876364720283251435789189510465415951635922965294910656973852828568446190313972669831993617870055872886114329018518387075259183883246751525086306620936688629630914468302585898100946472690581617727259965103588512760782558775639893104450685272241064054438092098045471307939082674399424148835688220457747393816548477645113501475275053178241826689346258221249909100960717904882502087312683998004319370706313757586147440422051144903535607324470356656323171194736222388729056447017144195424766307161515732616221217978962052490529161018717792864704288771252990316004269967479323156769233734305802098220707090439823848342032102836067303625053477152040783536837256251610260974299625518759291543711283598691723469380978933791375989417058179641772498012956722615322355377962488099661654816000403703532915743693390120277069580258925069950110659436025641578182590873341422502650458926197104946925627416368404013678234302142719255674106056502586287535204772979071700678558372227979435352974321771609242397834869652959927949700267378858688889751871608407936600570322578611903577386547576391376488330078869268873231211575107455024638545906297796359665137285759722147388243824892520052299073390739369330874613202575651279621060360318816939189068469388190658411026383270222180152778044566548544656930164625182817623522973638885402075002032279346707152994804504216043003062479855615606222195829362793207779706417063591740687558357623249991152749123818167927068881485965737233823086012730300014050400829236599734934829783655161068382608824261260334740481950876614066742214644238283895983228865001449405913954602026373616032551571926728870378117950232885302963089273658436682692310170625098513071347763049050654367886638508907257717844835019971937915287059159939204115443701759337746713544658128951259360625169829929589922013358504416142666031755194159999011831490413804872939011778676953644294746065599831020479555279753029503300831887127714065951520440420485236794439562928622139565845550299063416696151093957612752450636658193928306422800235186172371661461251368830227201872425415763897359784810009777446470409050223871940044683968234821456657817301660569484987713081202373355100621019347955289168878896532516062416344391811894358156402504764457864201222239407732990572080503992288270220511457339691005167908262398233202467174653706328563388918320764644989264408911551621880181856241487498415431561697036188824275774458207609516598900396728858422412885270305950552512387199420708647526275294749775391820568877413041422155215137384248806156294619475366393359299330495632233619248256720314598317166572957188712912560012912541364283056095272028568424778413469671800040546383306276887611723129276901444661070741672853912449906950630737937207314283966730624713644982930149229768147512734650955123540698492021195319167004667930812719279590081153192318261787453776964925038056722714133342401272934161905714890198254398255413432644714536104438610184805425445098368987453749781180034548017377750661816606408785126113795056465760949739156930544308009521915228042888159412078005112088244929367698709179496782477342371147659664226050348158894133388690020537699520309710024909095793775139741400415002315939314122864927864645707420784643540310952080800600889069636637068395861040793156258618520804358941053982017330419974668519467935566930704299472719324373563127915722143969375078981499109933654778021263678228854425032211378233811324317768902164276585686433108816594392905951648224791303960698628620285338207059008157752395035520860226331254941657684454124807113481111364464809275501456142500554773292427738839363875591430346373133416885451640123654043743682553785641520472785973016010950668704510182450696389229511622309735404332421523258972223840930046042333401117509226652479119662629485473889641823296087003415375659693913888168146155615954393268406518035254531361568129849120921457808358950226690274142170850557785875547709341183767821138278691451259804448605519967672296324860052349169380413449812726813598104052070965431829549692134405160484556093697592036744378907327112197243642973146646328577311840330824828904536830971909384655711427941215806198993276123289276088986762088919863899012301943716348477264788330835777807202778978369067730736156395543312679211856622129992315994117663157107368701868249101953224062543797082570649209653326785513620832149360013148076618744090170136829106405905023446297373965452214388904901300427799234143959063806954137253977762175746689631693713097288228681986233717859182347249698391427450336706229209339150741312412294233213156586275618740607756966771182684746163503122977398719566037091234866072421049792769077473541378659531288152000004380621661273476082907778882641390837211152648730196728407336655093737067581006154604522113951802531563171993059109368534838171651712008735997618291518637674986395094451405849114088036054236516647266187183128797960472853984439330798880380983200369438390037432155132293227881606315771098401041424587318344674236497116471135169123382741021968504867548588965834827441042055589795650745534705765018392177533965291605450329536909678747988615535343478947677510288538460277638033246566445985878692530083509599310946668911065546719991231432448483870121529030887002217204934356333692069753689895097616076248830100718678906986171620227640730083620469393714070532938656243177357217194693445418397361896496261426207553019915541476512261941556775765986318123695600420284612468760241317802906645768118152328398808381437497021099513456637880460940611925647710090188054789520108163926424532546042776338417171601545692696581024815168108803414876839545640925123428434068632141967268547060570425032609599808327717936193360860057784332184956272209085659333346649277724039155388645801498685521423460516230881011745924531289320295395628464550171478072568435184568886016423197030601445015072999622094686098137582272844465054138603730216974701867633991184635980562533790975381253968355561177631748815650261987977392298387740277247201023886996278955493143379602329736200026544062213105462156973676338729802537394458316659233500067944725164689652494520855168113083402001891928170533039395780291359378607873539177971683188167750763711342677013446564839270222723285800672777741968608314699419793285383678070851216448001611932464544443297270354052957506636194401525529684252165295060760396675749285917870402734872099237178657067571672334823761518351943862829399579802376916102822609489107586293160007574835857361998255682804787874184258321891708476281362638833593821100768813113916738156433976243633679924613369372959524026405889749238127279898574836210623589234960431434968472564538785903471020922425589194054070619830115272925399605049104667014102882327502723373360972164017782722661572727262455794661318222699921352846064806017518783109124813507247337304960365545458353239563122617805517808941061913165650778032719289059644409036822207543036153237344411873305645022742026830511932004931905115091999008937400619681670795015066035281025871337074799879906814456069746628057256117127362930049723727536055886937066042043791827397469284041811206833466352977743752192022332976697796507903514706846092734943730993962387576913844055149937333366200240208845413902102916233958725709831306581250315563305275580504735682362770344341742771079695877360477530746329490191661482014232989267405564568437819211287967628040071469693815009019599836533545824933648768286196819050831288680002534786764983877798089405554890905783869152027504681114380739710528911074678527207168734826678291295895074019561290738804209912373586970750514857767148371501838331308375590554817481241006554072560987177369779937725377606927809267014113503029529571341956372520878786682804148965470990584092008764081844230806597041684700350605126896488333069826360525393433217966153147311377786151406673723994632266521568957162072632144198273303431367126816323309812703035834997920229573818777641501889390362784738797990426873123621235082191992055282499795940952767124689560421503821859999587543350522134394726589708808732624993377991066995470225544309895158849101491557402566709617185204787170034735345334533440481125081130432066354531825500460806193144225265530542154901208451183053881532406123837604764189245632858574194744641435227248355618232470181750628379472909408735648648174777105782201447666109440399356748258152744467900075890952792994642497571750518752486577532952774238844464625836197627526681147134568827270840818791763743259725200490143919128065587631076427256642764058027671817350939841746641788380432160430261661525256519418376550973677720330144967336566927914077947201544655226103320517039411426597819032842663416238244092662388132541340846859808682271740618989122999730739727325128818085658398089749621558235425958793649076893945124877805229198790377031338426175653931358278891980291833133245131170804871079160192191475818352057854021986978778792622710735764005850245793363871621235417833401560088967699548741625696539744290448846114873911828749809273032167565929133385640088466429738016854231123780925127298156956252970125746861071537709233289947792682129317182648703662486767543886912108258803618114002552288279827420658700154791576287231257831812681571257924145259940437873104739829880201352278788488083171128517680374490180363639955751069695975930605733257451187138895746857194571231205870171069721260366119778459650000127372156958380057658429378305061228187601075733315744616198902613460959871275035824000850191188331869139593839456792927316775913321102839400571535582316757289163901503521136766920275377192442805609493030470672019059556900972457841138998914760231550851242057562642540932847284294796480284036245612409329634406154734922580673915180084818390547056041570936251554042567067510008061531809452178279690895112378154383138639907128501286075416963766227175604086748589361135877679330309268929197626872921973343361462385270181567649018548391758184461742281048736674083597666290818853768134276905735151262932178753946985711560588139531486166647289105937288725584048844465607949656840953773299038111854886783122879625401923309136747930742056270995436438049906215959004192601071488963078958887879745367203095279112142549380993498811797482049706776696626883727642449750031228487780857416434819536311630150525458427582058757845747365527572465161950661452599014481908990344736273734169453506782136145101164311129639115004762184549036561823843726499637742393643549506408623546280197545505650300552038153188625674254799215803516144693141316621118298865171789312414112209940423879666180217226309081453221458946990744226062875283469681367719985176628358869697952822399138201998348785381517545594476501191321459643344246307629359947700975713545629071503380001855589872754208227005848607009401496089593782192091849955250997201153520167384404129598493064788694157286791347059972674330617979193193061191073250896767612222735526080168007248350855449722803534758884834021541145975155722325630349794867927421889135482464287559167445299669000674666722990294302101540571317895394845559412770101782368721116802509745260973094051515920861849965688091516800497384122505001223116583893066197365590832299172241423285096170601735590100183379483611378349928395546418563187616244218095448788269470550522675642528915868553708505666934965846371107185469516976737800137418597041097366575269708947905162671805642509503454621378983114001950291049341940209601710677967333456919923933705589779860376850148015846989339774964772577944080137348590500722029921387088832176359260007835482219835551156429891915339943248657441091663899064527910300293970193435623338995411700191459066833568639430013251302659164654297341659977320882898407038916179801416177480239486996479733536673234565019410531353014323164548810467175452245301321407597637519314812574442733038586774077089178754293116428516407148196785570084931552094544951567087733005298548199886175306456900911785467836219080331713754698711599070504065363070299595396570751836205696708096913384649677866271535301754711974861475108236055245326589783954084527187314980347956847341500141084353540440951726682966805424548114845635704663025127183798335067081691908727843812945000886752086230875725904399534167118895221758775232849174641231568271889871198758113971143266938110158312922478172208031608444067823955593559012940477357192572261230330739916431080070595807719900151288031202080896514629442667820826891501329952767802562605384324480104070402920138952614605458246277405282487960269846285861718188690550996435130889615611795993161865615531954624014424302835897508295449580561628471742086403985086678015484899877159455910754488527658990353608239881716132900678377929483667512799542627794584434541144657479225275384567450323264346107014009817809168455498967031020902759134198205405543608896512034064247597309026698601622661237358955671827052161759624843285411834502276632303314330143398824754931255808856265231979963339653215114189958377617416549597753817553310745944423537663860761639956820772562017012208519532104623469457944767139547901050009154421722701324955781328538756005714528194795983494148091309639934809642381716371760949577462836525352300667530557664215283349656874922921642024940852335106587559392583465675342984305168894179760667942635608403517796536870711496277904405178767918739043540418929290478701842513782596568342361948877450818830399485011920962667192965353577194438032814598583255110569605086152925812569426142728783346123660922630074591924260662515125378162599831502921573568146309866247595095391220148511238859678127405296540679547812216705404285922009973007378645062034021682666479803723440323790710731854700302718874739866731289355602816490642945140100164433433440760434738035847267555738617786859643154443404282949037578734197298930493521084345271964205793259222463803009545714403470067961311163247881317956727255652529759050487137344983969786899150938581397937978477714657222699069890523148797070384094288867987780319426804149909915010534131182128372922993536376503748306306783134844655844881944621520907884322906479038530305812578146478160322033796690101341447144511321462817658336627539802092902327566431726069347034834887187710525226685828217618756231945030984400859423033279376155463016682022421116021066927752523606442071676539529917113103373417480093092604859753996991322079150732634732608729921142792079148695243729449209815251243590953626087213692229902430594359573729927336569611310236067277091575931427340410222193006494104083414488914538717942487976083115547477269045912143019923975078207951363195869711098300492643443214463920784597415559249553955482549116992866658983396300715784261759165530858535421077522248924934417521802343015819142590370775213351093246970051722371589845283325151920827158947690158179344912506239345880888590216688861158271065809217741351025612323843006530625271978579705921339404884881090136300496663905994877749834935558573191604206248143832082518262231111047666835295379838059135145959991369460952187984890160598421210961892226610511884053434224985319552909095782598588183532517259367818005451561893886947452120177141191117039446618884821903655675487527540799286536653174182940888765174724340208828191414553094372023069025053292945016087573166586551993100254890124866780026831277685907307676035725395340067646144846540974747138305982401414383029977494705544268046665782464561517978349466041105837302182466675221960314574444593233420026313557685232011212308331349512194902844213039690677760426166614532420318341488043098630472747457972509956390194345530380875172509270371491683895809453821460996950149880401237429405211007222803372882593066079924617953843533078103093608575834973756733448633067474647088465545248190552507092556514458426443338627070814547155277452918654217669926261448492827663406078605734645059474658787533309871584402275726538162068098802709360983244684610092304643129770285122426369418057581837674061091037221303653513264847980007979999568179756414035190958823614217236826241231250919875345542754182267707281241978848746600186958458277154612640828251489631191555752029615051445990109559255226825294056550524038201906055222952069468861484489670965965657632735996766597848233685674896050662914311890738640950772340490902434207898596635432441663000287882577725198804515763591543159228330458537691786613523919876130410838364849965135524603867425213761912549100725652443702038685644993068946386059137403065291115015026006463828936587013627223245965103164028754643727408270834101661492857403443348173071789924890149065587976227931780432449242521481005864818480856648555954854799835256166036510874525850215271223558788992874376708469464894259396422232516198980104728974766437173118044248330476775818103239429232566010083425079247963942080609365693519564847206257492961313886874764337703433135577848848436658277144424509059127873399356576557258114377419452136402827418656532964919273489515852618167511965865022262596490930236112398548263574020791864455261726717105845029816053141274879763260137874649168957740874127484464171811699616629285827614753450857095983527635680935538788933688607273242013499060551957829202246900925823966059007078185691795264536283640735170430415018881286288561657275659475338504419632738861954767878930779870833734181991383433417611202346628268034207817132416636705708036604877476338579811901798471864266302687087756048945587007485232697774755372979207168315195937405702477937544171408569881688926727254714168584457719814415276647889498864175479033419913661298721861114379004592736924996354212140622316239078533798742155698253263821651501680571393430890368257119610329588149873518425807409291850911429182940828601074856296081552583185819294421691826586139800404561336437418024930031562612678472170561653354344076692809778997613191017681047586510783110872958216659886010292558608673012158631610054498221610186308990871345375683900951946911974427361601555900318671903172243965828511166829200432434555860416376000659412117553785692389362358885395618307010757001059617387782533254351138187975128446169461630936551495676686314469223884395616302713007268392092705433032860619629545869895437157594798223456529614850665874526842856715379003084446228082753508936132478697527496662114322059606935123328864637420479790242221209893450901523318049041476341483187097502577687710343390974085219211799007049001415185279684269374743243356763358761138000995681053882569835385316943566004901666219849596575416082393853124888768871466385263644014882218635541655449075649518461321006788629323775853659772725756431688178841698554038487167111257063989635363666662833603447490608681102228860475479116629913213236043998615839605842118176393865510831391312706872315150364978528610146349640970507385989569096816035046686255788208212049110328133654168057408462931523572430003610310534078319984388449069058813073229618145937361604292343031097615432891375126509545404749883612848208925737598594880108852686911846271768818384844887033020090226380950808309178768779040684467519163446864799530436456538976926375305141767808073555086341192214912426067374871683822427580937635031560921098053738557746104739244082844238633908124694763663716854107618120449217869525935812594157257829888715305980243157955154655544964999225994724400768403018625641941427274093073534960209718088697012712393042350997093524791860341654168727376817387569255204896931992886089264181868752904610129775534244389771162624509357317345767980994627671619434943582202584220866928328985839174783851781277670528360897891608501628832767937330146201013147890154969088441033361555121515765871779290343913113794213142344315289765120904801994513966235041483086079781068076673369548502225990391156845550795624841082320193049340683308491602098654029306910389361334006423586697658815663088550239793663340983029037372810803650621708265721746448290276548334370813217122257566314084364946400575094086813443374343564494553723003327174186186192927498316039068116426623058956026476180652764869107514235470752040662254618733687342029413334291223734387796925274901997301816065501639498153991520202298389040451467503635755897312861084833069945278220600700070464958796553566379528167449996013194021681116411360779019546841309157217013920552950029691404388369105905449770121783576233092967549613506492635021498924642060996618810101190227344714044405179443597124621335661180911721736083629753996731527046968165834313127740962137368823876857070064473656813879676834916861766047988998149627509573579507120742189725422505684258511936156070105798785982934088526123694969468217336142152340073475569748086620909579682184929327626472213893169370729056569980828799827141184248608715893265642847752717899777552881793410757968991616595688350858221583404514171788222371825113373865555829560842420756537750994228116103346592807721299835691750915747032621378648120124509420725383244689096894299166977095814726550037243380177162084242149866372074048828718587141333911913483550849788774238246130993976291621909081879381297802507640692815331665838517320143559710217762181225246452416622709627159294762606140046931279964848351187120026658252930184550634136799493502391576211611692280992113535780344183363441994231457157682235561795603177605161752113685391607383180271115321164694589289758441206257823838032841964277774873261485381303723999361550925498038467379793293962521393587052917374859428767948261985524429606365590807492475246689544025219887116765201166598376472634465419521134224040509699122812369722022845987239967061412266459965853912183157722044915875937960010905524852642098604643898532455711951878689598965768465468004611455018068453356508272060564267374582218805896232362582279835325455961698499777381408483126422371226546980434303745702126221071949894890574599420622739372874847847837546674409385246595145010566019501177449331720108561797015328095905444991233239140199868215197790613236147906051688083707397506150603301933965129271700986475823935299551219417544009143259893447381105014989845837361533646156417873981121083444463891360134091877953865819682952353614319727986147394253267398773653563319913630296373034037923115689238487124086336342547536140223678147375906424895162179863046115327977662205234508630283081288351012638788209465087243167679990756232136514025467801380154094061568611313914760636578403503509593993150000052501988567979272545888114342929014373628065126504382412272023225769704337946780007887631442038220863342218671929766703653548643266376170775168466522085921713407791828323434334784317837670000220512849554377517758018583115843341995079521314030924554807499433912194843530485915672958841652121397240372625480722703435838430394928544657104936295552884417481080747195313651968460133426020719811798464214714417003513079534936490291154686748301932704025566103668792034352903631340061039691597812923186637113235615173710934547774408943383974438218648449837483630329220978972186791972340574231469593939659170628834356115959598181885612451494508547298450421203693991715466107057009324063567952332811676225438479349872574007388535017516214667968973616169433526651844598157808751595210847788939473670561328343711727897076550600919476098883920205984986042833718741874492510875071834214381305642189193215311818772692360859407602380076660756786791012888950500872387008289138345523131570491411345104288014058247377286253639246533060541263001035894450225944953638307687622669023582418053078477135344819288022322585634724834480081100743591329481010214713474992771164590374912391221194374704347941477875388002212464520304511973141413404788348808431961887320885496991756219534642195717419921368423063970441956141371046851756451416904090414166456671912180125249011436860140905748850858649700309820215039468753084913110211379080492477790000593573765517855159474251598253709450183384436104310509621954956588626164048629081938569250791047402602041270304686507538162495130460655173513865846446373377445817981757723603738075499437072322682988792319325138235633150324275281038911381710928251995856093760291830545853407177588710708292927570700383365080466409175739565276729297513995492646996891156407434899913559510067585607230377343013295053035049078397996135817258096505878909159438806836237145252976743466625925166587310112856115090961546563674377171588767599227972477631996040474289665087634049839649758646020866887778841831796673264937378824310101906950531531357997619791061609053941297302472396147468888877740011785443038405317234695793991105161928434802912646926277307079798891812888896764766287933462021968372086696898605882778390286662459773909739500646951344168156725747482425419048363862179445051323087157597342738042602055482412425754725710373347218618963766823121906113821119847528143294726997730566868640377026359666950996233581461609086340231341157716653282802931696614572351572365165397356414744363262262040115166288396034696917417152342677121511668958164493498856459012557874263005323069608313652851153317311394795309892008225423613438975097834624918054437581471296866279870333866166679738677694755209017360005341763431748880408851973259837421288418077635288520026276819737197092013483898377394209207615138407453999085278462386785455136287489959209414219267999609966729490499540001955959130299868368768116190013909082338885771792328708397269141246157729082325230897662863604362132444290102051328759660556007941237504829467438459264305731940350529786339966924932126758592648296592233455275248442984800919591213129853138014242212619501506206384871603152676604617436597246430820482348797778564078340638774880476261794839207098209490889490971028103697900492084871138898727182178767511227214417612974748925210552450002222710585722721498413521523043495970867085816233859515968543028893846050259766293229489181039240298523280124138266769423144571467898007109075379272789113187995880622194116566554463567930957798930175234981334601432981390573314509980784345773859853691695640654922263960433887130345208665972201214403157581617107919655267309876926030512746415571128102339424878174434289127492315385645870913182491463376813831880491000447539551346399396396099391956742006115574468141097456812411323976305243583733575985398110832200024765360135956647593143305898314798873577181011139109378438490644867996996991610159410212049247374420328640270310868384320196477777215087123944629273055767622364276440435678814518370901143708175512482931826286578624939128772363319611955816960009785845099302595717680100951286730056155009055777717094052403279123813328483225104641448777377289246778045006158050589618523045905976761536941659012767759664146852982986871348359771681232359588766116138360033282005208409107485921782530775384845943702909702294842991312503095844340585871209774227389644733514798168044697007627943326558733269742511266515376107696734105822305564980494441441965105536620803317512784930537211508872462817183802864209819607247187236818573795077919809611144385607222920642775953957464904633582307404327927995503535644861024259674828621262696307615603132981970975974957285947619764183000957805827005707374713529929786238091847532614612171105302967660430732689649259522088626681194912026054864285696375744177680059200197937468233216972136604119732795352590010435932585297582061310612795060975042995150630385239105488745405103533311617561288632306976723452598631940335948809940964848547477894404505827281643631799504714074115490098476297708969795713451141398175982278050076976326502847703763860518099301733316032134417799218254691607855882263298147190608907677433729648785974435228071676674328922675036455120371962523738979944954391874526313691562005151756194249071771026550832099275817377781166444777999458820096260272793128801020402241242781754457098598851062536866720522236091147799824020058648498129063603859528660644766515489756396484336499429966288173011204666449396920264944844514967442234415183871030893704023326866011657643471823179925756306462613365151912160036859489450388419004269974875863475140930170227605018718394067899718096824762868399216859389347134441862286763619141203370143877460251303836716049720933619375916682921941566762360463075931349053714752171634975452485487026384740148313566227210119960017274017568706617143555118845388431998839933370762247886934569036786516693542668816887393363856957821773117608664214224687721605867814956278905898632415526959280646462601691836538312600254847599902770110106568957890037335545910374045966234540048464726909118511485817235158968251635050676999822232395856666260962423565878031174333691405685106251333446641344389995605918237066629520295934289762285722934720068110072448411586154517476986541851773947900963077467836873350174092523170980820580728392339071450919884638707071055656815133413109672242930004889757334933332951751101169541016560569258202826438642904503205320613888144472222461370748719381225388883351510712479819212853515450611939577404767322725396406410710973915085899728943199689768415272003391721173032538642928534174625995519043691497041249627518505061031952905926780605047415147160345734981433330353909760846985500189184802612109833920449203773791593253977685988018633739905229624130744694502679505980237383798343855072981068148368604838199998273395986328981163447842815243392988326935193713927200528100923020997808855980355939373704733991491961482818969719853758054792421525278136362831567081520376221687475620581986719197006403583757541141293905101168749312784849892535339213173795561217550854428162199341351906907926844399489672105125449391065121967298383076868150010755892969556318858121984729037009236817253195425308588651348497098998916519332294054349344084704024436501226533764276884247599625323373508331309593011216910910304804668801318928181259848854687386024765756660187592217337725928178340509610632618440893374795311125840981863771661585592582850971494926360576855856150486114831345099694802033417713770612517606128844381059664332556961771223446146621905525567859050080303461503025159396851644180441697952279969297884364644319346706270306329590816546418274994378564061677827413669812295355324462490185579555315078370017377532638296862990125390509690853632479604271571959729289367586714513018126088761730110128552175782104901134898488701293677376945409517527012797478776345921466611945709119217424231742649447105364395431706285261964696211779433051579722765129315960242766301067569455103646624342809117630780955680291557195630313444306394921747108578818852960765377794083541084553455008709899272066021766504624654686856178134213409048241068895196729936292418484789120950817275019729008228630652520497036429760307754991245037876639482123099787071964048792792109327177868228040257266129684637697466684422823075704940985930886190609824229824202332065946364467180216187825522766320570764674853967759642113377042816988748086439656072463069122389098396629325806846889511348645243457073000090164397926359782539180201420441617731713111693897941592202967833415818019618740656529559345169046768217322177569607427872585474342496592352167434069628043499132892412346847540552379751706821558059777656037432055675117378257034359353045379091499534967591881688376646302048135862655269069380387667918973961137546890788492512923764771944844494074990273733200776465531411342406515634657621056939882374396814377523565041445756389693588586802292026155063804945354340728061545680107334431169946771011782825651147645239046563309530078507174287506345443844439399406484355225901297936697298584513263344156904158874985853490729747649162256451314456016494170699644575530280593061957054646551317833898224211555439830767465588417870050839818888815831969798480997791647614952047933063793057583112533109833511818392840695699047654476373975131247955299698798747383956834304415549469787784045175330336476833894687111774299236803224385050461919697812168176527614727921693168097718100311905381946553715288996646448433900559671188450851595682852276056598859839523016791575485005940547301983735558623762864983816211099148836543700906730973227690192580336207131728560186795183010157426283624922930192511237551428935311576158592343044861131188596820892132549872086983313524046337903300673782781450590678797848245293328638615090066079153335311991542029385254202863739229363143063194233663810934833999404785843763974181125478314016015937245291566784334767665177809925373983391211095755690874111033129449657896413357255195639348338768736290137426505713387910334716259175805890053136416754055855962133245337459111713647766791355913547314785023374547418035067262438880065882767523825008474172316831545684069522823831554606568481643344772439155159765498944548890829461401437990501025565904507271960860244621542400143506975837689048862523912492354254047708362440289621591609608478430168272286210891304333837690466367078886269300642641871340803689016647569578282903891186881529866779609964138266669824767480691345349461288564903530520350882901666680481723333673058518697566462201572175169627485308677828463267413536556053258715425684804261467385887290268926296586172465943656357301042594773870936197548730560312851253055260106310805267783827532530863456646728907706993971339763915565185258724476398898323277709403068678861592295173949396703626220301288522412317285503978793173790381077641680769123598654043659084157264418548912424555848299626389219735625379815661499992071777903588542823440496764103882608693488096591537648800412464004628712380030058609731914276903369100758108781054519549265472003692803057627195186020813683976103565305290017066075164642031217661441416286826944824395547483332133536038976450574104031612397188556910790052894065644924045529109979640000900467059451309139867752391158294266253083656970303355083572697627322463573554725449975765144983055416225686899117746482674272787106250241398562412439844975490054097874798209147051524104776427493706782665246451596798021840861417438023857194856387867878110606462180171798801795116765019305635482827737344149729817834363439851112719221653145680681903438845558387895946825269252595528829178346080752494040340377139942862913359005673018778353149473563267906239522589890842447570662329206545446418461643410010383326565001333961749063403502325202861633930026875431204169725085597074285408042954996108184768267696171788201313347864020346141879844450105757932967186603696526483558199649854554555680013613590807262647299989310973752624428105830214449982360093598064898297501709637242697615645377097807692759535954534184445305429679013014860713864899843062369918186885222582552791369268430124154691004826162748262577022077322307688769568759909275582404792395844368262289157058137935667221254878653615050383454343647691647803332875979965409438567968605771064350070329646168368751342182166657702684491159512570644866613022567131672995908682879506335915819349042847410395152527850291536124297291616745104117747541358920070515593062817172862092103593168993390591138834962319901594373190562519160920154926080649046178499252137960205936055705061525760220659872570868088200470382037657951889125561070299023904658115635234516480786095258533191604784143352556396677422046918273048906359618235316416076634151874239916783990073707376427376454778626333857274001605927537142280044303676502257844743410344947859009800612883819614971180282575399827914587673938616209463044764267337076716060501947426368349251982895832441395488372641733131579614396823781093630338040833145446124916715432065299584296134042454907999254197054454765047954656877663932747862834578761022158291335235124882377186625573318516121887062846929789840289147556563602555143882511456686854112277626138263870634817720692364872550371672066557878736475893889107089255052839969218374410771129455191853324399256875531379291287882483920838343973994901032525542912822163902776105909707034315870698322593150238292047430779467189927777229925970197840309193780516504599111569642206612714847494842107726786265576562185276012101932719212673467594206239339926013752300244559249537485689364677128564641350008044475445728455351200443500825662492212802728391932665339498668184724625538355583251065578485910079286120603117801023870537764621046382924999973273720636443939600223271166234309457443079016548170495445210326817215338517669211389415064272957379200034315185465780438706082052583369261691907457012060303199975139861724409620359124213618724508059448138968629352974834464105984775605094371110023878042417987884117055547482748507891073255452180782010026599699611299167810014358538245075459664893976347314515563889598144873306320529606619108382692762212720416751872538140191081168470735485931163760554904958059515290798577920060006041477383635128541156035777775131820714357343856045453214571862476693048309144239528023748650908863254641731573440951017067769660784489920269598291099306966722370831196704896713013715567420524899728789473359385332725626035427915712793914632401442442180576818847116145081781121869900835347429646445884721133249888385990724212708717655692792688946252523105602475889630067638887689392427665802480192445386392982655064180559083135004687649950735809509492136014608103952693717286972127316401400278618934110723853938810314989162546904365354303944468804932152140587991056410594660397198576031821295485929278301304337492710193510226689479526350593788160418890046170959141037744740249432910598398901959659120944312569793569189604598127520800783582664819497729674386676140958502936765679654224346551817193503016602517808077876639554215086835591541047790466594296883785946385986347971465455981460985646180802758839458586838687510353700023447652317579523396015375138927816820128386035918794473198031972414493431426326827598956180485152612604817931639282090873653416481352622441029710587718862968843076414197434203891716031077941379024647323720069898148700086258188439062676216993381019065180007810711565854518158562464791870096029596663211436326020627492888295608624206483353766091586065356593991882821255583725742329391342690410528754407701846079493263944861945511700711420203454467610323961759689624499539694087477362656348791969742633511897259935433210595428925752357464539136954066385923040644991009754804594131831718087150355226677278820130578620633650054567053657760602453995920546826413915842059550970874346904323587820747836968724740081734989316630450258775437683165736118436001742441998403400333453204175627930589994921574967712889140880605788336130835190485068003037930155899614335011227846351076212959750230317585426118348314597191561786897619361630642185342703037356230575331922994692803879610785392644684523339806509714526224179711185435563697713685629790248971931087562516884456185355986460951057904826447704868620805106089866918226000522885060660220648757210787999173092152930374991022780515932396141206402297229833704124760409655814217237336811179636527529823472953930883798189010814839157653633547583771328127581739005372259672593980548262069634309466422325499839484309224963484788795793492323489533042523564455600483254803053739032222513155440623619495480108191570003287737063373927212097821590852476330756918053743715708666464259180746501663869740359458791968461770244736460535797263903922366481882223926232519750142014908844778647235296301131475004440528495717032290858815490611382668549710238105881721426489333034226861128068496250251020783806874782865356217645950375548965163564471507654083030009894289421039797310935186467783283789051758575283838266956846158488588698763702847976981396163733023545824219885243943372613370804517445933712886224863281957626668219820034603273907234323152474227115863184917942340002194132962240465214572253240124496531696214714008670449569212564997453876568922429813634220756381662025883844237836540244422089930013151954903793729369715514356633094501565609439055104902565496322841388674991192856158305760856511149997813431266664762099139562722400373464271666838731842684198774858987860592916653902906070176775918757984046707955944071625031114781287546680780097264929023051144581253769674707143773912288403554365185413523364277219104868282244299988132097769624194250047605259635832598450480114751560920403401658864998772261230710476633631427461770143418617770475312578831156833556577420887993797681511857804763646206526435060046287078177386532720353613034120954162748404118383078283523357369229129422572819315802895112617741451880913886803288035504910907587930950167395600699587848219591242377996810232678146409995428603952290006182265119943196787472980237480701007958539381581765640995435347154112886787107620632374884813372357632253689386571379722621232475365419989286844071445320689303021167211115827141965514101052794530781653316682374792520867283837854056153974807062500992480969858780584174967184765570061869071727986128804222951110042058088288695032692703944910049460632697063045160371413948526238631085301367945399820783985980384585831293699915950453673461936522775023076636494828000154178544261103267084685109657093583036577949817420503280151566468814831904474546133873843273207152602983826824155380904904958905964937806902414025481770287159492758462371840570799438714586205920151960611905120010365065837944786304926949577567645635918421452530626744881269753605026288282196865990964287216849303726214737070318525793209889178308877124948293840983663750546645333870023262630734682770953933179229793380256144814037867804943188732061109350195523063935270329117892474031864486610205917075622820015643166525634477307738100682126351014564199349704173857350341222654957554326399673974621723856220140153983764507413369295539079794253804584010767244731538491232464677915432939925630390267043681773119899103402292694588378215683862265947852659550334349508787715103739635122758257825933509005240758140885712742008314885179147224696868005473392056637946505499557420169186860350158746880711978260805604142734295968954184603522047044432172624794782756514616201432292008799745990681607847752097451976385848793222636945228860856402458422931307430881159727356550336164988047731898007606964216167351469045719957790974332583851893946832979731373814898870305419732599695018825831340256385328201411052939397371805409638150264079076656034181869145726622180623776954684683155902310522492052330090230361052044893893198884630013087250505277790838308110148918410674850106482011246856061343336458005582756084224205104213630595301168397913652168906846224280028292202301014220730470985565939146997628176292920004821871670848023405456840068217995700014136129188652356481890101359676064032823523680490195288086598615096274722258402927354082220487902598817329356164754547196584159183910795604378176895957140053949658259388398273802941791681897032777426479946478468039203011546232533182046048559566792079806272641518456738803059006476231739656187209195906400520530586725250199713803286320017818191040616468211869380865170975645362270070507828037069568943906183246906454942237046654380928194544900025751463064385038933404403945564564046240441487897701122718586167846943262751254222725430822585802060235314161810229043847883544061306020359474886293531637599718090139373590533595340363369924263422912959300692609689678111697521777441030159297660792109154731968358241886350558805860295287360856000865253439705845319142033620384106951481149430053191019261186812740801725143695240997417893638430718392253778290914884653542337861040669196903212654151415383058730893605360762595833493088178050086879543936772779960814207950210694655028862499219918816511406539588807602259376446869287908387576581090723824056144627806721532474849198238181594602761738031598145030780650863237148667916465733922343110849805458967611396100832461863628588318079653198832399780656589841295766704009901051814198854675611043433739599235383746382092933054731548254424226856817094578849918330249269252322179714005706527145282227100212618037887011535063725922361171062214789437860522085293755050219399468858556701713395876551861154867966620479271946042597647814309199829994966412962474757270175668574765956699356637461774615322482627359063606853230669192051763455415088492781725958219161289787661220893785626394276187036084473960042045458230391715790638806283162061737317264432001294977645030100108912082507611192882750588596109145564764197499809950833526668506268211709477991970537039008901129575659451207832666966079138993872497130924185373376363023789928023304581894789391417349943648986205929573947620004647467584427975046756524670158649704694200972191655187294850137208349740602690747751682444414909071371254929362534776128100021832642798669495655467839841296494894876208956069676765425403860723828582903859606393341064450102018830469224047510404272846692370358969615674270154109783969804880027086962105790561332739591186232207624467194460047076371774424504833165523920454662976710239935169183302880322751592229314052514736874767230786691279059501857152769814116486583880540373670229855465212301970834142549633127394403992227532638749297131584535328232105902208801330332931590450658114433316360707452520850212410419266656124922130069222271924344451852903070672045172194643155493078236805499159800673098133839893818006815901319294476947162798845196000550805992406585906060701448597440840730376614720150333921736899884174871895326403279235331069090410013519115722814442514249392856016178905074595574144010392499175600962128279264473562877271699389588430303458267689237616422320413383310308962262619818072012935730044385706130485431764643401815674349769640177688320784636982145979558464388162661425841994210490081803942074518108545077258196892452208532564434769949616413984543083592540715399580961558011613866554333897314090443671012465840354634304618010754805039556570578254106524250160293282370074006213588873245544918837480211679326802273854342200171561659128288216893813294525436617865104499989889417717005691717706457917312905442372372187291638912185043066958842748292675787590818835545477915196488740637516840707503387759165890216497584147488047759489957197295355060869678862403128593063339294180592468524406605540425343366391484224303243005000091583710523498668474430310945104673890356735284466602579008479558089096332449031011436445376534798312345241740505637285904104734367335938923248571490262692755846791776553972646683466417133327243874898976722680135152831816104614713145759431613597161953219063810578856690775730499963995087570004786472925722419246464841852924776503201259303959133385818048486035842888493348307349115223027718033798671395719884306119555461368777274609758823303500228447082748639493599317359960963277871912767026148145956325734990416582763788611061409242492399020484887149073978585080586079599910916529170861677603557727661719181514010896551282082672320396842842008821097526170574018050886310086431174626109506774986014250186791404693296844522554816808215882665044129676030787053355939559784104819485796244552061405254732702600147914696945074308738991298628024052971246997815325352684211033339742749425826258285534560463909365023072363252890952631812308978936052455581989735596394993914371552815617334633427174829597592976400060875793424366507508658718512766296151494659748018638379255744168443323843736832861680833407784755526423195129302458010244417115444935398201943549867738961310682198930982030118298399042427144888870937422424701210760373637107941100363347713010842953306036932486424102096093994548742859683476242511346866060233655630592760803075268309489080761244391908421293109563423959908554419889469444151229617769544547908925598178379360595717537008433922492221334708314313506055336604211221412950209014932904554953444180967488083192444075910279102625174202541977854488136074976075575339079068765270959084955082610432146684370633377226038657439723249505750664742160965367240074772841721481336641278888056499442584269309511565965686444317995688422386101151303091677474673637434629521410316096052764632885656305176397809128541817584685530769540592754770586375623208000971946270472200879961961968470220328935298136173231549463269453069477170033760369163162559020570374018744133025807027521638017452217478777166643140521537101278769412390016957077350951212174317611598010696672061012264073360717203490106436734944054332874651281435401234777126054472320899401947782805802207898776240081353192150371913073045335607853375545461661838169449123759606465216129735386864412179508620328285318225794571348748779610831112245232991188893649228036071808099310459704522501182425411334778767850582333561760466131983727626426121988098171118691194043061863171611614316170145894831646359517918393407065159119593229392912246445087939516586349877136329318712532242069569741262793322407929978854178286307467339916291769863072818501188433138308093724640527717822091851625151020353980431870985155842831051127216913137326273315792288508288376291327945307735522380769719695985986357250191933868912275650461581515011501104489443025156798613999611280917994548357268664550569469886909472009660762320398930439180702792322222891587309836919975145270514916922442467097915554841398434738121082758484316392464837032783426699959473101022455699770109998087815819205632177408646357313881343247829002796906531145848711268298504991486624953183484531563532800452577220655466249926950695390102860599865610566169517096894931122705704779977165988843316864378612421865498687666889162270612033524893228174346705319713203265310042311120203360937008724195557421042709745290659968404997467575540393598244520378618113892830900104704530806750067301038870065893600426820129849765269736933318034597950767595178243975596377381910425975891023062993078569520692093020714641562429944926818768430018509187145162944202118986103537352169107628311111178025348633852924729770373127892795902330588019311543351582433146584490632268404980863962721529012537898907987955686184024722677777337612117956365719451294979742015544866851204868129794276922260311323663315219632206327416057375087921069297619349369613978173763421467563941965914153555180210493633974093309803625379660806024422793961358818892335734265943333330614345086548004299274282028313126008359716498119758508201183457824389532042757161670335901833717212568144979670686845446202461944024025362537593749686056313950039137451401504967764908461505910871335033753790711209223693659338405910198941453660415552336352423026361859588130965382149595762530036419637352439507407657188505056229810280347670209167096253091761677984834373926398807736806161810562449779090217983673306665622080974038065984790036298665914521551838335241778194684090522821095397303453209101964439646843052194160222975299940257184690797166508712291120097832591286046266813941810135701361046817137429138768844115905571399988259010421491488462405711398487870200891722995400619174860487187952168888296408090685389129698444687382388467012402781397271297566371480596280647878431112350230625668045516125281572747168642251683332745668647295692517300470725886256109944389840948406813259761647266782574471861034732001907456319494014322230272611831618988111605231270778085841155271941699921587581869434633311461904172097063415683826552049023696496904949061269215859545598266735913372469946973038277833262330715387618609936969744389055226550723615559943509778792067051422191987486544771700113641038668415955265461940113894447158286078771465555086855437445383557251946781024160430157087370838455475998656434416465369677824514237507422635629596612437995992054063717098445846166393552763588119331122021594700155063305254237429605664736746279320721844768934149647367172869486639101619248874369071367497636485136240796698931984073485598375231548905665774987453218942017405552109727741476116728627717448274003652637183790453951562590302090242126219311741271413169751647854004498947106370928708295191889376559221697461312447120341659291047172657550477422552958616105937567983456159839171670172871047517409746284214964846875268539981830602790783883882707140048146769644576692197495762689394232708111082772731837043755260224038328316578726838923491564439094369961626576130878429670470911682278832370710051546711112162191320924812854810395989810263420637708694440343529606977919546627027334251190270848424121882377797374375349515531116140867596156067435541105334496297921718302371434443697145386228665158579165979300104054785629067784087644071430875563734660596176263887934792943250994640462183685328598352468951363343267992136030304783452706262009322314263701477735834300531780309764319467728407747952849297702012851361972864251749764774032972673280275887452694088340619542915984427530656643841122616832009700977870635735310381552397180054525935631933937737556929438043057223908074862190062087263136285812477938699809864418108251380294514772307797256819543581274707855628958020656812150378535425436709816769741833488167443139814637152611520650688920356286519845720729224966566649853635835353503292060177716465297266457694066318557984659324130540353909714312649977096706132269079841882926185346343236673843017619382450998974733172760502721387908726063190845444997958497320661537668989773353628851381625935437129602855861035955092901126419330719130525403505548524267259962682130124284783301927465758184855982086030614661617907461373373987162877064763269746310207848653618931062690478844180476801453647966247881051753330547914525666412434403988833207571242152014488337375491745665654367744381881038154890797866616913806651032908508414700309335585472262944858548533606482854714864065676014106216201098828412498458513303690700741395126079761181140287629886569124895749273992539443605155356593389402017221794921936817371320321608695676420301840224279340522433457377559571602408053014688379111722571991069130940849341210333647061083580024816983782641965441525651225058492755219849208670772158940411569147707541928078360098471543867415486546791079816378882054975016177485017510005987476913764979245659667483364302395349156898190772058908875763988997642092692652437764734760614989304511163856013573587214491837945798874078217373535475587983230399202569734228274109135493046087660891498333781857479861036095174207193279886344651839846652471935214159515842212263505529286006266762992859797509435867691922961518287183150238640510238525905876731544174548741282839311472447237140415586101684721249700145429694741868912514723763104968778098355150040015575177487892987134932007543772886697468485386139094263887134781527193118748969020589536501559333616660135279059266263518735846479158526239470693756204500019025426171528112878888854283953606761195754943103250920984049677132734782506715771325058400016198946469768605655108932364554469207963930235206530467819299498598220747067690332925655436272247235437428211254560389363195362920788221736965529996754454817026335156863852087312892784604741136023934993649785597416758690141578888644186698939282709634949067161776565846516083365213821754124918723828975216870212922111234812255689452831375044217621574789972225554155075216267096075064813085851120768423557986924598839673201385814316997057091211301938445573185599576991852962398753838974610913541119054974845795323509346722803803200576005367778503424960361787052579763756169914994123581189338898010782498408439821553006461376449091343366493556090099846239310644394574411034621011849654689384444498587976367986066814932159769370745796455890328620863591427639695657756157218230714736442623809769033594164666739947012175699918139409554148088456031486543248343446486616143670178460296688005518805978963577072763064066564964745368356287390290655447730126600382166490464108262148309999908888965908255344029827589411478314770696579971452677077592111264230985897392575538443017545619661926584269975864860292417023499849390038657620460738981802592060486491708613966048762153949498971248785336274371513893410328760994820825554451925966835989272748685916224007122488552453199974269504165332044326098601916348321423258733242677643443507936156035777663920653577875072969521014065072773749317934765685431520370493362801388032862746420493803843454075230117646231140448322267656304714179599048744352132022511311040905515183177730448932410220568552672031656340430340188157299587769988894086346077569070940639616550930979862762694819566027739365960555087817112137989801186111846725941926860448885529010873937714038997339393365483961366687155141437855257537924901326640873502326432271199344439252212415603698190693582406362190196323856466318066342105930982663082481353949288136585827033751103815618785455058522987776164703895192335296825708373716566842661312536589391535373329119219245983991960785678515022755259970639456473820437589436871614374967998922846102416959554344129278429267167548897930253104836646440207015379518098365934576328624314716549468550162240315007086922568538575153660368071490247782846691725775358225599059881866872292198963291135206438676760715817246949860907117024599837451656774088121897231173814413662288976957745210275693231203715207020378201496759736260544997230764115814982689843552995902622180605841989568856126108303986507857452637988039049246679534354789192219420130496068522264975910291758110476254139449903943660237084491981440920671090183243799133385376315537534228500207234526827227123324897325231994941835707338719142591079499842563860936063179732010697242353609265357953269657324628962541982635016898722599716681959131081233373267503415407381892109954920685941580368207940012425740815870400050924921299149887115004200628725708717132031541578700647325615644330114632354343908299515255071369118399238017751188112541697161408333136352602216609578712650194030194139258378169978063211209075450966942860089200886995161173555544011340639317865722040276359388605269518166820456158903445765173444205194612612075521223094654625428315810953234152607743184804854190474662660053782265328984373477963217029478271898410703290312438449817793923889229273853583023650797184912776841452590007980177632191723432345690457091397821119242910708834333218304940955926862135196878306636926664560897764790200587570186410540595579581213631079382560668809929413743183313470457103031397788858232869338787232648176731121417903845778627419121830566426228512630216387221457288244133572439892425339421189143516429312592335093171830512275686166738686938814129576740199248277739881711660431501748210629916382143516209922356199043498638453180907491421928387805035401920874240583979105698340750520421113261549621885369279322984476264204473635582086975900792268245243677884017153106330485387382174490780804192524609946512503647983757534796053780578315393892138348831125525468833894821193465417197708883674310550105452873858726550152386888969047498313480196612259790175774417577775891811236977533913793447861834041318271369924567555470388575065969478669537753979031723710240736727664909694105281502091448082967475941871842420285094669304254240459520858939954833136126283105508286824560508462491803534931090622432124762821704011235375989115309294271427274784668322815781148806586622014935481295029351032506866992464814464553224178559920320435898469385497711654665692473807071058016920959496767160406097421267531844396050927294512310788448678182360452898146814336178304204868690707979037918590494399211998518826898054217648472295023800892009917658577678859867320869746294518245600164820831483319850760876909889951631017478508063621567028915734757476232250957872193474401101642445961552971384236293723561886185816839561518496685689485808535708707653178455375239542208554069582653255244450532513129290245388139308810400133274576164866993011069485009162602391972188715755365597111653414673727307741184182688726960280246303052378046640719807000567336215020063000470563599894205833061455199930995530024521983314572516927505231950360732616444486289139439668483239614824154824873261429678387741396597531321176274908604244404900707114132181275541392711092013057803838681295267070575928252348434306652896632135507656224099799914676780162852784090263288357986549721678891172924459568792048053281104056305918098197580611316916263241775153899541983762451757589421920579068848642803600385976993260506875167059208938409710983522143441166250050546134015161582028719453819484969666529308739669145242817605597342279321747183453697740001536083613907144711054648802692430925964157395014003472798939208688283524693120364345284252428819606239756018737090011961748500859360055562987460699416822440257553291838254735878793345727044425276179971973623291740190657390707440831217746815233976315267374164141495904279090691560433929003059977967689687756917763722143188379463403391810815095133672599966027735217557752364511457698258903127555631781513774167297987296386874185077376795806347775603512070917343492080251247428735049200601508927984543481241407056897955452523533292821036840501023836172349614636465486536677030235633504925176498709203278513335463365360264347792249785359507633407288258996945412556548179036732417885967369466316433944938905179265002313106495383734117580740401757279501685055134039133230370423285673883594223531798335466099095089030840135628841309740251631824357919538645141207547837058004159856739018241770336029344152706310364985691509707936305976579637905970514294016991825398009696084451585286138891334355538225507396746851500370182554654119198834004216191958329148490875375785097328026509844971314700322820197907135615840672200979368293541470045958038841139904952161868223231083906747915991230106424755601686683368265597757163214914825385106307254462238467588246019308402851515598134185676452192427778607665377694855790484392573169992027311616384921728534834971612016670273092575158197459995926620450554045931092530511351342913304422229944574397509528391914782272726639458921537484402305237259959756066750685086839111726345942330088740774144899463304955927885781990268921596488825945850629374427342864933235032148265968136797014023674883169571677631695937986640810471215531346447303577539891222660807752708989030046297340968765482128693215675726896241398038898601717411021360059212326323008774063332970110044089773821663053257377934930373673049659786936049813052505138550004742705156751195860838544087313454930283021268602012520777120350391716179728339029355577266318964254226391994416277652868009845786547456044245295628144116751507605968470295130101676439739356720784742864424209913990610508777142182477337945032577019940731910860250780729741397071901558041720718631188691523896726566002100784032574265162819754423308590963045504901432096411398212343314788097381382150780683744991101644410046248382649572121983374722612227331452645917153368260665488172239504343198077697065167151300524070554961959240245743706627536077010421110799959583452521541284219014560636014876075838522088097709880171432538391860663259752120235620765571111792594361988992678915175382418226077106425494322814060368882043329447453339055262706678762110612335403924543521625367629023704475098006340748099573745066027736334454114015776236957828958797563576212301192890776738901878788322727688962774136445919338420623893714204821061978819925590236711787429797541610421966454055951211930690772235695970683051181903700087336134176473010674810820615759299655974411177398212926987373874994913911396342065808128018032007269232440415305742735494694520534354379043310076028958327202369902744648487818881557309232908336430619612257999424158535292755096761803138116178807227803456792051313362664943701963705454333782452038235376765376084758105027737476624302536122006034960102717671055361962327994550072476155028351488295509003499636300766032878804459598161998145579159125463975208900716852652692138656066943956450731211491020545542807876610142816577997154357319624988230818695635398813996403771119749424940606938940780665537326368702332314592212209279420825529121701778916244605375380848033564785503043493300468208389259419238754179993934558607509800831407272988007959645118537492497119865695757965028594262068440063854982336194549897154597580223375635363089924580416074075292623275525157274440664946737712389663994813991733060771780397113027618787651705517932742240572533814122255472784282600741420718365391816248216157185391785361799514057784808951217209306432116563848630982334826810829593425867726972587782288389672261582701031877827105918130002832470637139204681247558439271916319476295928031538317767818601089220127507989686723891290953046947321958633108526031608366509334488798073393215182484488207851869099152762473577750647611936472351696126481455587149210543937556656472129826951470610531567351152479247936439698968980131920492714126952368117581720807442667295966913066982368163231388041539868547964137188824983031878808168807211512314781396878908371899668321323973814622576861169865196015954769189111643911759133825604532858056289132011337080414093160683278097972204238066206210269062113142470476777269233035501076271236109462998538718984327771201329231197205712178769996760674760494353663872188861646155452770613451694586915114463264008870126171570403544059516933970471601389676745397806556207039038039705455834524307411644501398100528277844606860268230074791650695606674908927324302040960251338651983522835959376210212177289557612127215047089174212385973236657447339106332939601998510189623657414779713923510027714068055550668295797252297645390707376522289582206003562564764708071857181307455365840467570438001334195253558984048776284005388132583148301663486004876093366935654124359171045237783657459235094970833309454668512016653225254927653713663993284237978460908017203614701376058229892862419978553451497430277285961315459796360074706891472949262069266436388694767186242959826036951333741533784467700901398412097511360958809046081122715092611461686105803976287281228838081936792683007385344337625880392864929172415432602408976679463351187167951430832399795882808597364376333451570533266462678074370319358409400116119965042286685254470982337669911261101645601809870604576792462269932436515101388135441913328564278100163236451858585495508886606632773695347476325543009974263504135741142802459550803460420287915050931271968284052079928189921402135543221021244099758994132712436702841768356328025495397880136946816999584144089833158211604125298742268351492469304170050913682088008029116867550943146233291101400110786010587648865385013774591502146976991769121851682022941823104650236000347353151995516813970515631431289853692338050747541061774715366058075760318496339663108433002545560697665291400948936499760895708684437845008972296398769384076182215545120601736977696835792197236640422811097486761281937424310143240880307671301058230454816124905978929337374689634346673443134009179480563762055736768355388952584991330797449166003941818123292965324951014852093843947000703161415894925759424780618555916023910226840122318148809942287986625811315901507427098723276487132413035786677814513643601930285509407836878146173924609002576242025020394681064455990016975241287474272960577219189713827644660871330561252011020265385801231677646893861060747501085512001917397192245732077678964121507871488628341654266584058400603118526263968193459576453718914108523350817474362207933823459340492167192968136722366114657346116882418050404121926979600636086690587696781251012649470036809880310061616848412205546941909838950097937712213549429556949215720904585958580726634910111454505062226129680765084005640753081124404050112792414644056743388698569178310081452849516615722339099453074354971264280751572525488565127815080868506854034233891676872218469616296497700761308283469903267235961095479987437222722403920271045032892414319112196446248067904654872326627026717361383397923634657545356775366171968540109445635940378737783341247272057539115017892120787262811198240390593053333701230769475871226732534060275020026916363593440259475626847435655744648400287176936717850074274704715713360180747928976657805623852041948895152616749001234547525082196333810428261792114840937533939920305220294283712605676798150936622543177515261312586437028327650367570550871076096742201072606785426021750669774094652635514150784129829932856492779460246026390882963785508401995257571654231345448284260468278258749633872985747298443266894175890726369898155846301332035192765929417544003397522172566537701688045870394955529746843499764132461937005809008197823271137358112299212483788220353969347692412198930375711303651186765731787434224062564920259086229275345327454776827419348087560497063322321772398372913834227571261697731990154666677745095675442661472796610299735655171923417319594194736185107862562438689989503311249682141090631005453198337903489896042004681350127623740458638533766682079974435390078994998373673391114247403661106252778869536798612885266785106351128234214281820953981682433185761332165103044879548152264479139896645987960342124517698716268324203698776057484140823871106259236452000552812547959447950804280954094966508989226483639082859005182649834938751309132450520233464036227131269573632792297437049691133264766124351928131301446106221853073476300971352859666702887199369530672784631790140580871309217736769508010598671522066756868669882466076851664023843088400938677793118952543653414450598305048857371794597344184326765982580649539763414201899870904747513637217891943946564173495374022254619425445075773835705848483201297757938448136650953527625037600522828835969767507161359478893616362314482386400833338907325513363140559622552790631811619041441998283047070599653246528520770437942951075570483243841966210940992856644301415793148192442140653128889733687743463194562200923793190805444717417578400540251439102978456324096531573603403052588262098037405272210924201372357121398257130148005628850337042545129834308199334412224438057184996705672133057269682623599350676411642337080362233887750496392829848621206792965171323445390896855841855166645334927613199376569503956292184806130908757890790321653316099543088824879631920446546657446309967721654505349464287028129036040464832197007027587048374927723127719082154095301363871572627644378151319177970797740608941922781671172576674958147220362299481715412279954543664532655581623470331147837247296255815977139069782407804499424770701132842711524217571060468229949250187352958697910693295583345028791971776332543662851066694829826193876801834093374989013585050258613536780892603702358215383330382864714206638524311774768748476691520644087476201575435350516766413800546128675835861430525679358455340639029877569261477957738261259243062193011422902173225781784283172402505414359902978084442243582581142200361358187669930492037220234085505150416895683292513991432193011992256819746118600553462619454522419628752124572508604629390870199648612018492313906907388724045049794951756685530946562170771195289808852234430637174207053311264985625378743765619290735485406217068691321448712603966114809225246209615358981890462685003046010429780304962524694102179576138695877268464346718516607999087227849285791352235039337059616259067150159856389994282079935811905683128228493690118224956517441222563196641176363705338186141212771660125227388431197482240558899317822336709920848678408984173401046410241264268721675791460006678348518533236194628683201206041099383710682390965537360495092780989390497041523164009996481116350783495301110924794965626736623975166135987086120538724527380817547600639079440577444715619671171306655211112813587408029207353482161442977551169304648881816245028797060126731399589780559448886090090418477834989918146539195117337077834953813437349764576488001641572413390572117404846348855379293567171599688112409146307679377080158338087050505792431355343062688941536710091533459031107448243499516979987654915247257550818948527906044549036411248363926558492098633806221749005933741957233628287530490518417271267088790260038993477016445113861558907274134188666829479260120784533068680892857036906682749059413811826222319124293991130987528801409585100137703351762400288048894135715661401854227618724632295115714778536263454454083849776337102177792229928309140850743448871633320089129884082101049784916950597848181360058112613847223072739115560108782194477368589422144412520555161924026301061091076633515655298761943624902804429531369028897658017082186286486431697301130708239585301543498750267809718335765246084849188790580583203978506609287964167099790630767588757135710990713574245784049168959991675007167805564643604101798967179657312294073448146721112452145403926685449930878240556219997792670654930084567353236179440351717251947487875353450596484911727033935558044600350950596907591260007372314948953224735701013313311699459238579709946271484642397877511672090445827009624105528821753350798381887442738785939800195260120550010995792310712432170499231779087589941610112973297761931752472265322291964570172451760766134107641808695552288554992216354129713140993250682170891951358708808127633221466784525238359286342730428980931696829509356214422680559724307573320820568725115901426142876030470401658562735198838589811593648487931263775381109301830010620177557910333382715158597303954610773769426835654708146166062166464608277085568944726168907585047030609713263740265645015547608997219356270393947637861386436283263495110496437220367640909725234817171019820365207932699036820165514514073988637101886374797326549134615344667919810508052646371457868508596239963159386579225825170575788914636042621559322692006400566059531816661288572683000394690429129949679503001898972994312396383551039485789162775318713946626872197042075121146719843293338658958196953893054928624353655771283116195988908395325350045495298419254330804939551368774545219407702086203305404784168861863603999190913065831382752928604124238927196602942243111008995873225720670705458045738337861085923521923833951132185688181831181904099978399340115046257372909040416428582172010587336927977836444337785719459481397330602005962380685276707295384778397429262351444569124961930380078015202396994495487181970213034194974877050924384323639069281992358706148740639248437668905925371826804592619156546594895237435812241521295354502071733455269382655196005224964901053384786499788651281971814466732670878415511122995266556729145667499164090047226432905192929528673298480774095057971966914370359174539327001512422069276939299116519760527677918344836764780218068262475859201203284380543166238873930858036972212004941596772121682891478046021212819042718072395120046591433528574906076308041920697065530932115904016502384102128752000584519348305994742393816766782828054202686141265126645719970158290726332594002156842170275772609373336490833039829325113209061753775651228403120571435057694345173593307977716160169488741179417679077820775508753763328135396796987024766266466631324208486502537239843432241359957589391123479499668111940596304214411621527114405502537277401424320576124452127745697046565277300294807382850391876435110374277893709600461564087649056064180468283789871161471753149131777956485707206029132416090796210135825621192018141727779289022759861398929936817675889472011427396884001402786285523661278293610715979619937888352445363118085196879830275127383283992289434570043229422657345025573690071359366882379994302344955138519989983138363916522735406698439959686905713459363836983948853880572104352967942165101083081747659468626233300214540250782735117309232347091940337548544138551585070370772364015833553278818924053772995666559450130410592732385881809118757165947390084701139702261269225714432647350206304134910537902112456278801531114682674443599524627283553524483044758146048309878194290340522630051801693459645500747554204501396840465957171284611900405425144027427617194298028133243444260805370977838928332957953025472076824330204571832605084545711449683701433164567179227063389642442371108324851953280959460234837163698501052255666989478345047481319855177366366502590457142066967386464863429672440352273062813297679942563828539590856376872519999942872051200909182448909448341572421947563040173644781216911920907676917920532737813974490274827432183677123798215411073829520675446199104316548052181338036804188712836554276378330844859384997856357153338698645836040939483941447578821548705119688502659828626749742857715332119598311927470831877030690532593730007386244789682094288129783290054835935416983593019626271788866552641362584042153637624355956370097748891654782348346739355887172339709157851856299728891325725680248293770543636616616697868556595862431831395282274717073659165008731059567861717657079683693979978038833433058206470714677163140160179636239714064805549390355285419329213672987715445087184643986681240450492567436116057541819855189202695948370635019103648878001041056243998163985510386294090512742936507841008289508618104495354487366102520434566162469653122783246899175685407653266196131442553122665568184189209279012806602809833210284963325573591054830687905338103960403827473418015142677157583237626780246065921995300705019988494780771660006211116796790329085071879753630495627913574225131799149192101625642215129461586415143812479266293478333929619387473806918908388596389589382088236221000025303078677981442593788848576603932788148112780729994164059675800406460794202633220322648023679002520387482874997180445209254130884021661823570255061539604029574252478418612257868717966748564342771906928178363348049390451453972307317749809278213453442312705664109387945442797142152097557643898824256998962190651950879722662732260364085647716690577124292994545140033995735162842407692223518746515158689957138325426474104645247545332127617527641969953395119764665556545318017222312568810316044007442415564839172719241232162016957044621740591954132869260691419410747404857545954779824218033975266145520000843317114000985783121808645924020074395799655286195511542505199643460818706416555690639049113961341035772545436239100618238590964375645493134554963068921315797318844433847954224384713370772085505215157551614588073713281138885160499934582513115592766155491117087048920290394977004853815008571545071756701494251563701309875078897731132644624880319606356693824251291498186509147474570332034804495297812629010924669744962875308349212911719607706050885188247058501589704081425215139596677967880837057492371044819772054744891729634595414416369332054401394343879851087360922456320273921478442491600050029330207489493611205223652938966511740968837415630830984766905941573487151940809345221673363759142630202824298964995411328745110681028365793529213442660132719671957806975839723248409082354496785290526543220510455061530913719808131377153566503017642593413367963817836795420899697438147374019802152939234206642636113234648744221959700925661389160893368922007158436921206474324773110548610399199508797382062429120467208939534788813027217690966233666343136636931944752404636801212007061770351106278066317271099941428828174127880787137385518224210596361276911850131292017062647876737081846625365954328694945942286107256703164549143121005228247177312301808342442763170410908965626181679274598790793691287880486447577487647271276710097865217651114699387858674070261709271143935732945854767285651461027206266509315846577875820326209941979370549963014715860823835335403807794336107576150671924534050562384767794590460561879536111829577860622973432626311706580619169998526691126505955311742694571375186104778807159326766523381905923920295535684679390861626809421086644528986325409239940559984522460464785234515911659484632288806236907336170996943004683384446111611788321432544075741267168861563103911332170334484941766291281591798082096128570218164842820050605687326111942502667171849942164598918012518646494916450245073682246157039485221732575287442950974975496061873188632518895710011255651817117913099161602577098301218514783911156959434767828873945577710021412593135348405663074884465504921308801018846940199824894130856511706574439798627444979990482162006999161308788485073419537627280275710256165736092376620800513590495688762508311740390109007063769277879601565607914970200949993519105258118065546677887240931123152551238826294186475486221605836930802815008209678332692582934389355560209330389075996948883141248451238061196555441723751445808552366000143328460941736526403558519484121179807920819438227819251968880915446117524357564898844608812491713349522844922172859654547640408983023821679410701133480693617757243899621250307405814978830638398313654477036373201087434853636884711081561320159214842020978404138386606531225410048943012171615049822221390598458103535676293618314283775502162280925838674325880043467786654574814369690755167690259070456940758568654041678468758771795836179718299112087037746816477715463387129383343792301580312990680774244141890914544960377103694799507103298788544903582434327886964353280054279389393419846897094768900653066625990737781846403819044218659719101761203610779738832496672947441877082463329471280924966824398677329286103820882126904336450107640637272930752675721506310970826885975832119495496057625265012958613815189705749892739614366966520992218949395162907719368297688066273361736386224168680703668582366420554996292847489301202122700952996046990899422767302295218171155986090384961813536015833383267273586820697324423776862347877480808093879926769410514179561070873004823216939463367284578979071139334195245580057098478035581587983309264438717887847486076838909589659442689030610748381048236801962391358719118268094458279059023116927965157287921353027933584151320746441308031040761398579015679380350341403371895478424880909589797695989582183145094243251268050565386824654983054891811600815139092147029249032324538207624892860824531585875213551311082345285374177585594118611209648082249074546953703440259498201863443369190028590198241049074746272747281534875819943620553056291197588633902485412812154047595791188858212052773226356969686324327089276964533113652050254140081959002509419493205132293648333395892972983591126547756120816752659477630603791416947653010465986068960407596463812979227279935864049947366601975036215095662178505973560008067304488507684013652543054947684815380257100814886469337351726162826022777983853510930778978039244268817624398478695232659173454185116680651695804934937606228616279716258931551831772387058233037425853565794863251014310353706854210203495592162128922443097575807783858024533568814429860240416655635280788612705931033081078475585783333329027018005803114349124371118325347339224911065734235591957261948283848684862075822371785955326241262281633402077950113879988801499186622523785895559846238554401633962579532699897893894630304243222622988572222852793717574412040945216467463868135363740612651476289097787812017204639077962744353119513528966832950501225280393502798169079635577699841038806855425060044321012965494440947835265102641166011087331262126792028039634193509083460859737585543585112552312880869923519465277616664053813786322313179748047556280704360002206526083951311285581679405063347023842866280902409361118113591775799157260745013808944066756841103787400584789494965184104700170187813364902870641708600734680000907293102534514424627207663709540368934160307989691793346831906615651416676781398721648621137960687364343726916263823683203451377022812668554174356163443298967189540671368912919359233906277659438100588460800360641184346001412211176465808062814168450875649706146739751965273160271358151402410952222484948143614986677661003124355705516373218387469851907187628216456582103191134226990022963606878728617110870351465483418929750464229741649842923786770335693563870974268532542177510927351771519468721596976076253976819207714738763656405995209475430844184924774710846872409191324990425102367657440315167696503831420818376558797964994091820282489795734573106181985844208276856752335585347621494568405585260313225957192265627154204404315309266810105373605488707820154293814972327922291232646909904664420783007517409040006955532499743408738089062455987437018506352101037155897447410367770000457477928331206449183752567957019986085815429251465922548170549212538013496955853146644212551660720427378683126746348140417646651840543253634368506585104390034902998367262565778016649091380677644019704784567142275450984952690882547923787936097943019850286385215760666645891701054434926951675088151815097271799657257908847589506276918344817808910215372530023785214311440288459403259141304665555905294078869540500956770270685796732558888996519872945810496220675458022678158198447394971850656158494102057069904879108114699690363354946390565674084780078084106392609686866400083106448156951797575158243423400021831056674816269594055033374875866439696511072952037934997381632233372720043526075368411849532805168450429043331754015425998766367533725545628691069851368032354561137830332729854590256631852801095368881814207212206051295639894269551479201081200042134189392236541511704709188365925045754872879968135571964727519341256041635175491709419083533421190291863288086228442853882836389348764117700467230276033182843655478829266500766189011551858726853704587163976413268161989356232183523965552909226970419905783916341780277232250128435283307299811363697192167461119844177079300508613206734694501593633856652088022414937715988186464430464474416411061231139723119096532112418055924556066234136860259122268496831635913458628222496160535414404414967513109383425834939885435723886174529742364856502077037592435226438715740035326420929892200339451003782361338873401961139628405960785386381078707958748001703373388803750605718208854656721117002766459956040974777043981898750871876621776615980843341160072977792485028160888314240029936774592736039076693499781517359869002345246485447722517788450155258540853822507162087166571433291823201361034258675102210899979178858606528082809801098133449349638274653041062141808810834066604222562199934242926309649353195192961283096135642310718394293008079735553152567135997698106011085684079995565617191033348503857698657260147496340819533863516462207174578617222892980554384113035406213624805345017498869862916915618675171720127718830510798596777069951828699336217117619878848114558409571571265057966393929581763209017659291747851195883271727770589244235140553475156373096431777209966705406590469137606924210243383386513782214687817618783072402199861973919788376409994275668237831583574118688254202524467384255277561731345475886730714534279861130265126897979101882194152017979117022515442059065900977919375359302319755654099269257508680305849882762293967394259152716955103818005628716543152788746360837446704625655635268436426852040335234018676371380625275255406583272606551027897204447573329093721715381101816266206671914469885480929268650905179642841239045064584584786016581182962471587239521409902859041885806409954409001834951089502789011137468825851004014550258719130984006616344188743385860235551821380086698317964735936320689487712040557342289637491997965390010293794021109826587299841412716753004791774026513208151048083584606452002657037906279941283182403517212109066968057389135545706177044165900670590776909813364539617212098406982066868347848529164041573900502837059935000727770023240513089122796906689476361935025123113142212180189345031121064535091880256283743350424981069111810244933404825308393862450669713042271781481018218880640622853401100062551207657290444501678037701072235955493335088617748030708650187517171052415115746168384393014714142096815275700468735040139340952969019589421085468006466383893562548511236054794078598084705935309102586041941733230537332709356610726683554306755318572622285968464391788172904452653698754065388016437212037026239804266011305948831729335681459632409506620129582886017889886103309329039392118798190816633780747749836123637677455844437812499506990296260797767275208900257292857294943474331927183678052220858222699268757813226454497539506807267656751917418979561133954621343532062697687253587506559626412632249657291579332660546679801232366093476578898378031711183679884790712075796405222240637845582060408254352897368304035197232148559101523998996770994066937725583440980018387692948589530089465887557112058789400250443054592432814980606578736282385132456417271088616254185834482818958375204289779429326899420893073459576209907121137996637837417725558500561096151900117960546517396493020116934697066712543270146009762257366214344163757554260522074461178186438626593569079925501177946648176679303320385474837328799258625553022877065142606113812820636006410787594426404557069561755400630131248060699504175861016562640143896016999895524328498660001031147683459395702497353203561934064419786171241485991352745199043339766526502432675253671461763383426757218614808913724714088331659630998228219334306020750699257158242185104625751139203469685945556447502151396086184742005011236519981786522880811917576409949584412656529421696833972020350964469318843642788754073925002570537369230849406137050125078111048367994070834951834880639737415210962067663452739729634253846735746073262043757145324675976891555638111455947690118393241633224918218278665606747569008375423443974038546034355234035054255462953571526265298262717029323197110735093425965033288193322693297598974853648533504579773580352647915775894416639091433827674711203043653960689333838767731455939091130550301249114209984966337737974184938671916237644555849514292707004564040682282728479825532749441360934516261193849637893984731002902551171617393145843515072813614767299432059554125776243761562454645199434511298967174316393255111133868743538065644993676259146182850605056847895167765487097314543808537031075108840191523816342811017756027931749659557601848118431725528109705717749166548916867248077438467237703399197321171891030782432860150801126097310185695483584963102869266890421019414481998343990435916625897514813500670036924973139211280566661033158467722825360484805240063083303395682559956229388531654636360256796884823603458971071083024859955680918857907616545864910558884803201826789274635226608059181822773208271631023459991788030011143476414357485918665880036853200203759173275475431962630136891131507434662053752423121108875347768109446937536951045191247463312257707911344028835587146538812169618487395163152606605505216456931678388744266161586360151197222384070133700428467189758650688334562238815776375473139391721945704954471331200425801045739691173162506121932135937448112282388620502975575177060515661790651415439337041809736622475054256274773309346263255856470528808912998079774335911636199868752914247009041876913914546912858061861998416091201231808906951696164775683028683754681344691735599058791162922417868167516372237517371909249221443604528635946539115722835170980132440785079493779619425007192126725985283992774978054338700818251333561410823849364789659755156955988341268480445939696879966312102197713363336512296863721881848240556094759784368239317242639130881926353892195559106639362444683397531352516215215517287008374271009883257667057941091368429488563193250165671945272062451375192619916306879351188793142015181261263788389022155187121489619929088740672424018704423687392584634086207027069036179538194381725758212313600992281035637241261671691523634611349804425071651753736973154857972605161481087583581838648720687316061862280698716186377515420488445485382681006572654612420684684202924457713981566220304114856096151448419099052308964555766339383581331149552102480218207989790646979463395600091303025219990329777391939031563612288583694170371327090334971522987962212680045275722924840663168894465620711912327016569664530730366112506310879314177938129224828076100649260216050219307171833389492580101932942847648074039600998976199300284214184441322800653613344671750271785513868368695420713534659191113001360523920329821544023351188649222526839079416895944489490436474337789516315517176032729600383515486275619947230698483596563330680064875556309467000374000688884438645404928589713445633586349136856910957097354619683472534019853265421802809611080243987882942649087022396190331884320449909855320809731706924398627243423048059601432981007099599307008536818717946784518152414490071664114865188035148188134603218591866713187387539178692430757790193477632821601232110447062390258670643084943000028223265352180769928068294182688444174543708953616533378645536767569557709364423045883331207364683389170016503832321384978352822245805325164222554764460127380345167811249309705118850639771863242369844847659853662801767561664114543782208245758816536551264291111089242411559920555586585612182851869114510406465443646643726357542276136550300293637423749031301283777313785467515745607275636331062254042947988562170466335379953350934739138408891917550941178336660975070690587553410367670674824543719543054484196450516758481872005053304362537578600454435692749150998112984635172055708673010428510654710901672422437011620784070240255117105688575155204527425214600456014610298821462117749596743580928568362710036119748089024936051883694010604560733147239035693898375493106997122507453320577559619630721065972368678582383837739137363409892529811165165059774380301158580804848400941910117945265024836267976492221968937907977584123731310465288372915556928939451378168052824261346650472555219094971551308918132720872262985502191790215021697219201229417061210299362498049032071001578726343976444007347734635043066150644744078134108710115436255760521589129949365861338370139406105718253505317503155972420678252738580138398351153021868159408724383508912924359157367748514303741691860646767461329171650242486980776472148789733375428521154696726988704885277583165857031016009474752470155125640408564065195181211919840708834394941901423791954813395079540290420597945068529775552526412085525474615569118035200906831776125741005575317598740055494011852569985242272138463691606318149913170979637616543396986315044952692538770510080535540336691780164620768821954851789562958017252046961610742994812199150559203957779877939476344599525760872385437874637451274225285277398358719394380534535912879342674970222977755320374006907722236706384693575916392633795448414421811857052009257608191111597530454401828666217931836776187911842309798036055581378259730053683216681977324931688912767264614429379352564343260229706324663859440672301239575222809900081782705539026882815516059104197925012122135999184470518219654355732807979742038062653304963936326471815422059436868115460761284354599737719695261205894959684902363536115534582615111815040576182095263954019449061263120213919433613949503613063875426275058760554974745660817268424498753103504211011998890502226579361328409192360967756727560101998223045649091823656932321698519957714623459009575652374628517858360300701771446912315518837929026027276365420580648315743343249999198038985217753436035783924033996647564245452103604906134835145705738078111881308058417807994652883246151368843839899125505396812602189008306909092015229670154986151250208525554068043636593840212254036261882073905167102462688953039161013334589607976842911166016690498162867921656969830124477915287074794482703365328551695967448672427313630441900888773613451042762839754837920644708055058209037610195982617075331434817116503056207683803771185763677936354617555436353699226882551931053566039828874233698670686593560820843814665730426048413596594059206299231906639247696231716597413453522796546086715099038973325564584959797993189668149531357994956013259520323305015142404642666879911942513265530274332614314963013742670735598898243576649270821210032069018355300678758252150070795973854806867919931920653746011905578586927246278418964454315808990220603096192014744597324236253883048941965737016262047934669487717183921505779061219978178768669758345493076456912230996711957718264626051462903698891133951024349065676915815384838582246968037786495922406183022061606262065126231234860624151215426684396990260046511274488783586523578250695559955742875475031929484640463747203710956272007780867136597106423458189072968069389865622333341929401741493848016948410346275686780012137681750208491611777514745953924810675975946794264135193927138718796206804758654023586098039723006302621568043316890048140159494691697403863559238915877698961892071549058362135767958932166411419485075590043153769275775487081556712470330812598945992931674891204620236777021513209102265069422136833995762421768707039950779618005296085849290004619473378217117862457584423883021023085428254624352579429575382844413243146620621132894711997026662066480760523609532910367566475766169735159448673030925589159316052989356968644045674810135832107919734239403627153419588216476625451033248368398232584986305555404257998434019380997285989124059482762276052489270868696640405325855159621931437820604163390811886158990211701358058906920369483963244049193541178499006871601595994505360660222851970215793674128014584802914829687829156852404722035528694276965547050194086266241758851122917399898243484657362511575022500769267203424451275542728748733536046289919617333067407658719569678170607540492882133027590455542815411194429415145828119457480511233216228711543775552373587966894438642887757153485311165706160011224458361718220404323796749630281546010839504239232076338042594049687300721896686012984296469522481101214358100212912149597394359016848246406133742499661276696696578245272983630276356995598364018853675916825309900282019718647936293984095711461286165409100507707000157084387111368853683782766826148104283009359439940364676644318308272605957715859317386843427892941605175308328301863586669045499030000811156491582414179694484370412981107485343417542954908200742345765391459654592047644960254803892695501624434918331729526587489940953286097269927326324280242305251798429181855790103912708777939641308252839634490056173441494361843468912592833897532289316786682972097041557519225350719356074281609773673307259255395842405956421923695026636442679936001010890737735188522604406349905914252557330131356957928427456334839991715184635662456849777128693682363269489802346739761870606207187952226944779343974744150277617769976957590197526354641295900157845338382734415406949715705087927399570323902529785385537287883236091825065313685994484590230054997225368426344895512863225666025331011676801269161961977315086994678526125095003646335624410248804716714370643739400359831846513360863598501740077551921440383609153343541614263697408969530234333336128220268170996376055288621655027025179533267879640443556182325478729160598501977090904892315469594686437599014477338514133384665791851037932023299166454556062204657997764758926938413064287315172465808418982500856429696498410127663137174623986226478162429848690942218454044291532439981370314043228412171441861325804770278626958621218097695215494196666446785054495361545269962910090018642625793089229056667221157923200867130238665346934930943428096456570754648171281844989201009817961189169193275119312199197527485926669504458579527042912230702302162151023980172670119011278157793163715124938382421170136829685099618664127317252337297810357969084049863246310611001821224929186038820124591956540236437025686429767654651027258268083261191874149346183826821423758954155607900088442743279831407095641004099066732928408626724608797941389098019475273421820375587832652993822096932250973531572933462179988033418590834227500528887046933938979161809435055245305141063461489013340520255870322238464051816047764867545871357582114546551100599725748917772010220314677092141241289466297655929631848129732881820042888918760743786473118312250075409625835862459820926900967277531594788268805685794437585308676986173430731514921545937262690108167122595455552625819170039908930447406465635881072009185331953417226400157641611772265663883412965179618171404255194120461386882131527272070749667057674449889782172390975866594173100475806463649610174946233570908611276145983076105445211313611070159124662211703201065054130105530818346640567183947722171275555995616890087739302556982464815508721263910954984775460942039675484150171530090011095136374029382821973247266163846416379888032282453648571414615308262050040644797841050429567710405821948747928707610206694741562369650645385325379831668059461755483654815821183156784366068523341269766256699351825880389921527443469609620818133186258097352288930466545254725216549011707774166980841549036854335289458997968729402134567954874087011994784103165354102842421762835983398018856690083387693005787064709986158061851401211540465079039918798087752303469676577230068451035957948618077290660227716427349444124727405008519842168420202878821397566368022854466041356372018478402480873557156410740104753580434286814047882000108279059846280129408858654126572914832394369820483262552269458828098600096901768199583472790807730759822054956128610574526113024667757173041732290257572710652182874356965671707483072459872492844394481672809517388690189662453644077653891384098394899468112778202764908479696062411461823691832825587128241075869689963515027373134256659770806834726127940583198973044435226703802625169146850275316820670930653522416269215303522331056967693068147097122613061064695513643583270237642635889610105584879045696258961372500775342180526803283045964977433782314247278287956810343898692424174359766133799975198609283783747109501122764625560413073620249558640414532684409455600145728973468202507676596403777787202819268736111377884818668708668183961078154286404740049040789710808276662193183485992393062061011501386560540181243336362982543456133480834982324557232749070460320980422211427966872206594167597453444730551822389707434299975901648549122224661743611655653074680342658653133719992858839266866939200814523215284366976878758019015118066239163597999396004097343485182708732705986683480048357215580937291301432425600498372232355261585764007357218039931381709339860324588478866303443776596144418116219490596459129484460304916279377805655592136189830364338651791792424429418906135014916316514900444638525534887120426307678366152063093108467195563192421207712485217663774096708180767671314155310029309841848130864982721750795742002603352247288165069910278398336240054671555210821948139740520616352205142826223178489172421510027101653049057199478339516335016039263126881403521609904252042795781664216087682286606407782033377949729045271956302884804997195540377189154952311331672019498388422236306394104782726499395981545738600327325476514209556077100281244741011010463626309214835993551320531592944315459916534145014109777582911466691220846515676229527487540795915076918509091096933654781476920230951574741766462030562784701309844398375921547730322016710839719748565862644443553769317447312638025501898825229108965731498879198815085230565322434588606086256214481854050774825444193957959801188765428775130582918210339848532704836182939890065239445658657672919091715483729323590365392926611637739297607540720871476759784703702966163320488643110942586098406422920207825134574590412408962101166723825887264972480375691399773090049413447969849235252203712375648111247390545152351193378978823871250930766510007447039572745232125526905259913066396536860354697097034090806823491562306745725060416592904332378695208206704228590153850228774165024281929279348384827257770985892901910824963136068502081370689678707874786864882080012692096038957957990426265118193069773825817370894050769683020973810632707640241800362779448018426994604979868130336289661274917363103932259789212802413275408549778396770282897773911844168654904217841809691071546714773095702312672764909593821973053992401597858798613115678356589756839124240062960786176439427285906470989264731751659265934021337659773148616880244093343735963133762938707269425339411310328332310965920003606068988628202651991749940387701175457959278181244643358541817426042468285006177065041231483652022633689189313108129201815074644824232501193812784328603095070578181727166618522763517806196222979548910121609389969103198071448968004046410592805427403979492909549611787310962376117493585759076736577281300315140300889716562786622299701983253700086417847330632479665973735891147319139958778240049559721569616680033264295391611355809892975311339175611274821594887007443579295550441571117675469027563061058348135903887935236406398376389105470531897472386796539612205914615367703948000161797764726045224936372668591453033854349411076007145935973025779939428936265952208988847349706005179106699316249172367185688587942054145042273733770915423307734157795139517592772424820033711901226498801465527984136527046689263338330723674052918897956172117566185133404894001929356276928847953713076818825453734326681817627088142868926471062284048316244473584592357567952729570859276225723826883768871113378453771006144778267806087397988559388614313358856397343075620507827909937052381255322468738015979238966258484472222526948516383692101431299941065662117505167127247059897299800289617102031615674272086580064868091940251293796947519531526485424594687364632974815058062497993720280083230917046278415554330727204863880519731024723003828024050496952708852787280083354023502035750710520533495221457808213610945594558461759888336602139192781417526253830285014981052173847303868651772624241835982937880026102604201884188096127249694536103260201331753435347877304075001985550498027829680713265252528977038591829619468766041928785717804173141693635830185657687998969397282485110908800327574396235742899816089894639088236578450584169062757833622714328928404255576221392418896532529471801691758527819183902272533719446846335558498377274431375265306479285711883590219365284685967399846464413110823947075396704552854005771550996368283739939193667454856934879016294347050201013220224671018116862432832154764362505103069106329430260631095092362152085295808993741510620903648280588507985316232149254314079898442605353452516592704522211990072612029258002283797438759896567301628247139156550740276751935385544975673444838306714599074440561889804486604714927523586533158762240694426397451483686793602841220938649505935326380602408252014424745233565679883968634879094193129244473464162854794402737554527621695319311063744140767134095726542338795095773097710053600868140462656823285628397918607119993202462557512276586757338314050161764644435881881796123157007715741798581381038105960883825862425790811014960877146545786617398231268750711763258825300860320796337741221137459180436376491300766426302453539867280990721619953622406553362205175347168764042494501469908357683888343712770184250225203558988218119095974328298880918994451814328823475062140797166334299421344641186901710007265386609003818701347010511622405883764009776753212828757033036940443654198519688963208728005033346358731412192339492169743372147845369883007725192308522557977131402523111322368387530882171971058619373988582458657201425033576111934035712915904038417399647091407651161765622682534637199733477979489847000600255513773749232331819732644303776672906108945017218792455236105973691490841704399056032815063588086521062581747429877593287114374637444638857296561709008154485581818149296703475669907868852842462145288660974762721842248703196733661364555457252669205973805402861079635471334560853764796431679912620178796545231621958080358643131573275978247498032563182266969115767029703161038069493642716435666417877901600517386181676568446852895045234314334877510528057493094527572916237454348700675017358908108677079248337396108682359445567758865120153548112787168104887390417459752809016859076017855265244484522879928769389698938895433083225401992714474221041568170258656739986418543604549226924879696670080654682390513796138956836157592317602441143282979489790519751908511839291099353509802558394227848290750406809855019068102985747433607174599447783582760147898066142990655588696803112192950341149997365781142144441302026838476761242992149298817155395379159726377244957991339977776482364494652392842970032752236384271879190052409013105663868937983587288218550680657492350760863560517008989193410100653646681662949500036845885459693100677476647588519975927435049955650404169594770817248290447099623731003796792935610628848954335707188152856946813171439123790702023268045060788036621869807778693799309304703104181880510016567762641633332008474249493498202831105410379372359353474812391380485210430052591974654138686664095837746582787267070243930973886387042464735723104636702097595711669686591975642027542324689944533442024493625453327590213472081774046427562078954305898505152221535032336947730556736362422609897235846035682130521544961928365360353003364047723156668376956090898764344549553937213423524734538842194851095591636854219661396965132142657111539147703195656217709725525589326204981106965569232897129547952602441291391953002837186420607788970314071267369789086044042954285864151589382526622931674491149023137327745367103850878935775925164140670326775664215007139846695649310616031521267967301708996872605622363079650278455194378088795908280960075509310255182867501111204127350180981866706130999527548809637013010197810317030908397267462871140444000315001489862600119651099094036981190051072660169147552523079700488311042165714960331683866567877248514428324909261474817516687171566905833978060582976278030362069715349808466450781865688479137859936184572525096549592357628443688967406281035891145131192559913762597199843215074381869550636922100998879754200565668492724844374856515150721896711472694054491696187820447203435708375287415433271320360219389506460982564431226079690450872012159068518138513357980969510215076090644836783627225100125943858656432671926447947191162211986298949080371988070146141225837751422596156284784398249605295774522563635536707406047168796857460221823147241704555349550300248088828542686970743287366619528642203839256512989627883349264858997644005406886851594329642470091161822648163358086038537386836866496704110339212823089873360047407932086462994730309764588770555839524678845791221063250896017766430780249234311322359632032647120481470891835227326764859588656630104014547175222719425584492557111191733420947147496354096730715216179277251153562016506552912277117901970119397616130555688765684130730367676418474654819101458310976740398623075825648867163416307846335534247732732289175637319302134420896065798104767222854179032421561971695851268495991285373001470396918887487731067085760579658408930726385944126160526600833783853117762932149309667254839491414591894122350550071412301919311173076897536148004825914436363270076227038170444218560649939643700997090440494321660175182100223669722606343561760804601702974668286522086566815273710506471629217130115412158753420641527905601627267019743283007193676342997726309708856607999004442737461075133432435165956626124525729978482856941741425938411168886076898573505828570889045950288455827636639022866826001386479951137438770427299900095128218944644385742840552658293379966348261634559416985480627296125608304760292497780236760333213763459125818980287082339272394932851796454235392982848105912856755031894097295267895365930545926431265453648046170457034753772415153454838632710756332165376111143550957477310143530008047348456439048292988388449022784503323872283626324119650584209279005291992104311175178953809518523734641241837270626972263659390309822639227640356320876022308731394513683393970254276371476553296059944101147110365986308791033546088037715346510722043877349044820706482370666460698046789148749318740098244031313623311073809908998512246672307745811565890080875665893671986308661537433805127360269489056628031858998701455745931350774681000034067449715835392067462378907829086498770988361632633659917819274877183650723490569321654611416447416405151319874604847336433316039800161055240086165321725523190307957126228629505222443844970359195061437516201963986394011021127393234226309154655342490667058981099988311650513148069718331154124441942306635731173850111362106517127750210104662788941559281505357647754965048485941133130735858060081820408996962536756756078984086441844894071951182758644257884362882477946216199777412855636764334745045701189372061738936315916315041441319455623183562379701036713119917418950568740361305820374006897212417969330816091223500911042429769886890377088599237005348335599835871148544923863600708284134936050142648188592727888468930946574043450268060957915559794275401019381991880297366014537876005521110812887371506368337494798835962517487136198017504243237442256489292470879276969944800451779188653382262266962093978252284987943964625266783350583888225156570489604669121539675349683351702263572481510458579575527971984272230338114797357564863776672045788008662820577545453915712740719092736854886278285727900706886191783169745916718612303858687784492965527880066522360966057853440484290363597367879935509377226932286908334084680344993879801831991191755112474390761995627450028178046113001043860544038475414759488093393551430232803259332748818716524512797420301809201585589606927144842022776587602608269961737166816015244566956572036184544628420961614468967652177856655515896357012009864065967834619436907491951865841143386481982653396748031010457707026378883661630763276766692387518652485382375145458205197563122877653110827585004920095975373233290698619848814075798495740438993105567548757745827131723749392475941543644265867641261194977915565610195755796088677939025249705180170411988121544577074735979321531735120911477434363470872592227231523432411777320770662880091858506160545063729356597187137324511026244747179506694965208512573305108070036604966454437725951675997060031963774516343892230160429739089482873031612486708205450671169065119595343258929895451427496436631001041394461674216752139807603096232608996955917194190092704451335733327383055378403470114524395990075784597650444393961289365366121827900688630863551966158710397894218310718583993491070222599012906518384958818254152088605400813858553943604808142553022010153611391715635101431193934653843952028513870464832227844093449864124390615558464029601619704432350182737565938886148400571820488834496381162319421301987797849043783906682948427841996322912448811598923566422724053811018448176896314970869946721584052680286797279139145624055538939885209501412643327368520401899330139281292988455770058000231290028924900003917122093179235539095527113553247799066728238027719528640009763876259517577306723712847784377826803940564115042116129005108508749165297861079174195814164351395475444592980508403270460602875190259506885229690403810022543637281996872660041310273703692416631622808722302378421197400976102098664401056151775915999513003054229769223785759597590761796054794474404450496494933043144082524112088559855301260421404617217158586765876611263060270653723178160201003991128071257853909135752447865910656834712570232811759296248822692568675744461786789706251230459327812102040851667906281254804211984876958020352954401790619887497829406322812065829105508456599002609612940905834959509189885980093189529792323873674643170180031040885079489586439063826516531672139715406089830423421274787099344614700064834429991771973750481443484076843479387795541367803570745389055020984959325902421130448955970929962764403141186006993724120832196181302587003021841312850244499537814976086318152830429542780908140103969372356442462313866069609351389416849655500971431827713492854245507738324763571994036825110256128895670331598160106164720764776025266396648593458378545635858563855964339744076006253072958620134968890177140944329656790823497088618547468632479628250322968005988484715662227802988015560963972385213798419205712807422229590637778798860447682556578788899402580984081110213918778273140417598404977910409808208950851426414853857510217718056103325596162919293780740850118066114319766008836310135909280237307931956709045107689794823949716230232468926402117582283987236495278562904556331912303984396759255772223149640396479303736598992616311779943138741305846860697929229172421139636926400834095042480128349630541624141232597636093836425568673541650825708289477431713107235782758808026821603163478724421565109371258436160021058751253613592536918917366847942535047116537885478885414314414262457401865259156248054484934339767572319656720265672892454733775251044059210850393918099797717280905412924710592663341691946769192039385950800338049144716495853424406478749316515283469023241548733126341759056889777790078361844090333929827525458131536741038269702178730725496822002294768279925876998467415909639057922833931967832298896464753817355320071204695669839282247131879757608612665754991073467152720280304344087377522047522287112319649623929894374985132369096305732088946540513041010808128957104258385995202778765534804355945569966524124487082378403159741683862635290653834962067614457609722451837935476348594264665349901309439034441914080872744569416140297588421895387309552059344803528386535796080182841318670685494238903002735001114328898628801909012773646389060186782170170345787700973971545900836545726040785296416798968735747375349287126118266627951472749818393675981888669717814338902972122042074733722515412371332345247351963149457636839064986617379326948340434140253644233835004471249582793584357481004016686205974274092115137160080463353465050724639989279474383105710435304703502510660191442919918171100464362252769601030699995256036218023604252382563236374271397953984567078129593145979018661177360396009999219233622087463191523794322448306384688717564295762963307732234945045822073648998584059033795848090658908778023273957708139489152322158936298513156122762448727432350329466934704165314701734622304764679449121050497848568025036595802291790471693235056691752781963376662918032830050767899332029487442506251442363927348880210966384117391478537323225987714706429782845135385400071582850348264837353388116946710304282796238771493119380135018086492144912732696011413298833082598166236508000905445468441040193345834069574228785583483532855398025280620716019127974441907863743519127145241701776046152241593659979241134203887544925467185655315071238197604070362154595592785358413020280198885932417878110632603730133058995241541501053073899730243509632227089920560139224186200068126217601426433859757625301901393418745876760830241620846925741308789789979880458054575565265843013500347095743474755549915377030567232537016863088020581609300110223907671728374478734480459313046930855544162320979632733075857506003057103423245370647316233749527543141098784424423383266329425516134773558270765241127766258911841143736153416643436461709733221390145927415481785439899195700804661533644186112107018167940625488508744175512276668437807232127020041702253521210737310716163795497563478394543795863417793035430761765024899955268720292857262720498447267344889188225350072463112510937336738483754642724699549816123746258178284911790045780330649264088527639625141693942165061371503779228101177187847053555441815279780020635939982145892120173708077110562717363443804566601163739845362686042627546986852995687006290363367202519859436415535838325178284512199731393726471264855161413464090230520370801993496310102316656938636514562046077779670590581129116586531590497930729190462901560233515382288936509439310167964879416846279764586877592030081179449744214306206937221948019001167352731141588595554825869777771203211789815417101559242633365493226876289709099115446603093931342132881857481605391660349718404165249095383371433986249044282267386609792582840448647933308106341246025220822421522443900053687695285241886969046615897635297060377154425296851566802329456082169582333153527762979116382033913337891731258499029928178824184043857826214679355132824381838985505946739375913813191066536518398339095120984729162102838405576545080144900781750823669227034991204154013264242815819516440967019148906032741860355157443569357050564818511647885720366818274157079576825030413396786883399925771854661448958636611060810244243878676984217197002842655868817505550731091788024176117240879211699415413894216466728881967924599348483495533021215899033425232002419132481621681402374022847577427899556485066457374596546409811709660695585994986272789266235257475036439130114110944376852685218093923709319945570009621350348062424945682562671790076671446924786456930758481783113146489762041813329191554445060911631101920160712406639300858621272057607896753627754619270295873806271292069374155856603324195776191187551516645853222978487050299134594189694731118609592270708856389345637792851576233082542179489123665943225307681775691179343759354963260128510685956565983181251262212796715732511986387291654857047304391641306155726436953056085101510830192197268847789963524913426218291831620234225789509273502663381551490889594356892543655872723259537651039567088076689758263567607916917419527747221363524154151093054706765843748035516028904080924435623306986584746548037910866216956197474062937852180776176439478558251483667739734451451692043917643777109849435849432422827037618318429570471288671110009471980189531949622072259872611511088552660645645307221096114290418909137165264926458850626143763374760927390127393081743632099390334304138489062347293161902677452467496574017667612782460436558359585365447980856480442024351232360513765155089941987690040615615445127684863384897136600016620695722142640549051650397828877663360945847002344956492202412977857077049760541472951991270294029039047314884997814400449292406647472863686247762143935381255424429492962135573449082230277988250675949918912420337606162817047910500785261609202613054956118773875975687885418576176027314237173431145363369764229292445120577441057525864142284679327000755135223727815997503866254624644892337485725703643324782766337182739733765917192602937963242015148081438467225125635254654561963663590355998100757017572321821430134221959341239011704961150084487009933028170171224812820849334803840389868426723668736458220123954878568720140550357985951125888455092642394438260133174828070648865879175582965123455933378256820566648933026383717975797453169190189639623378973231677335821720021255619342673053778758011738843908092893731377613567294861044714367445574687625662972572694034306387595094392514100620456380734575817209166384826951102120226951927938713934080158253805797153532076118652674137976892053689012876240146775777558506814116539640453531589665004007882246776523607204234222714511300131679523760080351781206015325676140389973528506344934005906061670001818260968209752169656833174540663811998243306875304384488468072081050416466003984614278497172888786023954764184022015033780264352678548632239574928768456771937282756291254844432188233456410636200795404632732848293027251835830255059981337539057319690786530283115986462738862215245062500328148474177830743013062265321003859921712671618180594932585157091826175240868108252615645147953851973961695320510527892690759449369325949810589916345560206819648255845193128548964363707700556499058469065336724327219641514142706801332846236113192474355268053991411897912186827071220100177224298769601729903794173934724874428000527949370666643441886091315064058754612504581455100374410673483088645197164604677256922692332118718230836116254955521505599428850214573384303650054302252094540751559684479370218296620433791239853405507232146282636678300074368956990605408576372059627350887358186290150085856052867966827919062379655805326231068272858646540167090912842297834742664324724074187400022458732447394859401813859853339179709711543703616596577284726455694580086043783872959593510990044814345214640781275746231070548303580975444601595923550924898597683268776544448945428913334079840131576125562485020754577960832773203854279135966366375766518227939619388165706932843908502708942385462684242858068210865996795858581629906648447843605751200444694144958148617720353266271012011815447245126244593503905614052473929810661348440941894377802742551490495368206715310008745194808818614145381519796599067392040645656702159468828650918804655129639289019985140531950029839792367680836107675312640917363411097216317546719663869305120180176251977056867423423016599493571266858793533962949619342209763024923269352418383506790604879421277907083067387823615517686975611654324411015928359203523559201362368980802997237320451167321478035682894669270017246035210173561468840805232495660354815961119136754755782695040117918267086581080746387603544273972022015889390111850466287838058752202343762797678593601960832515505305968287938683709740928683922911632958440386002594169458409853776079139373196720856967024247361542786758453859766851377464821848410084441418770043737523967928507996519803986386020642819401785513478671265569066574640601873648286004526541655356947687624873389572665336446656532628136234056878964249668318485649534729243213034486611617617247398890867049836542025712626465256326143966455066349255676509358885862727013583837166949046587931742615839054856506278588712951039974097644713878620920026517706162988008704879958785335112210818220734210022717420975487078122882617343527557556254972921801227646301147215932257711866455179693544551369658679146014038513617204565112012650392787742001442108688292608796394677074998137369462795592794441179847303698704366189014326643042633371324223576835978900960004418725125319658038399597306108198940608717814875958561914859412256561395439261390579209984956245625343099396516524901965721510657180252250395719471674311514049082286445927994078651690206007633778619776293416471567983808937027031032922351549896547405601259702273085074609956040175455152364982127488638502135674561377177525010054589345412837530868167415300651583213105928056426664625937612548881999392362792359988246623867309708960680211237272460172440430108252685101323046030905433579948634532166920980695850922942016684101646104325715382910413258383270637144352659945170197569897149141193377328095474889241840272095443314421694858221028647000085115886176699401092273299853244640780285221801918057580975960148690122835336336654333791379303948109614811568826065283507989275395926094151837141490667988093181132838233251952630648465266318782735214387237007948196585236919370760455390894403780448848777652641884578566012780067480485525105226351932291815641617218978992501088387363582695300768125907032335579417930440130147869335947247342209418676663354214886812347438475436153512248114577138703261851161798255844093178635642312835800687687513545040107877774523060553218220598262861150466913399907245178779715194831107923546854671363742733583733484618745440431642122937467473075601021237163413449676965473154578809699791057586687199069662680227782264292149296690490734113285538611197817298744807614125528736458724433550976490165778234448345307508610797763531730867077859333272146739904348696107432930286415272009420935575867711107325254602474897442685996626934282443274725846301097583097339652282574943220316930508374163780370778327282634899446677669122177961710991473577012346305706572597272151065635907240412308571365965184458673611062253854387204820778753863060787993956057667201492225315607576974210429001588690622397312337189907495578972472713032677702800257949299139504790791991804170914375901563262854740753826384243727586915111649382637534320793915407048471096494371879165430225559503773007394553661386301187079731734000803992662284134708908273135211957706307816756144419348946359513068847976270155322355457092952735526533542722901919128119332256595153831176991055100520050992058490198561299855880246493286445490276547859135275924902227379036063617971794459977604748240769932004109613345654576876492297813858563189222391737946809047231122553799873867249959635573761376049874845585851403975277434914984632625557712461826508622479536278629321427436715383476903785686733006549689715052420880387574082728334081681959592744147758241232713967880690375085293919170811392942782005688857873232410228530736270305044511467057014987957946674089715585598914388593932537019443794118766574231136721805753316550373631134256318064558064033352643799215771825965664275247368565774902533926489081595895221433973928130197777888355854040518582533592799704927086274780922367853705437553991946173938992886137477767176143580381848421805429207222701547939085891025527042458370345122759432343527117255593303664180605370638562897734577413758548683801549994828180514433717050493285208223137269660671187923062284182030319042911040809007367647970983641499463174108163908451730410430218052761265554938714489844846644186218371963291170600727820916464721777578426932135043469424006891867808713483148130061948398448597685710689894004004664057860546248378208545943036785434512652022375817673183441050485319254362764428877987643751787986605285386055175615939926379527178129456681034975368084168709670867564310853004024499506928213730298363042824330324725721106927332228736087963309917412630284364942298078633553393013841494185553371285474352149684868286001517279063404182712788699553604268544440804737758424334099107539865861502558256203435528353533207934491247792466620484807117946541109827599122270895332673477078254408258803976890711382308351419391078478730266020683411115842057909300726097195635116479814433174174321980912005839047138071803009312781061030664940073006537757027130668604584498121771800906577772486400951435477524462833115280318851853595864926918163967580888599214807944506660422992309639845001345400797741013355388278253991023203932240163764343110417361170026699871733241515207445715923605960586819616335314750000865765621810972463022502923723151225099052816076575806451730320862104283670302770919402712837362929237019958097600693708838929785154201097940977195727445318827954886217980119683796954798159951922922715843850084376822797331830135213997118293425694050528831122371447130914397674807833219265261571570218014619227797847611552300196299539570737037858911389771096534508544796123994848191539777808970660281199868259992501459718647920037693034907347395531550736721240560723014432110527493377855255613979343133775925845835979556714070366967277428020558216189303777480581854510831547914913953332275015559398105149596896538817419284045325675514020953999042668098948572620993568225345535795300787380371439230526320723630098226468709038898226264924418029557520821317988864070351085666487509311299053597117265616828904636856838654902499812073159601284306222286050879578494795155181499413320313429448684650509845706277048794133769945444195207055601172772674204712132085513420479261671731228485123907165183956430629311818251995945792280267633327225769459022491926089067395148415805612234085054719028996006247274739850725848283682399855650053797078232311819879747885121152763801319974321982848308204130961396867747570176887875793462978244640812590904189965657905599733677752654550188963064007407027703846040251819488484197368507335370815798258243364341364357846748954798338547207746238606530579196129869985094216420236793960960161282210147816337957443502834348906609523500532870217453418889130137001376185201473632786439252948119516038099760844089818453659297322386489778558382959712267382203872881174154480452980383197920743441854145478249503786595022127780731110804713257935790740479398924976742080594523091018517361333079879728193505219960585433625118173448235059799319298236321259080577560728710796496296469586110949554391462845543762309431556241611492253014581577560809149134072907543963690680829628329872782484288319315248458832377778296290392362704637194589424372705300260044559481162678585633479899782218465645304896625040872656816550343369801913202482164121424156179675064711821294836342295254800114496947878311926772175586321867576236443670507640952356065756807651323026550967496636219751079288573764879942437043023407350487557397438676441518380832097632476713949089845258186124227379329348762605642481293417224640718961456897869215876741283401887591855593503643386131051060605639640534377650342593128821770668289198439281490229432703008442362507309890643890449213376812045544000786733820644816270048826964155773915019058840920192170825381511306909856061228630738326285014259274482755881542791049646891351786894892643475166537057025174612065483548759158858414796828959510691658514861372679682955494042763395526009524291948953671125909101550048424768868475944257003679418432809119101231168628781632866670689094184029233466571080456796020998789130807248537587001472169271445927343135139716723414663733010834294134760182419025351888647640931071863324423953144478331347488492329122035178738693841620241698508386500695181466083231787605513899171075738278233745562196994186140167378091750904440856804091797204811796719657231996193748525884643884461831775863272140139778515247560309135344225532994387559267393728546046548162062656316803413721513647686933834829325623441961634280464031535101392380423074419946677837337319805521987155634513336572672138878158602597304665236918914073949452829114389571262964456604830067967027360823998474750144470330797099878486601362159480610944835043398850097141694024126034987924674669026787491567772128932958848690619975703075329003212180346339694655997605686451188076797501720376999492028292943812473883419133105330453130239556828272933713652603251508265410103789072290531387086996541044700781922056022855384330657092560844335901870243329204135057712204159057458941299463853493257319869151094270549666882788755403152397006530227701739106538642661217060441567508378462265440913372126930845392000489020102526654652163364388459014297193720628429710452833308281646584883658767588696882825121340284288810763414240240488038641405869361424852145162063515938061606255699011612684723956119535619740368485350120705998946953517720694366725493715265100493253467566752783439143560732097025082935644520855577146915953914417556851330114259352593005355723680658417459122025556901222819183122347941000089127531768247162177465806243279620328229877064668451944395859929143135789446084580414185345362609715997848465548727289935251912504252290843546299308791177166691942728319844340688275361977631324619680304197932324699612379681060560824432039937671596557790135253023203299538136743686618474044125919559816416665161060479699534883957984614977456843374179190628545065653582585611598561344951671727092172560485540171085779837447950576912130472124313057002534511757989609258825011999105616151037285654008396621601506536402928112140902281972411019604838246153547024970416425128075119074941532687228019222814415968303178958388066179053681033997032330209446379204472328968348356947429299583844915274839149298908761126268537182149637533930568063407321154960379330003185321641981022039350115208520439886747866794309892371148271033438733996141337513321768953047767396471630929646890405348176592477967166427765631783150445103178130163684861294555363954318470339097218273579153242493817508948559262245253117718366263945695365336448726905908264535386394450825346105741362062244397716074355467388601809775366073235517840219312324541905952687205808716607867131559415006372071370083099185853980501737073368473001045169927167893106681024540074629769996831128145895772384160578599045376606812946743309954835432799517196156364761488344301224241669278681790526004005556472998995828533310458618191597921074082056846476778825545082265903032971697125981157496264004884774373726621709868504546634723310363606137495624139062101340505243574677410615914469289277729166197815382470820991742764165361767589879300418645087505185288837903556705617766982776129072218105792854798385133142170360194090951252455183539754590075335246752050337814328931380257838176289974243490514697484637556958888421463107927090106144518912612808936240341262297785838655526590808512138807886874772229317801342843826931703308563800433208759982646279826757166566651710319070194764828273324175666575562311894199615740482628082325430194615485030771057549501665284993173875561965618193787646503463558071376720476381723547641067947603784954559331568126421376600719312625285157838686852461443622542981834568875953207863472716447041562948716861560858501666271532233067197969682766735357893455121879741265550141548098816340358529223226668941511315385836130199315196360560766420035830208609502159488781298970020766888629861345343303018703742714316643357143239614834531641090303036697387880368011781951308635986052222716790627843147427965627627619532041661205891429114109236668877911989717949911475082239760349552930840962478750222398283995111301329204876940444729418211557520724941468519873892897411783461630756907020128000030157589655596169121835447321851913075514782227351438949048444735512050706475930996171496752900728430632093319225898391788597573268483515019193291773546729221169444029953991969220288061472996428385803757542942883809236545421481320979208013096792575637076740583099376283024337543963749933562689174037974037465166602568864622560282505343537652230629015607288875145195481152742702504515778017076129894074168554094897384632367333486928079143471844292800856975588944669908232178780383850132843140793268457185257220265395991999812321233495307021211073077358747519639782717145092770832540130154492732466162761328195485156842865482353271516920366034663401458664980505191626780619973378982739073774251139558462037096711268175921989459541550649823326161008556836734643438333409940648074991193443394205320062485039310235697882630874138960749957470073304061494689638615416649245216107210849702528776223914150350278877565467766802652928782514204793777857704663034472936207558905127730579398626584188957663095854960270872047155775054141748694973386249566933364907455348787022985311266916206219489882106376076420392122216974661245599982729330662552183913796338041255264828812999176519240998109336374218734631301377729478907301639650680361200278237221534145605028986819418197193290180837306164795800512178895321722322361691353804612149309423623757552839812889328127537526371588999448801812667877702498700172094355126780017224209696941379186799256736932624112878619144698022052809398486159703300675462067765314465000124676713697310500205866902193928793374082574865399215123946752845314573192748443273786817723885021145098722264965725432716584110706500794573557191139254488919364131681112988106738646616296239108736277686169911426811323483503387880832781065933264518764377529651778170539237371332030667102079105709248575108155547729338430020506471584187431723848418147406035123285508134209834487265441371475159584124330208610332629518305340047216541856358400147949900436988951092653942726237367539892873167216375110733347813826783252156964114576437423568978965545374256374993370377125069020707926698609785943380313627260259831051706867559935148608614194084557904609585369180015674151785320313281476291201648287257429624427726171350281885845077778033742926728019807885014819700076901093647082535933603853732874455183672987554812755528997213541568508766323826783841466345953225986349049633945993556154731166814430431292252406256254946728314099377770197139699943180390220107370524566848704063354127590188885558806319329364141222893531465979550085983874930661063141233199103629328748950269273637240020168848592199845584634073923149659650856966710226000902023837831491577484695101148390164297363885498769937088041069321138515204388146373927318799260203295003803592309529693829448902287531414207998700055114008071852801735580594966064299228268341837475080358076329351939561798263588743337137800250614719320414830290378587353841353177536242260746500493465061306323992100027459884604461102693128874061040112822463857333948549222278606751649186902245576355224990267886879790021935511128748650312977813831491229580641501993091142027006308648263829296850750413332804090573175157050369929486385102718960670109873453006162813685205222435803499745841822255222459007592427734153372646527247336796252600850582970441634346165028285588974108772650819431497043952627134731401963026411674621045120045195681738588476008079765965864913601009389920940515843264543848230505851986125524889740662753626668215603904427417663266656508859921485352320089430323603304134315366953266641812649571679781523857350606470855828667908611565450849775691215527616453806916512359090251089377785428895394696141343051587897269237896239260232569047564843928217486423018653526432229539580931066728935732354838619003701630203930121823584123662915162569498553742053363095768001457018793475474884444676596787669479769120700484810173820268787930614750628966409535103112219249604532475468861357696186866301048580799335367265199363731606814390266663609234744895863561581498372308373806893337037565427746263945938387825942673716639539563347640501404855221297464327612021018766610260910066140972247008960612239144131051229361702845919282607179597063987981985842474190542165694032660448319630260299256958570423196379160338306666521884027929385838264629020666290261857374900029985991443179250198690120410590491447704596975462510748665132177782862264978539413765970374785940652873611758264212307221717993519012832632952045476582756525002641069721302940344539592773771317660141616047199767982622921832866194968809425086544269132554759179236195750283149054597560953459508978166560438570662816978606744517693774085010120723652846600999463944551441310615065196956784158245007021559148292951241177849187492500868943954105123094257628795228088455293623525660036503797570121154426951411214181937219948612635646445377158758225643331261149589102089484357031087902265041512851676057847735565752908458717037159232799354024258815143100096143967445789108433090461880268524360779759585637773116927200937656936350697780998795727767754413523748905987635649364042747411578126018269215320543534475479437707323727091028572153135261216153674628131725886183552929324589716354515496559081314380905216295794846584383432071997897806993134641960799189551769886881287303436431318085295296666961174155569847965828297201244982639182938166422984775074713476551091310586121050386459154537525815722691396672638567031482190235050537232415884159321342245302491278716499867713289684571492821831525510972426765672182972342323111222058103204929131997324336127004193432715008822466451689763840547385591742173353240820573580039080815270525752282856114791566341192975400313375546646811203236140549225115993871731878164574191261103107867999790288392338582730585554185294818703519555110751445523645460063467539916421227233590514629998637668717235391493782456428487113561975546711325224671577000784317433862718691981552417528312988616219034352655792187508224667002311625757648409309660104775624979880081694762934456524852067645155132116491365887377160831201481958410962157943338490898177961853940357422870226096635260462881985487555886723290147474425846462882994146366737558811012400714192582174758226394622191347320370151492266364058727074483547019920510313163664217641608615835341886719025600973301292807842446915820447447003546846013194807710980359428601859633365573587697865773575246814092710978723390962525916743220162402012893315417373963863167834785442665322161042249650495283703000998318397185202077676249366957447304529885328965072965655562556870157793899788314188317426457842722768807110052381399963941395788507753583270836673220916427905305765129650690919021556496795198304892563726991532542394029642705461270943834020585801425482135279949528393394793940205085047062499282388634219736631466173452564834227677418611344197797991415068945515611954394667551773795118629843966830641849104960672197427235159024634586976008974200360383426083041067295703193068256939347645412470077862370690008669397793919660274005963117221616914892963330040912101466941652820412417564567608598335687630508655195927920205449980822359657181948102051777903676392656188634765242694384805952609732305703934958184350142592558588373118054818810584700951122862708773543182961986215255398662918635251565332917859264111895496580301161870553661586545612220958243163389612503458159580831392864629799435109192637523566986075018113167531201909551983454941762586161278534013285221150173555818016002391510591244341909145371053985774666419864842521251405046259041963949865397907424065719598942557217809520582840195852717224812768946002783658090178625844121629213214749185495887646916859627923300348888551269423875902282799855453962126030689753764367390394592685746367180992600393722925459537576588825438303569728548801793609488149739327775207972427535374316729640572990580470020942877970328977658892119331949046189613427095362222418478370751182453037920195371150320421944044297329887500897649614452170970336336514674919841815019598945955102812594273167778796578703185367685555095356356235648271300454592431429329894473483927289882253614828471201714946256397054219588170521563835839602945802960364814686419420079994437216507677810445191940804885188443799212170153591592095999274055968415208616678733610393518972479152822966079342931234179201276060787862419895722625234473592940942231285601494606090328203499767306626227535068768925843324166690162061551115221460401897356160660610626040005917691008688626133342881828187631744645626232843174035271250840094354930944511430591706617586482734263149088307177228244958764317941593303450894880236429257987420316825562457973341523045396152842087580275129190850138190494249875498043305972765414144962738406292202956535770624744267673500384658078847916044938114221886552283891909760917603932624991633153776942487100041146197510345963907404230420268173338550084562638339761422574693185063270771060890446401138365286161703663725343469296665550742177147171043099696712556009275873084492001013005259645109350542313230852140221737048453367545938927409783666824046635658288455528361702027734261429063465058763708561334204643443781352169835330593949651545587081996311545355228333520714746607743477329639531660243295106637929603584693946801430439890997672514910541710911492988871330904652779168241872125425683874684539226490540016297558903364473191063140136273360337662793151541341322635652481328634587536706761657200181772076517099017932613528483974880806727036293218857141048450934392650990705659540926410592594170682838930771421997532813155317372736058680507517342601595963203320142460324445647794065405435175187172099691526753640881777726736446596883987270033516194832497049395178535727044904955914891267533849989661496540071177619377465207025797934207169858498345081069428485680191910655731830858977779301828784797407883351123633693203421368414644645387935382278595727064160505988200783651284645344154451047425536424140804614387372881146733454568126824527144909997759432879057662921287136026865258481342004787170885748001326350618432808381348367224049232303193863394902729400248441345254682157645509722159385860356096550755766051577389234651229289431637984478132075184309917119552708428238070902074652964593031571366396981028778614683407166390032379613096243302831804147398878835374803876092094199522708016759159325420126542811058848870149234444724269726690135800115992492237559123411732455680813095131887256720504728184519249034615079276563720111613086977146785320097701058008364203125442070635843861003447754847887988926552704630299424907751702041133855693934495874101865041315695138424634147857886673535856741521946706032226895829006961554757029086654926492356138757405705086576173024168273586986858714677795254201466720828667257507110037260385725099243300953376954327328360972006158388019998180190976455088169289074116558545087820322399313309355367993170589415670286738966254212279002758336920846701807229599034348715872426300709108623703710438580772402071296080785406878431954869861528700480829618471794075778555948243969533847709653350482855742128714631126032171790183701299835599338931238327587157044168744103437691638476604199998880300900538397125589119772854142533085986773434886053709006682133902021622450254152508116510959038420767014444289399106638866594530422613151429505755617463991963682373497282605508126343226231212243701875388014299695724270218684128428365546550383810711318534390681085629440423864743527911091251861866886146681615440121274171377948314669342572083564443127509921326242508743342530893784428445863524158728199804429098904005687763427975172600304729773484368580127356843750304374603573156183596816047564539759760677174439657585196652371266426740613415726527989758446204567889788938300620092483492101002422824296057122333782880640851300964132831917029054602418906951037274184519988828894503880855410863960185218577384602958027013351440596912481912534328014271845919902235003404466434526690979130006946836006959090444153135533707690687468410766001062798368881999808458957110020569220591825493005552584924917310334282447875283218783835763282761464823771704580154902979267427352846735220506579809446402620895447471040132115221905759602299458341601702733725647863040816388784609381911597910913088617853187503259375458566662287811946678141334261120404683967754334559830296019869842580416279387302821358794539370456247519780140961436000311477126963970502252048537811520204800807428299557121994417465262360435243319251221397540555040071378790348365227774151919881981936330301137333918500545512185113876526324247893791186467374985959686710619995477099975889776633409980765979910856437767792504471510125732327178595269642503786161914146158121738697404762398708929908816953231003368614719518408257843982663626341311367517709128010333352078247875694971258071403901605463239924577335355209885287260594628295914882122991999368518231128716084921646374992364988886466659981558871090320724881015011114622499443736314634134827291723706828005367446751436578489849362865943436294840239094302439524265907352442737177540337839744711496155653381715285116513281008564265134022031621988737882916451310280639077650777232923297853429282539367249159484169693864442655491508268564480518026832852345993968424134462652893751653510511276671506907931636135337731517609162745022754573529247495779253329304954241495697373685722319642960994535399127391100681028152479518400466241168467319637249244164877522696817230899164848988585397648917900266621817018656878055506421818303254260869615022237968094704718813809754959910087417617999606975158873297887386198432115794630154781163059807557252930866777797108437380876741241382638392517484664790246098079895092640442109964647492723194571226383308800081328804245377519807805268255808765760213166596335330369276632199531756580377468202102638286761410377869246000408630868611866078316086600645210331138088793552709478371273138273647124690952786265171255664297405871867571610260549246855243329363576281762664856923519661578854262310419236599355508284648756195609661366106055059083778893319335710217884504474722549470490928041928852797805727805142594620511767680559438081228427511012728979367230372958726005835382374684816884560230768238425183941958371286277473449418462476171802288668489202344903956058785866453635324384823339062830512505492930812703480543805527224065932502070243400532519194146470212548497303662828378925407016184942750481421885742236064599391787447680998504049387061200045777992328010215200289185521252472319362594449355681184735234340510398332714773341987333856387201659870577372800270545252712973816920224131828432922301317181869319089965347776806762304414766010996718171799296625035908189562490863883589937356079396790454152804585521053926230226375361972644467711278824227156686032638343003805188051978827227024577927092479890649266702692284795557470260906967356677024285642651717990814460775041084319248518798580119636783487788848855645504064813176242293055348375192330758721541138770128126265027631925955572405260250862812134278823896410012702243684985807118774267974572000026285458343893361775769178296696311154519954131517300686084835702623026901195310993398803274562865361585813135436139231424689312325101022981916783750832304614090466360209025529346374025207421828810063557006715307022120315729479495963651145955814324887389709646237355753350814105777576441972792355256227663965128831789466682451006814824188917930313578964182366458929471824875625330273050419438179884590058623538233673446567817876888789241983706669669056191922388067705923479795007876652065124269722745942273723149189011065708514367639749419025974914827065979183378150711766975147544688303674591279912780494100872690553584179551431809669688995869194454925924113388447688364811100577437681099297651136985785436850658060213590233137736410284595643904344619701583305972159224260472535103013407431322696050038450288428256444515330063027316573619635659843240488421835423278815083294193019348624175395129978710596378373652295656167490115067277042101564070817991121213491179926586756940246406868818865621462023629101940469172454028453732825273423330597458723303388361261001074902825702715740899110529787582583714854491296402245037973312991652703378517854900780328607041160552513271785570099295698669332309963795561074187562628050617356816478089370785665072123222015174662110212722399320377295153843924855854625283248269749311592524844592600264479192067154193346959609455718264880896081036040375843353793291665518318508391119733028549723678318361943118656009318854544900773478789373356346015879125072161096029536833450677038067394209311580921811506474434378155060979888391919149459449456493652019053595837294514671382448385794855737750700627399441817466365864921818530315272758709607773553682159223872798547387686141803338099953416938943286900271132650202593690768536425422543234242793810217205552806405350543324631725988627573929315635401728923876122588311708431627637227075457343575309574775230654157483946386534635638936919470991551874527463421644449262317161001457771617688321159819643648150985112567520713874688919973715726574280108375052728111010722811598937505645098512621960895938373524595874692490309818060881212557910735718978456739420285062648577307104551276736650042834640426991284146756027047900952709213011596793633159422111828064052526042063406493734027400274728904097403069248346665819306265211196790105211075525456339191112266253477746278009232744296996241031424989772954047780368335180407012027857333028166296613639688998919523771982828092368363106914832624560642985228351075301559507228200284128337240097922405567941182581265363370896197360583593277179470468719837012278036236652855834969103378109592806246229822509926585875995900787350485923700928991685424088290472090557494302812988888623735930788604643338372964841036279475696314142823406326880479171713204604806617969500337723915532356843482267525668405954749173521094364154380360683688825506165212539620344788140766299663885112938652879500202457317198684563826711370404252329139737108884784089448298338248508628191231833256748147479996062635261347506046215315546181279118159818059823363315466900883144033186734996917292297411908778099501480761504723338135180445335934440396331429938710052159078309009819185461630757190718510111364342113074089822395102833144235311481058721972033976454642176262234861010289541693921250599057328743545034336209261070337735699148539234251225522363615332537635257757607454806436847277350465182950558023185809114328971082925225919730402891270479710554643046347377968645485334094269934448490869237383796861377581867785986669720876759850219420214033241476814956396583504852300305464990759764446943646492149926280098560963170976642020147872138067491245780779420488824187591262636148014902015991193263984208114027833151632400366990330359656368949833115007840971697083749628715885252867210796494224220348224692569600872557664685007010313627253967968926998125934646579315774130378384152076452725328897506628455006996939512889612494875624653349123954501558236174310902524513281938374532331351379538107149595054362628172945460965901931319998665522024236007380942383740817832033808901470559517520322875170236492565517022859391697082151064007338693465857759753466788533244234997948303596058155373515160750879711117046611521470618281896127623006114867536084576577258004740572165247292669020678615751984944083136834907047941790495588922751978575955666269504129330332008031536157341039530992924010496031878310942082396644173261769331197359425679724455910395022153316718996225794505572859799341983969391363349173053128859260617931475638220123778091846096161672361973573711340650565572897565830537026679522834672449762864216061594555654712400992922231019371424086722925904401652262318873792184655671690626966864106456332384659780117303488817140249187660990507640070473237296890715149566742625559963103471019369579690584971374989325372394442861338510632582415904245595628847364721328565771738945604601084213963490581672430109249024552107290909028525929042959080786292974773527982442412208186442281115360627104509138200090822182394882219000427088926373055142558010830319539626346881200737257792856537473389972216206310334942064187923786361181833395478732780016477985190089716283425830901646555918084710354735550840734265662199659781776130895271389584086445572057553282223988662635289940636422860292404061150715756764990705119677099658896678874416112155073585842507350862898419190269612011759897159707096678080883355097634819731026098145552977548922215115803612786061161918069519699677472209975964304190452368806041478988265522079743233962836582266727148012325557184211910755332552811021276781421576886153560681815802739050492818881747872577305487367452257737097719692820247204406978643438176413981058296946308516259397180685947524813529033046918122458449055143423434558684369154640857070956915845644162662910234228743443720750775971094305720162692802333120797413173448777397554036540921802335969611804968493665607508340293184588293890701420892439443012493038486556867636580884249100527193017797361622817797417065466281697032041445955991381913647278584779222751049815839742282808459631987022657496800249953910437259622533090557617797813864373131687062243417206266770081424353547629132144829197464116285095202400556058885754614424775240662062195206368626607341956738320663678839653969435350720404136766003818407245442455271082460838391517302052901566054240271377298615071650699526941457368568879806565745426752102756748255900865869268403651043061835789617277109575768442684063039578632353164572275916820092001667955402729006492702522004513137267501618188749986427909387267433723024252616296516991859645858893954758409067446160793258296412508487179575172180085336091893596961789408481221632448426719947924766929127322836459631966357650125372961380016149331796487493089784618594392510068296291937066069255481937972908165293951961000388983858470568747474493337173728117154714766415336849351147083340346630576436770161143036977006935781238719758012055030923132470689414224691294884284760099469551521946513952926660583231044804197666697118770253792870874384957021069107576174762913840485382546161622361522561179690679880098284015206833340664125258199921256251268750414765512605646591462361090398519286208366186160316956922890335269690953602936115664531567263180835833103675734087657822521439336166842374979482520332350733916015448774716558444500286873599775883877348693645558937468874818756052146241716846500310612313757207524129261246531974795732239972719680463424559498223167862636240336763396699948153840941644167328632690285278461334499319655054308523760247369940308215164457283148038496928120961052297748494248972328763340666290220732503074784578631009355895042324527715533380578280143089647546490290203190774388239125271617367000133719640988930473240621661920499533864706543892062266308115276723471304754679037586142433029699265723470352400845576205166073515353158290638468048858548407341633628280624596741617989519361324391686459719482278328149457449817029477326516144169989518382886494931763351937337825518600248491116165921249554877172463517265641824178393941265076487058856107579667463448573159434784915450539632392840041230478027809395061533530125384845866268801685837754704192921880092381295566076193913626545056035286759449890543951874390964817354200567450058646130955799280904219843897144913529580748764728140607081812866243874987238147812736825429305817288246927374295448987615476850686596672983347701970013823629520875311347404696737083272866257063386404322181173207596193297106068758676712349201643846711502002752183825443959097783227281169867378621632355929074334321517893968899509441605355242307451938107682464584962399589400930890576886534409592825100223235885147717695000601553990629281212062849717183476430341105516020855366970214107983540087060931430644636245677977008235553837482716278582226111149540807317309344939589232107989702133182999371532699720783756684746687342105165790568099076874274005610094079896055160497230759611577141740656944712374555539731676236529939628093423668614008851189771465706103615663025216817016133907746685097726911771714696419958283164259419995314760069547566615812606434366455331622662670834096077796143593462788939570507406116478936597804538369256133318972014171873597463908302877167187255690411973580410607308564471461092485335634347447651185476899180236579431806841235127162771501637828033048075487551743471751366257103117103793005892854594163907084286801825983153279650938658365165764028376528658365778088326854679658481453903007102998768924087315353714698099804503605748183335644523583913766724150999136660999383735446595863153724076077744377204086185134486765696833995885676608164984264187798193262042914496878381636257746279894991269190764005026536393807932620448451726481652688981133149696642565128546252513956494465291458406633237896556907560142629524532069320380736923071922461052146090706694790996205495289913536037112568659572299315365541107981811615784048640705075316700066294703134648429332044448972904783015088319688654223199476622018417890901747823750559319301431218700844152479379957753728992600685911688460305238128045750836845229958212888943138399671656374343092005477755664433480076177164992126212483689744293202122709488656399712741329777014934215899403049476870372548518757809015826018632265786061504702597656795763888453802278742229209113958145372367017567292692208119258002548004961799337766582806453629128692752503600372914356793882239261242434065659490297364889062843702619254241006610751605936801474756960989796946612305553433574640544392476031261128263691287987329777721087818647071289275374580051451186641416081450305914737377286162698422209738254230474294084551544871320624893009609698230676414663061220604790522755786362233519185560032937662589654708514990877331532684874730843937875415608985659966201791953133915312114923832914571822067418785859050868953810088143199975006890163730008567826273183187330884853783131568760966568990519936588205818664110446593046202778395837492764026005039351907838206683582982691470312068471517557727173588228542982041283246299822800881915960931852074424696703954820564611289449493129787661551543683077003952710448211653775625076675629502937841149700311219027750782212267599443459478089254982615595495776012984278628867489417570762559838757551687802913265209934355103328073302176572205812392101412623399379928651504277105539840932948702852039727404313758444462491963977316045422454469712003995025540162147792642056099515823774198225647659243946548001301902552097701395961989285763240072933885928125565676473226991098881592160573754256708800844216145607858409600441282781715943413568469505643567752190924387655892980477073599329325972836173374461343317779365296471834411688340684303509088887798860596694029985532201482901241419379267930435381942621329732257489458435837823750533930711038065417418085092039267621348384654192596555088123288355197280883880666368190809477688469782968445345488907046778152856350605217541153590527330620931470735706989194171469013812489231933336533732749775301515652444225934666132952908884322192932098985699536273988860431093389901465689527646962735356468458228032632159452172422903614982202033850997407520972286546024280581255164731756452057040318980105197159299680647414218411708282556324360926547686669357573449686323924277022148364617769282664694518286374625526758715841470222358871124027158871719861854651835862045547089771394367344751071780587585024252819794324849293453853263778477574848592504163617627114716766153896919049006290151314230257585414417814179379870110772926070982133587900471731191426675213249135969500537766184140146948815353961344827331918137811966006893639943147138008348091583756544499816359915995739552187052324587841694462785878385224754572607380803511802654517841796693683470439771868950582167330166269265033647472843030442186961013754436299813513585701055052387780326323218681746305118983196023458053581734012340607640748299611607772302091932324936977667142785124401512789545822518399106779814705584266900940466600352099329379426939622369611438871259961285224219441397699941307304988550190750684396601565409154792571373122596260625855253331109518493076466229468098354149647480863979175586885639224223439217548197772458369214755913943414752194462618181378027205757624445010988703300096120313907483210245465598886173963483698470767666982592342898254877641790905924442509070623895213751739807635585451990123198657155829903227082664258615123891395024968935378193426417871609171790789861390393152400141416365349706243260447216872292012767130391579121256204090568463662280832859279224400503812373235407341435503514735446906046894345070727672704802306363505747498991426487885114115718790381322616335259844218519900131430676212173464407271827875209179399885104212025640511518469446428902006651112728487638837413029443953927672983741236960638436663742642736342061580298633518171064540485939423923584722800718067122224534254556015825189128802320018696929702920283368519687918304031789226648182960461042733904949051713390469646592375628728461946823365411004147985095066329901451349449426584582838647757659449867503721443392407763306673778293342476741794149155083789048815819742059655537980986047204617752623886691395697932580834023238811640404264764272481637416897742499944527796831651732478090196769065560115085639847211830188335476710513369366032244147856968576269241415640250219595973413151019823702554334506172674968160262802818345410099990941936959847020790804674772251589215469851370794498170051507017994903479175663218538162370100796034198931648665739961425448351347648099813126408119509728430124570441405766526797559241425777656376554206704702076042614614112875005855745332299054848205423579005469882628690158693144348857676308013499900565472546201316916829099776878495584113880145025617706848822577247714561665930235533841695036756610056723124305533602759257203116779519693710845352128164646000213902379550089792590414971725328190898361806374552350851643681606090069314085351224478208915168667915748894653418197257890720770169980110588803558339181736214261571466234501993128077376084044096935211906991916287578189101919304693299437511810382533164263502776962800308745046909837632674706638840707559614373493499912267449257740930081935476491262894053350609453593094671300315462700021865498145821211876919048840525164007762750895372328965675459667078912156068766376294266146077304065282599508386246320468787982452622169304375372766434181188911857666587851618397235834467130466649805296424014119028041464814097038599338777536958200662199321469063226124817085127954002509791079464449866446356373574573595421572827112842928517540998416285274743602173807999184530091812725730833455090904120925376910104774989207123929181556984646266416039849384440128274236803304532041991176445026393508982592531014563072064201416920805913266914723681984817366779391206082113611706810931173470454566613848199194922334002796968777771804643837362785960574158346945468976808551189499118119681553011817289559205393731107974419023042697361448012865703249404808734739201451952248289868756097352281641705454737913852783746951567771135710650122454432621135079362917326308887584430343482429198534866872731816555552858871043191096095712098042063921009325033225091901056072077303259321395416279811940818069557694684637870780149882681561052435439672521020161260085404981650764922027335981502744875341148578504695921932420039266567965406179821067741547347013289623033343896253803386322730520266428265366172623712511046760256987130185678039086761673461624478419749003543850607006110712081737183700848565791828879064243662347714703562175953815182387692033662213790137999983307323957033414398394523950910209548761142367146795918760656609078843091358769361689439971349310438622402538030410999383558889250634260095327267999078049704159694034842345784240782928898148717583446362298954724588290504013224751244639145278342283091768911389659311452214779961229048572845770567562469819627963941807600520399838098278674162687385761339949569246790158280225068121355201875454451297709011336091872257440826173716375446306987070075969673769906482339221448574164761715906718674890712785743536941479917660139713834179474070777879947519654569540312062839419741485834000527890145367458459042753394756780145901553832268213116680938414368466179028012285857652186158130609600537828133787422462580976989989541038136597304335314348275941531979644773444462580366624597861150235016822652722504476124735084944183107500075955786351230143816140869602277528618612065291774844886133077210196398280434092272526771365841277622552784520600472932513739055452951804939730956220707364143362155663907209893672333071156202191851169930023114329304118356185613157007767244508445915509538007916438705069799669401192210522113080985810839780314803229751763020963528244460574386474250172343545681876497838757299232177707856055716212023716495449308703158665333338483405607377234649515726068730670204753294495483784451173419851846058164027913589324333769149668611077381156597525829601128663228875997723903509394374465904158358665725859272129781804142488271577676293775292981948096673051941678151804575749016562213198513168531856576613885154025200884331787576280885566615218075205791798036160086111275493354849086085567185375107198797178719568689230628387662026257881467034075731989794721262343180925442680182332347749231062481091926879272955169503192160272847682190493136134011870967010790434182477668629826089616078938846261414923153841432633527133457878611449469778682649222250563630837411687777424031406601173211154560852992401090977405363957068319204623126841584828417276642611132173388780748688194074924268655394293175778664984910841828616691951980021162328084456303340448460839368908721414596373290905156835861449166348221525230548848416665505722838370059081491442712367639607150942154506853972843969844854585975286027079306450355633265800830222549914885176494542917209256167937353695031749199145779175381460957256127472850607184483878079962020140136913502411241149680940487378820027491009840535318829335529056666471153623969034884754886126233866433693653326680845848117376991347201505433161102053948932983138675782728867319438294268690899095452878069525973521001213829449591910984316593385484053050991311429328716517132219196666516761677158274575437423462035890340681257690728284666510313370661757115453205721805762570047671209892394794732340525666500722600567109503738091749983804641356019457350051629136510210449583014629052388321794194983775043180389653579234211335976077196332212899892399282689479664525163888585315469785311242519267597452282521793731234533622845608799055034318876813980253077910882736296097635603065676250891899932333711614323238285197931404857816851522023912637279280609938469053902654208588653999481887900389407472103147306090716462500722658880981616665910374355843443908678957678031386873519545892110341914253598468668041704688416999792539955288066447848686362716349325347368671624544573762936975349433991123778503846359419260584461259815457267909375299617452242337314190910265204175200329696921410101725927534873833372176412179887112560460658964505953739368240410672943139662561632190552645093919125120408479665200419846389370647053308827470044406141776418542039550733041754613760785167097005694200398329056195745728730203862857724270765423782070861751340832467359829808479948639463373373271760284969443519473221790430902146132520098033762831157108182940355492476546594391217337754365014008691207186548924919308346079080298635206013270063440474024728877362564273834391513488384780811166225847256996859341195579286259652487555452377865889518914703103194354134502799492600823652308756712632800100130563512669783074265004075990743048352603265284852557303690006958572280974020177364137402259169521173320990135051126317923737823379050786647463567105070935745962592822571994969805935530668298105460153555531106347623874439119206107339592357925396585883857115224506627471846588091534694618441827798838670408367452000916717206535404393956194820435172783422631994700261528035422912050885625255616375305520633066577603560336430882686620253248709397771161930933182626442349294461926259094597813268199147406908322487948552088842545436420534842461211640703719938082951267005593079608385435599000099035094037305997882579213484462888511385399025516777229657834428159203319886445572242125039763928882095960895496421742070827876410183769572542300063087371876882157546152967773409446251403188829562700145043309489319689144660252412681029598476535657756260996398830710991953387925771702135440412647426908870685884311855715760311366460281626749789996169865393207655629010912910199809634111502763049117303060450773610767363123340158363438702673057966351082377444855287342991176747422001509752993040186443326620297970807047250921904130152562747260657374187934230888585092311881856951217038956145140694931893045527348976047491447878549331087671909485840863638520255288068193038218453919817304149205943374176588814449398497592921001066401044662442430286038967423639532249131118287351562256639530242269717621737746596432828054553778827797869149001642130599595782740427448847361818660629232658148196052385069091141281199533673470792194840529504117015748232985755635427219710976582879545819001881975200284659876544835359059849898101716319236259868729340927831433307073965995581840824127106216447068321782779135495683166441935642343821016266658683388547536899121964635108292907059035818745596405084277397244126927326105599402997059804704194969636851607332646540770019494934297242521323661307894370115382091150580428745376571452284435225799318192495729323332492301214334107328092050199922663899651834532073467130239560504618936319762972757394993282032656368880288510882055606557318099236154145165195444381259210539755116824177334270348198317347778850044890902347162358844174554748723863947926612626224309449823840637582413681443802821877172718751944286791666708832999399210144129051649725080726640755891237010818953075053590896571691273405869780482188248348594943826643708837728506195212892924998242871294041678909720690871046200882737756981589786093780072150269733846674062019699082805442362855533818540901430216901140166755629878694332156645868786538070266143813992848944473914192419201850353470026748720768619955219124860317092725978707357780999452254462100933654518902974918034984966561687043266004950967467154413268454134809967822429736360899847398324497467797524611772302531408617068083380360653339442312346891031621870185947010345619018786370654602512882651226912990873941045906983825698625665538836000126039914170909784237526698081125261801443786510694744750523380809513691276581819659324124634313298355356139724428002711261186005182027076162647621245100015950020199715179172661115822298272596620533741100857835946579077364878721876194958902049305402635118216342784703436765178524574372929016720096805581984567371933723367349220485472128563511334078886405624137205377666627977609825239996957828025462805041169156433880223380311877084172386893677550025532000775052103877611709401471393474838665903582590700036226653569830675175096457080604773792661188820364844844175582086848551191602221186333134606364788144405897084998467162700569290487457611672730498584203212328151165433110013646743010525992277118965146601880881602036999266445467259338336464851294698054434107743434355844196941919364479091422393595867138441764514081507500911474106349173207624934730494040365048944666663804487643652171229275143431265970728124645796647671707706892180207391696219366798221827488216119085423453982966619045064328243291027142739766583888587494341773916905709634144098284492839036070112612137402685669849832370643107082662705758803481589720126670317049292848885825639809849345492865553807588462882502390248786064073583647457551695358145128334922688440701028812270393663153361118709445557606807848886792401297442386213699216193130270071162803376389012520693713067733652805637126675135745768428769127051097982836722047710888287051873548266253485078967501174683768109152172035642163027560745403946879747193585690915736535774323300611167481632592976441862633409103757444314360746261801915794287732816964366363948615615160356445258470497586764643997894019691858416136159665942763366727767796666223679732118258963077710499438014640840572229984070221189575608693540826363962446555200502312774809086190793889678281919393851458718579990132415154567414417311917043641012091186374792178537700491156987360253734034939027208726402105777813877477229497045050468144492353763019796233463177677331931791535331381834418673003094488134562209175516699418885732561575689061387031337118968039240502582020501555720620818632847398922806770561343049309588626311110016703427024197510502474107950953424327215446162814065364983053237754847991195617961075014417146242465126360396894155595681905162243923585001021682537345998473856861855281441284419309822877541674756725939639605094136030747096106422907793570983356705893485699235074550317763526214559501941937026287330570918133655122970225601430201608583926730505746674832125233035542256561469546332652902896204530157166825764959262249786071973106464921252127290950748807349206199533689948317040462405781417727339010319158712435019316927512902265820831022116850057286756550073631122594748760911417570164809857142503005222064406087082679197832114066721513375752095115374377264441791393060235845526677988385259284786281348912309133306881000355766041259595491009196310058281438552198128859341774749485902477220906236219079082125417384650361731199037797835069461798524372857105906434439814109254006618988562981835569871571741187391740103657949686340702751655862505812373072475038655673476094559351570299386938443854068876737877077866912636425572379598244299583689527607825144565930547511666114420771687593735743748449170463483678842850577946913090070689296930279127585720434136336749912359830414005559377355945212377904949874848656467380484564061016839442124379406306616801742367586286762646490359488294011812161090721904410079131232367232458527528013890191386980688534534671104227730505054580432802446665090819400559833134574065579349393545779945701988832578601484407434408053816445057759225392684667946229549629972394584394450176504351741243625624320528224122313709165131910013481926918389558186023130872475753285630845424307983220153077345786435219452075413039732887660457218039523113119384952868634618001595603210736150865099369675864467059383997502993306570960789609856467077444422835719751237647807964220026726051295701122917745145812778823892851680921148039250400862901826027304067419201050983195961080069717814419787747758972717360695589259846537403835421638463243918546071342503244493256716868640125437938100494543840084529458675655560784183873902355500611108734935337435462607805139963144127724674007229478267429663745566294587402265722432821977807837897316447237938362097940705327350838224110849328876117762257347338447739579279726941936658032889887672575019821406383140017802372125050089296340101798154353746227513641938060182883846644516116858609068584408649980975960097196024674313365831091187187255202260804508584580670788244757998632755573652809041893749918677381463494507394334452868193136564057963198323247850008976398048869773780427836752134729113659249658712812132158169733987133112675045410810162435171888553757861903192251278821811244591652219238083990603809495626799536845231104161889839617885745086957724312141215192897206838604058925711708961395371326933965595904378108997062710099826663739353011456618523815359395647484332057077742231180316905958115631755813791823027305053689828136602463003037735952615871273416079124296344000163247090361850274962468557707747417647027029031089090360137642351734771727491656870075949678445742425477696501311745761431119693831722610950026643828234966195706493670525985701703741868871275387181943456600473777862502757753997503379506130273731656922561833508855607503817704102305798962778585233421488189848471829617731732733451098956346247564944716018889780736263943252051593766813114345093669873534819808223643580131925842620920177004800750998036389589558544569038052143481058006525452256881357883406529561121711908739615516241435912481248241863240581429203016994356126263674841628797093234194752740134236692011297293578589310427364338657691615085493873357236767491793366932098056366772943177756894775884210365278591453544211058452998222009748022130543903279200086583066225144720136624642102341823440291693078939634731759740336622803422940843788722662365926740011828608778102360710085461129646696028037282651330520694998952395711335262139184687312659319525916341516556361519147431357375527940399760909995924220452588489845899456168811458340519409673648474912843727708533187898119673177382481773454148279269402292502807511731844939140328097566302824562584086629324812427303230988807170278607656937641890991667579409151993065299589818508895900129347580063376841565064173251435346255903464717642067985509274602773292417199176338934889224079561962243980793024439906678898728581940093925517919314150803953309590820277912881768224940643544389142804225974556021644325325135682392485055317243234342139615130076829419493629995467394873470931363230049544394525912417979721219659263405528156131790144449074657416224673233667307882644375532034168917875668546314304065539768190476913978336892083081255118781476490440531262946747993571901750313396283241333689332358621689424614577949904184107675682267728489047617125898527772100855337195708849541637700070071918979514882856114904680397387523972942709178400452205196080511066240030697122161330076798718495217738990488510173298544746972941949876065224751726632874605819500607858337669619750507688293835370342548374842571060520558655172692337422768237662240104108937839465648024694694660994557976383480222629856834638704582540974814768339386710614801368312758461626318197106418853824438116237389858150566417718293912283539471349871774164130646545746526812248965752665101066425316645118097732050610662356722866450781243373313873878317349233395390004997001505808527858260109125694624803044622013081781024715011701580120914603078440318775858616573409454917271852900464153937608737193444557028072921503504951028124222462029247603608063957376979593783943828038076099531745204691724195233427365342676293637380048280185661441016170427669509283091268783686306934790889237962008773124303447439537402587236570132707360794597382674179703255368323579707088103451010150459816306930679251144008842733656718157915214277423891557133778368689772845426858355846232225565771711846738797596660957410673661220677996632051393465724248169598862896733719796487481474231620926138815952885526295544353787919577790229769936046613579426681988726994076646819788164438841304361593232144322243741439355114959558312308419989656431839952860991752191246843714227278557079401688597403336040916685442942159765073647949615053614832383092957853088417009342587441628339680461647087562249994210139511573339716273726990265212400383503319515205238575289742682098406087577687722795710522606493961162983577916456770308131624494558664604892142450185385889621499437038398278047373471522446235751424828387047056393636992322172605543189725620659089172508060213725259057564293019820322403230840288052490717173881227900612966339338401033581530672971050077870283023152449363690384453494701574534437886940490219871444800768095331690994006105041065273778570036820100131235950895351730072328062251681143723717691854804132032640535195380573804177364346360542705649250451973886581589698411817198312750155248241508529509693795764082765359326799585334702345809255097843657561929887000128969882471904396379711296168902421118359639622773419743338642758517839867454536223777948734173968733214276808691843344090875220890694334983176420479000419591905889583316197626002907892270760890860287237772323708526359945860040322500576570325422573719383440691945623992119610076949654527997864462620410932659550247773352755878019404290893629727338006247609543559207297588634401616252126888141842686060273553996128459278345365969286415531658436618795993255096463663773494454132789157763380545846876046975748336623341498831663492001945251829199595668234185054159663440911927191400175510837988481496435022012291439231988299743444251971157582611872901558677328715884591763281151797468403925628125870583483179495574363458375702515770944980574592100034198026911385664891853513361596170686294773227970992328981799312142488453261656404523101397338564940995998062876147542474938951399526182856701847522761760932786809575148242015286770626286215377560376632755751991198803716632116747268613507996942515096510621414034768226783244131309911060719485983497180006363256802123634269252878053018201869116274395670887841426439037174849164343480833058799779489151647320240746117912142416883013131072466701656216193385895723943418606323131296715790925748726169790925567680364724650193666489386717265367260562838673262544041052234773928687968572242489197365768725140255769811355821399863859916976633822394488997308690628200629812427471444496239460547773595364095380036966389618439348129065984538707613988419516041904106179991860937484678731610020924772964288143221732833724159753376578434165228001757993047516357850434809313682929643987260699890866066607722851556630514330583549191671769877143165543032108054729627134801385115947169528993017275591687206658909884688737498145542949653519172414550609281623579924318925127029748423692146267463429401861293730429800912659308197032794945206378603479398066832520239021220401158084899991678132707029789828009757015144471315884785410784226657405502403617012296233005945926653808612578838892978309404698532999243531113454833260751834937790624685387325165280307322525670406266759621589276941175813136706563303296622187600612871556001673095340629387202672729817818537264716128356742141107162293075683993672105405150874466582938743096586627378507009104618485470980396675806483149597312239297359700321968446877015037902167612296483290098405631092178339893380311789088008707828211060206156591025138359721253088707544378503021200829559755578441255197565752582201267759347809467503593738423843742108063627361977921401181603808199601495545097433643393186704387616670102636142577095752555866663885065648420008917691879196189380305375055036561592875269128417054559010430171341421326488157633219861391112430520065661796188926526934611172734796336949553859108907276518949913627391938056147198808542932446903438053197087897928406539870753695652934934250541772481285277389361777995641535274544345431299955526637602139293939015634150117701052777363758614118383414092372952507555089958072102789399454102623367595052400059457233298373665048186549783079500488798273709476894007363386018818424773865557786100153196588701008048302974333842135716682925626923483285141195516262133288629023907113613116139881825495123543897256839350429103575534831620398465110699979236949499922936223380063728806964358177195050703936925756105431129177406850627460143133801671985952395460070416312475102348806883790976533764548083212883026441681655268156778067715575633403032912917823653621122061590695010660657539573808357430795052901933176740360745329314778763580230798366182696853289066645271432780155773076826396532470017253851550151227771026043910189554965731161089212269864516406952727404182707838474478777448900841858178766986055570705215286377767183233581482687565425457373642183981481628093313183502081438960438039581171935702389697806665589485090547109260925976324592508259461430339971474872802118311024100208822132052548377133094429781284140381219453570887880908312055120641248779958718050128708266368728669823337319638451754416306589921300577624769602924607655137601672287798438999897879237923636962013838160128476937306080411165039789497929500831594154823088777887326042527840472283609830050105383413234165263277185860597868104911776157165345323993302456898646401782914027151490199277002488604263829345276473854130698844019758408954311801603913742085489016410880033017405443536678359402570861926516053966432700031360629265703788674951412097367298584810548619059609969622083247739542077956166027369411934568924543181593063722106963868125215276932507451868156860516871049730492483949628520080891877743884399105568272293808658589942408609225334278592707042108317078816137537728040035381461581150880803746549781339711493919083092429796586553735098067282888471649691510866211952522240566961521104378321432359614997793397644887009479220711440250711274736005761085328552004647486435228216909882649711012373549789635277963779701128190681198508784288539901078697459877212300134696781362274488644523630479264921236573131218184304834333289089423654863596159943133352264709055926142735216556571270960781291826682222065100813430712604319487612480943530160012079457041813849285413583104043995112661539913426616967690996806448216615370930661178554494045058205238704647853529239252533097559846129594136453288241368118133767564735080036091729135751788023064402475425705905071167048168433234820712866839167623024678887117573907340970427568460764535201991607698047416405904293024892389684038846506914014218629922481862597143229099075790639721199342972301918838944370405893239070484972734954076388946868322233676386715632106787884701189840217003557770913645626348815056310882176622053862961985620340430596914726997544065387335277350588308340617588222243709556988269276275135186586458470601409957902466461353315148204125084736598390102647108196490043326183167694622155038983025186279232133438842328982450431798577686736102697624558391621618349937447076139253054088843888744015976996394907953762811731033290671863893979632912759911996741607316875223192147469000011759722235296257450684472006841131442653222584222855900826738261159225776446000348146625716894522783630025667990332601691020774349253692186817934128176041934054681182885004524866947228459272794506528438151580835563344868112006618901669182071924324707389727500758601133456692457737578640790156231649376927879398040026384488770434954475754292740770284198035109374324264092444999395130600206436533739605439439117722873141724016603989869410212530266509530210993688469307458165164649771106467123162135725895684755198838095383769473567731018053525655711657171909052498270156023220239536341409045367559659915603339138282053060880565743719900588921838210547122826738538470107364495358592054030244539978512568144148361993086679242204219317484369662939590302048698861313482277455341360387128899968519915969331006823005492671606524362932650398233153409504108956653166073564761887559281118824533312764068035540187106302724103001461142987535289506235759192845941715381769629129843421769221587269597902351820996201773539468940357538476029882056309122242640893938175447428674207165185591098392371479122551942933861500180927408985903971239706315319528729175847059756990977956713869717736556332480389778119172667521786235396770560642674988145155744910091568033801804833584452750963775510530714152896341895022621799269351370502664925147872481414219478269498941526762595791175275695643714759824077509566977050527347224056915019549080453722867056695711825266765886143496222917843482623538298970091135080762489443711379366897214212050533720763502378664902186438129229425080579751978407474425586333504329060995263252232694652325729715205020075787777963425509422847779968971165943391824384942401507634201818860572149760593856259867862382876087436300566554638019510635828912844689430872639474318020954646765207387163377060956941400026226327924227045847619355322615103799580282311536966948400025275657852919894484364579783127972911596210634236819918754114737733431130243891615015998284293141212586102085726652306867499790558449294848285381599014829417653441613179957886444716829040368263472606142821551815115114326647166196992894342598188572739820611288608447289005668660011278409463986183377506097987753087133974226924548835987696746425519054854066375097081581524421389971017218656176661723160661871234433256488556684389967342820749412369048560807733211653597041571419923548555007039804029085412344799219338769452932004839519428426664541095166484086950606071687110976091406670072966506117262833744133505697601417038163774625803732523829840667509981223194810026200374593883382001194391245862407935709997594904162212300331273267298889915278310856191314951764847471203628244076114743137495591758503784919629721998477430304647109615389328029836036025036418752837851129329728214299090436021925103618867639995283725080776289901684883983933744657678415576643764153558630850600046957034143446583068420487536618206555161244890974810346832817118921602106812718503221993428367915027046280192913846493727187420286006314912219529913161216689456965493428264071102393336099764726742301502584848421043208598979323105884732033463879098912888334696867453137452918182560284155668329610803224196084077010596550171079350562524849820112228877423756115728354356473786010323501787484524953621317987376615252857006816434949827917557385448688149481005561767082175667293725069004798224143553253073619157982721197514089144158597364968871953263757259918380644059409217962382332489798007008688916070012040255117957939111035174501849303173473207312426890066193906909152866533475609499053808561943881448201814228926237260440328729166432636853730568527712941360381208091127922605781502082075747691057568275229944603116312534457525103679666430633443834776690106443330602184643745670562552976939903155771071090651797071053471636322697188532976097742022155360623291076617642080810961282587284471422141752283862608852381521256958894734524035417439705758982075005002684467126611242603599406209809451107364764249991009754444168737459515559583039072696560696963016721717627050275744619124291297435418455885010186493292999762170726842827803155735882077350874219014538722536917994586715290777243756799012706697449594385914823912062268305084111612672323509196637637785979889405133383694812255071263733084509523181926219405900336821821692752090371367369318239381518686328313929905313092479708723251002934454925622084797672305365500939572242998450370162828018079395075648780727553103901835510024792845326844552060217933857188387488685937662984207334123110478167928661260259592481645946981543189100254360031398764590379983448603876341327232020189933513629286090238249590983498023644354598852705483848773123339775076943868266755875614654607025152153810078734354143867113703624516339582069374076924783767361960003688101264203595904936987313432246893376190736524491990609572292043731155753238473003246067255938921654318268915975322788824558018324105720346715631214690120529166774052543518416215064940828247443307433309198470931570628973180848270956316285272474146241724953278831339249701004306735216830070965039733342679895901426993812462115382765221475388947530249568526046262227705495450738227539687119039919171463266595167903654913596556378510285152623798550325290100340482896019957433123589677846694248371223483898751093380566123363072603144860696371284567429912125333065518808597793042648721245499229689243530894856540947684949548181182301491846666550069476807244218854249889369403791201262087182369899513596366592675880627659694497091855157019226199765066090462993673727315709823439685964998889881286511266817928541405380041782454438356979188679627417849057907454033546283301641261317346879373424055408796369524058312201554029889494923815832119178349320811411076424819514184599065628554044057358337837187613625004444162510814533541353334918474030523794474191736846644689618635913051065580994633868771519738153228451409868740248945139844203296430640149406381249702373966153210588615010161656016985398540337916621833120819944515995330975977381801265398713271925251428823796292092511931675363790135105004105435249765102110043988040058740035166677984389869277770741258842202451835107949084895966091222590333850528934426348891421464198608888391697595199552175104472659352184922805449236826895466518799333651819230023161933878307951202439357526781368329967871919090983180716753242028522950232519924505609281048018890492298545281337141424023879954345482477719481363331067482879125582477091598173181465277834259669335731928121575221924176826794075376910431098360144329155071088779487999980468687126547014697544460633197273553522395227991981219168840260033312463060588325696501542161807262987966136822421058654768314813383382434903801137047534866805964178154552986950847102612960110088560273826426498564515559883598212811102603393586587744744115000184345815439737662099023629345272520558893997114284321286252737878960110507942811574942092173989641589855212372506463173247693457071766383331166626827269589944849540893181751410802117477698842379932864433310290370752244894316548795246151979974310582923673976994119702454601154908876538554221829541992559721950110559903596966857043172107683218133223119728428241402845723388711136497855692578619361807902119406228628242112102479164338615930890118697672231266957605731014000433713248224408310464876252525087171465489723832301708760632363635714786058915195070805010785836065032356182906822731709815342265139689847288705496356927508066624802512486397817755443628183626098052656845045065170765161815042359703554448260366475375514977774552829746072233030769934879245825805923094872787427980625715242387567519201879963472987333670496769658851835765095596722097197468015052301358719125349682579018055985612878909968097101920935861009130508162304675410480962917299778825703687183622930243828954959910012323173233091407010961440772447782377973229211784449287462332712186294009267788338668040487991785056577916755842108521067041087228493724159862848443330425002804913491480604350215124172883479770803845707528740094055775040892191868225911529446449235176732915978293223890964847695220613871119122401339244178837271229883443763710359803160878932754426911287922220801042338395897962836626787143671512439353905355391631980586173844492562642008598357599495830394108635568508145157096814466122258584641989675004683423889751538545751259498198934219454303919015640309465167907508857864125708921942881044150989794456494927870267373514036231759280884331176004399084867057855554596671706866652363325575502085142371183993455269357840312063969973652787440407010332016057988144569940494293803021001734278494535273934862886788730223500934667308998777980116329481341990506101994365573947057567049774200662064274508705230107398038030710932966215322410145870969941085384825666274965686626532544516420222923040197146914244318962399135435917698223567437347154358268963601697330750922758725068290623743209555444969217684223235526079546435879656695137059944507528994166851164229481632587036971531332417107622083949657210331164488309972258723294605099737222959369935572960050106832790511759268484020600480876088145522044803814476599190764706551788681628327998667461566243149876458868797260994776537479978575177452469856391656171503110539564457588974891625257897380918214484174464047096245365837732920563949143450429045675959726390671965850773375465484049415778292349843655043348171618435506711038802615934714117690158804437694607897390753752825218083369674388531668120652099951022104257207546303551369276506815066068953313468863842288643966014615213017025854688855720575632532105436847818457480513544700743843878275870579479996349768664902231004219491901135900108523433515383525323347393469388598733686351782125640991115031427337615898045956973363144516429960705667914723266921958374813778443047365055494388406543421112833040164376731163098162875272647376040809260594463413870365957437733098927202706291620535160072674674479120283849556127238603459636476770922505485959210172630671208229078152843701692983709505964568794622822682319993539272824979980973823926602808381875917767638868470771545164012661748164704363966393143176934299261888208658606369180441821514524775172145104061378276823393895161164663558715848811455668433889809870706944476239301714684053528165135693137524271167457789880830171275522100784162494983312666524556827042568537655370839901304127038520501543005364133912040919581991010789247052713025057815504403031126774440932812990934135974400273701101625413024618157535133038173509739771691096572981777834649358380911185171832847998273109596280057696948690249698708973125349620174793242556761860417700912993958264632998049488440620246403753266355811217852605142189405749280938768457960314191392982973213216659810978723007922690660039924642084720623795645974462463435499212334112904979622357044010025399625428885066845288145843617546921064405451844004514061864970129510442822785242223866332642600433285339689077994965637248082247265607517172342319356889434285288973583158963899210937570933780285525024769850076676144860706033633130876710822733300944491005482622113457767032919473824534312817522086986147816989156682164083310975222422788835314679906118941708999063805254164612333520839870356301780805788564893811825167690679769401992491643894403928916747527575768331424643042575698408547350253291199443525478393923765342202885482163981538540286482718064009417359038953110523962792568889999489174292146878535117521781366274286178244209056961664397881927846958582726320704186047450867636857674994858981332131353393870878562495102508229670816016710509814759375188552947187526234536901047387414436300052398326957949367874095053371480851918870853308121794652199751338002335964591648904869076656728306392404276345000662076252275222139674338076135722555838012300739478114557663546878700262099120873456718113732038910394045778422352170441691960917465328743522929763302872998163791819358310782226687095078746259491352534826030540562467899584831241669465409372679572124355680421135935238830571829079749041910050286926951841495816031400557683675722451408806406617796831273377499813853423726089765881556573302987683677340262369286134782091879688026565863352703406079183444772385942405084779388774363910166774042951061564810761763140988124734158284413113834756215953571881186848245127225247198679191595453411386311922819579876978325352629795794398950503098815186869387057176132814814750891103453633789860049977541669821524769110996725754259037110597506145600363184773504212569421972800059672688103714682758746463068754958717252382822854062111315640898024383177853708853521506850413359413099736572056007846801654018733384057429988498182512822799390269674790886561434198806923857818392056344269205866686832408611471059378540218447522932727093372978694944208526292174069138883957122432659962511150214949467571991554202902830593481331173794133021748524315830841177260380517761981626521959625543029116126272097875994364734164728436157815852158818975898626947697379567173990655852859491311585761844552187602749802549198029724226783041324592746268982254116431056057470128051531248691917584955304099831192288744892052560767299207246441026585606447154377977320043943626336262707748981944117010405953763122085324745121891453955412784252432079754057165316391664557871654696002890389125425495705825677487968809166456123120915884202896634282522816883593079981047184295198655032733290636766403099805385835779238822473636666311837750419864085240046852815495351270736087338699138936198402250746744712975360363415075962728079327690287327655363441648881806002505917442129710139297384021473836653595898801621880105288277906058488905688762323636322066545121614446786737752250510108892626259453733803628236975890645827371557974532486528816462452518231030428764535191821783390927808046749733427740652349998922397688931860975378777557213034691943222523726897896163387322103450029597886361352086203107051561006311077754315164547120532326613188899285864787302620911004360766448225436722238657131697694851421456995102220108498023100190535443122596200178830608694021581774420971754656348820014518878574932557606213751283972587307541521000193780050952111575179301776109485898830464384555408865923051244834650422948349437719303828101815439854711841919509534478070952090916937683749245249364819732277759431828546802460077356760959049581826484316079239067975810474626283074280254916409619962914024415379015835399125820540947565259270507668071255045711404925875754209207286281263649615335203475650208964957570096446160756896981907273195860549483076410786957268790928003329443882403177931263540524239953706302631342660844390108624840943125169889468978479068936109235578628964196033508144993721403962203461472257743919677324633010839111653257257981149410413976871236165171697268813542895322301120621881715521915580744532502797241856563146263878374095577553630844152847916938585870440281271661321997952540715599939315509739634969235966924923640669442188598500813080412829699038579994081593266141275211464846734567033907059251812824413912473475552540755116631304430733585276155218172303345977087882381587239753692079488879625585252200873768689464442904915169834670807726936472484278692825928633086137812948597308404209065043911093990419849516845378739239526190410715677045989293640902601566005513578397615400395986133795541942757192576842006501911712216070093487785898039562500298285144367334909729174213623520527317497767103742592668543424558473945432085432557812192314502665312982962890215782460450246934917702583136824544626952705759288606621038009971622143981226768483295269063711374411758131381729655061150033293543725020913982139379748135906784860108459442256237470242481593368876930706561072750922580999681734805642212971167134814365560037442187679462853337500973078380503663837631690936028075869886726195981521794628867490820721276213188741308053836233728848989435769635876756248789845072533412704366733374985319342772205615987775699541732733409442777608845421597135654853548874405889019073270870117523833069570142628454702812356277702827010458052361048194342205527444133575888823777277337312529625838689521339129199974386622478259451306473015679677007755752523560990538866233498463947991510663968372485109134030913424271596775384299831066546759944602825624274344102561721017292060332677151917018177980644813227655544626138385400635166018762206511126141788133075927671778790919517125381904805836425770276782312324272368253918640444909525660955708195565458309436647454749198233347965716534485775945483925913770274632180352701881604172336998002231218000156675479572133875067020445496546934338239884936342249315058536475262607683490830428852619041214654919913743270650796127686879934354115664861670390093512503665949371419131555779925496968452764728298581095704343340690155128054837041072161762033424626277219107956093782398636012724682146828975289677689891573670229795179778677205494693970639150977788488925742169544844025313744909989205823952189094843646519243976892113650977367609837177238569507220106373346544244787165325167682153784643120610067367986730646151001124458943358972474315718891210449074927421449899180784517859749650744938498950366813950453361032063140758348542296634649714477073884242938636196573197328723260661610879573832328857084167605211161019256688210196003085047494274565050238437895263494888454720487027537101579929466224672661059923287257977633695357051722699454275861013758997222834462215345034181340436868183460252163819946681606290923602730209094830521949298294745166460775610201116845040789876569128046733163159374474766729220966143318296167692648917918502537897501779227345663592383002654528044202771392194736873175557821812228331573614462666579807339005924333330604546413754869568125047103346388149009043109302566699088621918347326661044116927178838384557872330020243798599713531532273750196966376440580941642766913742483234405622253177623485334012002052675005729773232322764673943060017584004634116909912769976702556140497845186043111469897581966515139281624355141990303422266882637665045624015631536648800880880914471437991742991088521982549060671825813868606891005630138182916329171638497974942630744661459444665170337345252883264523617457333052149777566040062323334155593838312040162218876627607706399315424850089165655593160506021507751748334735209711899765905080063975146914923678839047581204819469120755932540831943926415080281998663116892047983138074025331690526487094227428211506579611386510806928854238622284116952900043344007338548265004196742992648315811805105884594075330547935913000137530601901430190607586471480711420538975772205622875822500351065649328468064679062851609746889923350535807282431189670961032560208104163066280641886635001244050171454951959286179972048891568143609270655106425461977177577802549506219719732929685321541706748834329239396888873226859134236992526867948923679249713710361182238590759566235714331553819119479413296170477298745349706633262187090351990918929408125476172330759383413343017313569565266990880128193923441774708180381381769752741928860665239829455062698365835552256470825305059313966167913450197082731432111732980492982659666009488280220065371661065774746381025023984195972768021964050867218126959199280127682469994336286939128409920353589113440297889987283318659398233525342585433624866252907120076802754170654977647537641185531688002423371035739620507408560994586641087747612017810139061581765568893708509482131695593810373184395073837913668075360349618012450567213056550196111886006484577907257397152316652167922477843468425627305044253388959470997648516301709493999109463794618584290840169764946394254121765719332410676411872704786606915299923030126642656651202023139220921876316409259594569700488099706405314351026388382152724180626580202153368284151930355106183339513867578179183132447396951167265743216702461142940693578817574207999518651453809307692277546401876079007887893278254125572167772575998575429681946462069918251212548827397362829566795033046529714517877509905321747479466955336230110781255230928684828755208835532938858501938631171769522644196330041918695104917671037264060687186438141693494986332446890300034717485709093505309454832647420841540164613001007772129224574694385237757534330873470067687455250322704276172682588931140406464594200117040338186079499029084811615733791040285594718124095398618075251915764148095814912014343065292997126225886568524627122966232898373038129315450974804983519825840862353521064674039540787375491766894082267704313968930921733062961949227574149998885647819259072895931132396491170981823504094160031840224730014728627313870338860541820381558780432083678126717714169133432974080675011942372939900260556768595425712893503991530140932013290672027736171429092984635390727280095610607882702894449122611477992102226608638707182789890043633269688378457036486235064923409769619129241715950499452228003161838635971682638278455559757651246075633520083261946514894471064544430019897115309754237030098915729522317130499701089992159007282798161844034055348736333844780026564349444000434835428152499162695801964890270364780200545805333331768475882826074187283722584182270532569116562612001577779999856699406647702224004642150466957174412823761265103085547786327380955412234676202418413042492809437068253407039402653436938561641911839195105525881201631833570673617325553083033180204508675393246130592075692466777694386258041266789321453190834875362179485248056344422830727553236221890584750300999900209401468596776671180473223452912723530210548456118023197862391432562156901562160406162871397902524602157293865197338666119364021485298237244500341624378352200109941276605755102042638402870983832274211449062802273061453781495169421344072815025503136081707281457530120536195863245721620599759927653395781730224318612286351214945444907379633021675440292570285219454548665963921497038558612674330815919854013754935496265465042879935468445583071955504081270231312516764233154464005108153624807086291698695387204716222422574818500856978714613054960577193650388812621611169757216951560874704559737687867968119227789525533342391185677527147742108924874074457873481715121959873375868519666777326797088753963605950917382372651081170157583279155364191684788812945604446255768161711941857886956392101858818330362512787648407179898988368794157163912303256007891647465328576100131860378069725199217373263607937936022146779300957692112548144134639680679800361365459207595403436422219898205645396218069852580861584456941826525664238771242451221674147212722002205182153765745782950998246005127219855761395125098292085261432875126640358350753467759330314437179040643436825400598784469304344350446776779744330847113271761372295792804819427773976251580203470692084985411889609094537119552002784663283879581930691210936808165849842477889960223406563808261547594346816750176630649610817192503482782311758358865541194380981097376386111736249539137273886652936557803880820081597492211984522425397676932943052829883117627389027120899187005471374125922378687376052368010820400963061028606936922186329223334498534422863539417232077781827857658223461706318542611655807583062094210018866896904418710907952757547322534182371095951814411458023257314959611612358575525813070113072077016737523225910779986100370789215188099256091236556679021572395692864615302556159427700298947713031696392349158964352648562658970493662731815110053919290580605083680053976134304187543250790032508153247387209145500422167781923871158183827698984616765250652115901029303749735572420909972695634299283252585917366615487628720860480839030045372376802641160327787622812554711235656651348995967872873794116032998429661072225495396678797150693533682901786109493206313915193983174254246995905913607424130380592333671728660261026265611812001497899293543538353974345806186209591651334997758953043958623229994377594534796841433520002787286363420935857300002785778318142966971362558098217078807949335361664738143093647659032294641135413094186536687803774935568858796343511518619028536862744750499885018054066842896067390558840409463271837694560247555159077432625538563973550497886631982200084542068390558762169890959381566069175831952856576596221195733357930289635307723279454348036842382776597550220753962933533125370985221346878646720605887074903528653942739154980672665628845498707837841422179301461126431726514235313366825440838275033095286311774924815734503713571293341666268129069711618854731631560935281973993212613732884108084119196344158611551718188672230969170259644682524429131246119300260075634263681210589993312371117671721064246505252805096334234115853874307791500122272805765356550230624192752945826124626144041066250059545861363486676291390187164338960794809117208425817228154446598526656823422478909377421673079664371976352566223021849429035839878212863991313543125222711771187345784905319692574466055885820361630294724176779924164906223795209553531208609937149894116563759484127318333748637078792553478201128290231272360939348983172779878316261752064090458715011916925582110569327023913055207085245113502595572340323619898156572516590147256258902218122594589866443962173538724044809265962184126783354530069207329075062907841747872945323368676737347254777784513516834424481104099494338874626659860467462708291802171005022101057921800336792663447595926638661507166268522034798446121867613864500009549324249343035291545890531771063326621141343063262914067275411507012163847680459488213909453659242667828531665887601239002959963078060609112141426672475131346530516463373590069241991458497152515387263708832013636382426872780807151959812842771375927494445219505508289415475881108267906122950346949304358611348170765428704906226000554541149813931970337839621429341015156901992037443353544185999218242317471227289657993193763963683650210796861751101022374102622443252556160162658790974400103304203734414855213069021191975952614265938553637108022379640783515710124928252320466353074422434428364397675677872189055750611279037228572479966625671436368951635908470858373041101534690309718192681528612997905062606789806716009939210222066494963514321063100241519587097052893413168729958565610557724915447198270737408568822285936020361931501505541797910005912341689891036191649851108241438544607825963459796816970811019150865581082452121041868700963205576826479869954092452429700702468499558338005745880443000742147638616055157468704114784991219194551893289625980202244625351434814286538179141106374814072096509833112400188489059357397349856945325986477283564270760930449838439651795102166218081669045494994631070895762868259414554192520935615914985849209644166227079387969744096168056644327406297438105867374828916834393674055390905917934060864583559322845692449283448506097246028206360119689216780960884946308864423935295946105997610427556196708201238657626635815971969742840126018200127214172105346066188618453288953853838599041934912977403086582346983691423614706871143494554336740096908190950825316915744046708501665998225727922859850347612906557836994442611388170379302390916501647804925118504337052881431318603923154860518239909797200833829804224672949379255272207638094260979083766222998554007420256227787172573036369417537313687409458767278950726721737143316042305796504537279280266506910215599137671582810591071567767497941440938152959630840013420337330026173082524872938605218604987078800765888846907152388921380031855757100237961069001746664524245149222215935886724520917139917744306197782744436176116098070226190766331981575568014197299386074970189697378008143400023869664452734459223278809595733133358018259674414602327814812631742575487496844761803203342714282323370130800967728142576635504806806844257950916615940169706916780554167962404435334827834127918326289672717276589831865564495012900490986705711533195917243820384411982948136587440356502673546549003172138304841235124062069199391805501992111925761420222356049771809685506867083824574053074070924898426893451957773021367672799718882892100613593719952223140548068117250298004068691259532431283057673528931835969607972501810289120516758098411565782682953788807688703146460088892856361181517943753377759969878835017543516078088934601382540880180075894091154267479899139795400600282131306643422333328118734382259572782628963394467260099129962322976973412076289582979340014994512587327645294273970412347776467747469283902498563607117871683859858450468826684886330452361997404530397233011787287631629797015011908421123507797750687595029747682065539566512806815208731019867264653401476873130343589333497109823722702505072604509791959289088971410933826128693587487373987665139877679678968371050343803168877301719032345975340782428013616748191757761824638313399337490451855657030619022386740460572544927701225988409433633191691985875110016718215411724457865609466469033457313479632278644939059733522122640322316149003606038443369276834240479588736574671094614947631155615269844964802670709149129846647165303525776020591087191284983322952821872295624491554461130214412390062277095682948381755809474447642832445811357230609242345493622750327045354743521047678872550679619069671142450287014480309521267539439446063885818859369125732715747104693466369829950654468479425982276454884980964704239057437870761371054101210332898189519592143786253069022006512355260712559132902293946235954132554448725641647780836378665427293906251496611829725812610374219974996222951393773053537058886240414636073857406239488733266051571717346631583271774872009327477719599255423236168840324710767966089696022355633827555147211329759755019568038428183237483876511870853953085596144296644502470160982671953703926584081122023727746527962629027541155158112617156719741394832688541236201241926107258272585664938700484064522563131362602594543350101544034731662207688420327217783773108263192999891602148954907692880013972714157337705064276987675560820787765222845076554326351779765407169914711987733319921402063873369605220384193352686108298640825645374512353760903739213502337708833304258364851392743755712693062659758696934125089196047118422969327367108567200535914081448275863744565628112277155034818720873798485094228806819212908782059476087460425092184946894476496861617401710549901444434214106061479254190131044842891926918350679790902231302445711360662690656505602220919928290535661798636308089273924858045418185164103443702045120741093570559809892689900597279774240960984542107269224803734323884034751814307010520694149862766814515574824607311128916044952276676261055354549951167650416861426173740166438834647624137510258053300836763297803018952465074508490928910130648888026172656561146513066858037945594287286460858406697547500854143513705087164955958230500527361241010724912008126912329725930249158009666867227593289956931877750871125187719662800165335772557983540030916173617736658163360862874074219233176657749424915492068331204418235447928623824851451857953596287575313749972298523984484404492477273013170111180246740569652957608778993466678829402332673601242661670297294040745951734330695365380289217277719488428844075430728125428874355239065788215869031618556044708946328243048841839917029292397546941283673649010847833972043780475137660286790875251892067513137531579541961489506945138953303912718725721497554556064334370497803809444800196627688620022531593917041921079217415426640812916349103680365729341483872324913806858769803086643066408316733370936088133564953147009455996610829329089415583164264544557310719655262732022144562772874383610633888011231848282195802930684835196537007533342726488979184449428146628879947561016089256181486623034206766418447886901192438680376205136151026768765370760898757485666286298947544646139597066825123135265171762225022714765988518824177541840043492567771641541478989398318617673962600981838891228505232950433024047852655966483577712760569167953336827869247027209121739123215070175957537513696923646200063501293656671995749192281117846250299521005692914150702159174770396616746411284285490712376548989852508711016706377057764233551897221099716415241259232110581206639901328744198161758373344412652067420789360206902231231305273943892745856434691733157699823295078715032132168411884601491961062588697382333171807185816691741004404108771618190043831435489611509732981158572456335998179751329787717413482689417801100232983365822581367512613793358180414101324532620676187272898292241413811682850528588783462861523792945533245812777242294583113168692704430715726575330505441411357018785685615827857595970917098764492244662059219469432226001267080399936855567415530835667843284765913821640753051032048799236892628104613845049611707089069331379980231929936151264873300363484514081239319796378945681013211721285178140248834655459791331634647611787575059356018335786815113832440851895228442788259766108566195170295020505019178990714099055755660395214018399842915976829888092849870970403522650221808030377808085855449699316146648879015351995917212291715697967182775920574091101490352812351673328400027899867138952712976634224287283005655370790857791583402509789534212003806309156891092571569936744469732730740395609113434524010300573871571249821362532305780619388524979746537683882926384045247171724744539132516833155101403787115357634862279603175428897527838433149566583448781103568633373264741642796257993772959925955120225261230541339289542877861786268979484166126728415303451057228695597570537936855355489828596119157642057988848760162863170200877509207929572071132242944855815226732034382615680101151950258786155350813539611431157283451704989329704412780971399683249682136878433495471121163759214499798963877448914623579960439240789019959407010899892859625636376083310747032603545184440159390950462455053071100334319354169629992481657361923378772399297785183471079274288428930819283294929267186381942649328473018799909277546873685907893660329273251533804374041081400185082365539604938035157897610096137810803125616164046201119369961100996931155854570116326148751540436766639355590164072288844704241631105878413513255690948882696679158656222103616050475330863629699235183357545534066249757714289420348819398097307253244113248782129316012258849140422696734658536515693465355831484847692601722393977334455175425229485657302547470054165544175257550069883783880342959624283530289397556819226397090017911123418660478252983504687911106784092885037267432835295896831888967978537915224403930352732227236415656503465165702554537516737953940484076304317261521543457258790040286916071810832927244318787576876343044595621270115974135064434867340642626910160744761555000531157045733565168558994516813405381697598077411873729088650584694905926110084999014233775001679054458782744900510924819832197202762865559278564173727674022673308280255457248175582962537782399922015518109873160406551421201608988944604177002816175969614210922423594933341648864183082609521163134881902093389919084583586398896231704870501808902653931815856290979318534601181426419685039438701185519683312556270231927413162925338771301917515576711068996627574399774241221866628214162325149283418307602430188504238759819720839294014282395972281180485845189452561541644196734045629176580308834125263788369077156030021892495076688691878020976588815392660206392328103641311623560654369717333059455494311357879606782776004370042837297973119439901513855373225588280831093063862377299557541132657037585938450991715076973902264256767914904640712614676292339146934563390263092086828475983663441544080160456136797010042744147219611701060251973246055049979587265608571018198426353710562087356233428008551722912604021859915790158892227894004754338281555709186353071079175304089737828896140782251603242869336421949018307835113671160670216155559016561810055544159876705491223734710540795386462857552316342914571214922091834775074437413924338035470623852424153621692715180216435911831614045704621409703156159360645767843954909649162751540020233720039384065637999080551843465629083412536104605975197766564915808111908062336994377844367843300343047965232967243177747692796427051503447042960171326209270661428888494163981002151596746871952433582085168722569684113735150282793642907779548849613041167184239806974796307087431345284082683242796241385614101442532593182491843287285992259959558106807630518551705835621343979055063131684829122962054214832596283107199234886174260280159581115891519583821238259695042942081681157654362720212359009437368982885894683992538038628419223583315234215892785889498626991145849680742149094058066117683373581835325046444540820650205503340925818026217932890266254838599598604851017510210415813827289843466656672379508137750506979725632910521423769202793082886521593818957282428469120781447524283232924124243383377617291541478283896948227270838511223909371731125143617763896076986614571538679718601463372788410751934467101883383586789168167938587374074259995468996650413109682341897889251257534341549065179269200456110638021868510427633083848611674002522516625081150168635454850819675995855488600895136949255010070514862958382062188579353749536639600368735828318834154037054474627763835458442493876707051216239224789334322251997396683447805609886738915696022901241415202138238988583148643621063565109868635363121645332993543395089181432429685360441065129632681849582630709225279185887799927498646467416491348126649427276070767573468809105232660406939507937683401929393099290845545938333532582229106672168974550935975268058380158062122175885970159519762102392367331267840163548623598112528077206468235844662185953319196193110861353778484428229552222750718752643226664262690303158875336563931435062432089838790563925739921470760115497754284851535335741943906291761793001811779665604920533917692107340103273602684043079975856054582092501552668618356520026955130037205018401435664478153117177528245280173912206153433676122561194889464197442521966506406517311368984289969880732549067908375104352437783874347933752428151742438626274645807831406573849270599858174676061499670281128993928793826018110242395829168457076471271744823846390253270173237798933298168400645496773391262325226480618895658655455920127514895831269185223845268172376908008826377387262728786486319688374709532079489059103664902302604620956111948648569865100001913294188333130256427704058464441639181641375655182363506924141547003469843108890570554434461153458651895348180307993218873031197942699246523987179552819883490453588006197252137559259851097646889690017579677044778115996793636550398151875529124097431409030101041850000419182976730074892470769833228643900756768989855085996620063928788619235487145355333195123342422900703809024903905044472214743901033752755488105674243470172940228712839018118590112045144557828681430096996417532391326391742048414600925611958565997248280829820834711522749198088645757991547674276235624065158789162468813352514253210329709757810501802552659730790101484086892643402428294682079920133066700082815645390957341453970501153855458006744378968024706395102303738777881675483786018693228048899999297306787414818101819217398113116708905442743787893847034900964895857942828092660922275932056106679651421856019830329213261155081432858212171871690636034212469345423560275013752002705912152174727810372503462568037772024758680386400950387957372735520754433652855229586736433658004584478978065771570161310757669584746447411066721012303825910596717655423966877661808047961325702628269819637338164843708049628209987295998390442002841025302128367735058902971291024341642868638098859827421105903868473312718812108548527651797880125409191279094891182827207890427627283882561764741897578286400560289945629176009937545456895955912989404258884877225980976614705735741568796190463666089806213878573599389073122088106499999498610619510686881990812577300283045414806187168354934504481458825260270779089332283943375082867199650965625543891902697523668521618829767154085619500714512917008986119985698365408677875158246102802076404906294705250149954536612656739377748099484668699730832179633029873536420081750097348234899307225296372726905593120361567272475545536547779898937715538595828975423423451727183446662989717528168877821672522428410871143909244301267440233435180517758226141182078593639527147151245500219588558655486696300279790508373014853074927281361570396958318673116348445859833817800104344938992414640061876345598868245709485368566815686353645202883125646677155323942777491317787953315380292620437448767326678488210520779962485726946735931207314632171907536749537681373497197460472535431163691418955723818147543318052494887323043760690476442678329702071647072890082976524306014397851683545231229809516034406930357547817136258038580671196493899818664415138013400071692103702538319839355292199590430512746109849229374525060765744862004588457929882732762996658322793911299268741851450154326975158193336846049718136949765210494147075906864970598710599645778092852427251174761276775702150935404482505252562561822692988387196841325633428679503144426419407001036789901991056637978415321233628562859480798986608095404107396163494359726390965286762238653134644426261585674292238306524973202894516974820680994302780697535678027449368857710678470905273443589092256803410308550291194808520975903739243459349510375357055482179329682423133776253268551255799330039628742462004176711707345327293677931504486588720320243874842091085931979608344511235980841988240041533165074519832334157568460856599874294989661155892988897010253241352930783240676507131914439048162348417890303650731121967097048692187123968356460023914673030769459590126644006267672627132548142039430116352110182493710506763045454253310016102236124715946250440028038621135677585788351278467727942113850306872798380827937690089741924893743874083254372288142318089906856490843810999763062911963379322810639517929110465884429160056608291020681899088225832871230397032063152894665320110369818582903706903693597347216073241984451148122832045277196578207008296346821301765171098354581772558607033128273524101721878676891100045542389346254641716867170107969670890913474466300319773145857935944529290602012552418573327468022723737691014711962918488622297592309124127226636125344335333337993589296793773939365342068328450672474402761210407761059232251265632527337648544695412972386926382762426096560158321103350182103846675202724121024783647799141376045423064734784882460386811714165055644944613798607744611773908539705724912633891397110156438313028274363876331620355668200055108713825537693246348075566726071449361673819086663076465161754123665033717960729909616886366165729965687135150569386375456418494674709876463160568945719100326015347831644591364549216110420492554707570574761705483130439856979924699908071069791078416395783797881509191635932041580336913426511222557671458660875007598556089880020633987458440496226361378152487425809402829724447238964603583909697503157302298109853325543100594400019262350422776179008904025352422291803016713533449418236708109454234868569657989417898376408421135859709841591861943886606414141254807411151653840073393997098264844036591850241081514094081432319747135903896406461161492237844353791190253531505629231944768879132747934525374747226024812121424196411512391589606023828996029340182165999195165336738036500697912961748760794374428299248638734557252401671198214896596226501656363623404863721634338292286461142860822582468049603939644313120027784967175470265162690995112081837168127656834258765542398476427338478390983524169212324945799934672824161340281024066347191795816679295214062503554172395947327725816311115055774757972145744492478840719108460892694791804122337853549496617189738178243168030524566879006933227922270362456039981381654221725856317044489975953177226173033141584785160881375354173201555872554838706307183290474764856175333627367907560374656368908262949462207237015090966941923016561716724394810859663743612741588924346802128583055278850966813049237174459461643170627524639155119969534246677813576738637101836984743912566737521992258125253175730740260831706077608037841131859328589611852910332914175537678837322080622263302030916119885983349632123102134923216699869759189848524957590367500584850023784793602003124999029578990150855895613391780364135118310961590985345193262926938389137350310262503923232193105427709061710124318224365453616014613705882625075496559577075228386382974276053410692571400728243686813186507896515066461408245045285418475507337318983491766483637101545082824863413936565025165535541456865828310466649839030052449192963320818544407190002586024259722269261273089979611598588871227188675913863477426184799017821994884285629054384020953300705000087544870591286524877589941616843851507428724700052990784746917458152963401691998790926968123829395974175216316286518111025015430979127352418278205255909658169582328812611861402219930081180504571351003949924284613951064934261459662012264730589682899970540924879265809418719033689487022185005227965788926712560763633705060353407147567318661735466009387787803662193114218967432798944508394506913699773365767656255237906487468420096288678733477875222223919117566074124149703555046922173631486569405966748096155485144974273255758999640650078259179319342499773396058968865382093950774887565081216500587315492851164392812508829465870926983900879633176375910367493319645081701567895007084143716150976329700892748090553114831221773390855253204879752994319639656181202135804135507230049798574868799946837946433289549149939578781616646034312279404693082103708944277603467986323166571786088934639663486723299795548183465019351588714032970784004163017959632890173059216775290971750074017153704460223369373994959089282332728763948726577085157919920204748012460637002464500828536849320342276414357466214210082419350694145459949937995530848387335926750522082082766660913980688504074684091703217603623849783108149829472391064723842469212520892584660575324553680383480639492145476303311877813401771722258810920524838489379625952908152695500987110023031246894236333047068189002629420337471282819421096271721171124738690632418846665868982522764369034849398147709425625863213055983191243687659359383350209146361980386458680175386862961310425298145709970927380287582537174789838798560541850432344898676192874017535239576807575392502836903707098709405009682322381824678230887336686678476148839743536409749821199681436830296174789115942959564362301929150476060191144976061415342398021799474157203128259491760823486250816095191040329107131417721210571537444069499447684948000941004782410192889791821768789609910293333459401185784770412755407914193369578179320996937850091690637682430017132906450237504943878651779108421448286199912493190360961304769882434449230879663783685169535844101129082578396931712136525522548506738086606979353974680076835992182911826363785010148061018654782541674970452455038376678308820387787815859983881731055569190139500720387948980104647850915325120253601978541731494485168404733790545749225042882105401824055562507023127988278536465642460055738880011048586816499328288499759963095336182940196439146667935621379929023593524647510061509065108554235058261471024405285431179487881739338240065017916920278150891237613841781840218406592091480886709661345719197130598880221462456205482905953066726439788332798265444500372469928604533416379193678536146401559455683395755521346796291665322805064652067886843261224451065991652122640346609369214862372683192834323590242152242884830917541601603984662535014696942210625892072703657998100060825953185214910838966834452448988058258622784274220943004686581419725957901348176308842740469974922789898661710361128319640038627477807630573904425072022601135363545541959108855341669068845207334167223074689463071946238380764631555470613564573010331887656613701818150092726157221303080339873946918662843604788943523370329315225339350069145106146900150834552000877699119272921008326504842148794080836794460344320710717849543252010602556010739378358929300328907618738630726791524759116947291121258323473404995875449622796563240267977998561593440757578433835635630751504374899037829444461846797598395549820871880408540259053049251553474551897798120963586918778856697823763100129787337976646191634149324829134833817232993974357739642107279626541402085055001667921171028768691135808472419482492233917761361263482468485342207326257703769564714158368976795743800521613672599427432935314427401043989176928249126672351330951859142157764352990503578323124248772200799649056341739890223725236681143775556667187310744785400163841277660568956861623917240754167999992198826447257349547211961603259036495811234036081356956000520548231559186279392809653066574055352035154789392103904826049281597092349604182562428702909210769063290466066782269135989318744098919740145663864583589228252876086006417650653309552988104910820093099495540157463087486944446825303304564738976239954631452425629953419747260187153011735115606828824484397628618943037753118490342907438117525932105711401598159885778192019681626150380782692683615464570033630624344699195473565078629060325733611395736992893799610128738572988182364381163547454558365426530543630168251241460765728260075478819991946373471293127000280975448104264209875209747195544744111739210584747413906476416395101585354240982887731623522858226403441269263812537355761085565675025682110375243960673351896054935676399140156889366401465804983592099010974894155337348683662096809563067212549621567406107198641801271828048619374894546586405920346519923613501112503605222462629045068736312036281755058292706833815728436349679433139739282985458081506623783769057007360573135804529067853223504481094432735619799325126391661554143543717067798156369341762963862482790245257489631168580192616883467945998556253473671977745293596377016896710674566402582064937544886254923283032066132868470108804629759757195995082746547302095503937155537497939466352404323187446536542135470941591341058570617241850441048489322790854073469537159066077186380794995891634751963570350909720900795986909994089461809562392609789236740651655452288794472998673187331330685394713876892492776440033599850414784016622792886278676136045281932110963972918638870645063032877962972975761261549283015329304935369880058214739695959437679911019683186472637088511842493813353412237948565817512172914210801024581240412977608407924507041811695892662246874966975371240664697130737292353724249617497255973133509844615632568164791839100387872920945706840528491672682379778268353612775871129862498626318761110923212930719486346041319077365436801358543000327526253888942885808346621345322453329405630865411614687406802047577912472662173562430247510011769460781842017985152862955139269491997703433732162338065273781781469279182733957264332577789511405157579601196738621336697132801519487033269094946618308742085408644457788462371373784092453486432909036764703814165188565448601047181702307802215833414542327437810823655789135180737835401744175218496167277126702572041998964296348588195430229601943668420248785046714340121550050220691179834516552964077684183963296803849810877722124663037775118589551015006297467136136999827429146558551280482477229585604173375690029215718853636294426756537304565241947106996323379730759315384339323628773806297628098987081223192415457811435839899253339552747779765027922242077831274651686542346727784854593892150464955045630833555531472979934367592122523830313721426960864318586223520920085370971052235588533396316906061640559913605009803184068013126944054236378672524092614651958834273028745051268106568842176256920884287698079775782526227974321599711943315920798376087576311787152912255473259069552798070857511836359435509436881448133809476915822579407538307249524439461330720492122223619776379739974656132348450662787562912536934715558799581206249718564144801539140863841314576989411121702601648948365115072578659134546002515290931616313274907074410427102752872211197533045427487816877325985534538850671638523968717782921811599285673909657787956974819146065169049484248498413274512126472278733786021270659746034328463694417302018282260032234267613056104715280918002359573327447433454288071100961415795807670873510923345967418651383530042758493541072813639754543083526912645523156124975660002664572507786970239976803256100842420078004440670965008458335919614987200048299172048387797359067518282038717057519211743457612288004985018663493997605638079613210088918772419283104673056723705269714322107858262210077365540969525127017232455756249981232949018240213091125572943266140721687540629636293169939647320504207200021029611335554346020832650737807198737764706839476006511245640092068001016500423985277290108380299614435746995753072707495809119384778934904930200702265002256494569219326508239738678061671105596753522728943944999068809795088971028111368364468240050424757445537339830459222366028614243097067171740824227816341536498289729992027723137819196871875862403233480179430683670915589620017440707626063270658536821085031726355328009154167837322148386431396513688125135608258143060361490910325420328321630981962577652293144428282853072765467748448640998180188215274745563590788054045180311863022847978395650637393670714284738419820957537947979122423573032953766308167375725325789430604658382023489600854304767661514968369921277641320636182801777903479630765610936976200895089075168770456760155331920154432117337350977891377055296980498222750562326329696769387368442580954701656760364748104141075021468333078668031616423171686513622854038335412053496893414569550393653754682851580041928565467696420002699595028672443217764788806943313608899497579605288547906798057241539719506545341264509092731475346404126005513148417602280327280530560101284811069216330096637045479123094868974087536872706966550299314010630891734904474783780163676909356560372892525176746433438348936629700217915994817324756098745798176915561209490122198691040181383878872352276205233740127547754983251764584782516877105655070747802369053179684409957788964260543323609687221918004965461612894734582056325887766531295038453909858840919859640820685638595608611428685028742656031751313255922750050126684909057044036421439439609643327100047213614478994626088724855786796980923697076117660882738947417169707425499878309306852276938568198734281473372560953613851760364390054918234883866672279027103269019720749499469874558398868669859622284031501688203322510026210043251428851897370343062670882097460453887199565251798166144637258086694094133762359605038176741192462498699986086483886228481759529339138772404985509579505920164316504780780178119495040233280272825168190874608061763609070806541867727550009177288028437039715555875056524433455319065461163720141488379463855160116534907331066581009691879960867937602727726758084029006547543855590121829230062314268841896655460012302990914116035956775155764334440855517113287254053293328796622294797496886646854688165622499269538093636667179786160320492749854185087843535508824133477548949589551205729887381184132021117238941288509392355146215041906788363861818689264447367151517040953478760181591898829719448390783220062578349019038415993956222676588351572266027336187821338672079373527080339239337531474628821935509909366978777270451121202797499107312978353164255820423056523073368429176287700031733673571950676230704994565766881210170087448608139155226105751848215714214320706770192440408975048593762849901222551488931599947179499545021435934937891569872984014520272311935918299294111793841382131825756442755610412805388630921027258169895006920060120053165783715699779431160789363791018639616272295721784822126383509898917365246341500225082108111013263510958605249112323775631954531189436672929062122394848040637487478932253345127373667296368255493875570861896781168999796899515922284878709167228275056265354703791908060732428610526967176272845300239612244820527393951841791221295584198838733835287956963729480708166456748503086757238401416544104352232743069118545628206542987095269690433773574085823556844418825039555943683274673434215997924394788504067016156735139517595855420425423453168935170002632549304240821050866693147419692991844252388011171123625783083044020563599601996286844657717054118080331126095925476658291546399716810085076499446114991867324692270891176464786206005937416414858499296240898141889427259948990246982739356945917085910682433714938264495637924888119922165185367210941719132740721378785775387155768897133642160245810564270947234288146288174599162386471814698843566774359140155481191792594391482665804481265499566326410518539891319746230664885859517077499707886797153360005387373340530450492266664452433537660305314825851149544865756801693699321415556958722922202738353399162827585423225643825577241928870253551391719126596721467068219810139698688134262692297611821619102390288432350152763868936911386629849724815065832871028332604495779374594000870919043088169109927142237424457506171245525648355928344072996805296287139101609947597366116454438832037926351048769798935710902687852967511327792248777174603369032219080316098561083422205922907443461491711258037428423092952546867898683761323439193409242388812923708984620311911702152451265744861210674803852405602260488495424862618844948658031831046871315288889675646334776349662220345699125839007627806987988861943217616500661712234132996529656951402669061102230242370938658361447205214911383765418305930542341122394579910547996836974720153051193535465587019664142168634897857674267930852799854780895476867040013940127346731655419549037698986215775763757134000840997971182734681124570934956099943293964960883246757505304379071162628393841711078482437874641912811148270014454975800250159799965247311016338964439827369745846590834358391860405202065876080228775380809928105998903092196815634931428644734094238514654451132830057754690736958983254401219197762133503440130189775100657276503446757521048544276101652051713590605420651130842824958231441991741474126946844294221849588644783949277916013014939213895989150875335494656900995547954733866126801603978137467198311274189008752018620787785573652232175448799681269893327740789285178725970666802403594761184080349032448201466241629888394162978760999995847000620913159580863056095806492267793700322178613055303316157454794075007831928052406324466035252028338083161197421476002773818681866092812740200394435887579632512128868700021154251955899399609617148399616615724375092138787020299170449225143431254716616877582361793368486957730509892292994213088492488206616108388652409341991555961841770041000947095363534899928582021392745502781876814206926137749043395824213884271110041351020815003592568765142317816794099917842908777227262197058221416533808575376887314226699408700120484353429042433776904740620212678816874791643686375537110651957603233016553913306485113956780408742689914734758812847266584930472173634191621067389819607005355375823006755254498778780607347314077967887102461133586769087460737105620656850676119791623328858266952593390622578668643634374106603078651753344365266145535830590451449831384635915666852735052340159649753271384945739428068481895470084630416944633791957891500862585708516443325793767275003063056852823081714869151484364086124630545922935698980475868942531365953637458274304737884133032750175071131732807093563898911002177846825501894934433452902079964292263556826797401382994092759260648509261767496156190272164002569041439045690250221278347613202779329538176217647877713320654237049352247631754705707837263783016390021797945357300764608308652518310986675591191456380183198719964088546272692668071570404574603906841413333416161841976656844767114172181758991439161281874801546250538416524325888729880268332275425185414216161487319461120869036141278037671768399292278019768240188023776834795107588335085075803452489152456040940145803961072919086506518347222320533034370373769984737318615528995799446858799373066195482821568104018510452309513010496502230326258492041636758132020976920074177607866826131264860084994508194026380612158968680860417511598402751740497300335267336044787141919203380514666129139630637270264093961032457633396237292819567798596788164042649501249122830787192366767842564757467910717830184230255838080562166674315353954947184719954714886112483445642232212361794373348870841812886716163441788205694526125637962259231242472025236383896234084253174447013573754481975654205092272464937390084575075727267874594177404346816296720542104741606073093356141683984183615252743767127560593409103855262841838738597414092204556737919828270231077429155907769211899886841625372099442163151567631412472236049029145324677901848468530684295794935837312281121903338855690441660365100291775234284332238667998303082222276740279572359659175634369319774970345493666484414379867695481780632527146887220761204712552247634981344826870998526533472483852768334192015417771826495832264287758183193998120452462251232792975460020614336752082227427402997855684114560898710784406571417146653181510924510415645686807524134520007500144016123608589777372100944120527467254811930469228451529552549436388684604265462538471328009877054407050890461170205563034372331618608192284554619745719314449971118305794736172370936557836543402053595972449596368296749405241580447059526046025197319698535002331564007608859471843288869475067180032787185151246022621506878790446435261413009727140667494111311722628720859963679863739056658378519235598151562542579886751975587265840480002139986832822246731340976281710444741233371229557418525625097393487323319001722131059100584474509594642865696217808794156306145454162026883993444732403472581814079210567867303362033221267248395418101339762078434680480405509078757907758479822936090342495195869748764711721916363136540898429813954235286477370634496933890512648222808239546946413047819515484662562698147563896598889278655493932840343120423343752737914917541030704541884473383997378155321619259965239133164377432980356012350703285702114946623606185530538280461965300679905180119851161387619171981222770960665425332203211007588869740241553568577383836909140936687036101189107251557420747878373558021591709083681499371638191292177543093632727881943545856600260071347856703430679067468119302912821031541366581590874729064572012200444680473933967324060805036787753635759198601569764977329596257593864662108299077982009100539982275404072117281959810742718821477715920714401696258520804470077329841556539741607045890440829902850214034389849176767485569650859257535744776664017313620935362769177958235928409531516887099768534827035447755135643942527817476213908196615738716841949825409148175733046929597965204958380427672894487085142948791746468093347113277549562271219298245775695357436131953613244007003223414188458224065684817062943059615184020975598466879515625211968180639960133999031846027330428289426247892407934766466580216681283536343127089894199307512763844676342274741457445655478186089533295415431101972423633099216585074917476013963148214152872912525979851994295567619788082505452152262805434419704883963749051309875345360629009541135277028843164767326448998188576798096286827767492158526051995926525152277753262559009381848267376322201280276198353734519355502011125611344288671882490695651575017187435410969237581125205734929608897812567459043361144490958711878210161815755032894683227600096812748705172521998517537601562538658664703840057165222933986101684835464972029541663514760713550125308324845079509284013588420724269569357246642260308444302909356988736500572333681175593556242011892430199168883965260219516240960901767116340976562172997703490025618720105506769816501337226628031498709331753062668265211700117854619573351989271181649076743242190034386961824987062199099349124933768982120141422808088196811742250070044805872833257284634839198251690350248988550747222270374627072317470626647549899585343557044462533614123789754549850743419545780072724332546340191118968092904794098939421140340832122195955997401960062532037010110060129862537801210236290939623309405993011529867849166781735359855564124790537252440295385520216312845483124431377443332738500881551781154617531064961967578761283327261804754367570933618527119790517153305317358766290369661344934396574667430844250500188431230324080738146678408951805549231893758908901848528410003572907682067226421950942088678140215479349709095604249141617225173868546908107732770351996248306645490077724085194121343461648021917786495210967457775373385278988893206238565860657705158058050503580785166311854625706607411762735266327254823945456872843539914470668425222003342319302052541755785969480827210086250043929451757518121931854130936770334255513474214091523671490498194777617222253664664036430930593998441226153655282034265940810145241969698558451785256281448542188626521183097004559304887938078772078063379347814503680476603087397308067352941741200980551737212014584677105124971893562032044674625094513162799299213751781705102962527919101113546754894205500877861431928762064670470414059584031538105760664098035286063529487449943439941967091938729710551568576986430709033747640195218434841008997034574051512310200146463773044445022293839826781258258763168012831594610793124626501631908168580560083927794438139168041962157897033857627058552824909952280078878238264467721834654923571612083675903624886236232831911533603851492124871404492867640034368118204341217346313047250067719187437147912647865623431810863166417384152395473745405917178200863306020031731386277712337170204806142676351041578943037243392968748017445086838740050904567093461426865480557243688242015499706636378304680124501039897120385188412976168161508474382919643298000166195741028784876023688882866419180799821422106247561102136594026270863502417884647398604119880108449041619337865643584429620762085357060194050669656855837917395175894643560433337550440515490384858317918332685355187500246148203745234211027053404748598007895694276070978000166652975863004627821377215957396230916871152375335993321925022661278227329918902358731014709421964585785605624657759347411250490720022358532207288849345864427070411965402195191775696781160825032921297395994559192011527708343013740032621816869041662581872616949092321426319936340054530122023231878149817419221149842850282180630398906361884905326668750433866547574916601422393157023177529987982079340682984634676440540850995983976036224916534814186973419705170590447925494026898820700580355383490863111531413815574803708853310564354738886592026476247385929007149386429444383939996093713395689973630043437540554614330205659925771036506567667687065546717700619943440377818965809293520409599990697125019355433512887847011001384504304529282608180978358711343980083213820573938656169979196827966529715572889467516467646005820050725967614679391692440928464834555471343204722864925072265087990070402767333222348677263347369967875200406390682249652693846065093759323695663167553566060872218425277031553787479456486397741367547938746998051587132864531639452932655665749578193319282581080828041533133318802081552090348606509297641368418450415771558208249019167279191727386479207557671189637662837397205459606093340976663397885976027752169951929218751547943136049454527536895533970287188093961259126188784834217201939554250834988237383805497665647733041687067415601085738182918982767986098393216036141123941784294306720502381432941915027235019489850588467560752306763181896552796042660833022041747626489626500604322815108694395866127178220463637114481401425757335148343814094730438420619726158809751161679899859462730239832409552489024758140759548874658492726537659737414348256946700068844091815495820031941159631299519872423433602694547718854802418795628357045628358077570110056101226104173095005654049489668730541450999724180233491596374060324450083305200000190688584947569127565422540078592275201285732392025709438381358595525692693841712124742686529961319241693607438135353144570730645654414856787613241814145511576290596749450407232299749693097773081675295662227410136335680565930903912145135131790864801099386150839580821506535229231190858311258096684400280096000510740918105660428318096190093424757084806527022146639616434597281960354310913637841087690206020987149136563750245044482331737519867330698770048716408539280362519702880595315416983956461376911223761432281776701938320705496618613068728564428876623130357487791763334189482699566562636273690107868929454809436662991839792210529972852894612183088984376775193051824195100782797425060194442515365720887587493700257283617396273436182973920842409413347790974399976415764437038811946264350248186754782174160957347925233555720018039566408219240397524826134885907727799008505113890046683691659086408884449027366298449365534707127345843095334659200695188173662088353290975308271134985407324635442120990937619152458588191396824190515500363028505081864630113153350142435972087589110549748604114667502602495677846171172637412585223402053555699484907630630103339597045255482679246392211173889316465885065125858192653326955261550168228162370075111785861753941953325987611979512846973511476391879734394051470595197448399781626288061442390825308683422955546950758377976105720197760546151815318938711798428435157960293884016242783017482141960366182026380631688019255738169156081067488000984854079238032775779285355052775586539397384636968530331110802841511521008342275928627529691733793113463463114518783265520894735759467691274951237980662414733077378328368924070558408457461209884681989723535843286936388196373866269303900727604659518839766468966289621024442840926926011506082110271443955163721083419107311525713727914185681879117361384829258425402101955964273592693022502980731963044358997659315851400156219987699022881485573983965465681687358465892289406219302839383247674234394398655576414610480001583648568890362722411612689041298741338554699917306884930207174656376828965717092357934352644966256568760332766076259632806175405815130175234394356712134838648216317064328257443730284142323785950414749062731527033514802661866103797568086992361378829247266239621154012068395530599509112939713221645946507519090356426935125024968816243996371941446161586600175844418898478043955020185381726131584451378433369686470153798432334367821216848726562256929791147560467689460027482297960218529349020983401823189128380162540634881959906899471880541021569647837896237094146491068906932322232025306019451170133214934742393120024004900477904650332731092165722938927117610321391163782220724266773784355310595969119420713805454397464033374375466259627969435107526068926796142555515881883697052538796247292068424386620403823663607694825132880124758086274526061947002587014498761801031676147497703021370615062283347392485855983760819026224958876495973242015645786009917171743995681133402263061414382985294558898817788776621772452325609487826246488082541651337869788272347739942737738798544541155712758723792775786010450709394731369934226671231256154580923968551291442402383733999150582206147476546768776583143713533865680274887962394607242588504627415229625573255205413054607481011192698678478568195347040112351744953019893150981840016188764366312396155578467953057618754152091047100819316890736765045517539762594289764187669897812670186598184291933905318975919878983776567315131194412420499529131053930711441093561562685566020484003270825149114233117761071495870757195190330805608755682057186209184440437879001262869524887421615579582482413106181821599693945252201220204797365641746069651248740587700128369534633893325125805255788918778486396616470273916148776519462779355844203057958286786527955987943728543530900186641670902808266044045364128977861269267299706890351704983416237573922998920844774629773676115026827520566103961036840785757226414301261223152636767506419153511386537852567091208822983636336653352962639155573311506553172
