369460448033120451265094062370506260247334549493158186350951534685843444108036446700186093202202950258449771444438695433883573080281024208418196681972591112672344382754275199328175670976966905349687841246332911618972919025352275260183271302709802561237931170046731508453377369586809895722134539760683599284207568566627256462448087116122061455752217765605033597883497184036449538480316296447541876081849196204946606550607092052712520230501761444778913471914723911460606059926469724905092461010361498442801588942599880351662031625290592671564159430665833332675260186378082286366493970389364699010579599959487814671456865568538216423068794667707906227229947667074628699394157039725630131868417614683408025650359012639963362035280570428401555982874160624798356165432989746321363167663274299960228956787534767491880520063481925347231625923828553785742899381339752702952781840603488911636968315647872357285389216657455686010643118055157254569106433245709321728466165028198485097625371745118096391431391113297974213375473225662179564516932863453885235624452029242291728615007848184589951288591262669811133122771009030972200643070915034653975203445717037577782585937725244440710575836529128464434842708052282654415333738463888174758711694939326891898494493760366190989592613280283098523126602516567797553609756301921332725759916990119413555884573415478269279625661552616174637626182347491889266647975086037801334695807789101740131009619802126883718352956370726362942497596734763052067262549661333078425642379844050106575001500559249104174569839363436399724779615476060507255509432008754217727440938237027878882513816404341644953408863717266355601384748987667684977509880571635050323945471141515875236967107455404323419649424063371347682035024651640151153619540466521641791152766972436552246652306851932590984667683836827038565472900773899826606907131005353791986388631407830063693548693385446642378091680708230180550248966163006878387356860425997594480374447875680124773681323690714311568650322991451543791822049855616785477683562565095737783899767598303328206683949810494304550345521479601306707801851201014702253623719234214689476113991190598502912593988817722244667082829234266673754670355775133852951803213690003338853115029843124750944563787971556702239670701194965952826487235747244159603814190123748768734772837426608232329613123767990887675808185509995030374147173084263232007047847209540448660623113748257790052131975493707377276263059055554931915541854739457472201864827491610686845090089807325621344258033834654166994820097653153426562269412795440388138093562436790541229072852760448534616276369006110063080257675813803155380615821320591784660318986118792912480589580322103493579551993172658581705194044813771802947164854633677290954892009412886875107745619456470851129703479138313716733222397618728052490289288202917924203317912068551076446302820965283192742041806928417827187429765677668836199938375726072689895716926588267549886098250121988772030408293436377744827591931435622216241185895076365766462188645499700719803464465755911143045764171743927796262043901323841395705110544923933221371869060942596980035047096278743238420690204366501725430709704886729076835022427053525916419127811261414936917775330158986983537725009196906797696614409425884436350140778831492232868954983343251552900682965708154820945641512253048766271579742488269428074413998810919093348526257930556693102286810110185573442975386581001738613432078353484975757667612998159731840613373743717961634513154619316610078987705140277541427561484066784427927901074342690771875787872209470965111111236687976205590679809241033949160683808896308113664853440118870390053505007259461830332774431924741155119144209300646459798766098487625227697332482789098419180523502645946649055020021126781329021304099848701925434590300207162563897520364371177128905611436620684145284565641159480308421684124589204940991541377306466159040298495269378521869736224890867933136374728326436734796150327746196530836334767856958913380447936456965322542977048740121486366609440413320147369570133468272576761551657462769835589767099872810974794966876112272449770101883753712860720006568293560826454187110733775991914092140957110751607502109553149048849340612307818533602940752261548611851131567336327774903361488395112774722602059733142104211139303323956240080506888271465131929294578995590365557418395711369877715901268703246436514059060251106062734162326749570822403720845976508213751560965123260694651797312038991708008717133511232110256545351121394588652490116516458232067245876277952710094873072140578153974360789516836809623320375859078917787919276071853359921845075283859801712057697133347195097898964137847045006453135790026613287061046315079306911407074613871406168925941834175471215060151431921785840906942222089319633883321126261166331406360164259875132975997156276141598341886138886030105914372845070939473489550947997273534236252647603262026330170430615522904946927507550407989081771752369236871588784847702370418434379317666033990427506056973934874631919818676008179616311000673724665301739489961733896407055640977903730826970189456806525522311923301482389544972843061723955945761045621456516751525408471854405855616710397589669617990321420630604272234203024572927864486097713826498821632975134551647329315965806378981646329034981303888645280390283206582587577938202013173521930959967827001815420422546842705836311549351586168608356019598210263924924470851247366477874067791424312789917337543428406547239713070405892859365854890565438839738291972473505320287019861655210879396489290921843574582553884987971475257576387748767234026904753426694650120248266565358831511406842490144763549282835741697500777178398398616421019651192187428635645421834298027674495924702161264780750398963261006778455332659671925122851188289221347815357216374512847398422419774910694575434233458104022793928145876196177273477684596010512144698740804806528163522539319146208086567349865519951965346269549525284606590109024495526334517649064674699484380502850491502312266485947045680706929183026631471813637474072450436497985127062948544739094503736080711764127883715715832154490746123051247871301615981163790227384141815854423949308245533557148613541432297766724280274934209993197416879418212940753090744573558634727896445396384452861107969435218646550052756754313725260984242576016517973330862066652404369769718057636603157193376135006464575825284484600184921290194761162885549847768251356751153237691998131691658871658758158190215802612883312000893982124986647230516251733577464537271622918487626225076139644384915090793607210867123990319202639253587149295243983208723344273341744481464102563992036808000211226207992969701028991060323973895136490310585497478555745784597520757327394917358499523748643209549545429891493966568292498698796729043411094363669800577953191016248110951499751642505804050674134267169341654313658942510863869893007771119527740082917190363986156766896417292633223961108348436335205253789462789591043083960261419946924838467306468207314280276895477324200637144330504651399202102741275475848549023637080661361159008339883330739192000789275260638868240015606380414075763955474239608880820588298106078593176126997573165333609483325162454595730562522886376468422100198467202382154605984023740314850265337968195485972157068036455944443387168910177406472892756805433798934532493586874221193321052809728454709948733700603949668129283531375695288129862196151739547522623243856076568384030900744202494835482570310092063029255061881947925822926336750305273521916932677530835401056750179884149474830616606476191027795326007016643853033612207112483050981130497789421555460196231875800155569711188440832439968528835868836079880674243345969740616608772290498944609669561190472189036422991287427944529840794766552643708768273138306468563025479176574125513027710399921608397388604482465029405923404231673099964719677728429852547408511431175373694512333171048600389152445460959823571119849889475550011907832128040276777006809313913942686574413665397278381180182576597255361957598691532699358213126497996445193763410940489813418885799067627855350684096887964194392955801551866331286697356624795939818003463652482922978900559778586253247903856578604540749450058218462187505084435885906292278483332602820665733459521274222163533097639145495224018632090502916129545203907254368960590028054636633151222371427798095012559592780512564871042453137785281741360906905334502841021477495889882219330631213367821054826987482541086270352908919421513180106219561421258747357983790327731344505780772198652573355751436054600906066805031257199759144351029625803532550578918385882510380663891361461725137456769575422071897248368835083966153189465191704942476290171615879406046093664275177604789849276468057064904819142560573499969548125987710922748102088314463203758971717580630639521931097941871760256867022139818632007763152864384599128923933889935991544569560663911330325955682810644790127921852198958191187853434416451057611479919769438426405983713222534007085528720913018021964712127279176892251115687122475287574314183728434088534927932927378672790070078672414275475297640283211632527149243106795333011768545966113801115227036461640403853837088618711015771843873828707968617843860230936475659441118621703192285420320714035062730542738463627718999831756747254760113169957016193324162409181375254801530504640656364656415694615019731922100157846990393626919429073796369676825602510451857842267681322063331279703924761816089322269790492940030350059075295320191528281894828157566645827767076027103531912313557185786734125343440905464994925580749686270959214837010037374357412462848699108851022308127039683630214419341743061318430599643994884362740197033904655607022411958064210890374197962190342277714212745812048644839629941735347163175108762089304642518322263775936568416762046304969513942212193936793950133318281131105256282721731137232690817811309314868228806172795447216506402563400842084528223214769458799837210508715337639333920818278325429860246985168457385588323570185653435793453942924404884094255926743715627307058260740403987911214416894693092266670788281520916691889944386321393748784262382483353467065817389847388196095405241309239829383026629166008022621497324540316518263198607707623102546021196507220600116233094593805567353427427510396227017373100216829945889153579345113358624445648577021449034433808686371179224863134677370183456461132550028491825394552442767975005906387445999884317657880968115905360647104157162539799621805542504394191396454376418183367844001804787718628791392547780811867599083492290388155935502127625456732648325308449425433112896621925757895219759089674484691656606882598674185892927193964733420050620881625539749649028134783541704671007894369885345331907921507741015608113937947439584613390863686454741777271942012299328314772954136343254654308324219681714823315444095655562602411096314373582559930718729031990542762429743863354591320619267304193414050360411060162748415639227692030492597438091239965134179819009619170972935260176107130681049724673567971929137939960423955339225854457998393873352582743442332074018607676580268041778450616749896193894169384801509878775068042185620833023034517257692508989904440012299709863448891546573652741305785060288843753240775207282644885517477282187180940625593099117854082095925032452185797310284276323339451109342160146916731515398328451014059528860384620375192755548663605215041906202775614809423526328279912806293219181284369571563559248527473190848716272628725604777589988956923689841401070492825771009628910390782146558138836452713905911520882471855131927754037324380532994148177303025404702531075448810465774918675995780109635497585929790160314997677606205761017514452849149383724140562902379011009570264692480312411768313695753503312124188039712635018624752296975029071877442114341334074968300495748253866033246582487016424358505341787329154071250880260815159589131390617825858032318850587870208939289379188136366460441005648125953635975844974853362977095992392739777426982452270575892445118706150722277509947638073831210797777083216633156895546164706464125403607472989716688911386700287393865249477894295146756704939146704038099774567289070118670641250215198118676460477954981683609402782069672965509037100469389154095665633383871004324980609806444028700053479434963814224662074590969181662846473218058716807345205512448098584185609278236310326587001901770262976628465620514796769139409235981982525540164847890458255282350182257353525438370636978917806578087702012068431481875169279700593191979120452925532906434651092294615783294256609079509308413747560918432625118198463479360374332253029248165638508348104887225500363229419618598626419744758822448497577172186053758227859606673576271920307692485866935219308520866598176896880497677191810114452850701033528196109914209348650192246230713257882777326230004725765664976534530236451355390835727049975180135679263311525334235737715020093864413508780270713840180292582215823458674611657421117097063037460523169940912377778013572483014905272635560174809627576693968458062478619763670302976338662455639227945949904040990035787940560327377070014196205174458035180716813283569986153430099594029035005158841160003059310910081511981794098522684960288350203274865277937132713470051123332794340229037014680729605816383113995723423951385405570016695037412178073065402168692672070145650166676232499509936012911758330268720735240818930579532170327824698134817386938593094148499459372658330020658673400170914060822617522201132139429140934000585328928689754141530294212095208483407781165649192902161912940795088944221042165107914967737561211051642120987744802910971205012973431065403992535693298613677279032337149863765472209259148923215741624138254157993216632796736318093971106886094625134343138947874844980676375650275248711884527233584517244197853046494470380249428030327943409598912293942506715198902566842433625948346604189017224883468838221537061107953495710326093931204289815275578833869104841584966685342212672097960831157388678654062753398849707645615302363606463914065113432680150502741616004675796733473124905729993643250093925472949928243087320484785677568872723574855581092288564263219468491584934784144921170404891155963732495186852654136293536163509404836120675697693545714114225189071946376575091105467817212373328894635340093868534356873582489812530198876780582216252598558106081410620047709900373032772471974617311106550290824892268956893236613751271036164367344009614530003542803977054620466505841302468934101975263622981909597405152265979988254367883652224050985047686681339889583579470196922925092844267603086879625961721974316241830984797680192152079890319572410640569174644081553027799131288206864035154674726389995968612491317139227529130691792248104705031454170795185785572145597983419855257767300403551306857496230586587535817077152321945671896304180187236912722945157796229720391400021197396618571311461795961696038895849889052244505981442109800098914508802123340744349765911023501404401311663664856961932504013615229124583907105034122976181894218365193512870106134512209187192519857955829841267323907683237787270563688069360869253909729739665656306149406282837933380468144195325245775397786103266090674476348633154571787326428880953926911387250430069255718927110082585768793681750938558321831375137718387429388020281690711834113271401319658778509882870481820581917357529169403687123141006508282491044225509258182525378445764366286911081869520071719982865843131533077135251636404786061377029164958788261974043857758231220607656397159090291367651138442582755283673823832525673107523237950620742177271097630033714350764424233717527629753389292162035044261395214879377071019228434430311083840021200559442225987909199555478958347684264088443531256139761773063126166554392386583130338517946747265039482883331739838101437798206389501192170348789962121259297740132769627705486811949609488523092050741656424994156252230569831745209786721314834886614218138323731887764731522720757217397849471317227563520517363971611342551554460694656721621755590058060716620358453919415006043990230635241859763527162272129665124445864466487877907929252791244074399673860715074174495745152941774680149064509132105254566464626362936356540962454890172878027473189436607759964387698472433843761025022362420411928514537806649266953935960368668124354274302299478562893243204837936895705595212496835651647196476787290759588408216673820195699980379692680443428088866765466155607911003341871240770459084600360108237821246791912884792892825378731478978268593624531770548159128449653524104216304751862967494308673791724170689491471656347515612404626901675555985074753119176553920125710976772314407601294369331458629660675426047599215969086345357734001322258515486964591357331510567029859396854541076388081026061901616468242555415630257592313940562800262427851881654583621760031182501559246005401783154183568088427056418901971823405793514088006806512243228975214206217287996779984103181044970388434975711077218030805128859644233886408225604728294871741903091589175892205704060247502361008972930740876822438796605599153013055700602273859476591945725626501966480621355586671159609418011393365990945469330795815420566201557520823772482394054298800100390311914306674484113951745260748197332284265388510339418752812102427113153222069451482729088451668210220209246680475463406765092344049529562060997975828365222255964572554831192786165305230783565862114331920856407243833436481328355605852186900020552495901252394958757783854938374068758558859683325041393092633474066475691180893136910079580004396913270339986563840500925451724307873198731408280812305840677086766799286564115284932235563784566592474639463904761603247437895796660719283311018938097995561637613886459140810227468755789729552726961876730476767736980486671122987501274801874961308404933185498170125937065518888452353811079456147510321795441079056961416782398095900544603836418711888237840174950152189509796574684791576929820115141281237897289099848170011432085034527821594333510069243324885608227143606107946874319822308244969811604854479712106295341609358370224541313331865089475276716047229343249818852227248077072303702660601080124368745159604212354114598442461831041322857084221849760180232505437169749111878631600486982192424884570322454877866638944519181123826359727461597802389176957038441502930653157271519756221096017500260774480576899522075265654222899219486502123788769055246422331683063562788620243886369849470524125385404334596241478469198887824895589607052293388148356791226278074891042606673495439274592279648686596311254937246203018389014515968838703879393976874656589701813717693214333450954190268589008514690461530941874178417244634249911787727362266379613427774074182875844954738397977430571194338311816069881040518238872660243838756050206859363701101865363137381883061797808611074885709383803710871981084356372173954526036915639557769975115980343969273050021819905131518111301783733895515921436055352526852072958722675501196380309652638861796443623808576100711823542017349621861395895875208556668855322117518625167936042880312787057607315229921224853900776896354546503325902942955930187594315632406329892406707738285776558606252492526614362133174602751124330947143338429990608593114007651264845930633907180288544872473363162155778050411785200504251109437973055336158522117085888289230461234286077124112830977575289102667590059880965881025647318969628692824671724993863183780125941860911506583742056949111655949898562341212975439603531487879289679558740024540270408655837051818740307956533621128926650844431711381342132381524281746241363525882544881025473048517054174703949673020941127060779035011231376709249396359673985152687602210702265422683021330580503856410561398454010679649359237739644880881785315002881568112465486354114459368634806388520877825338870753425295040786024268545609488769483202073031220369342079623588188735592820981808137420636288580440071140538489569327898086335306479482448008283373302471392126704673135795597702983495059695098757761696882512583544196565628274275956658491241595810573057854321806925430685850554874206811743951900708553920940843157242407430996508964905305499353530671859509238617725937379156888659657051185165357824317741022726543394947148491103179788175891122575036104252240404883867301392029654705046530972632460982207726195046148934766730559507305039056492171142741689868386076975795161552291388152486344876971248883600736107910841135782825438811123901891096852699527326683602893765935979881658018183172984167312372113627291451211745924929980131033608342134293707197103405938462399655873968867344718097165145109421744690652099210284020863364721483519773334269555848899320264888920332622633180992565571591931882895099910330574900549468834933599648734626422342582354049727163141600218006160363100273627522712706557056349943793473376649007489704094960024317022048274479938709541943132890700529072993788475042630546642180417071164203105684714884874929691064060677634365363489808163862983479087894210705099460893517465329214005091915299442464930432145107242599516626697062636044964626719812520275600188165742704566928862227728370381540992119182982807506906225027989014459623236105782367877452451265756467353927364669644453199239982726212685191464275099207410424772814328991986989668772483812024085106407875835536578179305731372954612881570715336218707880918984703183575588134650918892126216156023786571713345222387214883774479264653586544196877849305490901852317253549546708869476505008394278733644688723935342863525318366301064209244814350501472937813448489536720899590018248356207641732438414812099786449901385214590917982629686438052165678081630965113233284278884840760776807872455618882350563771602568340153344669324168214500954378920314920400894210257641502973187365088198710933126958729491004141354571357551051089669281299707701411330714836390165227430080754745782627160690390743244594506549108646073477727069071356941266399982528559692441114755625654303354452283609661560698038466980582843789502777123004086547505994387504316863737682377032587102732275772203165413590594082254666287711112241618141806645854554546148710815761078880886375480461534965728531737462489623978896671710152936206219972672465143146499719140851566648226489369602002178251601830539415553094133006339779534032537606723768669664914229564399626886642735523924758472987806342450305861830095097262590988309038461452113524216781447357178725979428178194209199414560345205117567154977845101985181766120895866905186682550522898562948825086657512045192274204755089574823455938466912472292246944910928153406568101470377348029400165927245411749870082760440548017971490538779456382045501930543702335662842919792251575279661758894694906486151663566614632840451574820333544426174351697809738975204624181466345136466040905641175341850766588119556884172842731534021540412022508090464718299423069938564511244597728769612026734773050850229562149118920994235936510976113621531634494419985972365146327856622645151260006208392099578254723325266335996203992620240639141500176610632436468245522060960597320800689611971393442172443277249561131563955347421044602035465447902997566788364488147145327435765959803029466722963237042271810782196678384809762791259814444160777759657519745296805769593560179776738627847059289760675612172207126034315328565977897807401326064685651187409839870744047641341182932115519401809369916559218750161530659449823413978624800530030128907697948327640206200165493563186619034182799592574789234874866162670955731500768577222448807190467221642001501259061458539020385956575766609070414580086155723536661607027612335739370775193765580879483756568197949930717151057420996947737876575684655532228024174642907813892124081939721203819821737629059342980975684221828948477329037556039425528823474239480758281035540277293060775733549835307477283545808570799221313113581690844993284391474676294265397816500869231024158392217954071112932777134958553414809089441256855666166295141080382187625626439573813200763192493050379586423438492135478847551794084007165578570729461802183796191424083866157146501118460359424824151633957855330434125551361304982126111961101940009522378818438707218766944821360104151603023951310556406628190552813015443407779932425694040850591093582143483378124522035015212385570344475554435032322814853578915060778533998781165741379213812797969332570628278561552158681121514192997892280687819115493805707902658135271731137992678079400154984036325200425065026539817728567382771139145890905652342995529972149258031163537208763397639219732823684126419324894003364842741168376538253060599892192816508676396527598693203842089836293439072520383985711859284841400230957770965262465966457432330361572826123107719325321706941820901016137342266465019691994238181940844412991397647819091795196715106628350508274009342501777106304465962430993144741145837510647320078827852402524850132776872708978110464426501590920542971965251546382539828046430866040914700267189931170030619595276370001011103495213894075368970606173931317631719493627153495714704377144074408007223135248104253645549263745318427435217845062847933096639080820397298991777390237699903810181055456977174931465727760705386537938794848231184453561272200894693398696831539375816853838081364646236955298963347508005054819337589617222752883313255203868261845512890420961122513150801519319809139953999689512782910124865575001861588660227690043516983426478420845069380891564159718117140622931090093909390205440650453654697596159684463864297699656381747611015269464587434173967791978064999144039789592845119878731452063736966073249825711956101725949045627424860517985917246180154113155251922378305160377930857640445267507487704567703017383877583182068090877680595954857411567757981239100904768902738228740643820368193341574251418274332055709338993601676989066769905050858083608458826536026141792705388738013001233954668236766728495658121246182804250252252016829439542362471760497327556143845488357606053570472725080385354089521512166719996225284631710645033247505813774784431767856343027056765551573773317891223779006100616566643899095239076828732458538206209058113286131152825778368189274233882360407560352804666131167171635671289419063123133755431277220452958564590159328891695084514952209997675162293185691910257374928913191162589413155397553136378588279781359064218369179519426550799992818146771025565955041247024043671800365774731375946698960707763988979762298471541910745529463444488229365694689289804759446534581412912504836019742813576417699961786788448515572672068285540741609967597753487158666180068648118040932868516482371150704276964952467063036212308348688442750276750223816074897802163528558718162987013903497288632625290011642470675991185785204029137403421522478246421260318737959519255519550450615938897383396132868551750498885380086232408090348891812665134719039478956784915071597927623037197670304834740635511877444295030174634046849994658158259317752985902521250260661647414340721400619789649369034921461888582964666858545923445834351423354386399582598870215699711893372406973714472272559442460153521965503667524872165037244468227646670615133870789746669320467839115246575077343323808036656227446280132010387659098095788200290675221006965356836460910331029645929060633121741622745036155188019984901744380258861266813913941945175879970313851833395089136528966660539327242629702730700134344700749001972060423130328516398354883868066564026944320365114394047226450613669058975394555559895421861183874663500236854104843430614048612044799159008513119270744397573667362406797724548596624448573568892975082883974663725627213818648212557159592518399844362848912166391126760373484465598707306391687114114499035240236167572396898113647530037027635378580196809545009192392335996843762662905571605827850844827319986971389226440741601310909536465293742978974984819408834706425217475049963335231143221638767279750109141202725777182323350337737982422705677325951774327379499775763741036943637401706388057478775279433551264294361972450827766227999706251714037905502283370933231270031724999375489153961665659947130606941643443358766482096018125175104228415962211628227292622377300892498993171440783100522979620969079056287756842909858708485447354118754026309904612287186257572904866462830255622531983052437270268797596742026627590631799083656104387454923758569327431654321964200373914597058041723888476123647477552466145016177089695164989102410560007293216314636443125475578089258256217114647988082926894545065968010084139068790861437142529839791162731483275061219247526818410175544946795112344897346034620538966116561768895245614350491304372620591192469306913705407002325817261669514693905866746297638537193644907194738682387714064760202431482355955194470332846239516820410596614155813663608356246155855726050370508505631965391346451410561608819408996013554979243139288488552249615666999079407597707884934635922642142829771373978547496772524736266871050000845630880794800775299507717949209455472923960825871106974809847059962218884964886313690156679923103286119403297932144115481484561184316637657537168942141035544193448160212546960861408230591005243699177602686650159834507831960591091156846314658811715842361874080619315706210161703167880003962738219723755100586291637819078206967947289908380238093674811018246530265961321923829081904539903452351954416095171473034818581385085221014275149917551444580630350707094113277351543055323527894408540029542616926014852969091827947167942484854189101193650283566607440173729422534105376710314576630354348537192048197592130406536875547908676537435924316967724493885136475624727920105958821500950451269476673182756938180743134905396538603888955359022407735999869311586545298925941641650068516363887967179092732663436493019918363286473525146224260988223346314785977665002386549086599394753527006785158058557191387611899623001569161623525687587550119754007943553365954073803350638702406648030415583946559186048056420520827552493396844547746858675305488378833211735295119522038525712897388628752537726252082017020966142755641479361831909902549124857200435694731532172317656347587149404629580533061312989755963409832718687476540603336170811491804211474067409007503094037834447475956614697898946256686471703274693723340265851489040539000317032358589736184424740882602610654212725215825631346183617783440016369074918810472960330644903178549886056431893347907328765315974080397154783115899442589974407113537065294464542547024408722162215914192592596302706203891171159101830781830357281724100209014928876497806678259119959962758748783182543327986107946914857473325547502196810214671866417346812884743821586563705062498299782119612998731488902815762774781948771535462346051298597708259297951215515554287435464506164159830753446199443815804393613879322989501625341376578898787837040866170409314585424428420856770696303154584639740745755286200312094438748556444459984008775770422805125284820247576267175624283307839287034793351785332204803849531745694403947699445518571175428410161413536465968744272827839785098056693295722389720374923777596201890268197700382780444947240441889231299346062476664980514315743219811063696758254815442279537286490781928316712809543496644023123283113325753415263119656015565087169182225934496598506406751269383713140330469160128626340914180322951721233652344975215897785964722860321854541602022139152947938932025405005008971202916686697193749407204810543707252810112228448695278207446276210533314227419428456340505959706294841578602000262513499290377016249006122372129621245514355660917953291549865403646866643630874466945262560705023957268891475129205562351889596515360940209575517258709436025098686249120311399388438178511103998202730471646324804471867965642750238609238956126757334910076404391165339687105311534001416764703126949089280023226787569651090892370305740151302366868409676740180250073481184181070069050705486564153388682872810391940327342213317600306874444648515925012587007072121471641837975702858693633437056593745999739448904096937446186947684861336153071118795681460907665609083179965180644175116744738196499585710737480546344256988242176104719189772708009857001965551455632447549944784573866434154702633397881853759300647359047969406921306123048365585703658397297645743708844016815814875484331577919799871050856770928161483172919626826891881864325265172577776858375587487343909074315773987053327658882315629811319321361533056093494072049320770358544242146212183714260499030251006360177951818882916891343884247490894788396161440238290983299931658119525091747126062510922836412255840250362385955053520059132500758256617295120429417688495840830720031676142372521554081060811162903254757212568419438467188938487614023259371235522833668542368546306583897331516323200882515342577877288551247579240831039724222140863535839558575411294241842808753328234957461606083162236925133845146582236248013649406359580339869414576303577774861644027558012810310749829086578934025124320136695948950525598446048364553199809268235694448862170600586407695134765451712492353423050310355685177666575820706944280920472805983771287198864555260959955994843530429749773436051748587394459435954323678402528594234008275633003334987125828597237029399374201846032012519241044641352042036676278274649571060882067050927686104656949746968066452423237579433521369723463320095626996844001079991471691055306381321395301697851031984193339525395977036052225935942165184854697893209199223257112337521276908088553409825779514275703128962740015900466718733012530970430012164572933250877682859914581292399648714123775884792467957714165480770035413705576926102574732772273043629642245862299325994514440697111128133889424346968256563830209083902605172806561578631575440002793148758633101709517531018800721059092534532433896775552053234603120890846698121894813497767386767853596896579928356619643863047177140177291148099365361612580639219511317251268912865158016575477350736834313520698623262157131012138465652418421294165191533932202437419528281769782113269701838370617104355183863413856729570293343227230550854311324092625594322233789397927279487918914158412842189092539267478950470378733649537410221420756450511360048231070639409429464355765843169084616743342200261624339340917760274447467194496564131467199306255470115870312652234179868334735084638794568336547153053029141338069279511009931747180537539284251787085729119949712936508045421393171768847333081946325543295496499412307295000153714859686465844282622291608082984967766684388291803913448367185377402024512034820479997394431361054473856615117704745139539316039656777444455454068308225085171820745949541358945161934328626032383775138828084470556339092942362651444305127398706986864398290744211570515675154475645735388907229036069949343480430564621187127719311098124637946880116546874805255024068428677046976066821255714723388148046789211583762397579240706784822939610050750599491711922095879539316149722291247343132678065041734545684218882002665175430694503915512696317609068192723794508313148948112452219631281643976824777358960136437313200035993650349074540590769073220134657516684848737231939649193837372216809029608884372519385781546110220276534744015499081778701927020033681979828094755804125317433221772981425857567845878149928375100599660384063533693872285954845831121972189600205171538804693688045484029741022670354234590660985937625381401232847924580591472088426862226245697715599228664636353517754931342721896801089122141934897140989217076690029387633733460330347391294521551249596799707786824253085733457139942335491395775642646545240468467146100396325495413933263561994496571495591475252895112054242223015564262449197883433587537070943787812516400868788861939067825038189147610167017890976654606035393171199775203865903539601179780549496917763225975564861494322275052180413145633270364511150728108820803349338389537860483294181970165182079098108841590875760334961100514790984473626154926241772448637297935668927414394404575242366097868591171242646749514650008621023040810613737992683189333165099513113890053768527452590180269049522691567679172437079870502246771505911047886226980177851502084461484309914716314821642470942627666133636849991345906911531761255282633888138792578967979120765596854735979623192643421606086297841284548965489048675550390517329390450673338641493222464966215126571758737816530656751985766845117533588253867082555545589054259546354919501038258623121320432419123696676061973750312866981080534694053527242920416849739607632462779029313178480221877915580479454961914211504260479797718730802431005513842133292070752929074079399403308642634099282446974191130853681129776374692899105284574687454447082422132792669791505308076842374099620965566602537314163958734503866607993572123103373551342259902959047846318135944283020960080671919820942904741601249928791213006935256107109461230412334163209453661711862267981610017096963826224470413611105583673340851070179149721985250749414106202765427598812123353677289399447348958195165755027895689803073899603368327765299341450534785576950225341154176494498995867550061529418037617385308697453916314230095662689448912974088479660007138896825847221511817620520085938795861329880800033030011611095248581720591733192510472772153695924761398429574441139954502870793717528166792027328560949688195342915009495300159735323246671061077503106464557286179248156394664149813503642137796515627204348587981230866311239015212219854143660321316795420970878311548592420069282627090912718977620345273913908801665965129777153651552766958289304822247712095152372111792262225170654679667446277677408864302740653867997938944972519988000427910632969817128740621339526055095200035422363974606280210152491948455573656715914135869766327266237233037428964672089215748546490970296931657054026593931591111326673162386552570131189716287180843948440297169172335310981814951285057267700090209380271220652635501060299975571325908115353039980070298652381688402099352712112358533057791278305336962209586764719668013714099904424751768827070120184370546366799293598667389895931645792478167510961686895188864491734317710657100127542146481883125362290911733694482911072431789516450330460726080036620406518277875097313059977529563637170275998875602358427824735494160693576539964605063665514609690884491860909492672847912792548887838934930661110176187179640621095754125267913181261269649300859406720396974063085860963312414007483520568516786899421425100192210759267799607409229581554397968447395567520226738885094104048297022609230674061591937725642636872048331763676144330664961636011376390279274745337763301994722442272621265986892175589323810343238822387470367766893998344665022997237438871410707230136269728003561090222223499285797117489701324813222619343737414990708887139181741164327999030941702657773185042792700861970100887116483891915579679619081390396961741707338756769948760729668954823224360158701491677362094824572782620739327406581923115797376286682444451466425372065690310691885214818420728914550046390459154700576210493835301228249615753863794043641318848762297322687821622288028715687530173260057806477919233155200272086194416397096419386279820499803543570730708856477717973506374489723569696186439084990420031356260862268810961694018803719307756680159086258070030089430782705632665140593172468940303127749287759903045659069141479689249333477284209683955208108931650600111551338899305468493017807022947944868760283882980521621198340000448061044256013844392127494515605419531536661852953955891594227392925512991806699075009079479438386532914880920280480116358202696494536226791986004010461599137813506355788615793477640596417025563674130161613930487831152194790002309857826388873188645450292517776163396618025814900435139832051320914253870843918029437819594086067305585564784225575297448434956569868271876927380178517971220538833176831690870409301385051483153320675167541988906820947436516961526923638424615910162763913946554657207203019617606133784837909408675167467744432833083959995992260675023811416228443646446185497181345386781507537195073564003825006781494371538431740551820901483293613673223081585928219266337764542101681550708619837392702031887696319751025533433725196577497746992463934963641450311266211389003686980126751617040866320394236308541232400226708255267058616604285883880632104933615387226495407736163269002391397349380953005495449842606075438026717241855746685225128211734146202342381650873132684775875656149610425100031308659274401526900501381782110540740230750637354477698903704206131182849950883880791303458815994397168641164056557213671702461954339065187593524595402303642382064979589597354838804089922455582149505710580490862908961411570045342615342568621252104463152933746332879039218963138317467051090063117796567129334324025844460639799353127825370284306601568174039264071511506029228258257534795363871145273814365013965229824307048249408463459182181057695233016241586706212250412265377475280581086936667435089286633517368143674950412173703105641884376076957786424105529335021797428416278399553318861028517209624847998215145700020774942654036280065429881423924026264873998931734041615719092411639608174359893754863892609042621095343428588059908502416723570416317701061063996953661843960792179862841138617576218040620392303342210390997284470616746844347236498454108509391229365062277634810719712205118773169583381048885143342632304239146079945880191882715705206541390024397112128418619152182167831643245866606963942594943317199885836135354548226228944373507964008778973065503008252174381257258827956234724259602988593625220900483210247966257827605206588375836781007675881798810457188550582647339606858802935711010933347476364026814627284890047266384743699393543523691188643306078323349224486561087788454539382142305050959147308650780881092479103462446269021827562007530418682295223591696814004871302146253745622994694588058290839350089458494178583690248088670312462378299795246772790884158396055996006744670070853416805863336727065708080757136675246973599800188788754719854055022525061364668975244830994580935089295088244728465576161742393428319030955628355818004163630460209463438355642021064115496063127335044069005796026835282693164541045722243985916025252313223970562503740662533536828621610010604462199991868728613428936870058846460258952958906803979843209570779722214525815015563942663663277732495554933050335902051063007720532316438350784032664237017556887821233267821608683606208588472039890176599325653169414842854931408860503322619150273431631272682380029990972209841085704638380092831004045930358107801336552111260016562225890708927246632689397603453163870354805840907469484503585808629603051760971344223487927187904147390780842125198574966392733783013671593661823296730879011404520274015610582405046656421610286896440768510487213298185545836887714737367382175395402150452538259605525390353310310570800872038310716109297251614712801816997336657446616151587208847416359013353255987727751978975032105848724425477623342684407516698747192137089157476888659092195851903095703635804664511582341226574588584364896674675510077645522929597223368217118211773815534909292675916959764062436933925621141018611296377875804801755462781030872501197178770990080558593992239813093756728092461901523854866208484743532531779468231685396387449238390802560169001785192919149371689123276260757906162029892393341391351488956469421021325323747436540461037652499641090514627757236313364419864596114609592576184356385850737882303071323517702268820925387174720473840108422277528312936932661837953971639187130359819097190233364028088633300230131919364739788589239408839726145616035538119343569725574613592876844224396119463885527375370934106006349389937578456255557137125995146014528424174635431350928601506081273183931919736354829319756657824185717826737660702756675706475430116189756354528903646571533376490994513408487072992306080241223590971369659299666282943772865437170174628500880085478003320467875541642314219805513458513650551728244353226188765515489237611875162439693835394186544092869607688638056805740723631151693142707980467358322335039432950582322442342410662374242047438116105605135299479612142785979887779329636047065293777708880827106676555111033338807587000036027249817006170365635783510243052003177144314531496909005854046473692703317736136746189055049342253954786427782094002259348179371227301839859003900679786651587284485921262010737786800334743761206131340802051430118338999544410945644627242096583227856159959905868968670237552022666428498850361864611135781543476741305989425570135244747015763997774587059296441941683810132579089109701906939546467374084014827941039543159164646042180642688237850735178883400320239466980384893402053253390003131908805566542778228903841419285961249689596406506955424936950397973095702105152652102767948971423441594410515827254361874969571461822608631642013045828798153999773754637170397176661131789068447274429248606592781498345204024061209402523469041913523939469973565320043067042379373723874622644784959940984595729793717341352639231827623776402750769858545739390560866582489737676153808235964272577969371009806605288873158081125982656483700580639534937682457594783502220015280482861107884625521484579519475611659439196664639973790398890471077261599230140692743048630717902916730352191460526902082280381064828756523228398044162519514109875867226584192815441812670267566529157906739367436586531290909362465770102520936852400497604912836249443877011886473890862000337964361328706985356230679769452064658168022331552428015998207474238815772656562927745193502982343858375691297360746155362487111323354176114160128516808311655870440560692134097111213480327228880810155670704874618982697897926411270136828913965142533951285542658612880482351371521576455345731937111333921803852635296426722231828371088548451506276505220766369163285165764603601818831735742107965748975361574355077917401672719083865975060867420350501637597348269459770554433153185993849640962600067833626914219732625072064233360655341161679351910517729137568405501216505217379032452920614327361415850573388231586070728585495756082106323724242734454074310705775497828032488809520105672618801469266257695681499075409082707766315696683532244973455104925679394794984102451307255856312166914404241986702117061511731995097610343843521004794049793364731779526593232812983695250803361633858518740771846336727743486384871796436904752656321913407455823334892946577797010728337206579988150904273868152110035296333996176757016025778987947384746754216622291301604329920992272353106033983306872956008348472810266196082318594437160977021952332104580074590223993925497088844500075480965807196746835458637459964144791260894620544442860952592485832239178172940226014531910465724667038231369991713139062437892341507470774747915831690150761284170296446602148193905142853768366351659685982080758955835511435273808450389829415814598227377819787439004401120850503382420064118653938492022776138097486198532375022745534125686197825278654938897361338664704060890072378207195108713875254514221451271646986650753127951871057921642833473892867728717948140964730490690893457095425079711814255087353788034510357608069382186078643927104939840220367506085153592139603973499611067492502065890520473272798999031052369560763182856484486035724452174895514750202470963473623852165822818607418928775292743714664856578653007939055457903496234593535663272939507784100851111024600065703387532954075767800653063417114990478114031216252187569084611506008749804924636311164875504892717457306526858327184781402719702631644883075929281905409709918595851960089500792420666827807672338569058230330469253284280189841348024022222469881487358142418154380466124370077153683499835223892027236261352624898474829045625949201874248652068465259123785409216821882695865542192040686976982779952944158517519406811893350169411789327786257198563669574306647575034159941053593919177600479845424877262962264576636621386381069840703484563051912060146432714385314918231226923263549553344954168808904936019061618669522245095463855774409539369387011843955327656449570340851628922864651013870589425466047747898645484704168240706728021363334239087668555796896516854466802178052919292923747203822224566773586347547199366396815333609282539197310200006331981783074376197854981084377987171213212989351857456580247363833598024718892667467085169044371399666404769277651489164991006045221950854323054537121151413195378178051270410803776419602750443300423582002101483840773625521237778677151760165050061786382925190024437819244556566178078630012980045585121358266636151401801217389631011509478674816232427514139147877046570771000773932227739284212417859664067946160892276380137499719550065655358804267937236900589210376507761647763422839445551592561590815974200139106779624798966515526345066221201229158646321152690681788062369609559817071250588513498290823076305915068571207564515254278510599536976541081464986269017442570308446550077191574473011280514994172463086315822944127212327209388349377836442050656191140191684587737974103440791544840388311518651622851472925897661296071994891784065422419894734755787361167226570265580938383280435232375895958057411717828343972149313503333692631152799075625122502494169676401943561613855036944279016942363115344604149963171151159971325329363335887536540335443605014138215813761788345311558354320495144391097956944577097145044510523504018599477325161823078068122825067038585824614809757894742966645060493809114593082144732534198576833633162590631728346437960226217431196037883658037937004655394909319111940665429688543925060016525482179735758713336973056040796777701068922204567730337329222951946077012416999031327866586291230484727152191722683524548826237138896999011230137680845654332117019118800134227254262282483931449325968863532436900257550743083932158504280817767610669330358886233836310418519740777245973023401386845582580586492017086000627214882010914701859378584056089454707772472584060854123512861979632540129593302632517050071116958023497817257228480550667708747154293057785951827652564942330781182040431843907037995970940026324102747366945927234636939151699316847043415988692316834550190474042165545931385365682477319015530486512168907159774300266687215813382411634921595483235991765833454176412647193608595030552207153473819168573767962818790932898419076380441317712206081959351810625496154131615206337419060509188248071462821902660526210691699768101566152176262716688945052920301099683113232546763496785772566048030283764464543712476008129136252556300792915564773853731057083518840219736674061645903041446890731386319591368709529257635063770919741877561824083137079795045379890210129425138420008870851608131827354629297966532043588113439610611116504810001507198957312238562938739194839369494532331542560889079675182992831367771782646261054417630895333805621733423985884788987441124041140426343011477727644725235855809124147185583407383574906787582651132244531159105269797963381009868302578360137174455841909067686424465809985848915365461590359506908218105788424891772688088267624624278543390140129909054452711342078719269728722587828680468707311108489270169944814916013410844262374962181397002927454016079804291863978551575492219759380972960829461283338434333030636019486549891781098357272846099750099115293285412001665566274102204552936411837749041409218772021959299359554297395918053516816929694652709443071659960921571932024092691872957467408848787751006658917049987530843218534184815812755713662769950071933292718666738759525642907249893817198187065127506285077235755653584701104748668084365602384430191754972457646362881692742794439168276506046293349037810587158390770515128165462447049848788359434795026000119123256632807004755911682574109408993876348768671137417784228127446688549848089098798746222419870306105977664211682897468839676809246954962794072746956489123491238263406596908725347949784697033932321154493239655041386632955539210932037730733131990000611036916814727492348076583667897274309516647714249017255414486155846819211360832793244077478305018391057244263904770116602882065721790318756062510093660077022329165600481796730684395975380777962691806082395602783742025820026098467818462098215262695337745492314850299571954352334829314781813198567025886108926950275466756593759856730596478136417024567545317976564316223320019354621653388867053303713960548437915444239059754645825120088541693562433087645965774102401583604562773572601425195117622106841926471592696569988866669098912532358676088302865784596716431669775458260313504642449394688761260618501531454280348367324114969791043854776000062014703124457183165609973322660509021514533106254292583916046414871032111351089087546902856020720993960294400603109085910591419946909922950922794494387112959753807833050578708923622307829576796034294779554333838911832465474176656442176195625695722152495569250377288399929021611538571247149525972987786077452171389687360504389565230438006963421359163430812177442245590154960281527271305451045295832956597336601488518215191783575425842592865586749501824267119497027864422222877097011368917290905551407949756287459888387137094196040964559617837280996976034534516359912233852810953590929686896606801485659541326654327099451519867731298955183492939312391740939393816006078260406573734619551994327021681258358747894601032654964603317108303663944406922007686640926361318062106511462312585395029405145110232687984860020562936320066606168393514485976552613315629478117526093720154305876675942695425746260380520504658995890509151366695991864598796639655840356655267844135492458938157156115239011427438735975671006168514009924214529304068693658704218850357430356453862267629457911448634646289670819537221848115606940406322147564931406437496277089191262655516602228137829464140215890048545933744706076824565903634195097844712866817285924578013084038879072994014795882179423852314385307256204485857522255184030535767398376447570432624345003466450855694554296527053133276608954359945442547815607073925287052798996861473202404288208369192611257533639832265740969486405930791577728042940894500368541938889960040594519868517295381419662841339117673463635723798611489305650435580969830554235869840319777544341548858743124603907626144900074035321415112464149516632769126074052923723968942063505398960874289149195676034380953998584324150270063321721938477170162703090007169885698738599355129658773155277640265614301876097203778915270914780840286981375776543601738406516267202329795107632441653735718439047996925196875004424536324196039685517930310896348772676273158923926546502437148036572640445145324364954868893324067262717567318764775681793686218215522584741280458813266682682423354548105879743403850693675954722814473674153835353000897787716474920479830909409878034916537034745949322232869095466814080637453697627797568011166414524501910371243899553103222568909787334326285199216181033937363516887459712371767457797667223141049117393712473660989523442726352546490825395626111034427987222492350735853704902734052574085323049030471534780859612771592287863939129756036552932870183847764425753478216454302644581616157266180303768904939049150036185086329158183670572925508359869968065765201845172752493400835464439413047811923495621157995544104507564406031742697928704807863185911294729494734207857472272939726362250829632894964264665844680110614622873438126666762156839106066923006249865974848799643847563288292298242771455915512164851559649927124143259831104827280778382436895439864479556286670945348492796087348064861325511616957583834348754992458626740101918829853513526325014551950743663673158707829659787635432563919606771908353216744105241188732492870439692141136112073652096931574161704687916061588339280918517444867020747436022620097942751493268699865925534059119845985431820802211562089528047258696133281163240899427181481765979745082941281450118421880587749620910834194311747702799650173421745609390329038760914972999049893100722995506871292257848887153113742767477273003869281043649399859149036255147945912993950598921199324311622208779596259628543459549880468216332645485107758624992468422929843352167632840238424631369111848198216869012365566563181349998553553008370724990134948194816316960201445583902537577658400085595062219320988337257767284074549637003218521530175146276940313508418910452602324005058160813929146473565973333816973185146915504838917453079276377007952134222066662758615150485941322759807583311481236922004252410553327276876312272149966799110007706843435168065418641991633751884415520327460966937199389305061000759070496742601440993826297646463610600732545318260043400515804482411956794506223454506022163508768981357228287824479908751220067584095516800136498467844274454946593004214865986336686627742617435200712471872455806977311419343850117272160781050392958760389438529606379820335705828358110088087324579324802710605641802878939260349686380897473455427964766014158907877869846641068837697224638834332066843375219830949901699033197252231091582300989086593120553801390811969089010279458843305079901112936051500040980753587583581460990521366915251001505347987507727056490022870891264961169645152320902158093704720846974515175707476626126468911706494309022076818497057641904522909179662835020937160305060909298675268200613964270980407976248029534384889240390296652319273951117083611701920017939919989941779396849311548826208868138250238184032464314105737994043614457251827758379002215022159960596349875074928366402588635842656148821141778694707090937873306052663363996372027574503206389157145204648911832951188707860676252472651307480398204295609448266887082320091238767502900114032727674338685515194980080951479747948933813232181785075909319379351954473148489872605387860369840443745801812746669931029853095179130388727984429858518710363407237999089876554283384277722130841288506571082061215975277336789763946159789613426110931958716585540017060540531220671233523665121111139113072927691380920163342689961847146224364093381227320342873936525476711784564042178094170622805954150787229493720902356162137642583276869230435717952111052487663397205462676360977148085306018841035473674689457776609469066768144519485623947093250391216460659187504713230362701886321279997502762522611692771330501948466200797367325059612752950742736672936549087774567324990531715583280973498655368971895295335553055122883354413215992705947541269607531740684903729940921271496620191956114005172762275063284973002476229833809881968982869279441869736683883031991499583822524667489138504528041955317114033688470723161249932776657840261396526087843144020984181058238978030698480900727619019339460241928159969964537708204408578812023244124514271755261833910575936515231085129064381111709352135153786172651726475449850067977807363075455072807374240601530451210619417332061306528626993037082167482903939205859766711159817490139416283344199234721588289263211329923285441082708771752409462529126462348294509480830126811952771858568119416544866851248202270011360236936788363938397467105575617078170187382120323722166766599025229982411865917383201218735877755951032112427958890116166513858380458452108912211512361023334518227816054203756568810759079996243421456163199032464831923200229659151852074619878452363484797621046707037894187688819857096610723212512940252755240982912668718568710080360097656597113694425530352832319273680692597541061372374265847295512964026927402409509098548352703491928693605822629800995735509561503920592046000646970324651246185252619808419682964178220415808625338284892323040009221593489889302016123756854593255520857543094305468784153253821871497155001528909336623249915856206647830119516999126170932039390636601619326232263641933231339079265011248800088238342318958682067029467721226766834731175612260869693525965556228994812448083602479749689924512189027580915080233106275443992934899886647017503691097925176789525549806302158217383767086071223770808896086652469902898319317886333250550941692337977278955057800053739179170961556189205623549628340198168239165533179923577713633544288027924472740270066103100159342097776910732902871530157880226629375262931618690370488721716578122428052688446384478208647920664524146336935253806907434847965341593733540291099940561497002651750924920901194543291877454977780280534227757920515807566168414395587659599994525778923743625861236111610183737345764719579636529949436363404762026658295810788265064519596137249051222540463793596172752334623645346283467909915686128565957288274153332120158527321466114633556250020709911439537541216689518195680303142630507766424836367022144928400050429666748628656802938720576778389728776395880098540333783377494626037225535636817379977009866990111777090558435246208087278882512126828685046507328152640271369918411880988189716557281348839684566085723210161130703862697702901279534840751303133004934837489919298114406542323700924681880333607088717866210503237334765539853991426837208817518252942663169858170607436845502511755854833618613840426678280195848010653535609530672561889872377127944895739821759920124937636781694249820060970937958322259131538031859914423585571739857189013176786061008388871336712437140113228209654259232217171619971191999522210373004801344592800105482185807826745158656570561182555594024825644779461389637086455348874905068114103715110883697316671964789684857119912449025270182710683241139113263293115416815330916972117535014903622769574597485015824867876375379234829601867797758185815408622381411083150365654859604892573677037452524320985327682725656036176719096196837748959704900824534041430379101250521032337720499461392866362747755484059667045501848196684535958034960079736147166383282576879355507397696218633245561062856713044207624168024383119383906250315784955585796503843580897720771578720074119647192464690627596423214246828204352087439179532976681907854052743070933812213036028435014482387463624655105731763114506919170613297482651806892964338696788227560369260135111925335334153751305319163188091666115708573970644874871991785454903931273097943162589942792522585143086182260460165446357616124543430564449653247773216205666793683214768400788866284029529880386934980338551350192097736440250201825351295201979286510751899223306993062000287347310233584737654905002836302855902345687513205146729492108787830586496592481982107094429073945616543373759616019569731950984758787317386430440820080924711323071046386242095356768024998261807608236960425627675337463555584791518723140046489348646925689400454500315020142803903621191734051916929328825497902149600992021455920329277165210242136183816300602931826196424128758588652991854866068339881683146145319122394310413070035674367239453599614953596728210984054625065246527111999589757077230143336417772874139492574061400758488870828488232952564427735683819329694243515314247631040068127263155197789519738441680469058384364308365426173738348645923604265124828716982806994475395517071621627066859083500312419427104994787200815727758709253603246545146451812328252114327740292455573550465348501884380017426936321137431058837010512117118741743154657590156372178129840155824753252813089213674335150417281293983133103385084601475302413379158857290751001028202884839073328742286065255059752973315879026882221794119635980415202038831096768098589514644244479118088089205675489074430143418187308718452620173327757963815956061945098299789985561354261683333976649731667500694846443820698030475199459759889864279680902138825380301852364824796996647976768368085382439564547770734535724389681994666460685905547547879830875978131791177956705425238076624089948442549282299779941428600355732971902463312161532895217480903938523853591689485365178589340044970918393685875813027335378520991142705424318626703057416622394896966919143009628046756269865449154486078721937284049414567924839320700183100050054668461516833563223157292373644025306112182650926490330177399102904625423853531950809592498032785358057918713156223443602448457736438493866543084088919763510099115509298547372412626053901078581873799555734251409861364224686421131590640565806808623602490127150815180192946976289856524719041228970839876783696362169999549578044854348167506502680706720797975561800791145290796832822133409198002568037912986783921934310378598420444290782841366029845489682381369379819757047864328113578669989953347057656690818111324564532812242662685085169535035686704613371978612904388779773767559673900967098892568729687297101567160377932771033620280508635572100154815056982598346153002064052513258372840420567894161102760358718196313094801176205924870869420369567949012288912334730350079367704886667021527365267379448923266583076548444829218850984805774425058386342419473607620224230019071464687735525762204372531288770311473258611796567681674861217726509659030572073704037607603128256133940331318511959721103940978039958990562085743725730700136805845526302551849930775183942230691663447865317416744805669578067186428732906874690556899393953340820802470391486684816492641205467257021655892680848822932982768703231530219113253669171277507513743476902245787118264356475571764905809348274022491035096046235858321860427012607912240266635128536683295715038313597991536151723237657296938835127458700024739459349806122108079042724237923612231699089451494834416727841861697232024200111425188359830635023753496924598952122955584545903429693403627622724779698407149765781429032987775820827481330005226300212317499844031074877055827397960455243501935542424401819943594159344803771866403372330734708993956885212597051524456508666782060084121070117977529998524003428431602159324190534387946246334205237821282961866716608055526848386509973987471532313194633286927427480587937800709559885106292090794637766941437269738948735924674395746191374427619507322756841050276965519125691359184528916434420865253116258389445055346435201591906783801656352099129348592550687280346080670445670428937698921161471297577621794395113394515835572221663702984854286561984008303980899090575400248375659445233513371675108537451507297200620428045011888075672789671885149755594023299365093825695180931379763232230570087845302289601909049856983810882383015714231528322284453053994926062689231220478646996609725043279243205902641398434261372383398501305060007397712584459308652000222477966550138853454947602977092695590620745620248463833321096973872135878698463065410283358628932899929952437677197413131797022311395586405581241097806569738918204372218291021468266748056270113183615849514145243850590105650739218957345628622033649792813172550122764680359865874939849454793129787175529794903008124716332847260820659365307453236682078848811717676748521847234815039304039768912019022034992687911839661179261056319947396604103626204939633132419213551920680818818767709963509607693734032736815062407951153328916380311814721289318950564831989041041811448797151822095733968110361994312731523915760132342632860926620349085562014675373762760356926924421173607727695032977751894222329022855091988138379334550896046563163519321669610192256770089257956999830391286789876854510418572623301360506610252541021203238036496409711113045441502623600117829194153340284096686153968652503746302153104592470315856546217378414392903774211588058048392796902790653616276464738070969436536246420303753321853952580311780125692621308828972028459772220044333303424618607049933570618488778953852719743442440336529622595470870311603787373051717125740019411202007742732297512461541256608579627181970669940364845949199861352327352085080249920592967526436220492036717467682434260801140378678693528481802596668489416291711676015532462552374563746474793060623044238976530854125616792291633238951153613816800299498065644470469396662901354925509554091439490942745006551211285293992305701159947873215571478821885438034773686928958028106187440486275173451097161634216571327992363979991862808613120486146834839420929835521665915405891685037812524978087378940601116754976738194802357713465164749710374233010375283842218149666151374996238076788173158778181705597489419577887544343750264277442447326113046174606747808065702543835765497357434241487543200115410727089518152245922409387328411893777412639066168409011557316210813497189056588988634173881774481383171687237064758425166018112969922023664059099997154223960461921608230016775273491604072918532618738983858172951024344471092444130173451275558469601057684945869552974001677764217583142675673928648738512812421991182348351957760012326481332845311717366838568323895819845834420602791878106587504441160270455602894000538119619363896072572474812006287592008707855681375868586983707124892512009488939197936669963324920105511720743699009221309304024107313118379554715798490457486201311993711481884459980572401582570665038569601034769604799744362498525033177765170941432083848571275645260259456090421313469827719067455029213224851592840879219709707127862609019825688726185881611660292300467075420346368433626822150129007761850659135399527621542597464157808778416564817104718341885645610512502440809471875407564441035511716033963262519774598152136886503991846048423681661419798096263366051737152621270343385003836925095055472860362711941735870442427301597541655574108677722066545373674475515937254886488531557343837095782690367846643853127983360572897406146829790461078595236825664040885699793868870092133732261775957657144874470013585879941638839254330808529846933151332942711790851419723494707216505481448744465383523794556498984196912171558473366220833380135109127873348607699874319503039464084547096509575894082429747312534597467827798008893162319990629798063795795110303852810662767868323128205832475136948720577438814006044573414797431897654208980072471045616165763733798174477016841852880197448287025595287439831167431222270122448710056828883390592901546298273361945824627843727084701893323272735057126410898752921034613888953652567724378412676389196235349966869411818288057683005541515235528141255620035960560370456981019240410923716769396629621129550861448597035388394122955107014988694651862072549761286457774677530126447645746139240154151047949681044200781767612487325939127643366272795162107748528848607111866247238411717408658951834085441022860990927462765857858369300877790091910849353442748701009303594370985774659994375686777299991728235413928297186585599445430376458541233087129129583874601810875682957528534230648628314799873428137797395152615396253093778419324709800165368457255446045732617604157440955985791732231086481351381104231891521532553867673930300967959429486959474606026372897044465938902358054536535373829500889114341706787966941342027327397860616371367164137630332621565578334379153420632078360477239753907565404226846346791877907473923179604806697773116297554898417978155446195335761716467820101429022759717334774692938304996978625828168993691762675093969101180176332842256887242441342213402429278506355374796718986059347630269830353359513142917724615980486151386754909328845681133496765489228700286445230431915415924597325118649841732648547388645466852995298553714211347217449182665890070467510355279640638862301676262805473785744774699257194306670538501225615840349555333337295263443979340526264933171571481064206330332066646199342793680044413934531475938202130331333780732261564879417306745714432813911996441103840363681128939488790223502085619310118778595674659083626843101926648156317216780397305293471718183673568356111239238322464801640127188937423525965707995243373101578634291747499896763516104978443656608741977884112202522098360063519982202786916880969560658215331501655727427905756379409938815436045183789241365976251134551268975617287482237239323812089940763695987288975361879731491678346752590742516364518749380761727532358360014164771286713715210921143549143379168909358784828071968600069861507144411902770881836121150321916842764819009131156598445951108266452923367434411003327496786626508147329298363909245080909875650418924248311908626226576290932915209667248460647684923112399338295261512013598146800601289847513370680081311329440521821356763986317290890458099783043823368801314972670395822542970126050875849207037416804890988917637508899312937716428595844583028435244882145968755323624539729904430299177779552112422766955829589784119667069872342794466133665077988233220174679502078143965166011280308964115394969015025330098910413751885006502741788567256181591338965476032716324850138935463301933352582110098802585417401355399314966607865683757696032973751487711050946604600003159560829415007578097474314013788842822885462718329766151828397464332640996318541043596760149081428701897948603148659781779634067797964830715193894291736862288330761759260823746440392032823839122797183361295425724248116733309542035083798419266454352410783080603005163532964379974060055088885311378864031040554904152414930834275490668100687343983295526683539273705896145707081297919597374320728783540391068695412030800283380106369927229414100145722959256136605007208349580546275800376529359545623800872630828900995652453303792719175879905917365555243623828695788818434375230636803623827121768291146797241673425632081665911870685686278546369549951914712858557234483831628412280178298173998742477897016066219710878836948676027555037363893590461181896175974368436405983844012829348783683537670971298455286698071257441654065108842822373206386537608045977672482703117175666806845217039210712876342147859672016800721794281647914829843721607900434256599492020500128501971049542396486902816570481850898574332683411001024289666036003553783688559833124965374834005272984500211187019895394787463273539212414359318708349502508853626233232311167061696246716090547721701094821502636657060990340427121771203859403759899696394080522752413815511210640631630325083794740381013366048891618828744900798049160198097953804485350341269976568337022349389072120491291324729076150260643153222901915902013111236775733885732417846091112533287671708356585875456497239828021019713110410891624030268614150114796134390706513821793806736049875268461366896732790061619179186959990023629721846065309689791502033784450365919794849734278294211675206568451161100211974678291168512731340792914942829372901802579661615676013088948509287412562916222826297831481677788971835877156694336377752687272242630905496676585566703580240400879679539892647157136350749164452898478754995204923423467274040626733991022977222215003541376164993579468366653496473886566881646442417680977370650611758390048734210049430018153502376459596560902943266483363436024140760473541382874600990423646167601552516438108014798422078996128370644275749629822288400913662275615347619967781601125958378028051012567729989424953348526149634311413593184169484839678585189125342778417632220741041444798472570243013871401917096108252152484440208905192648362452999202663415247210127374186176558112608038723982894069505931709353930501184525120719193896491641903602245819948651965018880572886517041922191109279808463888389167951305046097603853930294463636226277174215473391716079823382235482726218947560474896451412766396050694530622671397184581352767669507182392032871156729547051839152231310748513109078265403861379036004155521726794428518019602130164658408478578292474456669286327816082202361156511342744280037642243045225399845243527203488119425752889603194703109892337666624530601838867155762555294736242381834169996747245046669507148835470040416062161571054646705353962608800801653409498576946900720861500195920741976703054147311838272758790265322244760877528953359888506712251436993289546163900365210834094190540744363605821896747503663157163324582814370191789843958063056534584894865833962310896847703428581739886521171332483254728966658871351454077965806949182770504970055043143473616427083439413946236759574180090209110571666724933611703648005949966455676469052023401676753229874609477474724105787760971828618938174121809568983944092774700060064338515964946418967989986674709769494554431198843529292486644259264561915715711209764846810495765576365940589658936720358035102714796269529813989954754114361565059559108006207599249372340633888549803464749625416414941521658235834674817914054042111646062949476318015658334292730574796924543791923955973387394624177354447478607174826972272275774247078631354293464791214708586015517736062327647727583097584120073646230545683188020030092110420521132928838823352821972134941362341499110997013474717756540379242492253501203898084064457908029855430708853724035830087559131736821681722343426361273055062337821785889999824045447463613686012017116152069067848545431559318771778754043150224891753559074748329731070079459334897301585630687699495509545874920872839042568953795902872412989913736135783033719711146572776438107812423221860381344296990938368072336612755260316648763130172231410870267767564448641350277165753200300973723901396169357969893881377137474105135837315404044825168017391252011777461217648951386639123633898745972556415427165770097633501131794484113671928765462408463942580839376529517722144051436069817941744495079168396658209270670851596142974316861681323021654373070959812525111334766471768600213022990712720660935780764748143926880996471171540719702534937647296159526988479421003111940529763851862919754545266825609234702808539961490144115859724111881650892334347155528550196257215689077159750158263204487724682228040848522925415099956545980921663212269653365095151651333973700960363608275675620869545062316057660103031148870761661631418002266134301180920206485488540949646004376452155308593931688496039414630799898492864099258263158111113337568264069059152729154531748562300573370267046988539560535602312583858580713010724342918605605165257068411381662747309044611444731657054195518928113287110304317230312539752229363898786842709002426510009845834238103079691405260145044454345290505351150968855240286804179969770226944896343900078185083916486115680295979440380460810335453534926464529986502080416467642616149003449315218010414631764152284795684780586323537764011522621667302833444695776350479330168530191584008866445048455760875400478038140020387077020808778011365311742111344978221695324259790488450934484893893264951125961468401784383925011277555919061897267892982078566597308591329083728847713319056205830044562080999644434052899760033896394924719149031326216367975649261124860208410094842964811141118827915028690820049327723645343070520177787104521982420323291078229902489026207581204336067191183461336274910193487964355260744215286919077539586074424745302300530899084925103044298679693926791923342538891148534503918696539529554290832572153007848499268327180576859658804599229976661497501779259196974608840758395551985693056000663872291355210412776388043094937790366365434498423447323401683775535511032479799939930569431644833080477331333647135850363461263855098905756888776098415048634604229273803059481195855596286994329551374581485720395644187984954226377375647603858316665125474031184279855113359149806511919257026465532341935382089272366510728215595331681268312777094242627178769593805127070520320848761795907964897616298554668760031791640951083063812070031833500781110194131607142503342518805571446360349776821892801667475388142231726050148709591778209192496642868966311316804854085878145912290683233763268260117488812577527606267819113357540611809157875641634986468787684266608685027986911733772861765237389249022421390271116132744511214524611848911776740495272686181000661693174982964031675380450397599273779835948735937162028803329488924036911266576082870948580616246788967392374442212581103209910170183911503695583248986493322547436360718339324096900046662632173953023117531355603602624103803454738127761277192375876532652549347982790558841892248541404909876409114431677613493853589585942435478163320838425375896741656624673160761965323760237625534160970319119130415014480740192236014201936649010074061344985361476637484654045167850469109824122062242119908463068711587161507233279002154723672261609151311773812023089498717842988632708524106944000574361688941710250398348749673681339263431464044704781230398068133498211552307814167909906422362169476302331227182905334503068385957100385905903553008148026414007878579148368969785762192970252523423946454491376029359836979198554639345027191222271105366083548398271706356691014159422540718726103382370431640797164013608115592198860732953631829801054288299575179210132312019581409166830294919899987224745417118373947305162739972670005870805432608697586889701200075174202092253263205445632001628226583535653673914601151477531650492311665707395099227429659906666172905660043041091534107174024721629730293111993264779005881686891349520930013143051196832644254438668858565486765203666607455404756178736120271253386138910881709895231835700660155780873733636861478156600199506704823288835320271543275141531932715065580530094120830992330987900403092429984062265047248925483299584433113063404007606423918114732057383151310490057147455510076371130822787688579015254178776613508082734523587990730542600289880752073447106538359405082332864263336966913877621419670421204305725031999349096791556354939935435729279981249963855294498110635557649259979127479773568019069599634808819554047037276842593594643452291286267125537593971438525164966931184973321674764788388209639703674974482601026893880567782680883236692820795923190057159603254221333762638254845417577917493297997602649159369403862058250201915423686696301854967490923155760619334510438159634314079134599325492444912173649117712636165393666690837034496640996761411531902387241480841866494899843199775088590880955720106789434778767968333306675093813495433156931321322188867507107119697025514738008813846068641350730697020785779479808246981208606453036073502710944367814541055177370284268037205460072587804296253029093280678669134410368944225336971450448790281267401714329462350467543255247045030552816789637201999399853651148534893306202624601308751968102373867704236366451149618913782776158779652439483131291624242215084936912854462457156129661503414315449454202381351557351363025598475092550949169695472354215276708275028775050979215658628735653622893706490844971296539678518793275763051647532172214810245258743321121987239193981083788075616839824546525435441485395703353795209209632986113691479523416905240586633105204246021392455172303150344081626465064560185373793689275094069040121011773931108300950358763679219164656065641951722161988846809779439546827794671824045571748847343872515967339591753332243161882434356741220509213202393970742657796399127313843864967387916415467827672039748702501280419417776685305137045741432280493981990899737229250112572870315974456234819332022509839881091919167714078162684520682752129464715859135943545063068824046331465796461437283965731803127740659952025826739306080795268133045580857814432991459911948889458091559523067130427351655053171623882219254152626625887329650110921591654887384599015477122624077104165180678346824455520895458918338082171411988001024789408814270542052301260740097731387434313531990924722976315719922581681816620609237044275167932383969131154917186819317605527533434479145199355587433181138289678865031966994160559074987108277228168012163503498426179025993689951763572981973926793953871163314697227247353469788810749338909748434850735161461137139974113699408482598613578629090423482958721098439942374989311556459210327468053799896910122036521657512973007039736250176355875762082632364402041550545079398691689257794114975297142809481218660685833913352712141200604813279142725999385637246522073523419794867977958000402421065434615577544490340337580989243002321406922310864572826671532433389148300396721251745527471731879769000857773512482827219551444350090068619152643915936732448843861309519060106583047182934458395480683410116408818523387626500501501886362278947305750947739485192001610989888206327451913643898029027439518067115344186894676415409514332283393532550916275600486006374220644259188943009317349913186951709777982832293331264003331515174096069179930625932450288222470352286540586677733777242272714220802914273878185435270428233982705901675625480830926469168972607085735876550666148545321717730454163742779729615529716813145013928962069794026210705398330601922458242651339412595345903924899407293629311747067460692947077744937247982340997893119560786048504760895114194564844647927168529075003359438069933265018515243524803970680787323821799171490389888228628215761064815241256425934915541251046679416534840963993899550970115920503852192315219522744973786133156977956784171027543558540220748960172965653055708887134652919530052879877023430544307680495417774943267489323644316247110150822979933205055156272480314859586643386255518231160655228487796740003532062084161313034669196164950569778757039252813334870551030145121780341493047636021716234450850093614992095693284718568142365288136448208024328988228807900075043345402916166282397093190513757389643745629303996848945749805826192630197854727678595820166330771598065553479762717445140404672786218669261065315983561032579594578396569211360506526084267075200380709376076974552306180959780800719313121335460029749320406318108492565528676632421936760209393006426983642287093207895846578721864021164059024018401914047134146316083698463788564430520484952455378196697693540059627341383950640993446655458940159176197184389288699081194689944135640218894598207803135102819916421099594449691665674557757922501378968349531742672564675448349145878681638680425447257578682798540906798238799895067312228017005120609807187411366942473100830028865244304491004235628768882188979315861638802153515865592500501031389186089228855038905733080993370504570875838490518470715186651169420686357808521206454979849778831953282517308261597083188853046310979783338533281408109109449107624973559302083682254944594269438139999476108645141857872580124434755210680862145472705695268966979188230883387182929849188133668257230357387898787865569799127602112800207287462880864454460499281500102462951156174450531456559790430124188186455733095641854390832213045153668979846047746774713222196663217072225275168760425541865994197385618872227010904286682080641102900422013960315619371546367072908698513832839367080187455867547972252486887190529368610079991904028116143548309296476035083523439931219063657636752805719442924605192574681442114071552316146182010487622369043023696271172518814087596832337163814770035326822337412947907288551106203272026152235979898752596334720936170853175140714817998350641338542085589395988290235052658732422883458960628022623876817655171580931736367929563073624875235329769051078512388837993527079900082506225129115791593521670609116967369739095015746631874491235711677616714145984964895983834785574888466003535277364954292689623052477930045710561224663702561279487412320637638407786778525406405738206446483876814495748889683152472122837895546867382053769989387436802435347431909057023376399089945771571440179275776617948366425151907630270054334323553052597271805190225932666446005419295328518691737464618528526868724252404153210374214382871879445371510316002752309738103436457731427728439938166857480793013003611946914760068808564283593759125804525284246674626380760631590744053582811903776316653094683315961332647860729412578811335383205748774272700172544216750332976710181385007204819221475141489798684572913053519487342659273103395965393719712455742180744719814398548944495157647613038386673377728487513564497491387467973316680998537220637649237087955552547277374011121655592566699793932957139043419158505175376792073080653957894288346643062451260196191510159110066322018251931154346028285116187382094284065374990652275260670692726880088718491872913111527839464004062153682185904030355479099466146696051552240328806332423109587256166376944009842372632297375395252706035044933750888713447519708281968019712659931586462387816448556985028708149287708807603915530700002263953471157140442648639197379362638278385508752800973155001181173567715972120846873464500116638764692966861771437212953012907910720928033488099675889319720448647493410053369134668428245774007859919426167805001836989818312854883477397265569753998519465580720853722259446253310725692376026570770440606265279357872553764195790530310445788253389762802372271707078213147601136949938862830248697864055686238439462101451746629816137640824527154809181211021383620066799157096104196199772932324413000749839312809689648284086970187993993191158134632389231938778387230742504650819356106813501743460490940250875336112279980661954809061161408768098143118413898119664018673655043648189312818555202204586923771390211442952270524278689217288251804087501167263669001118578291706857058173470268147145139301058939978224727565584851786504332946132533718536070180620697776817193219293992071994155020005491896466021484969520248188026988433959027497480980888441369969414470414134806822999851913393735856713279582395880141738559768087358109666865825992940513255336929025202083165404248231300473947679517671247919658733364240559566850909318882413227606088768522550725898797978609734976303077734939816176770304991310884738016946840483201546880579718342363048307657308313119952744013342572142349812818920872735249646832672973338500822288558604257812362007928780677863349761481094134552616289028206774191198829355875891778644090099354134257254901529789215209469710376194670457783451746661793486060777091421637529321903729116419702862881885571529512326338716864405369293917591778796984111967533269235651308125564797202318541282784096995339985456432893491631461528991665161121696597598264146538394514281447382303017786212434083734389739835804993866352945825788252331366140415286954722302132842343372120937499943120271177895787846721836693531232767824679276954393303796032637309837174254473129949449284937123094649747396445711055504537051090975803985419198932569357580869592567809668244375822620988535321292493198891112508350882508313092113755899523354199793507937287654054854204423282262480069414091837841953846794010724190483224706709331501659344803076314381155266214179656394875224445559882913679314493835692067734265606574645631401781169545373295604343541216248433118422505278767672096786598623672592609869206569427627385153831403350181517381607241274115921966720192266242897954134449993149828219944804945027216704004651003281145413733295629000361064597424380818883671117665749804923304881099260629777086776160304587241643298423958589777549208753608649445416641142392189088215079414647238826240705614836252902875439694749192930422673924802771453578887870554927700974486082303184211045091536607866383200676719479551100112645429131607697667121801403558667794461521887297992690217481175559499305210529275635393506684346033226108185541751378378298460620396540918335807529106799629325990355370174498373532514980875537769408174217535839230243673189119115987083542675469149955988361321424183175526571074241012412953682467486353099814981815145143875424150211549787330214417669144143730281859749773848795099521046278620689193412578253784763115764982297916608256345095117754885799113378350596878080161256599958919936114220309268877783983503591495802645743130655605464415676271964398258229611024483703166802796782225901868457155993798572903795718011132605083562583451505635959331093942913805421452631167729616712114949517658714614484120473592912972032612913150125389009292052830192771608563482533452776799941547315313477926158780259768184362538927977633424660138818930346803650223155428723356441907939027481611192821212534373126214611862693897537690407278945865019388149436894602672699835574587348120152994839947533643208041648020976469644142643376038901147945020892501831819698501506192630301890621603652972203506477609253866914305384460212220392587589710677150953983632670919065784745285097956715493251472071480142586572679392166917843996235730770828116930550739968479281046218958136539104304593473659072123615186118777433920910493037398410249551526159637904394700307679953821085787722144525416093064198089573043397165196385912103233950002994889734750020299958218455579124130490204158675197967327900928769743061436549577964798195213959855505172281509136514884294163526145348367372993610418840573441765559773188761550779723065870244562497391686400876141571980676811877664125636546243859788864962681022156176767581269971819693387659038489365538433404027359216064398478617187389506860878330864678912203195972172082838863893243079002292050265771975079635171514673124598500684082761385324627246101569826221736569734567394506603040938141515932792240569245364361119720080686523842871352635128713724047307632377339714709769689159449093189602703657502302689878677219187875603352836352260385549544460502980080706164824883523339290294758308895783218898803402719590401171575193002186368826588805723353921590130482699297859621672892289712637501571891762941773667251333259656891257645610623891980865910238116409910070233862093866969531142010343713781151502300271053544557988581662354112134748402590392517791348398452408689050286739214093114080463437000794665906317818463794827972900112256111602283603617392731882051808204930415580642082357216136014916094393944961179003447740541018091023084043901279367368035048100990453062816834095102916330772460793582472396455250807917356699945948193299738043226244353244107014166337083079015593518834263502120175299670102249648172103738493726028831777636091662169448719857257692673080385981888737886627274920254008767551417095123738866931390496549901085425235302129809994981984274576405257559135177378751140906821953693830090982682318363780589040177788141875919629664659031369919031866651742556660526296620371182435447402418698132293473821876974542942436945957461138515200049644488019642389018316001746830933279747498135316540019578983526812214711261965013748436912497539106469690990163446081962752118263752919582989513095803407020604709674015279890921039185297048184866152559276527899788113868675820116168636377049155042934258621591827122739647609962828028319711470270662549666458657065206256876517743447272267081034652344710726363399582233531551704859040650063098917073370562972162886834520593597651403344968871591316101025426401838781092664268962023235124168854293559992718565077928646049637408770722556893013548005317960792248917319177139608879257464057794745934594565426625079130640327080569618812928962886494022203694235073447676200988574412063456360592134123853707078153206956332195999264246082372190120269972913104399570914204296867488030078878734233830295656958045247361271154814590765920044792630719202330533104623506360030017383476801955942588295076818147828182882291403770639286638688563355310778896280172934717897558693996279984773637455814958217858316432427543141092670735732783461854836462654443446591812872032840436843870321205505834765702602695989999927504034462136496046642344546487980399039311661688712392280868141454730998367177037463257121805681983356006729797902646879941728285459924450800646111943338443216386317807908884220198532869490527434438035555241543031555373811439698052419338685696322282530866000493241713750003546850295306287569927731737743599337773717948595703337148161434622773708727694044165352432167815258775346762588763687102113258024282877087436944151807419899555193864137513320319473519066318791169529291399226666130616584850379161449208575145170348930482603793863977992353285216234781520303663591611606673196761492515960512451456280983764937077056188270841490283571372889441091037849918050713429026940106348486816445408615173337570862349371812614864273684334004983227739473050589873963845891598853397592102820657486750245107382110474872735890392494172797572975089698794241958760580415731078357535746887112089036593623318590024754416504159800047924342215868383747425774343061135266172672536649079924466930693501141938994350003986396066890861723491305418150410891753295947205995857800064061953742474954525995083952795205290769537243069104607854022316944968419017213895807327386213217311351895858371663474507966962880831216148043590387319064416359069618272775127943472718022196289380378286712488206121686385688961489330288323061305884886749270722328001176970665747402666401849125348517705839117635268447528945576407645777627162971354468298862261045859812495442122130532741402284591431511208256047765068242225540844470796242872351108803520474781871228619168775768083675982226358487596987875941531484897665430828747103149366667134681653237653961050791031905896240545741853553012040514091471166815545139439247599179174621525985360376754409702950836068269520832870740822912204803048051700248292871542208720753927229525226346119778975313880302296423324804252843509659116872799461533660169967042052278015559186773013048500709012098117245052707823748858911570387190004641831131694691045000119252557449993900057205447893394103119949542416643537590503962996739100643931763696941768561180223941003437697812671436148550911443066454965099846306994860343200242307082153398945275898201674910366198866450676859043545994962094465150169779706184308235097444713489097463903348253049586683181092730510554616565496181056265977626374053965201710293199162619356143351860328349095377155600734599674241099190794462783107267380121860886778025068779756843253072157428179861165627484682702352034766021631453996200264354701868848095094806989354628982603530310325701083691625918994056888037245215662243140258568394996430646751948160105546370888601000477700562886568837696711855890233893487971543364611828955562002929875123752600161494366851452499570882699892021015069751128989100559961291122565216899583143901054257057478917817034433285569810675907285354719700508569790904093081978901894489723257692424885697561483098888580312871414765424336460828242900087169921315007606454327642278966480716946028425866243932215049982185961522400576273841988041990040807603025010055471790007694556367201132552842162258367860886944630299079231446025549349440239376324680272243459775951491371594459332840615866507591812702427513236081813771175532895673265651977620991917739102711136429445128409314780794500900524423431704083816712828824669518840961159857756974112054438634648608773945510321934380836517034830729445622287741720559599869974048840617387533793930526055991723169224838853358970140360648101055001625794475211353113174730115254162829412689015237629263873705958665315605654001347838039569487438144188152773976578828562658640054223178874987425718790596613414047758304831988733457164314068074597582019029176555826355811126518679116997690391605534653376464269656156331591680197465668270080000959746910206888845000777044208521684214668543451667553478389551869191616110212610698975234289196154406246476294680471834396098550635956859548161463728700001585191835766760779531505469725217615799465550059678348912363764175377336128723209215101305365964638379632392283199094375301760232868857010984958208673178461388280927919074813848051559666068311487721818764506080085406193967182580397992273343194994714224948037211315216149486545240663661656269108224836176804766348362469371079367593152765536115212386897121013075296672073395225165017767403933263381430594013259456461546906671775742398126574898660893044123785108525729348272587517118718203406761381860694868072952857389412075612334511845258804659483345042562523754426047197687676864647807816989380299389878410507241329566908561737780046679820937938532366811108667426592764730630004772295697670122282018968126875529306085910950749322913487169657248542937971497479103890772682743953322941140680923702989300002354744897822905055060883160355729530750883560832331801364639899375353637608350224601429140613817916812751892218476706609033861624087106887915347173997461231313658399871422485416631768006290093150499930916521115999719878255262323147996074667929365389745745532179700217587989145631084374462829582230923156317623587873915674061334512495547678540221953451037188456941795990554744044916677032972894726814382367757920618790712532958778885777175901602083271941366854694942493792018022651567422526257689859361772058563455029852884551541316165858169184654459590995751963813747844389454715484651622892746585565940552512125143066426566310331838349969870335103487899612761242290976447523502772599363127580604792692279829840862966247091856329863464594609211876343273405125626117412185551199194062615685464770832325613286161868692325518402668972957847332704058161770182389285887431071083618685377147205623339064053564609482618438704288250925306530158859026415925397865247915339368329926289679389552983200304801875398203526660471839306541024251331263053858347710624136258810001456983570202310133697651395343346022496418059829335711720260672238516885464414605574579392988236927164477171824424856344982733613186141238998056389406169061935501098704868672476422202540498812109434265585251882864375618628746815400747611375137243204143505169382108526766433574942363716725646415948951865543288836225700317952889562075151667265056071557258980756592401072563129509023037249461371188769808213858440329979331484792917562091215868313770681618425080915359529906369500911136232900478349627278493344769982120567175541270135172877445499479608659315962824316633550294521060107255864669444504534512620852215580783977534097990413610419774698414565318161711004624783222378457389270196900163144774878739942776941334800049979980534632469090971600075766859775192598457630674069268811347541432755968999771740246536059325881203004389411975676147521117844517948750886931682402360698359046342403506842894350156285520433885322869643076758344732003290080905995259922599726253112237516724370952525843289108636063870056039355290427486149531180630012733229531935202985365806889899561368493315554253679706193364365631152737102216256126450328713829643695689479232502964037345531785706096756512831459705787313694113978045760929646164148196122118979877269795191138955481312432886155063815436485617730531843941778194024464566247243344260541644800210964533486793627979556114621083431660246349549388355979701167098167537441135900043573449586877579457676661112941377987515958139171554702166742015087429942963439899754195913295128061255229891286359319438806363922945654489530834803053407600821440927401166417042486930357105943790020535225709058084306805656355141731349462706524527027816016378274987968482496500406303556416034581863659245115849852091386562816518660601971498904717579859591848341223137016420790418278050638818561535544794258429089231006153444507666194691943467043730208749627880477853881143260915014321771226110049651277415919393962593086769979201085214456322473762062176561984501210453878583091040143275731364789487237945290657767117024999111225865293328329742335316631404322700887852541082512647314140900419152204455417633540188834440399535634614353410109769910479371341793914434512086416494389663192516022901409256411167364038879545223833420859370189838522852594171112162062042072666591750007459880153283498081011909855748898265579386320806782034584127976029707881311585465988103157708716908854268795643485556138283388139088137723032984323082050620238184371601066409781989947782010668308841058066427594864034590513941041041858575036333183905851992075307465926622182477358314083379419722445533113082973125627509078797179119639655823290164185590656652841179767480000706728588282184419534684912160167235749682788069933336403561999228711007109511038373146815834315889525904258808932921870299078857226945308022252447191967179066475961935592426362921102617303338422894560624328619703488807416619873431148756499401726603938356502993488181649598232639996199759453579717665789988311579369616530980653222530268595336741638239650151810551599413655056932128871034314722165746245668283696778177621958659465811792800753171989236289586201031998490062373169812814325273797674347547072277347470891329967669108971066989907643012492380176428025118915083072265064579057306733827868163880824347483194206443350467213789259515949325102292470019300451528814322408859837892589705200594079634246609957148742524469102249922641354262733322942409821891551366050512385280134307619406095551738331997450561937660748455262206059434555829283156677133878979774772309796748097269300431386589157733088391910147255744902326898455999028243223548958036068573617098073218547569432126148848184661686863600862584791858881744309148200911617974753061322404957491052734159123621738330503827992554863003861171076376715857385711849142730406235193032912123001321522045341542187982504434663676026469469059509641725502077452651958372434647342181181520536892605858087499895379106469151192950354894210921502293883187551552272399091235235559321279351328914051436266046354878737753423535209507716810209861741576312778989894744277042362305703924438410638941387507455578268104594378424970185851524546685372038726458403807791634361028653643877666411356330637043443240809433250688984507165187650063758029832022082260762086359910583380890368121835216349452930098214135879810586821206028486703366236036662047604012848341391316056858718011440401453460088911212014948505221838671625485803156451959253339102066775924279615461320060644369992180527437854101277423312513058045232867283402935203503615929993710621287264038410562266527521696253979604637620101286351777453361000341563055145831063876122096805032901941809760266814730814762514390245780360260449515725509651526771107865040432349072426185666976639174303733405495516115094722207105919765992731290191676124902689934603351952751561898381873093359121490816942622171971731120503229443451877812067331221163974077661131205372343590134794085720789609086580602768852648660332910931454281051255168531055233962469897709935073863974147857495729107977948073595653813266283891639605354682090492609050752939119060672957788013935284472785483116203102016062814656217696933332739690729396664334880860345127724007521945185827573270967554332806792259421856330228062124050743416111162154775836518520857566309803611891414360562915351171339353955383498410740237808303190020359877231696647345114410351446957550348403653525347010765440463909928954323838243701014553821376454216467018152357190749804459209124376502312328146744420195537470959248575938282990892112263350704726507455769199469260592666463559054288893008549459543549872835230157666637137881221378086769313545140111049841682449717912251290329453342019528245887039604834197065793846972341510953163818861896622794112375547261059509838147394687542051563237566577556138764321962738473318481156406626667568472716354148968113173462808892549081889086259831704067628495685030021778130949647012704708765130343397292612776178901313046163674074465159073230976573087858218571293560296741921965538337523543012998510707913280893218205643487787620948244520248331289822410474602512749147005448674393105007523682087046096101071414168169320401652729908897682155784572095409716859648313165412877825841778160589852616031623954806691348436124352726374557314519377243600535340579221782002299500947016561441793027993817200516807598875128503901732101298571121479275396332819101155909134909601390730120387639565663781644409473743078871908868736526956922716680847823287375726708106472519170306441300981644971203223941307877209658646517066653441158825015456311183417587932987578623582762763656148662131282617709658866392118067728868201612680481798225950405069732027209622887111550414796079704277597986414410942849896003408865221629474544626343160398865491454458400149350825769082395027635065816291980704085154739210435175378097065713986872081288650439263477026284396053000272086414807658846528251457155942198567534304076137053807982509993018501615305600745956163929661725609123884483961841378447635277236310355820684448298581850477047091625606524660973096648916431927076388059657371791716770290100435136437048837128768408907982419998523243667618015727373728886027897731242150756190134366775683691128164959122700353209840283129078312180140958600390752461943697462944620453177206520087354362911033469648384862555171144701239340996134939431820449109012359956646871502410936404220967963920349317445457097360527248295360895346413295668778658383993089972533948242618792986736182062323028457425031442515317094206968567545433394529825897189491070102911907773213218556569380908044702540882708748999717606039445856921805694100884693960427236884322076144015031093046909211943418428965847745776928469294475761705637301681071617484271307196190513819545696691844007045131427022284052293852999666334554419053948563642811067579679814496995465094078046863644092295594111528821195440847219798354102264671373091170185635407879136958495818651089895519186956834014266000789804720980888952188130694126188039393995681669190094954710704001133405535728437416656763726676102899797317302826136180987033369567050312938100638613848766870261544859201341642984267895457338068611083567745230092418618628165230520280255944646597826285938536060271233963807062682813409592152001118245923942678150582878465024932470560661878696281663006488667974714000605815006392606659920462177340510990705536937722524948891956873283422526533909939548761739819069745615521446084243525943620341451418388147154864277356238936248882763023421926521675986239054134279177351679240622500034422274036202786036648559535330602198400183560181804514881371691957295873397799153599697426847866339610964991764343522767006694571336923967641890203671005983823262365805467772253328381843788555942748410316427004999042963948900415419999729928307899080042981234637377739541685590589714614046486934001586563130912933624989702179156056377992748619578575038087344353358538621770129758658859018047730999947812513693100871613763132731290830823283172903274547764118246721717574012559698572554761357118616930313613305431997239817491959073849836913302764142586593003617347270557367234827690821498036670638115895586341431782191004997117183168776143211599639409224600644592025065121011349319385199796698938120965204171124619736764939201830365292826700952305044830451049098600722876765392941366312812410105740730476862427388568910757844039997232790177079052556884176384929275893364225962293894888615357992314960636306176434789835681938324964371525621885185916750574456089595557723012893939405878885409533106113144511061928891257454020001271278640790227416828249455980957926146007430041239878220954947984235533080710876950996157813822347649171539237409487856434389459344076233803135029191999714424172369253449295913494245835571780648928733793628722280999915715400443502793846136196439186831850341197529294399772956268184772116441746544677620304131897359443847564666022716884468862994586128189583087739125651653811638794720462202606067940676600600969858594948126160566511962827759845711236042990041830870438982361419718887119050194790251685802247274420516896300928601467907775464701523116930765348106181546540337954193981659694856131014264665725579922208326261853822621498599168254317006022294241594790574713914532615734689072873968118646602965740593798983978638226450246191483224215938060159249858910044526748977696899606514270568957603644658693393748062176896691112296716747386573886195998124740149286419586857017100780934894342677425344972195466066110742242620897506893590229343009572201109877183031551079134696001483544101805035616765869309095008469048851872426685275978134532708089607781038063602950988961078655856664894668356363695786205993570038309522726903165009553294584821713682031025524570668848080882018494125235889224690042666879848369892279802423845891466354063128760151323332733890896473259810388094579946561613526632406199077940729165735702556409029071622202439006788697056879347134045406055722588930363836093240359526298250121102962414207658584418645535227736463569186488420427756745921079359010285112168928464570965469831123796334837908501175945669261970450594081533886702358354913163369259138573122048367613503571604650384027929043587904740313470475729684844425253168316448614077280023507174676516731192845514113150185131268612369637809311441062480874668174482683047311235198697454142369490561739123280336571612703566746918784487617610365013247516877008313910165381350250100370796699962440955439316968297099255094074878501200331810129675081767318218328053820986397707784203471510540096621252485066522192653762542909907876165952384674374015330851343775149118669287641556162691819313319366197131968785066861829524858696974669354901133653850919092671947592270926847507389649509542529143992057298745715507658568684975236539529215361772673583526494775704853471065790736033800624968963274026929219068832321842983995007340980351573169796441621489914845540102077627080717959222623546599238646223127158810149374422794366747098025214704408994532634698936737384858444660490359501798714726100036639969583555145635222345456339149225552770456689687067138632319983972139230471358038874376444417675623436713458317814456901504739161007389565559144728823465847576288403455063534536161900290449621627885549422667524680308227649228132594233141976896559704298317345943498067000269771138042495436989187453616993417016183086181912376840260658193413840395679296675160244518833238429021403441873482267677417735335575387830824929882510598814335732652105058127459490331465197340362371758048844925737839443742582586334755057789116021193270736248631590103562905839921978180703633567248421738255841340653996811523739879127560055763148633570313907103556729205049313884818625367735925440399830079638919276829981290834305356338683006102243088137644570914921697140927790266171731400574750987288935419727997350243300718301445359933799708534241956113681221319495783789570735045412148824163013630595229002226103517401210086462962963698073868623634730976346538863000048820844357171263746224029794396251568223617060224374608262907483250094283675080133774869533755283048479230101091495817103415763999818265231939569203474967202357883657633988484864919220615287740006971736891228916107222256548691946615489308675941520639050266714437493064466870576614478337276936730297519037603649621572500862559020018740638136825157240111279190579608593070123449360524011439363581832346358350863824272885465702475468699518164458555954895751304771393033246162186829236289509479653555013031539459789567610149108963263227107209767649669235131539559783103768603776611503650764144503780449705510955926553716277369093173583337301002693235237696847810120098401536760365259047767737556609217670652052809824704463937051570679994421248820995990167913837774916337924540157096262895902838656214021154912433128938038738851555631161382049832960599981034672825604193059152638169337030234764525834448532463732522995776629647168566754552926017465198726483127259440268371006305764887518369714861934260832118263105035047356161135568643789337572647094420329511506817435716689625171697050327865550047330554784952626706012284605680668901766603288698492242844130452288190234250918470202992278552119132340138885347172199274977650469311460845375835114485502047512221354005520911586334122607192400681351845466117097322997347992259711471022144699320545819027214781703065203936044006498710059820720314476112356454023059169725386718958930284784319260502074774949803807507803025907938262145637683134631158439210097274020366523675687909697777497409571558595059695445667976235883873143914977308717654494462834675352763757742150189017749139396060361578969019737809447131775464302820269357799766540500176161474985032831487119089367420899166067878387623081451345206639705969788972105641924088892424975190680814807781034199844215878924090729112529711669272228691538682930275039176941950902867209484208306037355516603037513671897779055051577449964348981881517572856917018532879563053270400358904994313360856933621770635722981416638892502330114218328209971006954007366190434331567500118728972973071067355301125653149386515877425749826873341188625847063472005939336549180080923850068488781249466583024496425636200919343490927142235290618124531430591280576989523859389789422171290193026126569729633927348183963391256629612746855439002613638419558633060227734710357530234258601445534490003893319958303508772149560258934197407817374889806723455574785840423796962793699931496519254043798053301751717296432442321169381222099444259371556211937575757301939210151531375774511893986088537933355610601032152279480875845222164970754572774812849381406554072210313864138917093094947052790977613513437293794135884436495364218190730657094029586226995384604402766109738509950852033852922241397968366749645374243135553266923325571595043780775181188132681840527829315306635540830589385805245295190983574582158852904409044006429534217034526718105983055446159695198069947492083206361670591699268807142692710448928529609924464364151684358218684417009287141245242861058270018067630531507427812742914357539107353634518010328557710393658939590742644566665600231102494571461880085737644006686341329396937957030993393310052402953769110131665806911104985541260552765068310440168780264042951954398011669959283224346153603944996864958714108890836756849084201876181857503325002904928577017465623562827161089957852944741562602645975270200707806461962385746006940663618585867122274906325804266492390796300686332399752841609307250897770740556155390787393309873469725687842494448582386851911415321723434914518129340296398967885602049356401427475447869264952042776496478621355718289663351462739933443442640389592902953695740052751425982100876147044779821197508767325255199819665184311065320951950962268972654377969131288126721157449853835172349979279867339663141482168343179577450596800974021858852407918090829222712622006788438174551677994648642380759339073457629755258767904048690291903397377718184533458431621784628487035157518102103046912337746595857528169523312321096818252987905011632411659635812440140717477184667573637306736247786134545406879979207185025806739268455316713304458491301519097573376840977676515965399843929049423393653810734636413521833131589343401212073031245380076951699511487967455270074707752368492649153901517842728905207869153901444224349474908961786492157694227468910548170241286183451706152150632397253443311897925734153054625002610816027309260658068130727207695435554092602763197334730990808704372970800702597926220775129736042674289001626522594515847693990454810613702496355862789515876422700964413263495060095458456066817944121604092976247412515923500071110596623454087788209335993688366948473413448286178978054159988737422503970039897981325215564056460488073787142587862969748075832381124120468932622675135239847924456940403748599089471413560276356401230194029317304096966079677282441258035059656556595929282964070598512078546512668891555870145431713075464695659861131263628971529731872253104522181605132339760327756254005081850447374901192659234978678570964500849586180965794365141705366182565874379054467017657526462383897999188383568738815274401055827666682307692119250391217102980062788258771280880498940484992599585814855556840560566688065319007699256849768228778527230168835117038999811553589304501708983947011106086347238466168314474150851434339373518651723757941773335548164722206088502617028474743308080918074690044958327086507261480349289097154755862644931723884563088424980532557899650283094438967051720162878184063585213888514682625500384510478377393596974809339523339283142371343417664485106045840349953918208334588707220194194094624213428491252333051062649946541414432342465083494080342170077092704562072225951901824707143357645924153493609647561135642402768276631489575109298269913035470781307023338325191542895841539179343692822618957849956214621909323483047668811940097824782775234402675329598613733981614431771096368482520623363659177787292258607369914583358667927898164717996757234526613965743786653959721054269081755651150776518024640304249322211767082189523645026070874489268033400431904801543544797426788288186722915704017171923081621903158719022972816212481867775453035700290744613336972192520905110364918489524544046207068058430585513529326560141990461795368050382981933545219114386719144786253580112865124164772333105835465989096641165658040652454081249885029304547086226197875784447876616646205230731914978491028605338646918896143787273928636512351452643362646133743986610051561860826728022939932280209015653810273155958922241411290220389762048968112938780636319144399393151354290117635756923508421421796743319036479766890265424769808285018029311356645159026003198750764980863520386991743006949079440555177868962023252058598617221436860643989245227306347033318703662177992241327608787873516328566929661003393207313524005337241705283623316870792643561370996094280565096192214719558747010286530745410889330369729696691999409282565521473371031288215052485794127924719624237464472623321371771847747279031765376226575818329041722862774690001249180764738779644162910283249084757707046967403258619641004732608047657582523649599677181131666228947500652788094281438943485698359662529157018050877744243383356787832569776741901019428030964858818183371450572374191913959007307809082440134166194243826967174844202866330794604454712164355198190966470707777200633788601921997590232552844922026810287567043270881404050076947166851235178965524032707556277972140511210297214831770609147118121806137347296699251670621665230942918750822916116984083159867928838725687984074573072766322832839557812456598159237572150877442549953905781758285373647566156057767557040261380744396197244965888271817697314248837306326091004288285990286255097001213754867301409174135482266802334548534692349578099385615032217882947510639697892383459486178672378914087932278614290525664248928069206847921778603170186845461868642571238402998240651150633555979244478769500048028238740254611021990892104606459285685391573771935317770715622434554012474066146800491683443625124452111885497378360595152207350538077403537512744177561003805100156825353289942303352487227806527994815035178397976918554035832953625893124056076543893292573809718806021633376854891302610847901701006076817470569655267208980249470362712799922742573410813824778635880384916341161169773666418155416497197606403188689791233844305600836606044479823012571041973289697544451649892831498266604395220142632674550814853114612033652257021153846860488574278987249893021301282428621695732353428689316372196062398988962090324867784637172611885966880997223584138931741044295624139479120491554166434634278536899116394389583976006087003392550216731420881284812691421442598456058741642226460603277253597237590083607053431148835511079796895422636486040244249639843192468295513562376052376235694086828187305033661600641741023481444271853677805984401712424599077515834686633302109935533827835532656164701667046238023330630184182101519345922105669386953296425242638490323104028599391804423445368548704609532743316290798958323309367026651504050009370006266348804200668187029927995790448016841266588577143918139559540740321627980831653366336860150350360077579627340854510414392789077704077963348738590270779167040377245701881707109665099642133548202729642197840257532788738170472050238098694929735976209536411571676892113632518361159254656482011698241753838231340847146298184477840734110162748468539316602700680219345540825997482026811483660700507036943731349670612594373106308207351172330270989561039317198874718034550963426315711643035563144525749558125054815417414941554373705762749473908552987969664253274291920964965673104903584498494144964953184528070136857154949592233578353725030300898813707373046821768862629440660301982393559095837057362182249050227561618817173260684423774116597110486925603055985832353661465480644183839046123966719374649744931394365124080919113459672228279107503000788594120033496358594235591489339707451798809633008759035877349842104706900476602419166293836764797900733351527687885741472505911740727684259441563256551772376846213775449645246244094210182332155001475312084352250820188025856410647354764499563439339837846572939375606704743663762860869649968658164666623392281312747265778000625557565157104398094676359522026465974279085673947065928336523469495267743600629212084370776907392987083612435629560973665126600784171551698518311768770357909186238326866006497571123359714639555548084978976721610385232727552884898801297031069841127691475738988134462659726425970025158988625733783787281986936846566109347280923926753370280957521811809845826822210432588528283743966152191110356715093675458083867695184062673269830761070482780000335291003750471568733143994028300584769791581349427788320698085110476765517079474558126439801944753202094900543259932570675385674078226958900010657439317897603655838789404789074620047782396100147984438281128592207849400706205648728502567950816371569312643479865014426313867618629499458424858472973250069705627937269976985394832073508269630508677730937198963003039908583320147188641776347118484233553034566807315489195533423480721081731317220131736410001338037353829032273864478129491056241020221647194602047579012955568954499950693748734083292896710417701182625815913603801695999622515304421316400682991817319620587443984986498274945714894235704054629578625060381940899631725432784839212483309247842761800534385704314468307313943326836357968914510226151371682681840638452540358450053681518693891147333846830435310857843675004301241178027265466814739280601800346169838252410293557366803137521313976467313738493249319871390462716092729910646988371402261462568036728458375903372358991853047549936826100779802319698913526004933561023342337785144732405392132303024920423386236305445504396626156930239246860337332276190214163129431690040877897679726503795466361796150609478406635987773839519102036191797286176786811820199005135584952411903066852144256923458179519845974815942799656839921288510617345079217448688128169540602124957952238942006016269680732477215820447808051590796398482664920467341052790162006721330407900990797978691887643297522593981289550452405235603360270084889104854280488041890258871635960106519875136161789802960203639491553466167544629860192902491577979973794799523853446968429657039665642721839901177534492731627854648094534955978471224309079654447287045513413347176568028582181030135134620319203723924163658027378040349213650652685248654869621713741919691034487426210619919649259688411140839427477697893906770846851325092406529861294221566306251852771652750751886147758693253219096401160872609203923085739727200944537092661543535427282648259282215379076685929986418560275620368784351442681211807295412721636722280644412618590669064016202853780645758184867829845383843244004192564303443430173946036532112393305970225175704713562964400455685077909057016998377728727939320578673079372876811551984526325243948192428712708575061081285603400986342731269098331383366267807633739994948344543686127837938442055433587894822431902174150120142553300708561955783302371884380296285428498216817899292563178074703864452786657449280186090149133823586715808845339204315804244885837921391230876101351565949464488213485920076348051191207727450912064340623529051772010813114194915097475435674562440018760443586943463655831130863161082133367764655795945923897761927468794106947038388976326357880187381564671780109138919990548170998396780893177037495643900139082433099645193279224725356050277578276612027174534984084833349022419568761462517122998551828957123075144154778586559724392036920315341366465507847891302790660032901841032107386760537379114898852428539263990175271950612226479085537695272415921255399528231569443836321319186010561791465866779415667228497246521699474945386661064488013713909798913281887855712807205106307397989320687851771121284182046848430780134103818066529514959232174460170858122901217349705679353765418435376697653262364739216041910825150476999652682994516962811579029828749133381610509518452010426769672875878733142511522051791474640771731934148055857364814052653155990802257854007251622457639069489808223206912269797360681187554285956890524408116645967553724981386584032675101398108062476367101411764406002761918714658805474451237176505313863935886367918525710553387499343257366666902624645615922667484738063131135523751334935242095832934410411773195592776847302641701907014347930089015374090552399365515350040931248058341570204593248585389542730763883024499019025019503598000745173488339207202586451810401831970287124040514358958517852930129672889703860059555441534627841009316254315866423987676720953683670159185757345180737742032073953991523958042964178746369179307654809335190723954392178917141946436009840358352117473546311945012460495860972973479400657108948283098211121962251690223192495359981290991438998147496244574489859768003952954945656147180899265157118322230466848780423854563545912622838708819803692873160832547079129937071517177071363899405676293709308854865952059773113469291186651705787094945530435841310825163461815729364748907766776163612025318936879007722779810784331265833499178307576412157106047574702704360937385328317503687609927339502411226132456102824664844193846420960534997022992276081920978852729156478405356484053764892951210683715103065215632361490232657139949170116233136238023348300422219088506314964795620991721213444964274043657134518262691182381842232577380508442313017889867061216334110265168267078212690991489695957903090513016118680749205457838117883018402272406335141547468861322401159782358493015494841939686042115600034744865116724349142487808500171482656435657349707542034106621375428004553107391617245425164263252633844214610733955641132254116143905858367097445734811251485115252517532609718046845795526459087855622835483484123242606933327962470516993384616886239983820347443833324373555120744506604314623093179015421263573752355568424163558740264500762444661112368514131269968246857280696021730634839635287088277616685525498573831714409062729286526963817028639225580702632311684843505889515122068466512680901435260923652893013625407439666430447360408465314302844286358401530408174828196622338786714369697122198253088381086671100611306786114137909770025840741402512607345288827719849079223665351407218135789190912494990281280313523535394645254603779288058394880491135157050500941700300389115465838069356644778991149571381766670890848107486334372752433999643874520607860094911754744660122363460351549620633478516002902644666135785456474486178336330091771495654400652564577188509632116360909262375381331727948761375783477402449281156296015608097405792554187421930271440244122288403721774033215424583107597405192538109715535551009199038418863651678202814208474102358533966921802187949693139875539558895593960449850021233493136759228817409294383211338880568270617635622671688629182041800014179203192181405758508672345745588363090724248113961588427078983930687738685747178663382178508685107438467852153933251469599194423228159574028391283110005051805204426219039787994457178455403007944629065974823683371457087862105095623919512711679547614943959775377812726501800443941779964715271344218721558691166340118677063859075945320145417244471232800135678957287523558984879134121291776500657724685751783581685465586074947441301033155393448715931324378887072812259777242318668849081660353750663160291908318874858771363959669872156990915386666272401899465713299329723595769793446065771499975317749266311522072986592742666526786119999434992982174350002608624088892186232408438206652230781408949364383244438680116349365082034248315597557493131095315797178893368203904204790531470722767404653975102010104601019313063059559495214305607836877471240306088490149128529779680723293425604813355577641592000173988216100718022864957275484451510782079058573682546484433593166025890276347109138056145020569928652331125651389565494638532112272770555279427483030985771805293104406306797845547233336078614179417270704730275264719615586860221506070129767671443046058582467342139289050919113540504451400497151322558279036431119802791264239452134947900027106456179519864021896342115750030152268968927377513182465174264774960794350676618448109994760847308972537979332764341257799519403614561259057740593404039656449531945650816661270374355011573245320488082399135668774044784911313967376546198398721411396445426049816749927401375700886358770450246898058235926202486369567707154097647341562002437037102809053788186064319780331193302059109186533207415903263199224411839721922325517144309876413800050360097091548157837189531985653212461726598792649079016589919347082020760453346025769463555787901623017521283690321432231190952969131424263145916303409464497805319187923933628139857551201057241821001427313093010210007331703544508288782429818412188074346483212298058165540167375821789487688535003025372310880255917336312846030627629609518617841519868929733670276883991532994340526841549555342716393678210046070787805860809257983858924451258302834055577533104847822007961874597575586111090750817208744732103407169053111079196883802552082092533401451181835886430877020080516208109721395817006426998076493702418777233337484978894745992168530205331725386325137767149339397887016078099108799766099831105396138533951800137277501858498076064515970841444091576755120602967305608303019140847262179442436741546123572242534994114377522844720936436106413805192761421895319951750784936121226772992078640875247479273081711408746222956850495668933241297972741264071555330772979869840829528231986253759892704822788867379217134913997952017934865824279405639392296437303207731424436401381138117732947374020643769302452160204765249067894284274753160610542980799901213480429970577843589998335485385959187426968156023516636756580874303321337799554187944431549617919966262275439013486470809058406803523802370654234255179100397728823598907123059943078097170056524153511124305853971514284887647331221076803792230362963582965134484830234748579958066349137197545157697438498790662650841729184584048167650696663213610229414375477392817862217909548868717980800429891280225512715434541195253459730345603443352942022984577537959671375776170381947455302981363048586965830033099111815218185851202991018552143190559657207101731236277088606538841997363846190496231767938611287002591456466042144533673326835082360076874463109873757615790174542744888543636022654245486522040025546269339388354013139694696257995189649806075333572511731108895359681647616663873204272587111046916586897033894438773330932066283229934848993879140986395320764250753495333278558085447278549916534280397866047849396548920895037558503460412879988502431859556309600046959213401514859361705127142137417559237275776632761574500470260817216263396400155844678847737198867390450101387001808036429121810755338296013224011589866253841865611822445921770010719431802436102635265985505713948868229965154164051319269238497400763347705452160681125365503863497849669077086087934905890967418040752438413342179352347354461835887318777481459627005362360180911059004276695597105453303173051779201515426452333713374310656022069199772563524324002044828463263645192776262991348597583640484837401619622369831171588758002001136724130380995617710179276240138111237513879555082549094082282261952786810431526068658909091886070305706895914224388157499811492401552968035420121128378259556951900897360840987545559332006789113717414842969241535296726590541322608724930510988972981525249256517621460205358762987698939234593868076062580163547139872615724650661663856283531401057576876707805002226251316294331481714603251537876327122722564400683258744950531101219188447078784670255445017987118082472846223284904418979677630781126072824423634158082414332112440130798234950717712033855781691757653826670477796803219028350898954384292650868944652523272140124244213244647453903479864894378667165695904342540852946252512437001312825638984724493282397419611603454831817904357928552636609604244457506953763014143185661153639867152681053579167101104443483052307686640905008856855362322939943546504585708653129730872126286687812184836496160641351224951865000666899143379319185197462107321967077203217114091043163076348867664966483082148877433202881910851367382327549874033960304272670329305358467899739003955018000300553537546937697522877192240328275890862409612526004156844301788741644234913748121062310588174061273660535152890268720691599929001540357862770515330755294524536222938591807475850159102678277107781488046697423902080227442424304494653886098249646366721419091061141519911769279329511876600374842016681113595233395061555701116536098109050650080009490264569278089340547678679510281277973135596240880412595610847727342126794966863261537466019950036121147847522831280284049352764719839767743304760762870777272673712469303533083425743503274530841849819040434033024140298062826879813117194830432249276852989199732979366587648685637028902482161605149128042475268078866173236658063948384128258977920084059627077446300783621666550831322851013692200719895932028214195716869103950090961465309889227075034206596826143486480928581668355145655082182019253507414076450292420407648405551164409908173775553986914863836203480535797396698973506762282532926539219637667281112467551934834568696566385694841642583866610286059316169766475767983670611396200006627278409131110485410825696775953440746670355024964295562023561049089626633445034969974315947577772504858095821979379166130853451489416902765787254112327128167451271755560569200246568634461353800263983847573862872589026104663193666803847695985041864115566785337327008110711063390924811459879164688938288342994847268157017270908118607071522844447455847388510464789377502116000666970519080030181981541780634715246359377638781468659860015430789396105860061886308805562973951147368237972995084871286178027409473730860208716771688426487289762426458087743495871835273598412989396409556768225858541463724421087056991610705129921371502475291832258099093654457416416696896300655075985257931518925827474582479215214711276039254777670398671805350952477462012165657500941791596664289831262878578054751199617951437036253337255412120066415702675778918709178847587032186379267637520178102278795450803561142496987759019894034453528754476902607628668329811023722030769124813310406661928657990217841033295858529622582782908623692789867212333824189458097461705205130497740995836776944275520822051217785703006158424275627284343542236253161146345190070849214780066682083901566184236130384023031174132647948237458418912216719473383151920516418491431784453572196636127596712713166615906996377465504898396822127260494468857532832297212248958225932785637061275455986924495048016612234487462879201246471992316021339066587195130283704692130327615614377017569258089061020406600860011101379002073746151011783888082783675008312583889957667061692614530476608029712188429501763823826628869899158077636927891727938007623020858943767393982753851451657173729883363190090485877866473019182004502739458434190176887604067129017896775944194681174464846448120572434332086616207306502978413479630685621578555465677245793220520872370232661683434372130251453960094183642744545382347891367627077743197018092859479106756981801923402644494341773022797573048069256985172650586126175176253195496506162789041819553652219700172320459195897435704657820863270744257144373412342764033562802396072050609639496683862523529820968028263666104201675677742510773683899802069480201172463150713174062144051740311618845439861206950412550538144723838599415411211399171373450632546727608593592571432721027574053287195253236023755368390826420045541363232116692070437704757849575205715095517992411105170948154493109240895882468358642051823034876783306857002961808174579317676913718375782847522450831540221524415573286578832855760071121015067367882729553648885949988390863937532175861921380994899304062417777734635858589803185473354237320184707781716762817332111767454142592353105736337407398389803861973771157194570080883917569618929045192222591172562484402555128772679243528644782461716379616060281499167251870323824500344600581045833054036507984975583484338326123952279570596302460020866966155079859972883895583227829169062147745770604801464236779819030420542601142551991048828662203785438720205936109004657799453390028656554757104168388268926871804879364031308760700366974153776643869913490927107536460168757225651907848629604975616096931383118857658771095756284062213454994503552994589175149151067635686122747282712208618160563064428772477375049008119125479159833745137946619953170308521983573676873031292549397196018925737621069463986189703625308614211909505830230122118093059737281493313363347712925236257935168810892063215321874197687096334715343136211553942466765019748055455977498080986554478560326239691628319163500892850422005258866931349283740312725481291360332439246529484613675549624683443871228515832468391383328528778485300734389919781272488814943568808530017921180997265830518127836185944289490375926341531210818594796636218929435540788900237049330739946581825507420138989320068959975540561392750430836748170154580403783032637662496419164905915647382552047887086398052105572218877501398912688638025139373698491747400700205170956962535137188015243671041823465257774924138133851317431199229631292892822037909275128730405267729935147549876211714943484862512229764401571196373582270394579548517935359271955981461964410983431574746177878159069758969805324403250781882861206354741259522747526731801088300624682351889134141647480291629990066631891327840143373788689152723978916575923317066833810956368687954543200462673451555981444187455675996270919961147610505247788583772442444879553632597085879719129604251801134076989808275783833763935247916132546225919400565159883607935850652512490513124809765093840130149270190842276527007470663786152660880458177300259974354621681021306881344717883719324527067675869569687108313536469684400949732311256564112764740569865605100404050765719713393457048722321356346215414973339626359420475077845599836349803564355110861850484453975248900055046112879587041335886079956115632529155903305118839753461227218190661513901984685369719490418370129895768768047927839013505778822038921987371870021915386924954797429341721070681841387534727054126341886672280607284978444299983046391483420209000509220117177130386179128866272882151341833752381027558815205210193253359441709297353645106613371396544266256330785338703678253971321544077491938241277973766322130604946306524409866489963401149042138935394572418384860018416073662616685350098856806078310936429081802869246115778428736323653272278834357408481682090747481532620399838257295529559309900031573183135233984500742767160093019547613006186291867367566420611109687216596040840583216673549851279608295623980188699060485638499852006658474187563239010335142245916410026978458528609119667216435657786698370381652362739841174172142453475984907434084157763926953929505607531260950120044028763115356851393498272984053998518854751513215655349274940517565224134654554772430063513121161035823221462754170876631229903239037261023295328641760540504028234105458519853774610120515526705716018931689051903799746356124252828847566173161755876560881485293668514805767646892033451965104167213397764090408215686934716053640377345565873816206048710390049622020111992200784484339271782092411301391375391043973494491188468340245409504369967293332632326719122380298600331633404046631623666649446410487294059601231706097811199617524676092312964185185963769986501705139499534858386089588454766108232242902204769377213518325318374750713528726146961108249437238291708549384960176924073112102458519219809049898667786322115672793538881077278170555466958492183537336259598931675426168264647481827839175540775617345751143680234777620678514178332984166652465446008540337077799919191133402157139817825036958279956880800367361802602793188415395515710822796733752754660139248354323717394574106350872084631672519097352763499169187894657390625487330989376030312401540802135658440615190669344780753235336723523850612888599862209264987336406019078843756819886765168868881878971509428455542391466197199659972281181784393624788332401202676268963737627848139300876955476066163135497832069131241822467891622207293872499437610240905450458533577755180932104000190719217491189183867211686893578310099980825161095236469054596503006756372085926742987614790490001772838993876490444630000101838420316078657444140239196139037445144838756440048737250537111678446604456426827318022554077186460357130821106304794149666314976227654558680855616279116880665080147365486069815275202095400949074467157168142662367730711529764328569575500263352795383081878876962313324231646627878390355375789254830504113974628667542552042841963972390093858990162306038244408004816549823773836916646079358781299563619909931771285278401459056892251916270159165839001750498714133778936810252322069675803027853677908781892326258252395276100384013543465721598162057129820398939169252676861737751866544276170119027860558006945191654742681013761203563022342404567677617522524593887180851602421744584507789692184854899095002616211069319778385923343821884322036645666519866262527571655818171770099112287497374746260664042432902222340391449704543144984457378757747752235704043156202975354104624184535796930289021342229690559094854346063527684174685633861902799711649156555913001797048297683223903504837119222153965659982223760852410358503317314107399189902433604305584949558962477222213377197350974824145817709474207815193402860334233809747983004390137306581561233934735670223639511783442608603265163529051808100630728552790844214574529792513082721584640299502540164534856625691400744161260516977133596682968748872028576193963003119407191117228918199523192348798101457637055073642879479418017892032859507610150155960006690566408392777603476345525198833227483757192069446178745187757785112250082663066692415464054414667048862589712437690365086871712578466034649590337797428280285786586736849748295674301497216555808085416569431605871195459489049682186179329927875900216847197602494760019407705179813287985443372331420856329924182792354618732732303498050400822464048514735922478521572466865470497003317512609530219360706276616486048485710491505197531971407665625024029527103594920239279603322027478691320219544021030183137587390030762682270544685097760835104628000052230417327699746327042544025415746675166007958210516637159024396420193830455928302453858513532779597651969997637769067665202429156693502111763392917367762334124523775693211781252396277556484721423853520556251032348496245311748184911040136326823873456586787726225213647279126925808748462312496340452158413910815548475393264718071566071158726768296363105833692660500335513287627178491420622070849515947951444394099456040004816311478709552588717794838301833515084881847988435978995292446344713953886710788443464584836661511173286324693284980988532218545019754742073233153766399391495130640995174281447549731389919812386625471479546453372280417496103002008075101827283395877227973277346946078300240588804167070183403640842930601838247027530605781071421691505016095921413557211124092895206677027680462596084919768933104984741215719325798499268838366918149582350419116229194392050306807176135294439259902653193026951204901966308689815814834117804960266523932716849206624726663298816591562299470417612130240147644222115985031597732623059593013691677756312224535119699310306678366093834217270277944228641758108893327309437715699774061920796871488119727003601315767257986160374517726772088163439146285907351718262128882919363804038282881181087914850186778808052723555010687193055376479417891125521238947034111572093163019982794123236712669385589760597031997190825058863526067831803273346068026206467278011999550576662033087895901291321934299283137760695082958420892763600923590981394216162396991913898476498259286337495656679706641328121373743541202176714659919125700233640410025506070203464161112681523297024125561206471039686034776590312433706026435204255042806991208279638224506802115766453923446404820636298822863023308757174771248310784170330070116892274427355749707118182859194164754451118944197998741623669682854731906373814193376505909461548235887531105384428597031680895736268602720383973574482674164925228323020438576124888691297715655909011185807918514599082403021679230462183985893463601769262842330576291182847114027683400316547296160520537278514080341424366676105214566379506931418217555997780853762260117571334185995358862786361968864798488517805282547657716235921401501619127780137873439200500511537793322350229634353956877287716595904773142573781219372429391993646684542838157071479532255216825758130980218074868426150100817069821771866857642598740710918021275875057456703015568884268988112902457619966009171670758210936672358110779593968505477741655721084262247762722662258888639008307347551820328678113807007566498328478256255392880531761344049501142908544813381085156208874196899505080598332397717831470803078297980778822255320685965138701391312532762688483501711144420053132537500973840215064851978480473102868727085328382016827383834831025447161492554014678141280411575813618885383956889748793153930986348768022270838646894390782991811162250535875635961286415099684895150067986834821051339173376529625282737080186692857563360978693869520819326651395803224075806578309246467830388653713866954040896011605901154310969658424013474176455594425320880619217276147351941558057683638119046929587568996685743120774123237102816382971425203138288093532046439357735535030467289241995931438837375138194298673030177103088052361363364589909382093437421226302246254442930935650209652982824934421838377141420484968688629297528621280313778850159546940076053984892114746137917114761622848622558488784334725931521834235665709146621276106579621232589401670235227731684973963355711898323705124745400635059917564092430349651826686889085097830396026711595993819910023384709323997642998046298743581606848325575895955160932508674520302556351442953463320893903228543563969862087423266144110905881093095921086268020275466386305227037808385762389889009734855581876327601909444963134645984305164418219086940844878791358954413387304649813941380509428452632195703528948547453540623016349841342741111824982942207712107881400318785908935332112540727802823124819783795231065486361683906365276687362296380772730645560513057687384674094229824372613396756645432539298677941724567335429071863906890009980706293146138166409240740659874356514156802771211456519135060728084969378967954566313941668981386740157007736726584929120011500849310976138800545901190429486545416831466079616298272434156977088740696277605027998461531179872177555040882666144898222484430934909025501707683900626753010012279895821001939769854906065578325440862730408416616429092474613610102725911615528798749973817099020635229264548830985196303894699938248501488399695670250379621319005947593416394671491156299231818673311900780895802172031313228110244980462943389532695227176506348214452468064176623441925821443724080609300489220668992413399185735168242272039232917706829790412156678262115828115872315796332999015897840368190636437515370836992195029053539920369345116886183767283071569000502546218253888594050104475091338709096204890707830596098201502518285302776181684390158224854433123197046482537734521368449368917968031301896485269542620978002571785644450197996788926738140406016410354447755932619490245930154584040971912367872685481581837750614707870699439971972790611320688283468438879926266958742779521849953899561102725395982237154133232167724970768215404363136889238431032417992128396085810808145732722356586008134486038285970212867171570951514535649251789384496236156591186731032608930645474218288971199385604103143451762497069805711410110730259727143777304235638125423356242748217980179706857738241559219249418449421866796957841217192014863072106595774093864111546509626416078935303885696987859431781907511125959332840875477879847179022485143433436923216129713768372257993381679104228551607200192861179663012364041560396960060758174886049996031547563546432451478614781688911022634180869890620847114083595286101812066768587735907526809248373970489563401931607090372441438084670017303585069436983883895908947210862206065327172559001262369543787574109510178041582323730035917480838976724104920561766404958597029485786540284455855651677402328013643944553636326114329459977459996873041974352049961096999950935340844010708069283700092733527458381561998453270437467667744002105028245205440198983459650504906491243941046923448424020430839339764008542858389523113182577107326901287345147623351044299083050602080192577488521689076672565178719116370431818415758931177337903096938721060981875035839149165043915127548332068130200659544725137387129425450294880523477497832275490346926424987550010849445536246801223940322227364841578950558824012157213156698964297403825762764729641921960904235122889980572440118917969666658704365524389938568575183727593015913356691727694914590575838601480906116241548241837322985570953807035196533437919923485669565328655889156161221773091592149263626195259818935429268309009249204589596859107493693430572694389124588977842107606779291690294997761256338063756914883323626942020584985593558436916972036437927343068748192001895011911860855590589300500610458658641786615432990492998193392979205527063415540420257800173027725177350578236660509938390583180654232236888341171343841613685395071796921295797315926950470330904708082384566825893825802199846108319509573048931684213306444702810252300161621371136799793194099403221491054456967957225890686966630854060524707506426337679232849599024137550255189650928414049289953693882148835932550142904646897586694302600587780910910984267733918590514215464188691104625622491445533225623501037798689740452863578563910448513419769599923576406611889884325841199310106960512995096793628417752898548181678688139027293833634159025603685295769105367707716981415914557620650312876843542513647340033611503554245511727865533747653179670084376214056576229164942858220684633139855599887851622097999737515942054909051392383645803262487475517500350280142487463420361770242484734182538536871407830992915346424568769363673208155654354298791209427458129227874917416397039683259633129668950719975657491038387743034532417764338091001548391337743642582027528952272626105359182270150730732392141144371213094172853819916147550575691355054645816811447503247283264983617426737823568629425642115664010612791876878722207012955819320523820525597499119127546355409544730518559008122537450687678992572227550973773214967112236743592172713363738591506847638502386145625805328981858546640481101217671088730948477062995507275733182720856322306842162223508622263948041935709639702314010913357197807061817188181393201489518788422314287282431223401609712657366997044282448665250917402937765755075160951049987272492545742481850007368698946513210233550901073742716874947217327829204100426796005048319976911512550012227633508519202025687297009364799871588409113161657574401767398498124810513062524652171779762105279312312094763319653033455198662807035070292600362108763553274704917058324469874545457050231541938349376647697002749840969263511710866682772300772888974486704122528524031340743802168951002846969500918014135537391135973372395065741959285079255647467461727798784591722058094998867871640196844479863616908878337311771067019256862409837813285564271124807531552848738503868238908240308693522842055808653292168354839563009235075682246369168491183017605975341566715664330067669911590010967582150032570592206270773889303616229370359816043494282949423538825560265163060377187346641515498067081923163124054581848743646152890803211755243657884763533517494008874962747042923593343945802952620212808671904044098707067521241469175848774491599154079575939187896508078418994044261448360547790919946720142077833908432977420480241154736428899066190049045942736591240659105646560013455005677366633116317957943982702228649665969119011101968169908610291598723046373852049127253495086329062143639930744094794948318809137298730421601720189938130546297139683940257555929919030798651197446509645928015283685210386231488996331743487559577299718244933429295633991073893087898987476884851637236979093457797796889488059691381794746341401115076582163163906360644365430963393518019227710283682603604635624684211697820809553511987060980185454583956044198220294717166467215001669774145706955055901105384083745445828448540159773739153715991760152981933375415789564809578461342159605541070377143070428677391792479214143682154584840619273185484179405057974764666134985510561500383082200345794997290524818930240273087098959048520306038243979773629210922000356285159157362805473672346522337033716932168640112502407075217681633298912443874871285059247092895606423109548130004981569100224768690141776197503943302128908931080383686385680993887537777415582482881136836040452121884914793245550709963937116056595209520315872618990180740934635448108348045029425908269862771973364223261537437032810484891538868753711976244942744159003035215020187757674351385273016755444233001154403346961338643706571009157958223426023049746794161988677627768756586009871187400662679070535035484763061262792791263218990264702909899211971750812298686142428025778794453163895720945225575208996966802644844788169835319700688436682976611356601805197116255980575064432049266377342903869246346376193650398537030178083483460391390860214562874890832848957317323600367036158808539001387313796850315311120008322759127939276667049297954237539359954715275355460501188242844008665802508488505786478772521171592756299497360121041416583284851425058424932294893725827099358180307732545590898129756669145257620748687916541203937966169230176971258901708807752912033258250562447901508190186335316596502638250675024092180905838433776854471661725500108771743616413540676752321247801255790620713923648172528378193721644745733014128779516349904385449867469179924940116712365341045915092820239539368073626610742767344511328688701571701196427803135689317993169176782101421442881682475738219903439015247695032232371882960218423576414477675283294590248146593068193349683642575080080666517876509439641351730330113893044399285088259792450523907869435608099801739195031343731425424155825823814524512590734221489238865808619687481219658852115731178987809931888548394757879166176260159130189993236609686941083392087032392473150853606399456991614733677243146778414735275124043117526135490503010565601322279388677521617167297522490737064849919839321342719164302203635933967481618400861325195595627126301553248782195425634157209950413861897227916592191597631023915342920224687513413281451169017962071518945637043109409513554742464880505824002884874623446477414955702027676755048680140802639091654738257912321030271690765053857023087849639453956265736576952212056917471073394271888386809996302855203032730054348085944533334954094263584561747390560426266766952821570745070785979910381090967785141034090873184598243863591804981136258569878630047593983973267758738995975848904264978487797066670146298031173672435350622178694447762348704903897793933239974894776589656608583939860493629896014587504835995145492537073924017057786045041469538783571347470957340081587853442729988886531764443436007423540073761074386920548007708475548180972144471872013913711760590966492008175160225617805243360167197960805818263231081881155404316273791480514045290484507682967738760224167258910621723937917992568355451318929233528462750803642868934032298585177298945988422551472351433140133612863749294134600517605836695298187776928023803218074740525333045444133985120673225644437908449808030840777894043880005629717630076234544415395994255566198712147142343036231604305874718968854920746274545820224559276850869742056938941471885636738153776367000716726577217668447854703780528698213862749283594231932534311264743249473442430436580798449357093699821122419788012890345223956997263563697086489871643587916787778163044526507079336749670068899042271133247306415230577305675552584528032191131199809597172142110960841582820592207648075535070571151050275971857695633092153559517272605247755509120262244291530953707793618615763476241543864860205189207830473617351939710521166304831457091011619035485230673323061114986671106657696779475272272325891674076350389802709225004489322325479327335359926743951515618455399017534361509941469036741741939697400941212176614483690484572504178473391568267463128912468987965630958767666096926500022643053582145267548593605079526730857240525335589070889530909761513846475918970400819026403395539634012458375525726417038766218455993930580151821634856307693596912428090025451954120425324195196135313459068502236439775971714709718269246093237502388854152158652956959460539021446598123906752305224860582787621522628866795407509393573350126206631187385393413759945803194974355824042486187167945509476091150873753361783078059609723707334010600472423347307982415950566622836452554854928574347210370745840519898130207728169100042407994131447281522688195458730270564425425349639825352314479625440947599835534018464396057436193438958020880093127814406350599394163708602589672184191029502881923501478341788963637209743944399682238138285197003956609949113852606277957742079239578370613857572273265244005738278488089516983887664254056121098930899351278284061519518080326377733450656786134445852146275635810478820294253816059850394686203195566903637545909413282517605782742155070571434829620858436984901815326299297478805267602980307185226832867114107713165285914165303459468961529260328248956056557570545677517880544837663272533862207183526976893901260056057534693395245733355558286001031128795664914990183477273685572769841639452050833534347406518590460978939456035326715598513449466887699189492316427796251809540101069461034858974713143257790067852868378762325072133543594716580433867011534697595632942733544551430804558146999303376491298962771486873919782431863459565151402877367239245648508709292158677214006451589523985803712528342226073324875165145975455720603612120526818205986106833863952178082970438347283098782507292872946474022890851902192855122339671211666154370329874490101086285163407058888167464643712961883935898354275850179701220258665053750294345841822537012567069822713287586222844826298094127322166832926312336631978932763963320340364146909993243291297752068925128103197647410834046608954938304922466375751480833172217018856150377397575152048453804705971188715960596455283024763828040925828463285128424910089357523721743450121248454920989064265911999143291342066073197589653665944217299278668109153069453880028111095206516885831608903475144963882945131697127721956466021796672072859358247242045250765549874376712760881290707458475518562057007216904912951827206685128500522099819895582517677741195119892012192490980083336994143370663114012616472911846988658530558248104519818869805944128530334194411632011676036312068652142432835214940161596118311374501857965837819589946150009549191542326058330967374671886709162543191129007132211458790689017847258461600850471129402186471406733704144679383994874870619652698498135869698473242938002964658619307280724892057245287827032334883809042422883027552148263117948562173620426655465974129331842188496104042432903685613041328239406916633354276872369274253636639241299473071430659537715810609239347529375607415377495807234752096781401674409788612753354818221866800136462564710474989286797489725014934479556828756046042151521110077512035569109992688932964516655170034848494689129791531115105121686549961753742516308308127779289821062858947285270976419034168775209856594413409522675882424265006784130819545879594859157422195348401158133957112308593808198086474123566074371225971363168303858819901617841592911531160570848945327191334648622788269133190315173833317063536940430739271116414792116703970819369893225144176621079345071270088515049077889040177365396094796648323227580401763498151790102846760213683662349918533774655726676896004974380332899459688836755504797066490985624522177353691447354118371583433649366864516828909547375662674568187041021280136990470204077657492453512287919694003693177220493102624954965203294035849406073242465602034965600652340311712204551118403196368057097134023854075642851353965155155271030152239159063078330771562749304113192600991147373637152914104098288004252261987003684895648811678557289509291848934251978434486969678818924012325789899886000847557741744409922071253440980592151131182799221075704873210088928180208371816113731413357233197234541206112707201868660782771279810518099991226380302650957315373862872071058942874448843525508214575146507048817725787319994769389758761860445891223449820569645390551012218491335794825828754961117354716346308170873330092582891374293888004661418223826467981300771995821217081625721596017195764825863321614193924140652359095240080115121802743334683480936159771650910107980214168788747319842186224183527482235900155999010174626169512700042337364998558779343777706193969439648192877182808851177042916005043678726310289195518543001278916189063255571959307816057306518271858426612158938325037288308113945935460522246265417634277984820856951786397013925290651404546776714717872429099034594226656410052563778466576576656702321586079755153644728417414133105995612337855564533248033054997204733889563923830609598985745414475154046442099829244433117045544345014622012726308675065391580930753210623745119929668327380069759184559114192900632151692504284877801852567363469393900462991306240342257658627382573224743566221151258533619833375365651589209842084508113003957204586027570921691309191234820848695831154652323476100867623230492192046530243297159879953432967974308945010562564674429495624492277326675817005367760586550298594575904412717186342114001756886224772541546962825849153009183542044670592111691961370472038190157923338222607958367897900294072468913787289553439212483327365066328188965952825640969173634434424669389856254540144963638402892215531779690592526892757769552517109135606726797035713342291515225596164844884401908134595325166702094290432362401476783487770556122147509900187695656338989478475791511866922338972714925409025769177346520677491305311300407933816573416167847625812273345852031372324054003921462993559849652007036265369454849714590134616387789641211715396440490485145904195723651049511403109024312776298583146714278040125865986269229510464296078916451561321733499384667845344851561574872350125997506992961121170080456785819439681272592514540452547437950162861484914897585467950035303538030428934984562261857549649772216556577651721619546443165292279754446630111187015977986816998887526928793231241263455583955689730589121980946150541897131642524979433459667436264732109945659109484549216342388546133542626759777628393231029337984984123677922197457449872407274511931290094133983842928465070122327995127076919084534481738327592602501591574170660789092763724561768524244118228971547057743803498484912113900472614772764803728875239045934996969570631854689479973081404820018274410127220078873973752192926306279641878422572984521650317762551046722827821440852856703384689992662768697602063211880253499098862383685011209219630222202571650561471994776940071660998752407368505031530024905452671849525025204166668021641333881624267420840284319384821119799870665213844901320324482667693679835853981345102897444786517080602704262976909074487623128558702647708783857070437178875671444330498545629980308667295170827915515185033249020052328563038264725439002934859927546433066793342981948298117486104252610445470240574802531019502888446349006748732705363811611475435734894276435398395645667082251689932352778165092508347899002473625527961204901881031042800765558217776198701388384831254711466941202861112932246237770866426379348719460867490760420003678379354065694364587386737179969111714671348162288391758376746295670042464195794031553901699292293825952008958713996318200055531490460054457268715355835320771346751448665151453252018644313730111079610606351714940069218179792071786226666226174483478658849648097524879682972350714559864754551058244711182186381752235237712906355788151925593006423163104577844452143170062217149874726137708681100243668083108211575586580343871032453007290240494690053634546713909459733783565527255734287753983323163083076535583093883052914971272111364304933109698690031119825579518810779322129161642643513307883555926484127921323834793943265339822345125264787510090777141424749627635334375741147747067542868038706019365262328786185922734768958864941706137981820050002699520030563703480639345158767887585927079498187156891885986288085870145323582670701175106504128257048289409187978771795556843878340972500906111938418492108955625604016548688913348587409760032275461006910075329417986404579342575330424274463860497260365230377410182213262823546157301066330591792962800216613116624257201089230571168002320147617380597532042181093333859639416598983672699725020708087866493017974123215903141296937378269706618758836042376327464055235243260171968298868637720001344304980358438340225301525145615558454778283402617305023098645321391187979479657099467760122234101506453648766916159648142277595269294824989656337212270748350202216526207387352373644843989683916845296918052513538300404583710506332981402076618528661067060321032359030884813287127562467857769707640617600509923407455046381871243440312904000200816346589149523575032973377397204853684314589675895461246319558112151194129188166198205982754629092154568558922846470352794947275635821460898365154746261142246668975101609551148007168571618224453217533148678579765116567334015901288928828929310386855492314057227923348472041199477066382740576262333079788243844157753869709903750324645687857060604741050161038210592718928428096855946587889558433407286675043141023203016990366320858793978162885124357370997952769898731992400700721748418468721595689679258591160939958841392788303701632007343936409538465163905322210818985614996302375463942700713868897217430568169943156237355144901510555904340613769252941983762332068615960804269314694916506966947959378213124137255050636521721283513101168980792502348257130806267872221389371449630142257448589974604237188131949850274310507870295711871145835827214494816143763618933750283518980973658544316875479118543547484107459243158766411785468157745008347273862449042437651544900731749815003497161221757469346820554894809029067753459016883843560214372186483272843704785485643136126058783178390677838343712893109414251983692865237078605130919011543393510451487852295874061439749856413970786002076228491429887485692006305697348201879065416449913122920806878025105483718533403057143142408818712148180925279760310658217808781573440061028823257336102369555875502371122144165981084726810764078771001323489606742209007412296521513393641092776053989993272560751072940175776122875923635254280049440286845208472906516693395619416702940117179257814828233570100787101835919658183819061479100900130109885642711197394979789099450511336456358863599276494596325113210617066330336617446280591514147189924721441046912649232902331061904871218812433342877899207708626779953311710647841904104060180617469183262816805378947880715138508101136930047305622672993475602748662143961005406606011433464795512805922416592240341503104379726637680924597609190795155931526373674681567932437283550639382614438990947399738713830797091879429517268468214692305295824620511960283904630327812123861758004115609177268025522853957095411643226314619646846124302407779004003630747091571207939021486241569302984906678740247249117692862535153661758244391110708955775856500857293122600821729252893934017529297765614165969792625761687691616017860636229058857762343409384317809289575514557857733209499930400721634178044515212390196049505016101551682414117808141811517485748925109455745914838354846825357673137631943601499876700819462166389670251374828706234144207041536128005305127678223431343468285447385414418670245104798699276029538419112327352262176623069788420773107552228912664003511992597485386021041541683703038823834424693497073741589285012490049839925370344448117926079171655384718011782565527158327403239513378439772674099865724508170056829679679203835544750981239297225198535826526216803770170513984421382628781704585608061414888010039616384944454537142148495987804103587893541792958546502745276964007776028909062062278215850232504622611174182561343253499097771397078653566930289264536991902212041737374342144793202957989806742392499802385692978171309522142725838794295606446092096671615688365411882018228908466847991653329276142684833124288111344827184487190862390342056073574053159611271452599829684659051032708833206475314386559879461625205230843639628727937011896197268392699095499377706043601106402904334901982168319376028448418453224488918961154796298520445337945214214580311401615652992616168736790436487316843842748111601957036137027574327284933962925334723309390889201084511992421344080908154253128964099140016565834059110408851314857366554484444866025231372112100179931478917401143611569327140798000111387453271788124321960054719763735860433482890203086003904222283100162174373288329843477916375283130720850020898658778378841262477806136026338379432141603447240417538322139422834418783320525778574954072845100891240493717061312184913673753876634467920083405417939801342175861325837280536992731251104165806848242647235512991247233323034795343264467049021595963034970858978205618815856694093850877191078577062215021148229309329819027998428921718041672361414127054234085968889452038767108423805266066910732617811412100522239523934510271429816828968392206038074767475871541487804268273343315768553418216926052205315788023271590317265639136215579975755049118666200351536232111843319659294169191455626456342323308480360933058440416322648329037603891554904707641164379464932598243944268694698826758449865380891867828884561416335058027817655928042895708771433449063435951051534116999499640395505689576215877984890989003645982956589272964582013316040149063368155429588739624149452505943444343148867982519172399175939573490109202167668265441938210995850070641723191586510780707379398808461977378178458844947481861346402423785200861491836902554425314351189406927410495181571998006767994430952824167631290982318927872986911103375755072853721813250695533761119316934252849438276633140501077508082340970078434636406008362741965802753386415871072040496886938981395572880638675523079524143615810585176919567081497290264744797393343878333766352569714875620662113355247912291843069007071065240534370107313587888233812422840975757213841408870482330666371477931409168939613945910886747878569268403103597431961940976994587573300737962892092981176559128828954464404963528047195735952846761793368205364205114972074500515840894167496382387115049024084945502832341359548120430607321012523231475266849999189974212401402625190519578729107868171825390644569465561898450829606394710783157094747595456486846163040408549577082893168416777214832334079074391183987287512605798732983443552898555630570628324834330537091344172781865398450398156474594027258399339104081539390484035015214071159104285313271045725462309012734504403819263110683333230449142071378357345842022882684707797617376828499875619264233670685730499296048002519344159471551297191840740090154243807899598368106169275727465250592263939670438130611298477073554642532318063589764720784310215718455359317146262776141128670648647407034057377548988948803598497038112116643087572303776336590725428838507292643544349471044629036971802657406986906235332884800928329397743611270745516668806530241520471607464509690698299399010530747124557346722576263184907473959894864877886561701763688656440303193556544367280041259017239602501461550639764292270625429186520207465521830281199854305938158626282340585272003348974550416873672936112073683965521915990579174728154361574852992344268865991987550131559586030086316237836065293645815701677620528137416095898313352557847484211483814440628165034375730547183761211455023448244055754875959577521501754252172246286201021659255280354994599307165567392264340132589502090528168125806013835144770101537194578985584411472124908833375672105576356504348126077099791401616107638706820571533253117321494983855407895305191061243888663596493822679470526413557762149071930142278818159864283071571343322818045571827492830833228057000267611938873023136435421450176689787461125997300094739499191893504349010992343075379864099011292611342735643249573011907170905683325899804091164044954197530886862149875816972660126984764658356946184232306832858066093215872419047487157356820567304509109074978998478043227900573832909660014402257498387960962272240872866554540167455403388179107157442419472184201245558353717406662827953045477984342866987860132128643418492773051696381989850907839317915929865012019231934384359774199503415274823130081060480448706808844898118032646554370010656817253665799043207768387726408905776941909556840258332754329008788623488039649335355488176413699918043969809741228540535798351834874851381294216936866186066588561475520768808871743233379566300981121544122216322656666447225107426217293310984956135554039492166432411648534855434920021110884931278109660053830950824341121027963231855275367663607402660267517406845035135007010374925953008577547212284950939328110344538164823744451759715484230907300937322025674944050056175295822581182697963771235230954676620930692563763588663014149343820424296548532952067825017570849532220474317973565650703336921304139372984241546804404758060060450863029426419676227126849937404863023381143177685553401403664110559856198972638801924215218895660475919459987052064593141160734390392435482318195915691134036671187237785832564230560831291359568326182414903019791504261902920690226295792300269026872913230883203219891808309949730845755806816216100557617980141741752042669140726167297310595588655051179303412794344883606111166343357357598447639707571983355355836855811020113730207808964526763496299484631128114824977603295622652326586785137689840901009994191134210163512571706210694861712993468349269701187212807570369647185403558017948388692494437070385230568972386403918839632301846885014817524546000670382883306865597962940803307837149006809013764220146372469232648519922956621800654426452700295560489119302724175483084857415441172833110487114270267900009154104183566729166132105223297963798545886787939098741509571301121554609099481838821843202353926418409000219447580617976516010015363405589540080765240090993822162885062690952988553050639232403700000740122882809094341572784819976027270380647800968580594374689997762169396447499182374997012236661604738182047415913626741336812785521908168201989769044861160099494989404640695992498428446426140191798251827399047133547765744849276613457214797581124657122052888160153807855846582072426269755244624137068859257462076049178424319548315242412478471020626149028147506407088582316879261053355338934483168744301491066587637933953758127676291614241777852979889201664967890010516973768524831410348358593163786321399189554811125047505263558369579619614588481874114380546799986223781565862856017384198949230951973122894394209969032535299189743136871370934808297520679345693932816332146769727734605824388422113381667558497494891749196281663763549879594751012140595516560834690936987589653979573454712409533317166589535211317311957057790307359472844200302916864527657283792995848326479516761807203065157206116547685174879559879953864819515389452156906993276846435751985957189809717591603140702907795473870724662609674471147494073301068147099433313802727308505465092700976492317600174176018922599980629839641492695160743485703351527642808480649973436570812671695293242518064628096881223150957675235655994026765879702083036644340657646087035258969260627724662238186988844819318174113770717873859569726624191434004280864523587374163922227780226784115031575396300232374349680